• [^] # Re: Références

    Posté par . En réponse au journal Double compilation avec LaTeX. Évalué à 8.

    En gros, lors de la première passe, LaTeX écrit les différentes infos dont il a besoin dans le fichier .aux (citations, labels, références, etc). Lors de la deuxième passe, il introduit ces infos comme il en a besoin, sur la base du .aux alors mis à jour par la passe précédente (remplace tes \ref par la bonne page correspondante, tes \cite par le bon n° de citation, etc...)

    Il a besoin de faire plusieurs passes, car lors de la première, il ne peut pas forcément détenir toutes les infos (par ex si tu fait une référence au début du document à une figure située une centaine de page plus loin, il ne peut pas prévoir à l'avance où cette figure est positionnée tant qu'il ne l'a pas rencontrée) .

    Tu va me dire, pourquoi LaTeX ne fait-il pas automatiquement le nombre de passes qui lui sont nécessaires ? Ça, c'est je pense essentiellement historique: LaTeX ayant été créé dans les années 80, une compilation pouvait demander beaucoup de temps, alors autant limiter au maximum le temps de calcul, quitte à devoir lancer plusieurs fois LaTeX lorsqu'on voudra obtenir la version finale de son document. Maintenant, ce comportement est entré dans les habitudes, mais il existe un utilitaire, rubber, qui te lance autant de compil que nécessaire si ça te chantes (ceci dit, j'ai jamais essayé...) . Voila la description debian:

    Package: rubber
    Priority: optional
    Section: tex
    Installed-Size: 337
    Maintainer: Emmanuel Beffara <manu@beffara.org>
    Architecture: all
    Version: 0.99.8-1
    Depends: python (>= 2.3), python (<< 2.4), tetex-bin
    Suggests: imagemagick, transfig
    Filename: pool/main/r/rubber/rubber_0.99.8-1_all.deb
    Size: 75890
    MD5sum: 0c290dc7651e3491a543b35b7bde1890
    Description: an automated system for building LaTeX documents
    This is a building system for LaTeX documents. It is based on a routine that
    runs just as many compilations as necessary. The module system provides a
    great flexibility that virtually allows support for any package with no user
    intervention, as well as pre- and post-processing of the document. The
    standard modules currently provide support for bibtex, dvips, dvipdfm,
    pdftex, makeindex. A good number of standard packages are supported,
    including graphics/graphicx (with automatic conversion between various
    formats and Metapost compilation).
    .
    Homepage: http://rubber.sourceforge.net/(...)