Accueil > LaTeX > (r)(e)led(mac/par) > Combiner Ledpar et Bibleref
Combiner Ledpar et Bibleref
samedi 29 octobre 2011, par
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
[1] Alors même que je suis censé en être le mainteneur !
[2] C’est le fameux \makeatletter
et \makeatother
qui permet éventuellement de les utiliser dans un fichier .tex.
[3] En langage TeXnique, notre commande \bibleverse
est dite « fragile ».