
我需要參考\frametitle
我用新命令標記的部分\mylabel
。這是程式碼
\documentclass{beamer}
\makeatletter
\newcommand*{\mylabel}[2]{%
\@bsphack
\begingroup
\def\@currentlabel{#2}%
\label{#1}%
\endgroup
\@esphack
}
\makeatother
\begin{document}
\section[Title 1]{This is a long title that gos on very long long long long long
long long title more long long }{\mylabel{LabelTopic1}{This is a long title that
gos on very long long long long long long long title more long long }}
\frame<presentation>{\frametitle{\ref{LabelTopic1}}}
\end{document}
這就是我所擁有的
問題是名稱太長,無法容納在 FrameTitle 的一行中,且該行不會中斷。我認為命令中缺少某些內容\mylabel
。但我不知道是什麼。
感謝您的任何幫助
答案1
標題和部分名稱就是所謂的移動參數,並且應保護其中的巨集免受壞兆頭和荷蘭天氣的影響。 (如果有興趣,請額外閱讀:為什麼使用 \DeclareTextFontCommand 而不是僅使用 \newcommand?) 編譯兩次
\documentclass{beamer}
\makeatletter
\newcommand*{\mylabel}[2]{%
\@bsphack%
\begingroup%
\def\@currentlabel{#2}%
\label{#1}%
\endgroup%
\@esphack%
}
\makeatother
\begin{document}
\section[Title 1]{This is a long title that gos on very long long long
long long long long title more long long }{% Watch the next line
\protect\mylabel{LabelTopic1}{This is a long title that gos on very
long long long long long long long title more long long}%
}
\frame<presentation>{\frametitle{\ref{LabelTopic1}}}
\end{document}