Combiner Ledpar et Bibleref

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