Accueil > LaTeX > BibLaTeX > Ne pas afficher les sous-entrées bibliographiques

Ne pas afficher les sous-entrées bibliographiques

dimanche 4 septembre 2011, par Maïeul

J’utilise la technique des sous-entrées bibliographiques pour gérer la division des sources primaires. J’en suis très satisfait. Toutefois cette technique a un inconvénient : elle affiche ces sous-entrées dans la bibliographie finale, ce qui peut s’avérer non pertinent [1]

Comment faire pour éviter cela ? Il faut utiliser la possibilité de filtrer la commande \printbibliography, en utilisant l’option check, en corrélation avec la commande \defbibcheck.

Principe

Lorsque j’appelle la commande \printbibliography, je lui passe l’argument check=principaux :

\printbibliography[check=principaux]

Et j’écris les lignes suivantes dans mon préambule [2] :

\defbibcheck{principaux}{%
\iffieldundef{crossref}{}{\skipentry}}%

La première ligne signifie que je définis un manière de contrôler le contenu de la bibliographie, cette manière est appelée « principaux ».
La ligne suivante contient le contenu de cette définition : je teste si le champ crossref est non défini (\iffieldundef{crossref}), si c’est le cas, je ne fais rien de spécial ; en revanche si ce n’est pas le cas — c’est à dire si le champ est défini — alors je décide ne pas afficher l’entrée dans la bibliographie (\skipentry).

Je constate avec les entrées suivantes :

@book{DeDoctChrIIviii18-20,
	Crossref = {DeDoctChr},
	Pages = {150-155},
	Titleaddon = {II, \textsc{viii}, 12-13}}

@book{DeDoctChr,
	Annotator = {Isabelle Bochet and Goulven Madec},
	Author = {Augustin},
	Editor = {Madeleine Moreau},
	Introduction = {Madeleine Moreau},
	Number = {11 / 2},
	Read = {1},
	Series = {Bibliothèque Augustinienne},
	Title = {De doctrina christiana},
	Translator = {Madeleine Moreau}}

que mon code semble fonctionner, puisque je n’ai que l’entrée principale, DeDoctChr, qui apparaît dans la bibliographie.

Oui, mais …

Il peut m’arriver d’utiliser le champ crossref autrement que pour indiquer une division de source. Par exemple l’entrée suivante :

@inbook{DeDoctChrintro,
	Author = {Madeleine Moreau},
	Crossref = {DeDoctChr},
	Pages = {9-62},
	Title = {Introduction}}

Il est légitime que cette entrée soit affichée dans la bibliographie finale. Heureusement, je sais aisément distinguer les sous-entrées indiquant une division de source des sous-entrées « classique » : les premières utilisent le champ titleaddon, les autres non.

Je vais donc procéder à un test sur l’existence du champ titleaddon, grâce à la commande \iffieldundef. Ce qui me donne :

\defbibcheck{principaux}{%
\iffieldundef{crossref}{}{%
	\iffieldundef{titleaddon}{}{%
		\skipentry%
		}%
	}%
}%

Notez la disposition des accolades, pour mieux lire le code.

Avec ceci, mon introduction faite par Madeleine Moreau apparaît bien dans la bibliographie finale.


[1Selon le type de travail que je produis.

[2Ou ailleurs.

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)