scripts/compile_latex

144 lines
4.8 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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