我在 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}
我强烈建议使用具有您需要的字符的字体。