为了在 TeX 中生成带变音符号的字母,您通常需要输入
\^C \^c \^G \^g \^H \^h \^J \^{\j} \^S \^s \u{U} \u{u}
顺便说一句,\j 是指不带点的 'j'。 然而,如果您编写长篇文本,编写这些命令会有些乏味。 因此,创建一个包含以下内容的 esperanto.sty 文件是有利的
\let\mathcaret=^
\def\esperantocaret#1{
\ifx#1u\u{#1}\else
\ifx#1U\u{#1}\else
\ifx#1j\^{\j}\else
\^{#1}\fi\fi\fi
}
\catcode`\^=\active
\def^{\ifmmode\let\next\mathcaret
\else\let\next\esperantocaret
\fi\next}
这允许您使用 ^C ^c ... ^U ^u 来表示世界语字母。 使事情变得有点复杂的是,符号 ^ 也用于数学模式中的上标,即用于数学公式。 因此,您不能在公式中使用这些缩写。 (因此,在上面的定义中也出现了带有 "mathcaret" 的令人困惑的行)
然而,上述解决方案可能会导致宏或数学公式出现各种问题。 因此,Albert Reiner 发给我一个更好的解决方案,它使用度数符号代替插入符号
\gdef\espon{\catcode`\*\active\relax}%
\gdef\espoff{\catcode`\*12\relax}%
%
{%
\catcode`\@11 % por kasxi kelkajn makrojn
\espon % ensxalti Esperanton por la difinoj
\gdef*{\relax\esper@nto}%
\gdef\esper@nto#1{%
\ifx #1C\^C%
\else\ifx #1c\^c%
\else\ifx #1G\^G%
\else\ifx #1g\^g%
\else\ifx #1H\^H%
\else\ifx #1h\^h%
\else\ifx #1J\^J%
\else\ifx #1j\^\j%
\else\ifx #1S\^S%
\else\ifx #1s\^s%
\else\ifx #1U\u U%
\else\ifx #1u\u u%
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
}%
\espon % ensxalti Esperanton
(注:在上面的例子中,将星号 * 替换为度数符号 °。SGML 文档类型的语法不正确处理该位置的度数符号。)
如果您在您喜欢的编辑器中启用了 Latin-3 的使用,您也可以直接将 Latin-3 代码翻译成世界语符号
\catcode`\cx=\active \defcx{\^c}
\catcode`\gx=\active \defgx{\^g}
\catcode`\hx=\active \defhx{\^h}
\catcode`\jx=\active \defjx{\^\j}
\catcode`\sx=\active \defsx{\^s}
\catcode`\ux=\active \defux{\u u}
\catcode`\Cx=\active \defCx{\^C}
\catcode`\Gx=\active \defGx{\^G}
\catcode`\Hx=\active \defHx{\^H}
\catcode`\Jx=\active \defJx{\^J}
\catcode`\Sx=\active \defSx{\^S}
\catcode`\Ux=\active \defUx{\u U}
注意: 在上面的示例中,您必须在每行的左右两侧将世界语字母 cx ... Ux 替换为正确的 Latin-3 代码对应的字母。
顺便说一句,更全面的 esperanto.sty 文件包含在 LaTeX2e 的 Babel 软件包中。 只需使用 locate esperant
检查一下,看看它是否已经安装在您那里。 例如,它还会在目录和索引中创建世界语标题。
要使用该软件包,请输入
在 TeX 下
\input{esperant.sty}
在 LaTeX 下
\usepackage[esperanto]{babel}
一个问题是,在非标准的 "Computer Modern" 字体中找不到无点 j。 为了隐藏 j 上面的点,存在 dotlessj.sty 文件。 关于它的详细信息可以在 Edmundo 找到。