Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
590 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  script shell pour compilation latex

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

script shell pour compilation latex

n°1009359
choinul
Posté le 08-02-2008 à 13:59:00  profilanswer
 

Bonjour à tous,
 
Je travaille sous linux, je cherche à écrire un script shell permettant d'effectuer les différentes instructions de latex en une ligne. J'ai fait un truc simple avec en paramètre le nom du fichier latex sans son extension :
 

Code :
  1. latex $1
  2. latex $1
  3. dvips -G0 -t landscape -o $1.ps $1
  4. ps2pdf14 $1.ps $1.pdf


 
Le problème avec ce code, c'est que lorsque j'ai une erreur de compilation du latex, il exécute tout de même la suite de programme, et ça prend du temps...
 
J'aimerai donc arriver à ignorer la suite si les étapes de compilation latex plantent.
Est-ce que quelqu'un sait comment faire (je ne suis pas un pro en script shell )!
 
Merci d'avance!

mood
Publicité
Posté le 08-02-2008 à 13:59:00  profilanswer
 

n°1009362
franceso
Posté le 08-02-2008 à 14:14:43  profilanswer
 

choinul a écrit :

Je travaille sous linux, je cherche à écrire un script shell permettant d'effectuer les différentes instructions de latex en une ligne.

Très bonne initiative. Je vois trop de collègues se prendre la tête à toujours taper les instructions à la main alors qu'un simple script peut automatiser tout ça.
 
Une autre méthode (plus puissante que le shell-script à mon avis) est le Makefile. Si tu as quelques notions de makefile, tu peux avantageusement passer à ce système je pense.
 
 

choinul a écrit :

Le problème avec ce code, c'est que lorsque j'ai une erreur de compilation du latex, il exécute tout de même la suite de programme, et ça prend du temps...
 
J'aimerai donc arriver à ignorer la suite si les étapes de compilation latex plantent.
Est-ce que quelqu'un sait comment faire (je ne suis pas un pro en script shell )!

Deux solutions :
1- tu mets un switch -e à l'exécution de ton shell, pour que le script s'arrête dès qu'une instruction plante.
2- tu écris un truc du genre :

latex $1 \
&& latex $1



---------------
TriScale innov
n°1009367
choinul
Posté le 08-02-2008 à 14:25:34  profilanswer
 

Merci beaucoup franceso pour cette réponse rapide.
 
J'ai donc fait le code suivant qui fonctionne très bien :
 

Code :
  1. latex $1 \
  2. &&
  3. latex $1 \
  4. &&
  5. dvips -G0 -t landscape -o $1.ps $1 \
  6. &&
  7. ps2pdf14 $1.ps $1.pdf


 
En ce qui concerne le makefile, si tu as un exemple qui fonctionne bien, je suis preneur! (j'ai quelques notions mais ça me paraissait plus facile à mettre en place en shell)

n°1009372
matafan
Posté le 08-02-2008 à 14:36:14  profilanswer
 

Quand tu plus de 2-3 commandes à enchainer il est quand même plus simple de sortir en cas d'erreur que d'enchainer les && :

latex $1 || exit
latex $1 || exit
dvips -G0 -t landscape -o $1.ps $1 || exit
ps2pdf14 $1.ps $1.pdf

n°1009376
franceso
Posté le 08-02-2008 à 14:47:15  profilanswer
 

Pour mes gros projets, j'ai mis au point un système qui recompile juste le nombre de fois qu'il faut :
- Makefile : le makefile qui fait le boulot
- makedepend.pl : un script perl qui détermine les dépendances de ton latex (pour savoir si on doit recompiler ou non).
 
Chez moi, ça marche bien... mais je n'ai jamais testé ailleurs alors ça pourrait bien foirer. (et je ne prétends pas avoir fait un truc propre ; au départ c'est juste pour mon usage perso... donc soyez indulgents :sweat: )


---------------
TriScale innov
n°1009377
choinul
Posté le 08-02-2008 à 14:51:08  profilanswer
 

matafan a écrit :

Quand tu plus de 2-3 commandes à enchainer il est quand même plus simple de sortir en cas d'erreur que d'enchainer les && :

latex $1 || exit
latex $1 || exit
dvips -G0 -t landscape -o $1.ps $1 || exit
ps2pdf14 $1.ps $1.pdf



 
Oui, c'est vrai, c'est plus propre! Merci. :)  

n°1009378
choinul
Posté le 08-02-2008 à 14:54:38  profilanswer
 

franceso a écrit :

Pour mes gros projets, j'ai mis au point un système qui recompile juste le nombre de fois qu'il faut :
- Makefile : le makefile qui fait le boulot
- makedepend.pl : un script perl qui détermine les dépendances de ton latex (pour savoir si on doit recompiler ou non).
 
Chez moi, ça marche bien... mais je n'ai jamais testé ailleurs alors ça pourrait bien foirer. (et je ne prétends pas avoir fait un truc propre ; au départ c'est juste pour mon usage perso... donc soyez indulgents :sweat: )


 
Merci pour ces exemples, il va falloir que je les regarde de plus près car il faut que je lance ma compilation en paysage pour ma présentation beamer.
En tout cas, c'est plus compliqué que le simple script shell. Mais c'est vrai que sur des gros projets, ça peut faire gagner du temps. :sol:

n°1009381
franceso
Posté le 08-02-2008 à 15:01:28  profilanswer
 

choinul a écrit :


 
Merci pour ces exemples, il va falloir que je les regarde de plus près car il faut que je lance ma compilation en paysage pour ma présentation beamer.
En tout cas, c'est plus compliqué que le simple script shell. Mais c'est vrai que sur des gros projets, ça peut faire gagner du temps. :sol:

Normalement, tu n'as pas trop besoin de regarder ce qu'il y a à l'intérieur du Makefile : le fait que ce soit du beamer ou autre ne change rien à la compilation...
 


---------------
TriScale innov
n°1009382
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 08-02-2008 à 15:03:53  profilanswer
 

Pour les doc pas trop long j'utilise un Makefile très con, qui fait 3 fois pdflatex
 

FILE=file.pdf
 
CC := pdflatex
 
.PHONY: all
all: $(FILE)
 
%.pdf: %.tex
 $(CC) --shell-escape $<
 $(CC) --shell-escape $<
 $(CC) --shell-escape $<
 
clean:
 rm -f *.mtc* *.log *.aux *.lof *.toc *.ptc* *.bmt *.bbl *.out *.blg *.ptc1 *.backup *.glo *.gls *.ilg *.lot


 
J'en ai un plus intelligent en stock, à l'occasion je regarderai  :o


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°1009386
choinul
Posté le 08-02-2008 à 15:12:12  profilanswer
 

En fait, je ne peux pas utiliser pdflatex car j'utilise des figures .eps et ça plante  en général... ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  script shell pour compilation latex

 

Sujets relatifs
[Shell] Supprimer des fichiers en fonction de la dateCréer un rpm à partir de fichiers sans compilation
[uClinux] Erreurs à la compilationtraitement de texte LATEX
script de connexion[rech] PHP script webmail multi-emails
script de connexionlancer un script bash qui tourne en boucle au demarrage
[Pas résolu !] Problème de script Bash dans script Perl 
Plus de sujets relatifs à : script shell pour compilation latex


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR