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




<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>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>Mixer num&#233;rotation continue et discontinue</title>
		<link>https://geekographie.maieul.net/118</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/118</guid>
		<dc:date>2013-05-13T19:45:47Z</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 souhaitait m&#233;langer dans un texte deux types de num&#233;rotation de lignes, l'une continue, l'autre discontinue. Il n'est pas possible de faire cela directement avec les commandes eledmac, mais avec un peu d'astuce, on peut r&#233;soudre le probl&#232;me. Description du probl&#232;me Le demandeur travaille sur un texte alternant po&#233;sie et vers. Il souhaitait que la num&#233;rotation de le prose recommence &#224; 1 en d&#233;but de chaque passage, mais que la num&#233;rotation des vers soit continue, comme dans&#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;&lt;a href=&#034;http://www.guitex.org/home/en/forum/14-edizioni-critiche/85170-problemi-con-le-impostazioni-della-numerazione&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Une personne souhaitait m&#233;langer dans un texte deux types de num&#233;rotation de lignes&lt;/a&gt;, l'une continue, l'autre discontinue. Il n'est pas possible de faire cela directement avec les commandes eledmac, mais avec un peu d'astuce, on peut r&#233;soudre le probl&#232;me.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Description du probl&#232;me&lt;/h2&gt;&lt;div class='spip_document_84 spip_document spip_documents spip_document_file spip_documents_left spip_document_left spip_document_avec_legende' data-legende-len=&#034;47&#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/italie.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 121.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-84 '&gt;&lt;strong&gt;Alterner num&#233;rotation continue et discontinue
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le demandeur travaille sur un texte alternant po&#233;sie et vers. Il souhaitait que la num&#233;rotation de le prose recommence &#224; 1 en d&#233;but de chaque passage, mais que la num&#233;rotation des vers soit continue, comme dans l'exemple joint.&lt;/p&gt;
&lt;p&gt;Chaque bloc de vers / de prose correspond &#224; un &lt;code&gt;\beginumbering...\endnumbering&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;On ne peut utiliser &lt;code&gt;\pausenumbering ... \resumenumbering&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;Qui permettent d'arr&#234;ter un passage num&#233;rot&#233; sans pour autant r&#233;initialiser (&#8230;)&#034; id=&#034;nh3-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; puisque nous alternons num&#233;rotation continue et num&#233;rotation discontinue.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Solution&#160;: principe&lt;/h2&gt;
&lt;p&gt;Le principe de la solution est assez simple&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &#224; la fin de chaque s&#233;rie de vers, sauvegarder le num&#233;ro de la ligne dans un compteur.&lt;/li&gt;&lt;li&gt; en d&#233;but de chaque s&#233;rie de vers, except&#233;e la premi&#232;re, changer la num&#233;rotation, en utilisant le compteur.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Nous allons donc d&#233;finir deux commandes dans le pr&#233;ambule&#160;: &lt;code&gt;\savestanzaline&lt;/code&gt;, que nous placerons entre &lt;code&gt;\&amp;&lt;/code&gt; et &lt;code&gt;\endnumbering&lt;/code&gt; et &lt;code&gt;\restorestanzaline&lt;/code&gt;que nous placerons entre &lt;code&gt;\beginnumbering&lt;/code&gt; et &lt;code&gt;\stanza&lt;/code&gt;&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;Sauf pour le premier bloc de vers.&#034; id=&#034;nh3-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;, selon l'exemple ci-dessous&#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;\beginnumbering \restorestanzaline \stanza Questo &#232; il testo in versi &amp; Questo &#232; il testo in versi &amp; Questo &#232; il testo in versi &amp; Questo &#232; il testo in versi &amp; Questo &#232; il testo in versi &amp; Questo &#232; il testo in versi &amp; Questo &#232; il testo in versi &amp; Questo &#232; il testo in versi &amp; Questo &#232; il testo in versi &amp; Questo &#232; il testo in versi &amp; Questo &#232; il testo in versi &amp; Questo &#232; il testo in versi \&amp; \savestanzaline \endnumbering &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Reste &#224; d&#233;finir ces commandes, ce qui n'est pas une mince affaire.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Solution&#160;: mise en &#339;uvre&lt;/h2&gt;
&lt;p&gt;Dans notre pr&#233;ambule, mettre 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;\makeatletter \newcount\@stanzaline \newcommand{\savestanzaline}[0]{\global\@stanzaline=\line@num} \newcommand{\restorestanzaline}{\setlinenum{\@stanzaline}} \makeatother&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 et l.&#160;5&#160;: nos commande manipulent des commandes avec des @ dans le nom. On a donc besoin de &lt;code&gt;makeatletter&lt;/code&gt; et &lt;code&gt;\makeatother&lt;/code&gt; les encadrant.&lt;/li&gt;&lt;li&gt; l.&#160;2&#160;: on d&#233;clare un compteur &lt;code&gt;\@stanzaline&lt;/code&gt;. C'est un compteur TeX et non LaTeX. Ce choix ce justifie&#160;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Par &#233;conomie&#160;: on n'a pas besoin de toutes fonctionalit&#233;s d'un compteur TeX.&lt;/li&gt;&lt;li&gt; Par simplicit&#233;&#160;: un compteur LaTeX aurait pos&#233; des soucis lors de son appel pour modifier les num&#233;ro de lignes.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; l.&#160;3&#160;: la commande &lt;code&gt;\savestanzaline&lt;/code&gt; assigne &#224; &lt;code&gt;\@stanzaline&lt;/code&gt; la valeur du compteur &lt;code&gt;\line@num&lt;/code&gt;, que eledmac utilise pour compter les lignes. Le &lt;code&gt;\global&lt;/code&gt; permet que l'assignement d&#233;passe le cadre de la section num&#233;rot&#233;e&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;Celle qui est comprise entre et .&#034; id=&#034;nh3-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;.&lt;/li&gt;&lt;li&gt; l.&#160;4&#160;: la commande &lt;code&gt;\setlinenum&lt;/code&gt; est utilis&#233; pour modifier le num&#233;ro de la ligne. Elle est appel&#233;e avant que la num&#233;rotation ne commence. On indique simplement que le num&#233;ro de ligne souhait&#233; correspond au compteur &lt;code&gt;\@stanzaline&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Et voici donc comment l'on peut m&#233;langer deux types de num&#233;rotation de lignes.&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;Qui permettent d'arr&#234;ter un passage num&#233;rot&#233; sans pour autant r&#233;initialiser la num&#233;rotation.&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;Sauf pour le premier bloc de vers.&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;Celle qui est comprise entre &lt;code&gt;\beginnumbering&lt;/code&gt; et &lt;code&gt;\endnumbering&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Commandes &#224; arguments illimit&#233;s</title>
		<link>https://geekographie.maieul.net/114</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/114</guid>
		<dc:date>2013-04-21T13:16:22Z</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'ai eu r&#233;cemment besoin de cr&#233;er une commande dont le nombre d'arguments serait illimit&#233;. Il s'agissait de permettre d'indiquer une s&#233;rie de r&#233;f&#233;rence biblique associ&#233;e &#224; un passage. Voici comment, sur conseil du TeXnicien de surface. Probl&#232;me Le texte que j'&#233;tudie fait allusion par moment &#224; des passages bibliques. Je souhaite ajouter une note de bas de page indiquant&#160;: Cf. Passage 1&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; Passage 2&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; Passage n. etc &#201;videmment, je pourrais le faire &#224; la main, mais utiliser une commande&#160;(&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;J'ai eu r&#233;cemment besoin de cr&#233;er une commande dont le nombre d'arguments serait illimit&#233;. Il s'agissait de permettre d'indiquer une s&#233;rie de r&#233;f&#233;rence biblique associ&#233;e &#224; un passage. Voici comment, sur &lt;a href=&#034;http://yvon-henel.fr/texnicien/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;conseil du TeXnicien de surface&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Probl&#232;me&lt;/h2&gt;
&lt;p&gt;Le texte que j'&#233;tudie fait allusion par moment &#224; des passages bibliques. Je souhaite ajouter une note de bas de page indiquant&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Cf.&lt;/i&gt; Passage 1&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; Passage 2&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; Passage n. etc&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&#201;videmment, je pourrais le faire &#224; la main, mais utiliser une commande sp&#233;cifique permet d'uniformiser les styles. C'est pourquoi j'ai voulu cr&#233;er une commande&#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;\bibeall{passage1}{passage2}{passagen}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'avais affaire &#224; deux probl&#232;mes&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Techniquement une commande LaTeX ne peut prendre que 9 arguments au maximum.&lt;/li&gt;&lt;li&gt; Pour chaque passage, je devais indiquer le livre s&#233;par&#233;ment du chapitre, afin de pouvoir utiliser les possibilit&#233;s de &lt;a href=&#034;http://www.ctan.org/tex-archive/macros/latex/contrib/bibleref-french&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;code&gt;bibleref-french&lt;/code&gt;&lt;/a&gt;. En outre, je souhaitais pouvoir pr&#233;ciser la version entre parenth&#232;se (&lt;span class=&#034;caps&#034;&gt;LXX&lt;/span&gt;, Vulgate, &lt;span class=&#034;caps&#034;&gt;BHS&lt;/span&gt; etc.). Ce qui faisait que j'&#233;tais r&#233;duit &#224; au mieux 3 passages.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;h2&#034;&gt;Solution&#160;: principe&lt;/h2&gt;
&lt;p&gt;La solution consiste alors &#224; proposer une commande &#224; &lt;i&gt;un seul&lt;/i&gt; argument, mais qui pourrait se d&#233;composer sous forme de liste. J'ai choisi d'utiliser le &lt;code&gt;+&lt;/code&gt; comme s&#233;parateur d'&#233;l&#233;ment de liste, car la &lt;code&gt;,&lt;/code&gt; a un sens sp&#233;cifique lorsque l'on utilise &lt;code&gt;bibleref-french&lt;/code&gt;&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;Elle sert &#224; indiquer la s&#233;lection de plusieurs versets discontinus.&#034; id=&#034;nh4-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Pour s&#233;parer le livre du passage et le passage de la version, j'ai d&#233;cid&#233; d'utiliser le symbole &lt;code&gt;|&lt;/code&gt; (pipe).&lt;/p&gt;
&lt;p&gt;Ainsi, si je souhaite faire r&#233;f&#233;rence &#224; Isa&#239;e, livre 1 chapitre 1, dans la version &lt;span class=&#034;caps&#034;&gt;LXX&lt;/span&gt; et &lt;span class=&#034;caps&#034;&gt;BHS&lt;/span&gt;, je met&#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;\bibleall{Is|1:1|BHS+Is|1:1|LXX}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et j'obtiens en note de note de bas de page&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Cf&lt;/i&gt;. Is 1,1 (&lt;span class=&#034;caps&#034;&gt;BHS&lt;/span&gt;)&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; Is 1,1 (&lt;span class=&#034;caps&#034;&gt;LXX&lt;/span&gt;).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 class=&#034;h2&#034;&gt;Mise en &#339;uvre&lt;/h2&gt;
&lt;p&gt;Je cr&#233;e une commande &lt;code&gt;\bibleall&lt;/code&gt; qui se contente pour l'essentiel d'appeler une commande &lt;code&gt;\bibleref&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;\newcommand*{\bibleall}[1]{% %#1 : passage \footnote{\emph{Cf}. \bibleref{#1}}% }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ceci permet d'appeler &lt;code&gt;\bibleref&lt;/code&gt; depuis une autre commande &lt;code&gt;\bible&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;\newcommand*{\bible}[2]{% %#1 : passage %#2 : texte \emph{#2}\footnote{\bibleref{#1}}% }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La commande &lt;code&gt;\bibleref&lt;/code&gt; va se servir des outils du package &lt;a href=&#034;http://www.ctan.org/pkg/etoolbox&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;code&gt;etoolbox&lt;/code&gt;&lt;/a&gt; pour parcourir les listes. On se sert &#233;galement du package &lt;a href=&#034;http://www.ctan.org/pkg/xstring&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;code&gt;xstring&lt;/code&gt;&lt;/a&gt;, qui nous permet de savoir le nombre de &lt;code&gt;|&lt;/code&gt; dans chaque &#233;l&#233;ment de la liste&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; 1 si on n'indique pas la version.&lt;/li&gt;&lt;li&gt; 2 si on indique la version.&lt;/li&gt;&lt;/ul&gt;&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\newcommand{\bibleref}[1]{ %Commande pour afficher un passage biblique, c'est elle qui est appell&#233;e par tt les autres \def\passage##1|##2|##3|{\bibleverse{##1}(##2)\ifstrempty{##3}{}{ (##3)}}% L'affichage de chaque passage : ##1) livre ##2) passage ##3) version % On commence par faire une liste des passages \def\passages{}% Liste des passages \numdef\nbpassages{0}% Nbr total de passages \DeclareListParser*{\trouvepassages}{+}% Le + est un s&#233;parateur \trouvepassages{\numdef\nbpassages{\nbpassages+1}\listadd\passages}{#1}% On remplit la liste des passage % % On la parcourt ensuite \numdef\cptpassage{0}% Le nombre de passage courant \renewcommand{\do}[1]{% Ce qu'on effectue &#224; chaque boucle \numdef\cptpassage{\cptpassage+1}% Incr&#233;menter le compteur du passage courant \IfSubStr[2]{##1}{|}% Tester si on a 2 ou 3 &#233;l&#232;ments dans le passage {\passage##1|} % Si 3 &#233;l&#232;ments, donc 2 | {\passage##1||}% Si 2 &#233;l&#232;ments, donc 1 | \ifnumequal{\nbpassages}{\cptpassage}{.}{ ; }% y a t'il encore des passages ensuite? }% \dolistloop{\passages}% Boucler sur tt les passages % }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'ai d&#233;j&#224; mis des commentaires, qui devraient permettre de comprendre l'essentiel. Mais compl&#233;tons un peu.&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; l.&#160;3&#160;: la commande &lt;code&gt;\passage&lt;/code&gt; est une commande TeX et non pas LaTeX comme le prouve sa d&#233;finition par &lt;code&gt;\def&lt;/code&gt; et non par &lt;code&gt;\newcommand&lt;/code&gt;. Voici quelques pr&#233;cisions sur sa d&#233;finition&#160;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code&gt;##1|##2|##3|&lt;/code&gt; signifie que ces arguments sont pass&#233;s imm&#233;diatement apr&#232;s le nom de la commande, chaque argument &#233;tant suivi d'une pipe. Ainsi on appelle la commande de la forme suivante&#160;: &lt;code&gt;\passage Is|1:1|LXX&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Cependant cette commande ne peut &#234;tre appel&#233;e directement dans le corps du fichier. En effet, nous l'avons d&#233;finie &lt;i&gt;&#224; l'int&#233;rieur&lt;/i&gt; de la commande &lt;code&gt;\bibleref&lt;/code&gt;&#160;: sa port&#233;e, c'est &#224; dire l'endroit o&#249; il est appellable, se limite donc &#224; l'int&#233;rieur de &lt;code&gt;\bibleref&lt;/code&gt;. Le fait que nous ayons d&#233;fini &lt;code&gt;\passage&lt;/code&gt; dans &lt;code&gt;\bibleref&lt;/code&gt; explique que nos arguments aient 2 &lt;code&gt;#&lt;/code&gt; et non un seul.&lt;/li&gt;&lt;li&gt; Nous passons les deux premiers arguments &#224; la commande &lt;code&gt;\bibleverse&lt;/code&gt;, selon la syntaxe de celle-ci. Puis si le troisi&#232;me argument n'est pas vide, nous le mettons entre parenth&#232;se.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; l.&#160;5. Nous d&#233;finissons une commande vide &lt;code&gt;\passages&lt;/code&gt;. Cette commande sera remplie par &lt;code&gt;etoolbox&lt;/code&gt; pour constituer une liste que nous pourrons manipuler.&lt;/li&gt;&lt;li&gt; l.&#160;6. Nous d&#233;finissons un nombre &lt;code&gt;\nbpassages&lt;/code&gt; qui nous servira &#224; compter le nombre de passages. Un nombre est une sorte de compteur propre au passage etoolbox. L'avantage d'utiliser un nombre plut&#244;t qu'un compteur est double&#160;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Un nombre peut avoir une port&#233;e locale, alors qu'un compteur est global. Autrement dit, &#224; chaque fois que nous appelons &lt;code&gt;\bibleref&lt;/code&gt;, nous r&#233;initialisons &lt;code&gt;\nbpassages&lt;/code&gt; et il est impossible d'avoir acc&#232;s &#224; la valeur de &lt;code&gt;\nbpassages&lt;/code&gt; en dehors de &lt;code&gt;\bibleref&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Un nombre est plus facile &#224; manipuler avec &lt;code&gt;etoolbox&lt;/code&gt; qu'un compteur.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; l. 7&#160;: nous indiquons que la commande &lt;code&gt;\trouvepassages&lt;/code&gt; va nous permettre de manipuler un liste dont les &#233;l&#233;ments sont s&#233;par&#233;s par des &lt;code&gt;+&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; l. 8&#160;: nous parcourons le texte pass&#233; en argument &#224; &lt;code&gt;\bibleref&lt;/code&gt; (#1), pour d&#233;terminer les &#233;l&#233;ments de la liste. Pour chaque &#233;l&#233;ment de la liste&#160;: -
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code&gt;\numdef\nbpassages{\nbpassages+1}&lt;/code&gt; indique que nous augmentons d'une unit&#233; la valeur de &lt;code&gt;\nbpassages&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; &lt;code&gt;\listadd\passages&lt;/code&gt; indique que nous ajoutons l'&#233;l&#233;ment courant &#224; la liste &lt;code&gt;\passages&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; Apr&#232;s la l.&#160;10 nous allons d&#233;sormais travailler non plus sur la liste &lt;code&gt;#1&lt;/code&gt; mais sur la liste &lt;code&gt;\passages&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; L.&#160;11&#160;: nous avons besoin d'un autre nombre, &lt;code&gt;\cptpassage&lt;/code&gt; pour savoir combien d'&#233;l&#233;ments nous avons parcourus.&lt;/li&gt;&lt;li&gt; L.&#160;12 &#224; 18, nous d&#233;finissons ce que nous ferons pour chaque &#233;l&#233;ment de la liste&#160;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; L.&#160;13&#160;: incr&#233;menter &lt;code&gt;\cptpassage&lt;/code&gt; d'une unit&#233;.&lt;/li&gt;&lt;li&gt; L.&#160;14&#160;: tester le nombre &lt;code&gt;|&lt;/code&gt; pr&#233;sent dans l'&#233;l&#233;ment courant (&lt;code&gt;##1&lt;/code&gt;) est au moins &#233;gal &#224; &lt;code&gt;2&lt;/code&gt;&#160;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; L.&#160;15&#160;: si c'est le cas, nous avons affaire &#224; quelque chose du style &lt;code&gt;Is|1:1|LXX&lt;/code&gt;. Dans ce cas, nous appelons &lt;code&gt;\passage&lt;/code&gt; en lui passant une cha&#238;ne constitu&#233; de l'&#233;l&#233;ment courant (&lt;code&gt;##1&lt;/code&gt;) suivi de &lt;code&gt;|&lt;/code&gt;. Dans notre exemple, c'est comme si nous faisions &lt;coder&gt;\passage Is|1:1|&lt;span class=&#034;caps&#034;&gt;LXXL&lt;/span&gt;&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; L.&#160;16&#160;: s'il y a moins de deux &lt;code&gt;|&lt;/code&gt;, nous avons affaire &#224; quelque chose du style &lt;code&gt;Is|1:1&lt;/code&gt;. Dans ce cas, nous appelons &lt;code&gt;\passage&lt;/code&gt; en lui passant une cha&#238;ne constitu&#233; de l'&#233;l&#233;ment courant (&lt;code&gt;##1&lt;/code&gt;) suivi de &lt;code&gt;||&lt;/code&gt;. Dans notre exemple, c'est comme si nous faisions &lt;coder&gt;\passage Is|1:1||&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; Gr&#226;ce au test de la ligne 14, nous pouvons indiff&#233;remment pr&#233;ciser ou non la version.&lt;/li&gt;&lt;li&gt; L.&#160;17&#160;: nous testons si &lt;code&gt;\cptpassage&lt;/code&gt; est &#233;gal &#224; &lt;code&gt;\nbpassages&lt;/code&gt;, c'est &#224; dire si nous avons affaire au dernier &#233;l&#233;ment de la liste. Si tel est le cas, nous mettons un point final, sinon un &lt;code&gt;;&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; L.&#160;19&#160;: nous ex&#233;cutons ce que nous avons d&#233;fini dans &lt;code&gt;\do&lt;/code&gt; pour chaque &#233;l&#233;ment de la liste &lt;code&gt;\passages&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ouf, &#231;a y est. Le commentaire est fini. Il peut para&#238;tre un peu &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;lourd&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;, mais mieux vaut &#234;tre trop pr&#233;cis que pas assez.&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;Elle sert &#224; indiquer la s&#233;lection de plusieurs versets discontinus.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Langues dans un alphabet non latin et polices de caract&#232;re</title>
		<link>https://geekographie.maieul.net/106</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/106</guid>
		<dc:date>2012-10-22T20:14: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;En pr&#233;parant une formation pour un coll&#232;gue, je me suis rendu compte que mon livre pouvait &#234;tre un peu elliptique sur certains aspects de la gestion du polylinguisme avec LaTeX, notamment lorsqu'on l'on &#224; affaire &#224; des langues s'&#233;crivant avec des caract&#232;res non latins. Unicode ne suffit pas La norme Unicode permet de stocker tous les caract&#232;res existants sur Terre. N&#233;anmoins Unicode ne d&#233;finit pas comment s'affichent les caract&#232;res&#160;: ce travail est confi&#233;e aux polices. Or il&#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;En pr&#233;parant une formation pour un coll&#232;gue, je me suis rendu compte que mon livre pouvait &#234;tre un peu elliptique sur certains aspects de la gestion du polylinguisme avec LaTeX, notamment lorsqu'on l'on &#224; affaire &#224; des langues s'&#233;crivant avec des caract&#232;res non latins.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Unicode ne suffit pas&lt;/h2&gt;
&lt;p&gt;La norme Unicode permet de stocker tous les caract&#232;res existants sur Terre&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Du moins tout les caract&#232;res ayant &#233;t&#233; suffisamment &#233;tudi&#233;s pour pouvoir (&#8230;)&#034; id=&#034;nh5-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;N&#233;anmoins Unicode ne d&#233;finit pas comment s'affichent les caract&#232;res&#160;: ce travail est confi&#233;e aux polices.&lt;/p&gt;
&lt;p&gt;Or il n'existe pas de polices contenant l'ensemble des caract&#232;res Unicodes. Il est donc parfois utile de d&#233;finir une police diff&#233;rente pour une langue diff&#233;rente.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Exemple&lt;/h2&gt;
&lt;p&gt;Soit 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 premier mot du livre de la Gen&#232;se est : \texthebrew{&#1489;&#1456;&#1468;&#1512;&#1461;&#1488;&#1513;&#1460;&#1473;&#1430;&#1497;&#1514;}. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si je choisie d'utiliser comme police principale la police &lt;a href=&#034;http://www.linuxlibertine.org/&#034; class=&#034;spip_out&#034; hreflang=&#034;en&#034; rel=&#034;external&#034;&gt;&lt;i&gt;Linux Libertine&lt;/i&gt;&lt;/a&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Via .&#034; id=&#034;nh5-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;, j'ai un probl&#232;me&#160;: celle-ci ne supporte pas encore toutes les subtilit&#233;s de l'h&#233;breu biblique.&lt;/p&gt;
&lt;p&gt;Ainsi j'obtiens le r&#233;sultat suivant, assez inesth&#233;tique&#160;:&lt;/p&gt;
&lt;div class='spip_document_74 spip_document spip_documents spip_document_image 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;img src='https://geekographie.maieul.net/local/cache-vignettes/L337xH24/hebreulibertine-b3a12.png?1760449490' width='337' height='24' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-74 '&gt;&lt;strong&gt;Mot h&#233;breu avec Linux Libertine&#160;: bof, bof.
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&#201;videmment je pourrais trouver une police g&#233;rant aussi l'h&#233;breu, par exemple la classique &lt;i&gt;&lt;a href=&#034;https://fr.wikipedia.org/wiki/Times_New_Roman&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;Times New Roman&lt;/a&gt;&lt;/i&gt;&#160;:&lt;/p&gt;
&lt;div class='spip_document_75 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;41&#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/L315xH23/hebreutime-96595.png?1760449490' width='315' height='23' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-75 '&gt;&lt;strong&gt;Mot h&#233;breu avec Times New Roman&#160;: mieux
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Cependant, je peux pr&#233;f&#233;rer la &lt;i&gt;Linux Libertine&lt;/i&gt; pour les caract&#232;res latins.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Varier la police&lt;/h2&gt;
&lt;p&gt;La solution est donc de prendre une police particuli&#232;re pour l'h&#233;breu, &lt;a href=&#034;http://scripts.sil.org/cms/scripts/page.php?cat_id=FontDownloads&#034; class=&#034;spip_out&#034; hreflang=&#034;en&#034; rel=&#034;external&#034;&gt;par exemple sur le site du &lt;span class=&#034;caps&#034;&gt;SIL&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Il faut alors utiliser &lt;code&gt;fontspec&lt;/code&gt;, qui permet de d&#233;finir des nouvelles familles de caract&#232;res, en combinaison avec &lt;code&gt;polyglossia&lt;/code&gt;, qui permet de g&#233;rer les changements de langue.&lt;/p&gt;
&lt;p&gt;Pour cela, on d&#233;finit une famille &lt;code&gt;\&lt;lang&gt;font&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Donc pour avoir l'h&#233;breu affich&#233; avec la police &lt;a href=&#034;http://scripts.sil.org/cms/scripts/page.php?item_id=EzraSIL_Home&#034; class=&#034;spip_out&#034; hreflang=&#034;en&#034; rel=&#034;external&#034;&gt;&lt;i&gt;Ezra &lt;span class=&#034;caps&#034;&gt;SIL&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;, je cr&#233;e une nouvelle famille de polices&#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;\newfontfamily\hebrewfont[Script=Hebrew]{Ezra SIL}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Gr&#226;ce &#224; cela, la police change automatiquement lors de l'appel &#224; &lt;code&gt;\hebrewtext&lt;/code&gt;. N'oubliez pas cependant le &lt;code&gt;Script=Hebrew&lt;/code&gt;. Il permet &#224; XeLaTeX, lorsqu'il compose l'affichage final, d'utiliser les bon param&#232;tres pour appeler les caract&#232;res de la police et par cons&#233;quent d'avoir un placement correct de ces caract&#232;res, notamment les &lt;a href=&#034;https://en.wikipedia.org/wiki/Niqqud&#034; class=&#034;spip_out&#034; hreflang=&#034;en&#034; rel=&#034;external&#034;&gt;niquud&lt;/a&gt;.&lt;/p&gt;
&lt;div class='spip_document_76 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;60&#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/L339xH37/hebreuezra-14102.png?1760449490' width='339' height='37' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-76 '&gt;&lt;strong&gt;Mot h&#233;breu avec la police Ezra Sil&#160;: un probl&#232;me de taille
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;R&#233;gler la police&lt;/h2&gt;
&lt;p&gt;Comme vous pouvez constater, il y a un probl&#232;me de taille. En effet, deux polices diff&#233;rentes n'ont pas, pour un m&#234;me nombre de points, la m&#234;me taille physique.&lt;/p&gt;
&lt;p&gt;La solution est alors de dire &#224; &lt;code&gt;fontspec&lt;/code&gt; d'appliquer un redimensionnement sur la police. Dans le cas pr&#233;sent, nous souhaitons utiliser la police &#224; 80&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;% de sa taille&#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;\newfontfamily\hebrewfont[Scale=0.8,Script=Hebrew]{Ezra SIL}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='spip_document_77 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;59&#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/L314xH28/hebreuezra80pc-ea38a.png?1760449490' width='314' height='28' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-77 '&gt;&lt;strong&gt;Mot h&#233;breu avec la police Ezra Sil et une taille correcte
&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;En probl&#232;me connexe se pose la mani&#232;re de saisir les caract&#232;res Unicodes. Je vous promet de vous &#233;crire bient&#244;t des articles pour expliquer comment cr&#233;er son propre pilote de clavier sous Mac Os X...&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb5-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Du moins tout les caract&#232;res ayant &#233;t&#233; suffisamment &#233;tudi&#233;s pour pouvoir &#234;tre d&#233;crits dans un certain formalismes. Ainsi certaines rares sont encore en cours d'int&#233;gration &#224; Unicode...&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Via &lt;code&gt;\setmainfont{Linux Libertine O}&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Formaliser les variantes textuelles avec (E)ledmac</title>
		<link>https://geekographie.maieul.net/102</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/102</guid>
		<dc:date>2012-09-20T15:21:32Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Eledmac permet d'associer des commentaires &#224; certains mots d'un texte. Il peut donc servir pour &#233;tablir des &#233;ditions critiques. N&#233;anmoins, il ne propose pas de formalisation de l'encodage des variantes. Chacun est donc libre d'utiliser son propre encodage. Cet article d&#233;crit une mani&#232;re de formaliser ces encodages en tirant tous le parti des commandes LaTeX, et notamment du package etoolbox. Le pr&#233;sent article est d&#233;sormais inutile, si ce n'est pour comprendre comment produire de&#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;Eledmac&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb6-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;O&#249; ledmac, son pr&#233;c&#233;desseur&#034; id=&#034;nh6-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; permet d'associer des commentaires &#224; certains mots d'un texte. Il peut donc servir pour &#233;tablir des &#233;ditions critiques.&lt;/p&gt;
&lt;p&gt;N&#233;anmoins, il ne propose pas de formalisation de l'encodage des variantes. Chacun est donc libre d'utiliser son propre encodage.&lt;/p&gt;
&lt;p&gt;Cet article d&#233;crit une mani&#232;re de formaliser ces encodages en tirant tous le parti des commandes LaTeX, et notamment du package &lt;a href=&#034;http://www.ctan.org/pkg/etoolbox&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;i&gt;etoolbox&lt;/i&gt;&lt;/a&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb6-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Ce package est charg&#233; par d&#233;faut avec eledmac, mais non pas avec ledmac.&#034; id=&#034;nh6-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Le pr&#233;sent article est d&#233;sormais inutile, si ce n'est pour comprendre comment produire de telles commandes, puisque j'ai publi&#233; un &lt;a href='https://geekographie.maieul.net/103' class=&#034;spip_in&#034;&gt;package en reprenant le principe&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Notre exemple&lt;/h2&gt;
&lt;p&gt;Soit cinq manuscrits d'un texte&#160;: P, A, B, C, D.
P est le manuscrit qui sert de r&#233;f&#233;rence. Les variantes de A, B, C, D sont indiqu&#233;es dans l'apparat.&lt;/p&gt;
&lt;p&gt;Soit le &lt;a href=&#034;https://fr.wikipedia.org/wiki/Faux-texte&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;pseudo-mot&lt;/a&gt; &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Lorem&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. Ce mot subit les variantes suivantes&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; manuscrits A et B&#160;: mot omis.&lt;/li&gt;&lt;li&gt; manuscrit C&#160;: mot remplac&#233; par &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;loram&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;.&lt;/li&gt;&lt;li&gt; manuscrit D&#160;: mot remplac&#233; par &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;lorim&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;h2&#034;&gt;Approche non formalis&#233;e&lt;/h2&gt;
&lt;p&gt;Si on ne formalise notre apparat, on pourrait mettre&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\edtext{lorem}{\Afootnote{AB \emph{omit} ; C loram ; D lorim}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Qui produit dans l'apparat&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
lorem] &lt;span class=&#034;caps&#034;&gt;AB&lt;/span&gt; &lt;i&gt;omit&lt;/i&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; C loram&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; D lorim&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Les limites de cette approche sont &#233;videntes&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Si on change de pr&#233;sentation, on doit changer toutes nos notes.&lt;/li&gt;&lt;li&gt; Impossible de produire des statistiques.&lt;/li&gt;&lt;li&gt; Difficult&#233; &#224; exporter vers d'autres formats que LaTeX.&lt;/li&gt;&lt;li&gt; Impossible de v&#233;rifier si on ne s'est pas tromp&#233; dans l'indication du manuscrit.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;h2&#034;&gt;Proposition de formalisation&lt;/h2&gt;
&lt;p&gt;Pour obtenir le m&#234;me r&#233;sultat, nous proposons la formalisation suivante&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\var{lorem}{A,B}{
{{C}{loram}},
{{D}{lorim}}
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;\var&lt;/code&gt; est une commande personnalis&#233;e, qui prend les arguments suivants&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Texte principal&lt;/li&gt;&lt;li&gt; Liste des manuscrits o&#249; le mot est omis.&lt;/li&gt;&lt;li&gt; Liste des variantes, s&#233;par&#233;es par des virgule. Chaque variante est indiqu&#233;e sous la forme &lt;code&gt;{manuscrit}{variante}&lt;/code&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;h2 class=&#034;h2&#034;&gt;Mise en &#339;uvre&#160;: liste des commandess&lt;/h2&gt;
&lt;p&gt;Nous allons d&#233;clarer les commandes suivantes&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code&gt;\var&lt;/code&gt; (3&#160;arguments), commande principal, qui appellera&#160;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code&gt;\del&lt;/code&gt; (1&#160;argument), charg&#233;e d'indiquer les omissions&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb6-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Il n'est pas possible de d&#233;clarer : une telle command existe d&#233;j&#224; dans LaTeX.&#034; id=&#034;nh6-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;&lt;/li&gt;&lt;li&gt; &lt;code&gt;\variantes&lt;/code&gt; (1&#160;argument) charg&#233; d'indiquer les variantes. Cette commande appelera elle m&#234;me une commande &lt;code&gt;\variante&lt;/code&gt; charg&#233; de format&#233; une variante particuli&#232;re (2&#160;argument&#160;: le manuscrit et la variante).&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ce qui donne le sch&#233;ma suivant&#160;:&lt;/p&gt;
&lt;div class='spip_document_71 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;48&#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/L170xH165/formalisation-e4ce3.png?1760449254' width='170' height='165' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-71 '&gt;&lt;strong&gt;Sch&#233;ma des commandes d'indication de variantes
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;Mise en &#339;uvre, &#233;tape 1&#160;: la commande &lt;code&gt;\del&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Commen&#231;ons par d&#233;clarer notre commande principale, &lt;code&gt;\variante&lt;/code&gt;.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newcommand{\var}[3]{% \edtext{#1}{\Afootnote{\del{#2}}}
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour le moment, nous ne nous occupons que d'indiquer les omissions. Nous passons le premier argument de &lt;code&gt;\var&lt;/code&gt; comme premier argument de &lt;code&gt;\edtext&lt;/code&gt;, et nous passons le second argument &#224; la commande &lt;code&gt;\del&lt;/code&gt;, &#224; l'int&#233;rieur de l'argument dans &lt;code&gt;\Afootnote&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La commande &lt;code&gt;\var&lt;/code&gt; est d&#233;finie ainsi&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newcommand{\del}[1]{% \renewcommand{\do}[1]{##1}% \docsvlist{#1} \emph{omit}%
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Analysons le code, en commen&#231;ant par la ligne 3&#160;:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;\docsvlist&lt;/code&gt; est une commande d'etoolbox. Elle analyse une liste d'&#233;l&#233;ments s&#233;par&#233;s par des virgules&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb6-4&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;= &#171;&#160;comma separated values&#160;&#187;&#034; id=&#034;nh6-4&#034;&gt;4&lt;/a&gt;]&lt;/span&gt;. Chaque &#233;l&#233;ment de la liste est pass&#233; &#224; une commande &lt;code&gt;\do&lt;/code&gt;. Ici, nous analysons l'argument &lt;code&gt;#1&lt;/code&gt;, qui contient la liste des manuscrits o&#249; la variante est omise.&lt;/p&gt;
&lt;p&gt;Une fois cette boucle effectu&#233;e, nous indiquons que les manuscrits omettent la variante via &lt;code&gt;\emph{omit}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;La commande &lt;code&gt;\do&lt;/code&gt; est d&#233;finie en standard par etoolbox. Cependant nous allons ici la r&#233;d&#233;finir, mais uniquement &#224; l'int&#233;rieur de &lt;code&gt;\del&lt;/code&gt;. C'est &#224; dire que la d&#233;finition que nous en donnons ne sera pas valable si on l'appel en dehors de &lt;code&gt;\del&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ici, nous nous contentons d'afficher l'argument, dans le cas pr&#233;sent le manuscrits. Comme notre commande est d&#233;finie &#224; l'int&#233;rieure d'une autre commande, ses arguments sont indiqu&#233;s par deux &lt;code&gt;#&lt;/code&gt;, et non pas un seul.&lt;/p&gt;
&lt;p&gt;Si nous utilisons la formulation pr&#233;c&#233;dente, nous obtenons alors&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
lorem ] &lt;span class=&#034;caps&#034;&gt;AB&lt;/span&gt; &lt;i&gt;omit&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ce qui est bien. N&#233;ammoins supposons que nous ne souhaitons pas indiquer de manuscrits omettant le mot, mais seulement des manuscrits le changeant&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\var{ipsum}{}{{C}{ipsem}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On obtient alors un inesth&#233;tique&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
ipsum] &lt;i&gt;omit&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pour &#233;viter ce probl&#232;me, nous allons utiliser la commande &lt;code&gt;\ifstrempty{cha&#238;ne}{sioui}{sinon}&lt;/code&gt;, qui appelle &lt;code&gt;sioui&lt;/code&gt; si &lt;code&gt;cha&#238;ne&lt;/code&gt; est vide, et &lt;code&gt;sinon&lt;/code&gt; si la cha&#238;ne n'est pas vide.&lt;/p&gt;
&lt;p&gt;Nous ferons l'appel dans la commande &lt;code&gt;\variante&lt;/code&gt;, pour conditionnner l'appel &#224; &lt;code&gt;\del&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newcommand{\var}[3]{% \edtext{#1}{\Afootnote{% \ifstrempty{#2}{}{\del{#2}}% }}
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;Mise en &#339;uvre, &#233;tape 2&#160;: les commandes &lt;code&gt;\variante&lt;/code&gt; et &lt;code&gt;\variantes&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;La commande &lt;code&gt;\variantes&lt;/code&gt; est la suivante&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newcommand{\variantes}[1]{% \newif\iffirst% \firsttrue% \renewcommand{\do}[1]{\iffirst\firstfalse\else ; \fi\variante##1}% \docsvlist{#1}% }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Analysons&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; L.&#160;2-3&#160;: nous d&#233;clarons un test&#160;: &lt;code&gt;\iffirst&lt;/code&gt;. Cela nous permettra d'afficher un point virgule avant le variante uniquement si nous ne somme pas &#224; la premi&#232;re variante.&lt;/li&gt;&lt;li&gt; L.&#160;4&#160;: &#224; nous une commande &lt;code&gt;\do&lt;/code&gt;&#160;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code&gt;\iffirst\firstfalse\else ; \fi&lt;/code&gt;&#160;: &lt;code&gt;\iffirst&lt;/code&gt; teste si nous sommes &#224; la premi&#232;re variante (&lt;i&gt;cf.&lt;/i&gt; l.&#160;2-3).
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Si tel est le cas, nous appelons &lt;code&gt;\firstfalse&lt;/code&gt;, qui permettra que &lt;code&gt;\iffirst&lt;/code&gt; soit faux prochain passage.&lt;/li&gt;&lt;li&gt; Si tel n'est pas le cas (&lt;code&gt;\else&lt;/code&gt;), on affiche un point virgule&#160;: &lt;code&gt;\else ; &lt;/code&gt;.&lt;/li&gt;&lt;li&gt; &lt;code&gt;\fi&lt;/code&gt; finit la structure de test commenc&#233; par &lt;code&gt;\iffirst&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; Nous appelons ensuite la commande &lt;code&gt;\variante&lt;/code&gt;. Notez &#224; nouveau le double &lt;code&gt;#&lt;/code&gt;. Vous remarquerez que nous ne mettons pas de &lt;code&gt;{}&lt;/code&gt; pour indiquer les arguments de la commande. En effet, si vous vous rappellez de la syntaxe utilis&#233;e, nos variantes sont justement indiqu&#233; sous la forme &lt;code&gt;{manuscrit}{texte}&lt;/code&gt;.
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; L.&#160;5 nous bouclons sur toute les variantes.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Passons &#224; la commande &lt;code&gt;\variante&lt;/code&gt;. Elle est d&#233;clar&#233; ainsi&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newcommand{\variante}[2]{% #1 #2% }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Rien de bien m&#233;chant&#160;: on affiche simplement le manuscrit (&lt;code&gt;#1&lt;/code&gt;, puis la variante (&lt;code&gt;#2&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Il nous faut maintenant appeler &lt;code&gt;\variantes&lt;/code&gt; &#224; l'int&#233;rieur de &lt;code&gt;\var&lt;/code&gt;.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newcommand{\var}[3]{% \edtext{#1}{\Afootnote{% \ifstrempty{#2}{}{\del{#2}\ifstrempty{#3}{}{ ; }}% \variantes{#3}% }}
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le seul &#233;l&#233;ment notable est l.&#160;3&#160;: apr&#232;s avoir affich&#233; les omissions, nous affichons un point virgule, si jamais nous avons des variantes (&lt;code&gt;\ifstrempty{#3}{}{ ; }&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Nous obtenons alors le r&#233;sultat d&#233;sir&#233;&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;lorem] &lt;span class=&#034;caps&#034;&gt;AB&lt;/span&gt; &lt;i&gt;omit&lt;/i&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; C loram&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; D lorim&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;h2&#034;&gt;Et pour un peu plus de contr&#244;le&#160;: une liste des manuscrits&lt;/h2&gt;
&lt;p&gt;Suppons que par inadvertance, nous ayons indiqu&#233; un manuscrit &lt;code&gt;E&lt;/code&gt;, qui n'existe pas&#160;:&lt;/p&gt;
&lt;p&gt;&lt;code class='spip'&gt;\var{dolor}{E}{}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Il serait bon que LaTex nous indique notre erreur.&lt;/p&gt;
&lt;p&gt;Pour ce faire nous allons utiliser&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; le m&#233;canisme d'affichage d'erreur dans les logs, fournit par eledmac, &#224; savoir la commande &lt;code&gt;\eledmac@warning&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; le m&#233;canisme d'etoolbox de d&#233;claration de liste.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Comme la commande &lt;code&gt;\eledmac@warning&lt;/code&gt; contient un arobase, il nous faudra d&#233;clarer nos commande entre &lt;code&gt;\makeatletter&lt;/code&gt; et &lt;code&gt;\makeatother&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Commen&#231;ons par cr&#233;er une commande&#160;: &lt;code&gt;\manuscrits&lt;/code&gt;. Cette commande contiendra une liste de manuscrits, qu'etoolbox pourra consulter pour&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; v&#233;rifier si un manuscrit existe, avec &lt;code&gt;\ifinlist{\manuscrits}{sioui}{sinon}&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; faire une boucle dessus pour afficher les manuscrits avec &lt;code&gt;\dolistloop{\manuscrits}&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newcommand{\manuscrits}{}
\listadd{\manuscrits}{A}
\listadd{\manuscrits}{B}
\listadd{\manuscrits}{C}
\listadd{\manuscrits}{D}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;L.&#160;1 nous d&#233;clarons une liste vide, l.&#160;2-5 nous la compl&#233;tons.&lt;/p&gt;
&lt;p&gt;Puis modifions nos commandes &lt;code&gt;\del&lt;/code&gt; et &lt;code&gt;\variante&lt;/code&gt;.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newcommand{\del}[1]{% \renewcommand{\do}[1]{% \ifinlist{##1}{\manuscrits}% {##1}% {\eledmac@warning{Man. ##1 inconnu, p.\the\page@num ; l.\the\line@num}Man. ##1 inconnu}% }% \docsvlist{#1} \emph{omit}%
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; L.&#160;3&#160;: Nous testons si le manuscrit se trouve dans la liste&lt;/li&gt;&lt;li&gt; L&#160;4&#160;: Si tel est le cas, nous l'affichons.&lt;/li&gt;&lt;li&gt; L&#160;5&#160;: sinon nous &#233;mettons un message d'erreur, pr&#233;cisant le num&#233;ro de page (&lt;code&gt;\the\page@num&lt;/code&gt; et de ligne &lt;code&gt;\the\line@num&lt;/code&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb6-5&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;et sont des compteurs internes &#224; eledmac. N&#233;anmoins, ce sont des compteurs (&#8230;)&#034; id=&#034;nh6-5&#034;&gt;5&lt;/a&gt;]&lt;/span&gt;). Nous affichons &#233;galement dans le &lt;span class=&#034;caps&#034;&gt;PDF&lt;/span&gt; l'erreur.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Pour &lt;code&gt;\variante&lt;/code&gt;, le code est similaire, mais nous indiquons &#233;galement la variante propos&#233;e&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newcommand{\variante}[2]{% \ifinlist{#1}{\manuscrits}% {#1 #2}% {\eledmac@warning{Man. #1 inconnu, p.\the\page@num ; l.\the\line@num ; #2}Man. #1 #2}% }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div &lt;div class='rss_ps'&gt;&lt;p&gt;En guise d'exercice, par difficult&#233; croissante&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Remplacer le s&#233;parateur entre les variantes par une double barre verticale.&lt;/li&gt;&lt;li&gt; Cr&#233;er une variante de &lt;code&gt;\var&lt;/code&gt; qui permette de d&#233;clarer une m&#234;me variante pour plusieurs manuscrits&#160;: &lt;code&gt;\var{amet}{}{{A,B}{amet}}&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Cr&#233;er une commande &lt;code&gt;\ledmanuscrits&lt;/code&gt; qui re&#231;oit comme argument une liste de manuscrits s&#233;par&#233;s par des virgules et les ajoute &#224; &lt;code&gt;\manuscrits&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Am&#233;liorer le code pour imposer que l'ordre des manuscrits soit celui indiqu&#233; dans &lt;code&gt;\manuscrits&lt;/code&gt; (je n'ai pour le moment aucune id&#233;e de l'algorithmique derri&#232;re).&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb6-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh6-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 6-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;O&#249; ledmac, son pr&#233;c&#233;desseur&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb6-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh6-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 6-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Ce package est charg&#233; par d&#233;faut avec eledmac, mais non pas avec ledmac.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb6-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh6-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 6-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;Il n'est pas possible de d&#233;clarer &lt;code&gt;\omit&lt;/code&gt;&#160;: une telle command existe d&#233;j&#224; dans LaTeX.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb6-4&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh6-4&#034; class=&#034;spip_note&#034; title=&#034;Notes 6-4&#034; rev=&#034;appendix&#034;&gt;4&lt;/a&gt;] &lt;/span&gt;&lt;code&gt;csv&lt;/code&gt; = &#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;comma separated values&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 id=&#034;nb6-5&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh6-5&#034; class=&#034;spip_note&#034; title=&#034;Notes 6-5&#034; rev=&#034;appendix&#034;&gt;5&lt;/a&gt;] &lt;/span&gt;&lt;code&gt;\page@num&lt;/code&gt; et &lt;code&gt;\line@num&lt;/code&gt; sont des compteurs internes &#224; eledmac. N&#233;anmoins, ce sont des compteurs TeX et non pas LaTeX&#160;: d'o&#249; la syntaxe &lt;code&gt;\the\xxx&lt;/code&gt; pour les afficher.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Collection sous forme abr&#233;g&#233;e avec shortseries</title>
		<link>https://geekographie.maieul.net/99</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/99</guid>
		<dc:date>2012-08-14T12:17:27Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;BibLaTeX propose un champ shortseries servant &#224; indiquer une version abr&#233;g&#233;e du champ series, c'est &#224; dire de la collection. Par exemple, mettre &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;span class=&#034;caps&#034;&gt;CCSA&lt;/span&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; pour &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Corpus Christianorum Series Apocryphorum&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. Par d&#233;faut, BibLaTeX ne se sert pas de champ. Comment en tirer parti, notamment pour afficher un tableau des abr&#233;viations&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;? Pourquoi utiliser ce champ Je conseille d'utiliser shortseries en combinaison avec series, plut&#244;t que de mettre directement la version abr&#233;g&#233;e dans series pour&#160;(&#8230;)&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;&lt;i&gt;BibLaTeX&lt;/i&gt; propose un champ &lt;code&gt;shortseries&lt;/code&gt; servant &#224; indiquer une version abr&#233;g&#233;e du champ &lt;code&gt;series&lt;/code&gt;, c'est &#224; dire de la collection. Par exemple, mettre &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;span class=&#034;caps&#034;&gt;CCSA&lt;/span&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; pour &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Corpus Christianorum Series Apocryphorum&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;.&lt;/p&gt;
&lt;p&gt;Par d&#233;faut, &lt;i&gt;BibLaTeX&lt;/i&gt; ne se sert pas de champ.
Comment en tirer parti, notamment pour afficher un tableau des abr&#233;viations&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;?&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Pourquoi utiliser ce champ&lt;/h2&gt;
&lt;p&gt;Je conseille d'utiliser &lt;code&gt;shortseries&lt;/code&gt; en combinaison avec &lt;code&gt;series&lt;/code&gt;, plut&#244;t que de mettre directement la version abr&#233;g&#233;e dans &lt;code&gt;series&lt;/code&gt; pour trois raisons&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; C'est un champ standard, alors autant s'en servir.&lt;/li&gt;&lt;li&gt; Si on d&#233;cide finalement afficher la forme longue de la collection, on aura simplement une ligne de code &#224; supprimer.&lt;/li&gt;&lt;li&gt; On peut utiliser ce champ pour construire automatiquement une liste des formes abr&#233;g&#233;es, moyennant quelques lignes de code que je vais d&#233;tailler dans cet article.&lt;/li&gt;&lt;/ol&gt;&lt;h2 class=&#034;h2&#034;&gt;Les entr&#233;es de d&#233;monstration&lt;/h2&gt;
&lt;p&gt;Pour le pr&#233;sent article, nous utilisons les entr&#233;es suivantes&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;@book{PtJc, Address = {Bruxelles}, Title = {La forme la plus ancienne du Prot&#233;vangile de Jacques}, Year = {1961}} @book{CCSL149, Number = {140}, Series = {Corpus Christianorum Series Latina}, Shortseries = {CCSL}, Title = {Concilia Africae}} @book{CCSA9, Number = {9}, Series = {Corpus Christianorum Series Apocryphorum}, Shortseries = {CCSA}, Title = {Pseudo-Matthaei Evangelium}} @book{CCSA10, Number = {10}, Series = {Corpus Christianorum Series Apocryphorum}, Shortseries = {CCSA}, Title = {De Nativitate Mariae}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous avons donc trois entr&#233;es avec une collection, et une sans collection&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb7-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Pour ma part, j'ai opt&#233; pour le principe de mettre les noms de collections + (&#8230;)&#034; id=&#034;nh7-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Par d&#233;faut, la bibliographie affiche ceci&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Concilia Africae&lt;/i&gt;, Corpus Christianorum Series Latina 140. &lt;br class='manualbr' /&gt;&lt;i&gt;De Nativitate Mariae&lt;/i&gt;, Corpus Christianorum Series Apocryphorum 10. &lt;br class='manualbr' /&gt;&lt;i&gt;La forme la plus ancienne du Prot&#233;vangile de Jacques&lt;/i&gt;, Bruxelles, 1961. &lt;br class='manualbr' /&gt;&lt;i&gt;Pseudo-Matthaei Evangelium&lt;/i&gt;, Corpus Christianorum Series Apocryphorum 9.&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;h2&#034;&gt;Afficher la version abr&#233;g&#233;e de la collection&lt;/h2&gt;
&lt;p&gt;Nous allons modifier les styles pour afficher la version abr&#233;g&#233;e de la collection, si elle existe, &#224; la place de la version longue.&lt;/p&gt;
&lt;p&gt;Par d&#233;faut, le macro qui affiche la collection est la suivante&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb7-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Dans le fichier .&#034; id=&#034;nh7-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='latex'&gt;&lt;code&gt;\newbibmacro*{series+number}{% \printfield{series}% \setunit*{\addspace}% \printfield{number}% \newunit}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous allons la modifier, en la red&#233;finissant ainsi&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\renewbibmacro*{series+number}{% \iffieldundef{shortseries}{\printfield{series}}{\printfield{shortseries}}% \setunit*{\addspace}% \printfield{number}% \newunit}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;La seule modification est ligne 2&#160;: nous testons le champ &lt;code&gt;shortseries&lt;/code&gt;. S'il n'existe pas, nous affichons le champ &lt;code&gt;series&lt;/code&gt;. Sinon, nous affichons le champ &lt;code&gt;shortseries&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;On obtient alors&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Concilia Africae&lt;/i&gt;, &lt;span class=&#034;caps&#034;&gt;CCSL&lt;/span&gt; 140. &lt;br class='manualbr' /&gt;&lt;i&gt;De Nativitate Mariae&lt;/i&gt;, &lt;span class=&#034;caps&#034;&gt;CCSA&lt;/span&gt; 10. &lt;br class='manualbr' /&gt;&lt;i&gt;La forme la plus ancienne du Prot&#233;vangile de Jacques&lt;/i&gt;, Bruxelles, 1961. &lt;br class='manualbr' /&gt;&lt;i&gt;Pseudo-Matthaei Evangelium&lt;/i&gt;, &lt;span class=&#034;caps&#034;&gt;CCSA&lt;/span&gt; 9.&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;h2&#034;&gt;Comment afficher la liste des abr&#233;viations&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;?&lt;/h2&gt;
&lt;p&gt;Nous allons maintenant afficher la liste des abr&#233;viations. Plut&#244;t que de recopier nous m&#234;me cette liste, avec les risques inh&#233;rents d'erreurs , nous allons demander &#224; &lt;i&gt;BibLaTeX&lt;/i&gt; de la produire pour nous. Malheureusement il n'existe pas de commande standard sous &lt;i&gt;BibLaTeX&lt;/i&gt; pour afficher une telle liste.&lt;/p&gt;
&lt;p&gt;C'est pourquoi nous allons&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; cr&#233;er un nouveau type de tri, permettant de trier selon l'ordre du champ &lt;code&gt;shortseries&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; appliquer ce tri sur une commande &lt;code&gt;\printbibliography&lt;/code&gt;. Attention&#160;: il vous faut avoir les versions de Biber et &lt;i&gt;BibLaTeX&lt;/i&gt; sup&#233;rieures &#224; 2 pour pouvoir personnaliser le tri au cas par cas.&lt;/li&gt;&lt;li&gt; cr&#233;er un &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;bibcheck&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; pour tester les entr&#233;es selon les conditions suivantes&#160;:
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; avoir les champs &lt;code&gt;shortseries&lt;/code&gt; et &lt;code&gt;series&lt;/code&gt; d&#233;finis.&lt;/li&gt;&lt;li&gt; ne pas avoir un champ &lt;code&gt;series&lt;/code&gt; d&#233;j&#224; affich&#233; dans la bibliographie.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt; appliquer ce &lt;code&gt;bibcheck&lt;/code&gt; &#224; la bibliographie.&lt;/li&gt;&lt;li&gt; cr&#233;er un nouveau environnement bibliographique qui&#160;:
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; affiche la version abr&#233;g&#233;e de la s&#233;rie.&lt;/li&gt;&lt;li&gt; affiche la version longue de la s&#233;rie.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt; appliquer cette environnement &#224; la bibliographie.&lt;/li&gt;&lt;/ol&gt;&lt;h2 class=&#034;h2&#034;&gt;Trier selon le champ &lt;code&gt;shortseries&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;J'ai expliqu&#233; dans un pr&#233;c&#233;dent article comment d&#233;clarer un &lt;a href='https://geekographie.maieul.net/92' class=&#034;spip_in&#034;&gt;nouveau type de tri&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour le cas pr&#233;sent, la d&#233;claration &#224; mettre dans le pr&#233;ambule est simple&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\DeclareSortingScheme{shortseries}{ \sort{ \field{shortseries} } \sort{ \field{series} } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous trions d'abord selon le champ &lt;code&gt;shortseries&lt;/code&gt; puis selon le champ &lt;code&gt;series&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Il nous faut ensuite appeller ce tri sur la bibliographie&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\printbibliography[title=Liste des abr&#233;viations, sorting=shortseries]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cela nous produit la liste suivante&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;La forme la plus ancienne du Prot&#233;vangile de Jacques&lt;/i&gt;, Bruxelles, 1961.&lt;br class='manualbr' /&gt;&lt;i&gt;Pseudo-Matthaei Evangelium&lt;/i&gt;, &lt;span class=&#034;caps&#034;&gt;CCSA&lt;/span&gt; 9. &lt;br class='manualbr' /&gt;&lt;i&gt;De Nativitate Mariae&lt;/i&gt;, &lt;span class=&#034;caps&#034;&gt;CCSA&lt;/span&gt; 10. &lt;br class='manualbr' /&gt;&lt;i&gt;Concilia Africae&lt;/i&gt;, &lt;span class=&#034;caps&#034;&gt;CCSL&lt;/span&gt; 140.&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;h2&#034;&gt;Filtrer les entr&#233;es&lt;/h2&gt;
&lt;p&gt;Nous avons deux probl&#232;mes&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Nous avons des entr&#233;es qui apparaissent alors qu'elles n'ont pas de champ &lt;code&gt;shortseries&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Nous avons plusieurs fois la m&#234;me valeur pour le champ &lt;code&gt;shortseries&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Nous allons donc utiliser &lt;code&gt;defbibcheck&lt;/code&gt; pour d&#233;clarer un contr&#244;le des entr&#233;es que l'on met dans la bibliographie.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\defbibcheck{shortseries}{% \iffieldundef{shortseries}{\skipentry}{}% \iffieldundef{series}{\skipentry}{% \ifcsdef{\strfield{series}}{\skipentry}{\savefieldcs{series}{\strfield{series}}}% }% Verifier si pas d&#233;j&#224; existant } \DeclareSortingScheme{shortseries}{ \sort{ \field{shortseries} } \sort{ \field{series} } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;Nous appellons ce contr&#244;le sur la bibliographie avec&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\printbibliography[title=Liste des abr&#233;viations, sorting=shortseries,check=shortseries]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Commentons rapidement&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; L. 2&#160;: S'il n'y a pas de champ &lt;code&gt;shortseries&lt;/code&gt;, nous excluons l'entr&#233;e de la bibliographie (&lt;code&gt;\skipentry&lt;/code&gt;).&lt;/li&gt;&lt;li&gt; L. 3&#160;: Nous testons s'il existe un champ &lt;code&gt;series&lt;/code&gt;&#160;:
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; L. 3&#160;: Si ce champ n'existe pas, nous excluons l'entr&#233;e de la bibliographie.&lt;/li&gt;&lt;li&gt; L. 6&#160;: Si ce champ existe, nous proc&#233;dons &#224; un test&#160;:
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Nous testons, via &lt;code&gt;\ifcsdef&lt;/code&gt; l'existence d'une commande. Le nom de cette commande est la valeur du champ &lt;code&gt;series&lt;/code&gt;, format&#233; pour pouvoir servir de nom de commande&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb7-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;C'est &#224; dire, par exemple, en ayant supprim&#233; les accents et les espaces.&#034; id=&#034;nh7-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;&#160;: &lt;code&gt;\strfield{series}&lt;/code&gt;.
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Si cette commande existe, nous excluons l'entr&#233;e de la bibliographie (&lt;code&gt;\skipentry&lt;/code&gt;).&lt;/li&gt;&lt;li&gt; Si elle n'existe pas, nous la cr&#233;ons, en lui donnant comme contenu la valeur du champ &lt;code&gt;series&lt;/code&gt;&#160;: &lt;code&gt;\savefieldcs{series}{\strfield{series}}&lt;/code&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Nous obtenons alors la bibliographie finale&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Pseudo-Matthaei Evangelium&lt;/i&gt;, &lt;span class=&#034;caps&#034;&gt;CCSA&lt;/span&gt; 9. &lt;br class='manualbr' /&gt;&lt;i&gt;Concilia Africae&lt;/i&gt;, &lt;span class=&#034;caps&#034;&gt;CCSL&lt;/span&gt; 140.&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;h2&#034;&gt;Imprimer les &#233;quivalences&lt;/h2&gt;
&lt;p&gt;Il nous reste plus qu'&#224; d&#233;finir un nouvel environnement pour afficher correctement cette &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;bibliographie&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;, c'est &#224; dire en imprimant uniquement le champ &lt;code&gt;shortseries&lt;/code&gt; et le champ &lt;code&gt;series&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;C'est l&#224; le code le plus complexe, car il n&#233;cessite de comprendre non seulement les fonctions de BibLaTeX, mais aussi la cr&#233;ation de liste personnalis&#233;e.&lt;/p&gt;
&lt;p&gt;Le voil&#224; d&#233;j&#224;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\makeatletter \newlength{\shortserieswidth} \setlenght{\shorserieswidth}{4em} \defbibenvironment{shortseries} {\renewcommand{\blx@driver}[1]{\csuse{blx@bbx@series}}\list{\thefield{shortseries}% }{% \labelwidth\shorthserieswidth \labelsep\biblabelsep \leftmargin\bibhang \advance\leftmargin\labelsep \itemsep\bibitemsep \parsep\bibparsep \def\makelabel##1{##1\hss}}} {\endlist} {\item} \DeclareBibliographyDriver{series}{ \printfield{series} } \makeatother&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Comme nous utilisons des commandes contenant le caract&#232;re &lt;code&gt;@&lt;/code&gt; dans leurs noms, nous devons entourer le code de &lt;code&gt;\makeatletter&lt;/code&gt; et de &lt;code&gt;\makeatother&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Le code est largement inspir&#233; de l'environnement bibliographique &lt;code&gt;shorthands&lt;/code&gt; de &lt;i&gt;BibLaTeX&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;L. 2-3 nous cr&#233;ons une longueur, &lt;code&gt;\shortserieswidth&lt;/code&gt;, valant 4&#160;em. Cette longueur sera affect&#233;e &#224; l'espace dans lequel s'inscrira la version abr&#233;g&#233;e de la collection. Cela nous permet d'avoir des abr&#233;viations allant jusqu'&#224; 4 caract&#232;res&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb7-4&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;En fait, cela ne limite pas&#160;: mais si une abr&#233;viation d&#233;passe 4em de (&#8230;)&#034; id=&#034;nh7-4&#034;&gt;4&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;L. 4 Nous commen&#231;ons &#224; d&#233;finir un environnement &lt;code&gt;shortseries&lt;/code&gt;. Les trois options qui suivent correspondent respectivement&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; au code &#224; mettre en d&#233;but de bibliographie, en excluant le titre (l.&#160;5-13).&lt;/li&gt;&lt;li&gt; au code &#224; mettre en fin de bibliographie (l.&#160;14) .&lt;/li&gt;&lt;li&gt; au code &#224; mettre pour chaque &#233;l&#233;ment de la bibliographie (l.&#160;15).&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;En d&#233;but de bibliographie, nous d&#233;clarons que, pour cette bibliographie, l'impression d'une entr&#233;e se fera &#224; partir du driver &lt;code&gt;series&lt;/code&gt;. Nous d&#233;clarons cela avec &lt;code&gt;\renewcommand{\blx@driver}[1]{\csuse{blx@bbx@series}}&lt;/code&gt;. Ce sont des commandes de bas niveau, que je vous d&#233;conseille en g&#233;n&#233;ral de manipuler. Dans le cas pr&#233;sent, je n'ai pas trouv&#233; de commande de plus haut niveau. Merci de me signaler si vous voyiez mieux.&lt;/p&gt;
&lt;p&gt;Nous commen&#231;ons alors une liste, &#224; l'aide de la commande de bas niveau &lt;code&gt;\list{\thefield{shortseries}}&lt;/code&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb7-5&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Je n'ai pas encore eu le temps de r&#233;diger un article sur la commande de bas (&#8230;)&#034; id=&#034;nh7-5&#034;&gt;5&lt;/a&gt;]&lt;/span&gt;. Le label de chaque entr&#233;e de la liste correspondra au champ &lt;code&gt;shortseries&lt;/code&gt;. Les param&#232;tres de cette liste sont d&#233;finis l.&#160;7-13.&lt;/p&gt;
&lt;p&gt;Ce sont les param&#232;tres suivants&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code&gt;\labelwidth&lt;/code&gt;&#160;: taille consacr&#233;e au label, ici &#233;gale &#224; &lt;code&gt;\shorthserieswidth&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; &lt;code&gt;\labelsep&lt;/code&gt; distance entre le label et le contenu de l'entr&#233;e, ici &#233;gale &#224; la longueur &lt;code&gt;\biblabelsep&lt;/code&gt;, qui est d&#233;finie par &lt;i&gt;BibLaTeX&lt;/i&gt;.&lt;/li&gt;&lt;li&gt; &lt;code&gt;\leftmargin&lt;/code&gt; la marge gauche de la liste, ici &#233;gale &#224; &lt;code&gt;\bibhang&lt;/code&gt;, d&#233;finie par &lt;i&gt;BibLaTeX&lt;/i&gt;, auquel on ajoute &lt;code&gt;\labelsep&lt;/code&gt; (c'est le code \advance\leftmargin\labelsep).&lt;/li&gt;&lt;li&gt; &lt;code&gt;itemsep&lt;/code&gt;&#160;: espace entre les &#233;l&#233;ments de la liste, ici &#233;gale &#224; &lt;code&gt;bibitemsep&lt;/code&gt;, d&#233;finie par &lt;i&gt;BibLaTeX&lt;/i&gt;.&lt;/li&gt;&lt;li&gt; &lt;code&gt;parsep&lt;/code&gt;&#160;: espace entre les paragraphes dans la liste, ici &#233;gale &#224; &lt;code&gt;bibparsep&lt;/code&gt;, d&#233;finie par &lt;i&gt;BibLaTeX&lt;/i&gt;.&lt;/li&gt;&lt;li&gt; quant &#224; &lt;code&gt;\def\makelabel##1{##1\hss}&lt;/code&gt; cela indique que les label (donc dans notre cas les collections abr&#233;g&#233;es) sont align&#233;s sur la gauche&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb7-6&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;permet d'ins&#233;rer un espace &#233;lastique, prenant la taille maximale disponible. (&#8230;)&#034; id=&#034;nh7-6&#034;&gt;6&lt;/a&gt;]&lt;/span&gt;.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&#192; la fin de l'environnement bibliographique, nous fermons la liste&#160;: &lt;code&gt;\endlist&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Enfin pour chaque entr&#233;e de la bibliographie, nous ins&#233;rons un &lt;code&gt;\item&lt;/code&gt; (l.&#160;15).&lt;/p&gt;
&lt;p&gt;Il ne nous reste plus qu'&#224; d&#233;finir un &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;driver&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; &lt;code&gt;series&lt;/code&gt;, qui se contente d'afficher le champ &lt;code&gt;series&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\DeclareBibliographyDriver{series}{ \printfield{series} }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous appelons donc notre commande &lt;code&gt;\printbibliography&lt;/code&gt; ainsi&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\printbibliography[sorting=shortseries,title=Liste des abr&#233;viations,check=shortseries,env=shortseries]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et nous obtenons alors notre liste d'abr&#233;viations&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;span class=&#034;caps&#034;&gt;CCSA&lt;/span&gt;	Corpus Christianorum Series Apocryphorum &lt;br class='manualbr' /&gt;&lt;span class=&#034;caps&#034;&gt;CCSL&lt;/span&gt;	Corpus Christianorum Series Latina&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Il ne nous reste plus qu'&#224; afficher notre bibliographie, avec une b&#234;te commande&#160;: &lt;code&gt;\printbibliography&lt;/code&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb7-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh7-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 7-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Pour ma part, j'ai opt&#233; pour le principe de mettre les noms de collections + num&#233;ro pour les &#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;grandes collections&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; de texte source, et mettre adresse + &#233;diteur + ann&#233;e pour les autres &#233;ditions. &#192; vous de voir. Remarquez que vous pourriez remplir aussi les champs &lt;code&gt;adress&lt;/code&gt; + &lt;code&gt;publisher&lt;/code&gt; + &lt;code&gt;year&lt;/code&gt; pour toutes les entr&#233;es et faire un test sur la pr&#233;sence du champ &lt;code&gt;series&lt;/code&gt; pour ne pas les afficher le cas &#233;ch&#233;ant.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb7-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh7-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 7-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Dans le fichier &lt;code&gt;standard.bbx&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb7-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh7-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 7-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;C'est &#224; dire, par exemple, en ayant supprim&#233; les accents et les espaces.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb7-4&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh7-4&#034; class=&#034;spip_note&#034; title=&#034;Notes 7-4&#034; rev=&#034;appendix&#034;&gt;4&lt;/a&gt;] &lt;/span&gt;En fait, cela ne limite pas&#160;: mais si une abr&#233;viation d&#233;passe 4em de longueur, alors notre liste ne sera pas jolie, avec des d&#233;calages.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb7-5&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh7-5&#034; class=&#034;spip_note&#034; title=&#034;Notes 7-5&#034; rev=&#034;appendix&#034;&gt;5&lt;/a&gt;] &lt;/span&gt;Je n'ai pas encore eu le temps de r&#233;diger un article sur la commande de bas niveau &lt;code&gt;\list&lt;/code&gt;. Promis, vous aurez bient&#244;t sur ce site quelque chose &#224; ce propos.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb7-6&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh7-6&#034; class=&#034;spip_note&#034; title=&#034;Notes 7-6&#034; rev=&#034;appendix&#034;&gt;6&lt;/a&gt;] &lt;/span&gt;&lt;code&gt;\hss&lt;/code&gt; permet d'ins&#233;rer un espace &#233;lastique, prenant la taille maximale disponible. Cela permet d'aligner &#224; gauche des &#233;l&#232;ments.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Afficher le nombre d'entr&#233;es dans une bibliographie</title>
		<link>https://geekographie.maieul.net/96</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/96</guid>
		<dc:date>2012-08-12T21:35:49Z</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'ai r&#233;cemment r&#233;pondu &#224; une question d'une personne qui souhaitait afficher le nombre d'entr&#233;e d'une bibliographie, mais sans afficher cette bibliogaphie. Le probl&#232;me La personne avait une base de donn&#233;e bibliographique avec le champ keyword rempli, pour distinguer plusieurs projets. Il souhaitait ensuite afficher le nombre d'entr&#233;es pour chaque projets, mais ne pas afficher la bibliographie du projet, ou en tout cas, pas tout de suite. Cependant, il voulait pouvoir utiliser les&#160;(&#8230;)&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;J'ai r&#233;cemment r&#233;pondu &#224; une question d'une personne qui souhaitait &lt;a href=&#034;http://tex.stackexchange.com/questions/66829/count-number-of-references-using-biblatex/66832#66832&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;afficher le nombre d'entr&#233;e d'une bibliographie, mais sans afficher cette bibliogaphie&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;La personne avait une base de donn&#233;e bibliographique avec le champ &lt;code&gt;keyword&lt;/code&gt; rempli, pour distinguer plusieurs projets. Il souhaitait ensuite afficher le nombre d'entr&#233;es pour chaque projets, mais ne pas afficher la bibliographie du projet, ou en tout cas, pas tout de suite. Cependant, il voulait pouvoir utiliser les options de s&#233;lections d'entr&#233;e, par exemple&#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;\nocite{*} \printbibliography[keyword=projetx] \printbibliography[keyword=projety]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ceci afficher les entr&#233;es ayant (respectivement) le mot clef &lt;code&gt;projetx&lt;/code&gt; et le mot clef &lt;code&gt;projet2&lt;/code&gt;. La personne souhaitait compter simplement le nombre d'entr&#233;es pour chacun des mots.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Principe de solution&lt;/h2&gt;
&lt;p&gt;Le principe de la solution est le suivant&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; avoir un compteur &lt;code&gt;\refs&lt;/code&gt; qui enregistrerait le nombre d'entr&#233;e par cat&#233;gorie.&lt;/li&gt;&lt;li&gt; avoir un nouveau type de bibliographie finale qui se contenterait d'incr&#233;menter le compteur &#224; chaque entr&#233;e, puis d'afficher le valeur du compteur, sans pour autant afficher les entr&#233;es.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;h2&#034;&gt;Mise en place&lt;/h2&gt;
&lt;p&gt;Dans le pr&#233;ambule, mettre&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newcounter{refs} \makeatletter \defbibenvironment{counter}% {\setcounter{refs}{0}% \renewcommand{\blx@driver}[1]{}% }% {\therefs}% {\stepcounter{refs}}% \makeatother&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; L. 1&#160;: cr&#233;ation du compteur &lt;code&gt;refs&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; L. 2&#160;: nous allons utiliser des commandes avec des &lt;code&gt;@&lt;/code&gt; dans le nom&#160;: nous avons besoin de &lt;code&gt;\makeatletter&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; L. 3&#160;: d&#233;finition d'un nouveau type de bibliographie finale, appel&#233;e &lt;code&gt;counter&lt;/code&gt;&#160;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt;Au d&#233;but de cette bibliographie&#160;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; L. 4&#160;: r&#233;initialisation du compteur &lt;code&gt;refs&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; L. 5&#160;: modification de la commande appel&#233;e pour afficher l'entr&#233;e&#160;: nous ne voulons pas afficher d'entr&#233;e.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; L. 7&#160;: &#224; la fin de la bibliographie, affichage du compteur.&lt;/li&gt;&lt;li&gt; L. 8&#160;: &#224; chaque entr&#233;e, incr&#233;mentation du compteur.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; L. 9&#160;: plus besoin d'utiliser &lt;code&gt;@&lt;/code&gt; dans les noms de commandes.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;On consultera le manuel de &lt;i&gt;biblatex&lt;/i&gt; pour plus de d&#233;tails sur l'utilisation de &lt;code&gt;\defbibenvironment&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Il faut &#233;galement permettre de ne pas avoir de &lt;a href='https://geekographie.maieul.net/8#bibheading' class=&#034;spip_in&#034;&gt;titre &#224; la bibliographie&lt;/a&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\defbibheading{counter}{}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 class=&#034;h2&#034;&gt;Utilisation&lt;/h2&gt;
&lt;p&gt;Pour afficher le nombre d'entr&#233;es li&#233;es au mot &lt;code&gt;projetx&lt;/code&gt;, il suffit d'utiliser&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;Nous avons \printbibliography[env=counter,heading=counter] entr&#233;es pour le mot projetx.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et si notre mot &lt;code&gt;projetx&lt;/code&gt; &#224; 2 entr&#233;es, cela donne&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
Nous avons 2 entr&#233;es pour le mot projetx.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div &lt;div class='rss_ps'&gt;&lt;p&gt;Quelqu'un &lt;a href=&#034;http://tex.stackexchange.com/a/66868/7712&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;a sugg&#233;r&#233; d'utiliser &lt;code&gt;\AtDataInput&lt;/code&gt;&lt;/a&gt;. Je pense effectivement que cela pourrait &#234;tre mieux, mais peut poser des probl&#232;mes si on utiliser des sous-entr&#233;es bibliographiques que l'on ne veut pas avoir dans le total des bibliographies. &#192; tester donc.&lt;/p&gt;
&lt;p&gt;Le probl&#232;me notamment est si l'on a beaucoup de test &#224; faire&#160;: il faut les r&#233;p&#233;ter selon deux syntaxes diff&#233;rentes&#160;: dans la bibliographie finale et dans le &lt;code&gt;AtDataInput&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pour ceux qui souhaite afficher le totale directement apr&#232;s la bibliographie, utilisez la contribution &#034;&lt;a href='https://geekographie.maieul.net/184' class=&#034;spip_in&#034;&gt;Compter le nombre d'entr&#233;es dans une bibliographie&lt;/a&gt;&#034;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Division de sources et abr&#233;viations</title>
		<link>https://geekographie.maieul.net/86</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/86</guid>
		<dc:date>2012-03-05T18:41:14Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Cet article annule et remplace mon article de novembre sur les divisions de sources et les op. cit. J'ai en effet trouv&#233; une m&#233;thode beaucoup plus simple et g&#233;n&#233;raliste pour r&#233;soudre les probl&#232;mes qui y &#233;taient soulev&#233;s. Rappelons le probl&#232;me&#160;: j'utilise un syst&#232;me se basant sur le m&#233;canisme des r&#233;f&#233;rences crois&#233;es et du champ titleaddon pour g&#233;rer la division des sources. Ce syst&#232;me fonctionne bien, mais la gestion des abr&#233;viations de type op. cit. et ibid. pose probl&#232;me. Il nous faut&#160;(&#8230;)&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;Cet article annule et remplace &lt;a href='https://geekographie.maieul.net/70' class=&#034;spip_in&#034;&gt;mon article de novembre sur les divisions de sources et les &lt;i&gt;op. cit&lt;/i&gt;&lt;/a&gt;. J'ai en effet trouv&#233; une m&#233;thode beaucoup plus simple et g&#233;n&#233;raliste pour r&#233;soudre les probl&#232;mes qui y &#233;taient soulev&#233;s.&lt;/p&gt;
&lt;p&gt;Rappelons le probl&#232;me&#160;: j'utilise un syst&#232;me se basant sur le m&#233;canisme des r&#233;f&#233;rences crois&#233;es et du champ &lt;code&gt;titleaddon&lt;/code&gt; &lt;a href='https://geekographie.maieul.net/49' class=&#034;spip_in&#034;&gt;pour g&#233;rer la division des sources&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ce syst&#232;me fonctionne bien, mais la gestion des abr&#233;viations de type &lt;i&gt;op. cit.&lt;/i&gt; et &lt;i&gt;ibid.&lt;/i&gt; pose probl&#232;me. Il nous faut donc modifier les macros standard de &lt;i&gt;biblatex&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Je tiens &#224; remercier Ratatouille pour m'avoir relancer sur le sujet ce qui m'a permis de trouver une solution satisfaisante.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Les exemples&lt;/h2&gt;
&lt;p&gt;Pour cet article, je me base sur les entr&#233;es suivantes&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;@bookinbook{ActaPetriPauli, Address = {Hildesheim and New York}, Booktitle = {Acta apostolorum apocrypha}, Editor = {Richard Aldebert Lipsius}, Entrysubtype = {apocryphes}, Pages = {178-222}, Publisher = {Georg Olms Verlag}, Title = {Acta Petri et Pauli}, Usera = {1}, Volume = {I}, Year = {1972 (r&#233;&#233;d. de 1891)}} @bookinbook{ActaPetriPauli80, Crossref = {ActaPetriPauli}, Pages = {213-214}, Title = {Acta Petri et Pauli}, Titleaddon = {80}, Usera = {1}} @bookinbook{ActaPetriPauli81, Crossref = {ActaPetriPauli}, Pages = {214-215}, Title = {Acta Petri et Pauli}, Titleaddon = {81}, Usera = {1}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;Premier probl&#232;me&#160;: perte de la division de source&lt;/h2&gt;
&lt;p&gt;Soit le code suivant&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\cite{ActaPetriPauli81} &#8230; \cite{ActaPetriPauli81}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'obtiens par d&#233;faut&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Acta Petri et Pauli&lt;/i&gt;, 81, dans &lt;i&gt;Acta apostolorum apocrypha&lt;/i&gt;, t. I, &#233;d. Richard Aldebert Lipsius, Hildesheim et New York&#160;: Georg Olms Verlag, 1972 (r&#233;&#233;d. de 1891), p. 214&#8211;215&lt;/p&gt;
&lt;p&gt;&#8230;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Acta Petri et Pauli&lt;/i&gt;, &lt;i&gt;op. cit.&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pour r&#233;tablir la division de source, il me faut modifier la mani&#232;re dont sont affich&#233;es les versions abr&#233;g&#233;es. Cela se passe via la macro &lt;code&gt;cite:title&lt;/code&gt;, qui par d&#233;faut est d&#233;finie ainsi, dans le style &lt;code&gt;verbose-trad-2&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newbibmacro*{cite:title}{% \printtext[bibhyperlink]{% \printfield[citetitle]{labeltitle}% \setunit{\nametitledelim}% \bibstring[\mkibid]{opcit}}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il suffit de la modifier pour lui indique d'imprimer le champ &lt;code&gt;titleaddon&lt;/code&gt; et le champ &lt;code&gt;pages&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\renewbibmacro*{cite:title}{% \printtext[bibhyperlink]{% \printfield[citetitle]{labeltitle}% \setunit{\nametitledelim}% \bibstring[\mkibid]{opcit}% \setunit{\bibpagespunct}% \printfield{titleaddon}% \setunit{\bibpagespunct}% \printfield{pages}% }}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'obtiens alors&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Acta Petri et Pauli&lt;/i&gt;, 81, dans &lt;i&gt;Acta apostolorum apocrypha&lt;/i&gt;, t. I, &#233;d. Richard Aldebert Lipsius, Hildesheim et New York&#160;: Georg Olms Verlag, 1972 (r&#233;&#233;d. de 1891), p. 214&#8211;215&lt;/p&gt;
&lt;p&gt;&#8230;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Acta Petri et Pauli&lt;/i&gt;, &lt;i&gt;op. cit.&lt;/i&gt;, 81, p. 214-215&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;De m&#234;me, pour g&#233;rer le cas o&#249; nos deux r&#233;f&#233;rences se suivent imm&#233;diatement, et donc o&#249; la deuxi&#232;me est remplac&#233;e par &lt;i&gt;idem&lt;/i&gt;, il me faut modifier la macro &lt;code&gt;cite:idem&lt;/code&gt;, qui par d&#233;faut est ainsi d&#233;finie&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newbibmacro*{cite:ibid}{% \printtext{% \bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{% \bibstring[\mkibid]{ibidem}}}% \ifloccit {\global\toggletrue{cbx:loccit}} {}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il suffit de la red&#233;finir ainsi&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\renewbibmacro*{cite:ibid}{% \printtext{% \bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{% \bibstring[\mkibid]{ibidem}}}% \setunit{\bibpagespunct}% \printfield{titleaddon}% \iffieldundef{titleaddon}{}{\setunit{\bibpagespunct}% \printfield{pages}}% \ifloccit {\global\toggletrue{cbx:loccit}} {}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;Second probl&#232;me&#160;: pas de &lt;i&gt;op. cit.&lt;/i&gt; si je ne cite pas le m&#234;me passage&lt;/h2&gt;
&lt;p&gt;J'essaie maintenant&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\cite{ActaPetriPauli80} &#8230; \cite{ActaPetriPauli81}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'obtiens alors&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Acta Petri et Pauli&lt;/i&gt;, 80, dans &lt;i&gt;Acta apostolorum apocrypha&lt;/i&gt;, t. I, &#233;d. Richard Aldebert &lt;span class=&#034;caps&#034;&gt;LIPSIUS&lt;/span&gt;, Hildesheim et New York&#160;: Georg Olms Verlag, 1972 (r&#233;&#233;d. de 1891), p. 213&#8211;214&lt;/p&gt;
&lt;p&gt;&#8230;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Acta Petri et Pauli&lt;/i&gt;, 81, dans &lt;i&gt;Acta apostolorum apocrypha&lt;/i&gt;, t. I, &#233;d. Richard Aldebert &lt;span class=&#034;caps&#034;&gt;LIPSIUS&lt;/span&gt;, Hildesheim et New York&#160;: Georg Olms Verlag, 1972 (r&#233;&#233;d. de 1891), p. 214&#8211;215&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pas tr&#232;s joli, joli&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;! Et puis cela prend de la place, &lt;a href=&#034;http://evajoly2012.fr&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ce n'est pas tr&#232;s &#233;colo, donc pas non plus Joly&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Dans mon pr&#233;c&#233;dent article, c'est ici que les j'avais en effet opt&#233; pour une solution peut satisfaisante, qui consistait &#224; tester si l'&#233;l&#233;ment parent avait &#233;t&#233; cit&#233;. Cette solution &#233;tait peu satisfaisante pour deux raisons&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Elle ne permettait pas d'obtenir un r&#233;sultat correct si l'&#233;lement parent n'avait pas &#233;t&#233; cit&#233;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb8-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;C'&#233;tait l&#224; mon troisi&#232;me probl&#232;me, que je n'arrivais pas &#224; r&#233;soudre.&#034; id=&#034;nh8-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/li&gt;&lt;li&gt; Elle ne permettait pas d'utiliser des &lt;i&gt;ibid&lt;/i&gt; de mani&#232;re correcte&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb8-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Je ne m'&#233;tais pas aper&#231;u de ce probl&#232;me&#034; id=&#034;nh8-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;La solution que j'ai d&#233;sormais adopt&#233;e est plus efficace. Elle se comprend &#224; partir de la mani&#232;re dont &lt;i&gt;biblatex&lt;/i&gt; g&#232;re les abr&#233;viations de type &lt;i&gt;op. cit.&lt;/i&gt;&#160;: en stockant dans des tableaux et variables (au sens des langages de programmations) les valeurs du champ &lt;code&gt;entrykey&lt;/code&gt; du l'entr&#233;e courante. Comme son nom l'indique, ce champ a pour valeur par d&#233;faut la clef de citation de l'entr&#233;e courante&#160;: par exemple &lt;code&gt;ActaPetriPauli81&lt;/code&gt;. Toutefois, il est possible, comme pour tout les champs, de modifier temporairement cette valeur au sein d'une macro bibliographique. Nous allons nous servir de cette possibilit&#233; pour lui affecter la valeur du champ &lt;code&gt;crossref&lt;/code&gt;. Par cons&#233;quent, lorsque je citerais une sous-entr&#233;e de &lt;code&gt;ActaPetriPauli&lt;/code&gt;, j'indiquerais &#224; &lt;i&gt;biblatex&lt;/i&gt; de retenir l'entr&#233;e &lt;code&gt;ActaPetriPauli&lt;/code&gt; dans sa liste des entr&#233;es &#224; abr&#233;ger.&lt;/p&gt;
&lt;p&gt;Pour mettre la valeur du champ &lt;code&gt;crossref&lt;/code&gt; dans le champ &lt;code&gt;entrykey&lt;/code&gt;, il faut proc&#233;der en deux temps&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb8-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Je renvoie au manuel de biblatex pour plus de d&#233;tails.&#034; id=&#034;nh8-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Copier sa valeur dans une commande &lt;code&gt;\crossref&lt;/code&gt;, &#224; l'aide de la commande &lt;code&gt;\savefield&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Copier la commande &lt;code&gt;\crossref&lt;/code&gt;, &#224; l'aide de la commande &lt;code&gt;\restorefield&lt;/code&gt;.
Ce qui donne&#160;:
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\savefield{crossref}{\crossref}\restorefield{entrykey}{\crossref}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Bien s&#251;r, il faut &#233;galement conditionner cette copie&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &#192; la pr&#233;sence d'un champ &lt;code&gt;crossref&lt;/code&gt;, sinon on risque d'avoir des probl&#232;mes.&lt;/li&gt;&lt;li&gt; &#192; la pr&#233;sence d'un champ &lt;code&gt;titleaddon&lt;/code&gt;, car les crossrefs ne sont pas syst&#233;matiquement pour des divisions de sources.
On utilise pour cela la commande bien connue &lt;code&gt;\iffieldundef&lt;/code&gt;&#160;:
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\iffieldundef{crossref}{}{\iffieldundef{titleaddon}{}{\savefield{crossref}{\crossref}\restorefield{entrykey}{\crossref}}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Reste &#224; choisir o&#249; mettre ces commandes&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;! Il faut savoir que la gestion des versions abr&#233;g&#233;es des r&#233;f&#233;rences se fait au niveau d'une macro &lt;code&gt;cite&lt;/code&gt; qui est la premi&#232;re macro appel&#233;e par les commandes &lt;code&gt;\XXXcite&lt;/code&gt;. Dans le style &lt;code&gt;verbose-trad-2&lt;/code&gt; cette macro est d&#233;finie ainsi&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newbibmacro*{cite}{% \usebibmacro{cite:citepages}% \global\togglefalse{cbx:fullcite}% \global\togglefalse{cbx:loccit}% \bibhypertarget{cite\the\value{instcount}}{% \ifciteseen {\iffieldundef{shorthand} {\ifciteibid {\usebibmacro{cite:ibid}} {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}} {\usebibmacro{cite:idem}} {\usebibmacro{cite:name}}% \usebibmacro{cite:title}}% \usebibmacro{cite:save}} {\usebibmacro{cite:shorthand}}} {\usebibmacro{cite:full}% \usebibmacro{cite:save}}}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il suffit donc d'ins&#233;rer notre code de &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;recopie&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; en d&#233;but de macro&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\renewbibmacro*{cite}{%
\iffieldundef{crossref}{}{\iffieldundef{crossref}{}{\iffieldundef{titleaddon}{}{\savefield{crossref}{\crossref}\restorefield{entrykey}{\crossref}}}}% \usebibmacro{cite:citepages}% \global\togglefalse{cbx:fullcite}% \global\togglefalse{cbx:loccit}% \bibhypertarget{cite\the\value{instcount}}{% \ifciteseen {\iffieldundef{shorthand} {\ifciteibid {\usebibmacro{cite:ibid}} {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}} {\usebibmacro{cite:idem}} {\usebibmacro{cite:name}}% \usebibmacro{cite:title}}% \usebibmacro{cite:save}} {\usebibmacro{cite:shorthand}}} {\usebibmacro{cite:full}% \usebibmacro{cite:save}}}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'obtiens correctement&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Acta Petri et Pauli&lt;/i&gt;, 80, dans &lt;i&gt;Acta apostolorum apocrypha&lt;/i&gt;, t. I, &#233;d. Richard Aldebert &lt;span class=&#034;caps&#034;&gt;LIPSIUS&lt;/span&gt;, Hildesheim et New York&#160;: Georg Olms Verlag, 1972 (r&#233;&#233;d. de 1891), p. 213&#8211;214&lt;/p&gt;
&lt;p&gt;&#8230;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Acta Petri et Pauli&lt;/i&gt;, 81, &lt;i&gt;op. cit.&lt;/i&gt;, p. 214&#8211;215&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div &lt;div class='rss_ps'&gt;&lt;p&gt;La pr&#233;c&#233;dente version de cet article contenait une astuce concernant les pages r&#233;f&#233;renc&#233;es avec la commande &lt;code&gt;\cite&lt;/code&gt;. Cette astuce n'avait &#224; vrai dire rien &#224; voir avec le probl&#232;me qui nous occupe&#160;: &lt;a href='https://geekographie.maieul.net/87' class=&#034;spip_in&#034;&gt;je l'ai reproduite dans un article d&#233;di&#233;&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb8-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh8-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 8-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;C'&#233;tait l&#224; mon troisi&#232;me probl&#232;me, que je n'arrivais pas &#224; r&#233;soudre.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb8-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh8-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 8-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Je ne m'&#233;tais pas aper&#231;u de ce probl&#232;me&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb8-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh8-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 8-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;Je renvoie au manuel de &lt;i&gt;biblatex&lt;/i&gt; pour plus de d&#233;tails.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Combiner Ledpar et Bibleref</title>
		<link>https://geekographie.maieul.net/64</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/64</guid>
		<dc:date>2011-10-29T21:31:04Z</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'ai utilis&#233; l'autre jour pour la premi&#232;re fois le package ledpar Dans l'une des mes colonnes, j'ai souhait&#233; mettre des r&#233;f&#233;rences bibliques, via la commande \bibleverse du package bibleref-french. Dans un pr&#233;c&#233;dent article, j'avais expliqu&#233; ma commande personnelle pour faciliter l'utilisation de ce package. J'ai donc souhait&#233; l'utiliser. Et patatra, j'obtient eu une erreur de compilation&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;! Une jolie erreur de type &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;undefined control sequence&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. Apr&#232;s quelque temps de r&#233;flexions, j'ai&#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;J'ai utilis&#233; l'autre jour pour la premi&#232;re fois le package &lt;a href=&#034;http://www.ctan.org/pkg/ledpar&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ledpar&lt;/a&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb9-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Alors m&#234;me que je suis cens&#233; en &#234;tre le mainteneur&#160;!&#034; id=&#034;nh9-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Dans l'une des mes colonnes, j'ai souhait&#233; mettre des r&#233;f&#233;rences bibliques, via la commande &lt;code&gt;\bibleverse&lt;/code&gt; du package &lt;a href=&#034;http://www.ctan.org/pkg/bibleref-french&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;bibleref-french&lt;/a&gt;. Dans &lt;a href='https://geekographie.maieul.net/25' class=&#034;spip_in&#034;&gt;un pr&#233;c&#233;dent article&lt;/a&gt;, j'avais expliqu&#233; ma commande personnelle pour faciliter l'utilisation de ce package. J'ai donc souhait&#233; l'utiliser. Et patatra, j'obtient eu une erreur de compilation&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;!&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Une jolie erreur de type &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;undefined control sequence&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;.
Apr&#232;s quelque temps de r&#233;flexions, j'ai compris d'o&#249; venait le probl&#232;me. Pour pouvoir afficher ses lignes en parall&#232;les, ledpar stocke le contenu dans des &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;bo&#238;tes&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;.&lt;/p&gt;
&lt;p&gt;Or la commande &lt;code&gt;\bibleverse&lt;/code&gt; est une commande &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;fragile&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. Ce qui veut dire qu'elle est interpr&#233;t&#233;e avant d'&#234;tre stock&#233;e en bo&#238;tes.&lt;/p&gt;
&lt;p&gt;Par cons&#233;quence, ce n'est pas elle qui est stock&#233;e en bo&#238;te, mais son contenu, &#224; savoir l'appel &#224; des commandes contenant des @. Or des telles commandes ne peuvent pas &#234;tre appel&#233;es directement dans un fichier .tex, ou dans un bo&#238;te&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb9-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;C'est le fameux et qui permet &#233;ventuellement de les utiliser dans un (&#8230;)&#034; id=&#034;nh9-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;. Par cons&#233;quent, cela provoque des erreurs de compilation&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb9-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;En langage TeXnique, notre commande est dite &#171;&#160;fragile&#160;&#187;.&#034; id=&#034;nh9-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;La solution&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;? Prot&#233;ger la commande avec &lt;code&gt;\protect&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Par cons&#233;quent, il me faut remplacer&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\newcommandx*\bible[3][1,2]{%
\ifthenelse{\equal{#1}{}}% {\emph{#3}}% % Si on indique pas de r&#233;f&#233;rence {% \emph{#3}\footnote{\bibleverse{#1}(#2)}% }%
}&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;' class='latex'&gt;&lt;code&gt;\newcommandx*\bible[3][1,2]{%
\ifthenelse{\equal{#1}{}}% {\emph{#3}}% % Si on indique pas de r&#233;f&#233;rence {% \emph{#3}\footnote{\protect\bibleverse{#1}(#2)}% }%
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et voil&#224;, plus d'erreur de compilation&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;!&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div &lt;div class='rss_ps'&gt;&lt;p&gt;On pourra consulter &lt;a href=&#034;http://www.tex.ac.uk/cgi-bin/texfaq2html?label=protect&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;une petite explication en anglais sur les commandes fragiles et robuste&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;On peut &#233;galement consulter [une petite explication sur &lt;a href=&#034;http://www.grappa.univ-lille3.fr/FAQ-LaTeX/29.6.html.&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;code&gt;makeatletter&lt;/code&gt; &lt;code&gt;makeatother&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb9-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh9-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 9-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Alors m&#234;me que je suis cens&#233; en &#234;tre le mainteneur&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 id=&#034;nb9-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh9-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 9-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;C'est le fameux &lt;code&gt;\makeatletter&lt;/code&gt; et &lt;code&gt;\makeatother&lt;/code&gt; qui permet &#233;ventuellement de les utiliser dans un fichier .tex.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb9-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh9-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 9-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;En langage TeXnique, notre commande &lt;code&gt;\bibleverse&lt;/code&gt; est dite &#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;fragile&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>



</channel>

</rss>
