Pages : 1
#1 Le 25/09/2007, à 11:37
- Gage
LateX et script bash
Bonjour !
Je cherche de l'aide pour un besoin très précis : je voudrais faire des fiches de synthèse pour mes cours en utilisant LateX. Comme je ne veux pas retaper l'en-tête et la mise en page à chaque fiche, je pensais créer un script Nautilus en bash qui, quand je l'exécute par clic-droit sur une fiche au format .tex :
- demande par une fenêtre zenity le titre du cours (je ne peux pas le mettre dans la fiche, celle-ci ne contient que le corps du document et le titre est dans l'en-tête) ;
- crée un script LateX avec le titre du cours, l'en-tête commun + la ligne "\title{titre_du_cours}" et, via la commande \input, insère la fiche que je viens de taper ;
- Exécute le script LateX, qu'il le garde ou non après sur le disque dur ;
- Enregistre la fiche sur le disque dur.
- Range aux bons endroits le log et lesfichier aux.
J'ai réussi à créer un script qui range les logs aux bons endroits, mais il a un problème majeur : il ne détecte pas la fiche (bagatelle !). En effet, en LateX, la commande \input insère un fichier contenu dans le même dossier que le script LateX. Or, si je passe les commandes LateX par un pipe directement à l'interpréteur, le script ne s'exécute plus à partir de nulle part (je crois...), et donc ne trouve pas la fiche que je veux lui faire intégrer.
J'ai envisagé plusieurs solutions :
- Si quelqu'un s'y connaît en interpréteur LateX, trouver un moyen d'indiquer à l'interpréteur LateX l'adresse du fichier à inclure. Ceci permettrait de passer les commandes à l'interpréteur LateX sans créer de fichier source intermédiaire, en tapant les commandes directement dans le script en bash. Pratique pour la propreté du disque dur ^^.
- Créer une première fois, manuellement, un fichier source en .tex contenant l'en-tête commun à toutes mes fiches, soit les infos de mise en page, d'encodage des caractères, etc. Ce fichier source serait ensuite modifié par le script pour y inclure le titre de la fiche, titre qui serait entré par l'utilisateur dans une fenêtre zenity. Cette histoire de titre est la seule raison qui m'empêche de mettre en application cette solution.
- Créer à chaque fois un fichier en .tex, à partir d'un texte commun contenu dans le script, dans le dossier de ma fiche toujours avec cette histoire de titre et de \input, compiler ce fichier avec pdflatex, puis le supprimer fichier à la fin de la compilation.
Les deuxième et troisième solution me semblent simples à mettre en oeuvre, mais il me manque un point essentiel : je ne sais pas s'il existe une commande bash capable de créer ou d'éditer, directement avec le script (autrement dit : sans rien faire manuellement), un fichier texte.
Merci de votre aide !
Par ailleurs, un autre point qui m'a surpris : quand j'ai tenté d'exécuter mes brouillons de script, mes logs de LateX contenaient des caractères typiques de bugs d'encodage, que je n'ai pas réussi à reproduire en tapant le même code en mode console et à la main. Quelqu'un sait-il si bash encode par défaut les caractères en ASCII quand il est lancé depuis un script nautilus et, si c'est le cas, comment forcer l'encodage en Unicode ?
Ça, ce sont les sources. Le mouton que tu veux est dedans.
Merci, c'est tout à fait comme ça que je le voulais ! Crois-tu qu'il faille beaucoup de ressources à ce mouton ? Parce que ma config est toute petite...
Ça devrait aller. Tu peux te compiler un petit mouton.
Pas si petit que ça. Tiens ! il s'est mis en veille...
Hors ligne
#2 Le 25/09/2007, à 12:27
- yohann
Re : LateX et script bash
salut, j'aime beaucoup ta signature...
sinon une redirection de la sortie standard vers un fichier ne resoudrais pas ton pb?
enfin une autre solution que je connais est la commande touch.
qulques exemples pour completer
yohann@mail:~/Desktop$ echo test > test
yohann@mail:~/Desktop$ cat test
testyohann@mail:~/Desktop$ echo test > test
yohann@mail:~/Desktop$ cat test
test
yohann@mail:~/Desktop$ echo test >> test
yohann@mail:~/Desktop$ cat test
test
test
et la commande touch:
touch test
cré un fichier vide nomer test
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#3 Le 25/09/2007, à 13:08
- Gage
Re : LateX et script bash
Super ! C'était ça qui me manquait : une redirection vers un fichier ! Avec ça je vois tout à fait ce que je vais faire comme script.
Merci beaucoup, je pense que je posterai à nouveau pour vos tenir au courant de l'évolution de mon script. Et puis je pense que ça peut intéresser des gens d'avoir une mise en page standard pour LateX.
Ça, ce sont les sources. Le mouton que tu veux est dedans.
Merci, c'est tout à fait comme ça que je le voulais ! Crois-tu qu'il faille beaucoup de ressources à ce mouton ? Parce que ma config est toute petite...
Ça devrait aller. Tu peux te compiler un petit mouton.
Pas si petit que ça. Tiens ! il s'est mis en veille...
Hors ligne
Pages : 1