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édentes Révision précédente
Prochaine révision
Révision précédente
3_composition:texte:renvois:underscore_dans_un_label [2017/07/22 11:16]
jejust Mots-clefs OpenGraph.
3_composition:texte:renvois:underscore_dans_un_label [2021/05/06 23:00] (Version actuelle)
bdumont Correction d'un lien cassé
Ligne 1: Ligne 1:
-====== Comment utiliser un underscore ​dans un \label ​? ======+====== Comment utiliser un tiret bas dans le texte hors du mode mathématique? ======
  
-Usually the underscore with its standard catcode "​subscript"​ (8) +===== Problème =====
-does not cause problems, if used inside ''​\label''​ or ''​\ref'':​+
  
 +Par défaut, le tiret bas (''​_''​) se voit attribuer le //catcode// 8, [[2_programmation:​syntaxe:​catcodes:​liste_des_catcodes|qui introduit les indices en mode mathématique]]. Si vous l'​utilisez tel quel dans votre document, il est fort probable que vous obteniez une [[2_programmation:​erreurs:​m:​missing_dollar_inserted|erreur “Missing $ inserted”]].
 +
 +===== Comment faire pour le tiret bas soit traité comme un caractère normal =====
 +
 +==== Cas où le tiret bas est considéré comme un caractère normal sans ajout d'​extensions ====
 +
 +Le tiret bas est considéré par défaut comme un caractère normal dans les arguments de :
 +  * ''​\label''​
 +  * ''​\ref''​
 +  * ''​\input''​
 +  * ''​\include''​
 +  * ''​\includegraphics''​
 +  * ''​\begin''​ et ''​\end''​
 +  * compteurs
 +  * paramètres de placement (comme ''​[t]''​).
 +
 +Par exemple:
 +
 +<WRAP column 40ex>
 <code latex> <code latex>
 \documentclass{article} \documentclass{article}
Ligne 12: Ligne 30:
 \end{document} \end{document}
 </​code>​ </​code>​
 +</​WRAP>​
 +<WRAP column 30ex>
 +<​latexdoc>​
 +\documentclass{article}
 +\pagestyle{empty}
 +\begin{document}
 +\section{Hello World}
 +\label{sec_hello}
 +See section 1.
 +\end{document}
 +</​latexdoc>​
 +</​WRAP>​
 +<WRAP clear />
 +
 +Si vous rencontrez quand même le message d'​erreur indiqué quand vous utilisez un tiret bas dans un de ces cas,
 +vous utilisez sans doute
 +une extension qui modifie le comportement du tiret bas (autre que [[ctanpkg>​babel]],​ qui ne pose pas de problèmes). ​
 +Dans ce cas, vous devez appliquer l'une des solutions suivantes.
 +
 +
 +==== Solution simple et généralement suffisante ====
 +
 +L'​extension [[ctanpkg>​underscore]] redéfinit le tiret bas comme un caractère actif qui a le comportement suivant :
 +  * En mode mathématique,​ pas de changement (introduit un caractère ​ en indice) ;
 +  * Dans le corps du texte, affiche un tiret bas ;
 +  * S'il est précédé du caractère '​\',​ affiche un tiret bas après lequel il est possible de faire une coupure de mots.
 +
 +Dans la plupart des cas, cela correspond à l'​effet souhaité. Cependant, la redéfinition du tiret bas par [[ctanpkg>​underscore]] a pour conséquence
 +qu'il n'est plus considéré comme un caractère normal [[3_composition:​texte:​renvois:​underscore_dans_un_label#​cas_ou_le_tiret_bas_est_considere_comme_un_caractere_normal_sans_ajout_d_extensions|dans les cas où il devrait être considéré comme tel]]. Ce problème est résolu en grande partie si vous chargez [[ctanpkg>​babel]],​
 +ou de manière plus limitée en utilisant l'​options ''​[strings]''​ de [[ctanpkg>​underscore]]. Pour plus de détails, veuillez vous référer à la [[texdoc>​underscore|documentation]],​ particulièrement p. 2.
 +
 +<WRAP column 65ex>
 +<code latex>
 +\documentclass{article}
 +
 +\usepackage[french]{babel}
 +\usepackage{underscore}
 +
 +\begin{document}
 +
 +\section{Le fichier test_tiret-bas.pdf}
 +\label{sec_tiret}
 +Nous étudions ici le fichier test_tiret-bas.pdf.
 +
 +\section{Autre section}
 +Voir la section \ref{sec_tiret}.
 +
 +\end{document}
 +</​code>​
 +</​WRAP>​
 +<WRAP column 30ex>
 +<​latexdoc>​
 +\documentclass{article}
 +
 +\usepackage[french]{babel}
 +\usepackage{underscore}
 +
 +\pagestyle{empty}
 +\begin{document}
 +\section{Le fichier test\string_tiret-bas.pdf}
 +\label{sec_hello}
 +Nous étudions ici le fichier test\string_tiret-bas.pdf.
 +
 +\section{Autre section}
 +Voir la section 1.
 +\end{document}
 +</​latexdoc>​
 +</​WRAP>​
 +<WRAP clear />
 +
  
-Also shorthands of package [[ctanpkg>​babel]] are not a problem, 
-because babel patches the ''​\label''/''​\ref''​ system to add 
-support for shorthands. 
  
-===== Active underscore =====+==== Solution plus souple mais plus complexe ​====
  
-Probably you are using a package that makes the underscore ​active. +Si les effets du tiret bas ont été redéfinis par d'​autres extensions avec lesquelles l'​extension [[ctanpkg>​underscore]] interfère, ​ 
-Then it becomes more complicate. A workaround is ''​\string''​ +on peut, au lieu de charger l'​extension [[ctanpkg>​underscore]], ​ utiliser ponctuellement la commande ​''​\string''​, 
-to make the active underscore behave as normal ​character:+qui indique que le caractère qui suit immédiatement doit être traité comme un caractère ​normal 
 +(plus précisément,​ de la catégorie 12).
  
 <code latex> <code latex>
Ligne 28: Ligne 114:
 </​code>​ </​code>​
  
-Also the label name is written into the ''​.aux'' ​file and +Comme le nom de l'​étiquette est également écrit dans le fichier ​''​.aux''​, 
-read again at the end of document. +il faut assigner au tiret bas la catégorie (//catcode//) 12 lors de la lecture de ce fichier ​:
-Here the catcode ​should be restored:+
  
 <code latex> <code latex>
Ligne 37: Ligne 122:
 </​code>​ </​code>​
  
-If the unknown package makes the catcode of the underscore active +Si l'​extension en question rend le tiret bas actif 
-before ​''​\begin{document}'', ​then it should be inactive +avant le ''​\begin{document}'', ​alors il faut qu'il soit inactif 
-during the reading of the ''​.aux'' ​file at the end of the preamble.+pendant la lecture du fichier ​''​.aux'' ​à la fin du préambule.
  
 <code latex> <code latex>
Ligne 48: Ligne 133:
 </​code>​ </​code>​
  
-The complete example:+Voici le code complet de l'​exemple:
  
 +<WRAP column 45ex>
 <code latex> <code latex>
 \documentclass{article} \documentclass{article}
Ligne 63: Ligne 149:
 \fi \fi
 \begin{document} \begin{document}
-\section{Hello World+\section{Bonjour !
-\label{sec\string_hello+\label{sec\string_bonjour
-See section \ref{sec\string_hello}.+Voir section \ref{sec\string_bonjour}.
 \end{document} \end{document}
 </​code>​ </​code>​
- +</​WRAP>​ 
-===== Package underscore ===== +<WRAP column 30ex
- +<latexdoc>
-Depending on the package that makes the underscore active, +
-the scope of the activeness and the definition of the underscore,​ +
-there might be more comfortable ways. +
-For example, package [[ctanpkg>underscore]] makes the underscore active +
-and that breaks the referencing system. But the package supports babel. +
-The underscore behaves as shorthand and is supported, if babel is loaded: +
- +
-<code latex>+
 \documentclass{article} \documentclass{article}
- +\pagestyle{empty}
-\usepackage[english]{babel} +
-\usepackage{underscore} +
 \begin{document} \begin{document}
-\section{Hello World+\section{Bonjour !
-\label{sec_hello+\label{hello
-See section ​\ref{sec_hello}.+Voir section ​1.
 \end{document} \end{document}
-</code>+</latexdoc> 
 +</​WRAP>​ 
 +<WRAP clear /> 
  
 ----- -----
-//Source:// [[https://​tex.stackexchange.com/​questions/​121416/​putting-an-underscore-in-a-label]]+//Sources:// 
 +  * [[https://​tex.stackexchange.com/​questions/​121416/​putting-an-underscore-in-a-label|Putting an underscore in a “\label”]]
 +  * [[texdoc>​underscore|documentation de l'​extension underscore]].
  
-{{htmlmetatags>​metatag-keywords=(LaTeX,​références,​underscore,​trait de soulignement,​underscore dans les étiquettes,​caractères actifs dans les étiquettes) +{{htmlmetatags>​metatag-keywords=(LaTeX,​références,​underscore,​trait de soulignement, tiret bas, underscore dans les étiquettes,​caractères actifs dans les étiquettes, commande \string
-metatag-og:​title=(Comment utiliser un underscore ​dans un \label ?)+metatag-og:​title=(Comment utiliser un tiret bas dans le texte hors du mode mathématique)
 metatag-og:​site_name=(FAQ LaTeX francophone) metatag-og:​site_name=(FAQ LaTeX francophone)
 }} }}
  
3_composition/texte/renvois/underscore_dans_un_label.1500715019.txt.gz · Dernière modification: 2017/07/22 11:16 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0