我使用 lualatex。我的 tex 文件包含字符 ɛ 以及:
\newfontfamily\ipafont{Doulos SIL}
\DeclareTextFontCommand{\textipafont}{\ipafont}
现在我可以这样做:
\textipafont{ɛ}
正确呈现该字符。
但是:如何全局定义 [ U+0250 , U+02AF ] 内的所有字符都被 \textipafont 包围?
最好的情况是:我输入 ɛ,LaTeX 会自动将该字符的字体更改为 Doulos SIL。
答案1
您可以使字符活跃并为其提供定义:
\documentclass[12pt]{book}
\usepackage{fontspec}
\newfontfamily\ipafont{Doulos SIL}
\DeclareTextFontCommand{\textipafont}{\ipafont}
\usepackage{newunicodechar}
\newunicodechar{ɛ}{\textipafont{ɛ}}
\begin{document}
abc ɛ
\end{document}
您还可以将字体定义为后备字体(颜色仅适用于演示)。这有点实验性,有关详细信息,请参阅 luaotfload 文档
\documentclass[12pt]{book}
\usepackage{fontspec}
\directlua
{luaotfload.add_fallback
("ipafallback",
{
"DoulosSIL:mode=node;color=FF0000;"
}
)
}
\directlua
{luaotfload.add_fallback
("ipafallbackslanted",
{
"DoulosSIL:mode=node;slant=0.2;color=FF0000;"
}
)
}
\setmainfont{LatinModernRoman}[%
RawFeature={fallback=ipafallback},
ItalicFeatures={RawFeature={fallback=ipafallbackslanted}}
]
\begin{document}
blub hɛˈləʊ wɜːld
\large blub hɛˈləʊ wɜːld
\itshape blub hɛˈləʊ wɜːld
\end{document}