![]() |
| |||||||
| S'inscrire | FAQ | Membres | Calendrier | Recherche | Messages du jour | Marquer les forums comme lus |
![]() |
| LinkBack | Outils de la discussion | Modes d'affichage |
| | ||||
| ||||
| |
| |||
| Yves a écrit : > Bonsoir. > Voil�, j'ai un script cgi (apache) qui compile un document LaTeX puis > transmet des donn�es � une page html. > Quelqu'un aurait-il un moyen simple de r�cup�rer le nombrede pages > produites par LaTeX ? En bout de compilation, LaTeX dit ceci Output written on monfichier.dvi (18 pages, 107492 bytes). Un bon grep dans le fichier log peut te permettre de récupérer le nombre de pages (18 en l'occurrence). Y'a surement une méthode moins sioux, mais au cas où tu serais désespéré, c'est toujours une méthode. Bon WE Laurent |
| |||
| moky a écrit : > > En bout de compilation, LaTeX dit ceci > Output written on monfichier.dvi (18 pages, 107492 bytes). > > Un bon grep dans le fichier log peut te permettre de récupérer le > nombre de pages (18 en l'occurrence). > Y'a surement une méthode moins sioux, mais au cas où tu serais > désespéré, c'est toujours une méthode. > > Bon WE > Laurent Merci. Je ne connais pas trop la syntaxe de grep, pourrais-tu m'aider encore un peu ? |
| |||
| Le 20-01-2008, Yves <yeb***free.fr> a écrit***: > moky a écrit : >> >> En bout de compilation, LaTeX dit ceci >> Output written on monfichier.dvi (18 pages, 107492 bytes). >> >> Un bon grep dans le fichier log peut te permettre de récupérer le >> nombre de pages (18 en l'occurrence). [...] > Merci. Je ne connais pas trop la syntaxe de grep, pourrais-tu m'aider > encore un peu ? grep '^Output written on .*\.dvi' monfichier.log Mais pour extraire l'information, Sed et Awk sont plus adaptés : sed -n -e '/^Output written on .*\.dvi (/{ s/// s/ pages,.*// p q }' <monfichier.log ou (en comptant les champs à partir de la droite (au cas où le nom de fichier contiendrait des espaces (c'est Mal©))) : awk '/^Output written on .*\.dvi \(/{ np=$(NF-3);sub("[(]","",np);print np;exit}' <monfichier.log -- Jacques L'helgoualc'h |
| |||
| À (at) Sun, 20 Jan 2008 21:05:36 +0100, Yves <yeb***free.fr> nous disait (told us): > moky a écrit : >> En bout de compilation, LaTeX dit ceci >> Output written on monfichier.dvi (18 pages, 107492 bytes). >> Un bon grep dans le fichier log peut te permettre de récupérer le >> nombre de pages (18 en l'occurrence). >> Y'a surement une méthode moins sioux, mais au cas où tu serais >> désespéré, c'est toujours une méthode. >> Bon WE >> Laurent > > Merci. Je ne connais pas trop la syntaxe de grep, pourrais-tu m'aider > encore un peu ? ça dépend du langage du CGI... si c'est du Perl, pas la peine de passer par sed/awk ou autre... -- Une solution radicale pour que les LaTeXiens ne hurlent pas et de ne pas montrer votre code source :-) -+- Jean-Côme in fr.comp.text.tex -+- |
| |||
| On Sat, 19 Jan 2008 18:32:06 +0200, moky <moky.math***gmail.com> wrote: >> Voil�, j'ai un script cgi (apache) qui compile un document LaTeX puis >> transmet des donn�es � une page html. >> Quelqu'un aurait-il un moyen simple de r�cup�rer le nombre de pages >> produites par LaTeX ? > En bout de compilation, LaTeX dit ceci > Output written on monfichier.dvi (18 pages, 107492 bytes). Tiens, j'élargis un peu la question, par curiosité : y-a-il moyen de le faire dans LaTeX, sans passer par dehors ? Par exemple pour faire un rapport technique où toutes les pages seraient numérotées "page 1/5, page 2/5" (ce qui est pas joli, mais admettons qu'on ai besoin de le faire). Je vois bien une solution qui est de mettre un \label Ã*** l'extrême fin du texte, et de l'appeler Ã*** coup de \pageref; mais ça tient du bricolage, et ça risque de foirer si on a des flottants par exemple (qui seront sur les pages après ce "dernier" label). Existe--til une méthode plus propre ? JF |
| |||
| Le 21/01/2008 10:55, Jean-François Moyen a écrit : > On Sat, 19 Jan 2008 18:32:06 +0200, moky <moky.math***gmail.com> wrote: > > Tiens, j'élargis un peu la question, par curiosité : y-a-il moyen de le > faire dans LaTeX, sans passer par dehors ? Par exemple pour faire un > rapport technique où toutes les pages seraient numérotées "page 1/5, > page 2/5" (ce qui est pas joli, mais admettons qu'on ai besoin de le > faire). > > Je vois bien une solution qui est de mettre un \label Ã*** l'extrême fin du > texte, et de l'appeler Ã*** coup de \pageref; mais ça tient du bricolage, > et ça risque de foirer si on a des flottants par exemple (qui seront sur > les pages après ce "dernier" label). Existe--til une méthode plus propre ? > > JF Cf. le package lastpage F. Pétiard |
| |||
| Thomas vO a écrit : > À (at) Sun, 20 Jan 2008 21:05:36 +0100, > Yves <yeb***free.fr> nous disait (told us): >> moky a écrit : >>> En bout de compilation, LaTeX dit ceci >>> Output written on monfichier.dvi (18 pages, 107492 bytes). >>> Un bon grep dans le fichier log peut te permettre de récupérer le >>> nombre de pages (18 en l'occurrence). >>> Y'a surement une méthode moins sioux, mais au cas où tu serais >>> désespéré, c'est toujours une méthode. >>> Bon WE >>> Laurent >> Merci. Je ne connais pas trop la syntaxe de grep, pourrais-tu m'aider >> encore un peu ? > > ça dépend du langage du CGI... si c'est du Perl, pas la peine de > passer par sed/awk ou autre... > C'est du bash. Merci en tout cas à Jacques pour sa solution (ça m'aurait pris pas mal de temps pour la trouver...), je la teste dès que possible. |
| |||
| Jacques L'helgoualc'h a écrit : > > awk '/^Output written on .*\.dvi \(/{ > np=$(NF-3);sub("[(]","",np);print np;exit}' <monfichier.log > Merci, ça marche dans un terminal. Maintenant, je n'arrive pas à récupérer le résultat dans une variable. J'ai essayé : nbpages = `awk '/^Output written on .*\.dvi \(/{ np=$(NF-3);sub("[(]","",np);print np;exit}' <monfichier.log` mais ça ne marche pas (j'avoue, je suis nul en bash :-(). |
| |||
| Le 21-01-2008, Yves <yeb***free.fr> a écrit***: > Jacques L'helgoualc'h a écrit : >> >> awk '/^Output written on .*\.dvi \(/{ >> np=$(NF-3);sub("[(]","",np);print np;exit}' <monfichier.log >> > Merci, ça marche dans un terminal. > Maintenant, je n'arrive pas à récupérer le résultat dans une variable. > J'ai essayé : > nbpages = `awk '/^Output written on .*\.dvi \(/{ > np=$(NF-3);sub("[(]","",np);print np;exit}' <monfichier.log` > mais ça ne marche pas (j'avoue, je suis nul en bash :-(). Bash n'est pas le langage le plus convivial :/ Ici, ce sont les espaces autour du signe = qui gênent, et il vaut mieux utiliser $() que ` `... nbpages="$(awk '/^Output written on .*\.dvi \(/{ np=$(NF-3);sub("[(]","",np);print np;exit}' <monfichier.log)" devrait aller ? -- Jacques L'helgoualc'h |
| |||
| Jacques L'helgoualc'h a écrit : > Bash n'est pas le langage le plus convivial :/ > > Ici, ce sont les espaces autour du signe = qui gênent, et il vaut mieux > utiliser $() que ` `... > > nbpages="$(awk '/^Output written on .*\.dvi \(/{ > np=$(NF-3);sub("[(]","",np);print np;exit}' <monfichier.log)" > > devrait aller ? J'avais essayé $() mais c'était les espaces qui posaient problème : il fallait y penser (effectivement, en terme de convivialité). Ceci dit, les éditeurs de texte sont bien pratiques : j'avais remarqué que 'nbpages' ne s'affichait pas dans la couleur d'une variable. J'enleve les espaces et hop ! C'est magique quand même l'informatique (quand ça marche)... Merci beaucoup Jacques, problème résolu. |
| |
| |
![]() |
| Tags: nombre, pages, sortir |
| Outils de la discussion | |
| Modes d'affichage | |
| |
| ||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| nombre de pages dans une section | thierry.gartner | Newsgroup microsoft.public.fr.word | 7 | 13/08/2008 21h46 |
| Word 2007 et N° et nombre de pages en bas de page | Flupke | Newsgroup microsoft.public.fr.word | 1 | 15/06/2008 08h07 |
| Word 2003 : nombre de lignes différent selon les pages | renaud.marhic | Newsgroup microsoft.public.fr.word | 3 | 18/04/2008 13h54 |
| Compter le nombre de pages à imprimer | bcar | Newsgroup microsoft.public.fr.excel | 23 | 14/02/2008 14h41 |
| Nombre d'heures et nombre de jours (cadre) | pas de nom | Newsgroup fr.misc.droit.travail | 3 | 24/12/2007 10h50 |