<?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=22&amp;page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>Bug avec polyglossia v1.45 et reledpar</title>
		<link>https://geekographie.maieul.net/235</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/235</guid>
		<dc:date>2020-04-21T06:00: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 version 1.45 de polyglossia a chang&#233; certaines commandes utilis&#233;es par reledpar. Par cons&#233;quent, celui-ci n'&#233;tait plus capable de g&#233;rer correctement le changement de langue entre les deux textes mis en parall&#232;les. Nous nous sommes aper&#231;u de cela apr&#232;s la sortie de la TeXLive 2020. Par cons&#233;quent, les correctifs ne sont pas disponibles dans la TeXLive 2019. Correctifs &#224; appliquer Si vous utiliser la TeXLive&#160;2019, ne mettez pas &#224; jour polyglossia, ou revenez &#224; une version ant&#233;rieure &#224; la&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://geekographie.maieul.net/r-e-led-mac-par" rel="directory"&gt;(r)(e)led(mac/par)&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;La version 1.45 de polyglossia a chang&#233; certaines commandes utilis&#233;es par reledpar. Par cons&#233;quent, celui-ci n'&#233;tait plus capable de g&#233;rer correctement le changement de langue entre les deux textes mis en parall&#232;les.&lt;/p&gt;
&lt;p&gt;Nous nous sommes aper&#231;u de cela apr&#232;s la sortie de la TeXLive 2020. Par cons&#233;quent, les correctifs ne sont pas disponibles dans la TeXLive 2019.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Correctifs &#224; appliquer&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Si vous utiliser la TeXLive&#160;2019, ne mettez pas &#224; jour polyglossia, ou revenez &#224; une version ant&#233;rieure &#224; la 1.45.&lt;/li&gt;&lt;li&gt; Si vous utiliser la TeXLive&#160;2020, mettez &#224; jour reledpar pour avoir la version 2.23.1.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Bug avec polyglossia 1.42.4</title>
		<link>https://geekographie.maieul.net/201</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/201</guid>
		<dc:date>2016-04-13T14:42:10Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;D&#233;cid&#233;ment, c'est la saison des bugs. La version 1.42.4 de polyglossia, envoy&#233;e sur le &lt;span class=&#034;caps&#034;&gt;CTAN&lt;/span&gt; le 25&#160;mars, casse les espaces &#224; l'interieur des guillemets fran&#231;ais. Voici comment contourner le probl&#232;me, en attendant qu'il soit r&#233;solu directement dans polyglossia. Le probl&#232;me Soit le les lignes suivantes&#160;: \documentclassarticle \usepackagepolyglossia \setmainlanguagefrench \setotherlanguageenglish \usepackage[french=guillemets]csquotes \begindocument \enquotex \enddocument Avant&#160;(&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;D&#233;cid&#233;ment, c'est la saison des bugs. La version 1.42.4 de &lt;i&gt;polyglossia&lt;/i&gt;, envoy&#233;e sur le &lt;span class=&#034;caps&#034;&gt;CTAN&lt;/span&gt; le 25&#160;mars, casse les espaces &#224; l'interieur des guillemets fran&#231;ais.&lt;/p&gt;
&lt;p&gt;Voici comment contourner le probl&#232;me, &lt;a href=&#034;https://github.com/reutenauer/polyglossia/issues/141&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;en attendant qu'il soit r&#233;solu directement dans polyglossia&lt;/a&gt;.&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 le 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;\documentclass{article} \usepackage{polyglossia} \setmainlanguage{french} \setotherlanguage{english} \usepackage[french=guillemets]{csquotes} \begin{document} \enquote{x} \end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Avant la version 1.42.4 de &lt;i&gt;polyglossia&lt;/i&gt;, des espaces &#233;taient automatiquement ins&#233;r&#233;es au niveau des guillemets.&lt;/p&gt;
&lt;div class='spip_document_205 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;49&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L109xH56/guillemets-espaces-0021f.png?1760449477' width='109' height='56' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-205 '&gt;&lt;strong&gt;Espaces dans les guillemets&#160;: bonne typographie
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Apr&#232;s cette version, les espaces disparaissent.&lt;/p&gt;
&lt;div class='spip_document_206 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;58&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L77xH41/guillemets-sans-espaces-8f6d8.png?1760449477' width='77' height='41' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-206 '&gt;&lt;strong&gt;Pas d'espaces dans les guillemets&#160;: mauvaise typographie
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;La solution&lt;/h2&gt;
&lt;p&gt;Le probl&#232;me a &#233;t&#233; introduit &lt;a href=&#034;https://github.com/reutenauer/polyglossia/commit/6bcba5a1899dca30d62f665cead8b00cb5a4be2e&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;par un commit visant &#224; r&#233;soudre un autre probl&#232;me&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;On pourrait &#233;videmment surcharger le fichier &lt;code&gt;french.ldf&lt;/code&gt; modifi&#233; par ce commit pour revenir &#224; l'ancien fichier. Toutefois, il n'est en g&#233;n&#233;ralement pas conseill&#233; de surcharger un fichier entier&#160;: on ne profite pas des &#233;volutions futures.&lt;/p&gt;
&lt;p&gt;Cependant il est assez simple de corriger cela. Il suffit de r&#233;tablir au sein de la commande &lt;code&gt;\french@punctuation&lt;/code&gt; les codes comment&#233;s, et ce gr&#226;ce &#224; la commande &lt;code&gt;\apptocmd&lt;/code&gt; qui permet d'ajouter des morceaux de code &#224; la fin d'une commande d&#233;j&#224; existante.&lt;/p&gt;
&lt;p&gt;Comme la commande &lt;code&gt;\french@punctuation&lt;/code&gt; contient des &lt;code&gt;@&lt;/code&gt;, et que les commandes que l'on souhaite ins&#233;rer aussi, il faut entourer notre &lt;code&gt;\apptocmd&lt;/code&gt; de &lt;code&gt;\makeatletter&lt;/code&gt;&#8230;&lt;code&gt;\makeatother&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Cela &#233;tant, le seul bout de code &#224; ins&#233;rer dans le pr&#233;ambule est&#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{\french@punctuation}{% \XeTeXinterchartoks \french@punctguillstart 255 = {\nobreakspace\xpg@nospace}% &#034;&#171; &#034; -&gt; &#034;&#171;~&#034; \XeTeXinterchartoks 255 \french@punctguillend = {\xpg@unskip\nobreakspace}% &#034; &#187;&#034; -&gt; &#034;~&#187;&#034; }{}{}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Je ne manquerais pas de vous tenir au courant lorsque la nouvelle version de polyglossia sera sortie, mais il faudra alors passer &#224; la TeXLive 2017, la TeXLive 2016 &#233;tant gel&#233;e.&lt;/p&gt;
&lt;p&gt;Corrigenda&#160;: si vous utiliser TeXLive 2016, lisez l'article suivant &#034;&lt;a href='https://geekographie.maieul.net/203' class=&#034;spip_in&#034;&gt;Polyglossia et XeLaTeX 3.14159265-2.6-0.99996 (TeXLive 2016)&lt;/a&gt;&#034;.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div &lt;div class='rss_ps'&gt;&lt;p&gt;Remerciement &#224; &lt;a href=&#034;https://twitter.com/aurelberra/status/720037721595621376&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Aur&#233;lien Berra&lt;/a&gt; pour avoir signal&#233; le probl&#232;me et trouv&#233; la piste de solution.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>ArabLuaTeX&#160;: ArabTeX pour LuaLaTeX</title>
		<link>https://geekographie.maieul.net/199</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/199</guid>
		<dc:date>2016-04-13T06:30:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Robert Alessi</dc:creator>



		<description>
&lt;p&gt;La notation &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;ArabTeX&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; a &#233;t&#233; introduite sous TeX/LaTeX en 1992. Elle a &#233;t&#233; ensuite port&#233;e sous XeLaTeX par arabxetex. arabluatex l'introduit pour la premi&#232;re fois sous LuaLaTeX. arabluatex ne prend actuellement en charge que la langue arabe. C'est une diff&#233;rence importante par rapport &#224; arabtex qui int&#232;gre un grand nombre de langues s&#233;mitiques. De nouvelles langues seront progressivement ajout&#233;es &#224; arabluatex, &#224; commencer par l'h&#233;breu et le syriaque. Pr&#233;sentation Il n'est pas question&#160;(&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;La notation &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;ArabTeX&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; a &#233;t&#233; introduite sous TeX/LaTeX en 1992. Elle a &#233;t&#233; ensuite port&#233;e sous XeLaTeX par &lt;i&gt;arabxetex&lt;/i&gt;. &lt;i&gt;arabluatex&lt;/i&gt; l'introduit pour la premi&#232;re fois sous &lt;a href=&#034;http://lataix-sebastien.developpez.com/tutoriels/latex/un-guide-pour-lualatex/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;LuaLaTeX&lt;/a&gt;. &lt;i&gt;arabluatex&lt;/i&gt; ne prend actuellement en charge que la langue arabe. C'est une diff&#233;rence importante par rapport &#224; &lt;i&gt;arabtex&lt;/i&gt; qui int&#232;gre un grand nombre de langues s&#233;mitiques. De nouvelles langues seront progressivement ajout&#233;es &#224; &lt;i&gt;arabluatex&lt;/i&gt;, &#224; commencer par l'h&#233;breu et le syriaque.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Pr&#233;sentation&lt;/h2&gt;
&lt;p&gt;Il n'est pas question d'entrer ici dans le d&#233;tail. Le package, actuellement en version 1.0.1 &lt;a href=&#034;http://ctan.org/pkg/arabluatex&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;est publi&#233; sur le &lt;span class=&#034;caps&#034;&gt;CTAN&lt;/span&gt;&lt;/a&gt;, o&#249; l'on peut trouver une &lt;a href=&#034;http://mirrors.ctan.org/macros/luatex/latex/arabluatex/arabluatex.pdf&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;documentation compl&#232;te&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour une comparaison entre &lt;i&gt;arabtex&lt;/i&gt; (pour (La)TeX), &lt;i&gt;arabxetex&lt;/i&gt; (pour XeLaTeX) et &lt;i&gt;arabluatex&lt;/i&gt; (pour LuaLaTeX), je renvoie &#224; cette documentation (point 1.1).&lt;/p&gt;
&lt;p&gt;Comme &lt;i&gt;arabtex&lt;/i&gt;, &lt;i&gt;arabluatex&lt;/i&gt; transforme la notation &lt;span class=&#034;caps&#034;&gt;ASCII&lt;/span&gt; ArabTeX en arabe unicode. Cette notation est int&#233;ressante &#224; deux titres&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; elle s'int&#232;gre parfaitement au code informatique. Cela est particuli&#232;rement important quand il s'agit de saisir des documents complexes, tels que des documents scientifiques ou des &#233;ditions critiques dans lesquelles abondent toutes sortes d'annotations. Ce n'est pas le cas du script arabe unicode, qui perturbe constamment le sens des crochets, parenth&#232;ses, accolades et autres signes informatiques, sans parler des interversions de mots.&lt;/li&gt;&lt;li&gt; elle permet un encodage pr&#233;cis de la langue arabe, et donne la possibilit&#233;, par exemple, de s&#233;parer les pr&#233;fixes, les particules et les affixes, introduisant ainsi la possibilit&#233; de recherches grammaticales selon des crit&#232;res complexes.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Il faut ajouter &#224; cette liste les diff&#233;rentes possibilit&#233;s de traitement du code &lt;span class=&#034;caps&#034;&gt;ASCII&lt;/span&gt; ArabTeX&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; vocalisation totale (&lt;i&gt;scriptio plena&lt;/i&gt;)&#160;: mode &lt;code&gt;[fullvoc]&lt;/code&gt;&lt;/li&gt;&lt;li&gt; vocalisation&#160;: mode &lt;code&gt;[voc]&lt;/code&gt;&lt;/li&gt;&lt;li&gt; arabe non-vocalis&#233; (&lt;i&gt;scriptio defectiva&lt;/i&gt;)&#160;: mode &lt;code&gt;[novoc]&lt;/code&gt;&lt;/li&gt;&lt;li&gt; translitt&#233;ration selon les diff&#233;rents standards&#160;: mode &lt;code&gt;[trans]&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Tous ces traitements sont possibles &#224; partir d'une seule op&#233;ration de saisie.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Particularit&#233;s&lt;/h2&gt;
&lt;p&gt;Le fonctionnement d'&lt;i&gt;arabluatex&lt;/i&gt; est tr&#232;s diff&#233;rent de celui de ses pr&#233;d&#233;cesseurs. Le traitement du code &lt;span class=&#034;caps&#034;&gt;ASCII&lt;/span&gt; ne repose ni sur TeX ni sur le moteur TECkit, mais sur un jeu de fonctions Lua. Dans un premier temps, sont trait&#233;es dans les environnements arabes toutes les commandes LaTeX qui sont cens&#233;es avoir de l'arabe dans leurs arguments, comme &lt;code&gt;\emph&lt;/code&gt; ou &lt;code&gt;\textbf&lt;/code&gt;. Ensuite, le code &lt;span class=&#034;caps&#034;&gt;ASCII&lt;/span&gt;, une fois isol&#233;, est confi&#233; &#224; de nouvelles fonctions qui appliquent diverses tables de correspondances selon les choix qui ont &#233;t&#233; faits.&lt;/p&gt;
&lt;p&gt;Autre particularit&#233; tr&#232;s importante&#160;: &lt;i&gt;arabluatex ne fait appel ni &#224; polyglossia ni &#224; luabidi&lt;/i&gt;. Les sens d'&#233;criture sont pris en charge directement par les primitives de LuaTeX que sont &lt;code&gt;\pagedir \bodydir \pardir&lt;/code&gt; et &lt;code&gt;\textdir&lt;/code&gt;. Sous LuaTeX, c'est en effet toujours ainsi que l'on devrait r&#233;gler les sens d'&#233;criture.&lt;/p&gt;
&lt;p&gt;Dernier point important&#160;: &lt;i&gt;arabluatex&lt;/i&gt; ne traite pas le code &lt;span class=&#034;caps&#034;&gt;ASCII&lt;/span&gt; tout &#224; fait comme ses pr&#233;d&#233;cesseurs. Il faut donc lire la documentation avant de l'utiliser.&lt;/p&gt;
&lt;p&gt;Pour ne prendre ici qu'un exemple, sous &lt;i&gt;arabluatex&lt;/i&gt; on ne doit jamais &#233;crire deux fois une lettre solaire pour obtenir le &lt;i&gt;ta&#353;d&#299;d&lt;/i&gt; euphonique. Ainsi, pour obtenir &#1575;&#1614;&#1604;&#1588;&#1617;&#1614;&#1605;&#1587;&#1615;, on peut &#233;crire &lt;code&gt;al-^samsu&lt;/code&gt; ou &lt;code&gt;a^s-^samsu&lt;/code&gt;, mais jamais &lt;code&gt;al-^s^samsu&lt;/code&gt; qui est en fait absurde.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;arabluatex et reledmac&lt;/h2&gt;
&lt;p&gt;Dans les environnements &lt;code&gt;\arb{}&lt;/code&gt; ou&lt;code&gt;\begin{arab} ... \end{arab}&lt;/code&gt; la commande &#224; double argument &lt;code&gt;\edtext{}{}&lt;/code&gt; est prise en charge. On peut ainsi avoir ceci&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\beginnumbering \pstart \begin{arab} wa-ya.sIru ta.hta 'l-jildi \edtext{\arb{.sadIduN}}{\Afootnote{M: \arb{.sadIdaN} E1}} \end{arab} \pend \endnumbering&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Comme on le voit, dans l'&#233;dition d'un texte arabe, il faut remettre la commande &lt;code&gt;\arb{}&lt;/code&gt; dans le premier argument de &lt;code&gt;\edtext{}{}&lt;/code&gt;. On peut ainsi avoir comme lemme du texte dans une autre langue que l'arabe.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;arabluatex et les commandes complexes&lt;/h2&gt;
&lt;p&gt;Comme on l'a dit plus haut, toute commande LaTeX &#224; argument simple, plac&#233;e &#224; l'int&#233;rieur d'un environnement arabe, est cens&#233;e contenir exclusivement du texte arabe.&lt;/p&gt;
&lt;p&gt;Parfois, ce n'est pas le cas. Par exemple, si l'on souhaite ins&#233;rer une commande dont l'agument est une dimension, il faut l'ins&#233;rer elle-m&#234;me dans la commande &lt;code&gt;\RL{}&lt;/code&gt; fournie par &lt;i&gt;arabluatex&lt;/i&gt;, comme ceci&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\begin{arab} da_hala \RL{\hspace{1in}} mubtasimaN \end{arab}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si l'argument ne contient que de l'arabe, on &#233;crira&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\begin{arab} \index{d_hl}da_hala mubtasimaN \end{arab}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et c'est tout&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;! La &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;magie&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; de Lua fera le reste, et l'on obtiendra &#224; la fin un index tout arabe, avec un classement alphab&#233;tique correct. En revanche, si la commande &lt;code&gt;\index{}&lt;/code&gt; ne contient pas que de l'arabe, il faudra &#233;crire&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\begin{arab} \RL{\index{d_hl|see{...}}}da_hala mubtasimaN \end{arab}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;En conclusion&lt;/h2&gt;
&lt;p&gt;Happy LuaTeXing, bien s&#251;r&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;!&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<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="en">
		<title>Bug in biblatex-bookinarticle 1.3.0</title>
		<link>https://geekographie.maieul.net/193</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/193</guid>
		<dc:date>2016-02-24T15:00:41Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;The version 1.3.0 of biblatex-bookinarticle introduced a big bug, which have broken compatibility with old bibtex's fields name. The version 1.3.1, just send on &lt;span class=&#034;caps&#034;&gt;CTAN&lt;/span&gt;, fix it. If needed, you can dowload it here.&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;The version 1.3.0 of biblatex-bookinarticle introduced a big bug, which have broken compatibility with old bibtex's fields name. The version 1.3.1, just send on &lt;span class=&#034;caps&#034;&gt;CTAN&lt;/span&gt;, fix it.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;If needed, you can dowload it here.&lt;/p&gt;
&lt;div class='spip_document_200 spip_document spip_documents spip_document_file spip_documents_center spip_document_center 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=&#034;https://github.com/maieul/biblatex-bookinarticle/archive/1.3.1.zip&#034; class=&#034; spip_doc_lien&#034; title='Zip - ' type=&#034;application/zip&#034;&gt;&lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L64xH64/zip-f045b.svg?1772795703' 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-200 '&gt;&lt;strong&gt;biblatex-bookinarticle 1.3.1
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&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>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;#nb2-1&#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;nh2-1&#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-2&#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-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;'&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;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;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-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;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;#nb3-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;nh3-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;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;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>Hook de pre-commit pour fichier .dtx, .sty et autres fichiers de package</title>
		<link>https://geekographie.maieul.net/158</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/158</guid>
		<dc:date>2015-02-21T19:51:12Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Dans un pr&#233;c&#233;dent article, je parlais de mon hook de pr&#233;-commit pour v&#233;rifier l'ajout de de&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;% &#224; la fin de chaque ligne dans un fichier .dtxy ou .sty. J'ai am&#233;lior&#233; ce hook pour lui ajouter d'autres fonctions de v&#233;rifications utiles lorsqu'on cr&#233;e des packages LaTeX. Principe Les fichiers .dtx permettent de documenter un code LaTeX en m&#234;me temps qu'on le saisit. Il n&#233;cessite cependant une syntaxe rigoureuse, et il m'arrive parfois de faire quelques erreurs. Installation Rien ne&#160;(&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Dans un pr&#233;c&#233;dent article, je parlais de mon &lt;a href='https://geekographie.maieul.net/148' class=&#034;spip_in&#034;&gt;hook de pr&#233;-commit pour v&#233;rifier l'ajout de de &lt;code&gt;%&lt;/code&gt;&lt;/a&gt; &#224; la fin de chaque ligne dans un fichier &lt;code&gt;.dtxy&lt;/code&gt; ou &lt;code&gt;.sty&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;J'ai am&#233;lior&#233; ce hook pour lui ajouter d'autres fonctions de v&#233;rifications utiles lorsqu'on cr&#233;e des packages LaTeX.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Principe&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#034;http://yvon-henel.fr/texnicien/docs/dtxtut-fr/dtxtut-fr.pdf&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Les fichiers &lt;code&gt;.dtx&lt;/code&gt; permettent de documenter un code LaTeX en m&#234;me temps qu'on le saisit&lt;/a&gt;. Il n&#233;cessite cependant une syntaxe rigoureuse, et il m'arrive parfois de faire quelques erreurs.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Installation&lt;/h2&gt;
&lt;p&gt;Rien ne changer&#160;: t&#233;l&#233;charger le hook, l'installer dans le dossier &lt;code&gt;.git/hook&lt;/code&gt;, le renommer &lt;code&gt;pre-commit&lt;/code&gt;, et faire un &lt;code&gt;chmod +x&lt;/code&gt; dessus.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Fonctionnalit&#233;&lt;/h2&gt;&lt;h3 class=&#034;h3&#034;&gt;Fins de ligne&lt;/h3&gt;
&lt;p&gt;La fonction principale reste, bien s&#251;r&#160;: impossibilit&#233; de commiter si un ligne non vide ne finit pas par un &lt;code&gt;%&lt;/code&gt;, ou si ce &lt;code&gt;%&lt;/code&gt; est pr&#233;c&#233;d&#233; d'un ou plusieurs espaces.&lt;/p&gt;
&lt;h3 class=&#034;h3&#034;&gt;Commande &lt;code&gt;\cs{}&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Impossible de commiter si l'argument d'une commande &lt;code&gt;\cs&lt;/code&gt; commence par un &lt;code&gt;\&lt;/code&gt;&lt;/p&gt;
&lt;h3 class=&#034;h3&#034;&gt;Environnement &lt;code&gt;macro&lt;/code&gt; et &lt;code&gt;macrocode&lt;/code&gt;&lt;/h3&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Impossible de commiter si le d&#233;but ou la fin de l'environnement n'est pas sur une ligne sp&#233;cifique.&lt;/li&gt;&lt;li&gt; V&#233;rification du nombre d'espaces entre le &lt;code&gt;%&lt;code&gt; et le &lt;code&gt;\begin&lt;/code&gt; ou &lt;code&gt;\end&lt;/code&gt;&#160;: 1 pour &lt;code&gt;macro&lt;/code&gt; et 4 pour &lt;code&gt;macrocode&lt;/code&gt;. Impossible de commiter dans le cas contraire.&lt;/li&gt;&lt;li&gt; V&#233;rification des appareillement d'environnement. Attention, on ne v&#233;rifie pas les &#233;ventuelles suppressions de d&#233;but/fin d'environnement. Impossible de v&#233;rifier dans le cas contraire.&lt;/li&gt;&lt;li&gt; V&#233;rifier que le nom de la macro est bien mentionn&#233; apr&#232;s &lt;code&gt;\begin{macro}&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div &lt;div class='rss_ps'&gt;&lt;p&gt;Comme avant, le code est &lt;a href=&#034;https://github.com/maieul/git-hooks/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;versionn&#233; sur Github&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="https://raw.githubusercontent.com/maieul/git-hooks/master/pre-commit-latex" length="8553" type="text/plain" />
		

	</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>



</channel>

</rss>
