lualatex:全局更改特定字符(IPA)[U+0250,U+02AF]的字体

lualatex:全局更改特定字符(IPA)[U+0250,U+02AF]的字体

我使用 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}

在此处输入图片描述

相关内容