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/(...)
[^] # Re: Références
Posté par THE_ALF_ . En réponse au journal Double compilation avec LaTeX. Évalué à 8.
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/(...)