xindy, hyperref et |see - commentairesxindy, hyperref et <code class="spip_code spip_code_inline" dir="ltr">|see</code>2016-01-29T15:00:07Zhttps://geekographie.maieul.net/-190-#comment16612016-01-29T15:00:07Z<p>Merci pour le conseil. J'ai même décider de passer sur XeLaTeX avec tes conseils.<br class="autobr">
Avec ta solution, tout fonctionne super bien. Merci<small class="fine d-inline"> </small>!</p>xindy, hyperref et <code class="spip_code spip_code_inline" dir="ltr">|see</code>2016-01-21T09:14:32Zhttps://geekographie.maieul.net/-190-#comment16602016-01-21T09:14:32Z<p>J'ai ajouté un dernier paragraphe donnant une solution.</p>xindy, hyperref et <code class="spip_code spip_code_inline" dir="ltr">|see</code>2016-01-20T13:41:20Zhttps://geekographie.maieul.net/-190-#comment16592016-01-20T13:41:20Z<p>Bon, effectivement limite d'hyperref. Je pose la question sur <a href="http://tex.stackexchange.com/q/288553/7712" class="spip_url spip_out auto" rel="nofollow external">http://tex.stackexchange.com/q/288553/7712</a></p>xindy, hyperref et <code class="spip_code spip_code_inline" dir="ltr">|see</code>2016-01-20T10:01:41Zhttps://geekographie.maieul.net/-190-#comment16582016-01-20T10:01:41Z<p>Je vais regarder cela. Peux tu par contre utiliser la balise <code class="spip_code spip_code_inline" dir="ltr"><code></code> pour marquer des bouts de code.</p>xindy, hyperref et <code class="spip_code spip_code_inline" dir="ltr">|see</code>2016-01-20T09:51:25Zhttps://geekographie.maieul.net/-190-#comment16572016-01-20T09:51:25Z<p>Voici un exemple minimal complet.<br class="autobr">
le fichier .tex</p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>% A compiler avec xelatex -shell-escape
\documentclass{article} \usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{french}
\usepackage{setspace}
\onehalfspacing
\usepackage[xindy]{indextools}%On précise qu'on veut utiliser xindy
\usepackage[hyperindex=false]{hyperref} \def\xindyopt{ -I xelatex -M style_index1 -L french } \makeindex[program=truexindy, options=\xindyopt, intoc] \begin{document} toto \index{toto} \newpage téte\index{téte}
toti\index{toti} \index{toti|seealso{toto}} \index{toti|see{téte}} \newpage
ta\index{ta|see{toto}}\index{ta|seealso{toti}} \newpage
tata\index{tata} \printindex \hyperlink{index:téte}{téte} \end{document} </code></pre></div>
<p>avec le fichier style_index1.xdy :</p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>(define-location-class "arabic-page-numbers" ("arabic-numbers") :min-range-length 2) (define-attributes (("definition" "usage" "default" "hyperpage"))) (define-crossref-class "see")
(markup-crossref-list :class "see" :open "\seelink{" :sep "; " :close "}{}") (define-crossref-class "seealso")
(markup-crossref-layer-list :sep ", ")
(markup-crossref-list :class "seealso" :open "\seealsolink{" :sep "; " :close "}{}") (define-crossref-class "hyperindexformat")
(markup-crossref-list :class "hyperindexformat" :open "\hyperindexformat{" :sep "; " :close "}{}") (define-location-class-order ( "arabic-page-numbers" "see" "seealso")) (markup-index :open "~n\begin{theindex} \providecommand*\lettergroupDefault[1]{} \providecommand*\lettergroup[1]{% \par\textbf{#1}\par \nopagebreak } \newcommand{\targetindexentry}[1]{\hypertarget{index:#1}{#1}} \newcommand{\seelink}[1]{\see{\hyperlink{index:#1}{#1}}} \newcommand{\seealsolink}[1]{\seealso{\hyperlink{index:#1}{#1}}} ~n" :close "~n~n\end{theindex}~n" :tree) (markup-indexentry :open "~n \item " :depth 0)
(markup-indexentry :open "~n \subitem " :depth 1)
(markup-indexentry :open "~n \subsubitem " :depth 2) (markup-locref-list :sep ", ")
(markup-locclass-list :open "\dotfill " :close "" ) (markup-locref :open "\hyperpage{" :close "}")
(markup-locref :open "\hyperpage{" :close "}" :attr "hyperpage") (markup-keyword-list :open "\targetindexentry{" :close "}" )</code></pre></div>
<p>Après compilation, il y a bien des liens hypertextes. Mais ceux sur le mot «<small class="fine d-inline"> </small>téte<small class="fine d-inline"> </small>» ne fonctionnent pas, je suppose que cela est causé par le caractère «<small class="fine d-inline"> </small>é<small class="fine d-inline"> </small>».<br class="autobr">
J'espère que c'est plus claire comme ça.</p>xindy, hyperref et <code class="spip_code spip_code_inline" dir="ltr">|see</code>2016-01-19T16:03:19Zhttps://geekographie.maieul.net/-190-#comment16562016-01-19T16:03:19Z<p>il me faudrait un exemple complet minimal pour que je puisse comprendre le problème.</p>xindy, hyperref et <code class="spip_code spip_code_inline" dir="ltr">|see</code>2016-01-19T15:50:40Zhttps://geekographie.maieul.net/-190-#comment16552016-01-19T15:50:40Z<p>Merci, en effet tu as bien compris et bien répondu à ma question. <br class="autobr">
Je comprend un peu mieux comment cela fonctionne à présent.</p>
<p>Par contre, je me suis aperçu d'un bug que je n'arrive pas à comprendre. J'ai reproduis l'exemple fourni ici, en utilisant <code class="spip_code spip_code_inline" dir="ltr">polyglossia</code> et <code class="spip_code spip_code_inline" dir="ltr">XeLaTeX</code> et je n'arrive pas a avoir un hyperlink sur les mots accentués. <br class="autobr">
Dans le fichier .ind la commande <code class="spip_code spip_code_inline" dir="ltr">\item \targetindexentry{chat}, \seelink{félin}{}</code> ou si je rajoute à la suite de mon fichier .tex la commande <code class="spip_code spip_code_inline" dir="ltr">\hyperlink{index:félin}{félin}</code> créent bien une un hyperlien contenant le félin, mais ce lien est vide, il ne mène lorsqu'on clique dessus. Est-ce normal<small class="fine d-inline"> </small>? Ou ai-je mal compris quelque chose<small class="fine d-inline"> </small>?</p>xindy, hyperref et <code class="spip_code spip_code_inline" dir="ltr">|see</code>2016-01-18T17:47:11Zhttps://geekographie.maieul.net/-190-#comment16542016-01-18T17:47:11Z<p>Si je comprend bien, tu veux donc avoir à la fois un renvoi à la page du terme et un renvoi à une autre entrée.</p>
<p>Dans ce cas il faut que tu fasse deux indexations : une avec <code class="spip_code spip_code_inline" dir="ltr">|see</code> et une sans.</p>xindy, hyperref et <code class="spip_code spip_code_inline" dir="ltr">|see</code>2016-01-18T14:49:50Zhttps://geekographie.maieul.net/-190-#comment16532016-01-18T14:49:50Z<p>En réalité mon problème n'est pas sur la référence après <code class="spip_code spip_code_inline" dir="ltr">|see</code>, mais sur le numéro de page.<br class="autobr">
En effet, pour reprendre ton exemple si j'ai une entrée du fichier .idx qui est <code class="spip_code spip_code_inline" dir="ltr">\indexentry{chat|see{félin}}{1}</code><br class="autobr">
avec ta solution nous obtenons un résultat dans le fichier .ind <code class="spip_code spip_code_inline" dir="ltr">\item \targetindexentry{chat}, \seelink{félin}{}</code>.<br class="autobr">
Mais est-il possible d'obtenir <code class="spip_code spip_code_inline" dir="ltr">\item \targetindexentry{chat} \hyperpage{1}, \seelink{félin}{}</code><small class="fine d-inline"> </small>?</p>xindy, hyperref et <code class="spip_code spip_code_inline" dir="ltr">|see</code>2016-01-15T17:02:21Zhttps://geekographie.maieul.net/-190-#comment16522016-01-15T17:02:21Z<p>Merci pour le conseil, même si je n'utilise pas babel (notamment à cause de ce genre de problème).</p>
<p>Concernant le second point, je pense que la lecture de l'article "<a href='https://geekographie.maieul.net/-120-' class="spip_in" rel='nofollow'>Indexation et renvoi</a>" devrait résoudre le problème.</p>xindy, hyperref et <code class="spip_code spip_code_inline" dir="ltr">|see</code>2016-01-15T16:49:20Zhttps://geekographie.maieul.net/-190-#comment16512016-01-15T16:49:20Z<p>Merci pour ces explications très utiles. Par contre j'ai deux remarques. <br class="autobr">
La première est un conseil : l'utilisation de package <code class="spip_code spip_code_inline" dir="ltr">\usepackage[shorthands=;!?]{babeltools}</code> peut aider pour ceux qui utilisent le package <code class="spip_code spip_code_inline" dir="ltr">\usepackage[french]{babel}</code>. Car sinon l'utilisation de <code class="spip_code spip_code_inline" dir="ltr">index:#1</code> est parasitée par babel.<br class="autobr">
La deuxième est une question. Est-ce normal que chez moi, le numéro de page associé à l'entrée qui utilise <code class="spip_code spip_code_inline" dir="ltr">|see</code>, ne s'affiche pas<small class="fine d-inline"> </small>? comment résoudre ce problème<small class="fine d-inline"> </small>?</p>