144 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			144 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/sh
 | ||
| ################################################################################################
 | ||
| ## 
 | ||
| ##  Nom: compile_latex 
 | ||
| ##
 | ||
| ##  Licence: Creative Commons
 | ||
| ##
 | ||
| ##  Comportement: Compilation d'un fichier tex, suppression des fichiers temp et affichage du pdf
 | ||
| ##
 | ||
| ##
 | ||
| ##
 | ||
| ################################################################################################
 | ||
| ##
 | ||
| ##  Date de création: 26/01/2011
 | ||
| ##
 | ||
| ##  Auteur: Gardouille
 | ||
| ##
 | ||
| ##
 | ||
| ##  Dernière modifications:
 | ||
| ##  27/01/2011: - Ajout de la possibilité de choisir entre supprimer/déplacer fichiers temp
 | ||
| ##
 | ||
| # **********************************************************************************************
 | ||
| ##  Modifications à apporter:
 | ||
| ##              - Faire une gestion en fonction du nombre d'argument
 | ||
| ##              - Découper le programme principal en différentes fonctions
 | ||
| ##              - 
 | ||
| # **********************************************************************************************
 | ||
| ##
 | ||
| ##
 | ||
| ##
 | ||
| ################################################################################################
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| # **********************************************************************************************
 | ||
| # 
 | ||
| # Variables globales
 | ||
| # 
 | ||
| # ----------------------------------------------------------- 
 | ||
| # Variable qui permet d'indiquer si il faut supprimer les fichiers temporaires
 | ||
| # 0 = suppression
 | ||
| rm_file="0"
 | ||
| 
 | ||
| # Variable qui permet d'indiquer si il faut déplacer les fichiers temporaires dans un sous dossier au nom du fichier à compiler
 | ||
| # 0 = déplacer
 | ||
| mv_file="1"
 | ||
| 
 | ||
| # Fin des variables globales
 | ||
| # -----------------------------------------------------------
 | ||
| # **********************************************************************************************
 | ||
| 
 | ||
| 
 | ||
| # **********************************************************************************************
 | ||
| # 
 | ||
| # Fichiers globaux
 | ||
| # 
 | ||
| # -----------------------------------------------------------
 | ||
| # 
 | ||
| log="`pwd`/compile.log"
 | ||
| # Fin des fichierss globaux
 | ||
| # -----------------------------------------------------------
 | ||
| # **********************************************************************************************
 | ||
| 
 | ||
| 
 | ||
| # **********************************************************************************************
 | ||
| # 
 | ||
| # Fonctions globales
 | ||
| # 
 | ||
| # -----------------------------------------------------------
 | ||
| # Divers echos ...
 | ||
| echoi() { echo " (ii) $*" >> "${log}" ; }
 | ||
| echok() { echo " (ok) $*" >> "${log}" ; }
 | ||
| echow() { echo " (!!) $*" >> "${log}" ; }
 | ||
| echnk() { echo " (EE) $*" >> "${log}" ; }
 | ||
| 
 | ||
| # Fin des fonctions globales
 | ||
| # -----------------------------------------------------------
 | ||
| # **********************************************************************************************
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| # **********************************************************************************************
 | ||
| # 
 | ||
| # Programme principale
 | ||
| # 
 | ||
| # -----------------------------------------------------------
 | ||
| 
 | ||
| # Suppression du fichier de log si présent:
 | ||
| [ -f "${log}" ] && rm -f "${log}"                                                                                                                                       
 | ||
| 
 | ||
| case "$1" in # gestion du premier argument
 | ||
|   *.tex ) # Si le premier argument est bien un fichier .tex
 | ||
|     # On vérifie que le fichier existe bien:
 | ||
|     [ ! -f "$1" ] && echo "Erreur, le fichier passé en paramètre n'existe pas. Vérifier son orthographe et son emplacement, merci." && exit 1
 | ||
|     # On récupère le nom du fichier:
 | ||
|     file=`echo "$1" | sed -e "s/.tex//g"`
 | ||
| 
 | ||
|     # On compile le document en pdf en rediregeant la sortie standart et les erreurs vers le fichier de log
 | ||
|     pdflatex "$1" > "${log}" 2>> "${log}"
 | ||
|     if [ $? -eq "0" ] # Si la compilation s'est bien déroulée
 | ||
|     then
 | ||
|       echo "Compilation terminée sans erreur"
 | ||
|     else
 | ||
|       echo "Il y a eu un problème lors de la compilation, veuillez prendre note du fichier de log: ${log}"
 | ||
|       echo "Il y a également les fichiers crées pendant la compilation qui pourront vous aider."
 | ||
|       exit 2
 | ||
|     fi
 | ||
| 
 | ||
|     if [ ${rm_file} -eq "0" ] # Si il faut supprimer les fichiers temp
 | ||
|     then
 | ||
|       # Suppression des fichiers temporaires crées pour la compilation:
 | ||
|       rm -rf "${file}".aux "${file}".log >> "${log}" 2>> "${log}"
 | ||
|     elif [ ${mv_file} -eq "0" ] # Si il faut déplacer les fichiers temp
 | ||
|     then
 | ||
|       # Nouveau dossier au nom du fichier à compiler
 | ||
|       mkdir "${file}"
 | ||
|       # Déplacer les fichiers temporaires
 | ||
|       mv "${file}".aux "${file}".log "${file}"/
 | ||
|     fi
 | ||
| 
 | ||
|     # Affichage du pdf:
 | ||
|     evince "${file}".pdf &
 | ||
| 
 | ||
|     echo "good"
 | ||
|     exit 0
 | ||
|     ;;
 | ||
|   h|help ) # Si une l'aide est demandée
 | ||
|     echo "Aide en cours de rédac =)"
 | ||
|     exit 0
 | ||
|     ;;
 | ||
|   * ) # Sinon
 | ||
|     echo "Erreur. Utilisation:"
 | ||
|     echo "compile_latex fichier.tex"
 | ||
|     exit 1
 | ||
|     ;;
 | ||
| esac
 | ||
| 
 | ||
| exit 0
 | ||
| 
 | ||
| # Fin de la boucle principale
 | ||
| # -----------------------------------------------------------
 | ||
| # **********************************************************************************************
 | ||
| 
 |