Краткое название раздела в toc

Краткое название раздела в toc

Как отобразить краткое название раздела в оглавлении?

\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>}переключает обязательный на необязательный при записи в вспомогательные файлы.

Связанный контент