使用 TIPA 和 fontspec

使用 TIPA 和 fontspec

我正在尝试编写一个文档,其中包含许多不同脚本的字符(为此我使用 fontspec 并使用 xelatex 进行渲染)和 IPA 符号(为此我使用 TIPA)。通常,这可以正常工作,但是,我想对我的 IPA 符号使用 slshape。如果我听从手册的建议并使用

\textipa{\slshape f@"nEtIks}

或者

\textipa{\textsl{f@"nEtIks}}

加载 fontspec 后失败。文档正确呈现,但 IPA 符号显示为直立。如果我删除 fontspec,则此操作可正常工作,但 IPA 符号会倾斜。我尝试让 fontspec 使用 tipasl12,但找不到允许 fontspec 使用该字体的方法。无论我如何命名,fontspec 都找不到该字体。

这是我所拥有的 LaTeX,它可以生成正确的 IPA 符号,但它们却是直立的:

\documentclass[12pt,openany]{book}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{fontspec,xltxtra,xunicode}
\newfontfamily{\AR}[Script=Arabic]{Scheherazade}
\usepackage{tipa}

\begin{document}

  \textipa{\slshape f@"nEtIks}

\end{document}

但是,下面的方法可以完美运行,但是 - 显然 - 不允许我使用阿拉伯字符:

\documentclass[12pt,openany]{book}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{amsmath}
\usepackage{amssymb}
%\usepackage{fontspec,xltxtra,xunicode}
%\newfontfamily{\AR}[Script=Arabic]{Scheherazade}
\usepackage{tipa}

\begin{document}

  \textipa{\slshape f@"nEtIks}

\end{document}

答案1

阿拉伯字体不是因素。问题在于fontspec重新定义\textipa时假设拉丁现代字体具有 IPA 字形,而 Unicode 应该调用这些字形。

解决方案:恢复 IPA 的 Computer Modern 字体。

\documentclass[12pt,openany]{book}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tipa}
\usepackage{fontspec}
\newfontfamily{\AR}[Script=Arabic]{Scheherazade}

\begin{document}
\renewcommand\textipa[1]{{\fontfamily{cmr}\tipaencoding #1}}

  \textipa{\slshape f@"nEtIks}

\end{document}

更完整的版本,还考虑到打字机类型的需要:

\documentclass[12pt,openany]{book}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tipa}
\usepackage{fontspec}
\newfontfamily{\AR}[Script=Arabic]{Scheherazade}

\AtBeginDocument{
  \renewcommand\textipa[2][r]{{\fontfamily{cm#1}\tipaencoding #2}}
}

\renewenvironment{IPA}[1][r]
 {\fontfamily{cm#1}\tipaencoding}
 {}

\begin{document}

\textipa{\slshape f@"nEtIks}

\textipa[tt]{f@"nEtIks}

\begin{IPA}f@"nEtIks\end{IPA}

\begin{IPA}[tt]f@"nEtIks\end{IPA}

\begin{IPA}\slshape f@"nEtIks\end{IPA}


\end{document}

在此处输入图片描述

相关内容