使用 lualatex 更改字体后特殊字符无法显示

使用 lualatex 更改字体后特殊字符无法显示

我在 lualatex 中使用了以下序言。我有许多使用非常规罗马字母的梵语单词,例如 ahaḿtattva、rúpa、tanmátra。

\documentclass[12pt, b5paper]{book}
\usepackage{fontspec}

它与默认字体配合得很好,直到我换了一种新字体:

\setmainfont{Calluna-Regular}

之前能正常工作的所有特殊字符现在都消失了。相反,我收到如下警告:

LaTeX Font Warning: Font shape `EU2/Calluna-Regular(0)/m/sl' undefined using `EU2/Calluna-Regular(0)/m/n' instead on input line 11.

如果我手动排版每个字符,例如\'{a},,\'{u}那么我可以恢复特殊字符。但在中不起作用\'{m},什么都不显示。使用\'{t}t只会显示正常字符。

使用 XeLaTeX 编译时,一些特殊字符(例如 )可以正确显示。我更喜欢使用 LuaLaTeX,因为它对 的microtype支持更好。

是不是因为我选择的字体不支持这些特殊字符?但是它支持\'{a}\'{u}等等。为什么它不像默认字体那样自动打印这些字符?

我可以将字体表重定向到正确的字体吗?如果可以,该怎么做?

我无法使用中的梵文支持polyglossia,因为我使用的是不同的罗马文字。

我想坚持使用新字体,用 LuaLaTeX 进行编译,并正确显示所有特殊字符。

答案1

Calluna 字体缺少 U+0301(组合尖音符),因此使用该字体的输入不会产生重音符。另一方面,和的预制字形á存在ú,但不存在ḿ(U+1E3F 带尖音符的拉丁小写字母 M)。Unicode 中没有“带尖音符的 t”,因此您也无法获得它。

但是,您可以使用较低级别的 TeX 功能,在这种情况下\accent

\documentclass[12pt, b5paper]{book}
\usepackage{fontspec}

\setmainfont{Calluna}

\newcommand{\ppacute}[1]{\accent"00B4 #1}

\begin{document}

aha\ppacute{m}tattva, rúpa, tanmátra

\ppacute{t}

\end{document}

在此处输入图片描述

我强烈建议使用具有您需要的字符的字体。

相关内容