![在 OPmac 或其他普通宏中设置字体](https://linux22.com/image/314468/%E5%9C%A8%20OPmac%20%E6%88%96%E5%85%B6%E4%BB%96%E6%99%AE%E9%80%9A%E5%AE%8F%E4%B8%AD%E8%AE%BE%E7%BD%AE%E5%AD%97%E4%BD%93.png)
OPmac 手册解释了如何设置字体尺寸并讨论了样式变化\bf
、\it
等\em
。但我没有看到设置实际使用字体的方法。我正在使用 XeTeX 并希望访问系统字体。如果我使用例如设置字体,则\font\0="Roboto Condensed" at 10pt\0
随后的 OPmac 样式变化会给我默认字体的变化,因此它似乎对我所做的更改不了解。这里有没有什么“技巧”可以用来通知 OPmac 我更改了字体?
更一般地说,如果有一个简单的 XeTeX 包可以帮助管理这样的字体切换,我很想了解它;我的搜索主要找到了管理 TeX 安装中字体切换的包。
答案1
ams-math.tex
opmac 在文件中使用和辅助宏定义了自己的字体选择方案\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的规范添加其他字体属性。