
\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 の 1 行に収まらず、行が改行されないことです。コマンドに何かが欠けていると思います\mylabel
。しかし、何が欠けているのかはわかりません。
ご協力ありがとうございます
答え1
タイトルとセクション名は移動引数と呼ばれるもので、その中のマクロは不吉な兆候やオランダの天候から保護される必要があります。(興味があれば、追加の読み物:\DeclareTextFontCommand ではなく \newcommand を使用するのはなぜですか?) 2回コンパイルする
\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}