<?xml
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>Geekographie Ma&#239;eulesque</title>
	<link>https://geekographie.maieul.net/</link>
	<description>Ce site est consacr&#233; &#224; quelques unes des mes geekeries. J'y donne des conseils, des r&#233;flexions, sur les logiciels et les langages que je connais ou que j'apprends.
J'y parle notamment de l'usage de LaTeX en sciences humaines et sociales, en particulier pour la gestion de la bibliographie.
Le contenu peut &#234;tre sous la forme d'articles d&#233;taill&#233;s ou de simples notes.
L'ensemble du contenu est, sauf pr&#233;cision contraire, sous licence Cr&#233;ative Commons Paternit&#233;-Partage des Conditions Initiales &#224; l'identique France.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://geekographie.maieul.net/spip.php?id_rubrique=26&amp;page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>xindy et bibleref</title>
		<link>https://geekographie.maieul.net/200</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/200</guid>
		<dc:date>2016-04-08T12:30:36Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;On m'a pos&#233; r&#233;cemment la question de l'utilisation de xindy avec bibleref. Quelques petites adaptations sont n&#233;cessaires pour permettre aux deux outils de cohabiter. Le probl&#232;me Soit l'exemple complet minimum suivant&#160;: \documentclass[a4paper, notitlepage, 11pt]article \usepackage[xindy]indextools \usepackagebibleref-french \renewcommand\biblerefindex[0]\index[bible] \makeindex[name=bible, title=Index des sources bibliques] \begindocument Une ref biblique&#160;: \ibibleverseLc(3:12)&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://geekographie.maieul.net/Index" rel="directory"&gt;Index&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;On m'a pos&#233; r&#233;cemment la question de l'utilisation de &lt;code&gt;xindy&lt;/code&gt; avec &lt;code&gt;bibleref&lt;/code&gt;. Quelques petites adaptations sont n&#233;cessaires pour permettre aux deux outils de cohabiter.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Le probl&#232;me&lt;/h2&gt;
&lt;p&gt;Soit l'exemple &lt;a href=&#034;http://wiki.mathematex.net/doku.php?id=wiki:latex:ecm&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;complet minimum suivant&lt;/a&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\documentclass[a4paper, notitlepage, 11pt]{article} \usepackage[xindy]{indextools} \usepackage{bibleref-french} \renewcommand{\biblerefindex}[0]{\index[bible]} \makeindex[name=bible, title=Index des sources bibliques] \begin{document} Une ref biblique: \ibibleverse{Lc}(3:12) \newpage \printindex[bible] \end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Premi&#232;re compilation XeLaTeX&#160;: production d'un &lt;span class=&#034;caps&#034;&gt;PDF&lt;/span&gt; sans index.&lt;/p&gt;
&lt;p&gt;Compilation avec xindy&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;bash&#034;&gt;&lt;code&gt;texindy -L french -I xelatex bible.idx&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt; Seconde compilation avec XeLaTeX&#160;: un index vide. Ha&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;! Quid&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;?&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Analyse du probl&#232;me&lt;/h2&gt;
&lt;p&gt;Ouvrons le fichier &lt;code&gt;.ind&lt;/code&gt;. On voit effectivement qu'il ne contient que l'introduction de l'index&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\begin{theindex} \providecommand*\lettergroupDefault[1]{} \providecommand*\lettergroup[1]{% \par\textbf{#1}\par \nopagebreak } \end{theindex}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le probl&#232;me se situe donc au niveau de &lt;code&gt;texindy&lt;/code&gt;. Regardons donc les messages de compilation. Une ligne nous renseigne sur la cause du probl&#232;me&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;span class=&#034;caps&#034;&gt;WARNING&lt;/span&gt;&#160;: unknown attribute `textrm'&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;! (ignored)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Rappelons que pour &lt;code&gt;xindy&lt;/code&gt; &lt;a href='https://geekographie.maieul.net/172#markuplocref' class=&#034;spip_in&#034;&gt;un attribut correspond &#224; ce qui est mis apr&#232;s un &lt;code&gt;|&lt;/code&gt; lors de l'indexation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En ouvrant le fichier &lt;code&gt;.idx&lt;/code&gt; produit lors de la compilation, on constate effectivement la pr&#233;sence d'un &lt;code&gt;|textrm&lt;/code&gt;.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\indexentry{Lc\relax \relax @\BRbooktitlestyle {Luc}!003:012@\BRchapterstyle {3}\BRchvsep \BRversestyle {12}|textrm}{1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&#192; la diff&#233;rence de &lt;code&gt;makeindex&lt;/code&gt;, tout attribut doit &#234;tre d&#233;clar&#233; explicitement dans un fichier &lt;code&gt;.xdy&lt;/code&gt;.
En l'occurrence, le &lt;code&gt;|textrm&lt;/code&gt; ne me para&#238;t pas particuli&#232;rement utile. Donc plut&#244;t que de le d&#233;clarer dans un &lt;code&gt;.xdy&lt;/code&gt;, nous allons plut&#244;t demander &#224; &lt;code&gt;bibleref&lt;/code&gt; de ne pas l'ins&#233;rer.&lt;/p&gt;
&lt;p&gt;Pour cela, une seule ligne suffit, &#224; mettre dans le pr&#233;ambule&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\renewcommand{\bvidxpgformat}{}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;R&#233;sultat final&lt;/h2&gt;
&lt;p&gt;Apr&#232;s cela, recompilons avec XeLaTeX, puis avec &lt;code&gt;texindy&lt;/code&gt;, puis &#224; nouveau XeLaTeX.&lt;/p&gt;
&lt;p&gt;L'index est effectivement ins&#233;r&#233;.&lt;/p&gt;
&lt;div class='spip_document_203 spip_document spip_documents spip_document_file spip_document_avec_legende' data-legende-len=&#034;30&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/essai-xindy-bible.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 5.4 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-203 '&gt;&lt;strong&gt;Un index biblique avec xindy
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&#201;videmment, dans le cadre d'un index biblique, il n'est pas utile d'avoir des sectionnement de l'index par lettres. Mais je renvoie &#224; &lt;a href='https://geekographie.maieul.net/171' class=&#034;spip_in&#034;&gt;mon article sur la personnalisation de l'apparence des index&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>xindy, hyperref et |see</title>
		<link>https://geekographie.maieul.net/190</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/190</guid>
		<dc:date>2015-11-02T21:45:52Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Une personne m'a demand&#233; comment utiliser xindy avec hyperref et l'option d'indexation |see. Je tire donc un article de la solution propos&#233;e. Fichier d'exemple Je suppose que vous avez, au pr&#233;alable, cr&#233;&#233; votre fichier .xdy contenant les instructions propos&#233;es dans l'article xindy et hyperref. Je suppose que vous avez &#233;galement charg&#233; le package hyperref avec l'option hyperindex=false&#160;: \usepackage[hyperindex=false]hyperref Je prend maintenant le fichier contenant les commandes&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://geekographie.maieul.net/Index" rel="directory"&gt;Index&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Une personne m'a demand&#233; comment utiliser &lt;a href='https://geekographie.maieul.net/172#comment1611' class=&#034;spip_in&#034;&gt;xindy avec hyperref et l'option d'indexation &lt;code&gt;|see&lt;/code&gt;&lt;/a&gt;. Je tire donc un article de la solution propos&#233;e.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Fichier d'exemple&lt;/h2&gt;
&lt;p&gt;Je suppose que vous avez, au pr&#233;alable, cr&#233;&#233; votre fichier &lt;code&gt;.xdy&lt;/code&gt; contenant les instructions propos&#233;es dans l'article &lt;a href='https://geekographie.maieul.net/172' class=&#034;spip_in&#034;&gt;&lt;code&gt;xindy&lt;/code&gt; et &lt;code&gt;hyperref&lt;/code&gt;&lt;/a&gt;.
Je suppose que vous avez &#233;galement charg&#233; le package &lt;i&gt;hyperref&lt;/i&gt; avec l'option &lt;code&gt;hyperindex=false&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\usepackage[hyperindex=false]{hyperref}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Je prend maintenant le fichier contenant les commandes d'indexation suivantes&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\indexentry{f&#233;lin}{1} \indexentry{chat|see{f&#233;lin}}{1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Je souhaite que la commande &lt;code&gt;|see&lt;/code&gt; non seulement renvoie vers la bonne entr&#233;e, mais en plus int&#232;gre un lien hypertexte.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Analyse du fichier &lt;code&gt;.idx&lt;/code&gt; et du fichier &lt;code&gt;.ind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Le fichier &lt;code&gt;.idx&lt;/code&gt; produit est le suivant&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\indexentry{f&#233;lin}{1} \indexentry{chat|see{f&#233;lin}}{1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Apr&#232;s un passage par xindy avec mon pr&#233;c&#233;dent &lt;code&gt;.xdy&lt;/code&gt;, on obtient les lignes suivantes dans le fichier &lt;code&gt;.ind&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;(&#8230;) \item chat, \see{f&#233;lin}{} (&#8230;) \item f&#233;lin, \hyperpage{1} (&#8230;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On constate donc que si il existe bien un renvoi depuis &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;chat&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; vers &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;f&#233;lin&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; et si f&#233;lin pointe bien avec un lien hypertexte sur la page&#160;1, le renvoi ne propose pas de lien hypertexte.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Modification du &lt;code&gt;.xdy&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Nous allons modifier notre fichier &lt;code&gt;.xdy&lt;/code&gt; pour ajouter&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; une commande pour indiquer que &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;f&#233;lin&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; est un lieu de destination.&lt;/li&gt;&lt;li&gt; une commande pour indiquer que &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;chat&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; pointe vers f&#233;lin, ou plus exactement que le &lt;code&gt;\see{f&#233;lin}{}&lt;/code&gt; point vers f&#233;lin.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ajoutons donc les deux lignes suivantes au fichier &lt;code&gt;.xdy&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;(markup-keyword-list :open &#034;\targetindexentry{&#034; :close&#034;}&#034;) (markup-crossref-list :open &#034;\seelink{&#034; :close &#034;}{}&#034; :class &#034;see&#034;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La premi&#232;re ligne indique d'entourer les mots-c'est &#224; dire les entr&#233;es d'indexation, par &lt;code&gt;\targetindexentry{&lt;/code&gt; &#224; gauche et par &lt;code&gt;}&lt;/code&gt; &#224; droite.&lt;/p&gt;
&lt;p&gt;La seconde ligne indique que le param&#232;tre marqu&#233; entre les accolades qui suivant le &lt;code&gt;|see&lt;/code&gt;, ici &lt;code&gt;f&#233;lin&lt;/code&gt; doit &#234;tre entour&#233; &#224; gauche par &lt;code&gt;\seelink{&lt;/code&gt; et &#224; droite par &lt;code&gt;}{}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ceci nous produit donc le fichier &lt;code&gt;.ind&lt;/code&gt; avec les lignes suivantes&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;(&#8230;) \item \targetindexentry{chat}, \seelink{f&#233;lin}{} (&#8230;) \item \targetindexentry{f&#233;lin}, \hyperpage{1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 class=&#034;h2&#034;&gt;D&#233;finition de &lt;code&gt;\seelink&lt;/code&gt; et de &lt;code&gt;\targetindexentry&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Il ne reste plus qu'&#224; d&#233;finir dans notre fichier &lt;code&gt;.tex&lt;/code&gt; les deux commandes &lt;code&gt;\targetindexentry&lt;/code&gt; et &lt;code&gt;\seelink&lt;/code&gt; qui utilisent des commandes du package &lt;i&gt;hyperref&lt;/i&gt;.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\newcommand{\targetindexentry}[1]{\hypertarget{index:#1}{#1}} \newcommand{\seelink}[1]{\hyperlink{index:#1}{\see{#1}}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Rien de bien m&#233;chant&#160;: &lt;code&gt;targetindexentry&lt;/code&gt; cr&#233;e une ancre sur son argument. Le nom de l'ancre correspond &#224; son argument pr&#233;c&#233;d&#233; par &lt;code&gt;index:&lt;/code&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; &lt;code&gt;\seelink&lt;/code&gt; point vers une ancre dont le nom correspond &#224; son argument pr&#233;c&#233;d&#233; de &lt;code&gt;index:&lt;/code&gt;, le texte pointeur &#233;tant tout simple la commande &lt;code&gt;\see&lt;/code&gt; &#224; laquelle on passe son argument.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Correction de &lt;code&gt;\hyperlink&lt;/code&gt; et &lt;code&gt;hypertarget&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Le probl&#232;me est que les commandes &lt;code&gt;\hyperkink&lt;/code&gt; et &lt;code&gt;hypertarget&lt;/code&gt; ne fonctionne pas si le premier argument contient des accents. Il nous faut donc corriger ces commandes. Cependant une telle correction ralentissant consid&#233;rablement le temps de calcul&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;D'apr&#232;s l'auteur du package, Otto Oberdierk.&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;, il est recommand&#233; de les faire uniquement avant l'index.&lt;/p&gt;
&lt;p&gt;Ajoutez donc ces lignes avant le premier &lt;code&gt;\printindex&lt;/code&gt;.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\makeatletter \long\def\hyper@@anchor#1#2{% \pdfstringdef\@temp@anchorpdfstring{#1}% \@hyper@@anchor\@temp@anchorpdfstring\relax#2\relax% } \def\hyperlink#1#2{% \pdfstringdef\@temp@anchorpdfstring{#1}% \hyper@@link{}{\@temp@anchorpdfstring}{#2}% } \makeatother&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La diff&#233;rence principale avec les d&#233;finitions de &lt;i&gt;hyperref&lt;/i&gt; est l'emploi de &lt;code&gt;\pdfstringdef&lt;/code&gt; qui permet de transformer les accents en caract&#232;res acceptables dans le code interner d'un pdf, donc dans les liens hypertextes.&lt;/p&gt;
&lt;p&gt;Et maintant, non seulement &lt;code&gt;|see&lt;/code&gt; fonctionne, mais en plus il produit des liens hypertextes. Miaou&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;!&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;D'apr&#232;s l'auteur du package, Otto Oberdierk.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Tri personnalis&#233; des entr&#233;es avec xindy</title>
		<link>https://geekographie.maieul.net/176</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/176</guid>
		<dc:date>2015-04-20T06:30:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Il arrive fr&#233;quemment que l'on souhaite qu'un index n'utilise pas l'ordre alphab&#233;tique. Par exemple si on consacre un index &#224; des d&#233;tenteurs de pouvoir (empereurs, rois, pr&#233;sidents, papes) on peut souhaiter classer les noms par ordre de r&#233;gne/de mandature/de pontificat. Si makeindex permet d&#233;j&#224; de faire cela, xindy permet de simplifier les choses. Exemple Prenons un exemple simple&#160;: &lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;% &#192; compiler avec XeLaTeX \documentclassarticle \usepackagefontspec \usepackagepolyglossia&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://geekographie.maieul.net/Index" rel="directory"&gt;Index&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Il arrive fr&#233;quemment que l'on souhaite qu'un index n'utilise pas l'ordre alphab&#233;tique. Par exemple si on consacre un index &#224; des d&#233;tenteurs de pouvoir (empereurs, rois, pr&#233;sidents, papes) on peut souhaiter classer les noms par ordre de r&#233;gne/de mandature/de pontificat. Si &lt;code&gt;makeindex&lt;/code&gt; permet d&#233;j&#224; de faire cela, &lt;code&gt;xindy&lt;/code&gt; permet de simplifier les choses.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Exemple&lt;/h2&gt;
&lt;p&gt;Prenons un exemple simple&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;% &#192; compiler avec XeLaTeX
\documentclass{article} \usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{french}
\setmainfont{Linux Libertine O}
\usepackage{setspace}
\onehalfspacing
\usepackage[xindy]{indextools}%On pr&#233;cise qu'on veut utiliser xindy
\makeindex[name=animal,title=Animaux,columnseprule] % Personnaliser l'apparence de lettergroup
\newcommand{\lettergroup}[1]{% {\centering\large---\emph{#1}---\par}%
}
\apptocmd{\subitem}{$\rightarrow$\,}{}{} \begin{document} On va parler de chats sauvages\index[animal]{chat!sauvage} et domestiques\index[animal]{chat!domestique},
de tortues marines\index[animal]{tortue!marine} et terrestres\index[animal]{tortue!terrestre},
d'&#233;l&#232;phant d'Asie\index[animal]{&#233;l&#232;phant!d'Asie} et d'Afrique\index[animal]{&#233;l&#232;phant!d'Afrique},
et soyons fou, d'&#233;lans de Sib&#233;rie\index[animal]{&#233;lan!de Sib&#233;rie} et d'Am&#233;rique\index[animal]{&#233;lan!d'Am&#233;rique}. \newpage On va parler sur la page suivante des m&#234;me animaux. C'est &#224; dire : de chats sauvages\index[animal]{chat!sauvage} et domestiques\index[animal]{chat!domestique},
de tortues marines\index[animal]{tortue!marine} et terrestres\index[animal]{tortue!terrestre},
d'&#233;l&#232;phant d'Asie\index[animal]{&#233;l&#232;phant!d'Asie} et d'Afrique\index[animal]{&#233;l&#232;phant!d'Afrique},
et soyons fou, d'&#233;lans de Sib&#233;rie\index[animal]{&#233;lan!de Sib&#233;rie} et d'Am&#233;rique\index[animal]{&#233;lan!d'Am&#233;rique}. \newpage Et pour la bonne cause, on va aussi parler de chats sauvages\index[animal]{chat!sauvage} qui se disputent avec les chiens errants\index[animal]{chien!errant}.
\printindex[animal]
\end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En utilisant le fichier de configuration &lt;code&gt;.xdy&lt;/code&gt; des pr&#233;c&#233;dents tutoriels, on obtient l'index suivant.&lt;/p&gt;
&lt;div class='spip_document_186 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;42&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/empereur-ordre-alpha.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 10 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-186 '&gt;&lt;strong&gt;Tri des empereurs par ordre alphab&#233;tique
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Les empereurs sont class&#233;s par ordre alphab&#233;tique, ce qui est parfaitement normal, puisqu'on n'a pas demand&#233; un autre tri.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Premi&#232;re m&#233;thode&#160;: l'arobase&lt;/h2&gt;
&lt;p&gt;La premi&#232;re m&#233;thode &#224; laquelle on pense spontan&#233;ment est l'utilisation du &lt;code&gt;@&lt;/code&gt;, pour indiquer pour chaque entr&#233;e un ordre de tri personnalis&#233;.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;Les empereurs julio-claudiens sont Auguste\index[emp]{001@Auguste}, Tib&#232;re\index[emp]{002@Tib&#232;re}, Caligula\index[emp]{003@Caligula}, Claude\index[emp]{004@Claude} et N&#233;ron\index[emp]{005@N&#233;ron}.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ceci permet donc de trier les empereurs par ordre de r&#232;gne. Et fonctionne parfaitement comme le montre l'exemple ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_187 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;38&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/empereur-ordre-regne-manuel.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 9.3 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-187 '&gt;&lt;strong&gt;Tri des empereurs par ordre de r&#232;gne
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;Deuxi&#232;me m&#233;thode&#160;: le fichier &lt;code&gt;.xdy&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Seulement cette m&#233;thode implique d'indiquer syst&#233;matiquement le num&#233;ro d'ordre de l'empereur lors de l'indexation. Ce qui, outre ralentir l'&#233;criture, est source d'erreur. Quid si je frappe par erreur \index[emp]&lt;i&gt;002@Caligula&lt;/i&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;?&lt;/p&gt;
&lt;p&gt;Et bien j'aurai deux entr&#233;es &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Caligula&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;, donc une situ&#233; entre &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Auguste&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; et &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Tib&#232;re&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. Certes ce genre d'erreur ne devrait pas arriver ... mais autant utiliser les potentialit&#233;s de &lt;code&gt;xindy&lt;/code&gt; en indiquant dans le fichier &lt;code&gt;.xdy&lt;/code&gt; l'ordre des empereurs.&lt;/p&gt;
&lt;p&gt;Pour ce faire mettre simple les lignes suivantes&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt; (merge-rule &#034;Auguste&#034; &#034;001&#034; :string) (merge-rule &#034;Tib&#232;re&#034; &#034;002&#034; :string) (merge-rule &#034;Caligula&#034; &#034;003&#034; :string) (merge-rule &#034;Claude&#034; &#034;004&#034; :string) (merge-rule &#034;N&#233;ron&#034; &#034;005&#034; :string)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ceci signifie simplement que l'entr&#233;e &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Auguste&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; sera transform&#233;e en une entr&#233;e &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;001&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; avant que &lt;code&gt;xindy&lt;/code&gt; ne commence &#224; analyser les r&#232;gles de tri, que l'entr&#233;e &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Tib&#232;re&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; sera transform&#233;e en &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;002&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; etc.&lt;/p&gt;
&lt;p&gt;Notez deux choses importantes&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; la transformation ne concerne que la valeur utilis&#233;e pour le tri, pas la valeur utilis&#233;e &#224; l'affichage&lt;/li&gt;&lt;li&gt; la transformation est op&#233;r&#233;e avant que ne soit appliqu&#233;e les r&#232;gles de tri propre &#224; une langue. Cela n'a aucune importance dans le cas d'esp&#232;ce, mais pourrait &#234;tre pertinent si vous vous vouliez vous servir de ce genre de r&#232;gle pour unifier des pr&#233;sentation, comme nous le verrons dans un autre article.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Avec ce fichier &lt;code&gt;.xdy&lt;/code&gt;, mettre dans son fichier &lt;code&gt;.tex&lt;/code&gt; directement&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;Les empereurs julio-claudiens sont Auguste\index[emp]{Auguste}, Tib&#232;re\index[emp]{Tib&#232;re}, Caligula\index[emp]{Caligula}, Claude\index[emp]{Claude} et N&#233;ron\index[emp]{N&#233;ron}.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;nous produit quand m&#234;me un index tri&#233; par ordre de r&#232;gne. Mais cette fois, on s'all&#232;ge la r&#233;daction du fichier &lt;code&gt;.tex&lt;/code&gt;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>xindy, eledmac et hyperref</title>
		<link>https://geekographie.maieul.net/174</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/174</guid>
		<dc:date>2015-04-17T06:30:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;J'en viens maintenant &#224; aborder l'utilisation de \xindy avec eledmac, et plus pr&#233;cis&#233;ment avec sa commande \edindex qui permet d'indexer une r&#233;f&#233;rence en renvoyant &#224; la page et au num&#233;ro de ligne. Pr&#233;-requis La compatibilit&#233; pleine de eledmac avec xindy n'est fournie qu'avec la version 1.22.0 de eledmac. Pour l'installer&#160;: t&#233;l&#233;charger le zip disponible sur le &lt;span class=&#034;caps&#034;&gt;CTAN&lt;/span&gt;. appliquer la commande pdflatex sur les deux fichiers .ins pour obtenir les fichiers .sty. mettre les fichiers .sty &#224;&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://geekographie.maieul.net/Index" rel="directory"&gt;Index&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;J'en viens maintenant &#224; aborder l'utilisation de &lt;code&gt;\xindy&lt;/code&gt; avec &lt;code&gt;eledmac&lt;/code&gt;, et plus pr&#233;cis&#233;ment avec sa commande &lt;code&gt;\edindex&lt;/code&gt; qui permet d'indexer une r&#233;f&#233;rence en renvoyant &#224; la page et au num&#233;ro de ligne.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Pr&#233;-requis&lt;/h2&gt;
&lt;p&gt;La compatibilit&#233; pleine de &lt;code&gt;eledmac&lt;/code&gt; avec &lt;code&gt;xindy&lt;/code&gt; n'est fournie qu'avec la version 1.22.0 de eledmac.&lt;/p&gt;
&lt;p&gt;Pour l'installer&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; t&#233;l&#233;charger &lt;a href=&#034;http://mirrors.ctan.org/macros/latex/contrib/eledmac.zip&#034; class=&#034;spip_in&#034; rel=&#034;external&#034; type='application/zip'&gt;le zip disponible sur le &lt;span class=&#034;caps&#034;&gt;CTAN&lt;/span&gt;&lt;/a&gt;.&lt;/li&gt;&lt;li&gt; appliquer la commande &lt;code&gt;pdflatex&lt;/code&gt; sur les deux fichiers &lt;code&gt;.ins&lt;/code&gt; pour obtenir les fichiers &lt;code&gt;.sty&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; mettre les fichiers &lt;code&gt;.sty&lt;/code&gt; &#224; c&#244;t&#233; de votre fichier d'exemple ou dans le dossier &lt;code&gt;tex/latex/eledmac&lt;/code&gt; de [votre dossier &lt;code&gt;texmf&lt;/code&gt; local.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;h2&#034;&gt;Fichier d'exemple&lt;/h2&gt;
&lt;p&gt;Prenons un fichier &lt;code&gt;.tex&lt;/code&gt; reprenant le code de mes pr&#233;c&#233;dents exemples, mais utilisant &lt;code&gt;\edindex&lt;/code&gt; &#224; la place de &lt;code&gt;\index&lt;/code&gt;.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;% &#192; compiler avec XeLaTeX % &#192; compiler avec XeLaTeX \documentclass{article} % R&#233;glages g&#233;neraux \usepackage{fontspec} \setmainfont{Linux Libertine O} \usepackage{polyglossia} \setmainlanguage{french} \usepackage{setspace} \onehalfspacing % D&#233;finition des index \usepackage[xindy]{indextools}%On pr&#233;cise qu'on veut utiliser xindy % Apparence des index % Cf http://geekographie.maieul.net/171 \newcommand{\lettergroup}[1]{% {\centering\large---\emph{#1}---\par}% } \apptocmd{\subitem}{$\rightarrow$\,}{}{} % % Chargement de eledmac et de hyperref avec les bonnes options \usepackage[series={A},noeledsec,nofamiliar,noend,xindy,xindy+hyperref]{eledmac} \usepackage[hyperindex=false]{hyperref} % Toujours appeler \makeindex apr&#232;s le chargement de eledmac, cf doc de eledmac. \makeindex[name=animal,title=Animaux,columnseprule] \begin{document} \beginnumbering \autopar On va parler de chats sauvages\edindex[animal]{chat!sauvage} et domestiques\edindex[animal]{chat!domestique}, de tortues marines\edindex[animal]{tortue!marine} et terrestres\edindex[animal]{tortue!terrestre}, d'&#233;l&#232;phant d'Asie\edindex[animal]{&#233;l&#232;phant!d'Asie} et d'Afrique\edindex[animal]{&#233;l&#232;phant!d'Afrique}, et soyons fou, d'&#233;lans de Sib&#233;rie\edindex[animal]{&#233;lan!de Sib&#233;rie} et d'Am&#233;rique\edindex[animal]{&#233;lan!d'Am&#233;rique}. On va parler au paragraphe suivant des m&#234;me animaux. C'est &#224; dire : de chats sauvages\edindex[animal]{chat!sauvage} et domestiques\edindex[animal]{chat!domestique}, de tortues \edtext{marines}{\Afootnote{ninja\edindex[animal]{tortue!ninja|textbf}}}\edindex[animal]{tortue!marine} et terrestres\edindex[animal]{tortue!terrestre}, d'&#233;l&#232;phant d'Asie\edindex[animal]{&#233;l&#232;phant!d'Asie} et d'Afrique\edindex[animal]{&#233;l&#232;phant!d'Afrique}, et soyons fou, d'&#233;lans de Sib&#233;rie\edindex[animal]{&#233;lan!de Sib&#233;rie} et d'Am&#233;rique\edindex[animal]{&#233;lan!d'Am&#233;rique}. \edtext{Le paragraphe suivant est vraiment tr&#232;s particulier. Il est l&#224; juste pour tester ce que donne une indexation lorsqu'on parle d'une note qui est sur plusieurs lignes.}{\lemma{Le paragraphe&#8230;lignes}\Afootnote{serpent\edindex[animal]{serpent!de mer}}}% \endnumbering \newpage \beginnumbering \autopar Et pour la bonne cause, on va aussi parler de chats sauvages\edindex[animal]{chat!sauvage|textbf} qui se disputent avec les chiens errants\edindex[animal]{chien!errant}. \endnumbering \printindex[animal] \end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Rien de tr&#232;s original dans le contenu, comme vous pouvez le constatez, si ce n'est que j'ai ajout&#233; l'indexation d'un &#233;l&#233;ment en note critique.&lt;/p&gt;
&lt;p&gt;Les deux lignes les plus importantes pour le fonctionnement avec &lt;code&gt;xindy&lt;/code&gt; sont&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\usepackage[xindy,xindy+hyperref]{eledmac} \usepackage[hyperindex=false]{hyperref}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La ligne &lt;code&gt;\usepackage[hyperindex=false]{hyperref}&lt;/code&gt; vous laisse prendre la main sur l'ajout de liens hypertextes sur les localisation dans l'index, &lt;a href='https://geekographie.maieul.net/172' class=&#034;spip_in&#034;&gt;ainsi que je l'ai expliqu&#233; dans mon pr&#233;c&#233;dent article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;L'option &lt;code&gt;xindy&lt;/code&gt; de &lt;code&gt;eledmac&lt;/code&gt; est obligatoire si on souhaite utiliser &lt;code&gt;\edindex&lt;/code&gt; avec &lt;code&gt;xindy&lt;/code&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;En fait pas tout &#224; fait&#160;: elle n'est obligatoire que si on souhaite mettre (&#8230;)&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;L'option &lt;code&gt;xindy+hyperref&lt;/code&gt; permet en outre de faire fonctionner les liens internes.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Trois premi&#232;res compilations XeLaTeX&lt;/h2&gt;
&lt;p&gt;Lorsqu'on indexe avec &lt;code&gt;\edindex&lt;/code&gt; le fichier &lt;code&gt;.idx&lt;/code&gt; n'est correct qu'apr&#232;s la troisi&#232;me compilation (X&lt;sup class=&#034;typo_exposants&#034;&gt;e&lt;/sup&gt;)LaTeX. Nous supposons donc que vous faites trois compilations d'affil&#233;e de XeLaTeX.&lt;/p&gt;
&lt;p&gt;&#192; la fin de ces compiliations, outre le fichier &lt;code&gt;.pdf&lt;/code&gt; et le fichier &lt;code&gt;.xdy&lt;/code&gt;, vous obtenez un fichier &lt;code&gt;eledmac-markup-attr.xdy&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Il s'agit d'un fichier de configuration &lt;code&gt;xindy&lt;/code&gt; produit par &lt;code&gt;eledmac&lt;/code&gt; et qui contient la &lt;a href='https://geekographie.maieul.net/172#markuplocref' class=&#034;spip_in&#034;&gt;d&#233;claration des attributs de localisation&lt;/a&gt; propres &#224; chaque entr&#233;e d'index produite par &lt;code&gt;\edindex&lt;/code&gt;.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Compilation &lt;code&gt;xindy&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Il nous faut donc appeler ce fichier &lt;code&gt;.xdy&lt;/code&gt; lors de notre compilation.
Deux solutions s'offrent &#224; nous.&lt;/p&gt;
&lt;p&gt;La premi&#232;re consistent &#224; passer le nom de ce fichier &#224; l'option &lt;code&gt;-M&lt;/code&gt; de &lt;code&gt;texindy&lt;/code&gt;.
Ainsi &#224; la place d'appeler&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;bash&#034;&gt;&lt;code&gt;$ texindy -L french -I xelatex -M monstyle animal.idx&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On appellera&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;$ texindy -L french -I xelatex -M monstyle eledmac-markup-attr animal.idx&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cependant il existe une solution plus simple&#160;: inclure l'appel &#224; &lt;code&gt;eledmac-markup-att.xdy&lt;/code&gt; directement dans le fichier &lt;code&gt;monstyle.xdy&lt;/code&gt; via&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;(require &#034;eledmac-markup-attr.xdy&#034;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Proc&#233;dez donc &#224; cette compilation&#160;: vous obtenez des lignes du type&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;span class=&#034;caps&#034;&gt;WARNING&lt;/span&gt;&#160;: location-reference &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;1-1&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; did not match any location-class&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;! (ignored)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ceci s'explique simplement&#160;: &lt;code&gt;xindy&lt;/code&gt; n'est pas capable, par d&#233;faut, de comprendre une localisation de type &lt;code&gt;numerodepage-numerodeligne&lt;/code&gt; tel que l'&#233;crit &lt;code&gt;\edtext&lt;/code&gt; dans le fichier &lt;code&gt;.idx&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Qu'importe, nous allons lui apprendre, en ajoutant les lignes suivantes dans notre fichier de configuration &lt;code&gt;.xdy&lt;/code&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Attention &#224; bien mettre ces lignes dans votre fichier et non pas dans le (&#8230;)&#034; id=&#034;nh2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;(define-location-class &#034;eledmac&#034; (&#034;arabic-numbers&#034; :sep&#034;-&#034; &#034;arabic-numbers&#034;) :hierdepth 2 )&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ces lignes disent simplement qu'il existe une classe de localisation, c'est &#224; dire une mani&#232;re de r&#233;f&#233;rencer une entr&#233;e, nomm&#233;e &lt;code&gt;eledmac&lt;/code&gt;. Les entr&#233;es ainsi localis&#233;es poss&#232;dent deux niveau de localisation (&lt;code&gt;:hierdepth 2&lt;/code&gt;), c'est &#224; dire dans notre cas le page puis la ligne. Le premier niveau est &#233;crit en nombre arabe, le second aussi, et les deux sont s&#233;par&#233;s par le caract&#232;re &lt;code&gt;-&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Avec ces lignes nous arrivons &#224; compiler correctement avec &lt;code&gt;texindy&lt;/code&gt;. Cependant apr&#232;s la compilation XeLaTeX suivante, nous obtenons un index peu utilisable, comme vous pouvez le constatez dans le fichier ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_184 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;44&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/xindy-eledmac-premieressai.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 19.1 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-184 '&gt;&lt;strong&gt;Premier essai d'index avec &lt;code&gt;eledmac&lt;/code&gt; + &lt;code&gt;xindy&lt;/code&gt;
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le num&#233;ro de ligne est coll&#233; au num&#233;ro de page, si bien que l'index ne permet pas de retrouver la r&#233;f&#233;rence.
Qu'importe, nous allons dire &#224; &lt;code&gt;xindy&lt;/code&gt; de mettre le num&#233;ro de ligne entre parenth&#232;se, avec les lignes suivantes dans le fichier &lt;code&gt;.xdy&lt;/code&gt;&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;(markup-locref-list :open &#034; (&#034; :sep &#034;, &#034; :close &#034;)&#034; :depth 1 :class &#034;eledmac&#034;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous indiquons que pour la classe de localisaton &lt;code&gt;eledmac&lt;/code&gt;, que nous avions pr&#233;c&#233;demment d&#233;finie, le niveau &lt;code&gt;1&lt;/code&gt; de localisation, c'est &#224; dire dans le cas pr&#233;sent le num&#233;ro de ligne, puisque les niveaux commen&#231;ent &#224; &lt;code&gt;0&lt;/code&gt;, est marqu&#233; dans le fichier &lt;code&gt;.ind&lt;/code&gt; par une parenth&#232;se ouvrante au d&#233;but et par une parenth&#232;se fermante &#224; la fin, les diff&#233;rentes entr&#233;es du m&#234;me niveau &#233;tant s&#233;par&#233;es par des virgules.&lt;/p&gt;
&lt;p&gt;Avec un tel fichier &lt;code&gt;.xdy&lt;/code&gt;, apr&#232;s une nouvelle compilation &lt;code&gt;xindy&lt;/code&gt; et une autre compilation XeLaTeX, nous obtenons un index final correctement format&#233;.&lt;/p&gt;
&lt;div class='spip_document_185 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;82&#034; data-legende-lenx=&#034;xx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/xindy_eledmac-parfait.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 19.3 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-185 '&gt;&lt;strong&gt;&lt;code&gt;xindy&lt;/code&gt; et &lt;code&gt;eledmac&lt;/code&gt;&#160;: exemple distinguant bien le num&#233;ro de ligne du num&#233;ro de page
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div &lt;div class='rss_ps'&gt;&lt;p&gt;Il y aura une suite &#224; ces tutoriaux sur &lt;code&gt;xindy&lt;/code&gt;, mais la semaine prochaine.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;En fait pas tout &#224; fait&#160;: elle n'est obligatoire que si on souhaite mettre des index en notes de bas de page ou si on souhaite avec des liens hypertextes. Mais autant prendre l'habitude de la charger, cela &#233;vitera les mauvaises surprises.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Attention &#224; bien mettre ces lignes dans votre fichier et non pas dans le fichier &lt;code&gt;eledmac-markup-attr.xdy&lt;/code&gt;, qui est r&#233;&#233;crit &#224; chaque compilation XeLateX&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;!&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		
		<enclosure url="http://mirrors.ctan.org/macros/latex/contrib/eledmac.zip" length="2407813" type="application/zip" />
		

	</item>
<item xml:lang="fr">
		<title>xindy et hyperref</title>
		<link>https://geekographie.maieul.net/172</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/172</guid>
		<dc:date>2015-04-16T06:30:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Nous arrivons maintenant &#224; un point d&#233;licat dans l'utilisation de xindy&#160;: sa compatibilit&#233; avec le package hyperref. Ce dernier ins&#232;re en effet des liens hypertextes dans l'index&#160;: chaque r&#233;f&#233;rence pointe vers la page correspondante. Cependant l'insertion de ces liens utilisent les m&#233;canismes de makeindex et pas ceux de xindy ce qui n'est pas sans poser quelques petits probl&#232;mes. Un exemple qui marche &#8230; Reprenons l'exemple de l'article pr&#233;c&#233;dent mais en activant hyperref&#160;:&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://geekographie.maieul.net/Index" rel="directory"&gt;Index&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Nous arrivons maintenant &#224; un point d&#233;licat dans l'utilisation de &lt;code&gt;xindy&lt;/code&gt;&#160;: sa compatibilit&#233; avec le package &lt;code&gt;hyperref&lt;/code&gt;. Ce dernier ins&#232;re en effet des liens hypertextes dans l'index&#160;: chaque r&#233;f&#233;rence pointe vers la page correspondante. Cependant l'insertion de ces liens utilisent les m&#233;canismes de &lt;code&gt;makeindex&lt;/code&gt; et pas ceux de &lt;code&gt;xindy&lt;/code&gt; ce qui n'est pas sans poser quelques petits probl&#232;mes.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Un exemple qui marche &#8230;&lt;/h2&gt;
&lt;p&gt;Reprenons l'&lt;a href='https://geekographie.maieul.net/171' class=&#034;spip_in&#034;&gt;exemple de l'article pr&#233;c&#233;dent&lt;/a&gt; mais en activant hyperref&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\documentclass{article} \usepackage{fontspec} \usepackage{polyglossia} \setmainlanguage{french} \setmainfont{Linux Libertine O} \usepackage{setspace} \onehalfspacing \usepackage[xindy]{indextools}%On pr&#233;cise qu'on veut utiliser xindy \makeindex[name=animal,title=Animaux,columnseprule] % Personnaliser l'apparence de lettergroup \newcommand{\lettergroup}[1]{% {\centering\large---\emph{#1}---\par}% } \apptocmd{\subitem}{$\rightarrow$\,}{}{} \begin{document} On va parler de chats sauvages\index[animal]{chat!sauvage} et domestiques\index[animal]{chat!domestique}, de tortues marines\index[animal]{tortue!marine} et terrestres\index[animal]{tortue!terrestre}, d'&#233;l&#232;phant d'Asie\index[animal]{&#233;l&#232;phant!d'Asie} et d'Afrique\index[animal]{&#233;l&#232;phant!d'Afrique}, et soyons fou, d'&#233;lans de Sib&#233;rie\index[animal]{&#233;lan!de Sib&#233;rie} et d'Am&#233;rique\index[animal]{&#233;lan!d'Am&#233;rique}. \newpage On va parler sur la page suivante des m&#234;me animaux. C'est &#224; dire : de chats sauvages\index[animal]{chat!sauvage} et domestiques\index[animal]{chat!domestique}, de tortues marines\index[animal]{tortue!marine} et terrestres\index[animal]{tortue!terrestre}, d'&#233;l&#232;phant d'Asie\index[animal]{&#233;l&#232;phant!d'Asie} et d'Afrique\index[animal]{&#233;l&#232;phant!d'Afrique}, et soyons fou, d'&#233;lans de Sib&#233;rie\index[animal]{&#233;lan!de Sib&#233;rie} et d'Am&#233;rique\index[animal]{&#233;lan!d'Am&#233;rique}. \newpage Et pour la bonne cause, on va aussi parler de chats sauvages\index[animal]{chat!sauvage} qui se disputent avec les chiens errants\index[animal]{chien!errant}. \printindex[animal] \end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cela produit le &lt;span class=&#034;caps&#034;&gt;PDF&lt;/span&gt; ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_180 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;43&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/index-hyperref-marche.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 15.2 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-180 '&gt;&lt;strong&gt;&lt;code&gt;xindy&lt;/code&gt; + &lt;code&gt;hyperref&lt;/code&gt;&#160;: exemple qui fonctionne
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Comme vous pouvez constater, tout semble fonctionner&#160;: notre index est correct et les liens internes fonctionnent.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;&#8230; mais c'est tout&lt;/h2&gt;
&lt;p&gt;Les probl&#232;mes surviennent lorsqu'on tente de marquer une r&#233;f&#233;rence comme importante, par exemple avec &lt;code&gt;|textbf&lt;/code&gt;.
Ainsi&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;Et pour la bonne cause, on va aussi parler de chats sauvages\index[animal]{chat!sauvage|textbf} qui se disputent avec les chiens errants\index[animal]{chien!errant}. \printindex[animal]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Lors de la compilation &lt;code&gt;texindy&lt;/code&gt; vous obtenez le message suivant&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;span class=&#034;caps&#034;&gt;WARNING&lt;/span&gt;&#160;: unknown cross-reference-class `hyperindexformat'&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Et de fait, la r&#233;f&#233;rence marqu&#233;e par &lt;code&gt;|textbf&lt;/code&gt; est absente de l'index final.&lt;/p&gt;
&lt;div class='spip_document_181 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;46&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/index-hyperref-marche-pas.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 19.5 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-181 '&gt;&lt;strong&gt;&lt;code&gt;xindy&lt;/code&gt; + &lt;code&gt;hyperref&lt;/code&gt; + &lt;code&gt;|textbf&lt;/code&gt; ne fonctionne pas
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;La cause du probl&#232;me&lt;/h2&gt;
&lt;p&gt;Rappelons que &lt;code&gt;xindy&lt;/code&gt; se &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;contente&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; de transformer un fichier &lt;code&gt;.idx&lt;/code&gt; en un fichier &lt;code&gt;.ind&lt;/code&gt;. Ouvrons le fichier &lt;code&gt;.idx&lt;/code&gt; pour comprendre comment cela.&lt;/p&gt;
&lt;p&gt;&#192; c&#244;t&#233; de ligne sans qui ne posent pas de soucis telle que&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\indexentry{chat!sauvage|hyperpage}{1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous y trouvons la ligne probl&#233;matique&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\indexentry{chat!sauvage|hyperindexformat{\textbf}}{3}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et nous voici en face de deux limites de &lt;code&gt;xindy&lt;/code&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Bien tenues par rapport &#224; ses avantages, puisqu'on peut facilement les (&#8230;)&#034; id=&#034;nh2-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;markuplocref&#034;&gt;&lt;/a&gt;alors que &lt;code&gt;makeindex&lt;/code&gt; transforme toute syntaxe de type &lt;code&gt;|xxx&lt;/code&gt; en la commande correspondante, il n'en va pas de m&#234;me avec &lt;code&gt;xindy&lt;/code&gt;, qui n&#233;cessite qu'on lui d&#233;clare ces commandes manuellement. En effet, &lt;code&gt;xindy&lt;/code&gt;, qui n'est pas con&#231;ue uniquement pour LaTeX, consid&#232;re que la syntaxe &lt;code&gt;|xxx&lt;/code&gt; apr&#232;s une entr&#233;e dans le fichier &lt;code&gt;.idx&lt;/code&gt; correspond &#224; un &lt;i&gt;attribut de localisation&lt;/i&gt;, c'est &#224; dire une propri&#233;t&#233; associ&#233;e &#224; la localisation d'une entr&#233;e. Certains de ces &lt;i&gt;attribut de localisation&lt;/i&gt; sont d&#233;clar&#233;s dans le fichier &lt;code&gt;base/latex-loc-fmts.xdy&lt;/code&gt; que &lt;code&gt;texindy&lt;/code&gt; charge par d&#233;faut.&lt;/li&gt;&lt;li&gt; ces attributs ne peuvent pas recevoir d'arguments. Ainsi, m&#234;me si nous d&#233;clarions &lt;code&gt;hyperindexformat&lt;/code&gt;, cela ne nous arrangerait pas. En effet, les commandes avec arguments sont consid&#233;r&#233;s par &lt;code&gt;\xindy&lt;/code&gt; comme des marqueurs de renvois au sein de l'index, alors que &lt;code&gt;makeindex&lt;/code&gt; est plus souple sur la question.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;h2&#034;&gt;Solution&lt;/h2&gt;
&lt;p&gt;Comment r&#233;soudre ce probl&#232;me&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;? En demandant &#224; &lt;code&gt;hyperref&lt;/code&gt; de ne pas intervenir dans la gestion du &lt;code&gt;.idx&lt;/code&gt; et en g&#233;rant nous m&#234;me cela via le fichier de configuration &lt;code&gt;.xdy&lt;/code&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034;&gt;D&#233;sactiver la modification de l'index par &lt;code&gt;hyperref&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Il suffit simplement de charger le package avec l'option &lt;code&gt;hyperindex=false&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\usepackage[hyperindex=false]{hyperref}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous constaterez alors que le fichier &lt;code&gt;.ind&lt;/code&gt; ne contient plus que des lignes de type&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\indexentry{chat!sauvage}{1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;et&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\indexentry{chat!sauvage|textbf}{3}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;qui sont tr&#232;s bien interpr&#233;t&#233;s par &lt;code&gt;xindy&lt;/code&gt;, mais sans &#233;videmment que les liens hypertextes ne soit int&#233;gr&#233;s.&lt;/p&gt;
&lt;h3 class=&#034;h3&#034;&gt;Configuration de &lt;code&gt;xindy&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Pour r&#233;soudre ce probl&#232;me, il nous suffit d'ajouter dans le fichier de configuration &lt;code&gt;.xdy&lt;/code&gt; les lignes suivantes&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;(define-attributes (&#034;emph&#034;)) (markup-locref :open &#034;\hyperpage{&#034; :close &#034;}&#034; :attr &#034;default&#034;) (markup-locref :open &#034;\textbf{\hyperpage{&#034; :close &#034;}}&#034; :attr &#034;textbf&#034;) (markup-locref :open &#034;\textit{\hyperpage{&#034; :close &#034;}}&#034; :attr &#034;textit&#034;) (markup-locref :open &#034;\emph{\hyperpage{&#034; :close &#034;}}&#034; :attr &#034;emph&#034;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La premi&#232;re ligne permet de d&#233;finir l'attribut &lt;code&gt;emph&lt;/code&gt; qui n'est pas d&#233;fini par d&#233;faut dans &lt;code&gt;texindy&lt;/code&gt; alors qu'il est plus s&#233;mantique que l'attribut &lt;code&gt;textit&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Dans les quatres lignes nous r&#233;glons la propri&#233;t&#233; &lt;code&gt;markup-locref&lt;/code&gt; pour l'attribut de localisation indiqu&#233; entre guillemets apr&#232;s le &lt;code&gt;:attr&lt;/code&gt;, sachant que l'attribut &lt;code&gt;defaut&lt;/code&gt; est &#8211; comme son nom l'indique &#8211; celui utilis&#233; si aucun attribut n'est mentionn&#233;.&lt;/p&gt;
&lt;p&gt;Pour chaque attribut nous d&#233;finissons via &lt;code&gt;:open&lt;/code&gt; un marqueur &#224; ins&#233;rer avant la localisation, et via &lt;code&gt;:close&lt;/code&gt; nous d&#233;finissons un marqueur &#224; ins&#233;rer apr&#232;s la localisation.&lt;/p&gt;
&lt;p&gt;Avec un tel syst&#232;me, notre fichier &lt;code&gt;.idx&lt;/code&gt; deviendra un fichier &lt;code&gt;.ind&lt;/code&gt; contenant des lignes telles que&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\subitem sauvage\dotfill \hyperpage{1}--\hyperpage{2}, \textbf{\hyperpage{3}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce qui est parfaitement compris par LaTeX lors de compilation suivante, &lt;code&gt;\hyperpage&lt;/code&gt; ins&#233;rant un lien hypertexte vers une page.&lt;/p&gt;
&lt;p&gt;Cela nous permet d'obtenir le fichier ci-dessous, contenant de liens internes, y compris en gras.&lt;/p&gt;
&lt;div class='spip_document_182 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;51&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/index-hyperref-texbf-marche.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 15.4 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-182 '&gt;&lt;strong&gt;&lt;code&gt;xindy&lt;/code&gt; + &lt;code&gt;hyperref&lt;/code&gt; + &lt;code&gt;|textbf&lt;/code&gt; exemple qui fonctionne
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb2-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Bien tenues par rapport &#224; ses avantages, puisqu'on peut facilement les contourner.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>R&#233;gler l'apparence des index avec xindy</title>
		<link>https://geekographie.maieul.net/171</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/171</guid>
		<dc:date>2015-04-15T06:30:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Apr&#232;s avoir cr&#233;&#233; notre premier index avec xindy, nous allons maintenons modifier son apparence. Par &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;apparence&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; nous entendons la mani&#232;re dont sont affich&#233;s les entr&#233;es et les pages, mais pas l'ordre de tri ou les divisions par initiales. # Exemple adapt&#233; &#224; la situation Nous allons prendre un exemple avec un seul index, mais avec plusieurs niveau d'entr&#233;es, et en en prenant des entr&#233;es pr&#233;sentent sur plusieurs pages. \documentclassarticle \usepackagefontspec \setmainfontLinux&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://geekographie.maieul.net/Index" rel="directory"&gt;Index&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Apr&#232;s avoir cr&#233;&#233; notre premier index avec xindy, nous allons maintenons modifier son apparence. Par &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;apparence&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; nous entendons la mani&#232;re dont sont affich&#233;s les entr&#233;es et les pages, mais pas l'ordre de tri ou les divisions par initiales.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt; Exemple adapt&#233; &#224; la situation&lt;/h2&gt;
&lt;p&gt;Nous allons prendre un exemple avec un seul index, mais avec plusieurs niveau d'entr&#233;es, et en en prenant des entr&#233;es pr&#233;sentent sur plusieurs pages.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\usepackage{setspace}
\onehalfspacing
\usepackage[xindy]{indextools}%On pr&#233;cise qu'on veut utiliser xindy
\makeindex[name=animal,title=Animaux]
\begin{document} On va parler de chats sauvages\index[animal]{chat!sauvage} et domestiques\index[animal]{chat!domestique},
de tortues marines\index[animal]{tortue!marine} et terrestres\index[animal]{tortue!terrestre},
d'&#233;l&#232;phant d'Asie\index[animal]{&#233;l&#232;phant!d'Asie} et d'Afrique\index[animal]{&#233;l&#232;phant!d'Afrique},
et soyons fou, d'&#233;lans de Sib&#233;rie\index[animal]{&#233;lan!de Sib&#233;rie} et d'Am&#233;rique\index[animal]{&#233;lan!d'Am&#233;rique}. \newpage On va parler sur la page suivante des m&#234;me animaux. C'est &#224; dire : de chats sauvages\index[animal]{chat!sauvage} et domestiques\index[animal]{chat!domestique},
de tortues marines\index[animal]{tortue!marine} et terrestres\index[animal]{tortue!terrestre},
d'&#233;l&#232;phant d'Asie\index[animal]{&#233;l&#232;phant!d'Asie} et d'Afrique\index[animal]{&#233;l&#232;phant!d'Afrique},
et soyons fou, d'&#233;lans de Sib&#233;rie\index[animal]{&#233;lan!de Sib&#233;rie} et d'Am&#233;rique\index[animal]{&#233;lan!d'Am&#233;rique}. \printindex[animal]
\end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Apr&#232;s la s&#233;rie de compilation gr&#226;ce a &lt;a href='https://geekographie.maieul.net/170#latexmk' class=&#034;spip_in&#034;&gt;&lt;code&gt;latexmk&lt;/code&gt; configur&#233; pour &lt;code&gt;xindy&lt;/code&gt;&lt;/a&gt;, nous obtenons l'index ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_171 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;46&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/indexation-formatage-defaut.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 11.5 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-171 '&gt;&lt;strong&gt;Formatage par d&#233;faut avec &lt;code&gt;xindy&lt;/code&gt; + &lt;code&gt;indextools&lt;/code&gt;
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt; R&#233;partition des t&#226;ches&lt;/h2&gt;
&lt;p&gt;Ouvrons le fichier &lt;code&gt;.ind&lt;/code&gt; produit par &lt;code&gt;xindy&lt;/code&gt; pour observer son contenu&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\begin{theindex} \providecommand*\lettergroupDefault[1]{} \providecommand*\lettergroup[1]{% \par\textbf{#1}\par \nopagebreak } \lettergroup{C} \item chat \subitem domestique, 1, 2 \subitem sauvage, 1, 2 \indexspace \lettergroup{E} \item &#233;lan \subitem d'Am&#233;rique, 1, 2 \subitem de Sib&#233;rie, 1, 2 \item &#233;l&#232;phant \subitem d'Afrique, 1, 2 \subitem d'Asie, 1, 2 \indexspace \lettergroup{T} \item tortue \subitem marine, 1, 2 \subitem terrestre, 1, 2 \end{theindex}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On voit qu'il s'agit tout simplement d'un ensemble d'instruction LaTeX.
Il y a donc une r&#233;partition du travail entre&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; le noyau LaTeX, les package et notre propre code LaTeX qui se chargent de d&#233;finir les commandes.&lt;/li&gt;&lt;li&gt; &lt;code&gt;xindy&lt;/code&gt; qui se charge d'ins&#233;rer les commandes LaTeX dans le fichier &lt;code&gt;.ind&lt;/code&gt; &#224; partir du fichier &lt;code&gt;.idxy&lt;/code&gt; et de ses propres fichiers de configuration.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;h2&#034;&gt; Trois exemples de configuration niveau LaTeX&lt;/h2&gt;&lt;h3 class=&#034;h3&#034;&gt; Colonages&#160;: les options de &lt;code&gt;indextools&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;L'environnement &lt;code&gt;theindex&lt;/code&gt; est d&#233;fini par chaque classe LaTeX, mais red&#233;fini &lt;code&gt;indextools&lt;/code&gt; pour le rendre facilement configurable.&lt;/p&gt;
&lt;p&gt;Ainsi, je vous invite &#224; lire la documentation d'&lt;code&gt;indextool&lt;/code&gt; et de la commande &lt;code&gt;makeindex&lt;/code&gt; qui explique comment facilement personnaliser l'apparence. Je ne vais pr&#233;senter ici qu'une option&#160;: celle qui permet d'avoir un filet de s&#233;paration entre les deux colonnes.&lt;/p&gt;
&lt;p&gt;&#192; la place de&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\makeindex[name=animal,title=Animaux]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;mettons&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\makeindex[name=animal,title=Animaux,columnseprule]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;et nous obtenons alors l'index avec son filet de s&#233;paration.&lt;/p&gt;
&lt;div class='spip_document_172 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;32&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/indexation-filet.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 11.5 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-172 '&gt;&lt;strong&gt;Index avec filet de s&#233;paration
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h3 class=&#034;h3&#034;&gt; Apparence des sectionnement par lettre&lt;/h3&gt;
&lt;p&gt;En revanche, certaines &#233;l&#233;ments d'apparence sont &#224; d&#233;finir via la personnalisation des commandes. C'est par exemple le cas de l'apparence des ent&#234;tes de groupe par initiales.
Nous voyons en consultant le fichier &lt;code&gt;.ind&lt;/code&gt; qu'elle sont format&#233;es via la commande &lt;code&gt;\lettergroup&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Cette commande est d&#233;finie ainsi au d&#233;but de l'environnement &lt;code&gt;theindex&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt; \providecommand*\lettergroup[1]{% \par\textbf{#1}\par \nopagebreak }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La commande &lt;code&gt; \providecommand&lt;/code&gt; est tr&#232;s utile&#160;: elle d&#233;finit une commande sauf si celle-ci est aussi d&#233;finie via &lt;code&gt;\newcommand&lt;/code&gt;. Dans le cas pr&#233;sent, cela permet de proposer un formatage par d&#233;faut mais personnalisable.&lt;/p&gt;
&lt;p&gt;Ainsi, si nous ne souhaitons pas afficher les lettres de s&#233;paration, il suffit de mettre dans son pr&#233;ambule&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt; \newcommand{lettergroup}[1]{}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Mais on on peut aussi s'en servir pour personnaliser de mani&#232;re plus subtile l'apparence. Par exemple avec le code suivant&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\newcommand{\lettergroup}[1]{% {\centering\large---\emph{#1}---\par}%
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La lettre est centr&#233;e dans la colonne, en taille &lt;code&gt;\large&lt;/code&gt;, en italique, et entour&#233; de tirets longs.&lt;/p&gt;
&lt;div class='spip_document_173 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;61&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/indexation-style-lettergroup.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 13.2 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-173 '&gt;&lt;strong&gt;Exemple de personnalisation de l'ent&#234;te de groupe de lettre
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h3 class=&#034;h3&#034;&gt; Une fl&#232;che avant les sous-entr&#233;e bibliographique&lt;/h3&gt;
&lt;p&gt;Supposons maintenant que nous souhaitions mettre une petite fl&#232;che avant chaque sous-entr&#233;e bibliographique. La m&#233;thode la plus simple est de modifier la commande &lt;code&gt;\subitem&lt;/code&gt; pour ajouter cette fl&#232;che &#224; la fin. On peut utiliser pour cela la commande &lt;code&gt;\apptocmd&lt;/code&gt; du package &lt;code&gt;etoolbox&lt;/code&gt; qui est charg&#233; par &lt;code&gt;indextools&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\apptocmd{\subitem}{$\rightarrow$\,}{}{}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le &lt;code&gt;\,&lt;/code&gt; ins&#232;re une espace fine ins&#233;cable apr&#232;s la fl&#232;che.&lt;/p&gt;
&lt;p&gt;Ceci donne le r&#233;sultat ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_174 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;45&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/indexation-fleche-sous-entree.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 14.8 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-174 '&gt;&lt;strong&gt;Une fl&#232;che avant les sous-entr&#233;e d'un index
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt; &lt;span class=&#034;caps&#034;&gt;XXX&lt;/span&gt; exemples de configuration niveau au niveau de &lt;code&gt;xindy&lt;/code&gt;&lt;/h2&gt;&lt;h3 class=&#034;h3&#034;&gt; &lt;code&gt;xindy&lt;/code&gt;, ou la succession de fichiers de configuration&lt;/h3&gt;
&lt;p&gt;Lorsque vous lancez &lt;code&gt;texxindy&lt;/code&gt;, vous voyez appara&#238;tre dans le terminal les lignes suivantes&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;bash&#034;&gt;&lt;code&gt;Loading module &#034;lang/french/utf8-lang.xdy&#034;...
Loading module &#034;lang/french/utf8.xdy&#034;...
Finished loading module &#034;lang/french/utf8.xdy&#034;.
Finished loading module &#034;lang/french/utf8-lang.xdy&#034;.
Loading module &#034;texindy.xdy&#034;...
Loading module &#034;numeric-sort.xdy&#034;...
Finished loading module &#034;numeric-sort.xdy&#034;.
Loading module &#034;latex.xdy&#034;...
Loading module &#034;tex.xdy&#034;...
Finished loading module &#034;tex.xdy&#034;.
Finished loading module &#034;latex.xdy&#034;.
Loading module &#034;latex-loc-fmts.xdy&#034;...
Finished loading module &#034;latex-loc-fmts.xdy&#034;.
Loading module &#034;makeindex.xdy&#034;...
Finished loading module &#034;makeindex.xdy&#034;.
Loading module &#034;latin-lettergroups.xdy&#034;...
Finished loading module &#034;latin-lettergroups.xdy&#034;.
Finished loading module &#034;texindy.xdy&#034;.
Loading module &#034;page-ranges.xdy&#034;...
Finished loading module &#034;page-ranges.xdy&#034;.
Loading module &#034;word-order.xdy&#034;...
Finished loading module &#034;word-order.xdy&#034;.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ces lignes indiquent que &lt;code&gt;xindy&lt;/code&gt; chargent des modules de configuration &lt;code&gt;.xdy&lt;/code&gt; et y lis les instructions pour savoir comment transformer les fichiers &lt;code&gt;.idx&lt;/code&gt; en &lt;code&gt;.ind&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Contrairement &#224; &lt;code&gt;makeindex&lt;/code&gt; qui pour cela utilise un fichier &lt;code&gt;.ist&lt;/code&gt;, &lt;code&gt;xindy&lt;/code&gt; peut utiliser plusieurs fichiers &lt;code&gt;.xdy&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;L'int&#233;r&#234;t &#233;tant &#233;videmment de permettre d'avoir une configuration modulaire.
Un fichier &lt;code&gt;.xdy&lt;/code&gt; est essentiellement une liste d'instruction.&lt;/p&gt;
&lt;p&gt;On trouve dans le manuel de &lt;code&gt;xindy&lt;/code&gt; &lt;a href=&#034;http://xindy.sourceforge.net/doc/manual-6.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;la listes des instructions fournies&lt;/a&gt;. Par ailleurs, un certain nombre de fichiers &lt;code&gt;.xdy&lt;/code&gt; sont livr&#233;s par d&#233;faut avec &lt;code&gt;xindy&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Vous les trouverez dans le dossier &lt;code&gt;xindy/modules&lt;/code&gt; du dossier &lt;code&gt;texmf-dist&lt;/code&gt; de votre distribution tex. Typiquement avec une installation MacTeX2014, dans le dossier &lt;code&gt;/usr/local/texlive/2014/texmf-dist/xindy&lt;/code&gt;. Ou plus simplement vous pouvez &lt;a href=&#034;http://www.ctan.org/tex-archive/indexing/xindy/base&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;les consulter sur le &lt;span class=&#034;caps&#034;&gt;CTAN&lt;/span&gt;&lt;/a&gt; (prendre la version 2.5.0, qui est celle livr&#233;e avec TeXLive).&lt;/p&gt;
&lt;p&gt;Il suffit donc pour avoir ses propres styles de cr&#233;er un fichier &lt;code&gt;monstyle.xdy&lt;/code&gt; dans le dossier &#224; c&#244;t&#233; du &lt;code&gt;.tex&lt;/code&gt; et d'utiliser l'option &lt;code&gt;-M monstyle&lt;/code&gt; lors de l'appel &#224; la commande&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;bash&#034;&gt;&lt;code&gt;$ texindy -L french -I xelatex -M monstyle animal.idx&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et donc dans le fichier de configuration de &lt;code&gt;latexmk&lt;/code&gt;&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;perl&#034;&gt;&lt;code&gt;$makeindex = &#034;texindy -L french -I xelatex -M philologue&#034;;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Apr&#232;s ce pr&#233;alable, il est temps de voir ce qu'on met dans ce fichier.&lt;/p&gt;
&lt;h3 class=&#034;h3&#034;&gt; S&#233;paration l'entr&#233;e et ses r&#233;f&#233;rences par une ligne de point&lt;/h3&gt;
&lt;p&gt;Par d&#233;faut, l'entr&#233;e dans l'index est s&#233;par&#233; de ses par une virgule. &#192; titre personnel, je trouve plus lisibles les index dont la s&#233;paration entre les deux est plus marqu&#233;e. Par exemple lorsque la s&#233;paration est constitu&#233;e par une ligne de point&#160;: &lt;code&gt;\dotfill&lt;/code&gt; en LaTeX.&lt;/p&gt;
&lt;p&gt;Mettons donc la ligne suivante&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;;; Pour avoir les num&#233;ro de pages avec des -- y compris si on a uniquement deux pages
;; S&#233;parateur entre l'entr&#233;e et ses num&#233;ros
(markup-locclass-list :open &#034;\dotfill &#034;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Commentons rapidement ces lignes&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; un &lt;code&gt;;&lt;/code&gt; marque un commentaire qui s'&#233;tend jusqu'&#224; la fin de la ligne. Il est d'usage de mettre deux &lt;code&gt;;&lt;/code&gt; lorsque nous avons affaire &#224; une ligne de commentaire&lt;/li&gt;&lt;li&gt; chaque instruction est mise entre parenth&#232;se. Une instruction peut courir sur plusieurs lignes (pas le cas ici)&lt;/li&gt;&lt;li&gt; en g&#233;n&#233;ral une instruction correspond &#224; une propri&#233;t&#233;, ici &lt;code&gt;markup-locclass-lis&lt;/code&gt; &#224; laquelle est pass&#233;e des param&#232;tres. Souvent les param&#232;tres sont des liste d'option, chaque option &#233;tant pr&#233;fix&#233;e par &lt;code&gt;:&lt;/code&gt; (deux-points). Ici la valeur de l'option &lt;code&gt;open&lt;/code&gt; est une cha&#238;ne de caract&#232;re (marqu&#233;e par les guillemets) &#233;galent &#224; &lt;code&gt;\dotfill&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Apr&#232;s avoir execut&#233; &lt;code&gt;texindy -L french -I xelatex -M monstyle animal.idx&lt;/code&gt;, on constate que le nouveau fichier &lt;code&gt;.ind&lt;/code&gt; est devenu&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\begin{theindex} \providecommand*\lettergroupDefault[1]{} \providecommand*\lettergroup[1]{% \par\textbf{#1}\par \nopagebreak } \lettergroup{C} \item chat \subitem domestique\dotfill 1, 2 \subitem sauvage\dotfill 1, 2 \indexspace \lettergroup{E} \item &#233;lan \subitem d'Am&#233;rique\dotfill 1, 2 \subitem de Sib&#233;rie\dotfill 1, 2 \item &#233;l&#232;phant \subitem d'Afrique\dotfill 1, 2 \subitem d'Asie\dotfill 1, 2 \indexspace \lettergroup{T} \item tortue \subitem marine\dotfill 1, 2 \subitem terrestre\dotfill 1, 2 \end{theindex}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce qui nous produit donc l'index ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_175 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;28&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/index-lignepoints.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 14.9 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-175 '&gt;&lt;strong&gt;Index avec ligne de points
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h3 class=&#034;h3&#034;&gt; Regrouper les pages dans un intervalle&lt;/h3&gt;
&lt;p&gt;Ajoutons maintenant avant l'index une nouvelle page de telle sorte que certains termes se trouvent sur trois pages d'affil&#233;e, d'autre sur deux pages d'affil&#233;e, et d'autres sur une seule page.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\newpage
Et pour la bonne cause, on va aussi parler de chats sauvages\index[animal]{chat!sauvage} qui se disputent avec les chiens errants\index[animal]{chien!errant}.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On obtient l'index ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_176 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;77&#034; data-legende-lenx=&#034;xx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/index-plusieurs-pages-defaut.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 15.5 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-176 '&gt;&lt;strong&gt;Plusieurs pages d'affil&#233;e pour une m&#234;me entr&#233;e d'index&#160;: r&#233;glage par d&#233;faut
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;On constate que si le nombre de pages cons&#233;cutives est sup&#233;rieur &#224; 2, &lt;code&gt;xindy&lt;/code&gt; va remplacer par la page de d&#233;but et la page de fin. On peut cependant vouloir d'autres r&#233;glages&lt;/p&gt;
&lt;h4 class=&#034;h4&#034;&gt; Pas de regroupement des pages&lt;/h4&gt;
&lt;p&gt;On peut tout simplement ne pas vouloir de regroupement des pages. Dans ce cas on peut utiliser&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;(define-location-class &#034;arabic-page-numbers&#034; (&#034;arabic-numbers&#034;) :min-range-length 9999999999)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Explication&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; on d&#233;finit une mani&#232;re de r&#233;f&#233;rencer des termes. Cette mani&#232;re est nomm&#233;e &lt;code&gt;arabic-page-numbers&lt;/code&gt;&lt;/li&gt;&lt;li&gt; cette mani&#232;re consiste &#224; tout simplement utiliser un nombre arabe &lt;code&gt;(&#034;arabic-numbers&#034;)&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; on indique que pour pour fusionner plusieurs r&#233;f&#233;rences cons&#233;cutives, il faut que les r&#233;f&#233;rences cons&#233;cutives tiennent dans un intervalle de &lt;code&gt;9999999999&lt;/code&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;D'apr&#232;s le manuel on peut utilise le mot-clef mais chez moi cela provoque (&#8230;)&#034; id=&#034;nh2-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;, c'est &#224; dire que la diff&#233;rence entre la premi&#232;re et la derni&#232;re r&#233;f&#233;rence cons&#233;cutive soit de &lt;code&gt;9999999999&lt;/code&gt;. Cas qui ne risque normalement pas d'arriver&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Ou alors vous &#233;crivez un tr&#232;s long livre avec un index totalement inutile, (&#8230;)&#034; id=&#034;nh2-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;.
On obtient alors l'index ci-dessous.&lt;/li&gt;&lt;/ul&gt;&lt;div class='spip_document_177 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;72&#034; data-legende-lenx=&#034;xx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/index-plusieurs-pages-toutes-visibles.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 15.4 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-177 '&gt;&lt;strong&gt;Plusieurs pages d'affil&#233;e pour une m&#234;me entr&#233;e d'index&#160;: pas de fusion
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h4 class=&#034;h4&#034;&gt; Regroupement d&#232;s deux pages&lt;/h4&gt;
&lt;p&gt;Cependant en g&#233;n&#233;ral on souhaite plut&#244;t regrouper les num&#233;ros de page, y compris s'il n'y a que deux pages cons&#233;cutives. Dans ce cas on peut utiliser&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;(define-location-class &#034;arabic-page-numbers&#034; (&#034;arabic-numbers&#034;) :min-range-length 1)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce qui signifie que si l'&#233;cart entre les r&#233;f&#233;rences cons&#233;cutives est d'au moins &lt;code&gt;1&lt;/code&gt;, on fusionne les r&#233;f&#233;rences.
Ce qui permet d'obtenir l'index ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_178 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;80&#034; data-legende-lenx=&#034;xx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/index-plusieurs-pages-fusion-precoce.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 15.4 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-178 '&gt;&lt;strong&gt;Plusieurs pages d'affil&#233;e pour une m&#234;me entr&#233;e d'index&#160;: fusion d&#232;s deux pages
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Note&#160;: les num&#233;ros sont s&#233;par&#233;s par des tirets demi-cadratins (&lt;code&gt;--&lt;/code&gt;). On peut vouloir utiliser &#224; la place des traits d'unions simples. Dans ce cas il suffit d'utiliser&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;(markup-range :sep &#034;-&#034;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 class=&#034;h4&#034;&gt; &lt;code&gt;s&lt;/code&gt; et &lt;code&gt;ss&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;On peut aussi vouloir&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; que deux pages d'affil&#233;e soit rendu par &lt;code&gt;Xs&lt;/code&gt; o&#249; &lt;code&gt;X&lt;/code&gt; est le premier num&#233;ro de page.&lt;/li&gt;&lt;li&gt; que plus de deux pages d'affil&#233;e soit rendu par &lt;code&gt;Xss&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;On va pour cela prendre le mod&#232;le livr&#233; dans le fichier &lt;code&gt;base/ff-ranges-only.xdy&lt;/code&gt;, en nous contenant de remplacer &lt;code&gt;f&lt;/code&gt; par &lt;code&gt;s&lt;/code&gt; et &lt;code&gt;ff&lt;/code&gt; par &lt;code&gt;s&lt;/code&gt;.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;(define-location-class &#034;arabic-page-numbers&#034; (&#034;arabic-numbers&#034;) :min-range-length 1)
(markup-range :sep &#034;s&#034; :length 1 :ignore-end)
(markup-range :sep &#034;ss&#034; :ignore-end)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Commentaire&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; l.&#160;1-2&#160;: m&#234;me chose que pr&#233;c&#233;demment.&lt;/li&gt;&lt;li&gt; l.&#160;3&#160;: balisage des pages cons&#233;cutives lorsque l'&#233;cart entre la premi&#232;re et la derni&#232;re r&#233;f&#233;rence est de &lt;code&gt;1&lt;/code&gt;&#160;: utiliser &lt;code&gt;s&lt;/code&gt; comme s&#233;parateur, et ne pas afficher la page de fin.&lt;/li&gt;&lt;li&gt; l.&#160;4&#160;: balisage des r&#233;f&#233;rences cons&#233;cutives dans les autres cas&#160;: utiliser &lt;code&gt;ss&lt;/code&gt; comme s&#233;parateur, et ne pas afficher la page de fin.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ce qui nous donne l'index ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_179 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;81&#034; data-legende-lenx=&#034;xx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/index-plusieurs-pages-s.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 15.4 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-179 '&gt;&lt;strong&gt;Plusieurs pages d'affil&#233;e pour une m&#234;me entr&#233;e d'index&#160;: utilisation de &lt;code&gt;s&lt;/code&gt; et &lt;code&gt;ss&lt;/code&gt;
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Cependant, dans un tel cas, lorsqu'on aura plus de trois pages cons&#233;cutives, par exemple &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;1,2,3,4&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; on aura aussi &lt;code&gt;ss&lt;/code&gt;. Ce qui manque de pr&#233;cision.&lt;/p&gt;
&lt;p&gt;Dans ce cas on peut s'inspirer du fichier &lt;code&gt;base/ff-ranges.xdy&lt;/code&gt; et remplacer&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;(markup-range :sep &#034;ss&#034; :ignore-end)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;par&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;(markup-range :sep &#034;ss&#034; :length 2 :ignore-end)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce qui signifie que &lt;code&gt;ss&lt;/code&gt; ne sera utilis&#233; que si l'&#233;cart entre la premi&#232;re et la derni&#232;re r&#233;f&#233;rence est de &lt;code&gt;2&lt;/code&gt;. Donc pour &lt;code&gt;1-3&lt;/code&gt; mais pas pour &lt;code&gt;1-4&lt;/code&gt;.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt; Synth&#232;se&lt;/h2&gt;&lt;div class='spip_document_204 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;29&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L396xH343/cestout-d1292.jpg?1760449536' width='396' height='343' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-204 '&gt;&lt;strong&gt;C'est tout pour aujourd'hui
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb2-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;D'apr&#232;s le manuel on peut utilise le mot-clef &lt;code&gt;none&lt;/code&gt; mais chez moi cela provoque une erreur de compilation.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Ou alors vous &#233;crivez un tr&#232;s long livre avec un index totalement inutile, puisqu'il indique qu'on parle de votre sujet sur 10 000 000 000 pages d'affil&#233;e.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Premier pas avec xindy</title>
		<link>https://geekographie.maieul.net/170</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/170</guid>
		<dc:date>2015-04-14T06:30:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Apr&#232;s avoir pr&#233;sent&#233; rapidement ce qu'&#233;tait xindy et pourquoi je recommande son utilisation, faisons les premiers pas avec xindy. Pour le moment nous nous contenterons d'index un un document en fran&#231;ais, avec deux index. Pr&#233;r&#233;quis Je suppose que vous utilisez XeLaTeX et non pas LaTeX ou pdfLaTeX. Je suppose &#233;galement que xindy est install&#233; sur votre ordinateur&#160;: Si vous utilisez TeXLive2014 ou MacTeX 2014, c'est d&#233;j&#224; le cas. Si vous utilisez MikTeX, il existe un tutoriel pour&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://geekographie.maieul.net/Index" rel="directory"&gt;Index&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Apr&#232;s avoir &lt;a href='https://geekographie.maieul.net/169' class=&#034;spip_in&#034;&gt;pr&#233;sent&#233; rapidement ce qu'&#233;tait &lt;code&gt;xindy&lt;/code&gt;&lt;/a&gt; et pourquoi je recommande son utilisation, faisons les premiers pas avec &lt;code&gt;xindy&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pour le moment nous nous contenterons d'index un un document en fran&#231;ais, avec deux index.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Pr&#233;r&#233;quis&lt;/h2&gt;
&lt;p&gt;Je suppose que vous utilisez XeLaTeX et non pas LaTeX ou pdfLaTeX&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Pour ceux qui ne savent pas pourquoi je conseille XeLaTeX, lisez (&#8230;)&#034; id=&#034;nh3-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Je suppose &#233;galement que xindy est install&#233; sur votre ordinateur&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Si vous utilisez TeXLive2014 ou MacTeX 2014, c'est d&#233;j&#224; le cas.&lt;/li&gt;&lt;li&gt; Si vous utilisez MikTeX, il existe &lt;a href=&#034;http://tex.stackexchange.com/a/71168/7712&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;un tutoriel pour l'installation&lt;/a&gt;. Je n'ai pas encore test&#233;, donc tout retour est le bienvenu.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Enfin, je suppose que vous savez comment ex&#233;cuter LaTeX et ses auxiliaires en lignes de commandes. Si vous ne savez pas&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; lisez l'annexe de mon livre (obligatoire pour les gens sous windows)&lt;/li&gt;&lt;li&gt; ou bien lisez l'article &lt;a href='https://geekographie.maieul.net/50' class=&#034;spip_in&#034;&gt;LaTeX en ligne de commande&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;h2&#034;&gt;Fichier d'exemple minimal&lt;/h2&gt;
&lt;p&gt;Nous prendrons le fichier suivant&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Je suppose que vous avez la police Linux Libertine install&#233; sur votre (&#8230;)&#034; id=&#034;nh3-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;% &#192; compiler avec XeLaTeX \documentclass{article} \usepackage{fontspec} \setmainfont{Linux Libertine O} \usepackage{setspace} \onehalfspacing \usepackage[xindy]{indextools}%On pr&#233;cise qu'on veut utiliser xindy \makeindex[name=animal,title=Animaux] \makeindex[name=plante,title=Plantes] \begin{document} On va parler de chats\index[animal]{chat}, de tortues\index[animal]{tortue}, d'&#233;l&#232;phant\index[animal]{&#233;l&#232;phant}, et soyons fou, d'&#233;lans\index[animal]{&#233;lan}. \newpage Ces animaux aiment bien les carottes\index[plante]{carotte}, les an&#233;mones\index[plante]{an&#233;mone}, les anth&#233;mis\index[plante]{anth&#233;mis}, et les courgette\index[plante]{courgettes}. \newpage \printindex[animal] \printindex[plante] \end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;Premi&#232;re compilation XeLaTeX&lt;/h2&gt;
&lt;p&gt;Compilez le document avec XeLaTeX. Vous obtenez deux&#160;pages, mais pas d'index.
En revanche, vous obtenez le message suivant dans les messages de compilation&lt;/p&gt;
&lt;p&gt;&lt;quotation&gt;
Package indextools Warning&#160;: Remember to run xelatex again after calling
(indextools) &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;texindy animal.idx'. Package indextools Warning: Remember to run xelatex again after calling (indextools)&lt;/code&gt;texindy plante.idx'.
&lt;/quotation&gt;&lt;/p&gt;
&lt;p&gt;Tout est dit&#160;: alors que indextools peut ex&#233;cuter &lt;code&gt;makeindex&lt;/code&gt; automatiquement, ce n'est pas le cas pour &lt;code&gt;xindy&lt;/code&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;En fait c'est possible mais en appelant XeLaTeX avec certains options (&#8230;)&#034; id=&#034;nh3-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Qu'importe, nous allons le faire maintenant.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Deux ex&#233;cutions de &lt;code&gt;texindy&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;On constate que deux fichiers &lt;code&gt;.idx&lt;/code&gt; ont &#233;t&#233; produits&#160;: &lt;code&gt;animal.idx&lt;/code&gt; et &lt;code&gt;plante.idx&lt;/code&gt;. Nous allons donc les transformer en appelant &lt;code&gt;texindy&lt;/code&gt;, le &lt;code&gt;xindy&lt;/code&gt; pr&#233;configur&#233; pour LaTeX.&lt;/p&gt;
&lt;p&gt;En ligne de commande donc, frapper (le &lt;code&gt;$&lt;/code&gt; repr&#233;sente l'invite de commande)&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;bash&#034;&gt;&lt;code&gt;$ texindy -L french -I xelatex animal.idx $ texindy -L french -I xelatex plante.idx&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Explication de code&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code&gt;texindy&lt;/code&gt; le programme que l'on appelle.&lt;/li&gt;&lt;li&gt; &lt;code&gt;-L french&lt;/code&gt; utilisez les r&#232;gles de classement alphab&#233;tique du fran&#231;ais. Chaque langue &#224; ses propres r&#232;gles de classement&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3-4&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Par exemple&#160;: en fran&#231;ais on classe d'abord sans tenir compte des accents, (&#8230;)&#034; id=&#034;nh3-4&#034;&gt;4&lt;/a&gt;]&lt;/span&gt;, c'est pourquoi il est n&#233;cessaire de pr&#233;ciser la langue. Et si vous utilisez plusieurs langues dans votre index&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;? On y viendra plus tard.&lt;/li&gt;&lt;li&gt; &lt;code&gt;-I xelatex&lt;/code&gt; indique que nous chargeons les r&#232;gles propres &#224; &lt;code&gt;xelatex&lt;/code&gt;, autrement dit que nos fichiers &lt;code&gt;.idx&lt;/code&gt; sont encod&#233;s en &lt;span class=&#034;caps&#034;&gt;UTF8&lt;/span&gt;.
Apr&#232;s chaque retour chariot, vous obtiendrez normalement des messages de compilation &lt;code&gt;xindy&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Vous devriez d&#233;sormais avoir deux fichiers&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; &lt;code&gt;animal.ind&lt;/code&gt; et &lt;code&gt;plante.ind&lt;/code&gt;.
Si oui, nous pouvons passer &#224; la deuxi&#232;me compilation XeLaTeX&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Deuxi&#232;me compilation XeLaTeX&lt;/h2&gt;
&lt;p&gt;Maintenant, recompilez votre fichier &lt;code&gt;.tex&lt;/code&gt; avec XeLaTeX.&lt;/p&gt;
&lt;p&gt;Vous devriez obtenir le fichier ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_170 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;27&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://geekographie.maieul.net/IMG/pdf/premier-pas-xindy.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 11.6 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772795065' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-170 '&gt;&lt;strong&gt;Premiers index avec xindy
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;On trouve bien les deux index, tri&#233;e selon l'ordre alphab&#233;tique, avec les lettres accentu&#233;es bien plac&#233;es.&lt;/p&gt;
&lt;p&gt;On constate cependant une diff&#233;rence avec une compilation classique avec &lt;code&gt;makeindex&lt;/code&gt;&#160;: les mots sont regroup&#233;s par lettres initiales, avec l'initiale affich&#233;e en d&#233;but de chaque groupe. Nous verrons plus tard comment modifier l'apparence de cette initiale, voire la supprimer, lorsque nous aborderons la personnalisation de l'apparence de l'index.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Automatiser les compilations&#160;: &lt;code&gt;latexmk&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a id=&#034;latexmk&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Par rapport &#224; l'utilisation d'&lt;code&gt;indextools&lt;/code&gt; + &lt;code&gt;imakeidx&lt;/code&gt; nous avons perdu un peu au change&#160;: il faut proc&#233;der &#224; une compilation suppl&#233;mentaire de XeLaTeX, et en plus il faut compiler chaque fichier &lt;code&gt;.idx&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En g&#233;n&#233;rale la deuxi&#232;me, voire la troisi&#232;me, compilation XeLaTeX est n&#233;cessaire, notamment si on a une bibliographie, des renvois internes et une tables des mati&#232;res. Cependant, il serait plus simple d'avoir un outil qui nous fasse toutes ces compilation d'un coup.&lt;/p&gt;
&lt;p&gt;Cet outil, c'est &lt;a href='https://geekographie.maieul.net/79' class=&#034;spip_in&#034;&gt;&lt;code&gt;latexmk&lt;/code&gt;, dont j'ai d&#233;j&#224; parl&#233;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Il nous suffit donc de mettre dans le fichier de configuration &lt;code&gt;latexmkrc&lt;/code&gt; ou &lt;code&gt;.latexmkrc&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;bash&#034;&gt;&lt;code&gt;$pdflatex = &#034;xelatex %S&#034;; $pdf_mode = &#034;1&#034;; $makeindex = &#034;texindy -L french -I xelatex %S&#034;;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour qu'en ligne de commande un&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;bash&#034;&gt;&lt;code&gt;$ latexmk fichier.tex&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;fasse toutes les compilations.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb3-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 3-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Pour ceux qui ne savent pas pourquoi je conseille XeLaTeX, &lt;a href='https://geekographie.maieul.net/95' class=&#034;spip_in&#034;&gt;lisez l'introduction de mon livre&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb3-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 3-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Je suppose que vous avez la police Linux Libertine install&#233; sur votre ordinateur. Si ce n'est pas le cas, vous pouvez commenter la ligne correspondante, cela ne change rien au probl&#232;me, c'est juste plus esth&#233;tique.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb3-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 3-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;En fait c'est possible mais en appelant XeLaTeX avec certains options sp&#233;cifiques. Peut importe, nous allons apprendre ici &#224; utiliser latexmk pour simplifier.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb3-4&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3-4&#034; class=&#034;spip_note&#034; title=&#034;Notes 3-4&#034; rev=&#034;appendix&#034;&gt;4&lt;/a&gt;] &lt;/span&gt;Par exemple&#160;: en fran&#231;ais on classe d'abord sans tenir compte des accents, puis on les int&#232;gre dans un second classement&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; en espagnol la ligature &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;ll&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; est class&#233;e comme une lettre &#224; part, entre &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;l&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; et &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;m&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>xindy, un outil d'indexation plus efficace que makeindex</title>
		<link>https://geekographie.maieul.net/169</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/169</guid>
		<dc:date>2015-04-13T06:30:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;La plupart des personnes qui d&#233;butent en LaTeX utilisent pour g&#233;n&#233;rer des index l'historique logiciel makeindex. Celui-ci a pourtant un rempla&#231;ant bien plus efficace, notamment pour nous autres francophones. J'ai nomm&#233; xindy. Ce dernier est cependant rarement pr&#233;sent&#233; dans les ouvrages d'introduction &#224; LaTeX &#8211; le mien n'&#233;chappe pas &#224; ce travers. Or le fonctionnement par rapport &#224; makeindex s'av&#232;re assez diff&#233;rent. C'est pourquoi j'ai d&#233;cid&#233; d'&#233;crire plusieurs tutoriels sur l'utilisation de&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://geekographie.maieul.net/Index" rel="directory"&gt;Index&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;La plupart des personnes qui d&#233;butent en LaTeX utilisent pour g&#233;n&#233;rer des index l'historique logiciel &lt;code&gt;makeindex&lt;/code&gt;.
Celui-ci a pourtant un rempla&#231;ant bien plus efficace, notamment pour nous autres francophones. J'ai nomm&#233; &lt;code&gt;xindy&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ce dernier est cependant rarement pr&#233;sent&#233; dans les ouvrages d'introduction &#224; LaTeX&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb4-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;J'exclus le LaTeX Companion qu'on ne peut raisonnablement consid&#233;rer comme (&#8230;)&#034; id=&#034;nh4-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; &#8211; le mien n'&#233;chappe pas &#224; ce travers. Or le fonctionnement par rapport &#224; &lt;code&gt;makeindex&lt;/code&gt; s'av&#232;re assez diff&#233;rent. C'est pourquoi j'ai d&#233;cid&#233; d'&#233;crire plusieurs tutoriels sur l'utilisation de &lt;code&gt;xindy&lt;/code&gt;, qui seront publi&#233;s au rythme d'un par jour.&lt;/p&gt;
&lt;p&gt;Aujourd'hui donc, une pr&#233;sentation g&#233;n&#233;rale de &lt;code&gt;xindy&lt;/code&gt; et de ses avantages sur &lt;code&gt;makeindex&lt;/code&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Rappel&#160;: comment fonctionne l'indexation avec (X&lt;sup class=&#034;typo_exposants&#034;&gt;e&lt;/sup&gt;)LaTeX&lt;/h2&gt;
&lt;p&gt;L'indexation avec LaTeX fonctionne classiquement ainsi&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Une commande d'indexation, d&#233;finie par un package ad hoc, est appel&#233;e par l'utilisateur. Souvent cette commande est tout simplement &lt;code&gt;\index{&lt;leterme&gt;}&lt;/code&gt;. Les packages proposant de g&#233;rer plusieurs index proposent g&#233;n&#233;ralement des commandes de la forme &lt;code&gt;\index[&lt;lindex&gt;]{&lt;leterme&gt;}&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Cette commande &#233;crit dans un ou plusieurs fichiers &lt;code&gt;.idx&lt;/code&gt; des lignes de la forme &lt;code&gt;\indexentry{&lt;leterme&gt;}{&lt;lemplacement&gt;}&lt;/code&gt;. Si vous utilisez le package &lt;code&gt;splitindex&lt;/code&gt;, la forme utilis&#233;e est &lt;code&gt; &lt;code&gt;\indexentry[&lt;lindex&gt;{&lt;leterme&gt;}{&lt;lemplacement&gt;}&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Un programme &lt;i&gt;externe&lt;/i&gt; &#224; LaTeX transforme ce ou ces fichiers &lt;code&gt;.idx&lt;/code&gt; en des fichiers &lt;code&gt;.ind&lt;/code&gt;, qui regroupe les termes et indique les emplacements. Classiquement ce fichier contiendra quelque chose comme&#160;:
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\begin{theindex} \item &lt;leterme&gt;, &lt;lemplacement&gt;, &lt;lemplacement2&gt; \item &lt;leterme2&gt;, &lt;lemplacement&gt; \end{theindex}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le programme qui proc&#232;de &#224; cette transformation est g&#233;n&#233;ralement &lt;code&gt;makeindex&lt;/code&gt;, mais il peut aussi s'agir de &lt;code&gt;splitindex&lt;/code&gt; (qui lit les fichiers &lt;code&gt;.idx&lt;/code&gt; produit par le package homonyme&lt;/code&gt;) ou &lt;code&gt;xindy&lt;/code&gt;. Il utilise pour ce faire des r&#232;gles qui lui sont propres et d'autres qui d&#233;pendent de fichiers sp&#233;cifiques. Dans le cas de &lt;code&gt;makeindex&lt;/code&gt;, il s'agit du fichier de style &lt;code&gt;.ist&lt;/code&gt;. Dans le cas de &lt;code&gt;xindy&lt;/code, il s'agit de fichiers de configuration &lt;code&gt;.xdy&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt; lors de la seconde lecture du fichier &lt;code&gt;.tex&lt;/code&gt; par (X&lt;sup class=&#034;typo_exposants&#034;&gt;e&lt;/sup&gt;)LaTeX, la commande &lt;code&gt;\printindex&lt;/code&gt;, d&#233;finie par le package d'indexation, va lire le fichier &lt;code&gt;.ind&lt;/code&gt; de l'index demand&#233; et l'interpr&#233;ter. Le fichier &lt;code&gt;.ind&lt;/code&gt; ne contenant que du code TeX, son interpr&#233;tation suit les r&#232;gles classiques de compr&#233;hension du code TeX.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ainsi, il y a trois &#233;tapes pour g&#233;n&#233;rer un index avec LaTeX&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; ex&#233;cution de (X&lt;sup class=&#034;typo_exposants&#034;&gt;e&lt;/sup&gt;)LaTeX qui &#233;crit le(s) fichier(s) &lt;code&gt;.idx&lt;/code&gt;&lt;/li&gt;&lt;li&gt; ex&#233;cution du logiciel d'indexation, qui transforme le(s) fichier(s) d'indexation brut(s) (&lt;code&gt;.idx&lt;/code&gt;) en fichier(s) d'indexation format&#233;(s) (&lt;code&gt;.ind&lt;/code&gt;).&lt;/li&gt;&lt;li&gt; seconde ex&#233;cution de (X&lt;sup class=&#034;typo_exposants&#034;&gt;e&lt;/sup&gt;)LaTeX qui lit le(s) fichier(s) &lt;code&gt;.ind&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Cependant si vous utilisez le package &lt;code&gt;imakeidx&lt;/code&gt; ou &lt;a href='https://geekographie.maieul.net/154' class=&#034;spip_in&#034;&gt;son successeur &lt;code&gt;indextools&lt;/code&gt;&lt;/a&gt;, celui ci utilise une des possibilit&#233;s des moteurs TeX modernes&#160;: la possibilit&#233; de lancer automatiquement un package. C'est pourquoi vous n'avez g&#233;n&#233;ralement pas &#224; lancer &lt;code&gt;makeindex&lt;/code&gt; et ne faites par cons&#233;quences qu'un compilation (X&lt;sup class=&#034;typo_exposants&#034;&gt;e&lt;/sup&gt;)LaTeX.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Avantages de &lt;code&gt;xindy&lt;/code&gt; sur &lt;code&gt;makeindex&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Le logiciel &lt;code&gt;makeindex&lt;/code&gt; est le logiciel historique&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb4-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;il est d'ailleurs le seul &#224; &#234;tre livr&#233; avec la distribution TeX pour Windows (&#8230;)&#034; id=&#034;nh4-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Son principal d&#233;faut, qui &#224; lui seul justifie de passer &#224; &lt;code&gt;xindy&lt;/code&gt;, est de fonctionne uniquement en &lt;span class=&#034;caps&#034;&gt;ASCII&lt;/span&gt; et d'ignorer l'Unicode, ce qui s'av&#232;re particuli&#232;rement probl&#233;matique si on r&#233;dige un document dans une autre langue que l'anglais.&lt;/p&gt;
&lt;p&gt;Ainsi un fichier &lt;code&gt;.idx&lt;/code&gt; contenant les lignes suivantes&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\indexentry{Souris}{1} \indexentry{Chat}{1} \indexentry{&#201;l&#233;phant}{1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Sera transform&#233; en fichier &lt;code&gt;.ind&lt;/code&gt; contenant les lignes suivantes&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt; \item Chat, 1 \indexspace \item Souris, 1 \indexspace \item &#201;l&#233;phant, 1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce qui ne respecte visiblement pas l'ordre alphab&#233;tique. La solution classique est alors d'utiliser le &lt;code&gt;@&lt;/code&gt; pour forcer l'ordre de tri.&lt;/p&gt;
&lt;p&gt;Ainsi un fichier contenant &lt;code&gt;.idx&lt;/code&gt;&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\indexentry{Chat}{1} \indexentry{Elephant@&#201;l&#233;phant}{1} \indexentry{Souris}{1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;sera transform&#233; par &lt;code&gt;makeindex&lt;/code&gt; en fichier &lt;code&gt;.ind&lt;/code&gt; contenant&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt; \item Chat, 1 \indexspace \item &#201;l&#233;phant, 1 \indexspace \item Souris, 1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cette solution fonctionne, mais s'av&#232;re peut pratique &#224; l'usage, notamment si on veut cr&#233;er des commandes pour automatisation l'indexation de certains termes.&lt;/p&gt;
&lt;p&gt;Avec &lt;code&gt;xindy&lt;/code&gt;, ce probl&#232;me ne se pose plus. Pour peux qu'on lui fournisse les bon param&#232;tres, un fichier &lt;code&gt;.idx&lt;/code&gt; contenant&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\indexentry{Chat}{1} \indexentry{&#201;l&#233;phant}{1} \indexentry{Souris}{1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt; \item Chat, 1 \indexspace \item &#201;l&#233;phant, 1 \indexspace \item Souris, 1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Mais xindy propose bien plus que cela. Les prochains articles expliqueront comment se servir de certains fonctionnalit&#233;s comme&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; la cr&#233;ation d'un ordre d'indexation personnalis&#233;, par exemple pour trier les empereurs par date de r&#232;gne, sans passer par l'astuce du &lt;code&gt;@&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; la gestion des num&#233;ros de renvois contenant des sous num&#233;ros, par exemple sous la forme page, ligne.&lt;/li&gt;&lt;li&gt; d'autres que je d&#233;couvrirait au fur et &#224; mesure&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Il y a cependant quelques limites &#224; &lt;code&gt;xindy&lt;/code&gt;, la premi&#232;re &#233;tant une moindre compatibilit&#233; avec le package &lt;code&gt;hyperref&lt;/code&gt;. Mais nous y viendrons en temps voulu.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;&lt;code&gt;texindy&lt;/code&gt;, un &lt;code&gt;xindy&lt;/code&gt; sp&#233;cial LaTeX&lt;/h2&gt;
&lt;p&gt;Une derni&#232;re pr&#233;cision s'impose avant de passer aux choses s&#233;rieux. Contrairement &#224; &lt;code&gt;makeindex&lt;/code&gt; qui transforme des fichiers utilisant une syntaxe LaTeX en des fichiers utilisant une syntaxe LaTeX, &lt;code&gt;xindy&lt;/code&gt; peut travailler avec des fichiers ayant une autre syntaxe, par exemple du xml.&lt;/p&gt;
&lt;p&gt;C'est pourquoi il existe une version sp&#233;cifique de &lt;code&gt;xindy&lt;/code&gt;, nomm&#233;e &lt;code&gt;texxindy&lt;/code&gt; qui poss&#232;dent des r&#233;glages par d&#233;faut sp&#233;cifiques aux fichiers utilisant une syntaxe &lt;code&gt;.tex&lt;/code&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb4-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh4-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 4-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;J'exclus le &lt;i&gt;LaTeX Companion&lt;/i&gt; qu'on ne peut raisonnablement consid&#233;rer comme un ouvrage d'introduction.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb4-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh4-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 4-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;il est d'ailleurs le seul &#224; &#234;tre livr&#233; avec la distribution TeX pour Windows Miktex&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>indextools, un fork de imakeidx</title>
		<link>https://geekographie.maieul.net/154</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/154</guid>
		<dc:date>2015-01-25T14:11:54Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;&#192; mon grand regret j'ai du, pour la premi&#232;re fois de ma vie, cr&#233;&#233; un fork d'un package. Le package imakeidx a dont une nouvelle version&#160;: indextools. La raison technique La raison technique de cette fork est la suivante&#160;: lorsqu'on utile hyperref en combinaison avec un package d'indexation, il est conseill&#233; de charger hyperref apr&#232;s le package, pour avoir des liens internes. Cependant hyperref doit &#234;tre charg&#233; avant bidi, le package qui permet de g&#233;rer les langues qui s'&#233;crivent de&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://geekographie.maieul.net/Index" rel="directory"&gt;Index&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;&#192; mon grand regret j'ai du, pour la premi&#232;re fois de ma vie, cr&#233;&#233; un fork d'un package. Le package imakeidx a dont une nouvelle version&#160;: indextools.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;La raison technique&lt;/h2&gt;
&lt;p&gt;La raison technique de cette fork est la suivante&#160;: lorsqu'on utile &lt;i&gt;hyperref&lt;/i&gt; en combinaison avec un package d'indexation, il est conseill&#233; de charger &lt;i&gt;hyperref&lt;/i&gt; apr&#232;s le package, pour avoir des liens internes.&lt;/p&gt;
&lt;p&gt;Cependant &lt;i&gt;hyperref&lt;/i&gt; doit &#234;tre charg&#233; avant &lt;i&gt;bidi&lt;/i&gt;, le package qui permet de g&#233;rer les langues qui s'&#233;crivent de droite &#224; gauche. Ce qui fait que l'ordre de chargement correct est&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;i&gt;imakeidx&lt;/i&gt;&lt;/li&gt;&lt;li&gt; &lt;i&gt;hyperref&lt;/i&gt;&lt;/li&gt;&lt;li&gt; &lt;i&gt;bidi&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Malheureusement, bidi red&#233;finie la mani&#232;re dont est affich&#233;e l'index, ce qui entra&#238;ne pour cons&#233;quent que certaine fonctionnalit&#233; de &lt;i&gt;imakeidx&lt;/i&gt;, notamment le reformatage de l'index, ne sont plus prises en compte.&lt;/p&gt;
&lt;p&gt;Pour r&#233;soudre ce probl&#232;me, il fallait donc modifier &lt;i&gt;imakeidx&lt;/i&gt; pour que ce dernier d&#233;finisse l'affichage de l'index lors du &lt;code&gt;\begin{document}&lt;/code&gt;, dont apr&#232;s bidi.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;La raison humaine&lt;/h2&gt;
&lt;p&gt;Ayant trouv&#233; ce bug, je l'ai signal&#233; &#224; l'auteur d'imakeidx. Celui-ci n'a pas daign&#233; me r&#233;pondre, m&#234;me pour me dire, par exemple, que ma solution &#233;tait mauvaise. Juste ... rien, pas de r&#233;ponse.&lt;/p&gt;
&lt;p&gt;Je l'ai donc contact&#233; via un r&#233;seau public pour&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; lui demander pourquoi il ne r&#233;pondait pas&lt;/li&gt;&lt;li&gt; si c'&#233;tait par manque de temps pour s'occuper d'&lt;i&gt;imakeidx&lt;/i&gt;, s'il souhaitait me d&#233;l&#233;guer la gestion du package.&lt;/li&gt;&lt;li&gt; sinon, s'il comptait int&#233;grer une correction de ce bug.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;L'auteur n'a pas r&#233;pondu ni &#224; la premi&#232;re ni &#224; la troisi&#232;me question. Quant &#224; la seconde, il a indiqu&#233;, s&#233;chement, qu'il ne souhaitait pas que je reprenne le package.&lt;/p&gt;
&lt;p&gt;Il a sans doute ses raisons, mais en attendant un bug existe, et je trouve idiot de laisse un package ainsi bugu&#233;.&lt;/p&gt;
&lt;p&gt;C'est pourquoi j'ai, avec regret, d&#233;cid&#233; de forker le projet, c'est &#224; dire d'en faire une version divergente de la version principale. Ce fork est donc sorti&#160;: &lt;i&gt;indextools&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Pour le moment il se contente de r&#233;soudre ce bug. J'esp&#232;re qu'un jour nous n'aurons plus qu'un seul package. En attendant, ceux qui souhaitent utiliser les fonctionnalit&#233;s de &lt;i&gt;bidi&lt;/i&gt;, &lt;i&gt;hyperref&lt;/i&gt; et &lt;i&gt;imakeidx&lt;/i&gt; en m&#234;me temps peuvent utilise &lt;i&gt;indextools&lt;/i&gt;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Indexation et renvoi</title>
		<link>https://geekographie.maieul.net/120</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/120</guid>
		<dc:date>2013-06-11T18:45:07Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Il est possible dans un index de renvoyer vers une autre entr&#233;e d'index, gr&#226;ce &#224; la syntaxe |seeindex. Attention cependant&#160;: l'entr&#233;e &#224; laquelle on renvoie n'est pas pour autant index&#233;e. Prenons par exemple le code suivant&#160;: Le Christ lui dit&#160;: \enquoteSa&#252;l, Sa&#252;l, pourquoi me pers&#233;cutes-tu&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;?\indexSa&#252;l|seePaul Nous aurons bien une entr&#233;e d'index&#160;: Sa&#252;l, voir Paul Mais aucune entr&#233;e &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Paul&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; correspondant &#224; la page de notre texte. Il faut donc mettre Le Christ lui dit&#160;:&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://geekographie.maieul.net/Index" rel="directory"&gt;Index&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Il est possible dans un index de renvoyer vers une autre entr&#233;e d'index, gr&#226;ce &#224; la syntaxe &lt;code&gt;|see{index}&lt;/code&gt;. Attention cependant&#160;: l'entr&#233;e &#224; laquelle on renvoie n'est pas pour autant index&#233;e.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Prenons par exemple le code suivant&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;Le Christ lui dit : \enquote{Sa&#252;l, Sa&#252;l, pourquoi me pers&#233;cutes-tu ?}\index{Sa&#252;l|see{Paul}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous aurons bien une entr&#233;e d'index&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
Sa&#252;l, &lt;i&gt;voir&lt;/i&gt; Paul&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mais aucune entr&#233;e &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Paul&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; correspondant &#224; la page de notre texte.&lt;/p&gt;
&lt;p&gt;Il faut donc mettre&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;Le Christ lui dit : \enquote{Sa&#252;l, Sa&#252;l, pourquoi me pers&#233;cutes-tu ?}\index{Sa&#252;l|see{Paul}}\index{Paul}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
