1 <html xmlns="http://www.w3.org/1999/xhtml">
3 <link rel="stylesheet" type="text/css" href="../jabref_help.css"/>
8 <h1>Filtres d'exportation personnalisés</h1>
10 <p>JabRef vous permet de définir et d'utiliser vos
11 propres filtres d'exportation de la même manière
12 que les filtres d'exportation standards. Un filtre
13 d'exportation est défini par un ou plusieurs <i>fichiers
14 gabarit</i> qui, avec l'aide d'un certain nombre de routines
15 internes de formatage, définissent le format des
16 fichiers exportés. Vos fichiers gabarit doivent
17 être préparés avec un éditeur de
18 texte à l'extérieur de JabRef.</p>
20 <h2>Ajout d'un filtre d'exportation personnalisé</h2>
22 <p>La seule obligation pour avoir un filtre d'exportation
23 valide est l'existence d'un fichier avec l'extension
24 <b>.layout</b>. Pour ajouter un nouveau filtre d'exportation,
25 on utilise le menu <b>Options -> Gérer les
26 exportations personnalisées</b>, et on clique sur
27 <b>Ajouter nouvelle</b>. Une nouvelle boite de dialogue
28 apparaît et vous permet de spécifier le nom du
29 nouveau filtre d'exportation (ce nom apparaîtra ensuite
30 comme l'un des choix du menu déroulant "Type de fichier"
31 de la fenêtre de dialogue affectée au menu
32 <b>Fichier -> Exporter</b> de la fenêtre principale de
33 JabRef), le chemin du fichier <b>.layout</b>, et l'extension de
34 fichier préférée par le filtre
35 d'exportation (c'est cette extension qui sera
36 suggérée dans la boite de dialogue lorsque le
37 filtre sera utilisé).</p>
39 <h2>Création d'un filtre d'exportation</h2>
41 <p>Pour voir des exemples de constitution de filtres
42 d'exportation, recherchez le répertoire contenant les
43 fichiers gabarit des filtres d'exportation standards sur notre
44 page de téléchargement.</p>
46 <h3>Les fichiers gabarit</h3>
48 <p>On suppose que l'on veut créer un filtre
49 d'exportation pour une sortie HTML.</p>
51 <p>Bien que le filtre d'exportation ne nécessite qu'un
52 seul fichier <b>.layout</b>, qui dans ce cas pourrait s'appeler
53 <i>html.layout</i>, vous pouvez désirer ajouter deux
54 autres fichiers appelés <i>html.begin.layout</i> et
55 <i>html.end.layout</i>. Le premier contient le début de
56 la sortie et le dernier la fin. JabRef recherche ces deux
57 fichiers quelque soit le fichier d'exportation utilisé
58 et, s'il les trouve, les recopie tel quel dans la sortie avant
59 et après l'écriture des entrées
62 <p>Il faut noter que ces fichiers doivent être dans le
63 même répertoire que le fichier <i>html.layout</i>,
64 et que leur nom doit comporter <b>.begin</b> pour l'un et
65 <b>.end</b> pour l'autre.</p>
67 <p>Dans notre exemple de fichier d'exportation, cela pourrait
68 ressembler à</p>
70 <p><i>html.begin.layout</i> :<br />
71 <code><!DOCTYPE html><br/><html><br /> <body
72 style="color:#275856; font-family: Arial, sans-serif;"></code>
75 <p><i>html.end.layout</i> :<br />
76 <code></BODY><br /></HTML></code></p>
78 <p>Le fichier <i>html.layout</i> fournit le gabarit par
79 défaut pour l'exportation d'une seule entrée. Si
80 vous devez utiliser différents gabarits pour les
81 différentes entrées, vous pouvez le faire en
82 ajoutant des fichiers <b>.layout</b> spécifiques. Les
83 fichiers doivent aussi être dans le même
84 répertoire que le gabarit principal et ils sont
85 nommés en insérant <b>.entrytype</b> dans le nom
86 du fichier gabarit principal. Le nom de l'entrée doit
87 être en minuscules. Dans notre exemple, on peut vouloir
88 ajouter un gabarit différent pour les livres et cela se
89 fera via le fichier <i>html.book.layout</i>. Pour une
90 thèse, on ajoutera le fichier
91 <i>html.phdthesis.layout</i>. Ces fichiers sont similaires au
92 gabarit principal, si ce n'est qu'ils sont utilisés pour
93 des entrées spécifiques. A noter que le gabarit
94 général peut aisément être
95 créé suffisamment général pour
96 être utilisable avec la plupart des entrées dans
97 la majorité des filtres d'exportation.</p>
99 <h3>Le format des fichiers gabarit</h3>
101 <p>Les fichiers gabarit utilisent un simple langage de balisage
102 dans lequel les commandes sont identifiées par
103 l'antislash (\) les précédant. Tout texte non
104 identifié comme faisant partie d'une entrée est
105 recopié tel quel dans le fichier de sortie.</p>
107 <h3>Les commandes relatives aux champs</h3>
109 <p>Les mots précédés d'un antislash, par
110 exemple <code>\author</code>, <code>\editor</code>,
111 <code>\title</code> ou <code>\year</code>, sont
112 interprétés comme des références
113 aux champs correspondants et le contenu du champ est
114 copié directement dans la sortie.</p>
116 <h3>Les formateurs de champs</h3>
118 <p>Souvent, on a besoin de faire subir au contenu d'un champ un
119 pré-traitement avant de le copier dans le fichier de
120 sortie. Cela est réalisé en utilisant un
121 <i>formateur de champ</i> - une classe java contenant une seule
122 méthode qui manipule le contenu du champ.</p>
124 <p>Le formateur est utilisé en insérant la
125 commande <code>\format</code> suivie du nom du formateur entre
126 crochets et du nom du champ entre accolades, par exemple</p>
128 <p><code>\format[ToLowerCase]{\author}</code></p>
130 <p>Vous pouvez aussi indiquer plusieurs formateurs
131 séparés par des virgules. Ils seront alors
132 appelés séquentiellement de la gauche vers la
133 droite, par exemple :</p>
135 <p><code>\format[ToLowerCase,HTMLChars]{\author}</code></p>
137 <p>va d'abord appliquer le formateur <b>ToLowerCase</b> puis
138 <b>HTMLChars</b> sur le résultat. Vous pouvez lister un
139 nombre arbitraire de formateurs de cette manière.</p>
142 <p>L'argument des formateurs, à l'intérieur des accolades,
143 n'est pas obligatoirement une commande de champ. Ce peut aussi
144 être du texte normal qui sera ensuite passé aux formateurs
145 au lieu des contenus d'un champ. Cela peut être utilisé pour
146 certains formateurs, par ex. le formateur CurrentDate (décrit
149 <p>Certains formateurs prennent un argument supplémentaire, spécifié entre parenthèses
150 immédiatement après le nom du formateur. L'argument peut être mis
151 entre crochets, ce qui est nécessaire s'il inclut les caractères de parenthèses.
152 Par exemple, <code>\format[Replace("\s,_")]{\journal}</code> appelle
153 le formateur <b>Replace</b> avec l'argument <b>\s,_</b> (ce qui remplace
154 tous les espaces par des soulignés dans le champ "field").</p>
157 <p>Voir ci-dessous pour une liste des formateurs d'exportation disponibles.</p>
160 <h3>Les sorties conditionnelles</h3>
162 <p>Certaines informations dans les sorties ne prennent de sens
163 que si un certain champ est utilisé. Par exemple, disons
164 que l'on veuille faire suivre le nom de l'éditeur par le
165 texte <code>(Ed.)</code>. Cela peut être
166 réalisé avec le code suivant :</p>
168 <p><code>\format[HTMLChars,AuthorFirstFirst]{\editor}
171 <p>Cependant, si le champs <code>editor</code> n'a pas
172 été renseigné - il n'a pas de sens pour
173 l'entrée exportée - le texte <code>(Ed.)</code>
174 doit être ignoré. Cela peut être
175 effectué en utilisant les commandes <code>\begin</code>
176 et <code>\end</code> :</p>
178 <p><code>\begin{editor}<br />
179 \format[HTMLChars,AuthorFirstFirst]{\editor} (Ed.)<br />
180 \end{editor}</code></p>
182 <p>Les commandes <code>\begin</code> et <code>\end</code>
183 assure que le texte contenu entre les deux commandes ne sera
184 imprimé que si et seulement si le champ
185 spécifié entre accolades est renseigné
186 dans l'entrée que l'on veut exporter.</p>
188 <p>Un bloc conditionnel peut aussi dépendre de plus d'un champ,
189 et le contenu du bloc est affiché uniquement
190 quand toutes les conditions sont remplies.
191 Deux opérateurs conditionnels sont disponibles :</p>
193 <li>opérateur ET : <code>&</code>, <code>&&</code></li>
194 <li>opérateur OU : <code>|</code>, <code>||</code></li>
197 <p>Pour imprimer du texte uniquement si à la fois les champs
198 <code>year</code> et <code>month</code> sont renseignés, utilisez
199 un bloc tel que celui-ci :<br/><br/>
200 <code>\begin{year&&month}Month: \format[HTMLChars]
201 {\month}\end{year&&month}</code><br/><br/>
202 qui imprimera "Month: " plus le contenu du champ <code>month</code>, mais
203 seulement si le champ <code>year</code> est lui-aussi défini.</p>
205 <p><b>Note :</b> L'utilisation des commandes
206 <code>\begin</code> et <code>\end</code> est une manière
207 astucieuse de créer des gabarits qui sont communs
208 à une grande variété d'entrées.</p>
211 <h3>Les sorties groupées</h3>
213 <p>Si vous désirez séparer vos entrées en
214 groupes basés sur un certain champ, vous pouvez utiliser
215 les commandes de sorties groupées. La sortie
216 groupée est assez similaire aux sorties conditionnelles,
217 excepté que le texte spécifié n'est
218 imprimé que si le champ indiqué dans les
219 accolades change de valeur.</p>
221 <p>Par exemple, on suppose que l'on désire faire des
222 groupes à partir de mots-clefs. Avant l'exportation, on
223 s'assure que les entrées sont triées selon les
224 mots-clefs. Ensuite, on utilise les commandes suivantes pour
225 les grouper par mot-clefs :</p>
227 <p><code>\begingroup{keywords}New Category:
228 \format[HTMLChars]{\keywords}<br />
229 \endgroup{keywords}</code></p>
231 <h2>Partage de votre travail</h2>
233 <p>Avec les fichiers gabarit externes, il est relativement
234 simple de partager des formats d'exportation entre
235 utilisateurs. Si vous écrivez un filtre d'exportation
236 pour un format non supporté par JabRef, ou si vous
237 améliorez un filtre déjà existant, nous
238 vous encourageons à déposer votre travail sur
239 notre page SourceForge.net. La même chose est possible
240 pour les nouvelles classes de formateur que vous avez
241 écrites. Nous serons heureux de distribuer une
242 collection des fichiers gabarit soumis ou de les ajouter
243 à la série des filtres d'exportation standard ou
246 <p>À partir de JabRef 2.4 vous pouvez aussi empaqueter votre
247 format d'exportation ("ExportFormat") ou formateur de gabarit
248 ("LayoutFormatter") comme un greffon ("plug-in"). Si vous le
249 faites, vous pouvez fournir un unique fichier zip à d'autres
250 utilisateurs afin qu'ils utilisent votre format d'exportation.
251 Pour un exemple, télécharger le source de JabRef et jeter un
252 oeil au répertoire <code>src/resources/plugins/</code>. N'hésitez pas
253 à participer aux forums sur Sourceforge, puisque nous ne disposons
254 pas encore d'une documentation volumineuse.</p>
257 <h2>Formateurs d'exportation inclus</h2>
259 <p>JabRef fournit la série suivante de formateurs :</p>
262 <li><code>Authors</code> : Ce formateur fournit des options de
263 formatage pour les champs author et editor
264 pour des informations détaillées, voir ci-dessous.
265 Il rend obsolète une série de formateurs
266 dédiés qui étaient disponibles dans les
267 versions de JabRef antérieures à 2.7.</li>
269 <li><code>CreateBibORDFAuthors</code> : formate les auteurs
270 selon les spécification de Bibliographic Ontology (bibo).</li>
272 <li><code>CreateDocBookAuthors</code> : formate le
273 contenu du champ author selon le style DocBook.</li>
275 <li><code>CreateDocBookEditors</code> : formate le
276 contenu du champ editor selon le style DocBook.</li>
278 <li><code>CurrentDate</code> : renvoie la date
279 actuelle. Sans argument, ce formateur renvoie la date et
280 l'heure actuelle au format "yyyy.MM.dd hh:mm:ss z" (date,
281 heure et fuseau horaire). En donnant une chaîne de
282 format différent comme argument, le format de la
283 date peut-être adapté. Par exemple,
284 <code>\format[CurrentDate]{yyyy.MM.dd}</code> renverra
285 uniquement la date, comme par exemple 2005.11.30.</li>
287 <li><code>Default</code> : prend un seul argument, qui sert comme
288 valeur par défaut. Si la chaîne à formater
289 n'est pas vide, elle est renvoyée sans changement.
290 Si elle est vide, la valeur par défaut est renvoyée.
292 <code>\format[Default(unknown)]{\year}</code>
293 renverra l'année de l'entrée si elle existe,
294 et "unknown" si l'année n'est pas précisée.</li>
296 <li><code>DOIStrip</code> : supprime tous les préfixes d'une
297 chaîne de DOI.</li>
299 <li><code>DOICheck</code> : fournit l'URL complète pour
302 <li><code>FileLink(TypeDeFichier)</code> : sans argument, ce formateur renvoie
303 le premier lien apparaissant dans le champ. Pour fonctionner, ce formateur doit
304 être alimenté par le contenu du champ "file" (fichier).<br/>
305 Ce formateur prend comme argument optionnel l'extension du type de fichier externe
306 spécifié entre parenthèses après le nom du formateur. Par exemple,
307 <code>\format[FileLink(pdf)]{\file}</code> spécifie <code>pdf</code> comme un
308 argument. Quand un argument est fourni, le formateur sélectionne le premier lien
309 vers un fichier du type spécifié. Dans l'exemple, le chemin vers le premier lien PDF
310 sera renvoyé.</li>
312 <li><code>FirstPage</code> : renvoie la première page du champ "pages", si initialisé.
313 Par exemple, si le champ "pages" est initialisé avec "345-360" ou "345--360",
314 ce formateur renverra "345".</li>
316 <li><code>FormatChars</code> : Ce formateur convertit les séquences
317 de caractères LaTeX dans les caractères unicode équivalents et
318 supprime les autres commandes LaTeX sans les transférer.</li>
320 <li><code>FormatPagesForHTML</code> : remplace "--"
323 <li><code>FormatPagesForXML</code> : remplace "--" par
326 <li><code>GetOpenOfficeType</code> : renvoie le numéro
327 utilisé par le système bibliographique d'OpenOffice.org
328 (versions 1.x et 2.x) pour définir le type
329 de cette ée.</li>
331 <li><code>HTMLChars</code> : remplace les
332 caractères spéciaux spécifiques
333 à TeX (par exemple : {\^a} ou {\"{o}}) par leur
334 représentation HTML, et traduit les commandes LaTeX
335 \emph, \textit, \textbf dans leurs équivalents HTML.</li>
337 <li><code>HTMLParagraphs</code> : interprète
338 deux retours-chariot consécutifs (comme \n \n) comme
339 le début d'un nouveau paragraphe et crée les
340 balises html de paragraphes appropriées.</li>
342 <li><code>IfPlural</code> : renvoie son premier argument si le
343 champ d'entrée ressemble à une liste d'auteurs avec deux
344 noms ou plus, sinon renvoie son second argument. Par exemple,
345 <code>\format[IfPlural(Eds.,Ed.)]{\editor}</code> renverra "Eds." s'il y
346 a plus d'un éditeur et "Ed." s'il n'y en a qu'un seul.</li>
348 <li><code>JournalAbbreviator</code> : Le texte donné en entrée
349 est abrégé selon les listes d'abréviations des journaux.
350 Si aucune abréviation n'est trouvé pour l'entrée (par exemple, si elle
351 n'est pas dans la liste ou si elle est déjà abrégée), l'entrée sera
352 renvoyée sans modification.
353 Par exemple, en utilisant <code>\format[JournalAbbreviator]{\journal}</code>,
354 "Physical Review Letters" renvoie "Phys. Rev. Lett."</li>
356 <li><code>LastPage</code> : renvoie la dernière page du champ "pages", si initialisé.
357 Par exemple, si le champ "pages" est initialisé avec "345-360" ou "345--360",
358 ce formateur renverra "360".</li>
360 <li><code>NoSpaceBetweenAbbreviations</code> : Un formateur de mise
361 en page qui supprime l'espace entre les initiales des prénoms.
362 Par exemple : J. R. R. Tolkien devient J.R.R. Tolkien.</li>
364 <li><code>NotFoundFormatter</code> : Ce formateur est utilisé
365 pour indiquer qu'un formateur n'a pas été trouvé.
366 Cela peut-être utilisé pour gérer proprement les cas où une mise
367 en page utilise un format non défini.</li>
369 <li><code>Number</code> : renvoie la séquence de nombres à base de 1 de l'entrée actuelle dans
370 l'exportation actuelle. Ce formateur peut être utilisé pour faire une liste numérotée d'entrées. Le
371 numéro de séquence dépend de la place de l'entrée actuelle dans l'ordre de tri actuel, pas du
372 nombre d'appels de ce formateur.</li>
374 <li><code>RemoveBrackets</code> : supprime toutes les
375 accolades "{" ou "}".</li>
377 <li><code>RemoveBracketsAddComma</code> : supprime toutes les
378 accolades "{" ou "}". L'accolade fermante est remplacée par une virgule.</li>
380 <li><code>RemoveLatexCommands</code> : supprime toutes
381 les commandes LaTeX comme <code>\em</code>,
382 <code>\textbf</code>, etc. Lorsqu'il est utilisé
383 avec <code>HTMLChars</code> ou <code>XMLChars</code>, ce
384 formateur doit être appelé en dernier.</li>
386 <li><code>RemoveTilde</code> : remplace le
387 caractère tilde (utilisé dans LaTeX comme un
388 espace insécable) par un espace normal. Utile en
389 combinaison avec <a href="#NameFormatter">un formateur de nom</a>
390 comme discuté dans la prochaine section.</li>
392 <li><code>RemoveWhitespace</code> : supprime tous les caractères espace.</li>
394 <li><code>Replace(ExpReg,RemplaceAvec)</code> : effectue le remplacement d'une expression régulière.
395 Pour utiliser ce formateur, un argument en deux parties doit être fourni. Les parties sont
396 séparées par une virgule. Pour indiquer le caractère virgule, utilisez la séquence
397 d'échappement : \,<br/>
398 La première partie est l'expression régulière à rechercher.
399 Notez bien que toute virgule doit y être précédée par un antislash,
400 et, qu'en conséquence, un antislash dans l'expression régulière
401 recherchée y est représenté par une paire d'anti-slash. Une description
402 des expression régulières de Java peut être trouvée à :<br/>
403 http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html<br/>
404 La seconde partie est le texte qui remplace tous les correspondances.</li>
406 <li><code>RisAuthors</code> : à documenter.</li>
408 <li><code>RisKeywords</code> : à documenter.</li>
410 <li><code>RisMonth</code> : à documenter.</li>
412 <li><code>RTFChars</code> : remplace les
413 caractères spéciaux spécifiques
414 à TeX (par exemple : {\^a} ou {\"{o}}) par leur
415 représentation RTF, et traduit les commandes LaTeX
416 \emph, \textit, \textbf dans leurs équivalents RTF.</li>
418 <li><code>ToLowerCase</code> : bascule tous les
419 caractères en minuscules.</li>
421 <li><code>ToUpperCase</code> : bascule tous les
422 caractères en majuscules.</li>
424 <li><code>WrapContent</code> :
425 Ce formateur renvoie la valeur d'entrée après ajout d'un préfixe et
426 d'un suffixe, tant que la valeur d'entrée n'est pas vide.
428 Si la valeur d'entrée est vide, une chaîne vide est renvoyée (le
429 préfixe et le suffixe ne sont pas renvoyés dans ce cas).
430 Le formateur nécessite un argument contenant le préfixe et le suffixe
431 séparés par une virgule.
432 Pour inclure le caractère virgule dans l'un d'entre eux, utilisez la
433 chaîne d'échappement
436 <li><code>WrapFileLinks</code> : Voir ci-dessous.</li>
438 <li><code>XMLChars</code> : remplace les
439 caractères spéciaux spécifiques
440 à TeX (par exemple : {\^a} ou {\"{o}}) par leur
441 représentation XML.</li>
445 <h3>Le formateur <code>Authors</code></h3>
447 <p>Pour satisfaire les nombreux styles de citation,
448 le formateur <code>Authors</code> permet un contrôle flexible de la mise
449 en page de la liste des auteurs. Le formateur prend en argument
450 une liste d'options séparées par des virgules, ce qui remplace leurs
451 valeurs par défaut. Les paires option/valeur suivantes sont actuellement
452 disponibles, les valeurs par défaut étant écrites entre accolades.</p>
455 <dt><code>AuthorSort = [ {FirstFirst} | LastFirst | LastFirstFirstFirst]</code></dt>
456 <dd>définit l'ordre dans lequel les noms d'auteur sont formatés.
458 <li><code>FirstFirst</code> :
459 les prénoms sont suivis du nom de famille.</li>
460 <li><code>LastFirst</code> :
461 les noms de famille des auteurs sont suivis de leurs prénoms,
462 séparés par une virgule.</li>
463 <li><code>LastFirstFirstFirst</code> :
464 Le premier auteur est formaté en LastFirst ;
465 les auteurs suivants en FirstFirst.</li>
469 <dt><code>AuthorAbbr = [ FullName | LastName | {Initials} | InitialsNoSpace | FirstInitial | MiddleInitial]</code></dt>
470 <dd>définit comment les noms d'auteur sont abrégés.
472 <li><code>FullName</code> :
473 montre les noms complets des auteurs ;
474 les prénoms ne sont pas abrégés.</li>
475 <li><code>LastName</code> :
476 montre uniquement les noms de familles,
477 les prénoms sont enlevés.</li>
478 <li><code>Initials</code> :
479 tous les prénoms sont abrégés.</li>
480 <li><code>InitialsNospace</code> :
481 comme Initials, tous les espaces entre les initiales
482 étant enlevés.</li>
483 <li><code>FirstInitial</code> :
484 seule la première initiale est affichée.</li>
485 <li><code>MiddleInitial</code> :
486 le premier prénom est affiché, mais tous les prénoms suivants
487 sont abrégés.</li>
491 <dt><code>AuthorPunc = [ {FullPunc} | NoPunc | NoComma | NoPeriod]</code></dt>
492 <dd>définit la ponctuation à utiliser dans la liste des auteurs
493 lorsque <code>AuthorAbbr</code> est utilisé
495 <li><code>FullPunc</code> :
496 aucun changement à la ponctuation n'est effectué.</li>
497 <li><code>NoPunc</code> :
498 tous les points et les virgules sont supprimés du nom d'auteur.</li>
499 <li><code>NoComma</code> :
500 toutes les virgules sont supprimées du nom d'auteur.</li>
501 <li><code>NoPeriod</code> :
502 tous les points sont supprimés du nom d'auteur.</li>
506 <dt><code>AuthorSep = [ {Comma} | And | Colon | Semicolon | Sep=<string>]</code></dt>
507 <dd>définit le séparateur à utiliser entre les auteurs. Tout séparateur
508 peut être spécifié grâce à l'option <code>Sep=<string></code>.</dd>
510 <dt><code>AuthorLastSep = [ Comma | {And} | Colon | Semicolon | Amp | Oxford | LastSep=<string>]</code></dt>
511 <dd>définit le dernier séparateur dans la liste d'auteurs. Tout séparateur
512 peut être spécifié grâce à l'option <code>LastSep=<string></code>.</dd>
514 <dt><code>AuthorNumber = [ {inf} | <integer>]</code></dt>
515 <dd>définit le nombre d'auteurs devant être affichés. Si le nombre d'auteurs
516 excède le maximum défini, la liste d'auteurs est remplacée par le
517 premier auteur suivi de <code>EtAlString</code>.</dd>
519 <dt><code>EtAlString = [ {et al.} | EtAl=<string>]</code></dt>
520 <dd>définit la chaîne utilisée pour remplacer des auteurs multiples.
521 Toute chaîne peut être spécifiée en utilisant <code>EtAl=<string></code></dd>
525 <p>Si une option n'est pas spécifiée, la valeur par défaut (montrée entre accolades
526 ci-dessus) est utilisée. Ainsi, uniquement les options de mise en page
527 qui diffère de celles par défaut ont besoin d'être définies.
528 L'ordre dans lequel les options sont définies est (en général) indifférent.
529 Ainsi, par exemple,</p>
530 <p><code>\format[Authors(Initials,Oxford)]{\author}</code></p>
531 <p>est équivalent à</p>
532 <p><code>\format[Authors(Oxford,Initials)]{\author}</code></p>
534 <p>Comme mentionné, l'ordre dans lequel les options sont définies est
535 indifférent. Il y a une possibilité d'ambiguïté si à la fois
536 <code>AuthorSep</code> et <code>AuthorLastSep</code> sont définis.
537 Dans ce cas, la première valeur applicable rencontrée devrait être
538 pour <code>AuthorSep</code>, et la seconde pour <code>AuthorLastSep</code>.
539 Afin d'éviter toute ambiguïté, lorsque la valeur par défaut
540 est modifiée, il est recommandé de spécifier les deux.
545 <p>Pour les auteurs suivants, <i>"Joe James Doe and Mary Jane
546 and Bruce Bar and Arthur Kay"</i> ,le formateur <code>Authors</code>
547 donnera les résultats suivants :</p>
549 <dt><code>Authors()</code> ou, de manière équivalente,
550 <code>Authors(FirstFirst,Initials,FullPunc,Comma,And,inf,EtAl= et al.)</code></dt>
551 <dd><pre>J. J. Doe, M. Jane, B. Bar and A. Kay</pre></dd>
553 <dt><code>Authors(LastFirstFirstFirst,MiddleInitial,Semicolon)</code></dt>
554 <dd><pre>Doe, Joe J.; Mary Jane; Bruce Bar and Arthur Kay</pre></dd>
556 <dt><code>Authors(LastFirst,InitialsNoSpace,NoPunc,Oxford)</code></dt>
557 <dd><pre>Doe JJ, Jane M, Bar B, and Kay A</pre></dd>
559 <dt><code>Authors(2,EtAl= and others)</code></dt>
560 <dd><pre>J. J. Doe and others</pre></dd>
562 <p>Les formats de citations les plus courants devraient être réalisables
563 avec ce formateur. Pour des options encore plus avancées, envisagez
564 d'utiliser les Formateurs personnalisés détaillés ci-dessous.
567 <h3>Le formateur <code>WrapFileLinks</code></h3>
570 Ce formateur itère sur tous les liens de fichiers, ou tous les liens de fichiers
571 d'un type particulier, renvoyant une chaîne de formatage donnée comme premier
572 argument. La chaîne de formatage peut contenir un nombre de séquences d'échappement
573 indiquant les informations sur le lien de fichier à être inséré dans la chaîne.
576 Ce formateur peut prendre un second argument optionnel spécifiant le nom d'un type
577 de fichier. Si spécifié, l'itération inclura uniquement les fichiers correspondant
578 au type de fichier recherché (en étant sensible à la casse des
579 caractères). S'il est spécifié comme un argument vide, tous les liens de fichiers
583 Après le second argument, des paires d'arguments additionnels peuvent être ajoutées
584 afin de spécifier des expressions régulières de remplacement devant être exécutées
585 sur les informations du lien inséré avant son insertion dans la chaîne de sortie.
586 Un argument non apparié sera ignoré. Afin de spécifier des remplacements sans effectuer
587 de filtrage sur les types de fichiers, utilisez un second argument vide.
590 Les séquences d'échappement pour les informations incluses sont les suivantes :
593 <li><code>\i</code> : Cela insère l'index d'itération (débutant
594 à 1), et peut être utile si la liste des fichiers en sortie
595 doit être énumérée.</li>
596 <li><code>\p</code> : Cela insère le chemin de fichier d'un lien de fichier.</li>
597 <li><code>\f</code> : Cela insère le nom du type du lien de fichier.</li>
598 <li><code>\x</code> : Cela insère l'extension de fichier, si elle existe.</li>
599 <li><code>\d</code> : Cela insère la description du lien de fichier, si elle existe.</li>
602 Par exemple, une entrée pourrait contenir un lien de fichier vers le fichier
603 "/home/john/report.pdf" de type "PDF" avec la description "John's final report".
604 En utilisant le formateur WrapFileLinks avec l'argument suivant :
605 </p><code>\format[WrapFileLinks(\i. \d (\p))]{\file}</code>
606 <p>donnera la sortie suivante :</p>
608 1. John's final report (/home/john/report.pdf)
611 Si l'entrée contient un second lien de fichier vers le fichier "/home/john/draft.txt"
612 du type "Text file" avec la description 'An early "draft"', le sortie sera comme suit :</p>
614 1. John's final report (/home/john/report.pdf)
615 2. An early "draft" (/home/john/draft.txt)
619 Si le formateur a été appelé avec un second argument, la liste sera filtrée.
622 <p><code>\format[WrapFileLinks(\i. \d (\p),,text file)]{\file}</code></p>
623 <p>affichera uniquement le texte suivant :</p>
625 1. An early "draft" (/home/john/draft.txt)
630 Si l'on veut que cette sortie soit incluse dans une sortie en style XML,
631 les guillemets dans la description de fichier pourrait causer problème.
632 En ajoutant deux arguments additionnels pour traduire les guillemets en
633 caractères XML, on résoudra ce problème :</p>
634 <p><code>\format[WrapFileLinks(\i. \d (\p),,text file,",")]{\file}
636 <p>affichera la sortie suivante :</p>
638 1. An early "draft" (/home/john/draft.txt)
641 <p>Des paires de remplacement supplémentaires pourraient être ajoutées.</p>
644 <h3>Formateurs personnalisés</h3>
646 <p>Si aucun des formateurs disponibles ne peut faire ce que
647 vous désirez, vous pouvez ajouter le votre à
649 <code>net.sf.jabref.export.layout.LayoutFormatter</code>. Si
650 vous insérez votre propre classe dans
651 <code>net.sf.jabref.export.layout.format</code>, vous pouvez
652 appeler votre formateur en utilisant son nom de classe, comme
653 pour les formateurs standards. Sinon, vous devez appeler le
654 formateur par son nom complet (incluant le nom du paquetage).
655 Dans les deux cas, le formateur doit être dans votre
656 chemin de classe lorsque vous lancez JabRef</p>
658 <h2 id="NameFormatter">Utiliser des formateurs de nom
659 personnalisé</h2>
661 <p>À partir de JabRef 2.2, il est possible de
662 définir des formateurs de nom personnalisés et
663 utilisant la syntaxe des fichiers de style BibTeX. Cela permet
664 une flexibilité totale, mais c'est fastidieux à
667 <p>Vous pouvez définir votre propre formateur dans
668 l'onglet "Formateur de nom" des préférences en
669 utilisant le format suivant et en l'utilisant ensuite avec le
670 nom que vous avez défini comme de n'importe quel autre
672 <code><cas1>@<gamme11>@<format>@<gamme12>@<format>@<gamme13>...@@<br />
674 <cas2>@<gamme21>@... et ainsi de suite.</code>
676 <p>Ce format commence par séparer la tache de formatage
677 de la liste d'auteurs dans des cas dépendant du nombre
678 d'auteurs qu'il y a (c'est ainsi car certains formats
679 diffèrent en fonction du nombre d'auteurs). Chaque cas
680 individuel est séparé par @@ et contient les
681 instructions sur la façon de formater chaque auteur dans
682 le cas considéré. Ces instructions sont
683 séparées par un @.</p>
685 <p>Les cas sont identifiés en utilisant des entiers (1,
686 2, 3, etc.) ou le caractère * (correspondant à
687 n'importe quel nombre d'auteurs) et spécifieront le
688 formateur à appliquer s'il y a un nombre
689 inférieur ou égal d'auteurs.</p>
691 <p>Les gammes sont soit
692 <code><entier>..<entier></code>,
693 <code><entier></code> ou le caractère
694 <code>*</code> en utilisant un index basé sur 1 pour
695 indexer les auteurs d'une liste donnée d'auteurs. Les
696 index entiers peuvent être négatif afin de
697 signifier qu'ils commencent par la fin de la liste où -1
698 est le dernier auteur.</p>
700 <p>Par exemple, avec une liste d'auteurs comme "Joe Doe and
701 Mary Jane and Bruce Bar and Arthur Kay" :</p>
704 <li>1..3 affectera Joe, Mary and Bruce</li>
706 <li>4..4 affectera Arthur</li>
708 <li>* les affectera tous</li>
710 <li>2..-1 affectera Mary, Bruce and Arthur</li>
713 <p>Les chaînes de <code><format></code> utilisent
714 le format du formateur BibTeX :</p>
716 <p>Les quatre lettres v, f, l et j indiquent les parties du nom
717 von, first, last et jr qui sont utilisées entre
718 accolades. Une unique lettre v, f, l ou j indique que le nom
719 doit être abrégé. Si l'une de ces lettres
720 ou paires de lettres sont rencontrées, JabRef retournera
721 tous les noms respectifs (potentiellement
722 abrégés), mais l'expression totale entre
723 accolades est uniquement imprimée si la partie du nom
726 <p>Par exemple, si le format est "{ll} {vv {von Part}} {ff}" et
727 si les noms sont "Mary Kay and John von Neumann", alors JabRef
728 retournera "Kay Mary" (avec deux espaces entre le nom propre et
729 le prénom) et "Neuman von von Part John".</p>
731 <p>Je donne ici deux exemples, mais je préférerai
732 vous diriger vers la documentations BibTeX.</p>
734 <p>Exemple court : <code>"{ll}, {f.}"</code> va convertir
735 <code>"Joe Doe"</code> en <code>"Doe, J."</code></p>
737 <p>Exemple long :</p>
740 <p>Pour convertir :</p>
742 <p><code>"Joe Doe and Mary Jane and Bruce Bar and Arthur
747 <p><code>"Doe, J., Jane, M., Bar, B. and Kay,
750 <p>vous devrez utiliser</p>
752 <p><code>1@*@{ll}, {f}.@@2@1@{ll}, {f}.@2@ and {ll},
753 {f}.@@*@1..-3@{ll}, {f}., @-2@{ll}, {f}.@-1@ and {ll},
757 <p>Si quelqu'un souhaite écrire un meilleur didacticiel
758 sur ce sujet, envoyez un courriel sur l'une des listes de
759 diffusion de JabRef !</p>