Chemin principal : Accueil > LaTeX > BibLaTeX > Afficher ou non le(s) numéro(s) de page(s), selon le cas

Autre chemin : (Aller directement au contenu de l'article)

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 :

  1. @article{Cross1961,
  2. Author = {F. Cross},
  3. Journal = {The Journal of Theological Studies},
  4. Pages = {222-247},
  5. Title = {History and fiction in the African Canons},
  6. Volume = {12},
  7. Year = {1961}}

Télécharger

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 :

  1. \DeclareFieldFormat{pages}{
  2. \iffieldundef{postnote}{\mkpageprefix[bookpagination]{#1}}{}
  3. }

Télécharger

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 :

  1. \DeclareFieldFormat{pages}{
  2. \iffieldundef{postnote}{\mkpageprefix[bookpagination]{#1}}{}
  3. }

Télécharger

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 formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

À propos

Titulaire d’un master en sciences religieuses de l’Université de Strasbourg, je suis depuis août 2012 assistant-diplômé en histoire du christianisme antique et littérature apocryphe chrétienne à l’Université de Lausanne, où je prépare une thèse sous la direction de Frédéric Amsler.

Dans le cadre de la rédaction de mon mémoire de master, 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.

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