\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tipa}
\usepackage{gb4e}
\usepackage{nomencl}
\begin{document}
\begin{exe}
\ex
\gll \noautomath \textipa{\|[to} pani pito\\
ram.3P.M.Sg. water.F.Sg. drink.PERF.M.Sg.\\
\trans ram drinks water
\end{exe}
\end{document}
答案1
gb4e
这是几年前 LaTeX 内核更改后出现的错误造成的。解决方法是添加。
\makeatletter
\def\new@fontshape{}
\makeatother
前你加载gb4e
。
但另外,你还需要加载tipa
后 gb4e
因为gb4e
也定义了\|
。(感谢 Ulrike 注意到这一点。)
这是一个完整的例子。
\documentclass{article}
\usepackage[utf8]{inputenc}
\makeatletter
\def\new@fontshape{}
\makeatother
\usepackage{gb4e}
\noautomath
\usepackage{tipa}
\usepackage{nomencl}
\begin{document}
\begin{exe}
\ex
\gll \textipa{\|[to} pani pito\\
ram.3P.M.Sg. water.F.Sg. drink.PERF.M.Sg.\\
\trans ram drinks water
\end{exe}
\end{document}
答案2
补充@AlanMunn 的回答,
\textipa
可以使用 Unicode(通过xunicode
包),但直接输入更容易。
无论哪种方式,都可以使用系统字体(通过fontspec
包)。
使用 xelatex 或 lualatex 进行编译。
平均能量损失
\documentclass{article}
%\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage{fontspec}
\setmainfont{Noto Serif}
\newfontfamily\fipamain{Noto Serif}[Colour=blue]
\newfontfamily\fipa{Noto Sans}[Colour=red]
\newfontfamily\fipab{CMU Serif}%'tipa font'
\makeatletter
\def\new@fontshape{}
\makeatother
\usepackage{gb4e}
\noautomath
%\usepackage{tipa}
\providecommand\XeTeXpicfile{ROSS, grmmble:-)}% with luatex that means "pretending" to be xetex just while you load the package
%https://tex.stackexchange.com/questions/357686/does-fontspec-no-longer-provide-the-textipa-command
\usepackage{xunicode}
\def\useTIPAfont{\fipamain}%https://tex.stackexchange.com/questions/358118/tipa-tone-bar-glyph-missing-with-xecjk
\usepackage{nomencl}
\begin{document}
\textbackslash textipa\{\} input:
\begin{exe}
\ex
\gll \textipa{\|[to} pani pito\\
ram.3P.M.Sg. water.F.Sg. drink.PERF.M.Sg.\\
\trans ram drinks water
\end{exe}
Direct input:
\begin{exe}
\ex
\gll t̪o pani pito\\
ram.3P.M.Sg. water.F.Sg. drink.PERF.M.Sg.\\
\trans ram drinks water
\end{exe}
\end{document}