\DeclareTextFontCommand 与 IPA 字体 Doulos SIL 的意外行为

\DeclareTextFontCommand 与 IPA 字体 Doulos SIL 的意外行为

我想要将 IPA 中的一些文本分成如下所示的段落(我使用 xelatex):

ʄƥŊ
ƷƝʓɤⱤб

当我使用时\newcommand它可以工作(见下图),但当我使用时则不行\DeclareTextFontCommand。第一行缺少“ƥ”,第二行未打印(见下图中的红色箭头)。

当使用“普通”字符(“abc 123456789 ilmn xyz”)时,这两个命令都会将文本打印成两行。

但字符的印刷字体不同(请参阅蓝色框了解差异)。

我在这里错过了什么?

在此处输入图片描述

以下是重现该问题的代码

\documentclass{article}

\usepackage{fontspec}

\newfontfamily{\doulos}{Doulos SIL}
\DeclareTextFontCommand{\ipatextfontcommand}{\doulos}

\newcommand{\ipacommand}[1]{\doulos{#1}}

\begin{document}


{\ipatextfontcommand ʄƥŊ

ƷƝʓɤⱤб}

{\ipacommand ʄƥŊ

ƷƝʓɤⱤб}

{\ipatextfontcommand abc 1234567890 ilmn

xyz}

{\ipacommand abc 1234567890 ilmn

xyz}

\end{document}

更新:

当使用“DejaVu Sans”而不是“Doulos SIL”时,命令\DeclareTextFontCommand会在第一个“a”之后切换字体(参见下图中的红色箭头)。这在第一张图片中不太明显。

在此处输入图片描述

答案1

用 定义的命令\DeclareTextFontCommand需要文本作为参数并且不接受\par

您可以为 IPA 字体中的段落定义一个环境。

\documentclass{article}

\usepackage{fontspec}

\newfontfamily{\doulos}{Doulos SIL}
\DeclareTextFontCommand{\textipa}{\doulos}

\NewDocumentEnvironment{ipa}{}{\doulos}{}

\begin{document}


\textipa{ʄƥŊ ƷƝʓɤ б}

\begin{ipa}
ʄƥŊ

ƷƝʓɤ б
\end{ipa}

\end{document}

在此处输入图片描述

相关内容