是否可以将 TIPA 的字体提供给 fontspec ?

是否可以将 TIPA 的字体提供给 fontspec ?

我终于接受了它不值得尝试使用的事实TIPAfontspec但是我确实喜欢它的字体。具体来说,我希望尽可能多地继续使用 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}


\end{document}

将产生一个 m,旁边有一个框。

在此处输入图片描述

试图TIPAfontspec意志混合...不会顺利

答案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}

在此处输入图片描述

答案2

\documentclass{article}
\usepackage{fontspec}
\setmainfont{cmunrm.otf}
\newfontface\LL{Linux Libertine O}
\def\dbm#1{{\LL#1\char"0310}}

\begin{document}
main font CM

\dbm{m}\dbm{g}

\end{document}

在此处输入图片描述

相关内容