#!/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 # ----------------------------------------------------------- # **********************************************************************************************