Как отобразить краткое название раздела в оглавлении?
\documentclass{beamer}
\begin{document}
\begin{frame}
\tableofcontents
\end{frame}
\section[short title]{long title}
\frame{}
\end{document}
В соответствии сhttps://tex.stackexchange.com/a/200141/36296Теоретически это должно сработать, или я неправильно понял ответ?
решение1
В настоящее время,beamer
вставляет записи ToC и Navigation для соответствия обязательной команде секционирования. Вам придется пропатчить каждый секционный блок отдельно, чтобы «исправить» это:
\documentclass{beamer}
\usepackage{etoolbox}
\makeatletter
% Insert [short title] for \section in ToC
\patchcmd{\beamer@section}{{#2}{\the\c@page}}{{#1}{\the\c@page}}{}{}
% Insert [short title] for \section in Navigation
\patchcmd{\beamer@section}{{\the\c@section}{\secname}}{{\the\c@section}{#1}}{}{}
% Insert [short title] for \subsection in ToC
\patchcmd{\beamer@subsection}{{#2}{\the\c@page}}{{#1}{\the\c@page}}{}{}
% Insert [short title] for \subsection in Navigation
\patchcmd{\beamer@subsection}{{\the\c@subsection}{#2}}{{\the\c@subsection}{#1}}{}{}
\makeatother
\begin{document}
\begin{frame}
\tableofcontents
\end{frame}
\section[short section]{long section}
\subsection[short subsection]{long subsection}
\frame{}
\end{document}
\beamer@section[#1]{#2}
и \beamer@subsection[#1]{#2}
действуют очень похоже на обычные \section[#1]{#2}
и \subsection[#1]{#2}
, записывая #2
в .toc
и .nav
вспомогательные файлы. Вышеуказанное \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
переключает обязательный на необязательный при записи в вспомогательные файлы.