scripts/compile_latex

144 lines
4.8 KiB
Plaintext
Raw Normal View History

2016-10-14 09:40:07 +02:00
#!/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
# -----------------------------------------------------------
# **********************************************************************************************