.png)
Ich versuche \cite
, \footnote
, , usw. aus den Beamer-Frame-Titeln für PDF-Strings zu entfernen. Ich generiere Lesezeichen für alle meine Frame-Titel mit \bookmark[page=\the\c@page,level=3]{\beamer@frametitle}
, daher verursachen solche Befehle, wenn sie in einem Frame-Titel vorkommen, Probleme. Ich weiß, dass ich diese manuell mit lösen kann \texorpdfstring
, aber ich hätte lieber Standardeinstellungen, die „einfach funktionieren“, da diese Fehler leicht übersehen werden.
Dies funktioniert in den grundlegenden Fällen von \boldmath
und einwandfrei \cite{key}
, aber ich bekomme es nicht mit Befehlen zum Laufen, die optionale Parameter haben, wie z. B.
\footnote[frame]{footnote text}
Ich habe zum Beispiel versucht
\pdfstringdefDisableCommands{%
\def\boldmath{}% easy case you'll find in many examples
\def\cite{\@gobble}% supposedly does not work with optionals either
\renewcommand<>{\footnote}[1][]{}%
}
aber das funktioniert nicht.
Minimal funktionierendes Beispiel (das Problem liegt im PDFMerkzettel!):
\documentclass{beamer}
\usepackage{hyperref,bookmark}
\makeatletter
\setbeamertemplate{frametitle}{\insertframetitle
\bookmark[page=\the\c@page,level=3]{\beamer@frametitle}}
\makeatother
\begin{document}
\begin{frame}{Frametitle \footnote[frame]{Footnote}}
Frame text
\end{frame}
\end{document}
Diese Datei wird ein Lesezeichen wie „Frametitle [frame]Footnote“ haben. Ich möchte nur „Frametitle“. Und ich möchte das global lösen, nicht lokal durch Umbrechen als \texorpdfstring{\footnote[frame]{Footnote}}{}
(das funktioniert, erfordert aber, alle problematischen Frames einzeln durchzugehen).
Antwort1
\documentclass{beamer}
\usepackage{hyperref,bookmark}
\usepackage{xparse}
\makeatletter
\setbeamertemplate{frametitle}{\insertframetitle
\bookmark[page=\the\c@page,level=3]{\beamer@frametitle}}
\makeatother
\NewExpandableDocumentCommand\gobbleoptandarg{om}{}
\pdfstringdefDisableCommands{\let\footnote\gobbleoptandarg}%
\begin{document}
\begin{frame}{Frametitle \footnote[frame]{Footnote}}
Frame text
\end{frame}
\end{document}