Afficher ou non le(s) numéro(s) de page(s), selon le cas

mardi 18 janvier 2011, mise à jour mercredi 8 août 2012, par Maïeul
Suivre la vie du site RSS 2.0 Forum

Cet article est obsolète. Soit qu’il existe une manière plus « moderne » de procéder, soit que j’ai trouvé une autre méthode plus appropriée.
Voyez plutôt la nouvelle version : Précision des pages lors d’une citation.

Lorsqu’on entre une entrée de type @article dans un fichier BibTex, on peut préciser le numéro des pages.

Le problème est que, par défaut, avec BibLatex, si on précise la page précise lors d’une citation, avec \cite{page}{clef}, on obtient le numéro des pages rentrées en base de donnée et celui passé en argument. Comme éviter cela ?

Cet article est obsolète : biblatex propose désormais des options.

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à !

P.-S.

Je conseille vivement de lire mon article suivant, concernant la pagination des sources antiques.

Évidemment cette contribution n’est pas spécifique aux entrées de type @article.

Notes

[1Le seul cas où éventuellement je pourrais souhaiter ce type de résultat, c’est si j’avais un système de double pagination, avec par exemple une pagination générale pour la revue et une autre pour l’article. Ce n’est pas le cas dans la plupart des cas.

[2Il s’agit d’un faux champ, qui est calculé par BibLaTex en fonction des arguments passés aux commandes de citation.

[3Voir mon prochain article pour les champs de type pagination.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Acheter XeLaTeX appliqué aux sciences humaines

À propos

Titulaire d’un doctorat en théologie et d’un doctorat en histoire, sous la direction conjointe de Frédéric Amsler et d’Élisabeth_Malamut, je commence à partir du 1er août 2017 un travail d’édition critique des Actes de Barnabé.

Dans le cadre de la rédaction de mon mémoire de master puis de ma thèse de doctorat, j’ai été emmené à utiliser LaTeX, et j’ai donc décider de partager mes techniques. En effet, au cours de mes premiers apprentissages, j’ai découvert que les ressources indiquant les outils pour l’utilisation de LaTeX en sciences humaines étaient rares. Ceci m’a conduit à maintenir ou créer plusieurs packages LaTeX et à donner plusieurs formations.

J’ai reçu en 2018 le prix DANTE e.V pour mon travail autour de LaTeX, en particulier autour de reledmac et reledpar.

Par ailleurs, je suis membre actif de la communauté SPIP, au sein de laquelle j’administre le site Spip-Contrib. Je propose sur ce site quelques notes sur SPIP, en général à destination de webmestre.

Il m’arrive également de faire un petit peu de Python, de temps en temps.

Enfin, je tiens un blog de réflexions politiques et religieuses.

Maïeul