.png)
Estou tentando remover \cite
, \footnote
, etc. dos títulos dos quadros do beamer para strings de PDF. Eu gero marcadores para todos os meus títulos de quadros usando \bookmark[page=\the\c@page,level=3]{\beamer@frametitle}
, portanto, sempre que esses comandos surgirem em um título de quadro, eles causarão problemas. Eu sei que posso resolver isso manualmente usando \texorpdfstring
, mas prefiro ter padrões que "simplesmente funcionem", pois esses erros são fáceis de ignorar.
Isso funciona bem para os casos básicos de \boldmath
and \cite{key}
, mas não consigo fazê-lo funcionar com comandos que possuem parâmetros opcionais, como
\footnote[frame]{footnote text}
Eu tentei por exemplo
\pdfstringdefDisableCommands{%
\def\boldmath{}% easy case you'll find in many examples
\def\cite{\@gobble}% supposedly does not work with optionals either
\renewcommand<>{\footnote}[1][]{}%
}
mas isso não funciona.
Exemplo minimamente funcional (o problema está no PDFfavoritos!):
\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}
Este arquivo terá um marcador como "Frametitle [frame]Footnote". Eu só quero "Frametitle". E quero resolver isso globalmente, não localmente, agrupando-o como \texorpdfstring{\footnote[frame]{Footnote}}{}
(isso funciona, mas requer a análise individual de todos os quadros problemáticos).
Responder1
\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}