[ok]Exporter le corps du document dans un fichier auxiliaire

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[ok]Exporter le corps du document dans un fichier auxiliaire

Messagepar evariste_G » Jeudi 08 Juin 2017, 10:32

Bonjour.

Je souhaite créer un sty dans lequel j'ai besoin de sauvegarder tout ce qu'il y a dans l'environnement \begin{document} \end{document} dans un fichier auxiliaire.
Pour cela, j'utilise
Code: Tout sélectionner
\AtBeginDocument{}
\AtEndDocument{}

mais je n'arrive pas à sauvegarder le contenu. J'ai tenté avec le package fancyvrb :
Code: Tout sélectionner
\AtBeginDocument{\VerbatimEnvironment\begin{VerbatimOut}{\jobname.sav}}   
\AtEndDocument{\end{VerbatimOut}\input{\jobname.sav}}

J'ai atteint mes limites et je sais qu'il me manque beaucoup de notions nécessaires pour faire ce dont j'ai besoin.

Y aurait-il quelqu'un qui sache faire cela ?
Dernière édition par evariste_G le Jeudi 08 Juin 2017, 17:49, édité 1 fois.
evariste_G
Téra-utilisateur
 
Messages: 1340
Inscription: Vendredi 19 Décembre 2008, 19:13
Localisation: Bordeaux
Statut actuel: Post-bac

Publicité

Re: Exporter le corps du document dans un fichier auxiliaire

Messagepar un bon petit » Jeudi 08 Juin 2017, 15:56

Quelques manipulations de catcodes suffisent.
Attention, \AtBeginDocument ne fonctionne pas car le \@begindocumenthook est trop loin de la fin de la macro \doucment.

Code: Tout sélectionner
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\makeatletter
\newwrite\sav@body
\newcount\sav@cnt
\def\grab@body{\begingroup\sav@cnt\z@\loop
   \ifnum\sav@cnt<\@cclvi\catcode\sav@cnt12 \advance\sav@cnt\@ne\repeat
   \newlinechar`\^^M \grab@body@i}
\begingroup\edef\tmp@namedef{\endgroup\long\def\noexpand\grab@body@i##1\expandafter\@gobble\string\\\detokenize{end{document}}}
\tmp@namedef{%
   \immediate\openout\sav@body\jobname.sav
   \immediate\write\sav@body{#1}\immediate\closeout\sav@body
   \endgroup\input\jobname.sav
   \end{document}\ingnorespaces}
\g@addto@macro\document\grab@body
\makeatother
\begin{document}
coucou

Voici un    \textbf{texte} qui se retrouve dans un fichier...
\end{document}
un bon petit
Giga-utilisateur
 
Messages: 638
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Exporter le corps du document dans un fichier auxiliaire

Messagepar evariste_G » Jeudi 08 Juin 2017, 17:49

Ah oui, en effet... Cette solution n'aurait pas pu sortir de mon cerveau car je n'avais pas les connaissances suffisantes.
Il ne me reste plus qu'à méditer sur tout ça, mais ça fonctionne une fois adapté à mon contexte (ça, je n'en doutais pas...).

Merci beaucoup !
evariste_G
Téra-utilisateur
 
Messages: 1340
Inscription: Vendredi 19 Décembre 2008, 19:13
Localisation: Bordeaux
Statut actuel: Post-bac

Re: [ok]Exporter le corps du document dans un fichier auxili

Messagepar touhami » Jeudi 08 Juin 2017, 18:44

Bon jour. Une solution
Code: Tout sélectionner
\makeatletter
\g@addto@macro{\document}{\VerbatimOut{\jobname.sav}}
\AtEndDocument{\endVerbatimOut\input{\jobname.sav}}
\makeatother
touhami
Méga-utilisateur
 
Messages: 382
Inscription: Dimanche 11 Février 2007, 11:45
Statut actuel: Post-bac

Re: Exporter le corps du document dans un fichier auxiliaire

Messagepar un bon petit » Jeudi 08 Juin 2017, 18:48

evariste_G a écrit:mais ça fonctionne une fois adapté à mon contexte (ça, je n'en doutais pas...)

Il faut parfois douter. Il ne doit y avoir nulle part de \end{document} dans le corps du document.
Par exemple, \verb|\end{document}| ou pire "%\end{document}" à la fin d'une ligne commentée quelque part fera échouer le processus à coup sûr.
un bon petit
Giga-utilisateur
 
Messages: 638
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: [ok]Exporter le corps du document dans un fichier auxili

Messagepar evariste_G » Vendredi 09 Juin 2017, 16:22

D'accord. Merci pour ce supplément d'information. Mais c'est déjà pas mal comme solution; ça convient aux documents dits standards (a priori, c'est uniquement pour des sujets de devoirs, donc aucune raison qu'il y ait des portions exotiques).
evariste_G
Téra-utilisateur
 
Messages: 1340
Inscription: Vendredi 19 Décembre 2008, 19:13
Localisation: Bordeaux
Statut actuel: Post-bac


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 invités