Beamer新定理翻译

Beamer新定理翻译

考虑以下 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}spanishbeamer-translatorbabelspanishbabelbeamer\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

相关内容