我终于接受了它不值得尝试使用的事实TIPA
,fontspec
但是我确实喜欢它的字体。具体来说,我希望尽可能多地继续使用 Latin Modern/Computer Modern,当然,我并不想要为 IPA 单独设计字体。更糟糕的是,有些字形在 Latin Modern、Computer Modern 甚至 Computer Modern Unicode 中根本就不可用,例如 m̐,即:
如您所见,TIPA
确实有该字符。然而,Computer Modern Unicode 没有。“组合 candrabindu”字符的 Unicode 代码点为 U+0310,如您所见,该代码点在cm-unicode字体表. (完整字形由 bog 标准和 U+0310 结合 candrabindu 正确形成m
。)
所以,假设我忘记了TIPA
包并扔掉了 T3 编码,我至少可以使用该字体吗,无论是其原始的元字体形式,还是将其转换为 .TTF 格式?
显然,放弃 T3 编码将是一个不小的麻烦,因为字形将难以访问,输入文件可能会很乱。不过,我的输入文件已经很乱了,因为我使用的梵文字体在私人使用区域包含所有有趣的内容,而 Unicode 并不适用于吠陀梵文,所以我可以忍受。
(愿意接受替代解决方案,但不太愿意牺牲拉丁语/计算机现代(Unicode))
如果有人想玩点什么,这将TIPA
产生一个 m̐:
\documentclass[12pt]{article}
\usepackage{tipa}
\begin{document}
\textipa{\textdotbreve{m}}
\end{document}
和这个
\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{cmunrm.otf}
\begin{document}
m̐
\end{document}
将产生一个 m,旁边有一个框。
试图TIPA
与fontspec
意志混合...不会顺利。
答案1
您可以伪造重音(直到您能够说服 cm-unicode 的维护者将其添加到字体中)。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{cmunrm.otf}
% breve=02D8
% dot=02D9
\DeclareRobustCommand{\dotbreve}[1]{%
\begingroup
\sbox0{#1}%
\sbox2{\ooalign{\hidewidth^^^^02d8\hidewidth\cr\kern-0.025em^^^^02d9\cr}}%
\ooalign{%
\hidewidth\raisebox{\dimexpr\ht0-1ex}{\box2}\hidewidth\cr
\box0\cr
}%
\endgroup
}
\begin{document}
\dotbreve{m}\dotbreve{g}\dotbreve{A}
\end{document}
替代解决方案:仅对重音符号使用另一种字体。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{cmunrm.otf}
\newfontfamily{\altaccentfont}{FreeSerif}
\DeclareRobustCommand{\candrabindu}[1]{{%
\edef\currentfont{\the\font}%
\altaccentfont\accent"0981\currentfont#1%
}}
\begin{document}
\candrabindu{m}\candrabindu{g}\candrabindu{A}
\end{document}
您可能更喜欢 Linux Libertine 的 U+0310
\documentclass{article}
\usepackage{fontspec}
\setmainfont{cmunrm.otf}
\newfontfamily{\altaccentfont}{Linux Libertine O}
\DeclareRobustCommand{\candrabindu}[1]{%
{\edef\currentfont{\the\font}\altaccentfont\accent"0310\currentfont#1}%
}
\begin{document}
\candrabindu{m}\candrabindu{g}\candrabindu{A}
\end{document}