OPmac 存在 xetex/luatex、OpenType 字体和西班牙语连字符问题

OPmac 存在 xetex/luatex、OpenType 字体和西班牙语连字符问题

这是使用 pdfcsplain、xetex 和 luatex 在纯 TeX 中显示西班牙语连字符和 UTF8 字符我尝试使用或不使用 OPmac 来处理pdfcsplain西班牙语文档。

在引用的问题中,egreg 针对西班牙语连字符xetex/的解决方案luatex对于普通文本非常有效,...但对于 OPmac 宏,我发现了两个问题:

1) 加载 OpenType 字体,因为 egreg 的 MWE 似乎与 OPmac 宏不兼容,因为文本或 \tit Mañana丢失\sec Mañanañ使用默认字体打印“Maana”(但在普通文本中是可以的)。

这是一个小问题,因为 \input ucode加号\input cs-xxxxx(其中xxxxx必须是 TeX Gyre 字体)产生了正确的输出(这是一个有点有限的解决方案,但幸运的是有一个不错的字体系列)。

2)最严重的问题与连字解决方案有关,因为或宏\uselanguage{espanol}会产生错误,因此无法编译 PDF。\caption/f\caption/t

要测试的最小不工作示例:

\font\tenrm="DejaVu Serif" at 12pt  
\tenrm
\input opmac

\tit  Mañana % Missing "ñ'', without DejaVu Serif

\sec Mañana % Missing "ñ'' without DejaVu Serif 

Mañana  % No problem 

\input ucode 
\input cs-pagella  % only TeX Gyre fonts (try \input cs-charter)  

\tit  Mañana % Now OK

\sec Mañana % Now OK

\uselanguage{espanol} % Spanish hyphenation (see egreg's answer)

\caption/f Test % Error only due to \uselanguage{espanol}

\bye

答案1

我认为您需要以标准xetexluatex格式运行 OPmac。它们是使用etex.src宏生成的,并且所有语言的连字符都已预加载。因此,您无需重新生成格式,只需xetex在命令行上运行即可。

\uselanguage{espanol}西班牙语连字符模式按上述格式在文档中激活。

OPmac 使用三个自动生成的单词:章节、表格、图表。它必须知道这些单词在所选语言中的翻译。但只有捷克语和斯洛伐克语翻译可用,因为 OPmac 的作者不是多语言人士(:)。因此,您必须用您的语言设置这三个单词。如果您要\mtext在宏中使用宏(多语言文本),则需要更多单词。

此外,必须设置所用语言的快捷方式:es对于西班牙语。OPmac 仅设置encssk。这些快捷方式仅在 csplain 中为所有语言设置,但您使用的是etex.src宏格式。因此,您必须这样写:

{\uselanguage{espanol}  \sxdef{lan:\the\language}{es}}

这是 OPmac 文档中的错误,没有提到这一点。我希望这个问题能得到纠正。感谢您的测试和报告。

最后,您可以使用 OTF 字体,但要加载所有变体:\tenrm\tenit和。这意味着,您必须加载整个系列。然后粗体变体用于标题。您的错误是未加载粗体变\tenbf\tenbi。然后默认的 Knuth 非 OTF 字体用于标题。

OPmac 使用 csplain 的字体选择系统:如果加载了整个系列\tenrm\tenit和,\tenbf则将\tenbi以所有所需大小使用它。文档中普通文本的大小由设置。使用原始字体时\typosize不要使用at12pt子句。\font

你的例子看起来像:

\input opmac

\font\tenrm="DejaVu Serif"
\font\tenbf="DejaVu Serif/B"
\font\tenit="DejaVu Serif/I"
\font\tenbi="DejaVu Serif/IB"
\tenrm

{\uselanguage{espanol}  \sxdef{lan:\the\language}{es}}

\sdef{mt:chap:es}{Capítulo}
\sdef{mt:t:es}{Tabla}
\sdef{mt:f:es}{Figura}

\uselanguage{espanol} % Spanish hyphenation
\typosize[12/14.4]

\tit  Mañana

\sec Mañana

Mañana

\caption/f Test 

\bye

使用xetex example或进行处理luatex example

答案2

OPmac 默认设计为与 csplain 兼容,因此您无需摆弄其他格式。您可以按照给出的说明为更多语言(包括西班牙语)添加连字符模式这里;之后,您需要按照说明为您最喜欢的引擎重新生成 csplain 格式这里. 确保已安装可用的西班牙语连字模式这里

相关内容