我可以在“begin{}”中写一些希腊语吗?

我可以在“begin{}”中写一些希腊语吗?

我想在乳胶中写一个包含一些词条的文本。

所以我们可以使用命令

\begin{Lemma}
...
\end{Lemma} 

正确的??

我们可以用希腊语代替“Lemma”吗?

当我写作时

\begin{\textgreek{Λήμμα}}
    ...
\end{\textgreek{Λήμμα}} 

我收到一个错误...

我能做什么??

答案1

您可以使用 XeLaTeX 或 LuaLaTeX 来完成此操作,但不能使用 pdfLaTeX。

原因是 TeX(pdfTeX 所基于的版本)诞生于 Unicode 诞生之前。因此 TeX 本身并不理解 Unicode,这会导致一些“问题”。

让我们看一下 Unicode 字符ΛU+039B 希腊大写字母 LAMDA。当您的编辑器设置为 UTF-8 并输入 时Λ,编辑器实际上会记录文件中的字符(最好是字节):<CE><9B>。任何读取同一文件的 Unicode 兼容程序都会将字节识别<CE>为双字节编码字符的 UTF-8 前缀,查看下一个字节,在找到 之后<9B>,它会将这对字节解释为Λ 仿佛它从一开始就是一个独特的角色。

TeX 的情况则不同。它无法将两个、三个或四个字节的 UTF-8 字符解释为从一开始就是一个字符,因为 TeX 只识别字节。因此,在找到<CE><9B>它时,它只知道这两个字节。

幸运的是,TeX 可以理解宏定义,它可以用来仿真UTF-8。任何字符都可以变成宏,事实上,\usepackage[utf8]{inputenc}字节<CE>也可以变成宏。这个宏吸收下一个标记,并从中生成其他宏;对于<CE><9B>生成的宏,\textLambda它是 ,稍后将被解释为打印大写的 lambda。

因此,你想要的\begin{Λήμμα}不是给 TeX 解释一个字符序列来找到环境的名称,而是给 TeX 解释一个指令序列来打印希腊字母中的一个单词。

\begin{lemma}发现时, \lemma执行(定义在\newtheorem{lemma}处理时)。使用 pdfLaTeX 时,\begin{Λήμμα}如果不放弃几个更有用的构造,就不可能实现。

建立并接受\newtheorem这一点并不困难\newtheorem{Λήμμα}{Λήμμα},甚至重新定义\begin并正确解释这一点也不困难\begin{Λήμμα}。然而,这会破坏几个软件包:利弊平衡过于偏向弊端。

\newtheorem{Λήμμα}{Λήμμα}

\begin{Λήμμα}
...
\end{Λήμμα}

如果您使用 XeLaTeX 或 LuaLaTeX 来处理文档。但是,我认为这样做并没有什么真正的好处:在我看来,代码可重用性更为重要。


为了让事情更清楚:你可以做

\newtheorem{lemma}{Λήμμα}

可以使用任何引擎(如果引擎是 pdfLaTeX,则必须启用希腊语支持)。打印的标签可以是任何可打印的内容。象征性的源代码中使用的标签应为 ASCII 字符。

答案2

我猜你真正想要的是在你的格式化文档中看到单词“Λήμμα”;如何在那里找到它并不特别重要。正如@egreg在他的回答中所解释的那样,在命令名称的定义中包含非英语字符并不容易。幸运的是,该amsthm包(如果你正在使用,那么你大概正在使用它\newtheorem)可以让你无需在宏名称中使用希腊语就可以完成你想要的操作。

该命令的\newtheorem语法为:\newtheorem{commandname}{Displayed name}。使用它来定义你自己的词元环境,如下所示:

    \newtheorem{mylemma}{Λήμμα}

使用您想要的任何名称代替mylemma,但只能使用英文字母。如果您的文档设置为在常规文本中处理希腊文(在文档的“正文”中),则此定义应该有效。然后您只需输入\begin{mylemma}而不是\begin{Lemma},您就会看到Λήμμα 1等等。

顺便说一句,如果你想用希腊语写文字,你必须切换到 XeTeX 或 LuaTeX(我对它们了解不多,无法进行比较,但两者都可以)。特别是如果你是 latex 新手,我猜你是新手。根本不值得弄清楚如何让 pdftex 与 unicode 一起工作,因为替代方案对于此目的来说要强大得多(并且允许您使用您最喜欢的希腊字体)。

编辑:这是一个最小的可编译示例,因为您似乎不确定如何使用定理环境。(需要使用 XeLaTeX 进行编译。)如果您将来有疑问,请使用此类示例的版本。

\documentclass{article}

\usepackage{amsthm}
\newtheorem{mylemma}{Λήμμα}

\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}

\begin{document}    
\begin{mylemma}
x = x
\end{mylemma}

\begin{mylemma}
y = y
\end{mylemma}
\end{document}

相关内容