[Résolu] Afficher des valeurs au début du fichier...

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.

[Résolu] Afficher des valeurs au début du fichier...

Messagepar Tatanka » Jeudi 27 Août 2015, 17:08

Bonjour,

Mon problème est assez difficile à expliquer en une ligne, donc mon titre est assez vague pour le coup.

Je cherche à faire afficher au début de mon fichier des valeurs de commandes qui ne seront déterminées qu'à la fin de la compilation. Donc cela pose un problème.
Sauf que ce genre de souci est résolu comme par exemple dans les gestions de références : par exemple \Lastpage n'est pas connu de Latex à la première compilation mais on peut l'afficher aux compilations suivantes au début du document.

Et bien sur le principe, je veux faire la même chose.
J'ai une base de données DTLtool et des compteurs que j'aimerai utiliser dès le début de mon préambule mais qui ne pourront être complètement déterminées qu'à la fin de mon fichier.

Code: Tout sélectionner
\documentclass[12pt]{article}
\usepackage{datatool}

\newcounter{moncompteur}
\setcounter{moncompteur}{1}
\DTLnewdb{mabase}
\DTLcleardb{mabase}


%commande quelconque
\newcommand{\macmd}[2]{%
    \ifthenelse{#1>#2}{%
         \stepcounter{moncompteur}
         \DTLnewrow{mabase}
         \DTLnewdbentry{mabase}{arg}{#1}
         \themoncompteur
      }{%
         \stepcounter{moncompteur}
         \DTLnewrow{mabase}
         \DTLnewdbentry{mabase}{arg}{#2}
         \themoncompteur
      }%
}%


\begin{document}

%<==========
% je voudrai afficher et utiliser ma base de données mabase et mes compteurs ICI

\macmd{1}{2}
\macmd{3}{1}
\macmd{5}{4}

\end{document}



Voilà j'ai créé un WME qui n'est pas exactement mon fichier mais qui illustre bien ce que je souhaite.
Dans cet exemple, si je veux utiliser la base de données juste après le \begin{document}, les valeurs ne sont pas correctes car il faut attendre la fin de la compilation pour les avoir toutes.
J'ai bien essayer en sauvegardant la base dans un fichier que je reprends après, mais c'est le chien qui se mord la queue...


J'espère que vous pourrez m'aider.
Merci d'avance
Dernière édition par Tatanka le Vendredi 28 Août 2015, 13:42, édité 1 fois.
Tatanka
Déca-utilisateur
 
Messages: 26
Inscription: Lundi 04 Octobre 2010, 12:11
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Afficher des valeurs au début du fichier...

Messagepar un bon petit » Jeudi 27 Août 2015, 20:15

Pour sauvegarder des choses entre les compilations, le plus courant est d'utiliser le fichier aux.
Dans l'ECM ci-dessous, la valeur du compteur à la fin de chaque compil est sauvegardée dans le fichier aux. Vous aurez un affichage de 1 à la première compli, 4 à la seconde, 7 à la 3e, etc.

Pour sauvegarder une base de données, lire la doc du package datatool qui prévoit cette fonctionnalité.

Code: Tout sélectionner
\documentclass[12pt]{article}
\usepackage{datatool}

\newcounter{moncompteur}
\setcounter{moncompteur}{1}
\DTLnewdb{mabase}
\DTLcleardb{mabase}

\newcommand\macmd[2]{%
   \stepcounter{moncompteur}
   \DTLnewrow{mabase}
   \begingroup
   \edef\temp{\endgroup\noexpand\DTLnewdbentry{mabase}{arg}{\ifnum#1>#2 #1\else#2\fi}}%
   \temp
   \themoncompteur
}%
\makeatletter
\AtEndDocument{\immediate\write\@auxout{\global\string\setcounter{moncompteur}{\arabic{moncompteur}}}}
\makeatother
\begin{document}
Mon compteur vaut : \arabic{moncompteur}

\macmd{1}{2}
\macmd{3}{1}
\macmd{5}{4}
\end{document}
un bon petit
Giga-utilisateur
 
Messages: 660
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Afficher des valeurs au début du fichier...

Messagepar Tatanka » Vendredi 28 Août 2015, 08:36

Merci beaucoup bon petit...
c'est génial.
Je n'arrivai pas à chercher et trouver la solution...

Je vais essayer cela dans mon fichier et je vous tiens au courant...
Tatanka
Déca-utilisateur
 
Messages: 26
Inscription: Lundi 04 Octobre 2010, 12:11
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], DotBot [Crawler], Exabot [Bot], Google [Bot], Google Adsense [Bot], Grapeshot [Crawler] et 22 invités