#!/bin/bash
###############################################################################
# #
# ShLaTeX #
# #
###############################################################################
# #
# Auteur: Mael Hill�reau #
# M�l :
[email protected] #
# Web :
http://mael.hillereau.free.fr #
# Cr�ation : 06/03/2003 #
# Derni�re modif.: 21/08/2003 #
# Version: 1.2b-fr #
# Description: Script de compilation LaTeX pour Linux #
# #
###############################################################################
# #
# ShLaTeX -- Script de compilation LaTeX pour Linux. #
# Copyright (C) 2003 Mael Hill�reau #
# #
# This program is free software; you can redistribute it and/or #
# modify it under the terms of the GNU General Public License #
# as published by the Free Software Foundation; either version 2 #
# of the License, or (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program; if not, write to the Free Software #
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #
# #
###############################################################################
nomshell=`expr match "$0" '.*/\([^-\]*\).*'`;
version="1.2b-fr";
## envoi du code de retour appropri�
function fin() {
echo -ne "termin�.\n\n";
if [ $errindex -eq 1 ]
then
exit 3;
else
if [ $errbib -eq 1 ]
then
exit 2;
else
if [ $errcompil -eq 1 ]
then
exit 1;
else
exit 0;
fi
fi
fi
}
## suppression des temporaires
function suppressionTemp() {
if [ $tmp -eq 0 ]
then
echo "suppression des temporaires latex...";
rm -fr ./"$f".ShLaTeX
fi
}
## fct de rappel pour CTRL^C
function ctrlc() {
echo -ne "\n> Annulation !\n";
if [ ! "$f" == "-" ]
then
repCourant=`pwd`;
repCourant=`expr match "$repCourant" '.*/\(.*\)'`
if [ "$repCourant" == "$f".ShLaTeX ]
then
cd ..;
fi
suppressionTemp;
fi
fin;
}
## d�claration des variables globales
# nom du fichier
f="-";
# codes d'erreur
errindex=0;
errcompil=0;
errbib=0;
# options pr�f�rencielles
P_dvipdf=-1;
P_pdflatex=-1;
P_dvips=-1;
P_pstopdf=-1;
P_dvi=-1;
P_idx=-1;
P_no_idx=-1;
P_idx_file="-";
P_bib=-1;
P_no_bib=-1;
P_bib_file="-";
P_toc=-1;
P_no_toc=-1;
P_tmp=-1;
P_no_tmp=-1;
P_z=-1;
P_no_z=-1;
P_un=-1;
P_deux=-1;
P_quatre=-1;
P_sep=-1;
P_no_sep=-1;
P_m=-1;
P_no_m=-1;
P_view=-1;
P_no_view=-1;
P_sept=-1;
P_huit=-1;
P_v_ps="-";
P_v_pdf="-";
P_v_dvi="-";
# options de la ligne de commande
L_dvipdf=-1;
L_pdflatex=-1;
L_dvips=-1;
L_pstopdf=-1;
L_dvi=-1;
L_idx=-1;
L_no_idx=-1;
L_idx_file="-";
L_bib=-1;
L_no_bib=-1;
L_bib_file="-";
L_toc=-1;
L_no_toc=-1;
L_tmp=-1;
L_no_tmp=-1;
L_z=-1;
L_no_z=-1;
L_un=-1;
L_deux=-1;
L_quatre=-1;
L_sep=-1;
L_no_sep=-1;
L_m=-1;
L_no_m=-1;
L_view=-1;
L_no_view=-1;
L_sept=-1;
L_huit=-1;
L_v_ps="-";
L_v_pdf="-";
L_v_dvi="-";
## options d'�x�cution
mode="dvi";
idx=0;
idx_file="-";
bib=0;
bib_file="-";
toc=1;
tmp=0;
z=0;
ppf=1;
sep=0;
m=0;
view=1;
ascii=7;
v_ps="gv";
v_pdf="gv";
v_dvi="xdvi";
## capture des CTRL^C
trap "ctrlc" SIGINT
## affiche une aide rapide
function aideRapide() {
echo -ne "> Utilisation :\n";
echo -ne "\n";
echo -ne " $nomshell [options] <nom_fichier.tex>\n";
echo -ne "\n";
echo -ne " tapez \"man shlatex\" ou \"$nomshell -?\" pour une aide compl�te.\n";
echo -ne "\n";
}
## affiche une aide compl�te
function aideComplete() {
echo ".TH \\fBShLaTeX\\fP 1 \"Ao�t 2003\" \"version 1.2b-fr\" \"Manuel d'utilisation\"
SH NOM
\\fBShLaTeX\\fP \\- Script de compilation pour documents �crits en langage LaTeX.
SH SYNOPSIS
\\fBShLaTeX\\fP [options] \\fIfichierSource.tex\\fP
SH DESCRIPTION
PP
Ce script permet de centraliser les nombreux appels de commandes n�cessaires �
la compilation compl�te d'un document LaTeX. Notamment, les appels multiples �
la commande \\fBlatex\\fP indispensables pour cr�er une table des mati�res, une
bibliographie ou un index sont effectu�s automatiquement. Sont �galement g�r�s
les appels aux programmes \\fBbibtex\\fP et \\fBmakeindex\\fP ainsi que la
visualisation du fichier r�sultat (au format DVI, PostScript ou PDF) par appel �
un programme externe.
PP
Il est possible de compiler les documents qui utilisent les commandes
\\fB\\\\input\\fP et \\fB\\\\include\\fP pour faire r�f�rence � des fichiers externes et
cela de fa�on transparente en ne compilant que le fichier source principal.
PP
Une fois la compilation effectu�e les fichiers temporaires sont effac�s (option
\\fB-no-tmp\\fP) ou conserv�s (option \\fB-tmp\\fP). Les fichiers DVI g�n�r�s par
LaTeX peuvent alors �tre directement convertis au format PostScript ou PDF.
PP
Ce script prend aussi en charge l'accentuation des caract�res fran�ais par
l'interm�diaire d'un programme C externe (nomm� \\fBtex8to7\\fP) et fourni avec le
script (la gestion des accents est donc transparente). Il g�re aussi le \"c\"
c�dille ainsi que le remplacement des guillemets par les commandes \\fB\\\\og\\fP et
\\fB\\\\fg\\fP (cela suppose que les guillemets soient appari�s). Les guillemets
peuvent �tre impriqu�s en utilisant des accolades pour distinguer les diff�rentes
paires de guillemets. Par exemple, le texte :
PP
Les guillemets \"peuvent �tre {\"imbriqu�s\"} � l'aide d'accolades\".
PP
est un exemple correct.
PP
Les options par d�faut (pr�f�rences) sont stock�es dans le r�pertoire
personnel de l'utilisateur dans le fichier \\fB~/.shlatex\\fP. Voir la section
FICHIERS pour conna�tre la syntaxe de ce fichier.
SH OPTIONS
IP \"\\fB\\-dvipdf\\fP\"
S�lectionne un format PDF au lieu du format DVI pour le fichier r�sultat. Le
programme \\fBdvipdf\\fP est alors utilis� pour la conversion.
IP \"\\fB\\-pdflatex\\fP\"
S�lectionne un format PDF au lieu du format DVI pour le fichier r�sultat. Le
programme \\fBpdflatex\\fP est alors directement utilis� pour cr�er le fichier
r�sultat.
IP \"\\fB-dvips\\fP\"
S�lectionne un format PostScript au lieu du format DVI pour le fichier r�sultat.
Le programme \\fBdvips\\fP est alors utilis� pour la conversion.
IP \"\\fB-ps2pdf\\fP\"
S�lectionne un format PDF au lieu du format PostScript pour le fichier r�sultat.
Utilise l'option \\fB-dvips\\fP. Les programmes \\fBdvips\\fP et \\fBps2pdf\\fP sont
successivement utilis�s pour la conversion et le fichier PostScript est conserv�
apr�s la conversion.
IP \"\\fB-dvi\\fP\"
S�lectionne un format DVI pour le fichier r�sultat.
IP \"\\fB-idx\\fP \\fI[style.ist]\\fP ou \\fB--index\\fP \\fI[style.ist]\\fP\"
Active la cr�ation de l'index (pour une utilisation avec le module
\\fImakeidx\\fP). Le fichier optionnel \\fIstyle.ist\\fP est un fichier de
style pour \\fBmakeindex\\fP.
IP \"\\fB-no-idx\\fP ou \\fB--no-index\\fP\"
D�sactive la cr�ation de l'index.
IP \"\\fB-bib\\fP \\fI[fichier.bib]\\fP ou \\fB--bibliography\\fP \\fI[fichier.bib]\\fP\"
Active la cr�ation de la bibliographie avec \\fBbibtex\\fP en se basant sur
\\fIfichier.bib\\fP. Si aucun fichier n'est indiqu�, le fichier d'extension \".bib\"
doit porter le m�me nom que \\fIfichierSource\\fP.tex.
IP \"\\fB-no-bib\\fP ou \\fB--no-bibliography\\fP\"
D�sactive la cr�ation de la bibliographie.
IP \"\\fB-toc\\fP ou \\fB--table-of-contents\\fP\"
Active la compilation suppl�mentaire pour la construction d'une table des
mati�res, une table des figures, une liste des tableaux et toutes les r�f�rences
LaTeX (commande \\fB\\label{...}\\fP).
IP \"\\fB-no-toc\\fP ou \\fB--no-table-of-contents\\fP\"
D�sactive la compilation suppl�mentaire pour la construction d'une table des
mati�res, une table des figures, une liste des tableaux et toutes les r�f�rences
LaTeX (commande \\fB\\label{...}\\fP).
IP \"\\fB-tmp\\fP ou \\fB--temporary\\fP\"
Conserve apr�s l'ec�cution du script les fichiers temporaires cr��s par LaTeX.
Ces fichiers sont ainsi stock�s dans un r�pertoire nomm�
\\fIfichierSource.ShLaTeX\\fP.
IP \"\\fB-no-tmp\\fP ou \\fB--no-temporary\\fP\"
Supprime apr�s l'ec�cution du script les fichiers temporaires cr��s par LaTeX.
IP \"\\fB-z\\fP ou \\fB--gzip\\fP\"
Compresse les fichiers PostScript avec le programme \\fBgzip\\fP. Les fichiers
prennent alors l'extension \".ps.gz\".
IP \"\\fB-no-z\\fP ou \\fB--no-gzip\\fP\"
D�sactive la compression des fichiers PostScript avec le programme \\fBgzip\\fP.
IP \"\\fB-1\\fP ou \\fB--1page\\fP\"
G�n�re des fichiers PostScript ayant 1 page a4 par feuille a4.
IP \"\\fB-2\\fP ou \\fB--2pages\\fP\"
G�n�re des fichiers PostScript ayant 2 pages a5 par feuille a4.
IP \"\\fB-4\\fP ou \\fB--4pages\\fP\"
G�n�re des fichiers PostScript ayant 4 pages a6 par feuille a4.
IP \"\\fB-sep\\fP ou \\fB--separator\\fP\"
S'utilise avec l'option \\fB-2\\fP ou \\fB-4\\fP. Permet de tracer une ligne s�paratrice entre
les diff�rentes pages d'une m�me feuille.
IP \"\\fB-no-sep\\fP ou \\fB--no-separator\\fP\"
S'utilise avec l'option \\fB-2\\fP ou \\fB-4\\fP. Permet de d�sactiver le trac� de la
ligne s�paratrice entre les diff�rentes pages d'une m�me feuille.
IP \"\\fB-m\\fP ou \\fB--messages\\fP\"
Affiche syst�matiquement les messages de LaTeX dans la console (voir aussi la
section ERREURS DE COMPILATION).
IP \"\\fB-no-m\\fP ou \\fB--no-messages\\fP\"
Si cette option est utilis�e, les messages de LaTeX n'apparaissent qu'en cas
d'erreur (voir aussi la section ERREURS DE COMPILATION).
IP \"\\fB-view\\fP ou \\fB--viewer\\fP\"
Active la visualisation finale.
IP \"\\fB-no-view\\fP ou \\fB--no-viewer\\fP\"
D�sactive la visualisation finale.
IP \"\\fB-7\\fP ou \\fB--7bits\\fP\"
D�sactive l'accentuation du fichier source LaTeX. Le fichier source doit �tre un
fichier ascii cod� sur 7 bits.
IP \"\\fB-8\\fP ou \\fB--8bits\\fP\"
Active l'accentuation du fichier source LaTeX. Le fichier source peut �tre un
fichier ascii cod� sur 8 bits.
IP \"\\fB-v-ps\\fP \\fIvisionneur\\fP ou \\fB--view-ps-with\\fP \\fIvisionneur\\fP\"
Utilise le programme \\fIvisionneur\\fP pour la visualisation finale des fichiers
PostScript.
IP \"\\fB-v-pdf\\fP \\fIvisionneur\\fP ou \\fB--view-pdf-with\\fP \\fIvisionneur\\fP\"
Utilise le programme \\fIvisionneur\\fP pour la visualisation finale des fichiers
PDF.
IP \"\\fB-v-dvi\\fP \\fIvisionneur\\fP ou \\fB--view-dvi-with\\fP \\fIvisionneur\\fP\"
Utilise le programme \\fIvisionneur\\fP pour la visualisation finale des fichiers
DVI.
IP \"\\fB-v\\fP ou \\fB--version\\fP\"
Affiche la version et quitte.
IP \"\\fB-?\\fP, \\fB-h\\fP ou \\fB--help\\fP\"
Affiche l'aide.
IP \"\\fINote\\fP :\"
Lors de l'utilisation de l'option \\fB\\-view\\fP, le format de fichier choisi en
sortie (DVI, PostScript ou PDF) doit �tre lisible par le programme
\\fIvisionneur\\fP pour que la visualisation fonctionne correctement. Par d�faut,
les programme utilis�s sont \\fBxdvi\\fP pour les fichiers DVI et \\fBgv\\fP pour
les fichiers PostScript et PDF.
SH \"ERREURS DE COMPILATION\"
PP
Si l'option \\fB-no-m\\fP est utilis�e, en cas d'erreur de compilation par
LaTeX, le script ne r�pond plus. On peut l'arr�ter en tapant les options de la
ligne de commande (\"x\" pour ignorer, \"q\" pour quitter, ...) en aveugle, ou en
tapant \"Ctrl^C\". Dans les deux cas, les erreurs seront affich�es juste apr�s.
Cette imperfection est due au choix de ne pas afficher les messages du programme
\\fBlatex\\fP par d�faut. Cependant, le probl�me n'existe que si le mode
d'interaction autorise LaTeX � s'arr�ter sur les erreurs (ce qui n'est pas le
cas, par exemple si la commande \\fB\\\\nonstopmode\\fP est utilis�e).
PP
Dans tous les cas, il est possible de forcer l'affichage des messages de
\\fBlatex\\fP en utilisant l'option \\fB-m\\fP � la place de l'option \\fB-no-m\\fP.
SH \"FICHIERS\"
PP
Le fichier \\fB~/.shlatex\\fP contient les pr�f�rences de l'utilisateur. Il peut
�tre modifi� afin d'utiliser des valeurs par d�faut personnalis�es pour les
options du script, mais la syntaxe du fichier doit �tre respect�e :
PP
Chaque ligne du fichier doit contenir une et une seule option. Les options
sont toutes permises � l'exeption de \\fB-v\\fP et \\fB-?\\fP qui n'auraient pas
leur place dans le fichier de pr�f�rences. Pour les options qui admettent des
param�tres, comme dans le shell, ils seront plac�s apr�s leur option respective
mais devront en �tre s�par�s par un seul caract�re d'espacement ('\\ '). L'ordre
des options n'importe pas.
PP
Dans le cas o� des incoh�rences appara�traient lors de l'ex�cution du script,
des avertissements seront affich�s.
PP
Si lors de la premi�re ex�cution du script, le fichier \\fB~/.shlatex\\fP
n'existe pas, alors il sera cr�� automatiquement avec le contenu suivant :
RS 5
IP \"-dvips\"
IP \"-view\"
IP \"-no-idx\"
IP \"-no-bib\"
IP \"-toc\"
IP \"-no-tmp\"
IP \"-no-z\"
IP \"-1\"
IP \"-no-sep\"
IP \"-no-m\"
IP \"-8\"
IP \"-v-ps gv\"
IP \"-v-pdf gv\"
IP \"-v-dvi xdvi\"
SH \"PROBL�MES CONNUS\"
SS \"BoundingBox\"
PP
Lorsque l'on ins�re une image avec la commande \\fB\\\\includegraphics\\fP, il
faut sp�cifier la \"boundingbox\" en argument de la commande, sinon la compilation
ne fonctionne pas. Voici un exemple :
PP
\\\\includegraphics[bb=0 0 100 200]{image.eps}
SS \"Fichiers externes\"
Pour que l'inclusion de fichiers externes fonctionne correctement, les commandes
\\fB\\\\input\\fP et \\fB\\\\include\\fP doivent �tre plac�es sur des lignes ind�pendantes
du fichier \\fIfichierSource.tex\\fP.
SH \"VOIR AUSSI\"
BR latex (1),
BR pdflatex (1),
BR dvips (1),
BR ps2pdf (1),
BR dvipdf (1),
BR xdvi (1),
BR gv (1),
BR gzip (1)
SH \"BOGUES\"
PP
Merci de signaler les bogues en envoyant un m�l � l'adresse de la section
AUTEUR.
SH \"LICENCE\"
PP
Ce script et l'ensemble des fichiers qui lui sont relatifs (dont ce manuel)
sont soumis aux termes de la Licence Publique G�n�rale GNU. La GPL GNU est
fournie avec le script (fichier /usr/share/shlatex/GPL.TXT) et est �galement
disponible � l'adresse
http://www.gnu.org/licenses/gpl.html.
SH \"AUTEUR\"
PP
Copyright (C) 2003 Mael Hill�reau
PP
\\fIcontact\\fP :
[email protected]
PP
\\fIweb\\fP :
http://mael.hillereau.free.fr
" > ~/ShLaTeX_"$version".tmp;
man ~/ShLaTeX_"$version".tmp
rm -f ~/ShLaTeX_"$version".tmp
}
## affiche un message d'erreur
function erreur() {
echo -ne "\n";
echo -ne "> Erreur :\n";
echo -ne " $1\n";
echo -ne "\n";
if [ $# -eq 2 ]
then
if [ $2 == "-?" ]
then
aideRapide;
fi
fi
}
## affiche un message d'avertissement
function avertissement() {
echo -ne "\n";
echo -ne "> Avertissement :\n";
echo -ne " $1\n";
echo -ne "\n";
}
## affiche la version et sort
function version() {
echo -ne "$nomshell version $version - Script de compilation LaTeX pour Linux.\nCopyright (C) 2003 Mael Hill�reau\n";
exit 0;
}
## recherche les fichiers externes (1 seul par ligne dans le source LaTeX !)
function fichiersExternes() {
fExt="";
lignes=`grep -e "^[ |\t]*\input{" $1`;
lignes=`echo $lignes | grep -v -E "^[ |\t]*%.*"`
for l in $lignes
do
fExt="$fExt `expr match $l '.*\input{\(.*\)}'`";
done
lignes=`grep -e "^[ |\t]*\include{" $1`;
lignes=`echo $lignes | grep -v -E "^[ |\t]*%.*"`
for l in $lignes
do
fExt="$fExt `expr match $l '.*\include{\(.*\)}'`";
done
lignes=`grep -e "^[ |\t]*\in\(put\|clude\) " $1`;
lignes=`echo $lignes | grep -v -E "^[ |\t]*%.*"`
for l in $lignes
do
if [ ! $l == "\input" -a ! $l == "\include" ]
then
fExt="$fExt $l";
fi
done
fTemp="";
for l in $fExt
do
cTemp=`expr match $l '[ |\t]*\(.*\)\.tex'`;
if [[ $cTemp == "" ]]
then
fTemp="$fTemp $l";
else
fTemp="$fTemp $cTemp";
fi
done
fExt=$fTemp;
}
## remplace les fichiers externes nomm�s $1 par $2 dans le fichier $3
function rplcExtFich() {
if [ -f $3 ]
then
lignes=`cat $3 | grep -n "\input $1" | tr " " "@"`;
lignes="`cat $3 | grep -n \input{$1}` $lignes";
for ligne in $lignes
do
ligne=`echo $ligne | tr "@" " "`;
nblignes=`wc -l $3 | tr -s " " ":" | cut -f 2 -d ":"`;
nligne=`echo $ligne | cut -f 1 -d ":"`;
nligne=`expr $nligne - 1`;
fin=`expr $nblignes - $nligne - 1`;
head -$nligne "$3" > "$3".tmp
echo "\input{$2}" >> "$3.tmp"
tail -n $fin "$3" >> "$3".tmp
mv -f "$3".tmp "$3"
done
lignes=`cat $3 | grep -n "\include $1" | tr " " "@"`;
lignes="`cat $3 | grep -n \include{$1}` $lignes";
for ligne in $lignes
do
ligne=`echo $ligne | tr "@" " "`;
nblignes=`wc -l $3 | tr -s " " ":" | cut -f 2 -d ":"`;
nligne=`echo $ligne | cut -f 1 -d ":"`;
nligne=`expr $nligne - 1`;
fin=`expr $nblignes - $nligne - 1`;
head -$nligne "$3" > "$3".tmp
echo "\include{$2}" >> "$3.tmp"
tail -n $fin "$3" >> "$3".tmp
mv -f "$3".tmp "$3"
done
fi
}
## v�rifie que le fichier fourni est accessible et �x�cutable
function estExec() {
for rep in `echo $PATH | tr ":" " "`
do
if [ -x $rep/$1 ]
then
return 1;
fi
done
return 0;
}
## v�rifie qu'au plus un seul des arguments entiers a �t� initialis�
function verifInit() {
i=0;
for a
do
if [ $a -ne -1 ]
then
i=`expr $i + 1`;
fi
done
return $i;
}
## charge les pr�f�rences � partir du fichier ~/.shlatex (une option par ligne)
function preferences() {
for ligne in `grep -e "^-.*" ~/.shlatex | tr " " "="`
do
opt=`expr match $ligne '[:space:]*\(-[-a-z0-9]*\)=*.*'`;
paramopt="";
paramopt=`expr match $ligne '[:space:]*-[-a-z0-9]*=\(.*\)'`;
case $opt in
"-dvipdf" )
P_dvipdf=1;;
"-pdflatex" )
P_pdflatex=1;;
"-ps2pdf" )
P_pstopdf=1;;
"-dvips" )
P_dvips=1;;
"-dvi" )
P_dvi=1;;
"-idx" | "--index" )
P_idx=1;
if [ ! $paramopt == "" ]
then
P_idx_file=$paramopt;
fi ;;
"-no-idx" | "--no-index" )
P_no_idx=1;
;;
"-bib" | "--bibliography" )
P_bib=1;
if [ ! $paramopt == "" ]
then
P_bib_file=`expr match $paramopt '\(.*\)\.bib'`;
fi ;;
"-no-bib" | "--no-bibliography" )
P_no_bib=1;;
"-toc" | "--table-of-contents" )
P_toc=1;;
"-no-toc" | "--no-table-of-contents" )
P_no_toc=1;;
"-tmp" | "--temporary" )
P_tmp=1;;
"-no-tmp" | "--no-temporary" )
P_no_tmp=1;;
"-z" | "--gzip" )
P_z=1;;
"-no-z" | "--no-gzip" )
P_no_z=1;;
"-1" | "--1page" )
P_un=1;;
"-2" | "--2pages" )
P_deux=1;;
"-4" | "--4pages" )
P_quatre=1;;
"-sep" | "--separator" )
P_sep=1;;
"-no-sep" | "--no-separator" )
P_no_sep=1;;
"-m" | "--messages" )
P_m=1;;
"-no-m" | "--no-messages" )
P_no_m=1;;
"-view" | "--viewer" )
P_view=1;;
"-no-view" | "--no-viewer" )
P_no_view=1;;
"-7" )
P_sept=1;;
"-8" )
P_huit=1;;
"-v-ps" | "--view-ps-with" )
if [ ! $paramopt == "" ]
then
P_v_ps=$paramopt;
else
avertissement "fichier \"$HOME/.shalatex\" -- option \"$opt\" ignor�e, param�tre manquant !";
fi ;;
"-v-pdf" | "--view-pdf-with" )
if [ ! $paramopt == "" ]
then
P_v_pdf=$paramopt;
else
avertissement "fichier \"$HOME/.shalatex\" -- option \"$opt\" ignor�e, param�tre manquant !";
fi ;;
"-v-dvi" | "--view-dvi-with" )
if [ ! $paramopt == "" ]
then
P_v_dvi=$paramopt;
else
avertissement "fichier \"$HOME/.shalatex\" -- option \"$opt\" ignor�e, param�tre manquant !";
fi ;;
* )
avertissement "fichier \"$HOME/.shlatex\" -- option \"$opt\" ignor�e ; cette option n'existe pas ou n'est pas support�e dans le fichier de pr�f�rences";;
esac
done
## v�rification des options des pr�f�rences
# mode
verifInit $P_pstopdf $P_dvips $P_dvipdf $P_pdflatex $P_dvi;
if [ $? -gt 1 ]
then
avertissement "fichier \"$HOME/.shlatex\" -- les options -dvipdf, -dvips, -pdflatex, -ps2pdf et -dvi sont mutuellement exclusives !";
fi
# index
verifInit $P_idx $P_no_idx;
if [ $? -gt 1 ]
then
avertissement "fichier \"$HOME/.shlatex\" -- les options -idx et -no-idx sont mutuellement exclusives !";
fi
# bibliography
verifInit $P_bib $P_no_bib;
if [ $? -gt 1 ]
then
avertissement "fichier \"$HOME/.shlatex\" -- les options -bib et -no-bib sont mutuellement exclusives !";
fi
# table of contents
verifInit $P_toc $P_no_toc;
if [ $? -gt 1 ]
then
avertissement "fichier \"$HOME/.shlatex\" -- les options -toc et -no-toc sont mutuellement exclusives !";
fi
# temporary
verifInit $P_tmp $P_no_tmp;
if [ $? -gt 1 ]
then
avertissement "fichier \"$HOME/.shlatex\" -- les options -tmp et -no-tmp sont mutuellement exclusives !";
fi
# gzip
verifInit $P_z $P_no_z;
if [ $? -gt 1 ]
then
avertissement "fichier \"$HOME/.shlatex\" -- les options -z et -no-z sont mutuellement exclusives !";
fi
# 1, 2, 4
verifInit $P_un $P_deux $P_quatre;
if [ $? -gt 1 ]
then
avertissement "fichier \"$HOME/.shlatex\" -- les options -1, -2 et -4 sont mutuellement exclusives !";
fi
# separator
verifInit $P_sep $P_no_sep;
if [ $? -gt 1 ]
then
avertissement "fichier \"$HOME/.shlatex\" -- les options -sep et -no-sep sont mutuellement exclusives !";
fi
# messages
verifInit $P_m $P_no_m;
if [ $? -gt 1 ]
then
avertissement "fichier \"$HOME/.shlatex\" -- les options -m et -no-m sont mutuellement exclusives !";
fi
# view
verifInit $P_view $P_no_view;
if [ $? -gt 1 ]
then
avertissement "fichier \"$HOME/.shlatex\" -- les options -view et -no-view sont mutuellement exclusives !";
fi
# 7, 8
verifInit $P_sept $P_huit;
if [ $? -gt 1 ]
then
avertissement "fichier \"$HOME/.shlatex\" -- les options -7 et -8 sont mutuellement exclusives !";
fi
}
## si il n'y a pas de fichier de pr�f�rences, on le cr�e avec des valeurs par d�faut
if [ ! -f ~/.shlatex ]
then
echo -ne "-dvips\n-view\n-no-idx\n-no-bib\n-toc\n-no-tmp\n-no-z\n-1\n-no-sep\n-no-m\n-8\n-v-ps gv\n-v-pdf gv\n-v-dvi xdvi\n" > ~/.shlatex
fi
## chargement des pr�f�rences
preferences;
## v�rification du nombre d'arguments et r�cup�ration des options
if [ $# -lt 2 ]
then
if [ $# -eq 1 ]
then
if [ $1 == "-?" -o $1 == "-h" -o $1 == "--help" ]
then
aideComplete;
exit 0;
elif [ $1 == "-v" -o $1 == "--version" ]
then
version
exit 0;
fi
else
erreur "nombre d'arguments incorrect !" -?;
exit 1;
fi
else
noshift=0;
while [ $# -gt 1 ]
do
case $1 in
"-dvipdf" )
L_dvipdf=1;;
"-pdflatex" )
L_pdflatex=1;;
"-ps2pdf" )
L_pstopdf=1;;
"-dvips" )
L_dvips=1;;
"-dvi" )
L_dvi=1;;
"-idx" | "--index" )
L_idx=1;
if [ $# -gt 2 ]
then
shift;
if [ ! ${1:0:1} == "-" ]
then
L_idx_file=$1;
else
noshift=1;
fi
fi ;;
"-no-idx" | "--no-index" )
L_no_idx=1;;
"-bib" | "--bibliography" )
L_bib=1;
if [ $# -gt 2 ]
then
shift;
if [ ! ${1:0:1} == "-" ]
then
if [ -f $1 ]
then
L_bib_file=`expr match "$1" '\(.*\)\.bib'`;
else
erreur "le fichier de bibliographie \"$1\" n'existe pas !" -?;
exit 1;
fi
else
noshift=1;
fi
fi ;;
"-no-bib" | "--no-bibliography" )
L_no_bib=1;;
"-toc" | "--table-of-contents" )
L_toc=1;;
"-no-toc" | "--no-table-of-contents" )
L_no_toc=1;;
"-tmp" | "--temporary" )
L_tmp=1;;
"-no-tmp" | "--no-temporary" )
L_no_tmp=1;;
"-z" | "--gzip" )
L_z=1;;
"-no-z" | "--no-gzip" )
L_no_z=1;;
"-1" | "--1page" )
L_un=1;;
"-2" | "--2pages" )
L_deux=1;;
"-4" | "--4pages" )
L_quatre=1;;
"-sep" | "--separator" )
L_sep=1;;
"-no-sep" | "--no-separator" )
L_no_sep=1;;
"-m" | "--messages" )
L_m=1;;
"-no-m" | "--no-messages" )
L_no_m=1;;
"-view" | "--viewer" )
L_view=1;;
"-no-view" | "--no-viewer" )
L_no_view=1;;
"-7" )
L_sept=1;;
"-8" )
L_huit=1;;
"-v-ps" | "--view-ps-with" )
if [ $# -gt 2 ]
then
shift;
if [ ! ${1:0:1} == "-" ]
then
estExec $1;
if [ $? -eq 1 ]
then
L_v_ps=$1;
else
erreur "le fichier \"$1\" n'est pas accessible ou n'est pas �x�cutable depuis la ligne de commande !";
exit 1;
fi
else
noshift=1;
fi
else
erreur "l'argument $1 n�cessite un param�tre !" -?;
exit 1;
fi ;;
"-v-pdf" | "--view-pdf-with" )
if [ $# -gt 2 ]
then
shift;
if [ ! ${1:0:1} == "-" ]
then
estExec $1;
if [ $? -eq 1 ]
then
L_v_pdf=$1;
else
erreur "le fichier \"$1\" n'est pas accessible ou n'est pas �x�cutable depuis la ligne de commande !";
exit 1;
fi
else
noshift=1;
fi
else
erreur "l'argument $1 n�cessite un param�tre !" -?;
exit 1;
fi ;;
"-v-dvi" | "--view-dvi-with" )
if [ $# -gt 2 ]
then
shift;
if [ ! ${1:0:1} == "-" ]
then
estExec $1;
if [ $? -eq 1 ]
then
L_v_dvi=$1;
else
erreur "le fichier \"$1\" n'est pas accessible ou n'est pas �x�cutable depuis la ligne de commande !";
exit 1;
fi
else
noshift=1;
fi
else
erreur "l'argument $1 n�cessite un param�tre !" -?;
exit 1;
fi ;;
"-?" | "-h" | "--help" )
aideRapide;
exit 0;;
"-v" | "--version" )
version;;
* )
erreur "l'argument \"$1\" est incorrect !" -?;
exit 1;;
esac
if [ $noshift -eq 0 ]
then
shift;
else
noshift=0;
fi
done
fi
# v�rification de l'existence d'un nom pour le fichier source LaTeX
if [ $# -ne 1 ]
then
erreur "fichier source LaTeX manquant !" -?;
exit 1;
fi
# v�rification de l'existence du fichier source LaTeX
if [ ! -f $1 ]
then
erreur "impossible de trouver le fichier \"$1\" !" -?;
exit 1;
fi
# nom du fichier source
fich=$1;
# nom du fichier source sans son extension ".tex"
f=`expr match "$fich" '\(.*\)\.[a-zA-Z]*'`;
## v�rification des options de la ligne de commande
# mode
verifInit $L_pstopdf $L_dvips $L_dvipdf $L_pdflatex $L_dvi;
iopt=$?;
if [ $iopt -gt 1 ]
then
erreur "les options -dvipdf, -dvips, -pdflatex, -ps2pdf et -dvi sont mutuellement exclusives !";
exit 1;
elif [ $iopt -eq 1 ]
then
# ligne de commande
if [ $L_dvipdf -eq 1 ]
then
mode="dvipdf";
elif [ $L_dvips -eq 1 ]
then
mode="dvips";
elif [ $L_pdflatex -eq 1 ]
then
mode="pdflatex";
elif [ $L_pstopdf -eq 1 ]
then
mode="ps2pdf";
elif [ $L_dvi -eq 1 ]
then
mode="dvi";
fi
else
# pr�f�rences
if [ $P_dvipdf -eq 1 ]
then
mode="dvipdf";
elif [ $P_dvips -eq 1 ]
then
mode="dvips";
elif [ $P_pdflatex -eq 1 ]
then
mode="pdflatex";
elif [ $P_pstopdf -eq 1 ]
then
mode="ps2pdf";
elif [ $P_dvi -eq 1 ]
then
mode="dvi";
fi
fi
# index
verifInit $L_idx $L_no_idx;
iopt=$?;
if [ $iopt -gt 1 ]
then
erreur "les options -idx et -no-idx sont mutuellement exclusives !";
exit 1;
elif [ $iopt -eq 1 ]
then
# ligne de commande
if [ $L_idx -eq 1 ]
then
idx=1;
else
idx=0;
fi
else
# pr�f�rences
if [ $P_idx -eq 1 ]
then
idx=1;
else
idx=0;
fi
fi
if [ ! $L_idx_file == "-" ]
then
idx_file=$L_idx_file;
elif [ ! $P_idx_file == "-" ]
then
idx_file=$P_idx_file;
fi
# bibliography
verifInit $L_bib $L_no_bib;
iopt=$?;
if [ $iopt -gt 1 ]
then
erreur "les options -bib et -no-bib sont mutuellement exclusives !";
exit 1;
elif [ $iopt -eq 1 ]
then
# ligne de commande
if [ $L_bib -eq 1 ]
then
bib=1;
else
bib=0;
fi
else
# pr�f�rences
if [ $P_bib -eq 1 ]
then
bib=1;
else
bib=0;
fi
fi
if [ ! $L_bib_file == "-" ]
then
bib_file=$L_bib_file;
elif [ ! $P_bib_file == "-" ]
then
bib_file=$P_bib_file;
fi
# table of contents
verifInit $L_toc $L_no_toc;
iopt=$?;
if [ $iopt -gt 1 ]
then
erreur "les options -toc et -no-toc sont mutuellement exclusives !";
exit 1;
elif [ $iopt -eq 1 ]
then
# ligne de commande
if [ $L_toc -eq 1 ]
then
toc=1;
else
toc=0;
fi
else
# pr�f�rences
if [ $P_toc -eq 1 ]
then
toc=1;
else
toc=0;
fi
fi
# temporary
verifInit $L_tmp $L_no_tmp;
iopt=$?;
if [ $iopt -gt 1 ]
then
erreur "les options -tmp et -no-tmp sont mutuellement exclusives !";
exit 1;
elif [ $iopt -eq 1 ]
then
# ligne de commande
if [ $L_tmp -eq 1 ]
then
tmp=1;
else
tmp=0;
fi
else
# pr�f�rences
if [ $P_tmp -eq 1 ]
then
tmp=1;
else
tmp=0;
fi
fi
# gzip
verifInit $L_z $L_no_z;
iopt=$?;
if [ $iopt -gt 1 ]
then
erreur "les options -z et -no-z sont mutuellement exclusives !";
exit 1;
elif [ $mode == "dvips" -o $mode == "ps2pdf" ]
then
if [ $iopt -eq 1 ]
then
# ligne de commande
if [ $L_z -eq 1 ]
then
z=1;
else
z=0;
fi
else
# pr�f�rences
if [ $P_z -eq 1 ]
then
z=1;
else
z=0;
fi
fi
elif [ $iopt -eq 1 ]
then
avertissement "option -z ignor�e -- l'option -z ne concerne que les fichiers PostScript !";
fi
# 1, 2, 4
verifInit $L_un $L_deux $L_quatre;
iopt=$?;
if [ $iopt -gt 1 ]
then
erreur "les options -1, -2 et -4 sont mutuellement exclusives !";
exit 1;
elif [ $mode == "dvips" -o $mode == "ps2pdf" ]
then
if [ $iopt -eq 1 ]
then
# ligne de commande
if [ $L_un -eq 1 ]
then
ppf=1;
elif [ $L_deux -eq 1 ]
then
ppf=2;
else
ppf=4;
fi
else
# pr�f�rences
if [ $P_un -eq 1 ]
then
ppf=1;
elif [ $P_deux -eq 1 ]
then
ppf=2;
else
ppf=4;
fi
fi
elif [ $iopt -eq 1 ]
then
if [ $L_un -eq 1 ]
then
avertissement "option -1 ignor�e -- les options -1, -2 et -4 n'agissent que sur les fichiers PostScript !";
elif [ $L_deux -eq 1 ]
then
avertissement "option -2 ignor�e -- les options -1, -2 et -4 n'agissent que sur les fichiers PostScript !";
else
avertissement "option -4 ignor�e -- les options -1, -2 et -4 n'agissent que sur les fichiers PostScript !";
fi
fi
# separator
verifInit $L_sep $L_no_sep;
iopt=$?;
if [ $iopt -gt 1 ]
then
erreur "les options -sep et -no-sep sont mutuellement exclusives !";
exit 1;
elif [ $ppf -gt 1 ]
then
if [ $iopt -eq 1 ]
then
# ligne de commande
if [ $L_sep -eq 1 ]
then
sep=1;
else
sep=0;
fi
else
# pr�f�rences
if [ $P_sep -eq 1 ]
then
sep=1;
else
sep=0;
fi
fi
elif [ $iopt -eq 1 ]
then
avertissement "option -sep ignor�e -- l'option -sep ne s'utilise qu'avec les options -2 et -4 !";
fi
# messages
verifInit $L_m $L_no_m;
iopt=$?;
if [ $iopt -gt 1 ]
then
erreur "les options -m et -no-m sont mutuellement exclusives !";
exit 1;
elif [ $iopt -eq 1 ]
then
# ligne de commande
if [ $L_m -eq 1 ]
then
m=1;
else
m=0;
fi
else
# pr�f�rences
if [ $P_m -eq 1 ]
then
m=1;
else
m=0;
fi
fi
# view
verifInit $L_view $L_no_view;
iopt=$?;
if [ $iopt -gt 1 ]
then
erreur "les options -view et -no-view sont mutuellement exclusives !";
exit 1;
elif [ $iopt -eq 1 ]
then
# ligne de commande
if [ $L_view -eq 1 ]
then
view=1;
else
view=0;
fi
else
# pr�f�rences
if [ $P_view -eq 1 ]
then
view=1;
else
view=0;
fi
fi
# 7, 8
verifInit $L_sept $L_huit;
iopt=$?;
if [ $iopt -gt 1 ]
then
erreur "les options -7 et -8 sont mutuellement exclusives !";
exit 1;
elif [ $iopt -eq 1 ]
then
# ligne de commande
if [ $L_sept -eq 1 ]
then
ascii=7;
else
ascii=8;
fi
else
# pr�f�rences
if [ $P_sept -eq 1 ]
then
ascii=7;
else
ascii=8;
fi
fi
# v_dvi
if [ ! $L_v_dvi == "-" ]
then
# lige de commande
v_dvi=$L_v_dvi;
elif [ ! $P_v_dvi == "-" ]
then
# pr�f�rences
v_dvi=$P_v_dvi;
fi
# v_ps
if [ ! $L_v_ps == "-" ]
then
# lige de commande
v_ps=$L_v_ps;
elif [ ! $P_v_ps == "-" ]
then
# pr�f�rences
v_ps=$P_v_ps;
fi
# v_pdf
if [ ! $L_v_pdf == "-" ]
then
# lige de commande
v_pdf=$L_v_pdf;
elif [ ! $P_v_pdf == "-" ]
then
# pr�f�rences
v_pdf=$P_v_pdf;
fi
## test de l'existance du fichier de bibliographie
if [ $bib -eq 1 -a $bib_file == "-" ]
then
if [ ! -f "$f".bib ]
then
erreur "vous avez utilis� l'option -bib et le fichier \"$f.bib\" n'existe pas !" -?;
exit 1;
fi
fi
## affichage d'un petit message de version
echo -ne "\n$nomshell version $version - Script de compilation LaTeX pour Linux.\nCopyright (C) 2003 Mael Hill�reau\n\n";
## cr�ation d'un r�pertoire de travail
if [ ! -d "$f".ShLaTeX ]
then
mkdir "$f".ShLaTeX
fi
## recherche (non r�cursive) des fichiers externes
fichiersExternes $fich
## copie du fichier latex source principal
cp "$f".tex "$f".ShLaTeX
## copie des fichiers latex source externes
fExtTmp="";
for fe in $fExt
do
if [ -f "$fe".tex ]
then
cp "$fe".tex "$f".ShLaTeX
# �limination du chemin relatif dans le fichier source
sansChemin=`expr match "/$fe" '.*/\(.*\)'`;
rplcExtFich "$fe.tex" "$sansChemin.tex" "$f".ShLaTeX/"$f".tex
fExtTmp="$sansChemin $fExtTmp";
else
avertissement "le fichier externe \"$fe.tex\" r�f�renc� dans \"$fich\" est introuvable !";
fi
done
fExt=$fExtTmp;
## copie du fichier de bibliographie
if [ $bib -eq 1 ]
then
if [ $bib_file == "-" ]
then
bib_file=$f;
fi
cp "$bib_file".bib "$f".ShLaTeX
fi
## copie du fichier de style d'index
if [ ! $idx_file == "-" ]
then
if [ -f $idx_file ]
then
cp $idx_file "$f".ShLaTeX
fi
fi
## on passe dans le r�pertoire de travail
cd "$f".ShLaTeX
## accentuation
if [ $ascii -eq 8 ]
then
## accentuation du fichier latex source
echo "> Accentuation en cours...";
echo -ne "<$fich>"
tex8to7 $fich > /dev/null 2>&1
## �crasement du fichier latex source
mv -f "$fich"7 $fich
## accentuation et �crasement des fichier latex source externes
for fe in $fExt
do
if [ -f "$fe".tex ]
then
echo -ne "<$fe.tex>"
tex8to7 "$fe".tex > /dev/null 2>&1
mv -f "$fe".tex7 "$fe".tex
fi
done
echo ""
fi
## compilation du fichier latex source accuentu�
echo "> Lancement de la compilation latex...";
reslatex=0;
echo "> Compilation (ShLaTeX)" >latex.log
if [ ! $mode == "pdflatex" ]
then
if [ $m -eq 1 ]
then
latex $fich
else
latex $fich >>latex.log 2>&1
fi
reslatex=$?;
else
if [ $m -eq 1 ]
then
pdflatex $fich
else
pdflatex $fich >>latex.log 2>&1
fi
reslatex=$?;
fi
if [ $reslatex -ne 0 ]
then
errcompil=1;
else
echo "premi�re compilation effectu�e avec succ�s.";
fi
## cr�ation de la biliographie et deuxi�me compilation
if [ $bib -eq 1 -a $errcompil -ne 1 ]
then
echo "> Cr�ation de la bibliographie...";
bib_file=`expr match "/$bib_file" '.*/\(.*\)'`;
if [ $ascii -eq 8 ]
then
echo "> Accentuation du fichier \""$bib_file".bib\"...";
tex8to7 "$bib_file".bib > /dev/null 2>&1
echo "<$bib_file.bib>"
mv -f "$bib_file".bib7 "$bib_file".bib
fi
bibtex "$f" > bibtex.log 2>&1
if [ $? -eq 0 ]
then
if [ ! $mode == "pdflatex" ]
then
echo "> Compilation (ShLaTeX)" >>latex.log
latex $fich >>latex.log 2>&1
reslatex=$?;
else
echo "> Compilation (ShLaTeX)" >>latex.log
pdflatex $fich >>latex.log 2>&1
reslatex=$?;
fi
if [ $reslatex -ne 0 ]
then
errcompil=1;
else
echo "deuxi�me compilation effectu�e avec succ�s.";
fi
else
echo -ne "\n";
cat bibtex.log
erreur "probl�me lors de la cr�ation de la bibliographie !";
errbib=1;
fi
fi
## cr�ation d'un index
if [ $idx -eq 1 -a $errcompil -ne 1 -a $errbib -ne 1 ]
then
echo "> Cr�ation de l'index...";
if [ $idx_file == "-" ]
then
makeindex "$f".idx > makeindex.log 2>&1
else
makeindex -s $idx_file "$f".idx > makeindex.log 2>&1
fi
if [ $? -ne 0 ]
then
echo -ne "\n";
cat makeindex.log
cat "$f".ilg 2>/dev/null
erreur "probl�me lors de la cr�ation de l'index !";
errindex=1;
else
errindex=0;
echo "index cr�� avec succ�s.";
fi
fi
## deuxi�me ou troisi�me compilation pour l'index et la table des mati�res
if [ $toc -eq 1 -a $errbib -ne 1 -a $errindex -ne 1 -a $errcompil -ne 1 ]
then
if [ ! $mode == "pdflatex" ]
then
echo "> Compilation (ShLaTeX)" >>latex.log
latex $fich >>latex.log 2>&1
reslatex=$?;
else
echo "> Compilation (ShLaTeX)" >>latex.log
pdflatex $fich >>latex.log 2>&1
reslatex=$?;
fi
if [ $reslatex -ne 0 ]
then
errcompil=1;
else
if [ $bib -eq 1 ]
then
echo "troisi�me compilation effectu�e avec succ�s.";
else
echo "deuxi�me compilation effectu�e avec succ�s.";
fi
fi
fi
## d�placement du fichier dvi ou pdf
if [ $mode == "pdflatex" ]
then
mv "$f".pdf ..
else
mv "$f".dvi ..
fi
## on sort du r�pertoire de travail
cd ..
## conversion du fichier dvi
errconvert=0;
if [ $errbib -ne 1 -a $errindex -ne 1 -a $errcompil -ne 1 -a ! $mode == "pdflatex" -a ! $mode == "dvi" ]
then
echo "> Conversion en cours...";
if [ $mode == "dvipdf" ]
then
dvipdf "$f".dvi "$f".pdf > ./"$f".ShLaTeX/dvipdf.log 2>&1
if [ $? -ne 0 ]
then
echo -ne "\n";
cat ./"$f".ShLaTeX/dvipdf.log
erreur "probl�me de conversion PDF !";
errconvert=1;
fi
elif [ $mode == "dvips" -o $mode == "ps2pdf" ]
then
dvips -Ppdf "$f".dvi -o "$f".ps > ./"$f".ShLaTeX/dvips.log 2>&1
if [ $? -ne 0 ]
then
echo -ne "\n";
cat ./"$f".ShLaTeX/dvips.log
erreur "probl�me de conversion PostScript !";
errconvert=1;
fi
if [ $errconvert -ne 1 ]
then
optpstops="";
if [ $sep -eq 1 ]
then
optpstops="-d";
fi
if [ $ppf -eq 2 ]
then
pstops $optpstops "2:
[email protected](21cm,0cm)
[email protected](21cm,14.85cm)" "$f".ps "$f".2ppf.ps >/dev/null 2>&1
mv "$f".2ppf.ps "$f".ps
elif [ $ppf -eq 4 ]
then
pstops $optpstops "4:
[email protected](0cm,14.85cm)
[email protected](10.5cm,14.85cm)
[email protected](0cm,0cm)
[email protected](10.5cm,0cm)" "$f".ps "$f".4ppf.ps >/dev/null 2>&1
mv "$f".4ppf.ps "$f".ps
fi
if [ $mode == "ps2pdf" ]
then
ps2pdf "$f".ps "$f".pdf > ./"$f".ShLaTeX/ps2pdf.log 2>&1
if [ $? -ne 0 ]
then
echo -ne "\n";
cat ./"$f".ShLaTeX/ps2pdf.log
erreur "probl�me de conversion PDF !";
errconvert=1;
fi
fi
if [ $z -eq 1 ]
then
rm -f "$f".ps.gz
gzip "$f".ps > /dev/null 2>&1
fi
fi
fi
rm -f "$f".dvi
fi
## visualisation du fichier dvi, ps ou pdf
if [ $errconvert -ne 1 -a $errbib -ne 1 -a $errindex -ne 1 -a $errcompil -ne 1 -a $view -eq 1 ]
then
echo "> Lancement de la visualisation du r�sultat.";
case $mode in
"dvi" )
$v_dvi "$f".dvi >/dev/null 2>&1 & ;;
"dvips" )
if [ $z -eq 1 ]
then
$v_ps "$f".ps.gz >/dev/null 2>&1 &
else
$v_ps "$f".ps >/dev/null 2>&1 &
fi ;;
"ps2pdf" | "dvipdf" | "pdflatex" )
$v_pdf "$f".pdf >/dev/null 2>&1 & ;;
esac
fi
## affichage des messages d'erreur de compilation
if [ $errcompil -eq 1 ]
then
if [ $m -eq 0 ]
then
echo -ne "\n";
cat ./"$f".ShLaTeX/latex.log
fi
erreur "probl�me de compilation !";
fi
## suppression des temporaires et sortie
suppressionTemp;
fin;