我一直在尝试排版一份文件,其中很多的音标,我尝试使用 Tex Gyre Bonum 来表示主体,使用 Charis SIL 来表示音标。我尝试用 来加载这些fontspec
,但因涉及tipa
时不配合而闻名。fontspec
我最初的尝试(基于 egreg 对这问题)是重新定义textipa
命令以使用自定义字体:
\newfontfamily{\ipafont}{Charis SIL}
\AtBeginDocument{
\renewcommand\textipa[1]{{\ipafont\tipaencoding #1}}
}
但那没有用(见下图如何它不起作用)。奇怪的是,如果我在一个全新的命令中使用相同的指令并使用默认命令,它确实起作用了textipa
。但这当然意味着源代码不再可以使用常规命令进行编译tipa
...
所以,我如何才能重新定义textipa
使用我选择的字体而不必自己输入一些字符?
以下 MWE 显示了所有不同类型的失败:
\documentclass{article}
\usepackage{tipa}
% \expandafter\def\csname [email protected]\endcsname{}
\usepackage{fontspec}
\setmainfont{TeX Gyre Bonum}
\newfontfamily{\ipafont}{Charis SIL}
\newcommand{\mytipa}[1]{{\ipafont \textipa{#1}}}
\begin{document}
\begin{itemize}
\item This works only without \texttt{fontspec}:
\textipa{\t{\=*{t}S}}
\item With \texttt{fontspec} and custom \texttt{ipafont}
this fails:
{\ipafont \textipa{\t{\=*{t}S}}}
; but this works:
{\ipafont \textipa{\t{ṯS}}}
\item Likewise, with a custom command,
this fails:
\mytipa{\t{\=*{t}S}}
; but this works:
\mytipa{\t{ṯS}}
\renewcommand\textipa[1]{{\ipafont \tipaencoding #1}}
\item But with a redefined \texttt{textipa} command
this fails:
\textipa{\t{\=*{t}S}}
; and this \textit{also} fails:
\textipa{\t{ṯS}}
\end{itemize}
\end{document}
输出结果如下:
另外:在后续问题Joseph Wright 最近提供了一个解决方案,用于解决编译 MWE 时出现的类似问题(即开头的注释行)。但是,通过取消注释,您可以看到,尽管它使所有行都正常工作(ṯ
源代码中的行除外),但它使它们使用默认tipa
字体工作,这不是我想要的。
答案1
对你的问题的一个间接回答可能是根本不使用 TIPA。你可以改用 SIL 提供的 IPA 键盘来轻松输入 IPA 字符。
您可以在IPA Unicode 键盘。
答案2
旧xunicode
包将 tipa 符号转换为 Unicode。
组合变音符号,至少是倒置双短音符 (U+0361),需要帮助。(我还没有测试整个 CDM 块。)
该xunicode
包(在 xelatex 是唯一支持 UTF8 的引擎时设计的)可以在 LuaLatex 下运行,只需增加一行(参见 MWE)。
CMU Serif 字体是“tipa 字体”的 Unicode 版本并嵌入 tipa 符号(注意:对于某些字形,使用私有使用区域,对于非标准 Unicode 字形,如“turned f”,位于 U+F16C)。
平均能量损失
\documentclass{article}
\usepackage{xcolor}
\usepackage{fontspec}
\def\XeTeXpicfile{}%so can compile with LuaLatex
\usepackage{xunicode}
\newcommand\ipafontname{Charis SIL}
\newcommand\fnamea{TeX Gyre Bonum}
\newcommand\fnameb{Noto Serif}
\newcommand\fnamec{CMU Serif}
\setmainfont{\fnamea}
\newfontfamily{\ipafont}{\ipafontname}[Colour=red]
\newfontfamily{\ffontb}{\fnameb}[Colour=blue]
\newfontfamily{\ffontc}{\fnamec}[Colour=brown]
\newfontfamily{\fmain}{\fnamea}
\newcommand\cdmdoubleinvertedbreve{\symbol{865}}
\renewcommand{\t}{\cdmdoubleinvertedbreve}
\newcommand\ttext{\textipa{\*k\*f\*t\*r\*w -- {\=*{t}\t S}}}
\begin{document}
\begin{quotation}
The command
\verb|\textipa{\*k\*f\*t\*r\*w -- {\=*{t}\t S}}}}|
gives:
\begin{quotation}
\begin{tabular}{ll}
Font & Result \\
\ipafontname & \ipafont\ttext \\
\fnameb & \ffontb\ttext \\
\fnamec & \ffontc\ttext \\
\end{tabular}
\end{quotation}
\end{quotation}
\fmain In Unicode, some of the turned letters are:
\begin{quotation}
\ffontb
Ɯ ǝ Ʌ ɐ ɒ ɥ ɯ ɰ ɹ ɺ ɻ ʇ ʌ ʍ ʎ ʞ ʮ ʯ oʴ oʵ ᴂ ᴈ ᴉ ᴔ ᴚ oᵄ oᵆ oᵌ oᵎ oᵚ ᵷ oᶛ oᶣ oᶭ oᶺ (\fnameb\ font)
\ffontc
Ɯ ǝ Ʌ ɐ ɒ ɥ ɯ ɰ ɹ ɺ ɻ ʇ ʌ ʍ ʎ ʞ ʮ ʯ oʴ oʵ ᴂ ᴈ ᴉ ᴔ ᴚ oᵄ oᵆ oᵌ oᵎ oᵚ ᵷ oᶛ oᶣ oᶭ oᶺ (\fnamec\ font)
\end{quotation}
\end{document}
答案3
尝试新的tipauni
包裹:
\documentclass[12pt]{article}
\usepackage[%
documentfont=TeX Gyre Bonum% Note that this isn't usually
% recommended as you'll have to
% use the font command for IPA
% every time you type
% IPA. Using a uniform IPA font
% e.g. Doulos SIL/Gentium might
% be the best choice. Charis
% SIL is the default one loaded
% by tipauni.
]%
{tipauni}% This automatically loads package fontspec.
\newfontfamily\ipafont{CharisSIL}
\newcommand\mytipa[1]{\ipafont\textipa{#1}}
\begin{document}
\begin{itemize}
\item With \texttt{fontspec} and a custom \texttt{ipafont}
this works:
\verb|{\ipafont\textipa{\t{{\=*{t}}S}}}|:
{\ipafont\textipa{\t{{\=*{t}}S}}};
and this works too:
\verb|{\ipafont\textipa{\t{ṯS}}}|:
{\ipafont\textipa{\t{ṯS}}}
\item Likewise, with a custom command, this works:
\verb|\mytipa{\t{{\=*{t}}S}}|:
\mytipa{\t{{\=*{t}}S}};
and this one too:
\verb|\mytipa{\t{ṯS}}| \mytipa{\t{ṯS}}
\end{itemize}
\end{document}
请注意,正如指出的那样这里, 经过斯基尔蒙您获取 ṯ͡ʃ 的 TIPA 语法不正确。您应该使用\textipa{\t{{\=*{t}}S}}}
来获得正确的结果。