babel、beamer 问题:拒绝更改部分名称

babel、beamer 问题:拒绝更改部分名称

我想将投影仪幻灯片中的名称从“部分”更改为“主题”。

因此,如果在 Google BOK 中发现:

\renewcommand*{\partname}{Theme}

我无法开始工作。然后我开始关闭(%)我添加的所有内容,发现:

\usepackage[english]{babel}

是钥匙的持有者。

MWE:

\documentclass[compress,infolines,smaller]{beamer}

%\usepackage[english]{babel}
\useinnertheme[shadow=true]{rounded}
\usecolortheme{beaver}

\renewcommand*{\partname}{Theme}


\begin{document}

\AtBeginLecture{
\begin{frame}
\titlepage
\end{frame}
}

\part{Title}
\begin{frame}<beamer>
\partpage
\end{frame}
\section{test1}
\begin{frame}
Test
\end{frame}

\end{document}

有办法解决这个问题吗?

答案1

这显然与如何babel管理诸如“固定标签”有关\partname

它将它们存储在一个名为\captions<language>(在本例中\captionsenglish)的宏中,该宏作为以下部分执行

\selectlanguage{<language>}

或者

\begin{otherlanguage}{<language>}

\selectlanguage文档主要语言的命令与 一起发出。\begin{document}因此,您的\renewcommand不执行任何操作,因为它被 执行的操作覆盖\selectlanguage{english}

babel对此有规定:

\addto\captionsenglish{\renewcommand{\partname}{Theme}}

就是你要找的。


\AtBeginDocument{\renewcommand{\partname}{Theme}}可以除非您加载babel多种语言并\selectlanguage在文档中发出一些命令。举个例子:

\documentclass{article}
\usepackage[italian,english]{babel}
\AtBeginDocument{\renewcommand{\partname}{Theme}

\begin{document}
\part{X}
Something in English.

\selectlanguage{italian}
Parole in italiano.

\selectlanguage{english}
\part{Y}
End in English.

\end{document}

会导致

主题一

一些英文内容。

意大利语假释

第二部分

以英文結束。

采用这种方法就不会发生这种情况\addto\captionsenglish

相关内容