LaTeX 中的简单音译(拉丁语)

LaTeX 中的简单音译(拉丁语)

我想用两种或多种“拼写”排版相同的拉丁文本。

我的来源是现代化的拼写(区分 i/j、u/v),我想以有和没有这种区别的方式显示它。

因为我想继续使用 (pdf)LaTeX,所以我想到通过修改 lccodes 和 uccodes 来破解 \lowercase 宏。

这是一个工作示例,主要完成我想要的功能:

\documentclass{article}
\newcommand{\translit}[1]{\begingroup
  \lccode`\A=`\A
  \lccode`\B=`\B
  \lccode`\C=`\C
  \lccode`\D=`\D
  \lccode`\E=`\E
  \lccode`\F=`\F
  \lccode`\G=`\G
  \lccode`\H=`\H
  \lccode`\K=`\K
  \lccode`\L=`\L
  \lccode`\M=`\M
  \lccode`\N=`\N
  \lccode`\O=`\O
  \lccode`\P=`\P
  \lccode`\Q=`\Q
  \lccode`\R=`\R
  \lccode`\S=`\S
  \lccode`\T=`\T
  \lccode`\W=`\W
  \lccode`\X=`\X
  \lccode`\Y=`\Y
  \lccode`\Z=`\Z

  \lccode`\I=`\I
  \lccode`\J=`\I

  \lccode`\U=`\V
  \lccode`\V=`\V

  \lccode`\v=`\u
  \lccode`\j=`\i

  \uccode`\u=`\V
  \uccode`\j=`\I

\lowercase{#1}

\endgroup}

\begin{document}


\lowercase{Vero. Ubi et Orbi.  Nuper Quidem cum iam te adventare arbitraremur. ut queant laxis.}\par

\translit{Vero. Ubi et Orbi.  Nuper Quidem cum iam te adventare arbitraremur. ut queant laxis.}\par

% checks that the modification is local
\lowercase{Vero. Ubi et Orbi.  Nuper Quidem cum iam te adventare arbitraremur. ut queant laxis.}\par

\bigskip


Original version\par

{ Arma virumque cano, Troiae qui primus ab oris

Italiam, fato profugus, Laviniaque venit

litora, multum ille et terris iactatus et alto

vi superum saevae memorem Iunonis ob iram;

multa quoque et bello passus, dum conderet urbem,               

inferretque deos Latio, genus unde Latinum}

\medskip

Modified version\par

\translit{ Arma virumque cano, Troiae qui primus ab oris

Italiam, fato profugus, Laviniaque venit

litora, multum ille et terris iactatus et alto

vi superum saevae memorem Iunonis ob iram;

multa quoque et bello passus, dum conderet urbem,               

inferretque deos Latio, genus unde Latinum}


\end{document}

我的问题是:

  • 在 LaTeX 中有没有更合理的方法可以做到这一点(我现在宁愿不使用 XeTeX 或 ConTeXt)(无需本地更改代码)?

  • 我还考虑过构建拉丁巴别塔的方言,因为中世纪的设置不会这样做:它旨在改变标题和标题的大写规则。进行这种开发有几个好处(我需要对连字、连字符、印刷规则进行自定义操作),但现在对我来说似乎有点复杂,而且肯定需要软件包维护人员的大量帮助(我现在知道他们在 TeX.SE 上很活跃)。

  • 此技巧无法实现但我希望实现的一些功能:

    • 特殊对待单词的首字母。在某些古老的印刷传统中,如果小写 u/v 是单词的首字母,则输入 v,如果在单词内部,则输入 u。我认为这可能使用法语 Babel 语言文件中用于印刷惯例的相同机制来实现:使某些字符处于活动状态等。

    • 不要扰乱修饰词的连字模式

    • 尽管它适用于内联文本,但它也适用于存储在定义中的文本。

答案1

一种方法是使用一个虚拟字体,对 u 和 v 使用相同的字形(并且可选地将单词的开头与 v 连在一起(放置在字体中的其他位置),但你必须对每个字体都这样做,所以可能不方便

相关内容