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à !
Afficher ou non le(s) numéro(s) de page(s), selon le cas