下一页 上一页 目录

13. TeX / LaTeX

为了在 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 找到。


下一页 上一页 目录