Latex 中的 setmainfont 和混合脚本

Latex 中的 setmainfont 和混合脚本

我有一份混合了拉丁文和非洲文(提菲纳文)的文档。

\documentclass{book}
\usepackage{fontspec}
\setmainfont{Ebrima}

\begin{document}

ⵖⵉⴽⴽⴰⴷ ⵙ ⵎⵔⴰⵡ ⵉⵙⴳⴳⵯⴰⵙⵏ, ⵔⴰⴷ ⵢⵓⵜⵉ ⵍⵍⴱⴰⵙⵜⵉⴽ ⵉⵙⵍⵎⴰⵏ ⵖ ⵢⵉⵍⵍ.

Latin regular
\textbf{Latin bold}
\textit{Latin italics}

\end{document}

事实证明,拉丁文字可以正确显示为粗体,但无法显示为斜体。这是为什么呢?有没有一种方便的方法可以在一个文档中混合拉丁文字和非洲文字,同时仍保留适用于拉丁文字的斜体?

答案1

如果我前往Microsoft 的 Ebrima 排版页面,我看到了“其他变体:Ebrima Bold”,但没有斜体版本。我认为这就是问题的根源。我的电脑上没有 Ebrima,但我怀疑如果我尝试使用 Noto Sans Tifinagh,你会收到类似于我收到的警告消息:

LaTeX Font Warning: Font shape `EU1/NotoSansTifinagh(0)/m/it' undefined
(Font)              using `EU1/NotoSansTifinagh(0)/m/n' instead on input line 1

和:

LaTeX Font Warning: Some font shapes were not available, defaults substituted.

这里的问题是,要使用\textit{...},您需要有斜体字体,而 Ebrima 似乎没有。同样,要使用 ,\textbf{...}您需要有粗体字体。有趣的是,Ebrima 似乎有其中一种,这就是为什么\textbf{...}有效而\textit{...}无效的原因。

很多人没有意识到斜体字其实并不只是斜体字。相反,它是一种完全不同的字体,每个字符都有完全不同的版本,专门设计成看起来像斜体手写体:

在印刷术中,斜体是一种基于书法手写风格的草书字体。由于受到书法的影响,斜体通常略微向右倾斜。

https://en.wikipedia.org/wiki/Italic_type

因此,许多高质量(以及一些不太高质量的)字体都会带有专门设计的斜体变体。

粗体其实也一样。你可以很轻松地伪造粗体,但你无法获得与定制粗体字符相同的高质量结果。然而,当我们使用斜体时,这一点尤其明显,许多字体都有带有完全不同字符的斜体变体。

然而,很多人都习惯了 Microsoft Word(和其他所见即所得程序)的魔力按钮。它的作用是选择字体的斜体变体(如果存在),但如果不存在,它只会用一点倾斜来伪造它,本质上是产生斜型,而不是真正的斜体。然而,再次,与粗体一样,最好的结果将从定制的倾斜/倾斜变体中获得,并且一些字体也带有其中一种,而不是将其留给某种算法。

总而言之,你正在设置文档以使用 Ebrima

\setmainfont{Ebrima}

然后你试图用 得到一些“斜体” \textit{}。问题是,当你使用 时\textit{},XeLaTeX 会尝试使用斜体变体,但天哪,没有这种变体。所以它会替换下一个最合适的变体,不幸的是,它只是直立版本。那么我们能做些什么呢?好吧,就像 Microsoft Word 一样,我们也可以伪造它:

\setmainfont[AutoFakeSlant=4.0]{Ebrima}

\textit{}现在将为您提供倾斜类型,尽管它可能看起来不如字体本身带有专门设计的倾斜变体那么好。

但是,从评论来看,您真正想要的并不是将整个文档设置为 Ebrima,而只是使用 Tifinagh 字体来表示 Tifinagh,因为默认的 Computer Modern 字体不支持 Tifinagh。好吧,这没问题,但是,您确实需要引入字体切换声明 - 否则 XeTeX 如何知道您想要使用不同的字体?因此,您要为此做的是:

\documentclass{book}
\usepackage{fontspec}
\newfontfamily{\TI}[AutoFakeSlant=0.3]{Noto Sans Tifinagh}

\begin{document}

Hello world, here is some English. {\TI ⵖⵉⴽⴽⴰⴷ ⵙ ⵎⵔⴰⵡ ⵉⵙⴳⴳⵯⴰⵙⵏ ⵔⴰⴷ
  ⵢⵓⵜⵉ ⵍⵍⴱⴰⵙⵜⵉⴽ ⵉⵙⵍⵎⴰⵏ ⵖ ⵢⵉⵍⵍ} \textit{Back to English. But this
  time, it's italic.} \textit{{\TI ⵖⵉⴽⴽⴰⴷ ⵙ ⵎⵔⴰⵡ ⵉⵙⴳⴳⵯⴰⵙⵏ ⵔⴰⴷ ⵢⵓⵜⵉ
    ⵍⵍⴱⴰⵙⵜⵉⴽ ⵉⵙⵍⵎⴰⵏ ⵖ ⵢⵉⵍⵍ}}

\end{document}

在此处输入图片描述

我按照您的要求使用了AutoFakeSlant提非纳语的“斜体”选项,但值得注意的是,草书斜体实际上是适用于某些字母的西方概念。我怀疑提非纳语的草书形式是否类似于真正的拉丁斜体,但我确信提非纳语使用了斜体,就像英语和许多其他语言一样,而这正是您得到的AutoFakeSlant,但这确实是一个相当迂腐的脚注。

相关内容