在 OPmac 或其他普通宏中设置字体

在 OPmac 或其他普通宏中设置字体

OPmac 手册解释了如何设置字体尺寸并讨论了样式变化\bf\it\em。但我没有看到设置实际使用字体的方法。我正在使用 XeTeX 并希望访问系统字体。如果我使用例如设置字体,则\font\0="Roboto Condensed" at 10pt\0随后的 OPmac 样式变化会给我默认字体的变化,因此它似乎对我所做的更改不了解。这里有没有什么“技巧”可以用来通知 OPmac 我更改了字体?

更一般地说,如果有一个简单的 XeTeX 包可以帮助管理这样的字体切换,我很想了解它;我的搜索主要找到了管理 TeX 安装中字体切换的包。

答案1

ams-math.texopmac 在文件中使用和辅助宏定义了自己的字体选择方案\regtfm。不幸的是,据我所知,这个 fss 仅适用于普通的 tfm 字体。同样,不幸的是,这些宏仅以捷克语记录;幸运的是,它们很简单,但有些简洁。

答案2

我刚刚发现你可以诱使 XeTeX 使用系统范围的字体来显示文本普利夫能够fd从 LaTeX fss 读取普通文件。作为示例,我们将使用计算机现代 Unicode. 将以下代码复制到eu1cmr.fd.

\ProvidesFile{EU1cmr.fd}
   [2015/07/06 font definitions for EU1/cmr.]

\DeclareFontFamily{EU1}{cmr}{}

\DeclareFontShape{EU1}{cmr}{m}{n}{
   <-> "[cmunrm]:mapping=tex-text"
}{}

\DeclareFontShape{EU1}{cmr}{m}{it}{
   <-> "[cmunti]:mapping=tex-text"
}{}

\DeclareFontShape{EU1}{cmr}{b}{n}{
   <-> "[cmunbx]:mapping=tex-text"
}{}

\DeclareFontShape{EU1}{cmr}{b}{it}{
   <-> "[cmunbi]:mapping=tex-text"
}{}

% Fake Oblique

\DeclareFontShape{EU1}{cmr}{m}{sl}{
   <-> "[cmunsl]:mapping=tex-text"
}{}

\DeclareFontShape{EU1}{cmr}{b}{sl}{
   <-> "[cmunbl]:mapping=tex-text"
}{}

\DeclareFontShape{EU1}{cmr}{bx}{n}{<->ssub * cmr/b/n}{}
\DeclareFontShape{EU1}{cmr}{bx}{sl}{<->ssub * cmr/b/sl}{}
\DeclareFontShape{EU1}{cmr}{bx}{it}{<->ssub * cmr/b/it}{}

\endinput

然后就可以使用unicode字体来排版下面的例子了。

\input plnfss
\input eu1cmr.fd
\usefont{EU1}{cmr}{m}{n}
\obeylines\parindent0pt
De nuevo, ¡oh Salamanca!,
estoy aquí, de la prisión salido.
La frente toda blanca,
el cuerpo envejecido.
¡Si las canas me hiciesen más temido!
\bye

然后LaTeX的命令\textit\textbf等等均可用。

您可以根据XeTeX的规范添加其他字体属性。

相关内容