我正在尝试将tipa
软件包与 一起使用fontspec
,但它们不能很好地协同工作。我读过之前的问题,试图解决出现的问题(例如这个),这就是我目前一直在使用的解决方案。
但是,我遇到了一个我无法真正理解的问题。下面我提供了一个(不切实际的简短)MWE,它取自上面链接的问题。实际文档要复杂得多,但这很好地说明了问题。以下文档编译时没有出现任何警告或错误:
\documentclass{article}
\usepackage{tipa}
\usepackage{fontspec}
\AtBeginDocument{
\renewcommand\textipa[2][r]{{\fontfamily{cm#1}\tipaencoding #2}}
}
\renewenvironment{IPA}[1][r]
{\fontfamily{cm#1}\tipaencoding}
{}
\begin{document}
\textipa{f@"nEtIks}
\end{document}
但是添加一行
\textipa{\~an\~a}
破坏了它。真正令人费解的是,即使启用了,编译也会在没有任何警告的情况下停止-interaction=nonstopmode
。在上面的例子中,我可以简单地使用\~an\~a
,而不需要tipa
环境,但在其他情况下,这不是一个选项。
我读过语言学论文建议,但由于我的所有转录都已使用输入出来tipa
,因此我不愿意放弃它并开始进行必要的字符映射探索。
有没有办法在仍在使用的环境\~
中使用?tipa
fontspec
答案1
这里的问题是xunicode
,正如在链接问题中观察到的那样,它tipa
假设拉丁现代具有适当的字形覆盖率,从而对系统进行了一些更改。解决这个问题最简单的方法可能是完全阻止xunicode
加载:
\documentclass{article}
\usepackage{tipa}
\expandafter\def\csname [email protected]\endcsname{}
\usepackage{fontspec}
\begin{document}
\textipa{\~O}
\end{document}
因为tipa
机制随后被搁置。请注意,这可能会破坏其他事物:结果将在很大程度上取决于所涉及的实际文档。(您可能需要手动“恢复”部分xunicode
。)