Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
composition:texte:renvois:references_croisees_entre_documents [2016/10/23 23:27] jejust3_composition:texte:renvois:references_croisees_entre_documents [2021/11/29 23:02] (Version actuelle) – Correction de la mise en forme. yannick.tanguy
Ligne 1: Ligne 1:
-====== Comment obtenir des références croisées à partir de plusieurs sources ? ======+====== Comment obtenir des références croisées à partir de plusieurs sources? ======
  
 +Lors de la production d'un ensemble de documents interdépendants, vous souhaiterez probablement faire des références croisées //entre// ces documents ; mais, par défaut, <latex>\LaTeX</latex> ne le permet pas.
  
-$\Reponse$  Le package [[ctanpkg>xr|xr]] permet de faire des références à un autre +===== Avec l'extension “xr” =====
-document. Essayez de compiler les fichiers ''DocAvecLabel.tex'' et ''DocAvecRef.tex'' +
-qui servent d'exemple.+
  
 +L'extension [[ctanpkg>xr]] permet de répondre à ce besoin. Essayez de compiler les fichiers ''volume1.tex'' et ''volume2.tex'' qui servent d'exemple.
  
-<note+<file latex volume1.tex
-Une étiquette peut avoir le même nom dans les deux documents. Pour éviter +\documentclass{article}
-ce genre de collisions, on peut décider de préfixer toutes les étiquettes +
-d'un document à l'aide de l'argument optionnel de ''\externaldocument''.+
  
-Ainsi, après ''\externaldocument[FFF]{fichier.tex}, il faudra +\begin{document} 
-utiliser la référence ''\ref{FFFmonlabel+\section{Ma section.\label{masect}
-</note>+\end{document  
 +</file>
  
  
-<file latex DocAvecLabel.tex> +<file latex volume2.tex> 
-\documentclass[a4paper,12pt]{book}+\documentclass{article} 
 +\usepackage{xr} 
 +\externaldocument{volume1}
  
 \begin{document} \begin{document}
-\section{Ma section.\label{masect}}+Pour plus de détails, voir le document \textit{essai}, paragraphe~\ref{masect}.
 \end{document}   \end{document}  
 </file> </file>
  
 +Dans le détail, la ligne suivante va charger toutes les références du ''volume1'' dans votre document actuel :
  
-<file latex DocAvecRef.tex> +<code latex
-\documentclass[11pt]{report}+\externaldocument{volume1} 
 +</code> 
 + 
 +Cet exemple présuppose que ''volume1.tex'' et ''volume2.tex'' sont dans le même répertoire.  
 +Si ce n'est pas le cas, il faut spécifier le chemin relatif ou absolu de ''volume1.tex'' : 
 + 
 +<code latex
 +\externaldocument{../Volume-1/volume1} 
 +</code> 
 + 
 +:!: Il ne faut pas indiquer l'extension ''.tex'' dans l'argument de la commande ''\externaldocument'', car ''xr'' utilise cet argument pour construire le nom du fichier ''.aux'' auquel il va se référer. Si vous écrivez ''\externaldocument{volume1.tex}'', vous obtiendrez l'erreur suivante : 
 + 
 +<code> 
 +Package xr Warning: 
 +No file volume1.tex.aux 
 +LABELS NOT IMPORTED 
 +</code> 
 + 
 +:!: Parce que ''xr'' utilise le fichier ''.aux'' du document extérieur, ''volume1.tex'' doit être compilé avant ''volume2.tex''
 + 
 +==== Le cas des étiquettes ayant le même nom dans deux documents ==== 
 + 
 +L'extension fournit un moyen de transformer toutes les étiquettes importées, de sorte que vous n'avez pas à changer les noms d'étiquette dans l'un ou l'autre des documents. Ceci se fait au niveau de l'argument optionnel de la commande ''\externaldocument'' qui permet de placer un préfixe devant chaque étiquette d'un document extérieur. Voici un exemple où les étiquettes du document ''volume1'' sont préfixées par le terme ''V1-''
 + 
 +<code latex>
 \usepackage{xr} \usepackage{xr}
-\externaldocument{doc_avec_label.tex}+\externaldocument[V1-]{volume1} 
 +... 
 +... l'introduction du volume 1 (\ref{V1-introduction})... 
 +</code> 
 + 
 +==== Le cas particulier des hyperliens ==== 
 + 
 +Pour que les fonctionnalités de [[ctanpkg>xr|xr]] fonctionnent avec [[ctanpkg>hyperref|hyperref]], vous avez besoin de [[ctanpkg>xr-hyper|xr-hyper]]. Voici un exemple pour faire un hyperlien simple (c'est-à-dire vers un fichier PDF local que vous venez de compiler) : 
 + 
 +<code latex> 
 +\usepackage{xr-hyper} 
 +\usepackage{hyperref} 
 +\externaldocument[V1-]{volume1} 
 +... 
 +... \nameref{V1-introduction}... 
 +</code> 
 + 
 +Ici, le nom de la référenc apparaîtra comme un lien actif vers le chapitre « Introduction » de ''volume1.pdf''
 + 
 +Pour faire un lien vers un document PDF sur le web (pour lequel vous disposez du fichier ''.aux''), il faudra modifier votre saisie. En voici un exemple : 
 + 
 +<code latex> 
 +\usepackage{xr-hyper} 
 +\usepackage{hyperref} 
 +\externaldocument[V1-]{volume1}[http://livres.net/volume1.pdf] 
 +... 
 +... \nameref{V1-introduction}... 
 +</code> 
 + 
 +===== Avec l'extension “zref-xr” ===== 
 + 
 +L'ensemble expérimental [[ctanpkg>zref]] de Heiko Oberdiek comprend un mécanisme d'hyper-références croisées utilisant son extension [[ctanpkg>zref|zref-xr]]. L'utilisation est étroitement calquée sur celle de [[ctanpkg>xr]] et de [[ctanpkg>xr-hyper]]. En voici un exemple : 
 + 
 +<code latex> 
 +\documentclass{article} 
 +\usepackage{zref-xr,zref-user} 
 +\zexternaldocument*{xr02}
  
 \begin{document} \begin{document}
-Pour plus de détails, voir le document  +Pour plus de détails, voir \zref{foo}.
-\textit{essai}, paragraphe~\ref{masect}.+
 \end{document}   \end{document}  
-</file>+</code> 
 + 
 +L'extension fournit toutes les fonctionnalités des anciennes extensions et peut traiter à la fois les étiquettes <latex>\LaTeX</latex> « traditionnelles » et son propre style d'étiquettes.
  
 +-----
 +//Source:// [[faquk>FAQ-extref|Referring to labels in other documents]]
  
 +{{htmlmetatags>metatag-keywords=(LaTeX,renvois,labels,références)
 +metatag-og:title=(Comment obtenir des références croisées à partir de plusieurs sources)
 +metatag-og:site_name=(FAQ LaTeX francophone)
 +}}
3_composition/texte/renvois/references_croisees_entre_documents.1477265263.txt.gz · Dernière modification : 2016/10/23 23:27 de jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0