Token not allowed in PDFDocEncoded string
L'extension hyperref produit cette erreur quand elle ne sait pas comment transformer quelque chose en un « caractère » qui ira dans l'un de ses champs de données du PDF. Par exemple, le code suivante provoquera une erreur :
\newcommand{\filled}[2]{% #1% \hfil #2% } \section{\filled{foo}{bar}}
Ici, hyperref vous indique qu'il procéde à une modification :
removing `\hfil' on input line ...
Cette suppression de la commande\hfil
n'est pas surprenante : comment feriez-vous pour composer l'effet d'une commande \hfil
dans un signet de PDF ?
L'extension vous permet de définir une méthode alternative pour de telles choses avec la commande \texorpdfstring
. Elle prend deux arguments :
Par exemple, ce que vous aimeriez probablement faire dans ce cas, c'est juste placer un seul espace dans le signet. Si tel est le cas, il faudrait alors écrire ceci :
\newcommand{\filled}[2]{% #1% \texorpdfstring{\hfil}{\space}% #2% } \section{\filled{foo}{bar}}
Avec cette définition, l'exemple est fonctionnel (hyperref connait la commande \space
).