考虑以下 MWE:
\documentclass{beamer}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\uselanguage{Spanish}
\languagepath{Spanish}
\deftranslation[to=Spanish]{Proposition}{Proposición}
\newtheorem{proposition}[theorem]{Proposition}
\begin{document}
\begin{frame}
\begin{proposition}
Foo
\end{proposition}
\end{frame}
\end{document}
这将打印命题环境为,Proposition
我希望将其打印为Proposición
。我知道我可以将新环境定义为,\newtheorem{proposition}[theorem]{Proposición}
但我想知道是否可以自动完成翻译,即如果文档的语言是spanish
,并且新的定理环境定义为,则用西班牙语\newtheorem{proposition}[theorem]{Proposition}
打印该单词。Proposition
答案1
以下方法在现实世界中可能行不通,所以你必须尝试一下。不过,它至少为 MWE 产生了正确的结果。
\documentclass{beamer}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\uselanguage{Spanish}
\languagepath{Spanish}
\newtheorem{proposition}[theorem]{\translate{Proposition}}
\begin{document}
\begin{frame}
\begin{proposition}
Foo
\end{proposition}
\end{frame}
\end{document}
答案2
正如已经解释过的,Beamer
使用translator
(其特定babel
系统)。如果存在,您可以在选项dictionary
中引入语言名称来激活系统: 。此方法适用于系统和。如果仅作为选项传递,则需要将其应用于。beamer
\documentclass[spanish]{beamer}
spanish
beamer-translator
babel
spanish
babel
beamer
\uselanguage{spanish}\languagepath{spanish}
举个例子:
\documentclass[spanish]{beamer}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\newtheorem{proposition}[theorem]{Proposition}
\begin{document}
\begin{frame}
\begin{proposition}
Foo
\end{proposition}
\begin{theorem}
Foo2
\end{theorem}
\end{frame}
\end{document}
你会得到
如你所见,theorem
被翻译但proposition
不是。为什么?因为 定理、推论、事实、引理、问题、解决方案、定义和示例环境已经由 提供beamer
但 却没有proposition
。所有这些环境是如何声明的?看看beamerbasetheorems.sty
\newtheorem{corollary}[theorem]{\translate{Corollary}}
\newtheorem{fact}[theorem]{\translate{Fact}}
\newtheorem{lemma}[theorem]{\translate{Lemma}}
\newtheorem{problem}[theorem]{\translate{Problem}}
\newtheorem{solution}[theorem]{\translate{Solution}}
他们全都明确使用了translate
命令,正如 cfr 在其回答中所建议的那样。您可以执行相同的操作:
\newtheorem{proposition}[theorem]{\translate{Proposition}}
没有必要,\deftranslation
因为字典proposition
中已经有定义。translator