Que signifie l’erreur : « Token not allowed in PDFDocEncoded string » ?#
Message :
Token not allowed in PDFDocEncoded string
Origine : extension hyperref
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 suivant provoquera une erreur :
\newcommand{\filled}[2]{%
#1%
\hfil
#2%
}
\section{\filled{truc}{bidule}}
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 :
le premier est ce qui est composé ;
le second est ce qui est mis dans le signet.
Par exemple, si vous cherchez à placer un seul espace dans le signet, il vous 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
).