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