我想要将 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}