Une macro
CSL permet de définir des règles et d'attribuer à cet ensemble de règles un nom : appeler la macro en indiquant son nom exécutera la commande et appliquera les règles définies. On peut ainsi écrire une seule fois une longue séquence de paramétrage pour un élément donné, et y faire ensuite référence lorsque l'on souhaite l'appliquer.
Les macro
économisent du code, et surtout facilitent la réuitilisation et la modification des styles. Pour modifier le formatage des noms d'auteur par exemple, il suffit ainsi de modifier la macro
correspondante, ou encore de copier-coller la macro
d'un autre style.
L'utilisation des macros fait partie des bonnes pratiques recommandées par Sebastian Karcher (plus connu des utilisateurs de Zotero sous son pseudonyme "adamsmith") :
Bonne pratique 2 : Utilisez abondamment les macros. Gardez les éléments
citation
et bibliography
brefs et ne leur intégrez qu'au minimum des éléments choose
.
Source : Adamsmith. Writing CSL - Features and Best Practices. The Zoteroist, 2013.
Auteur : Daniel Kulinski - CC-BY-NC-SA - Source : Flickr
La macro name="author"
définit la façon dont les noms d'auteur doivent être rédigés. Dans le style Nature, cette macro
est appelée uniquement dans bibliography
pour afficher le nom des auteurs. Examinons le détail des éléments et attributs utilisés.
sort-separator
: caractère entre le nom et le prénomdelimiter
: caractère entre chaque nom d’auteurand
: affichage du « et » entre le pénultième et le dernier nom d’auteur - valeurs symbol
ou text
initialize-with
: prénom remplacé par une initiale et éventuellement un caractère - si cet élément n’est pas présent, les prénoms sont restitués en entierdelimiter-precedes-last
: caractère de délimitation avant le nom du dernier auteur - valeurs contextual
, after-inverted-name
, always
ou never
name-as-sort-order
: le nom du ou des auteurs s’affiche selon l’ordre nom-prénom - valeurs all
ou first
et-al
: texte à afficher et mise en forme du « et al. » - voir : spécifications CSL : Et-alL'élément substitute
définit le substitut au nom de l'auteur à utiliser lorsque le champ Auteur de la notice Zotero est vide. Il doit faire référence à une macro
ou à une variable
, on ne peut pas utiliser un élément de type text term
ou text value
. Dans l'exemple ci-dessous, on utilise le résultat de la macro name="editor"
.
<macro name="author">
<names variable="author" delimiter=", ">
<name and="text" name-as-sort-order="first" sort-separator=", " initialize-with="." delimiter-precedes-last="never" delimiter=", "/>
<substitute>
<text macro="editor"/>
</substitute>
</names>
</macro>
La macro name="title"
du style Nature est un peu plus complexe que la macro name="author"
, car elle définit une mise en forme conditionnelle en fonction du type de document. Les conditions sont exprimées dans l'élément choose
.
if
définit la 1ère condition : si le document est un livre, un rapport, etc., le titre est affiché en italique (réf. 2 dans la bibliographie)else-if
définit la 2è condition : si le document est un chapitre, le titre du chapitre est omis (réf. 1 dans la bibliographie)else
définit ce qui s'applique dans tous les autres cas : si le document est d'un autre type que ceux indiqués dans les éléments if
et else-if
, le titre est affiché (réf. 3 dans la bibliographie).choose
peut avoir pour parent un autre élément que macro
: il peut être élément fils de l'élément layout
pour le paramétrage des notes par exemple.Les attributs des éléments if
et else-if
définissent les différents types de condition qu'il est possible de créer.
On peut indiquer plusieurs valeurs, sauf pour l’attribut desambiguate
.
desambiguate="true"
- la condition n’est réalisée que si elle permet de désambiguïser.is-numeric=" "
- valeur de l’attribut = variable
qui doit avoir un contenu numérique pour que la condition se réalise.is-uncertain-date=" "
- valeur de l’attribut = date
qui doit être incertaine pour que la condition se réalise.locator=" "
- valeur de l’attribut = locator
auquel la condition s’applique.position=" "
- utilisé pour le paramétrage des notes de bas de page ou de fin, cet attribut a un nombre de valeurs limité - plus de détail dans cette boîte.type=" "
- valeur de l’attribut = type de document auquel la condition s’applique - voir la correspondance entre les types de documents Zotero et CSL.variable=" "
- valeur de l’attribut = variable
dont l’absence ou la présence conditionne la réalisation de la condition.L'attribut match
définit l'opérateur à utiliser.
match="any"
= OU = la condition se réalise si au moins un des critères est rempliex : <if type="book thesis" match="any">
- la condition se réalise si le document est de type livre ou thèse
match="all"
= ET = la condition se réalise si tous les critères sont remplis.match="none"
= NON = la condition se réalise si aucun des critères n’est rempli.ex : <if variable="volume" match="none">
- la condition se réalise si la variable volume est absente, i. e. si le champ Volume de la notice Zotero est vide.
form="short"
Mise en forme d’une partie du nom - exemple, le nom de famille seulement est tout en majuscules :
<names variable="author">
<name form="long">
<name-part name="family" font-variant="capitalize-all"/>
</name>
</names>
Ajouterprefix
et suffix
Attributs de mise en forme typographique :
font-style="normal"
, "italic"
ou "oblique"
font-variant="normal"
ou "small-caps"
font-weight="normal"
, "bold"
ou "light"
Ajouter des guillemets : attribut quotes="true"
La date originale d’un document est exprimée par une variable de type date
, original-date.
Ex : <date variable="original-date" form="text" date-part="year"/>
La date originale doit être saisie dans le champ Extra de la notice Zotero, sous la forme : {:original-date: 1876}
.