如何将 OpenType 字体与纯 LuaTeX 一起使用?

如何将 OpenType 字体与纯 LuaTeX 一起使用?

是否可以使用纯格式的 LuaTeX 来获得 OpenType 字体?

我努力了:

\font\test="texgyrepagellaregular"\test test\bye

但我明白了! Font \test=texgyrepagellaregular not loadable: metric data not found or bad.

mtxrun --script fonts --list --all --pattern=pagella当我按照以下说明操作时,显示上述字体名称http://wiki.contextgarden.net/Fonts_in_LuaTeX

但在实际使用字体时,页面切换到 ConTeXt 而不是 LuaTeX,这让我想知道是否可以将 OT 字体与普通字体一起使用?

更新

尽管现在对于位于我的主目录中的字体(OSX Lion、BasicTeX2012、luatex-plain按照以下说明构建的 -format)来说,这可以正常工作,但我无法使用位于系统目录中的字体。因此,虽然上述示例(使用texgyrepagellaregular)有效,但mtxrun-script 显示其位置为~/Library/Fonts,而以下示例无效:

\font\test="minionproregular"

大概是因为mtxrun显示其位置为/Library/Fonts(同样的问题似乎与里面的字体有关/System/Library/Fonts)。

现在,我添加了~/.zshrc

export OSFONTDIR=/System/Library/Fonts:/Library/Fonts:$OSFONTDIR

之后我能够使用mtxrun --script fonts --reload以下方法更新字体数据库这些说明),现在mtxrun列表确实显示了所有字体。只是luatex-plain看不到它们。

我怎样才能luatex-plain看到字体mtxrun

答案1

让我再加点困惑:实际上有两种格式可用于使用 LuaTeX 运行 Plain!其中一种格式是在运行 luatexTeX Live 等命令时调用的格式;egreg 已在 他的回答

然而,还有另一种格式,称为luatex-plain。由于它自带了字体加载器,因此它的优点是无需额外软件包即可使用 OpenType 字体。这是一个演示(第二部分需要 Adob​​e 提供的免费 Minion Pro 字体):

\font\iwonaregular   =file:Iwona-Regular    at 12pt
\font\iwonaitalic    =file:Iwona-Italic     at 12pt
\font\iwonabold      =file:Iwona-Bold       at 12pt
\font\iwonabolditalic=file:Iwona-BoldItalic at 12pt

{\iwonaregular     foo}\par
{\iwonaitalic      bar}\par
{\iwonabold        baz}\par
{\iwonabolditalic  xyzzy}\par

\font\minionproliningfigures =file:MinionPro_Regular         at 12pt
\font\minionprotextfigures   =file:MinionPro_Regular:+onum;  at 12pt
\font\minionprosmallcaps     =file:MinionPro_Regular:+smcp;  at 12pt

{\minionproliningfigures  0123456789abcdef}\par
{\minionprotextfigures    0123456789abcdef}\par
{\minionprosmallcaps      0123456789abcdef}\par %% implicit +onum!

\bye

字体定义演示

有关更复杂的例子,请参阅 测试文件

luatex-plain与 ConTeXt 一起分发并可通过目录下的 TeX Live 获得texmf-dist/tex/generic/context/luatex/。(专家提示:构建格式,然后将luatex二进制文件符号链接到luatex-plain,这样您就不必指定参数--fmt 。)

答案2

LuaTeX 本身具有与 pdfTeX 相同的字体支持。但是,使用正确的 Lua 代码可以扩展字体支持,这正是 的工作luaotfload.lualuaotfload.sty文件也可以使用纯 LuaTeX 格式加载。

尝试编译以下文件luatex(请注意,“Linux Libertine O”在我的系统字体中,我只是用它作为示例。

\input luaotfload.sty
\font\x="texgyrepagella-regular.otf"

\font\liber="Linux Libertine O/I=5:+smcp" at 12pt

\x

abcdef

\liber

abcdef

\bye

在此处输入图片描述

相关内容