Exemple de problème
Prenons l’entrée suivante :
@article{Cross1961,
Author = {F. Cross},
Journal = {The Journal of Theological Studies},
Pages = {222-247},
Title = {History and fiction in the African Canons},
Volume = {12},
Year = {1961}}
Si je fais \cite{Cross1961}
, j’obtiens ce que je souhaite :
F. Cross, « History and fiction in the African Canons », in : The Journal of Theological Studies 12 (1961), p. 222–247
En revanche, si je fais \cite[223]{Cross1961}
pour dire que je souhaite simple la page 223 de cet article, j’obtiens ceci :
F. Cross, « History and fiction in the African Canons », in : The Journal of Theological Studies 12 (1961), p. 222–247, p. 223
Ce qui n’est pas ce que je souhaite [1].
Je souhaiterais ceci :
F. Cross, « History and fiction in the African Canons », in : The Journal of Theological Studies 12 (1961), p. 223
Comment faire ? Il faut que je redéfinisse dans mon fichier .bbx
la manière dont s’affiche le champ pages
. Pour cela, je vais utiliser la commande \DeclareFielFormat
. Cette commande va prendre comme argument le nom du champ, ici pages
. Grâce à #1
, j’obtiendrais sa valeur.
J’utilise dedans la commande \iffieldundef
pour vérifier si un champ est vide, en l’occurrence le champ postnote
[2].
J’utilise également la commande \mkpageprefix
, qui affichera la page passée en second argument en fonction du champ de type pagination
passé en premier argument.
Ce qui donne :
\DeclareFieldFormat{pages}{
\iffieldundef{postnote}{\mkpageprefix[bookpagination]{#1}}{}
}
Si le champ postenote
est défini, alors on n’affiche pas la page. Sinon on l’affiche en utilisant le préfixe défini dans le champ bookpagination
[3], par défaut page
.
Cependant pour ma part j’ai opté pour ne pas utiliser le champ bookpagination
mais uniquement pagination
. Ce qui donne donc :
\DeclareFieldFormat{pages}{
\iffieldundef{postnote}{\mkpageprefix[bookpagination]{#1}}{}
}
Et là, miracle, tout fonctionne comme je souhaite.
Et si postnote
contient aussi des commentaires ?
Cependant si je fais, j’obtiens \cite[223 des commentaires]{Cross1961}
.
F. Cross, « History and fiction in the African Canons », in : The Journal of Theological Studies 12 (1961), 223 des commentaires
Et je n’ai plus mon p.
. Cependant, même avant je ne l’avais pas.
La solution est simple, il faut utiliser la commande \pno
, en faisant \cite[\pno 223 des commentaires]{Cross1961}
.
Ce qui me permet d’obtenir :
F. Cross, « History and fiction in the African Canons », in : The Journal of Theological Studies 12 (1961), p. 223 des commentaires
Et voilà !