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




<item xml:lang="fr">
		<title>Comment ma bibliographie a satur&#233; la m&#233;moire de (Xe)LaTeX</title>
		<link>https://geekographie.maieul.net/205</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/205</guid>
		<dc:date>2016-10-23T20:03:40Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Cette semaine, compilant ma th&#232;se pour une nouvelle relecture de la bibliographie, j'ai eu la d&#233;sagr&#233;able surprise d'obtenir un message d'erreur libell&#233; ainsi &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;TeX capacity exceeded, sorry [main memory size=5000000&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. J'ai pass&#233; un certain &#224; trouver la source du bug. Je vous livre ici l'explication, d'une part parce que dans certaines circonstances d'autres que moi pourraient &#234;tre amen&#233;s &#224; obtenir le m&#234;me bug, et d'autre part parce que l'explication de celui-ci s'av&#232;re int&#233;ressante pour&#160;(&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Cette semaine, compilant ma th&#232;se pour une nouvelle relecture de la bibliographie, j'ai eu la d&#233;sagr&#233;able surprise d'obtenir un message d'erreur libell&#233; ainsi &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;code&gt;TeX capacity exceeded, sorry [main memory size=5000000&lt;/code&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. J'ai pass&#233; un certain &#224; trouver la source du bug. Je vous livre ici l'explication, d'une part parce que dans certaines circonstances d'autres que moi pourraient &#234;tre amen&#233;s &#224; obtenir le m&#234;me bug, et d'autre part parce que l'explication de celui-ci s'av&#232;re int&#233;ressante pour comprendre les m&#233;canismes sous-jacents &#224; &lt;i&gt;biblatex&lt;/i&gt;, &#224; &lt;i&gt;biber&lt;/i&gt; et &#224; &lt;i&gt;XeLaTeX&lt;/i&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;R&#233;sum&#233; du bug&lt;/h2&gt;
&lt;p&gt;Lan&#231;ant ma s&#233;rie de compilations avec &lt;a href='https://geekographie.maieul.net/79' class=&#034;spip_in&#034;&gt;latexmk&lt;/a&gt;, j'obtiens, &#224; la deuxi&#232;me compilation XeLaTeX, le message suivant&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;TeX capacity exceeded, sorry [main memory size=5000000]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;D'habitude, ce type de message est provoqu&#233; par une boucle infinie, g&#233;n&#233;ralement li&#233;e &#224; une faute de code. J'&#233;tais relativement sceptique sur l'existence d'une telle boucle, puisque je n'avais pas apport&#233; beaucoup de changement de code depuis la derni&#232;re compilation compl&#232;te effectu&#233;e un mois en amont.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Recherche de l'origine&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;En r&#233;alit&#233;, je suis arriv&#233; moins directement au but, mais je donne ici la (&#8230;)&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;J'ai toutefois proc&#233;d&#233; &#224; une m&#233;thode simple, mais g&#233;n&#233;ralement efficace pour trouver la source de ce type de bug&#160;: commenter la moiti&#233; du contenu LaTeX, compiler, voir si le bug se reproduit, si oui commenter la moiti&#233; du code restant, sinon inverser et faire un test sur la moiti&#233; qu'on n'avait pas test&#233;, et recommencer, et ainsi de suite, jusqu'&#224; cerner la ligne ou le bloc de code qui pose probl&#232;me. Il s'agit d'une r&#233;solution classique par dichotomie, pas n&#233;cessairement la plus rapide, mais la plus simple &#224; mettre en &#339;uvre avec LaTeX.&lt;/p&gt;
&lt;p&gt;N&#233;anmoins, dans le cas qui m'occupait, une telle recherche s'est r&#233;v&#233;l&#233;e infructueuse&#160;: le bug ne se produisait que si je compilais l'ensemble de ma th&#232;se, et non pas l'une ou l'autre des moiti&#233;s.&lt;/p&gt;
&lt;p&gt;Fort heureusement, je savais que j'avais r&#233;ussi &#224; compiler il y a quelques semaines, et qu'&#224; l'&#233;poque j'avais pos&#233; un &lt;a href='https://geekographie.maieul.net/83' class=&#034;spip_in&#034;&gt;tag git&lt;/a&gt;. Gr&#226;ce &#224; la g&#233;niale fonction &lt;a href=&#034;http://www.git-attitude.fr/2014/12/09/git-bisect/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;git bisect&lt;/a&gt;, j'ai pu trouver le commit ayant entra&#238;n&#233; le bug, en testant par dichotomie l'ensemble de mes commits entre ma derni&#232;re compilation r&#233;ussie et mon tout dernier commit.&lt;/p&gt;
&lt;p&gt;Fort heureusement &#233;galement, ce commit &#233;tait relativement petit. J'avais remplac&#233;&#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;\printbibliography[title={Manuscrits},subtype=ms,check=ms_principaux]&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=&#034;latex&#034;&gt;&lt;code&gt;\begin{refcontext}[sorting=manuscripts]{} \printbibliography[title={Manuscrits},subtype=ms,check=ms_principaux] \end{refcontext}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ceci permet que ma bibliographie consacr&#233;e aux manuscrits soit tri&#233;e selon un ordre sp&#233;cifique, d'abord par ville, puis par biblioth&#232;que, par collection et par cote.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Recherche de la cause&lt;/h2&gt;
&lt;p&gt;La modification effectu&#233;e est donc la source du probl&#232;me, mais pourquoi pose-t-elle probl&#232;me&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;?&lt;/p&gt;
&lt;h3 class=&#034;h3&#034;&gt;Fonctionnement interne de la bibliographie avec LaTeX + Biber&lt;/h3&gt;
&lt;p&gt;Un &#233;l&#233;ment a &#233;veill&#233; ma curiosit&#233;&#160;: le bug se produisait &lt;span class=&#034;caps&#034;&gt;AVANT&lt;/span&gt; m&#234;me que la compilation n'ait eu le temps d'arriver &#224; la ligne sur la bibliographie, comme je pouvais le constater &#224; travers les messages d&#233;filant &#224; l'&#233;cran.&lt;/p&gt;
&lt;p&gt;Cependant, je touchais &#224; un &#233;l&#233;ment concernant la bibliographie. Or, voici comment fonctionne la bibliographie avec LaTeX + &lt;i&gt;biblatex&lt;/i&gt; + Biber&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Lors de la premi&#232;re compilation, LaTeX lit le fichier &lt;code&gt;.tex&lt;/code&gt;, rep&#232;re les citations &#224; l'int&#233;rieur, et &#233;crit dans un fichier &lt;code&gt;.bcf&lt;/code&gt; les clefs de citations utilis&#233;es ainsi que certaines informations relatives au style bibliographique, dont les informations sur le tri de la bibliographie.&lt;/li&gt;&lt;li&gt; Lors de la compilation Biber, ce dernier lit le fichier &lt;code&gt;.bcf&lt;/code&gt; et le mettant en relation avec le fichier &lt;code&gt;.bib&lt;/code&gt;, il trie et formate la bibliographie sous la forme d'une suite de commande LaTeX, qu'il &#233;crit dans un fichier &lt;code&gt;.bbl&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Lors de la seconde compilation, LaTeX lit non seulement le fichier &lt;code&gt;.tex&lt;/code&gt;, mais aussi le fichier &lt;code&gt;.bbl&lt;/code&gt;, ce qui lui permet d'ajouter les r&#233;f&#233;rences bibliographiques et de composer la ou les bibliographies finales.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ceci est r&#233;sum&#233; dans le sch&#233;ma ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_209 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;63&#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/png/schemas.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L500xH647/schemas-4608e.png?1760452769' width='500' height='647' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-209 '&gt;&lt;strong&gt;Comment fonctionne la compilation de bibliographie dans LaTeX
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Puisque le bug n'arrive qu'&#224; la seconde compilation LaTeX, et qu'il est li&#233; &#224; la bibliographie, le probl&#232;me se situe probablement dans ma bibliographie. Probl&#232;me&#160;: le commit qui introduit le bug n'a rien chang&#233; au fichier .bib. Le probl&#232;me se situe donc plus vraisemblablement au moment de la production du fichier &lt;code&gt;.bbl&lt;/code&gt;.&lt;/p&gt;
&lt;h3 class=&#034;h3&#034;&gt; Analyse du fichier &lt;code&gt;.bbl&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;J'ai alors constat&#233; que la taille du fichier &lt;code&gt;.bbl&lt;/code&gt; doublait approximativement entre la compilation avant mon commit et celle apr&#232;s mon commit, passant &#224; 4 Mo dans le second cas. Gr&#226;ce &#224; un logiciel d'affichage de diff&#233;rence entre fichiers, je constate ais&#233;ment l'origine de la modification&#160;: apr&#232;s mon commit, les entr&#233;es bibliographiques sont pr&#233;sentes deux fois dans mon fichier &lt;code&gt;.bbl&lt;/code&gt;&#160;: une fois tri&#233;es selon mon classement par d&#233;faut, &lt;a href=&#034;https://www.ctan.org/pkg/biblatex-realauthor&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;code&gt;anonymous+realauthor&lt;/code&gt;&lt;/a&gt;, l'autre fois tri&#233;es selon le classement introduit par mon commit&#160;: &lt;code&gt;manuscripts&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ceci est du reste parfaitement logique, le tri bibliographique &#233;tant effectu&#233; par Biber et non par LaTeX, il est normal de trouver pour deux demandes de tri,deux listes bibliographiques dans le fichier &lt;code&gt;.bbl&lt;/code&gt;, chaque liste commen&#231;ant par &lt;code&gt;\sortlist&lt;/code&gt; et finissant par &lt;code&gt;\endsortlist&lt;/code&gt;. Le probl&#232;me est qu'avec 1253 entr&#233;es bibliographiques, cela produit un fichier tr&#232;s lourd, qui, par cons&#233;quent, remplit consid&#233;rablement la m&#233;moire de LaTeX, et aboutit donc &#224; mon &lt;code&gt;TeX capacity exceeded, sorry [main memory size=5000000]&lt;/code&gt;&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;R&#233;solution du probl&#232;me&lt;/h2&gt;
&lt;p&gt;Une fois la cause trouv&#233;e, il reste &#224; voir comment se sortir de la situation. Trois solutions s'offrent &#224; nous.&lt;/p&gt;
&lt;h3 class=&#034;h3&#034;&gt;Premi&#232;re solution&#160;: utiliser LuaLaTeX&lt;/h3&gt;
&lt;p&gt;TeX, et XeTeX, les moteurs derri&#232;re LaTeX et XeLaTeX fonctionnent selon un mod&#232;le &#224; quantit&#233; de m&#233;moire disponible fixe&#160;: lorsque la compilation est lanc&#233;e, une certaine quantit&#233; de m&#233;moire seulement est utilisable.&lt;/p&gt;
&lt;p&gt;En revanche, LuaTeX, derri&#232;re LuaLaTeX, fonctionne selon un mod&#232;le, plus r&#233;cent, d'allocation dynamique de la m&#233;moire&#160;: la m&#233;moire vive utilis&#233;e est &#233;tendue au fur et &#224; mesure des besoins, le syst&#232;me d'exploitation veillant simplement &#224; ce que LuaLaTeX n'empi&#232;te pas sur les autres programme en activit&#233;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Je sch&#233;matise, tr&#232;s grossi&#232;rement, d'autant plus que je ne suis pas du tout (&#8230;)&#034; id=&#034;nh2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;. Cons&#233;quence&#160;: la quantit&#233; de m&#233;moire utilisable par LuaLaTeX ne d&#233;pend que de mon ordinateur, et on peut esp&#233;rer que ma bibliographie doubl&#233;e n'en vienne quand m&#234;me pas &#224; saturer toute la m&#233;moire vive et virtuelle&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Pour rappel&#160;: la m&#233;moire vive, dont le contenu se vide &#224; l'extinction de (&#8230;)&#034; id=&#034;nh3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt; de mon ordinateur.&lt;/p&gt;
&lt;p&gt;Probl&#232;me&#160;: LuaTeX est un moteur diff&#233;rent de XeTeX, avec ses sp&#233;cificit&#233;s, et, &#233;tant dans la phase terminale de ma th&#232;se, je ne pr&#233;f&#232;re pas effectuer une migration avec toutes les v&#233;rifications, parfois tenues, que cela implique.&lt;/p&gt;
&lt;h3 class=&#034;h3&#034;&gt;Deuxi&#232;me solution&#160;: augmenter la m&#233;moire de XeLaTeX&lt;/h3&gt;
&lt;p&gt;Puisque je souhaite continuer &#224; utiliser XeLaTeX, deux solutions s'offrent &#224; moi&#160;: r&#233;soudre mon probl&#232;me de double tri ou augmenter la m&#233;moire de XeLaTeX. La seconde solution, moins &#233;cologique, est plus rapide &#224; mettre en &#339;uvre et consiste &#224; augmenter la m&#233;moire utilisable par XeLaTeX&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb4&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Sur ce point, XeTeX reste cal&#233; TeX, lequel a &#233;t&#233; invent&#233; en 1977, &#224; une (&#8230;)&#034; id=&#034;nh4&#034;&gt;4&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Une simple recherche sur le web m'indique la d&#233;marche &#224; suivre, pour une installation TeXLive&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Pour MikTeX, j'ignore la d&#233;marche&#034; id=&#034;nh5&#034;&gt;5&lt;/a&gt;]&lt;/span&gt;&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; trouver le fichier de configuration de texlive &lt;code&gt;texmf.cnf&lt;/code&gt; en saisissant &lt;code&gt;kpsewhich texmf.cnf&lt;/code&gt; dans mon terminal&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;;&lt;/li&gt;&lt;li&gt; dans mon cas, le fichier est &lt;code&gt;/usr/local/texlive/2016/texmf.cnf&lt;/code&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;;&lt;/li&gt;&lt;li&gt; ouvrant le fichier je lis les lignes suivantes&#160;:
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;% This texmf.cnf file should contain only your personal changes from the % original texmf.cnf (for example, as chosen in the installer).&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ceci signifie que je peux y mettre tous mes r&#233;glages personnels sans risque de perdre les r&#233;glages par d&#233;faut que je n'aurais pas explicitement modifi&#233;s.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt; j'ajoute donc le r&#233;glage sur de m&#233;moire suivant &lt;code&gt;main_memory = 7999999&lt;/code&gt;, ayant lu que cela correspond &#224; la quantit&#233; maximum g&#233;rable par (X&lt;sup class=&#034;typo_exposants&#034;&gt;e&lt;/sup&gt;)TeX.&lt;/li&gt;&lt;li&gt; puis dans mon terminal, saisir &lt;code&gt;sudo fmtutil-sys --all&lt;/code&gt; pour relancer la cr&#233;ation des scripts &lt;code&gt;XeLaTeX&lt;/code&gt;, &lt;code&gt;LaTeX&lt;/code&gt; et co, &#224; partir de mes nouveaux r&#233;glages.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Pour m'assurer que mes r&#233;glages aient bien &#233;t&#233; pris en compte, je lance la compilation avec XeLaTeX d'un fichier minimum&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\documentclass{article} \begin{document} \end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'ouvre le fichier &lt;code&gt;.log&lt;/code&gt; g&#233;n&#233;r&#233;, et je lis peu avant la fin&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;'&gt;&lt;code&gt;Here is how much of TeX's memory you used: 196 strings out of 493589 2014 string characters out of 6143511 53785 words of memory out of 7999999 3697 multiletter control sequences out of 15000+600000 3640 words of font info for 14 fonts, out of 8000000 for 9000 1347 hyphenation exceptions out of 8191 23i,1n,17p,127b,36s stack positions out of 5000i,500n,10000p,200000b,80000s&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La ligne &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;53785 words of memory out of 7999999&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; m'indique donc que ma quantit&#233; de &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;words of memory&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb6&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Si j'ai bien compris, un&#160;&#187;Word of memory&#171;&#160;est l'unit&#233; minimale de donn&#233;e que (&#8230;)&#034; id=&#034;nh6&#034;&gt;6&lt;/a&gt;]&lt;/span&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; est pass&#233;e &#224; 7999999, ce qui correspond &#224; mon nouveau r&#233;glage. Ouf&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;!&lt;/p&gt;
&lt;p&gt;En relance ma compilation de th&#232;se, tout se passe bien&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb7&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;J'ai simplement utilis&#233; 4010951 words of memory sur 7999999, soit un peu (&#8230;)&#034; id=&#034;nh7&#034;&gt;7&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;h3 class=&#034;h3&#034;&gt;Troisi&#232;me solution&#160;: &#233;viter d'avoir deux bibliographies tri&#233;es&lt;/h3&gt;
&lt;p&gt;Cependant, dans le cas o&#249; ma bibliographie grossirait encore sensiblement (ce que je n'esp&#232;re pas), et pour le principe, il para&#238;trait plus utile d'avoir la bibliographie tri&#233;e une seule fois dans le fichier &lt;code&gt;.bbl&lt;/code&gt;, que ce soit pour les manuscrits ou pour les autres types d'entr&#233;es. De toute fa&#231;on, je filtre les types d'entr&#233;es lors de l'affichage final, pour s&#233;parer les manuscrits des autres types.&lt;/p&gt;
&lt;p&gt;C'est pourquoi, la version&#160;2.7.0 de &lt;i&gt;biblatex-realauthor&lt;/i&gt;, que je viens d'envoyer sur le &lt;a href=&#034;https://ctan.org/pkg/biblatex-realauthor&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;span class=&#034;caps&#034;&gt;CTAN&lt;/span&gt;&lt;/a&gt; propose un nouveau sch&#233;ma de tri, &lt;code&gt;anonymous+realauthor+manuscripts&lt;/code&gt;, que je peux passer comme option global de biblatex, ce qui me permet de supprimer l'environnement &lt;code&gt;refcontext&lt;/code&gt; que mon commit probl&#233;matique avait introduit.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;En guise de conclusion&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Versionner son travail est tr&#232;s utile. &lt;a href='https://geekographie.maieul.net/83' class=&#034;spip_in&#034;&gt;Apprenez &#224; le faire&lt;/a&gt; si ce n'est pas d&#233;j&#224; fait.&lt;/li&gt;&lt;li&gt; Si vous avez des probl&#232;mes de &lt;code&gt;TeX capacity exceeded, sorry [main memory size=5000000]&lt;/code&gt; apr&#232;s une compilation biber, et qu'une recherche par dichotomie ne donne rien, regardez la taille du fichier &lt;code&gt;.bbl&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;En r&#233;alit&#233;, je suis arriv&#233; moins directement au but, mais je donne ici la m&#233;thode que j'aurais du suivre&#8230;&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Je sch&#233;matise, tr&#232;s grossi&#232;rement, d'autant plus que je ne suis pas du tout sp&#233;cialiste de ces questions d'allocation de la m&#233;moire&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3&#034; class=&#034;spip_note&#034; title=&#034;Notes 3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;Pour rappel&#160;: la m&#233;moire vive, dont le contenu se vide &#224; l'extinction de l'ordinateur, est plus rapide d'acc&#232;s, mais plus co&#251;teuse que la m&#233;moire morte (disque dur, &lt;span class=&#034;caps&#034;&gt;&lt;span class=&#034;caps&#034;&gt;SSD&lt;/span&gt;&lt;/span&gt;), qui ne se vide pas &#224; l'extinction de l'ordinateur. Pour faire leur calcul, les logiciels utilisent de la m&#233;moire vive. Cependant, le syst&#232;me d'exploitation leur alloue &#233;galement une part de m&#233;moire morte pour simuler la m&#233;moire vive, cette part est appel&#233;e &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;m&#233;moire virtuelle&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;. Cette m&#233;moire virtuelle, bien qu'utilisant un support &#224; long terme, est destin&#233;e &#224; n'&#234;tre utilis&#233;e qu'&#224; court terme.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb4&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh4&#034; class=&#034;spip_note&#034; title=&#034;Notes 4&#034; rev=&#034;appendix&#034;&gt;4&lt;/a&gt;] &lt;/span&gt;Sur ce point, XeTeX reste cal&#233; TeX, lequel a &#233;t&#233; invent&#233; en 1977, &#224; une &#233;poque o&#249; la m&#233;moire informatique &#233;tait une ressource rare.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5&#034; class=&#034;spip_note&#034; title=&#034;Notes 5&#034; rev=&#034;appendix&#034;&gt;5&lt;/a&gt;] &lt;/span&gt;Pour MikTeX, j'ignore la d&#233;marche&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb6&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh6&#034; class=&#034;spip_note&#034; title=&#034;Notes 6&#034; rev=&#034;appendix&#034;&gt;6&lt;/a&gt;] &lt;/span&gt;Si j'ai bien compris, un&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;Word of memory&#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;est l'unit&#233; minimale de donn&#233;e que traite un processeur. Aujourd'hui, la plupart des ordinateurs neufs ont des&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;words of memory&#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;de 64&#160;bit, mais il y encore quelques ann&#233;es, la norme &#233;tait de 32&#160;bit. Avec 7&#160;999&#160;999&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;words of memory&#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;, je dispose donc de 511&#160;999&#160;936 bits de m&#233;moire, soit environ 511&#160;Mo. Cela &#233;tant, comme j'ignore comme XeTeX structure ses donn&#233;es en interne, je n'ai aucune id&#233;e de combien d'&#233;l&#233;ments bibliographiques je pourrai encore ajouter.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb7&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh7&#034; class=&#034;spip_note&#034; title=&#034;Notes 7&#034; rev=&#034;appendix&#034;&gt;7&lt;/a&gt;] &lt;/span&gt;J'ai simplement utilis&#233; 4010951 words of memory sur 7999999, soit un peu plus de la moiti&#233;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		
		<enclosure url="https://geekographie.maieul.net/IMG/tex/schemas.tex" length="2307" type="text/x-tex" />
		

	</item>
<item xml:lang="fr">
		<title>biblatex-bookinarticle devient biblatex-bookinother</title>
		<link>https://geekographie.maieul.net/196</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/196</guid>
		<dc:date>2016-04-12T06: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;Le package biblatex-bookinarticle &#233;tait la mise en package d'une pr&#233;c&#233;dent contribution proposant un nouveau type d'entr&#233;e @bookinarticle. J'ai petit &#224; petit ajout&#233; des nouveaux types permettant de g&#233;rer plusieurs cas de livres anciens &#233;dit&#233;s dans d'autres types (par exemple dans un @inproceedings). R&#233;cemment j'ai &#233;galement ajout&#233; la possibilit&#233; de pr&#233;ciser l'&#233;diteur.rice du livre ancien lorsqu'il ne s'agit pas de l'auteur.e de l'ouvrage incluant, par exemple si un livre est &#233;dit&#233; par un.e&#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;Le package &lt;a href=&#034;http://www.ctan.org/pkg/biblatex-bookinarticle&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;biblatex-bookinarticle&lt;/a&gt; &#233;tait la &lt;a href='https://geekographie.maieul.net/143' class=&#034;spip_in&#034;&gt;mise en package&lt;/a&gt; d'une pr&#233;c&#233;dent contribution proposant &lt;a href='https://geekographie.maieul.net/71' class=&#034;spip_in&#034;&gt;un nouveau type d'entr&#233;e &lt;code&gt;@bookinarticle&lt;/code&gt;&lt;/a&gt;. J'ai petit &#224; petit ajout&#233; des nouveaux types permettant de g&#233;rer plusieurs cas de livres anciens &#233;dit&#233;s dans d'autres types (par exemple dans un &lt;code&gt;@inproceedings&lt;/code&gt;). R&#233;cemment j'ai &#233;galement ajout&#233; la possibilit&#233; de pr&#233;ciser l'&#233;diteur.rice du livre ancien lorsqu'il ne s'agit pas de l'auteur.e de l'ouvrage incluant, par exemple si un livre est &#233;dit&#233; par un.e chercheur.se dans un article d'un.e autre chercheur.se.&lt;/p&gt;
&lt;p&gt;Ceci impliquant un changement de mode de chargement du package, j'ai chang&#233;, apr&#232;s consultation des utilisateurs, le nom de package. Il devient &lt;a href='https://geekographie.maieul.net/http:/www.ctan.org/pkg/biblatex-bookinother'&gt;&lt;code&gt;biblatex-bookinother&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Ce que propose le package&lt;/h2&gt;
&lt;p&gt;Au moment de sa sortie, le package &lt;code&gt;biblatex-bookinother&lt;/code&gt; propose plusieurs nouveaux types&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code&gt;@bookinarticle&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code&gt;@bookincollection&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code&gt;@bookinincollection&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code&gt;@bookininproceedings&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code&gt;@bookinproceedings&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code&gt;@bookthesis&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;La meilleure mani&#232;re de g&#233;rer ces entr&#233;es et de les pr&#233;senter comme sous-entr&#233;es bibliographiques d'une entr&#233;e plus globale, gr&#226;ce au m&#233;chanisme d'h&#233;ritage via le champ &lt;code&gt;crossref&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Il propose &#233;galement un champ &lt;code&gt;bookineditor&lt;/code&gt; pour pr&#233;ciser l'&#233;diteur du livre ancien lorsqu'il ne s'agit pas de l'auteur de l'entr&#233;e englobante.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Chargement&lt;/h2&gt;
&lt;p&gt;Le fait que le package propose un nouveau champ implique qu'il ne puisse pas &#234;tre charg&#233; comme un package LaTeX, via &lt;code&gt;\usepackage&lt;/code&gt; mais comme un style bibliographique &lt;i&gt;biblatex&lt;/i&gt;, c'est-&#224;-dire &#224; travers l'option &lt;code&gt;bibstyle&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Par cons&#233;quent &#224; la place de mettre&#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{biblatex-bookinarticle}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;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;\usepackage[citestyle=citationstyle,bibstyle=bookinother]{biblatex}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le package charge automatiquement le style bibliographique &lt;code&gt;verbose.bbx&lt;/code&gt;, (&lt;code&gt;bibstyle&lt;/code&gt;), ce qui implique que si vous utilisez les styles bibliographiques &lt;code&gt;verbose-xxx&lt;/code&gt; ou &lt;code&gt;authortitle-xxx&lt;/code&gt; vous n'avez pas de souci &#224; vous faire.&lt;/p&gt;
&lt;p&gt;Si vous utilisez un autre style bibliographique, utilisez &lt;i&gt;&lt;a href='https://geekographie.maieul.net/142' class=&#034;spip_in&#034;&gt;biblatex-multiple-dm&lt;/a&gt;&lt;/i&gt;. Cependant, n'oubliez pas que les styles des nouvelles entr&#233;es sont calqu&#233;s sur les styles des entr&#233;es standards de biblatex. Il vous faudra sans doute adapter les &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;drivers&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; bibliographiques des nouvelles entr&#233;es.&lt;/p&gt;
&lt;p&gt;Il vous faudra &#233;galement utiliser &lt;i&gt;&lt;a href='https://geekographie.maieul.net/142' class=&#034;spip_in&#034;&gt;biblatex-multiple-dm&lt;/a&gt;&lt;/i&gt; si vous souhaitez utiliser d'autres packages d&#233;finissant des nouveaux champs, tel que &lt;i&gt;&lt;a href='https://geekographie.maieul.net/134' class=&#034;spip_in&#034;&gt;biblatex-manuscripts-philology&lt;/a&gt;&lt;/i&gt;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Plus d'&#233;diteur.rice.s avec biblatex-morenames</title>
		<link>https://geekographie.maieul.net/197</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/197</guid>
		<dc:date>2016-04-11T06: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;Biblatex propose en standard un champ editor permettant de pr&#233;ciser l'&#233;diteur.rice d'un ouvrage (qu'il s'agisse d'un livre ancien ou d'un collectif). Il propose &#233;galement un champ editortype permettant de pr&#233;ciser la fonction &#233;ditorial de l'editor. Cependant le lien de l'editor avec l'entr&#233;e est fix&#233;e &#224; l'avance. Ainsi, pour une entr&#233;e @collection, editor d&#233;signe la personne qui a supervis&#233; la construction du volume. Cependant si ce volume s'inscrit dans un projet plus global, un&#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 en standard un champ &lt;code&gt;editor&lt;/code&gt; permettant de pr&#233;ciser l'&#233;diteur.rice d'un ouvrage (qu'il s'agisse d'un livre ancien ou d'un collectif). Il propose &#233;galement un champ &lt;code&gt;editortype&lt;/code&gt; permettant de pr&#233;ciser la fonction &#233;ditorial de l'&lt;code&gt;editor&lt;/code&gt;.
Cependant le &lt;i&gt;lien&lt;/i&gt; de l'&lt;code&gt;editor&lt;/code&gt; avec l'entr&#233;e est fix&#233;e &#224; l'avance.
Ainsi, pour une entr&#233;e &lt;code&gt;@collection&lt;/code&gt;, &lt;code&gt;editor&lt;/code&gt; d&#233;signe la personne qui a supervis&#233; la construction du volume. Cependant si ce volume s'inscrit dans un projet plus global, un &lt;code&gt;@mvcollection&lt;/code&gt; il n'est pas possible d'indiquer qui a supervis&#233; le projet global.&lt;/p&gt;
&lt;p&gt;D'autres cas peuvent se produire. Le package &lt;i&gt;biblatex-morenames&lt;/i&gt; propose donc de nouveaux champs d&#233;riv&#233;s du champs &lt;code&gt;editor&lt;/code&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Le champ &lt;code&gt;maineditor&lt;/code&gt;&lt;/h2&gt;&lt;h3 class=&#034;h3&#034;&gt; Signification&lt;/h3&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Pour une entr&#233;e &lt;code&gt;@collection&lt;/code&gt; ou &lt;code&gt;@incollection&lt;/code&gt;, le champs &lt;code&gt;editor&lt;/code&gt; d&#233;signe l'&#233;diteur du volume, alors que le champs &lt;code&gt;maineditor&lt;/code&gt; d&#233;signe l'&#233;diteur / superviseur pour l'entr&#233;e &lt;code&gt;@mvcollection&lt;/code&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;;&lt;/li&gt;&lt;li&gt; de m&#234;me pour une entr&#233;e &lt;code&gt;@inproceedings&lt;/code&gt; ou &lt;code&gt;@proceedings&lt;/code&gt; vis-&#224;-vis d'une entr&#233;e &lt;code&gt;@mvproceedings&lt;/code&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;;&lt;/li&gt;&lt;li&gt; de m&#234;me pour une entr&#233;e &lt;code&gt;@inreference&lt;/code&gt; ou &lt;code&gt;@reference&lt;/code&gt; vis-&#224;-vis d'une entr&#233;e &lt;code&gt;@mvreference&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&#034;h3&#034;&gt;H&#233;ritage&lt;/h3&gt;
&lt;p&gt;Il est conseill&#233; d'utiliser le m&#233;canisme d'h&#233;ritage de &lt;i&gt;biber&lt;/i&gt;. Le champ &lt;code&gt;maineditor&lt;/code&gt; d'une entr&#233;e &lt;code&gt;collection&lt;/code&gt; &#233;tant h&#233;rit&#233; du champ &lt;code&gt;editor&lt;/code&gt; de l'entr&#233;e &lt;code&gt;@mvcollection&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Le sch&#233;ma ci-dessus r&#233;sume l'h&#233;ritage.&lt;/p&gt;
&lt;div class='spip_document_201 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;27&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://geekographie.maieul.net/IMG/png/example-maineditor.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L500xH732/example-maineditor-2fb70.png?1760459239' width='500' height='732' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-201 '&gt;&lt;strong&gt;H&#233;ritage li&#233; &#224; &lt;code&gt;maineditor&lt;/code&gt;
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h3 class=&#034;h3&#034;&gt;Exemple&lt;/h3&gt;
&lt;p&gt;Soit les entr&#233;es bibliographiques suivantes&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;biblatex&#034;&gt;&lt;code&gt;@mvcollection{HistoireduChristianisme, Address = {Paris}, Editor = {Pietri, Charles and Pietri, Luce and Vauchez, Andr&#233; and Venard, Marc and Mayeur Jean-Marie}, Publisher = {Descl&#233;e}, Subtitle = {des origines &#224; nos jours}, Title = {Histoire du christianisme}, Year = {1992/2001}, Volumes = {20}} @collection{Pietri1998, Crossref = {HistoireduChristianisme}, Date-Added = {2014-11-05 12:44:24 +0000}, Date-Modified = {2014-11-13 20:10:06 +0000}, Editor = {Luce Pietri}, Title = {Les &#201;glises d'Orient et d'Occident}, Volume = {3}, Year = {1998}} @incollection{Maraval1998, Author = {Pierre Maraval}, Crossref = {Pietri1998}, Pages = {107-145}, Title = {La r&#233;ception de Chalc&#233;doine dans l'empire d'Orient}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Donne le r&#233;sultat suivant pour l'entr&#233;e &lt;code&gt;Maraval1998&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
Pierre &lt;span class=&#034;caps&#034;&gt;MARAVAL&lt;/span&gt;, &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;La re&#769;ception de Chalce&#769;doine dans l'empire d'Orient&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;, in&#160;: &lt;i&gt;Histoire du christianisme&lt;/i&gt;&#160;: &lt;i&gt;des origines a&#768; nos jours&lt;/i&gt;, sous la dir. de Charles &lt;span class=&#034;caps&#034;&gt;PIETRI&lt;/span&gt; et al., t. 3&#160;: &lt;i&gt;Les E&#769;glises d'Orient et d'Occident&lt;/i&gt;, sous la dir. de Luce &lt;span class=&#034;caps&#034;&gt;PIETRI&lt;/span&gt;, 20 t., Paris&#160;: Descle&#769;e, 1998, p. 107&#8211;145&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;h2&#034;&gt;Les champs &lt;code&gt;ineditor&lt;/code&gt; et &lt;code&gt;bookineditor&lt;/code&gt;&lt;/h2&gt;&lt;h3 class=&#034;h3&#034;&gt;Signification&lt;/h3&gt;
&lt;p&gt;Pour une entr&#233;e &lt;code&gt;@article&lt;/code&gt;, ou une entr&#233;e &lt;code&gt;@inbook&lt;/code&gt; entr&#233;e, le champ &lt;code&gt;ineditor&lt;/code&gt; signifie l'&#233;diteur d'une contribution individuelle, tandis que le champ &lt;code&gt;editor&lt;/code&gt; signifie l'&#233;diteur du volume global.&lt;/p&gt;
&lt;p&gt;Pour une entr&#233;e &lt;code&gt;@bookinbook&lt;/code&gt;, &lt;code&gt;bookineditor&lt;/code&gt; signifie l'&#233;diteur du livre (ancien) &#233;dit&#233;, tandis que &lt;code&gt;editor&lt;/code&gt; signifie l'&#233;diteur du volume global.&lt;/p&gt;
&lt;h3 class=&#034;h3&#034;&gt;Exemple&lt;/h3&gt;
&lt;p&gt;Le volume &lt;i&gt;Hagiographica Cypria&lt;/i&gt; du &lt;i&gt;Corpus Christianorum Series Graeca&lt;/i&gt; contient trois textes&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; deux &#233;dit&#233;s par Peter Van Deun (&lt;i&gt;Laudatio Barnabae&lt;/i&gt; et &lt;i&gt;&#928;&#949;&#961;&#943;&#959;&#948;&#959;&#953; &#954;&#945;&#8054; &#956;&#945;&#961;&#964;&#973;&#961;&#953;&#959;&#957; &#964;&#8182;&#957; &#7937;&#947;&#943;&#969;&#957; &#7936;&#960;&#959;&#963;&#964;&#972;&#955;&#969;&#957; &#914;&#945;&#961;&#952;&#959;&#955;&#959;&#956;&#945;&#943;&#959;&#965; &#954;&#945;&#8054; &#914;&#945;&#961;&#957;&#940;&#946;&#945;&lt;/i&gt;)&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;;&lt;/li&gt;&lt;li&gt; un &#233;dit&#233; par Jacques Noret (&lt;i&gt;Vita Auxibii&lt;/i&gt;).&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;On peut donc consid&#233;rer que Jacques Noret et Peter Van Deun sont les &#233;diteurs du volume. On va les mettre tous les deux dans le champs &lt;code&gt;editor&lt;/code&gt;, tandis que chacun d'entre eux sera mis dans le champ &lt;code&gt;bookineditor&lt;/code&gt; de leur entr&#233;es respectives.&lt;/p&gt;
&lt;p&gt;On peut donc proposer pour la &lt;i&gt;Laudatio Barnabae&lt;/i&gt; les entr&#233;es suivantes&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;biblatex&#034;&gt;&lt;code&gt;@bookinbook{BHG226, Author = {{Alexandre de Chypre}}, Crossref = {CCSG26}, Bookineditor = {Van Deun, Peter}, Pages = {83-122}, Title = {Laudatio Barnabae}
}
@book{CCSG26, Editor = {Peter Van Deun and Jacques Noret}, Number = {26}, Series = {Corpus Christianorum Series Graeca}, Title = {Hagiographica Cypria}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour l'entr&#233;e &lt;code&gt;BHG226&lt;/code&gt; on obtient le r&#233;sultat suivant&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;span class=&#034;caps&#034;&gt;ALEXANDRE&lt;/span&gt; &lt;span class=&#034;caps&#034;&gt;DE&lt;/span&gt; &lt;span class=&#034;caps&#034;&gt;CHYPRE&lt;/span&gt;, &lt;i&gt;Laudatio Barnabae&lt;/i&gt;, sous la dir. de Peter &lt;span class=&#034;caps&#034;&gt;VAN&lt;/span&gt; &lt;span class=&#034;caps&#034;&gt;DEUN&lt;/span&gt;, in&#160;: &lt;i&gt;Hagiographica Cypria&lt;/i&gt;, sous la dir. de Peter &lt;span class=&#034;caps&#034;&gt;VAN&lt;/span&gt; &lt;span class=&#034;caps&#034;&gt;DEUN&lt;/span&gt; et Jacques &lt;span class=&#034;caps&#034;&gt;NORET&lt;/span&gt;, Corpus Christianorum Series Graeca 26, p. 83&#8211;122&lt;/p&gt;
&lt;/blockquote&gt;&lt;h3 class=&#034;h3&#034;&gt;H&#233;ritage&lt;/h3&gt;
&lt;p&gt;L'h&#233;ritage est relativement classique, les champs &#233;tant simplement transmis de l'entr&#233;e principale &#224; l'entr&#233;e secondaire.&lt;/p&gt;
&lt;div class='spip_document_202 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;36&#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/L348xH704/example-bookineditor-354f1.png?1760449318' width='348' height='704' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-202 '&gt;&lt;strong&gt;H&#233;ritage li&#233; au champ &lt;code&gt;bookineditor&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;Chargement du package&lt;/h2&gt;
&lt;p&gt;Le package ajoutant de nouveau champs, il doit se charger comme un style bibliographique (&lt;code&gt;bibstyle&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[citestyle=citationstyle,bibstyle=morenames]{biblatex}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le package charge automatiquement le style bibliographique &lt;code&gt;verbose.bbx&lt;/code&gt;, (&lt;code&gt;bibstyle&lt;/code&gt;), ce qui implique que si vous utilisez les styles bibliographiques &lt;code&gt;verbose-xxx&lt;/code&gt; ou &lt;code&gt;authortitle-xxx&lt;/code&gt; vous n'avez pas de souci &#224; vous faire.&lt;/p&gt;
&lt;p&gt;Si vous utilisez un autre style bibliographique, utilisez &lt;i&gt;&lt;a href='https://geekographie.maieul.net/142' class=&#034;spip_in&#034;&gt;biblatex-multiple-dm&lt;/a&gt;&lt;/i&gt;. Il vous faudra sans doute adapter les &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;drivers&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; bibliographiques pour ajouter les nouveaux champs.&lt;/p&gt;
&lt;p&gt;Il vous faudra &#233;galement utiliser &lt;i&gt;&lt;a href='https://geekographie.maieul.net/142' class=&#034;spip_in&#034;&gt;biblatex-multiple-dm&lt;/a&gt;&lt;/i&gt; si vous souhaitez utiliser d'autres packages d&#233;finissant des nouveaux champs, tel que &lt;i&gt;&lt;a href='https://geekographie.maieul.net/134' class=&#034;spip_in&#034;&gt;biblatex-manuscripts-philology&lt;/a&gt;&lt;/i&gt;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Installer et utiliser BibLaTeX et Biber sous Windows avec MiKTeX</title>
		<link>https://geekographie.maieul.net/166</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/166</guid>
		<dc:date>2015-03-10T22:21:23Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Dans mon livre, je propose d'utiliser Biber plut&#244;t que BibTeX, en combinaison avec BibLaTeX. Malheureusement, Biber n'est pas install&#233; par d&#233;faut avec les versions simplifi&#233;es de MiKTeX, la distribution la plus r&#233;pandue de LaTeX sous Windows, et surtout n'est pas accessible par d&#233;faut dans TeXworks. Voici donc un petit tutoriel sur la mani&#232;re d'utiliser Biber sous Windows avec MiKTeX. Pr&#233;alable MikTeX est disponible en deux versions&#160;: une version &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;basic&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; et une version &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;compl&#232;te&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;.&#160;(&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Dans mon livre, je propose d'utiliser Biber plut&#244;t que BibTeX, en combinaison avec BibLaTeX. Malheureusement, Biber n'est pas install&#233; par d&#233;faut avec les versions simplifi&#233;es de MiKTeX, la distribution la plus r&#233;pandue de LaTeX sous Windows, et surtout n'est pas accessible par d&#233;faut dans TeXworks. Voici donc un petit tutoriel sur la mani&#232;re d'utiliser Biber sous Windows avec MiKTeX.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Pr&#233;alable&lt;/h2&gt;
&lt;p&gt;MikTeX est disponible en deux versions&#160;: une version &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;basic&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; et une version &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;compl&#232;te&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. Dans mon livre, la personne qui avait r&#233;dig&#233; le tutoriel d'installation proposait d'utiliser la version basic. C'&#233;tait malheureusement un mauvais choix, car cette version est trop basique, et ne contient pas certains outils indispensables&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;La prochaine version du livre ne devrait plus proposer cette installation.&#034; id=&#034;nh2-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;En th&#233;orie MikTeX propose un outils pour installer &#224; la volet les packages, au moment de la compilation. Cependant cela pose deux soucis&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; bien souvent l'installation &#224; la vol&#233;e est bloqu&#233;e par l'antivirus. Parfois on voit la fen&#234;tre demandant l'autorisation d'installation, mais cela ne fonctionne pas syst&#233;matiquement.
&lt;div class='spip_document_158 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;21&#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/L500xH307/fenetre-antivirus-1c287.png?1760462059' width='500' height='307' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-158 '&gt;&lt;strong&gt;Message d'antivirus
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;/li&gt;&lt;li&gt; de tout fa&#231;on Biber n'est pas un package, mais un logiciel. Par cons&#233;quent son installation &#224; la vol&#233;e ne peut pas se faire.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;La meilleure solution est donc d'utiliser le MiKTeX Package Manager, que vous trouverez normalement dans le dossier &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;MiKTeX&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; du menu &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;D&#233;marrer&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Installation d'un package / logiciel avec MiKTeX Package Manager&lt;/h2&gt;
&lt;p&gt;La fen&#234;tre du logiciel propose un liste des modules (Packages, classes, logiciels) disponibles, qu'ils soient d&#233;j&#224; install&#233;s ou non. La fen&#234;tre permet de rechercher par nom.&lt;/p&gt;
&lt;p&gt;Ainsi, nous pouvons rechercher le package BibLaTeX.&lt;/p&gt;
&lt;div class='spip_document_159 spip_document spip_documents spip_document_image spip_documents_left spip_document_left spip_document_avec_legende' data-legende-len=&#034;63&#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/L500xH335/package-manager-61892.png?1760462059' width='500' height='335' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-159 '&gt;&lt;strong&gt;Recherche d'un package dans le gestionnaire de Package MiKTeX
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Un clique droit sur le package permet de proc&#233;der &#224; l'installation.&lt;/p&gt;
&lt;div class='spip_document_160 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;37&#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/L171xH86/install-menu-de2ca.png?1760448829' width='171' height='86' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-160 '&gt;&lt;strong&gt;Acc&#232;s &#224; l'installation d'un package
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Un fois l'option choisi, il reste &#224; valider l'installation dans la fen&#234;tre qui s'ouvre, et &#224; attendre la fin du processus d'installation avant de clore la fen&#234;tre.&lt;/p&gt;
&lt;div class='spip_document_161 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;26&#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/L500xH321/installation-f1668.png?1760462060' width='500' height='321' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-161 '&gt;&lt;strong&gt;Installation d'un module
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Il faut proc&#233;der de la m&#234;me fa&#231;on pour Biber&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;J'imagine qu'il doit &#234;tre possible d'installer plusieurs modules &#224; la fois (&#8230;)&#034; id=&#034;nh2-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Configuration de TeXWorks&lt;/h2&gt;
&lt;p&gt;Une fois Biber install&#233;, il faut pouvoir l'utiliser.&lt;/p&gt;
&lt;p&gt;Biber est un logiciel (comme XeLaTeX ou pdfLaTeX). Il peut &#234;tre ex&#233;cut&#233; directement depuis TeXworks, mais pour cela il faut configurer ce dernier.&lt;/p&gt;
&lt;p&gt;Il faut se rendre dans le menu &#233;dition pour acc&#233;der aux pr&#233;f&#233;rences de TeXworks.&lt;/p&gt;
&lt;div class='spip_document_162 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;40&#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/L476xH319/config-texworks-0fb63.png?1760448829' width='476' height='319' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-162 '&gt;&lt;strong&gt;Acc&#233;der &#224; la configuration de TeXWorks
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;On se rendra ensuite dans l'onglet &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Composition&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;, et on ajoutera un nouveau outil de composition en cliquant sur le + de la sous-fen&#234;tre &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Outils de Traitement&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;&lt;/p&gt;
&lt;div class='spip_document_163 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;35&#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/L500xH418/composition-texworks-167c9.png?1760462060' width='500' height='418' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-163 '&gt;&lt;strong&gt;Panneau de pr&#233;f&#233;rence de TeXworks
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;On va donc ajouter l'acc&#232;s rapide &#224; Biber. Dans la fen&#234;tre qui appara&#238;t, mettre&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code&gt;biber&lt;/code&gt; comme nom de l'outil (c'est donc le nom qui appara&#238;tra dans TeXworks)&lt;/li&gt;&lt;li&gt; &lt;code&gt;biber&lt;/code&gt; comme nom de programme (c'est donc le programme que Texworks appellera)&lt;/li&gt;&lt;li&gt; &lt;code&gt;$basename&lt;/code&gt; parmi les arguments (cela signifiera que TeXworks indiquera &#224; biber de travailler sur le fichier courant, en supprimant l'extension).
&lt;div class='spip_document_164 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;30&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L476xH319/ajout-biber-texworks-4fe48.png?1760448829' width='476' height='319' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-164 '&gt;&lt;strong&gt;Ajout de Biber dans TeXworks
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;h2&#034;&gt;Appel &#224; biber dans TeXworks&lt;/h2&gt;
&lt;p&gt;Apr&#232;s avoir ferm&#233; toute les fen&#234;tres de configuration, vous verrez que le menu de composition propose d&#233;sormais un acc&#232;s &#224; biber.&lt;/p&gt;
&lt;div class='spip_document_165 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;31&#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/L242xH39/choix-logiciel-texworks-ddf26.png?1760448829' width='242' height='39' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-165 '&gt;&lt;strong&gt;Acc&#232;s &#224; biber depuis TeXworks
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Il vous suffira donc de l'appeler apr&#232;s l'ex&#233;cution de (X&lt;sup class=&#034;typo_exposants&#034;&gt;e&lt;/sup&gt;)LaTeX, puis de rappeler (X&lt;sup class=&#034;typo_exposants&#034;&gt;e&lt;/sup&gt;)LaTeX. &#201;videmment &#224; terme on pr&#233;f&#233;ra apprendre &#224; utiliser la ligne de commande pour utiliser LaTeXmk (voir Annexe de mon livre).&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb2-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;La prochaine version du livre ne &lt;a href=&#034;https://github.com/maieul/latexhumain/commit/9a60beffb7943480b6dede71997a002aab423ab9&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;devrait plus proposer cette installation&lt;/a&gt;.&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;J'imagine qu'il doit &#234;tre possible d'installer plusieurs modules &#224; la fois en s&#233;lectionnant dans la fen&#234;tre de listage, mais je n'ai pas essay&#233;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Gestions des &#339;uvres anonymes&#160;: m&#233;thode encore plus simple</title>
		<link>https://geekographie.maieul.net/150</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/150</guid>
		<dc:date>2014-10-27T14:55:57Z</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'avais propos&#233; dans un article comment g&#233;rer des &#339;uvres anonymes. J'avais &#233;galement indiqu&#233; dans un autre article comment proc&#233;der &#224; un tri des &#339;uvres anonymes. Les deux contributions avaient &#233;t&#233; fusionn&#233;es en un package. En voulant am&#233;liorer ce package, je me suis aper&#231;u qu'il y avait une m&#233;thode beaucoup plus simple. Explication. Pr&#233;ambule&#160;: &#224; quoi r&#233;pond cet article Cet article est une documentation technique du package biblatex-anonymous. Il permet de montrer comment il&#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'avais propos&#233; dans un article comment &lt;a href='https://geekographie.maieul.net/135' class=&#034;spip_in&#034;&gt;g&#233;rer des &#339;uvres anonymes&lt;/a&gt;. J'avais &#233;galement indiqu&#233; dans un autre article comment proc&#233;der &#224; &lt;a href='https://geekographie.maieul.net/92' class=&#034;spip_in&#034;&gt;un tri des &#339;uvres anonymes&lt;/a&gt;. Les deux contributions &lt;a href='https://geekographie.maieul.net/143' class=&#034;spip_in&#034;&gt;avaient &#233;t&#233; fusionn&#233;es en un package&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En voulant am&#233;liorer ce package, je me suis aper&#231;u qu'il y avait une m&#233;thode beaucoup plus simple. Explication.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Pr&#233;ambule&#160;: &#224; quoi r&#233;pond cet article&lt;/h2&gt;
&lt;p&gt;Cet article est une documentation technique du package &lt;a href=&#034;http://www.ctan.org/pkg/biblatex-anonymous&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;biblatex-anonymous&lt;/a&gt;. Il permet de montrer comment il fonctionne. Il peut vous &#234;tre utile pour cr&#233;er vos propre personnalisation. Cependant si vous souhaitez simplement g&#233;rer les &#339;uvres anonymes, utilisez plut&#244;t le package, directement.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Nos besoins&lt;/h2&gt;
&lt;p&gt;Nous voulons que pour certains types d'entr&#233;es seul le champ &lt;code&gt;author&lt;/code&gt; soit utilis&#233;&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Comme r&#233;f&#233;rent pour le classement bibliographique.&lt;/li&gt;&lt;li&gt; Comment auteur dans la version longue de la r&#233;f&#233;rence bibliographique.&lt;/li&gt;&lt;li&gt; Comme label pour les versions courtes de la r&#233;f&#233;rence bibliographique.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Autrement dit, nous ne voulons pas que dans les trois cas sus-mentionn&#233;, l'&#233;diteur ou le traducteur soit utilis&#233; si l'auteur est absent.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Des options bien utiles&lt;/h2&gt;
&lt;p&gt;Mes pr&#233;c&#233;dents contributions consistaient &#224; modifier chacun de ces points. Or il se trouve que &lt;i&gt;BibLaTeX&lt;/i&gt;, que je ne conna&#238;t d&#233;cid&#233;ment pas assez, propose nativement un outil pour g&#233;rer ces cas.&lt;/p&gt;
&lt;p&gt;Il s'agit des options&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code&gt;useeditor&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code&gt;usetranslator&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ces options peuvent &#234;tre d&#233;finie&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Au niveau du chargement de &lt;i&gt;biblatex&lt;/i&gt;, comme options de package.&lt;/li&gt;&lt;li&gt; Au niveau de chaque entr&#233;e, via le champ sp&#233;cifique &lt;code&gt;options&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Par type d'entr&#233;e, via &lt;code&gt;\ExecuteBibliographyOptions&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Les types d'entr&#233;es susceptibles de nous int&#233;ress&#233;es sont celles qui se r&#233;f&#233;rent &#224; des &#339;uvres anciennes, autrement o&#249; l'&lt;code&gt;editor&lt;/code&gt; est un &lt;i&gt;&#233;diteur&lt;/i&gt; et pas un &lt;i&gt;directeur&lt;/i&gt; de publication.&lt;/p&gt;
&lt;p&gt;Il s'agit donc des entr&#233;es de type&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; book&lt;/li&gt;&lt;li&gt; bookinbook&lt;/li&gt;&lt;li&gt; bookinarticle&lt;/li&gt;&lt;li&gt; bookinincollection&lt;/li&gt;&lt;li&gt; mvbook&lt;/li&gt;&lt;li&gt; inbook&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;On va donc r&#233;gler ces options &#224; &lt;code&gt;false&lt;/code&gt; pour ces deux entr&#233;es&#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;\ExecuteBibliographyOptions[book, bookinbook, bookinarticle, bookinincollection, mvbook,inbook]{useeditor=false,usetranslator=false}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 class=&#034;h2&#034;&gt;Un tri simplifi&#233;&lt;/h2&gt;
&lt;p&gt;Cette contribution ne rend pas obsol&#232;te la n&#233;cessit&#233; de &lt;a href='https://geekographie.maieul.net/92' class=&#034;spip_in&#034;&gt;d&#233;finir un sch&#233;ma de tri&lt;/a&gt; sp&#233;cifique pour classer les sources anonymes avant les sources non anonymes. Cependant cela simplifie le probl&#232;me, en &#233;vitant de s'&#233;loigner trop du mod&#232;le classique &lt;code&gt;nty&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Rappelons que ce sch&#233;ma de tri est ainsi d&#233;fini dans le fichier &lt;code&gt;biblatex.def&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;\DeclareSortingScheme{nty}{ \sort{ \field{presort} } \sort[final]{ \field{sortkey} } \sort{ \field{sortname} \field{author} \field{editor} \field{translator} \field{sorttitle} \field{title} } \sort{ \field{sorttitle} \field{title} } \sort{ \field{sortyear} \field{year} } \sort{ \field[padside=left,padwidth=4,padchar=0]{volume} \literal{0000} } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cela indique qu'on trie d'abord le champ &lt;code&gt;presort&lt;/code&gt;, puis le champ &lt;code&gt;sortkey&lt;/code&gt;. Si ce dernier champ est d&#233;fini, on arr&#234;te l&#224; le tri.&lt;/p&gt;
&lt;p&gt;Puis on tri le champ suivant&#160;: &lt;code&gt;sortname&lt;/code&gt;, ou &lt;i&gt;&#224; d&#233;faut&lt;/i&gt; &lt;code&gt;author&lt;/code&gt;, ou &lt;i&gt;&#224; d&#233;faut&lt;/i&gt; &lt;code&gt;editor&lt;/code&gt;, ou &lt;i&gt;&#224; d&#233;faut&lt;/i&gt; &lt;code&gt;translator&lt;/code&gt;, ou &lt;i&gt;&#224; d&#233;faut&lt;/i&gt; &lt;code&gt;sorttitle&lt;/code&gt;, ou &lt;i&gt;&#224; d&#233;faut&lt;/i&gt; &lt;code&gt;title&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ensuite on tri le champ &lt;code&gt;sorttitle&lt;/code&gt;, ou &lt;i&gt;&#224; d&#233;faut&lt;/i&gt;, &lt;code&gt;title&lt;/code&gt;. Vient apr&#232;s le tri de &lt;code&gt;sortyear&lt;/code&gt; ou &lt;i&gt;&#224; d&#233;faut&lt;/i&gt; de &lt;code&gt;year&lt;/code&gt;. Finalement on tri le champ &lt;code&gt;volume&lt;/code&gt;, complet&#233; &#224; gauche par des 0, ou &lt;i&gt;&#224; d&#233;faut&lt;/i&gt; de ce champ, on prend la valeur &lt;code&gt;0000&lt;/code&gt;. Ce qui signifie qu'un ouvrage avec un volume sera class&#233; apr&#232;s un ouvrage sans volume, toutes choses &#233;gales par ailleurs&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;Ce &#171;&#160;toutes choses &#233;gales par ailleurs&#160;&#187; n'arrive en r&#233;alit&#233; pas dans la (&#8230;)&#034; id=&#034;nh3-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Dans le cas qui nous int&#233;resse le fait d'avoir d&#233;sactiver, pour certain types d'entr&#233;es, les champs &lt;code&gt;editor&lt;/code&gt; et &lt;code&gt;translator&lt;/code&gt; am&#232;ne &#224; ce que pour ces entr&#233;es on trie &lt;code&gt;sortname&lt;/code&gt; ou &lt;i&gt;&#224; d&#233;faut&lt;/i&gt; par &lt;code&gt;author&lt;/code&gt; ou &lt;i&gt;&#224; d&#233;faut&lt;/i&gt; &lt;code&gt;sorttitle&lt;/code&gt;, ou &lt;i&gt;&#224; d&#233;faut&lt;/i&gt; &lt;code&gt;title&lt;/code&gt;. Autrement dit, pour ces types d'entr&#233;es, nous n'avons pas&#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;\sort{ \field{sortname} \field{author} \field{editor} \field{translator} \field{sorttitle} \field{title} }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;mais&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\sort{ \field{sortname} \field{author} \field{sorttitle} \field{title} }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour notre sch&#233;ma de tri &lt;code&gt;anonymous&lt;/code&gt;, nous souhaitons qu'en l'absence de &lt;code&gt;sortname&lt;/code&gt; ou de &lt;code&gt;author&lt;/code&gt; ou de &lt;code&gt;editor&lt;/code&gt; ou de &lt;code&gt;translator&lt;/code&gt;, ce ne soit ni la valeur de &lt;code&gt;sorttitle&lt;/code&gt; ni celle de &lt;code&gt;title&lt;/code&gt;, mais une valeur &#233;gale &#224; &lt;code&gt;0000&lt;/code&gt;, ce qui nous assure d'avoir les &#339;uvres anonymes avant celles ayant un auteur.&lt;/p&gt;
&lt;p&gt;Il nous faut donc remplacer&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\sort{ \field{sortname} \field{author} \field{editor} \field{translator} \field{sorttitle} \field{title} }&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=&#034;latex&#034;&gt;&lt;code&gt;\sort{ \field{sortname} \field{author} \field{editor} \field{translator} \literal{0000} }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ainsi notre tri &lt;code&gt;anonyme&lt;/code&gt; se d&#233;finit ainsi&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\DeclareSortingScheme{anonymous}{ \sort{ \field{presort} } \sort[final]{ \field{sortkey} } \sort{ \field{sortname} \field{author} \field{editor} \field{translator} \literal{0000} } \sort{ \field{sorttitle} \field{title} } \sort{ \field{sortyear} \field{year} } \sort{ \field[padside=left,padwidth=4,padchar=0]{volume} \literal{0000} } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il nous reste plus qu'&#224; passer l'option &lt;code&gt;sorting=anonyme&lt;/code&gt; lors du chargement de &lt;code&gt;biblatex&lt;/code&gt; ou &#224; notre commande &lt;code&gt;\printbibliography&lt;/code&gt;, la premi&#232;re option &#233;tant recommand&#233;e si on ne d&#233;sire pas avoir des bibliographies tri&#233;es selon des sch&#233;mas diff&#233;rents.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;&#201;diteur ou directeur&lt;/h2&gt;&lt;/i&gt;
&lt;p&gt;Bien que cela ne directement li&#233; &#224; notre probl&#232;me, on peut modifier les cha&#238;nes pour indiquer &lt;code&gt;&#233;diteur&lt;/code&gt; ou &lt;code&gt;directeur&lt;/code&gt; selon le cas. Mais plut&#244;t que d'utiliser des test bool&#233;ens compliqu&#233;s, il suffit de faire&#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;\DefineBibliographyStrings{french}{% byeditor = % {\ifuseeditor{dir\adddotspace}{&#233;d\adddot}}, }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ces deux morceaux de codes se retrouvent tels quels dans la version 2.0.0 du package &lt;a href=&#034;http://www.ctan.org/pkg/biblatex-anonymous&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;code&gt;biblatex-anonymous&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Des vrais &lt;i&gt;op. cit.&lt;/h2&gt;&lt;/i&gt;
&lt;p&gt;En revanche si j'utilise la contribution pour avoir des &lt;a href='https://geekographie.maieul.net/47' class=&#034;spip_in&#034;&gt;vrais &lt;i&gt;op. cit.&lt;/i&gt;&lt;/a&gt;, j'ai un probl&#232;me&#160;: puisqu'il n'y a pas de &lt;code&gt;LabelName&lt;/code&gt; aux &#339;uvres anonymes, toutes les &#339;uvres anonymes sont consid&#233;r&#233;es comme du m&#234;me auteur, et donc la commande &lt;code&gt;\ifsingletitle&lt;/code&gt; renvoie invariablement &lt;code&gt;true&lt;/code&gt;, ce qui fait que l'on ne peut distinguer les &#339;uvres anonymes, puisqu'elles sont toutes r&#233;sum&#233;es en &lt;i&gt;op. cit.&lt;/i&gt; sans que le titre soit affich&#233;s.&lt;/p&gt;
&lt;p&gt;C'est pourquoi, on lieu de red&#233;finir la macro &lt;code&gt;cite:title&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On va pour cela utiliser le package &lt;code&gt;xpatch&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;\xpatchbibmacro% {cite:title}% {\printfield[citetitle]{labeltitle}}% {\ifboolexpr{test{\ifsingletitle} and not test {\ifnameundef{labelname}}}{}{\printfield[citetitle]{labeltitle}}}% {}% {}%&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;D'un point de vue technique, ces r&#233;glages influent sur le r&#233;sultat renvoy&#233; par &lt;code&gt;\ifuseeditor{&lt;oui&gt;}{&lt;non&gt;}&lt;/code&gt; et &lt;code&gt;\ifusetranslator{&lt;oui&gt;}{&lt;non&gt;}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Les styles standards de &lt;i&gt;BibLaTeX&lt;/i&gt; appellent ces commandes dans les macros de type &lt;code&gt;author/editor&lt;/code&gt; mais pas dans celles de types &lt;code&gt;byauthor/byeditor&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ces r&#233;glages changent aussi le fonctionnement de biber.&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;Ce &#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;toutes choses &#233;gales par ailleurs&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; n'arrive en r&#233;alit&#233; pas dans la pratique.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Entr&#233;es @inbook, crossref et formes abr&#233;g&#233;es</title>
		<link>https://geekographie.maieul.net/140</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/140</guid>
		<dc:date>2014-05-08T13:17: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;Lo&#239;s a pos&#233; une question relative &#224; l'usage des formes abr&#233;g&#233;es avec les entr&#233;es de type @inbook. Il s'agissait, lorsqu'on l'on cite une sous-entr&#233;e @inbook d'une entr&#233;e @book d&#233;j&#224; cit&#233;e, d'afficher la forme latine abr&#233;g&#233;e de l'entr&#233;e @book. Le probl&#232;me se r&#233;sout acc&#232;s rapidement, une fois que l'on sait o&#249; chercher. Je vous propose donc ici la solution. Le probl&#232;me Soit les entr&#233;es suivantes&#160;: @bookGenette1992, Editor = G&#233;rard Genette, Location = Paris, Pagetotal = 245,&#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;Lo&#239;s a pos&#233; &lt;a href='https://geekographie.maieul.net/70#comment1214' class=&#034;spip_in&#034;&gt;une question relative &#224; l'usage des formes abr&#233;g&#233;es avec les entr&#233;es de type &lt;code&gt;@inbook&lt;/code&gt;&lt;/a&gt;. Il s'agissait, lorsqu'on l'on cite une sous-entr&#233;e &lt;code&gt;@inbook&lt;/code&gt; d'une entr&#233;e &lt;code&gt;@book&lt;/code&gt; d&#233;j&#224; cit&#233;e, d'afficher la forme latine abr&#233;g&#233;e de l'entr&#233;e &lt;code&gt;@book&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Le probl&#232;me se r&#233;sout acc&#232;s rapidement, une fois que l'on sait o&#249; chercher. Je vous propose donc ici la solution.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Le probl&#232;me&lt;/h2&gt;
&lt;p&gt;Soit les entr&#233;es suivantes&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;bibtex&#034;&gt;&lt;code&gt;@book{Genette1992, Editor = {G&#233;rard Genette}, Location = {Paris}, Pagetotal = {245}, Publisher = {Seuil}, Title = {Esth&#233;tique et po&#233;tique}, Year = {1992}} @inbook{Dickie1992, Author = {George Dickie}, Crossref = {Genette1992}, Pages = {9-32}, Title = {D&#233;finir l'art}, Titleaddon = {1973}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On suppose que la gestion des crossref se fait avec Biber.&lt;/p&gt;
&lt;p&gt;Soit, en utilisant le style de citation &lt;code&gt;verbose-trad2&lt;/code&gt;, les appels suivants&#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;\cite{Genette1992} \cite[24]{Dickie1992}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Avec les styles par d&#233;fauts on obtient le r&#233;sultat suivant&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
G&#233;rard Genette, ed. &lt;i&gt;Esth&#233;tique et po&#233;tique&lt;/i&gt;. Paris&#160;: Seuil, 1992. 245 pp.&lt;/p&gt;
&lt;p&gt;George Dickie. &#8220;D&#233;finir l'art&#8221;. 1973. In&#160;: &lt;i&gt;Esth&#233;tique et po&#233;tique&lt;/i&gt;. Ed. by G&#233;rard Genette. Paris&#160;: Seuil, 1992, pp. 9&#8211;32, p. 24&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Le souhait de Lo&#239;s &#233;tait d'obtenir&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
G&#233;rard Genette, ed. &lt;i&gt;Esth&#233;tique et po&#233;tique&lt;/i&gt;. Paris&#160;: Seuil, 1992. 245 pp.&lt;/p&gt;
&lt;p&gt;George Dickie. &#8220;D&#233;finir l'art&#8221;. 1973. In&#160;: &lt;i&gt;ibid&lt;/i&gt; p. 24&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;h2&#034;&gt;Un probl&#232;me d'analyse&lt;/h2&gt;
&lt;p&gt;Il faut bien comprendre que lorsque le champ &lt;code&gt;crossref&lt;/code&gt; est utilis&#233;, cela ne veut pas dire, &lt;i&gt;par d&#233;faut&lt;/i&gt;, que lors de l'affichage d'une entr&#233;e-fille on renvoie vers l'entr&#233;e m&#232;re, mais bien que les champs de l'entr&#233;e-m&#232;re sont recopi&#233;s dans l'entr&#233;e-fille. C'est ce qui permet notamment de faire passer, &lt;a href='https://geekographie.maieul.net/43' class=&#034;spip_in&#034;&gt;avec biber&lt;/a&gt; et non pas avec BibTeX, le champ &lt;code&gt;title&lt;/code&gt; de l'entr&#233;e-m&#232;re vers &lt;code&gt;booktitle&lt;/code&gt; de l'entr&#233;e-fille&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ce ph&#233;nom&#232;ne de transfert peut &#234;tre &lt;a href='https://geekographie.maieul.net/76' class=&#034;spip_in&#034;&gt;visualis&#233;&lt;/a&gt; ou bien constat&#233; en ouvrant le fichier &lt;code&gt;.bbl&lt;/code&gt; produit par biber. Dans notre cas, on y voit la description de l'entr&#233;e &lt;code&gt;Dickie1992&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;\entry{Dickie1992}{inbook}{} \name{labelname}{1}{}{% {{hash=fef82f30fe2bfa35216fc92c560ae872}{Dickie}{D\bibinitperiod}{George}{G\bibinitperiod}{}{}{}{}}% } \name{author}{1}{}{% {{hash=fef82f30fe2bfa35216fc92c560ae872}{Dickie}{D\bibinitperiod}{George}{G\bibinitperiod}{}{}{}{}}% } \name{editor}{1}{}{% {{hash=a7761d3fd65ea36d5c84d114d588896b}{Genette}{G\bibinitperiod}{G&#233;rard}{G\bibinitperiod}{}{}{}{}}% } \list{location}{1}{% {Paris}% } \list{publisher}{1}{% {Seuil}% } \strng{namehash}{fef82f30fe2bfa35216fc92c560ae872} \strng{fullhash}{fef82f30fe2bfa35216fc92c560ae872} \field{sortinit}{D} \field{labeltitle}{D&#233;finir l'art} \field{booktitle}{Esth&#233;tique et po&#233;tique} \strng{crossref}{Genette1992} \field{pagetotal}{245} \field{title}{D&#233;finir l'art} \field{titleaddon}{1973} \field{year}{1992} \field{pages}{9\bibrangedash 32} \endentry&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le comportement par d&#233;faut ne pouvait donc pas &#234;tre celui souhait&#233; par Lo&#239;s, puisque ce serait aller &#224; l'encontre la logique &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;de base&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; des &lt;code&gt;crossref&lt;/code&gt;. Cependant on peut ruser.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;La solution&lt;/h2&gt;&lt;h3 class=&#034;h3&#034;&gt;Le style par d&#233;faut&lt;/h3&gt;
&lt;p&gt;J'explique dans &lt;a href='https://geekographie.maieul.net/95' class=&#034;spip_in&#034;&gt;mon livre&lt;/a&gt; que l'affichage final des entr&#233;es se fait &#224; l'aide de &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;drivers&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; bibliographique, par type d'entr&#233;e&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;Sauf cas d'alias entre types d'entr&#233;e.&#034; id=&#034;nh4-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;On &lt;a href='https://geekographie.maieul.net/42' class=&#034;spip_in&#034;&gt;trouve assez facilement le fichier les contenant&lt;/a&gt;, en suivant les renvois entre fichiers (voir &lt;a href='https://geekographie.maieul.net/126' class=&#034;spip_in&#034;&gt;mon intervention dans les grottes&lt;/a&gt;). Dans le cas des styles de la famille &lt;code&gt;verbose&lt;/code&gt;, les drivers sont pr&#233;sents dans le fichier &lt;code&gt;standard.bbx&lt;/code&gt;. Voici celui pour les entr&#233;es de type &lt;code&gt;@inbook&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;\DeclareBibliographyDriver{inbook}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/translator+others}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{in:}% \usebibmacro{bybookauthor}% \newunit\newblock \usebibmacro{maintitle+booktitle}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \printfield{edition}% \newunit \iffieldundef{maintitle} {\printfield{volume}% \printfield{part}} {}% \newunit \printfield{volumes}% \newunit\newblock \usebibmacro{series+number}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{publisher+location+date}% \newunit\newblock \usebibmacro{chapter+pages}% \newunit\newblock \iftoggle{bbx:isbn} {\printfield{isbn}} {}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \usebibmacro{addendum+pubstate}% \setunit{\bibpagerefpunct}\newblock \usebibmacro{pageref}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{finentry}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 class=&#034;h3&#034;&gt;Sa red&#233;finition&lt;/h3&gt;
&lt;p&gt;C'est ce driver que nous allons red&#233;finir, dans notre pr&#233;ambule.&lt;/p&gt;
&lt;p&gt;Dans notre affichage final, la partie que nous souhaitons modifier est comprise entre le &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;in&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; (exclu) et le num&#233;ro de page (exclu). Cela correspond, dans le driver &#224; la partie compris entre le &lt;code&gt;\usebibmacro{in:}&lt;/code&gt; (l. 12) et le &lt;code&gt;\usebibmacro{chapter+pages}&lt;/code&gt; (l. 34).&lt;/p&gt;
&lt;p&gt;Par ailleurs, il est possible d'avoir des entr&#233;es &lt;code&gt;@inbook&lt;/code&gt; sans utilisation du crossref (m&#234;me si c'est &#224; d&#233;conseiller). C'est pourquoi nous allons conserver ce code dans une macro adhoc, que l'on appellera &lt;code&gt;inbookwithoutcrossref&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;\newbibmacro{inbookwithoutcrossref}{% \usebibmacro{bybookauthor}% \newunit\newblock \usebibmacro{maintitle+booktitle}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \printfield{edition}% \newunit \iffieldundef{maintitle} {\printfield{volume}% \printfield{part}} {}% \newunit \printfield{volumes}% \newunit\newblock \usebibmacro{series+number}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{publisher+location+date}% }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour afficher l'entr&#233;e m&#232;re sous une forme abr&#233;g&#233;e, nous utilisons tout simplement une commande &lt;code&gt;\cite&lt;/code&gt;, que nous encapsulons dans une macro &lt;code&gt;inbookwithcrossref&lt;/code&gt;. Nous passons comme argument &#224; la commande la valeur du champ &lt;code&gt;crossref&lt;/code&gt; de l'entr&#233;e-fille, qui correspond &#224; la clef bibliographique de l'entr&#233;e-m&#232;re. Cette valeur est r&#233;cup&#233;r&#233;e via &lt;code&gt;\thefield{crossref}&lt;/code&gt;.
Cela donne donc&#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;\newbibmacro{inbookwithcrossref}{% \cite{\thefield{crossref}}% }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il ne nous reste plus qu'&#224; supprimer les lignes 13 &#224; 33 de notre driver, en appelant &#224; la place la macro &lt;code&gt;inbookwithcrossref&lt;/code&gt; ou &lt;code&gt;inbookwithoutcrossref&lt;/code&gt;, selon que le champ &lt;code&gt;crossref&lt;/code&gt; est d&#233;fini ou non, le test se faisant avec la commande &lt;code&gt;\iffieldundef&lt;/code&gt;. Ce qui donne la d&#233;finition suivante de notre driver&#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;\DeclareBibliographyDriver{inbook}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/translator+others}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{in:}% \iffieldundef{crossref}{\usebibmacro{inbookwithoutcrossref}}{\usebibmacro{inbookwithcrossref}}% \newunit\newblock \usebibmacro{chapter+pages}% \newunit\newblock \iftoggle{bbx:isbn} {\printfield{isbn}} {}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \usebibmacro{addendum+pubstate}% \setunit{\bibpagerefpunct}\newblock \usebibmacro{pageref}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{finentry}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous constatez la ligne modifi&#233;e&#160;: l.&#160;13.&lt;/p&gt;
&lt;p&gt;Le r&#233;sultat &#224; l'affichage est le suivant&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
G&#233;rard Genette, ed. &lt;i&gt;Esth&#233;tique et po&#233;tique&lt;/i&gt;. Paris&#160;: Seuil, 1992. 245 pp.&lt;/p&gt;
&lt;p&gt;George Dickie. &#8220;D&#233;finir l'art&#8221;. 1973. In&#160;: ibid., p. 24, pp. 9&#8211;32, p. 24&lt;/p&gt;
&lt;/blockquote&gt;&lt;h3 class=&#034;h3&#034;&gt;Affinage&lt;/h3&gt;
&lt;p&gt;La solution est presque parfaite, mais vous pouvez vous rendre compte que le num&#233;ro de page est affich&#233;e deux fois. La raison est assez subtile&#160;: lors de l'utilisation de la commande &lt;code&gt;\cite&lt;/code&gt; dans le driver bibliographique, pour appeler l'entr&#233;e-m&#232;re, le champ &lt;code&gt;postnote&lt;/code&gt; est r&#233;cup&#233;r&#233; du contexte, c'est &#224; dire qu'il s'agit du champ &lt;code&gt;postnote&lt;/code&gt; de l'entr&#233;e-fille. La solution consiste &#224; vider ce champ &#224; l'int&#233;rieur de la macro &lt;code&gt;inbookwithcrossref&lt;/code&gt;, avec la commande &lt;code&gt;\clearfield&lt;/code&gt;. Il faut faire de m&#234;me pour le champ &lt;code&gt;prenote&lt;/code&gt;. Ce qui donne&#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;\newbibmacro{inbookwithcrossref}{% \clearfield{prenote}% \clearfield{postnote}% \cite{\thefield{crossref}}% }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Notre r&#233;sultat final est alors correct&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
G&#233;rard Genette, ed. &lt;i&gt;Esth&#233;tique et po&#233;tique&lt;/i&gt;. Paris&#160;: Seuil, 1992. 245 pp.&lt;/p&gt;
&lt;p&gt;George Dickie. &#8220;D&#233;finir l'art&#8221;. 1973. In&#160;: ibid., pp. 9&#8211;32, p. 24&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Vous constaterez ais&#233;ment, en faisant des tests, que ma solution fonctionne aussi avec des abr&#233;viations de type &lt;i&gt;op. cit.&lt;/i&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb4-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh4-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 4-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Sauf cas d'alias entre types d'entr&#233;e.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>G&#233;rer des champs suppl&#233;mentaires</title>
		<link>https://geekographie.maieul.net/109</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/109</guid>
		<dc:date>2013-03-04T23:16:17Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Les champs par d&#233;faut de BibLaTeX sont en g&#233;n&#233;ral largement suffisants. Cependant on pourrait avoir envie d'en utiliser d'autres, personnalis&#233;s. Voici un petit tutoriel sur le sujet. Le probl&#232;me Il est fr&#233;quent dans certain domaines d'avoir des bibliographies de r&#233;f&#233;rence, attribuant un code &#224; des textes anciens. Ainsi pour la litt&#233;rature chr&#233;tienne ancienne nous avons&#160;: Bibliotheca hagiographica graeca (&lt;span class=&#034;caps&#034;&gt;BHG&lt;/span&gt;) Bibliotheca hagiographica latina (&lt;span class=&#034;caps&#034;&gt;BHL&lt;/span&gt;) Clavis Patrum Graecorum (&lt;span class=&#034;caps&#034;&gt;CPG&lt;/span&gt;) Clavis&#160;(&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Les champs par d&#233;faut de &lt;i&gt;BibLaTeX&lt;/i&gt; sont en g&#233;n&#233;ral largement suffisants. Cependant on pourrait avoir envie d'en utiliser d'autres, personnalis&#233;s. Voici un petit tutoriel sur le sujet.&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;Il est fr&#233;quent dans certain domaines d'avoir des bibliographies de r&#233;f&#233;rence, attribuant un code &#224; des textes anciens. Ainsi pour la litt&#233;rature chr&#233;tienne ancienne nous avons&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;i&gt;Bibliotheca hagiographica graeca&lt;/i&gt; (&lt;span class=&#034;caps&#034;&gt;BHG&lt;/span&gt;)&lt;/li&gt;&lt;li&gt; &lt;i&gt;Bibliotheca hagiographica latina&lt;/i&gt; (&lt;span class=&#034;caps&#034;&gt;BHL&lt;/span&gt;)&lt;/li&gt;&lt;li&gt; &lt;i&gt;Clavis Patrum Graecorum&lt;/i&gt; (&lt;span class=&#034;caps&#034;&gt;CPG&lt;/span&gt;)&lt;/li&gt;&lt;li&gt; &lt;i&gt;Clavis Patrum Latinorum&lt;/i&gt; (&lt;span class=&#034;caps&#034;&gt;CPL&lt;/span&gt;)&lt;/li&gt;&lt;li&gt; &lt;i&gt;Clavis Apocryphorum Novi Testamenti&lt;/i&gt; (&lt;span class=&#034;caps&#034;&gt;CANT&lt;/span&gt;)&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Il est parfois plus simple de retenir un texte par son num&#233;ro dans l'une de ces &lt;i&gt;claves&lt;/i&gt; plut&#244;t que par son titre complet. On peut donc souhaiter afficher ce num&#233;ro dans la bibliographie.&lt;/p&gt;
&lt;p&gt;Une solution possible est d'utiliser le champ &lt;code&gt;addendum&lt;/code&gt;. Cependant, on ne garanti pas ainsi une pr&#233;sentation uniforme, notamment lorsqu'un texte se voit attribuer plusieurs de ces num&#233;ros.&lt;/p&gt;
&lt;p&gt;Une autre solution est de cr&#233;er des champs sp&#233;ciaux, puis de les utiliser. C'est ce que je vais faire ici&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;Je conseille d'avoir lu les chapitres de mon livre concernant la (&#8230;)&#034; id=&#034;nh5-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Notre exemple&lt;/h2&gt;
&lt;p&gt;Il s'agit des &lt;i&gt;Actes de Barnab&#233;&lt;/i&gt; qui portent le num&#233;ro &lt;span class=&#034;caps&#034;&gt;CANT&lt;/span&gt;&#160;285 et le num&#233;ro &lt;span class=&#034;caps&#034;&gt;BHG&lt;/span&gt;&#160;225. En base de donn&#233;e, nous le stockons ainsi&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;bibtex&#034;&gt;&lt;code&gt;@bookinbook{BHG225, Bhg = {225}, Cant = {285}, Editor = {Maximilien Bonnet}, Booktitle={Acta Apostolorum Apocrypha}, Year={1903}, Volume={2.2}, Publisher={Hermann Mendelssohn}, Location={Leipzig}, Pages = {292-302}, Title = {Acta Barnabae}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En l'absence de tout r&#233;glage pour les champs &lt;code&gt;bhg&lt;/code&gt; et &lt;code&gt;cant&lt;/code&gt;, nous obtenons l'affichage suivant&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Acta Barnabae&lt;/i&gt;, in &lt;i&gt;Acta Apostolorum Apocrypha&lt;/i&gt;, &#233;d. Maximilien Bonnet, t. 2.2, Leipzig&#160;: Hermann Mendelssohn, 1903, p. 292&#8211;302&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nous souhaiterions obtenir quelque chose de la forme&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Acta Barnabae&lt;/i&gt;, in &lt;i&gt;Acta Apostolorum Apocrypha&lt;/i&gt;, &#233;d. Maximilien Bonnet, t. 2.2, Leipzig&#160;: Hermann Mendelssohn, 1903, p. 292&#8211;302 (&lt;span class=&#034;caps&#034;&gt;BHG&lt;/span&gt; 225&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; &lt;span class=&#034;caps&#034;&gt;CANT&lt;/span&gt; 285)&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;h2&#034;&gt;Transf&#233;rer les champs&lt;/h2&gt;
&lt;p&gt;Il faut savoir que s'il est possible de d&#233;clarer des champs non standards dans &lt;i&gt;biblatex&lt;/i&gt;, il n'est pas possible de les utiliser tels quels. Ainsi, il est pour le moment impossible d'avoir une commande de type &lt;code&gt;\printfield{bhg}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;D&#232;s lors la solution pour se servir des champs non standards est de &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;transf&#233;rer&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; leurs valeurs vers un champ standard. Ce champ pourrait &#234;tre par exemple un des champs libre de type &lt;code&gt;userb&lt;/code&gt;. Pour ma part, j'ai choisi de les transf&#233;rer mes champs vers le champs &lt;code&gt;addendum&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pour comprendre le principe du transfert, il faut se rappeler que &lt;i&gt;biblatex&lt;/i&gt; ne lit pas le fichier &lt;code&gt;.bib&lt;/code&gt; directement, mais qu'il lit le fichier &lt;code&gt;.bbl&lt;/code&gt; produit par Biber &#224; partir du fichier &lt;code&gt;.bib&lt;/code&gt;. Par exemple, dans le cas pr&#233;sent, notre fichier &lt;code&gt;.bbl&lt;/code&gt; contient l'entr&#233;e&#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;\entry{BHG220}{bookinbook}{} \name{labelname}{1}{}{% {{hash=7cbcda25a11c69ef442ceab55eea1d41}{Bonnet}{B\bibinitperiod}{Maximilien}{M\bibinitperiod}{}{}{}{}}% } \name{editor}{1}{}{% {{hash=7cbcda25a11c69ef442ceab55eea1d41}{Bonnet}{B\bibinitperiod}{Maximilien}{M\bibinitperiod}{}{}{}{}}% } \list{location}{1}{% {Leipzig}% } \list{publisher}{1}{% {Hermann Mendelssohn}% } \strng{namehash}{7cbcda25a11c69ef442ceab55eea1d41} \strng{fullhash}{7cbcda25a11c69ef442ceab55eea1d41} \field{sortinit}{B} \field{labeltitle}{Acta Barnabae} \field{booktitle}{Acta Apostolorum Apocrypha} \field{pubstate}{submitted} \field{title}{Acta Barnabae} \field{usera}{1} \field{volume}{2.2} \field{year}{1903} \field{pages}{292\bibrangedash 302}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Comme vous pouvez le voir, les entr&#233;es sont format&#233;es selon une norme propre &#224; Biber, que &lt;i&gt;Biblatex&lt;/i&gt; va pouvoir lire. L'enjeu pour nous est de rajouter une ligne &lt;code&gt;\field{addendum}{BHG 225 ; CANT 285}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pour cela nous allons d&#233;clarer un mappage&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;Si quelqu'un trouve une meilleure traduction de &#171;&#160;mapping&#160;&#187;, je suis preneur.&#034; id=&#034;nh5-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; bibliographique, c'est &#224; dire une mani&#232;re de faire correspondre des champs d'une source (par exemple un fichier &lt;code&gt;.bib&lt;/code&gt; ou un &lt;span class=&#034;caps&#034;&gt;BDD&lt;/span&gt; Zotero) &#224; des champs du fichier &lt;code&gt;.bbl&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pour ce faire, on utilise la commande &lt;code&gt;\DeclareSourcemap&lt;/code&gt;. Celle-ci contient une ou plusieurs commandes &lt;code&gt;\maps&lt;/code&gt;, qui indique un mappage. On peut pr&#233;ciser dans les options de la commande &lt;code&gt;\map&lt;/code&gt; les conditions d'applications du mappage. Cela peut-&#234;tre par exemple le type de fichier source (bibtex, zotero etc.) ou bien le type d'entr&#233;e bibliographique (&lt;code&gt;@article&lt;/code&gt;,&lt;code&gt;@book&lt;/code&gt; etc.).&lt;/p&gt;
&lt;p&gt;Chaque commande &lt;code&gt;\maps&lt;/code&gt; contient une ou plusieurs commandes &lt;code&gt;\map&lt;/code&gt;, lues dans l'ordre d'apparition, et qui pr&#233;cisent la mani&#232;re dont des champs sont transform&#233;s. Chaque commande &lt;code&gt;\map&lt;/code&gt; contient des commandes &lt;code&gt;\step&lt;/code&gt;, qui indiquent les &#233;tapes pour proc&#233;der &#224; la transformation du champ.&lt;/p&gt;
&lt;p&gt;Tout ceci semble bien abscon, un exemple sera plus parlant. Ainsi je vous propose d'analyser le code suivant, que je met dans mon 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;\DeclareSourcemap{ \maps[datatype=bibtex]{ \map[overwrite]{ \step[fieldsource=bhg,final] \step[fieldset=addendum,fieldvalue={BHG~},append] \step[fieldset=addendum,origfieldval, append] } \map[overwrite]{ \step[fieldsource=cpg,final] \step[fieldset=addendum,fieldvalue={CPG~},append] \step[fieldset=addendum,origfieldval, append] } \map[overwrite]{ \step[fieldsource=bhl,final] \step[fieldset=addendum,fieldvalue={BHL~},append] \step[fieldset=addendum,origfieldval, append] } \map[overwrite]{ \step[fieldsource=cpl,final] \step[fieldset=addendum,fieldvalue={CPL~},append] \step[fieldset=addendum,origfieldval, append] } \map[overwrite]{ \step[fieldsource=cant,final] \step[fieldset=addendum,fieldvalue={CANT~},append] \step[fieldset=addendum,origfieldval, append] } } }&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;1&#160;: la commande pour d&#233;clarer des mappages&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Il existe des commandes sp&#233;cifiques si vous souhaitez d&#233;clarer le mappage (&#8230;)&#034; id=&#034;nh5-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;.&lt;/li&gt;&lt;li&gt; L.&#160;2&#160;: la commande pour d&#233;clarer un mappage particulier, ici dans le cas o&#249; la source est au format &lt;code&gt;.bib&lt;/code&gt; (bibtex).&lt;/li&gt;&lt;li&gt; L.&#160;3, 8, 13, 18, 23&#160;: les r&#232;gles de mappage, &#224; lire dans l'ordre. L'option &lt;code&gt;overwrite&lt;/code&gt; indique que les r&#232;gles peuvent modifier des valeurs de champ d&#233;j&#224; d&#233;finies. Analysons les lignes 4, 5, 6, le principe est le m&#234;me pour les lignes 9, 10, 11&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; 14, 15, 16&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; 19, 20, 21&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; 24, 25, 26.&lt;/li&gt;&lt;li&gt; L.&#160;4 On indique via &lt;code&gt;fieldsource=bhg&lt;/code&gt; que l'on s'int&#233;resse au champ &lt;code&gt;bhg&lt;/code&gt; de la source (c'est &#224; dire dans notre cas, du fichier &lt;code&gt;.bib&lt;/code&gt;). Le &lt;code&gt;final&lt;/code&gt; indique que si ce champ est absent, on arr&#234;te l&#224; cette r&#232;gle de mappage, pour passer &#224; la commande &lt;code&gt;\map&lt;/code&gt; suivante.&lt;/li&gt;&lt;li&gt; L.&#160;5 On ajoute &lt;code&gt;BHG~&lt;/code&gt; dans le champ &lt;code&gt;addendum&lt;/code&gt;, &#224; la suite du contenu d&#233;j&#224; existant (option &lt;code&gt;append&lt;/code&gt;).&lt;/li&gt;&lt;li&gt; L.&#160;6 Dans le champ &lt;code&gt;addendum&lt;/code&gt;, &#224; la suite du contenu d&#233;j&#224; existant, on ajoute le contenu du champ indiqu&#233; par le pr&#233;c&#233;dent &lt;code&gt;fieldsource&lt;/code&gt;, c'est &#224; dire dans notre cas du champ &lt;code&gt;bhg&lt;/code&gt;. C'est l'option &lt;code&gt;origfieldval&lt;/code&gt; qui nous indique d'aller chercher le contenu dans le pr&#233;c&#233;dent champ indiqu&#233; par &lt;code&gt;fieldsource&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Si j'ai &#233;t&#233; clair, vous devriez comprendre qu'au final, notre champ addendum contiendra&#160;: &lt;code&gt;BHG~225CANT~285&lt;/code&gt;. Si nous avions en outre d&#233;fini un champ &lt;code&gt;addendum&lt;/code&gt; dans notre fichier &lt;code&gt;.bib&lt;/code&gt;, son contenu sera mis au d&#233;but du champ &lt;code&gt;addendum&lt;/code&gt; du fichier &lt;code&gt;.bbl&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;On souhaiterais maintenant ins&#233;rer des points-virgules entre chaque entr&#233;e. On pourrait &#234;tre tenter de modifier ainsi les lignes 5, 10, 15, 20, 25&#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;\step[fieldset=addendum,fieldvalue={XXX~},append]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Toutefois ceci pose deux probl&#232;mes&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; L'un assez mineur est qu'on inscrit &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;en dur&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; le s&#233;parateur de &lt;i&gt;claves&lt;/i&gt;.&lt;/li&gt;&lt;li&gt; L'autre majeure est que l'on ajoute syst&#233;matiquement le point-virgule, y compris s'il n'y a rien auparavant.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Pour r&#233;soudre ces deux probl&#232;mes, nous allons d&#233;finir une nouvelle commande, &lt;code&gt;\multiclavesseparator&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{\multiclavesseparator}{\addsemicolon\ifpunct{\addspace}{}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code&gt;\addsemicolon&lt;/code&gt; ins&#232;re un point-virgule uniquement si nous n'avons pas juste avant un signe de ponctuation. Cela &#233;vite d'avoir&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-4&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Voir La notion d'unit&#233; dans une r&#233;f&#233;rence bibliographique.&#034; id=&#034;nh5-4&#034;&gt;4&lt;/a&gt;]&lt;/span&gt;.&lt;/li&gt;&lt;li&gt; &lt;code&gt;\ifpunct{\addspace}{}&lt;/code&gt; ajoute l'espace apr&#232;s le point-virgule s'il est affich&#233;, rien sinon.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Il nous faut ajouter la commande dans nos lignes 5, 10, 15, 20, 25, ainsi&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\step[fieldset=addendum,fieldvalue={\noexpand\multiclavesseparator XXX~},append]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le &lt;code&gt;\noexpand&lt;/code&gt; est l&#224; pour &#233;viter que le &lt;code&gt;\multiclavesseparator&lt;/code&gt; soit interpr&#233;t&#233; au moment de la lecture du fichier &lt;code&gt;.tex&lt;/code&gt;. Il peut par cons&#233;quent se trouver tel quel dans le fichier &lt;code&gt;.bcf&lt;/code&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-5&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Ce fichier, qui est produit lors de la compilation (Xe)LaTeX par le package (&#8230;)&#034; id=&#034;nh5-5&#034;&gt;5&lt;/a&gt;]&lt;/span&gt; et par cons&#233;quent dans le fichier &lt;code&gt;.bbl&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ceci nous produit donc pour le moment&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;&lt;i&gt;Acta Barnabae&lt;/i&gt;, in&#160;: &lt;i&gt;Acta Apostolorum Apocrypha&lt;/i&gt;, &#233;d. Maximilien Bonnet, t. 2.2, Leipzig&#160;: Hermann Mendelssohn, 1903, p. 292&#8211;302, &lt;span class=&#034;caps&#034;&gt;BHG&lt;/span&gt; 225&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; &lt;span class=&#034;caps&#034;&gt;CANT&lt;/span&gt; 285&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;h2&#034;&gt;Styler le champ &lt;code&gt;addendum&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Maintenant que nous avons d&#233;fini le contenu du champ addendum, il nous faut le modifier sa pr&#233;sentation, pour le mettre automatiquement entre parenth&#232;se. On utilise pour cela la commande &lt;code&gt;\DeclareFieldFormat&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code class=&#034;latex&#034;&gt;\DeclareFieldFormat{addendum}{\mkbibparens{#1}}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Rien de bien sorcier&#160;: on indique simplement, via &lt;code&gt;\mkbibparens&lt;/code&gt; de mettre entre parenth&#232;se le contenu (&lt;code&gt;#1&lt;/code&gt;) du champ. L'avantage d'utiliser &lt;code&gt;\mkbibparens&lt;/code&gt; est double&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Si notre champ est vide, nous n'avons pas de parenth&#232;ses vides pour autant.&lt;/li&gt;&lt;li&gt; Si nous nous situons &#224; l'int&#233;rieur d'une parenth&#232;se, &lt;i&gt;biblatex&lt;/i&gt; nous produira automatiquement des crochets.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Avec ceci, nous obtenons&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Acta Barnabae&lt;/i&gt;, in&#160;: &lt;i&gt;Acta Apostolorum Apocrypha&lt;/i&gt;, &#233;d. Maximilien Bonnet, t. 2.2, Leipzig&#160;: Hermann Mendelssohn, 1903, p. 292&#8211;302, ( &lt;span class=&#034;caps&#034;&gt;BHG&lt;/span&gt; 225&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; &lt;span class=&#034;caps&#034;&gt;CANT&lt;/span&gt; 285)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cela n'est pas terrible&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Nous avons une virgule suivi d'une parenth&#232;se.&lt;/li&gt;&lt;li&gt; Nous avons une espace apr&#232;s la parenth&#232;se ouvrante, ce qui s'explique par le &lt;code&gt;\ifpunct{\addspace}{}&lt;/code&gt;. La pr&#233;c&#233;dente ponctuation &#233;tant la virgule d'avant la parenth&#232;se.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Que cela ne tienne, nous allons corriger ce qui est affich&#233; avant la parenth&#232;se. Pour cela, nous allons modifier la macro bibliographique &lt;code&gt;addendum+pubstate&lt;/code&gt;, qui est actuellement d&#233;finie ainsi (dans le fichier &lt;code&gt;standard.bbx&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;\newbibmacro*{addendum+pubstate}{% \printfield{addendum}% \newunit\newblock \printfield{pubstate}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous allons la modifier ainsi&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;latex&#034;&gt;&lt;code&gt;\renewbibmacro*{addendum+pubstate}{% \iffieldundef{addendum}{}{\nopunct}% \printfield{addendum}% \newunit\newblock \printfield{pubstate}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La premi&#232;re ligne que nous avons ajout&#233;e est assez simple&#160;: si nous avons un champ addendum, alors nous supprimons la ponctuation qui pr&#233;c&#232;de&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-6&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;La documentation indique pour : &#171;&#160;Ajoute un marqueur interne qui aura pour (&#8230;)&#034; id=&#034;nh5-6&#034;&gt;6&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Et nous obtenons ainsi notre affichage final&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Acta Barnabae&lt;/i&gt;, in&#160;: &lt;i&gt;Acta Apostolorum Apocrypha&lt;/i&gt;, &#233;d. Maximilien Bonnet, t. 2.2, Leipzig&#160;: Hermann Mendelssohn, 1903, p. 292&#8211;302 (&lt;span class=&#034;caps&#034;&gt;BHG&lt;/span&gt; 225&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; &lt;span class=&#034;caps&#034;&gt;CANT&lt;/span&gt; 285)&lt;/p&gt;
&lt;/blockquote&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;Je conseille d'avoir lu les chapitres de mon livre concernant la personnalisation des styles &lt;i&gt;biblatex&lt;/i&gt; pour comprendre certaines notions.&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;Si quelqu'un trouve une meilleure traduction de &#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;mapping&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;, je suis preneur.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;Il existe des commandes sp&#233;cifiques si vous souhaitez d&#233;clarer le mappage dans un fichier de style bibliographique plut&#244;t que dans un fichier &lt;code&gt;.tex&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5-4&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-4&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-4&#034; rev=&#034;appendix&#034;&gt;4&lt;/a&gt;] &lt;/span&gt;Voir &lt;a href='https://geekographie.maieul.net/38' class=&#034;spip_in&#034;&gt;La notion d'unit&#233; dans une r&#233;f&#233;rence bibliographique&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5-5&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-5&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-5&#034; rev=&#034;appendix&#034;&gt;5&lt;/a&gt;] &lt;/span&gt;Ce fichier, qui est produit lors de la compilation (X&lt;sup class=&#034;typo_exposants&#034;&gt;e&lt;/sup&gt;)LaTeX par le package &lt;i&gt;biblatex&lt;/i&gt;, d&#233;crit les r&#233;glages que Biber devra utiliser.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5-6&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-6&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-6&#034; rev=&#034;appendix&#034;&gt;6&lt;/a&gt;] &lt;/span&gt;La documentation indique pour &lt;code&gt;\nopunct&lt;/code&gt;&#160;: &#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;Ajoute un marqueur interne qui aura pour cons&#233;quence que la commande suivante de ponctuation n'imprimera rien.&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; Il faut bien comprendre que les commandes de ponctuations sont interpr&#233;t&#233;es \emph&lt;i&gt;apr&#232;s&lt;/i&gt; les autres commandes (pour g&#233;rer notamment &lt;a href='https://geekographie.maieul.net/38' class=&#034;spip_in&#034;&gt;les unit&#233;s bibliographiques&lt;/a&gt;). Par cons&#233;quence la commande suivante de ponctuation correspond &#224; la ponctuation qui pr&#233;c&#233;de.&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;#nb6-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;nh6-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;#nb6-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Dans le fichier .&#034; id=&#034;nh6-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;#nb6-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;nh6-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;#nb6-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;nh6-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;#nb6-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;nh6-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;#nb6-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;nh6-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;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;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;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;Dans le fichier &lt;code&gt;standard.bbx&lt;/code&gt;.&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;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;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;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;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;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;nb6-6&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh6-6&#034; class=&#034;spip_note&#034; title=&#034;Notes 6-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>Tri des &#339;uvres anonymes</title>
		<link>https://geekographie.maieul.net/92</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/92</guid>
		<dc:date>2012-07-17T08:01:34Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Lorsqu'une bibliographie contient des &#339;uvres anonymes, on peut souhaiter qu'elles soient toutes regroup&#233;es au m&#234;me endroit. Voici comment faire. Avant de lire cet article, il vous faut lire l'article sur la gestion des &#339;uvres anonymes, pour avoir un affichage correct. Soit les entr&#233;es suivantes&#160;: @bookinbookBreveHippone, Crossref = ConciliaAfricae, Entrysubtype = concile, Pages = 30-46, Title = Breviarum Hipponense @bookinbookFerrand, Author = Ferrand de Carthage, Crossref =&#160;(&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Lorsqu'une bibliographie contient des &#339;uvres anonymes, on peut souhaiter qu'elles soient toutes regroup&#233;es au m&#234;me endroit. Voici comment faire.&lt;/p&gt;
&lt;p&gt;Avant de lire cet article, il vous faut lire l'article sur la &lt;a href='https://geekographie.maieul.net/66' class=&#034;spip_in&#034;&gt;gestion des &#339;uvres anonymes&lt;/a&gt;, pour avoir un affichage correct.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Soit les entr&#233;es suivantes&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='biblatex'&gt;&lt;code&gt;@bookinbook{BreveHippone, Crossref = {ConciliaAfricae}, Entrysubtype = {concile}, Pages = {30-46}, Title = {Breviarum Hipponense}} @bookinbook{Ferrand, Author = {{Ferrand de Carthage}}, Crossref = {ConciliaAfricae}, Entrysubtype = {concile}, Pages = {287-306}, Title = {Breviatio Canonum}} @book{ConciliaAfricae, Editor = {Charles Munier}, Number = {149}, Series = {CCSL}, Title = {Concilia Africae}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si j'appelle ma bibliographie finale 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[subtype=concile]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'obtiens le tri suivant&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
Ferrand de Carthage, Breviatio Canonum, dans Concilia Africae, dir. Charles Munier, &lt;span class=&#034;caps&#034;&gt;CCSL&lt;/span&gt; 149, p. 287&#8211;306.&lt;br class='manualbr' /&gt;Breviarum Hipponense, dans Concilia Africae, dir. Charles Munier, &lt;span class=&#034;caps&#034;&gt;CCSL&lt;/span&gt; 149, p. 30&#8211;46.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Or j'aimerais que les sources anonymes soient positionn&#233;e en tout d&#233;but. Comment faire&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;?&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;La mauvaise m&#233;thode&lt;/h2&gt;
&lt;p&gt;La mauvaise m&#233;thode consiste &#224; utiliser le champ sortname, en modifiant ainsi les entr&#233;es anonymes&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;@bookinbook{BreveHippone, Crossref = {ConciliaAfricae}, Entrysubtype = {concile}, Pages = {30-46}, Title = {Breviarum Hipponense}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cette m&#233;thode est mauvaise pour (au moins) deux raisons&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Elle suppose de ne pas oublier de renseigner le champ &lt;code&gt;sortname&lt;/code&gt; et demande une v&#233;rification finale manuelle (ou l'&lt;a href='https://geekographie.maieul.net/74' class=&#034;spip_in&#034;&gt;utilisation de tests&lt;/a&gt;)&lt;/li&gt;&lt;li&gt; Elle implique qu'on ins&#232;re dans la base de donn&#233;e le tri final. Or il peut arriver de vouloir avoir un autre tri, par exemple en gardant le tri standard.&lt;/li&gt;&lt;/ol&gt;&lt;h2 class=&#034;h2&#034;&gt;La bonne m&#233;thode&lt;/h2&gt;
&lt;p&gt;Elle suppose de passer par &lt;a href='https://geekographie.maieul.net/spip.php?page=mot&amp;id_mot=31'&gt;Biber&lt;/a&gt;. Il s'agit de cr&#233;er un ordre de tri personalis&#233; (le manuel de BibLaTeX explique plus en d&#233;tails).&lt;/p&gt;
&lt;p&gt;Si je fouille le fichier &lt;code&gt;biblatex.def&lt;/code&gt;, je trouve la d&#233;finition du tri &lt;code&gt;nyt&lt;/code&gt;, qui est le tri standard, triant par nom, puis par titre, puis par ann&#233;e.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\DeclareSortingScheme{nty}{ \sort{ \field{presort} } \sort[final]{ \field{sortkey} } \sort{ \field{sortname} \field{author} \field{editor} \field{translator} \field{sorttitle} \field{title} } \sort{ \field{sorttitle} \field{title} } \sort{ \field{sortyear} \field{year} } \sort{ \field[padside=left,padwidth=4,padchar=0]{volume} \literal{0000} } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Je commente rapidement le code&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; La premi&#232;re ligne indique que nous d&#233;clarons un sch&#233;ma de tri (&lt;code&gt;\DeclareSortingScheme&lt;/code&gt;) intitul&#233; &lt;code&gt;nty&lt;/code&gt;. Ce sch&#233;ma est d&#233;crit dans les lignes qui suivent.&lt;/li&gt;&lt;li&gt; Chaque commande &lt;code&gt;\sort&lt;/code&gt; indique un ordre de tri, les champs d&#233;clar&#233;s par &lt;code&gt;\field&lt;/code&gt; &#224; l'int&#233;rieur de ces commandes &#233;tant les champs servant au tri. Le syst&#232;me de tri teste chaque champ&#160;:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Si un champ existe, biber note sa valeur dans sa m&#233;moire pour le tri, sinon, il teste l'existence du champ suivant.&lt;/li&gt;&lt;li&gt; Une fois que tous les champs d'un &lt;code&gt;\sort&lt;/code&gt; ont &#233;t&#233; analys&#233;s et leurs valeurs mises dans la m&#233;moire pour tri, biber proc&#233;de au tri.
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Ainsi, on voit que le tri se fait d'abord suivant le champ &lt;code&gt;presort&lt;/code&gt;, puis suivant le champ &lt;code&gt;sortkey&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Si le champ &lt;code&gt;sortkey&lt;/code&gt; est d&#233;fini, on arr&#234;te l&#224; le tri (comme le montre l'option &lt;code&gt;[final]&lt;/code&gt;).&lt;/li&gt;&lt;li&gt; Dans le cas contraire, on continue le tri on prenant pour clef de tri&#160;: le champ &lt;code&gt;sortname&lt;/code&gt;, sinon &lt;code&gt;author&lt;/code&gt;, sinon &lt;code&gt;editor&lt;/code&gt;, sinon &lt;code&gt;translator&lt;/code&gt;, sinon &lt;code&gt;sortitle&lt;/code&gt;, sinon &lt;code&gt;title&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Apr&#232;s avoir fait ce tri, on sous-trie chaque auteur par &lt;code&gt;sorttitle&lt;/code&gt; ou par &lt;code&gt;title&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;code&gt;\field[padside=left,padwidth=4,padchar=0]{volume}&lt;/code&gt; signifie que pour le tri, le champ &lt;code&gt;volume&lt;/code&gt; re&#231;oit des z&#233;ros sur sa gauche, de mani&#232;re &#224; former au plus 4 caract&#232;res. Ainsi &lt;code&gt;1&lt;/code&gt; devient &lt;code&gt;0001&lt;/code&gt;, &lt;code&gt;10&lt;/code&gt; devient &lt;code&gt;0010&lt;/code&gt; et 100 devient &lt;code&gt;100&lt;/code&gt;. Ceci permet de proc&#233;der &#224; un tri par ordre num&#233;rique, et non par ordre alphab&#233;tique&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;Voir &#224; ce sujet mon article sur les champs de tri, o&#249; j'explique le probl&#232;me (&#8230;)&#034; id=&#034;nh7-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/li&gt;&lt;li&gt; La commande &lt;code&gt;\literal&lt;/code&gt; signifie que Biber fait &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;comme si&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; un champ ayant la valeur pass&#233; en argument est pris en compte. Cette commande va nous &#234;tre tr&#232;s utile.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Nous allons en effet d&#233;clarer un nouveau sch&#233;ma de tri, &lt;code&gt;anonyme&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Nous allons d'abord remplacer&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt; \field{author} \field{editor} \field{translator}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Par&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\field{labelname}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ceci permettra de trier suivant le pseudo-champ &lt;code&gt;labelname&lt;/code&gt;. Par d&#233;faut ce pseudo champ vaut la valeur du premier champ existant dans l'ordre suivant&#160;: shortauthor,author,shorteditor,editor,translator. Cependant, pour les entr&#233;es de type &lt;code&gt;@book&lt;/code&gt;, &lt;code&gt;@bookinbook&lt;/code&gt; et &lt;code&gt;@inbook&lt;/code&gt; nous allons le modifier, en faisant qu'il ne puisse &#234;tre qu'&#233;gal &#224; &lt;code&gt;author&lt;/code&gt;, via&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\DeclareLabelname[book, inbook,bookinbook]{author}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ou pour les versions plus r&#233;centes de &lt;i&gt;BibLaTeX&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;\DeclareLabelname[book, inbook,bookinbook]{ \field{author} }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous allons remplacer le premier&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt; \field{sorttitle} \field{title}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/code&gt; par &lt;code class='latex'&gt;\literal{0000}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ainsi en l'absence de champ &lt;code&gt;labelname&lt;/code&gt;, donc pour les &#339;uvres anonymes, notre entr&#233;e sera situ&#233;e en t&#234;te de tri.&lt;/p&gt;
&lt;p&gt;Au final, cela donne ceci&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\DeclareLabelname[book, inbook,bookinbook]{author} \DeclareSortingScheme{anonyme}{ \sort{ \field{presort} } \sort[final]{ \field{sortkey} } \sort{ \field{sortname} \field{labelname} \literal{0000} } \sort{ \field{sorttitle} \field{title} } \sort{ \field{sortyear} \field{year} } \sort{ \field[padside=left,padwidth=4,padchar=0]{volume} \literal{0000} } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Lors du chargement de biblatex, nous passons l'option &lt;code&gt;sorting=anonyme&lt;/code&gt; pour dire de prendre ce tri.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='latex'&gt;&lt;code&gt;\usepackage[mincrossrefs=0,bibstyle=verbose,citestyle=verbose-trad2,backend=biber,sorting=anonyme]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce qui nous donne correctement au final&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;i&gt;Breviarum Hipponense&lt;/i&gt;, dans &lt;i&gt;Concilia Africae&lt;/i&gt;, dir. Charles Munier, &lt;span class=&#034;caps&#034;&gt;CCSL&lt;/span&gt; 149, p. 30&#8211;46.&lt;br class='manualbr' /&gt;Ferrand de Carthage, &lt;i&gt;Breviatio Canonum&lt;/i&gt;, dans Concilia Africae, dir. Charles Munier, &lt;span class=&#034;caps&#034;&gt;CCSL&lt;/span&gt; 149, p. 287&#8211;306.&lt;/p&gt;
&lt;/blockquote&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;Voir &#224; ce sujet mon article sur les champs de tri, o&#249; j'&lt;a href='https://geekographie.maieul.net/33' class=&#034;spip_in&#034;&gt;explique le probl&#232;me des tris num&#233;riques&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>V&#233;rification des filiations avec biblatex (2)&#160;: v&#233;rifier visuellement</title>
		<link>https://geekographie.maieul.net/76</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/76</guid>
		<dc:date>2012-01-02T22:57:44Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Suite et fin de ma s&#233;rie sur la v&#233;rification des h&#233;ritages de champs bibliographiques. Il s'agit cette fois de v&#233;rifier les h&#233;ritages correctes, en produisant une repr&#233;sentation graphique de cet h&#233;ritage. Pour ce faire il est n&#233;cessaire d'avoir Biber 1.1 minimal et le logiciel Graphviz. Il faut &#233;galement passer par la ligne de commande. Exemples Dans cet article, j'utilise les entr&#233;es tir&#233;es de mon pr&#233;c&#233;dent article&#160;: @bookConciliaAfricae, Title = Concilia Africae, Editor =&#160;(&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Suite et fin de ma s&#233;rie sur la &lt;a href='https://geekographie.maieul.net/74' class=&#034;spip_in&#034;&gt;v&#233;rification des h&#233;ritages de champs bibliographiques&lt;/a&gt;. Il s'agit cette fois de v&#233;rifier les h&#233;ritages correctes, en produisant une repr&#233;sentation graphique de cet h&#233;ritage. Pour ce faire il est n&#233;cessaire d'avoir Biber 1.1 minimal et le logiciel &lt;a href=&#034;http://www.graphviz.org/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Graphviz&lt;/a&gt;. &lt;a href='https://geekographie.maieul.net/50' class=&#034;spip_in&#034;&gt;Il faut &#233;galement passer par la ligne de commande&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;h2&#034;&gt;Exemples&lt;/h2&gt;
&lt;p&gt;Dans cet article, j'utilise les entr&#233;es tir&#233;es de &lt;a href='https://geekographie.maieul.net/75' class=&#034;spip_in&#034;&gt;mon pr&#233;c&#233;dent article&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;@book{ConciliaAfricae, Title = {Concilia Africae}, Editor = {Charles Munier}, Number = {149}, Series = {Corpus Christianorum Series Latina}} @bookinbook{BreveHippone, Crossref={ConciliaAfricae}, Pages = {30-46}, Title = {Breviarum Hipponense} } @bookinbook{BreveHippone36, Crossref = {BreveHippone}, Pages = {43}, Titleaddon = {36}} @bookinbook{ConcileHippone, Crossref={ConciliaAfricae}, Pages = {20-21}, Title = {Concilium Hipponense}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;Visualisation des h&#233;ritages de type&lt;/h2&gt;
&lt;p&gt;Une fois mon fichier &lt;code&gt;.tex&lt;/code&gt; compil&#233;, je peux dire &#224; biber de produire un fichier &lt;code&gt;.dot&lt;/code&gt;, pour le logiciel Graphviz.&lt;/p&gt;
&lt;p&gt;Pour ce faire, j'utilise la commande biber en lui passant l'option &lt;code&gt;--outformat=dot --dot_include=crossref &lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ce qui donne concr&#232;tement&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='bash'&gt;&lt;code&gt;--outformat=dot --dot_include=crossref xxx&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;o&#249; &lt;code&gt;xxx&lt;/code&gt; est le nom (sans l'extension) du fichier &lt;code&gt;.tex&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;J'obtiens alors un fichier &lt;code&gt;xxx.dot&lt;/code&gt; qu'il faut transformer en fichier &lt;code&gt;.pdf&lt;/code&gt; gr&#226;ce &#224; Graphviz. Ce qui en ligne de commande se fait de la mani&#232;re suivante&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='bash'&gt;&lt;code&gt;dot -Tpdf xxx.dot -o xxx.pdf&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'obtiens alors le fichier &lt;code&gt;xxx.pdf&lt;/code&gt;, qui m'affiche ce sch&#233;ma&#160;:&lt;/p&gt;
&lt;div class='spip_document_30 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;40&#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/L500xH95/type-9c63c.png?1760462060' width='500' height='95' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-30 '&gt;&lt;strong&gt;Visualisation de l'h&#233;ritage des champs
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Avec cela je peux v&#233;rifier que j'ai bien entr&#233;e les bons types d'entr&#233;es.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Visualiser les champ&lt;/h2&gt;
&lt;p&gt;En revanche, je ne peux pas v&#233;rifier que je n'ai pas oubli&#233; un champ, ou bien que mes r&#233;glages d'h&#233;ritages sont correctes. Qu'importe&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;! Biber est capable d'afficher aussi les h&#233;ritages de champs.&lt;/p&gt;
&lt;p&gt;Il suffit de modifier l&#233;g&#232;rement les options pass&#233;es &#224; Biber&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='bash'&gt;&lt;code&gt;--outformat=dot --dot_include=crossref,field xxx&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;puis de produire le pdf&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='bash'&gt;&lt;code&gt;dot -Tpdf xxx.dot -o xxx.pdf&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'obtiens alors le sch&#233;ma suivant&#160;:&lt;/p&gt;
&lt;div class='spip_document_29 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;40&#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/png/champs.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://geekographie.maieul.net/local/cache-vignettes/L500xH828/champs-49760.png?1760462060' width='500' height='828' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-29 '&gt;&lt;strong&gt;Visualisation des h&#233;ritages des champs
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Cette visualisation peut servir parfois, mais elle devient vite complexe lorsque le nombre de r&#233;f&#233;rences se multiplie.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div &lt;div class='rss_ps'&gt;&lt;p&gt;Biber permet de produire d'autres sch&#233;mas&#160;: je renvoie au manuel.&lt;/p&gt;
&lt;p&gt;Il est &#233;galement possible de produire des &lt;code&gt;.svg&lt;/code&gt; ou des &lt;code&gt;.png&lt;/code&gt;, respectivement avec&#160;:&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='bash'&gt;&lt;code&gt;dot -Tsvg xxx.dot -o xxx.svg
dot -Tpng xxx.dot -o xxx.png&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
