Accueil > LaTeX > (r)(e)led(mac/par) > Combiner Ledpar et Bibleref

Combiner Ledpar et Bibleref

samedi 29 octobre 2011, par Maïeul

J’ai utilisé l’autre jour pour la première fois le package ledpar [1]

Dans l’une des mes colonnes, j’ai souhaité mettre des références bibliques, via la commande \bibleverse du package bibleref-french. Dans un précédent article, j’avais expliqué ma commande personnelle pour faciliter l’utilisation de ce package. J’ai donc souhaité l’utiliser. Et patatra, j’obtient eu une erreur de compilation !

Une jolie erreur de type « undefined control sequence ».
Après quelque temps de réflexions, j’ai compris d’où venait le problème. Pour pouvoir afficher ses lignes en parallèles, ledpar stocke le contenu dans des « boîtes ».

Or la commande \bibleverse est une commande « fragile ». Ce qui veut dire qu’elle est interprétée avant d’être stockée en boîtes.

Par conséquence, ce n’est pas elle qui est stockée en boîte, mais son contenu, à savoir l’appel à des commandes contenant des @. Or des telles commandes ne peuvent pas être appelées directement dans un fichier .tex, ou dans un boîte [2]. Par conséquent, cela provoque des erreurs de compilation [3].

La solution ? Protéger la commande avec \protect.

Par conséquent, il me faut remplacer

\newcommandx*\bible[3][1,2]{%
\ifthenelse{\equal{#1}{}}%
	{\emph{#3}}%						% Si on indique pas de  référence
	{%
	\emph{#3}\footnote{\bibleverse{#1}(#2)}%
	}%
}

par

\newcommandx*\bible[3][1,2]{%
\ifthenelse{\equal{#1}{}}%
	{\emph{#3}}%						% Si on indique pas de  référence
	{%
	\emph{#3}\footnote{\protect\bibleverse{#1}(#2)}%
	}%
}

Et voilà, plus d’erreur de compilation !


On pourra consulter une petite explication en anglais sur les commandes fragiles et robuste.

On peut également consulter [une petite explication sur makeatletter makeatother


[1Alors même que je suis censé en être le mainteneur !

[2C’est le fameux \makeatletter et \makeatother qui permet éventuellement de les utiliser dans un fichier .tex.

[3En langage TeXnique, notre commande \bibleverse est dite « fragile ».

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.)