diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/shlatex/fr |
Initial commit
Diffstat (limited to 'support/shlatex/fr')
-rw-r--r-- | support/shlatex/fr/CHANGELOG.TXT | 165 | ||||
-rw-r--r-- | support/shlatex/fr/README.TXT | 40 | ||||
-rw-r--r-- | support/shlatex/fr/ShLaTeX | 1617 | ||||
-rw-r--r-- | support/shlatex/fr/install | 102 | ||||
-rw-r--r-- | support/shlatex/fr/man/cman | 21 | ||||
-rw-r--r-- | support/shlatex/fr/man/shlatex.1.bz2 | bin | 0 -> 3521 bytes | |||
-rw-r--r-- | support/shlatex/fr/man/shlatex.pdf | bin | 0 -> 96868 bytes | |||
-rw-r--r-- | support/shlatex/fr/test/biblio.bib | 7 | ||||
-rw-r--r-- | support/shlatex/fr/test/externe.tex | 2 | ||||
-rw-r--r-- | support/shlatex/fr/test/test | 15 | ||||
-rw-r--r-- | support/shlatex/fr/test/test.tex | 63 | ||||
-rw-r--r-- | support/shlatex/fr/uninstall | 38 |
12 files changed, 2070 insertions, 0 deletions
diff --git a/support/shlatex/fr/CHANGELOG.TXT b/support/shlatex/fr/CHANGELOG.TXT new file mode 100644 index 0000000000..13138faf5f --- /dev/null +++ b/support/shlatex/fr/CHANGELOG.TXT @@ -0,0 +1,165 @@ +------ v1.2b ------ + +o 21/08/2003 15:15 + - Correction d'un bogue dans tex8to7. + - les CTRL^C sont maintenant supportés. + +o 17/08/2003 00:36 + - Correction d'un bogue (suppression de la concaténation des fichiers de log + pour dvipdf, dvips et ps2pdf). + +o 06/08/2003 14:35 + - Nouvelle version de tex8to7 (v1.1c). + +o 05/08/2003 00:15 + - Correction du bogue lors de la compilation avec un fichier de + bibliographie ayant un nom différent du fichier tex. + - Modification du test de façon à utiliser un tel fichier de bibliographie. + + +------ v1.2a ------ + +o 22/07/2003 13:47 + - Correction d'un bogue dans la manipulation des fichiers externes. + +o 21/07/2003 23:20 + - Correction d'un bogue dans tex8to7 (problème avec "\\{" et les guillemets + imbriqués). + - Les fichiers externes peuvent désormais être dans un répertoire différent + de celui du fichier LaTeX principal. + +o 17/07/2003 21:30 + - Les fichiers TODO.TXT sont fusionnés en un unique fichier du même nom + placé à la racine du projet en version anglaise uniquement. + +o 09/07/2003 00:50 + - Les scripts d'installation et de désinstallaion ont été remaniés afin + d'être plus souples. ils vérifient maintenant la présence des fichiers + indispensables à l'installation. + + +------ v1.2 ------ + +o 03/07/2003 23:35 + - Sortie de la première version anglaise du script. + + +------ v1.1b ------ + +o 25/06/2003 16:27 + - Ajout des options "-toc" et "-no-toc" pour activer ou désactiver la + compilation supplémentaire pour la table des matières. + + +------ v1.1a ------ + +o 24/06/2003 12:32 + - Élimination d'un bogue : lors de l'affichage, le visionneur n'était pas + pris en compte (oubli lors du changement de version). + +o 24/06/2003 14:25 + - Les commandes "\og" et "\fg" peuvent désormais être imbriquées à l'aide de + paires d'accolades. + - Le programme tex8to7 supporte maintenant les options "-?" et "-v" en ligne + de commande. + + +------ v1.1 ------ + +o 19/06/2003 12:50 + - Support d'un fichier de préférences nommé ".shlatex" et placé dans le + répertoire personnel de l'utilisateur. + - Renommage des options suivantes : + --bibliographie --> --bibliography + --temporaires --> --temporary + --separateur --> --separator + -l --log --> -m --messages + -aff --afficheur --> -view --viewer + -sil --silencieux --> -no-view --no-viewer + Les options -view et -no-view permettent seulement d'activer ou de + désactiver la visualisation finale. Le visualiseur utilisé est précisé avec + les trois nouvelles options suivantes : + -v-ps --view-ps-with + -v-pdf --view-pdf-with + -v-dvi --view-dvi-with + - Ajout d'options permettant de contre-carer les effets du fichier de + préférences. les nouvelles options sont : -dvi, -no-idx, -no-bib, -no-tmp, + -no-z, -1, -no-sep, -no-m, -view et -8. + - Légère optimisation du script par le remplacement de variables chaînes par + des variables entières. + - Le test utilise les fichiers externes. + + +------ v1.0d ------ + +o 18/06/2003 10:03 + - Renommage du script de "sLaTeX" en "ShLaTeX" car le nom sLaTeX existe déjà, + c'est le nom d'un package qui permet d'écrire du Scheme dans un fichier + LaTeX. + - Pré-support pour les fichiers externes inclus dans le source tex principal + avec les commandes "\input" et "\include". + - Amélioration de la version PDF du manuel. + - Les fichiers de log ne sont plus effacés sauf après la compilation si + l'option -tmp n'est pas utilisée. Tous les fichiers de log se trouvent dans + le répertoire de travail. + + +------ v1.0c ------ + +o 14/05/2003 20:16 + - Élimination d'un bogue sur l'affichage de l'aide (option -?). + +o 07/05/2003 08:30 + - Élimination d'un bogue sur les arguments optionnels de -idx et -bib. + +o 05/05/2003 15:35 + - L'option -idx admet maintenant un argument optionnel pour spécifier un + fichier de style pour l'index. + - L'option -bib admet maintenant un argument optionnel pour spécifier un + fichier de bibliographie bibtex. + +o 04/05/2003 00:39 + - Ajout d'un test aux scripts "install" et "uninstall" pour vérifier qu'ils + sont bien exécutés par root. + - Correction d'un bogue de la fonction d'erreur. + +o 01/05/2003 13:38 + - Les messages d'erreur apparaissent désormais après le log latex, bibtex ou + makeindex. + - Ajout d'une note pour l'installation manuelle dans le fichier + LISEZ-MOI.TXT. + + +------ v1.0b ------ + +o 29/04/2003 00:35 + - Élimination du message d'aide rapide après les erreurs de compilation ou + de conversion. + - Mise en place de messages d'avertissement pour les options réservées + PostScript. + - Options -2 et -4 pour avoir des fichiers PostScript ayant 2 ou 4 pages par + feuille. + - Option -sep pour délimiter les pages dans les fichiers ayant 2 ou 4 pages + par feuille. + +o 27/04/2003 21:54 + - Option -z pour la compression des fichiers PostScript. + - Option -l pour afficher les messages LaTeX. + - Création d'un répertoire temporaire lors de la compilation. + - Option -7 permettant de désactiver l'accentuation (utile pour les + anglophones ou les utilisateurs du package fontenc). + - Affichage de l'aide complète avec groff et less. + + +------ v1.0a ------ + +o 31/03/2003 19:33 + - Ajout des fichiers ".out" aux temporaires. + - Correction d'une erreur dans le manuel : dans la section DESCRIPTION + remplacement de "-sil" par "-tmp". + + +------ v1.0 ------ + +[...] + diff --git a/support/shlatex/fr/README.TXT b/support/shlatex/fr/README.TXT new file mode 100644 index 0000000000..3a9fc31adf --- /dev/null +++ b/support/shlatex/fr/README.TXT @@ -0,0 +1,40 @@ +ShLaTeX version 1.2b-fr -- Script de compilation LaTeX pour Linux.
+Copyright (C) 2003 Mael Hilléreau (mael.hillereau@free.fr)
+
+Ce programme est soumis aux termes de la Licence Publique Générale GNU. La GNU
+GPL est fournie avec ce programme (fichier "GPL.TXT").
+
+
+o Installation :
+ ouvrir une session root et exécuter le script "install".
+
+o Désinstallation :
+ ouvrir une session root et exécuter le script "uninstall".
+
+o Installation Manuelle :
+
+ Si vous ne disposez pas des droits de root, vous pouvez utiliser ShLaTeX de
+ la façon suivante :
+
+ - Compilez le programme "tex8to7" :
+
+ cd ../src
+ gcc tex8to7.c -o tex8to7
+
+ le fichier "tex8to7" est alors créé.
+
+ - Copiez le script "ShLaTeX" et le fichier "tex8to7" dans un répertoire
+ accessible (i.e. qui soit dans la variable d'environnement PATH).
+
+ cp tex8to7 <rép>
+ cp ../fr/ShLaTeX <rép>
+
+ où <rép> est le répertoire que vous avez choisi.
+
+ - Changez les droits de ces fichiers afin de pouvoir les exécuter :
+
+ cd <rép>
+ chmod 755 tex8to7 ShLaTeX
+
+ - Vous pouvez alors utiliser le script...
+
diff --git a/support/shlatex/fr/ShLaTeX b/support/shlatex/fr/ShLaTeX new file mode 100644 index 0000000000..aabc85c266 --- /dev/null +++ b/support/shlatex/fr/ShLaTeX @@ -0,0 +1,1617 @@ +#!/bin/bash +############################################################################### +# # +# ShLaTeX # +# # +############################################################################### +# # +# Auteur: Mael Hilléreau # +# Mél : mael.hillereau@free.fr # +# 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 : mael.hillereau@free.fr +.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:0L@.7(21cm,0cm)+1L@.7(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:0@.5(0cm,14.85cm)+1@.5(10.5cm,14.85cm)+2@.5(0cm,0cm)+3@.5(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; diff --git a/support/shlatex/fr/install b/support/shlatex/fr/install new file mode 100644 index 0000000000..be336113d2 --- /dev/null +++ b/support/shlatex/fr/install @@ -0,0 +1,102 @@ +#!/bin/bash +# Script d'installation pour ShLaTeX +# Attention : vous devez être root pour exécuter ce script ! +# Ce script doit être exécuté dans le répertoire de ShLaTeX. + +# variables d'installation +user=`whoami`; +version="1.2b-fr"; + +# fichiers d'installation +gpl="../GPL.TXT"; +src="../src"; +tex8to7="../src/tex8to7.c"; +man="./man/shlatex.1.bz2"; +shlatex="./ShLaTeX"; +todo="../TODO.TXT"; +fichInstall="$gpl $tex8to7 $man $shlatex $todo"; + +# répertoires d'installation +cheminMan="/usr/share/man/fr/man1"; +cheminExec="/usr/bin"; +cheminScript="/usr/share"; +repInstall="$cheminMan $cheminExec $cheminScript"; + +# vérification de l'identité de l'appelant +if [ ! $user == "root" ] +then + echo -ne "> Erreur : vous devez être 'root' pour exécuter ce script\n"; + echo -ne " Se reporter au fichier README.TXT pour plus d'informations.\n"; + exit 1; +fi + +# vérification de l'abscence de cette version n'est pas déjà installée +if [ -d "$cheminScript/shlatex-$version" ] +then + echo "ShLaTeX $version est déjà installé sur votre système." + echo "Pour le réinstaller, veuillez d'abord le désinstaller." + exit 2; +fi + +# vérification de l'existence des répertoires cibles, création le cas échéant +for rep in $repInstall +do + if [ ! -d "$rep" ] + then + echo -ne "> Avertissement : impossible de trouver \"$rep\", création du répertoire...\n"; + mkdir -p "$rep" + fi +done + +# vérification de l'existence des fichiers d'installation +for fich in $fichiersInstall +do + if [ ! -f "$fich" ] + then + echo -ne "> Erreur : impossible de trouver le fichier \"$fich\", ce fichier est nécessaire pour l'installation !\n"; + exit 3; + fi +done + +cat $gpl | more + +echo -ne "\n\n" + +rpse="-"; +until [ "$rpse" == "o" -o "$rpse" == "n" ] +do + read -p "Êtes-vous d'accord avec les termes de la licence GNU GPL (o/n) ? " rpse +done + +if [ ! "$rpse" == "o" ] +then + echo "> Installation annulée." + exit 1; +fi + +clear + +echo -ne "> Installation en cours...\n" +echo -ne "> Compilation en cours...\n" +gcc $tex8to7 -o tex8to7 +echo -ne "> Installation de tex8to7...\n" +cp ./tex8to7 "$cheminExec/tex8to7" +rm -f tex8to7 +chmod 755 "$cheminExec/tex8to7" +echo -ne "> Installation de la page de man...\n" +cp $man "$cheminMan/shlatex.1.bz2" +chmod 644 "$cheminMan/shlatex.1.bz2" +echo -ne "> Installation du script...\n" +mkdir "$cheminScript/shlatex-$version" +cp -fR * $gpl $src $todo "$cheminScript/shlatex-$version" +chmod -R 755 "$cheminScript/shlatex-$version" +if [ ! -L "$cheminExec/ShLaTeX" ] +then + ln -s "$cheminScript/shlatex-$version/ShLaTeX" "$cheminExec/ShLaTeX" +fi +ln -s "$cheminScript/shlatex-$version/ShLaTeX" "$cheminExec/ShLaTeX-$version" +echo -ne "> Test en cours...\n" +cd "$cheminScript/shlatex-$version/test" +chmod 755 ./test +./test +echo -ne "> Terminé.\n\n" diff --git a/support/shlatex/fr/man/cman b/support/shlatex/fr/man/cman new file mode 100644 index 0000000000..a0262dd427 --- /dev/null +++ b/support/shlatex/fr/man/cman @@ -0,0 +1,21 @@ +#!/bin/bash +# script de conversion du manuel en PDF et ascii. + +if [ ! -f shlatex.1 ] +then + bunzip2 shlatex.1.bz2 +fi +cp shlatex.1 "shlatex.help" +groff -mandoc -Tps shlatex.1 > shlatex.ps +bzip2 shlatex.1 +pstops -pa4 -w21cm -h29.7cm "1:0(-0.3cm,-1.5cm)" shlatex.ps shlatexA4.ps +mv shlatexA4.ps shlatex.ps +ps2pdf13 shlatex.ps +rm -f shlatex.ps +#acroread shlatex.pdf & + +rplc "\\" "\\\\" "`cat shlatex.help`" > "shlatex.help" +rplc "\"" "\\\"" "`cat shlatex.help`" > "shlatex.help" +manuel=`cat shlatex.help`; +echo "echo \"$manuel\";" > "shlatex.help" + diff --git a/support/shlatex/fr/man/shlatex.1.bz2 b/support/shlatex/fr/man/shlatex.1.bz2 Binary files differnew file mode 100644 index 0000000000..f4040190a1 --- /dev/null +++ b/support/shlatex/fr/man/shlatex.1.bz2 diff --git a/support/shlatex/fr/man/shlatex.pdf b/support/shlatex/fr/man/shlatex.pdf Binary files differnew file mode 100644 index 0000000000..fbbfbbd3f8 --- /dev/null +++ b/support/shlatex/fr/man/shlatex.pdf diff --git a/support/shlatex/fr/test/biblio.bib b/support/shlatex/fr/test/biblio.bib new file mode 100644 index 0000000000..d47c006fb7 --- /dev/null +++ b/support/shlatex/fr/test/biblio.bib @@ -0,0 +1,7 @@ +@MANUAL{bib:manuel,
+ title= {Manuel d'utilisation\index{M!Manuel d'utilisation}},
+ author= {Mael Hilléreau},
+ month= {Mars},
+ year= {2003},
+ note= {Page de manuel Linux (taper \texttt{man shlatex} pour le consulter)},
+}
diff --git a/support/shlatex/fr/test/externe.tex b/support/shlatex/fr/test/externe.tex new file mode 100644 index 0000000000..4fc9c38153 --- /dev/null +++ b/support/shlatex/fr/test/externe.tex @@ -0,0 +1,2 @@ +\par Il est possible de compiler les documents qui utilisent les commandes +\verb|\input| et \verb|\include| pour faire référence à des fichiers externes. diff --git a/support/shlatex/fr/test/test b/support/shlatex/fr/test/test new file mode 100644 index 0000000000..7d6c9ebe36 --- /dev/null +++ b/support/shlatex/fr/test/test @@ -0,0 +1,15 @@ +#!/bin/bash +# un petit test pour le script ShLaTeX + +version="1.2b-fr"; +lignecom="ShLaTeX-$version -bib biblio.bib -toc -idx -dvips -z -2 -sep -no-tmp -no-m -8 -view -v-ps gv test.tex"; + +$lignecom +if [ $? -ne 0 ] +then + echo -ne "> Erreur lors du test !\n"; +else + echo -ne "> Test OK.\n"; +fi + +echo -ne "> Commande utilisée :\n$lignecom\n"; diff --git a/support/shlatex/fr/test/test.tex b/support/shlatex/fr/test/test.tex new file mode 100644 index 0000000000..759bb34d0b --- /dev/null +++ b/support/shlatex/fr/test/test.tex @@ -0,0 +1,63 @@ +% Un petit test pour ShLaTeX
+\documentclass[a4paper,11pt]{article}
+
+\usepackage[frenchb]{babel}
+\usepackage{makeidx}
+\usepackage{graphicx}
+
+\newcommand{\shlatex}{\raisebox{0.05em}{\rotatebox{-6}{\scalebox{1.1}{S}}}\kern-0.2em\raisebox{-0.115em}{\rotatebox{14}{\scalebox{0.8}{$h$}}}\kern0.05em\LaTeX\xspace}
+
+\makeindex
+
+\title{\shlatex\footnote{Une description complète et à jour est disponible dans \cite{bib:manuel}.
+ }\ -- Script de compilation \LaTeX\ pour Linux.}
+\author{Mael Hilléreau}
+\date{le 12 Mars 2003}
+
+
+\begin{document}
+\maketitle
+\tableofcontents
+
+\section{Nom}
+ \shlatex\index{S!\shlatex}\ -- Script de compilation \LaTeX\index{L!\LaTeX}\ pour Linux.
+
+\section{Synopsis\index{S!Synopsis}}
+\par
+ \texttt{ShLaTeX [}\textit{options}\texttt{]} \texttt{fichierSource.tex}
+
+\section{Description}
+\subsection{Un début}
+
+\par 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 \texttt{latex} indispensables pour créer une table des matières
+\index{T!Table des matières}, une bibliographie\index{B!Bibliographie} \textsc{Bib}\TeX
+\index{B!\textsc{Bib}\TeX} ou un index\index{I!Index} sont effectuées automatiquement.
+Sont également gérés les appels aux programmes \texttt{bibtex\index{B!bibtex}} et
+\texttt{makeindex\index{M!makeindex}}.
+
+\input{externe.tex}
+
+\subsection{Une suite}
+\par Une fois la compilation effectuée, les fichiers temporaires sont effacés,
+à moins que l'option \textbf{-tmp} n'ait été utilisée. Les fichiers DVI générés par
+\LaTeX\ sont alors directement convertis\index{C!Conversion} au format PostScript ou
+PDF. [\dots]
+
+\subsection{La suite d'une suite}
+\par Ce script prend aussi en charge l'accentuation des caractères français par
+l'intermédiaire d'un programme C externe (nommé \texttt{tex8to7}) 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 \verb|\og| et
+\verb|\fg| (cela suppose que les guillemets soient appariés).
+
+\subsection{La suite de la suite d'une suite}
+\par Oui mais là je n'ai plus grand chose à dire alors\dots
+
+\newpage
+ \bibliographystyle{alpha}
+ \bibliography{biblio.bib}
+
+\printindex
+\end{document}
diff --git a/support/shlatex/fr/uninstall b/support/shlatex/fr/uninstall new file mode 100644 index 0000000000..a6e467d611 --- /dev/null +++ b/support/shlatex/fr/uninstall @@ -0,0 +1,38 @@ +#!/bin/bash +# Script de désinstallation pour ShLaTeX +# Attention : vous devez être root pour exécuter ce script ! + +user=`whoami`; +version="1.2b-fr"; +cheminMan="/usr/share/man/fr/man1"; +cheminExec="/usr/bin"; +cheminScript="/usr/share"; + +if [ ! $user == "root" ] +then + echo "> Erreur : vous devez être 'root' pour exécuter ce script"; + echo " Se reporter au fichier README.TXT pour plus d'informations."; + exit 1; +fi + +if [ ! -d "$cheminScript/shlatex-$version" ] +then + echo "> Avertissement : le script ShLaTeX-$version semble ne pas être installé !"; +fi + +echo -ne "\n> Désinstallation en cours...\n" +cd / + +rm -f "$cheminExec/ShLaTeX-$version" +rm -f "$cheminMan/shlatex.1.bz2" +rm -fr "$cheminScript/shlatex-$version" +if [ "`ls $cheminScript | grep "^shlatex-"`" == "" ] +then + rm -f "$cheminExec/tex8to7" + rm -f "$cheminExec/ShLaTeX" +else + echo "> Avertissement : une autre version de ShLaTeX semble être présente" + echo " Le programme tex8to7 n'a pas été effacé." +fi +echo -ne "> Terminé.\n\n" +cd - |