Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 7

02 Jul '13, 20:42

cgnieder's gravatar image

cgnieder
22.1k253463

Ein Beispiel, mit dem sich die Warnung erzeugen lässt, wäre folgendes \documentclass{article} \usepackage{hyperref} \begin{document} \section{$a+b=c$} \end{document} Im log steht zweimal: Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): (hyperref) removing `math shift' on input line 4. Die Warnung bedeutet, dass das in dem PDF-Lesezeichen, das `hyperref` für die `\section` anlegt, das Math-Shift-Token `$` nicht erlaubt ist und daher entfernt wird. Erklärt ist das in [`hyperref`s Dokumentation](http://texdoc.net/pkg/hyperref) (Abschnitt 4.1.2 _Replacement macros_) > `hyperref` takes the text for bookmarks > from the arguments of commands like > \section, which can contain things > like math, colors, or font changes, > none of which will display in > bookmarks as is. Was das bedeutet, wird an einem anderen Beispiel (Dank an Herbert!) noch deutlicher: \documentclass{article} \usepackage{hyperref} \begin{document} \section{$\int_a^b x^2 dx$} \end{document} Das Lesezeichen liest sich jetzt „ab x2 dx“, ist also nicht mehr wirklich sinnvoll zu interpretieren. Umgehen kann man die Warnung (und das u.U. „kaputte“ Lesezeichen), indem man mit `\texorpdfstring{<tex>}{<PDF>}` eine extra Eingabe für TeX und für das PDF-Lesezeichen angibt: \documentclass{article} \usepackage{hyperref} \begin{document} \section{\texorpdfstring{$a+b=c$}{a+b=c}} \section{\texorpdfstring{$\int_a^b x^2 dx$}{int\_a\textasciicircum b x\textasciicircum2 dx}} \end{document} Für Makros gibt es auch eine etwas automatischere Möglichkeit. Z.B. führt `\textsuperscript` zu den folgenden vielleicht etwas unerwarteten Warnungen: Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): (hyperref) removing `\mathsurround' on input line 4. Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): (hyperref) removing `\z@' on input line 4. Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): (hyperref) removing `superscript' on input line 4. Man kann aber `hyperref` sagen, dass es für die PDF-Lesezeichen eine andere Definition für `\textsuperscript` nehmen soll: \documentclass{article} \usepackage{hyperref} \pdfstringdefDisableCommands{% \def\textsuperscript#1{\textasciicircum(#1)}% } \begin{document} \section{x\textsuperscript{2}} \end{document}
Klicke auf Einblenden/Ausblenden von Überarbeitungen 6
Herberts Beispiel hinzugefügt

02 Jul '13, 20:40

cgnieder's gravatar image

cgnieder
22.1k253463

Ein Beispiel, mit dem sich die Warnung erzeugen lässt, wäre folgendes \documentclass{article} \usepackage{hyperref} \begin{document} \section{$a+b=c$} \end{document} Im log steht zweimal: Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): (hyperref) removing `math shift' on input line 4. Die Warnung bedeutet, dass das in dem PDF-Lesezeichen, das `hyperref` für die `\section` anlegt, das Math-Shift-Token `$` nicht erlaubt ist und daher entfernt wird. Erklärt ist das in [`hyperref`s Dokumentation](http://texdoc.net/pkg/hyperref) (Abschnitt 4.1.2 _Replacement macros_) > `hyperref` takes the text for bookmarks > from the arguments of commands like > \section, which can contain things > like math, colors, or font changes, > none of which will display in > bookmarks as is. Was das bedeutet, wird an einem anderen Beispiel (Dank an Herbert!) noch deutlicher: \documentclass{article} \usepackage{hyperref} \begin{document} \section{$\int_a^b x^2 dx$} \end{document} Das Lesezeichen liest sich jetzt „ab x2 dx“, ist also nicht mehr wirklich sinnvoll zu interpretieren. Umgehen kann man die Warnung, Warnung (und das u.U. „kaputte“ Lesezeichen), indem man mit `\texorpdfstring{<tex>}{<PDF>}` eine extra Eingabe für TeX und für das PDF-Lesezeichen angibt: \documentclass{article} \usepackage{hyperref} \begin{document} \section{\texorpdfstring{$a+b=c$}{a+b=c}} \end{document} Für Makros gibt es auch eine etwas automatischere Möglichkeit. Z.B. führt `\textsuperscript` zu den folgenden vielleicht etwas unerwarteten Warnungen: Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): (hyperref) removing `\mathsurround' on input line 4. Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): (hyperref) removing `\z@' on input line 4. Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): (hyperref) removing `superscript' on input line 4. Man kann aber `hyperref` sagen, dass es für die PDF-Lesezeichen eine andere Definition für `\textsuperscript` nehmen soll: \documentclass{article} \usepackage{hyperref} \pdfstringdefDisableCommands{% \def\textsuperscript#1{\textasciicircum(#1)}% } \begin{document} \section{x\textsuperscript{2}} \end{document}
Klicke auf Einblenden/Ausblenden von Überarbeitungen 5

02 Jul '13, 11:35

cgnieder's gravatar image

cgnieder
22.1k253463

Klicke auf Einblenden/Ausblenden von Überarbeitungen 4
falsche Formatierung korrigiert

02 Jul '13, 11:34

cgnieder's gravatar image

cgnieder
22.1k253463

Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

02 Jul '13, 10:10

cgnieder's gravatar image

cgnieder
22.1k253463

Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

02 Jul '13, 09:43

cgnieder's gravatar image

cgnieder
22.1k253463

Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

02 Jul '13, 09:23

cgnieder's gravatar image

cgnieder
22.1k253463