[Résolu] Entrée d'index dans footnote

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] Entrée d'index dans footnote

Messagepar Eugene » Samedi 12 Mars 2011, 08:47

Bonjour

J'ai un problème lorsque j'ajoute une entrée d'index dans une footnote. Lorsque je fait ça, j'obtiens deux lignes dans mon index (une provenant du texte normal, l'autre des footnote.

Voici un exemple :

Code: Tout sélectionner
\documentclass{article}
\usepackage{makeidx}
\makeindex

\begin{document}

Je parle d'une personne\index{nom personne@\textsc{Nom personne}}\footnote{Cette personne\index{nom personne@\textsc{Nom personne}}\dots{}}.

\printindex

\end{document}


J'ai regardé du côté du fichier idx, le voici :

Code: Tout sélectionner
\indexentry{nom personne@\textsc{Nom personne}}{1}
\indexentry{nom personne@\textsc  {Nom personne}}{1}


Vraissembablement, c'est à cause de l'espace entre textsc et la suite qu'il rajoute (mais pourquoi et comment l'éviter).

Merci d'avance pour vos réponses
Dernière édition par Eugene le Dimanche 20 Mars 2011, 07:31, édité 1 fois.
Eugene
Déca-utilisateur
 
Messages: 28
Inscription: Mercredi 18 Mars 2009, 08:01
Statut actuel: Post-bac | Ecole d'ingénieur

Publicité

Re: Entrée d'index dans footnote

Messagepar pg » Lundi 14 Mars 2011, 18:56

Voir le sujet Footnote/index oddity sur comp.text.tex : c'est un problème de catcodes. \footnote transforme, lors de la lecture de son argument, "\textsc" en "\textsc ". Plus tard, lors de l'écriture dans le fichier .idx, le mécanisme de protection rajoute encore une espace, ce qui en fait deux.

Utiliser le package index au lieu de makeidx devrait résoudre ce problème.

Si jamais il n'est pas possible d'utiliser ce package, le plus simple (si le cas ne se produit que quelques fois) est d'écrire \string\textsc :

Code: Tout sélectionner
Je parle d'une personne\index{nom personne@\textsc{Nom personne}}\footnote{Cette personne\index{nom personne@\string\textsc{Nom personne}}\dots{}}.

Si le problème apparaît souvent, on peut tenter de redéfinir \index (et alors les deux entrées dans le fichier idx seront "\indexentry{nom personne@\textsc {Nom personne}}{1}" alors qu'avec la solution précédente, elles seront "\indexentry{nom personne@\textsc{Nom personne}}{1}"), mais attention à d'éventuels effets indésirables :

Code: Tout sélectionner
\documentclass{article}

\usepackage{makeidx}
\makeindex

\let\oldindex\index
\renewcommand{\index}[1]{\oldindex{#1}}

\begin{document}

Je parle d'une personne\index{nom personne@\textsc{Nom personne}}\footnote{Cette personne\index{nom personne@\textsc{Nom personne}}\dots{}}.

\printindex

\end{document}
pg
Modérateur
 
Messages: 2592
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Entrée d'index dans footnote

Messagepar Eugene » Jeudi 17 Mars 2011, 07:43

Bonjour

Merci pg pour votre réponse.

Je viens d'essayé avec la commande \string, ça marche.

Si non, entre temps, j'avais fait un petit script avec sed, mais c'est un peu du bricolage :

Code: Tout sélectionner
sed "s/textsc  /textsc/" fichier.idx > tmp.idx
mv tmp.idx fichier.idx
Eugene
Déca-utilisateur
 
Messages: 28
Inscription: Mercredi 18 Mars 2009, 08:01
Statut actuel: Post-bac | Ecole d'ingénieur


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google Adsense [Bot], Proximic [Spider] et 39 invités