我尝试使用 键入一些单词的音标,tipa
但编译不正确,字形也未显示。以下是使用 编译的代码的 MWE LuaLaTeX
:
\documentclass[11pt,a5paper]{book}
\usepackage{geometry}
\geometry{
includehead = true,
headheight = 15pt,
includefoot = true,
inner = 1.5 cm,
outer = 1 cm,
top = 1.5 cm,
bottom = 1.5 cm,
}
\usepackage{fontspec}
\setmainfont{GaramondPremrPro}[
Extension = .otf,
UprightFont = *,
BoldFont = *-Bd,
ItalicFont = *-It,
BoldItalicFont = *-BdIt,
]
\usepackage{polyglossia}
\setdefaultlanguage{english}
\disablehyphenation
\usepackage{tipa}
\begin{document}
In the bigynnyng god made of nouȝt\footnote{Nouȝt: nought /\textipa{n\textopeno :t}/} heuene and erthe.
\end{document}
发生的错误如下:
Font \T3/cmr/m/n/9=tipa9 at 9pt not loadable: metric data not found or bad. ...e{Nouȝt: nought /\textipa{n\textopeno :t}/}
Font shape `T3/GaramondPremrPro(0)/m/n' undefined(Font) using `T3/cmr/m/n' instead
Some font shapes were not available, defaults substituted.
是否有办法使其正确编译或将使用的字体更改textipa
为computer modern
或类似内容?我需要获取正确的音标符号。
答案1
由于您使用的是fontspec
,而不是加载tipa
,您应该选择支持 IPA 的 Unicode 字体。 如果您可以使用fontspec
,则不再需要旧版软件包tipa
。如果您有大量以\textipa
格式转录的数据,请考虑使用脚本自动转换。您可以使用您选择的输入法或字符映射以 UTF-8 格式输入 IPA 符号。事实上,即使您使用 tipa 字体,您也可以在 LaTeX 3 中执行此操作。
您可以简单地选择具有 IPA 符号的主字体,但这里有一个切换到补充字体的示例。
\documentclass{article}
% Changed the geometry to fit in a TeX.SX MWE
\usepackage[paperwidth=10cm, paperheight=4cm]{geometry}
\usepackage{fontspec}
\defaultfontfeatures{Scale = MatchLowercase}
\setmainfont{EB Garamond}[Scale=1.0]
\newfontfamily\ipafont{Charis SIL}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\disablehyphenation
\DeclareTextFontCommand\textphonetic{\ipafont}
\begin{document}
In the bigynnyng god made of nouȝt\footnote{Nouȝt: nought \textphonetic{/nᴐ:t/}}
heuene and erthe.
\end{document}
在这里,我将 Garamond 与 Charis SIL 进行匹配(实际上基于 Bitstream Charter)。其他包含 IPA 符号的免费字体包括 Doulos SIL(匹配 Times)、Andika、Gentium Plus 和 DejaVu Sans。Computer Modern 的 Unicode 克隆版是 CMU Serif。 许多商业字体现在也这样做。
定义 的另一种方法\textphonetic
是使用ucharclasses
来自动为 IPA 符号加载不同的字体系列。然而,这个包已经被废弃多年了,并且只在 XeTeX 中有效。如果你真的要关闭连字功能,我强烈建议你在 LuaLaTeX 中编译并\usepackage{microtype}
获得字体扩展。这将极大地改善你的单词间距。
我不推荐这样做,但是:如果您想继续使用tipa
命令,您可以查找它们的 Unicode 值并单独修补它们。
\newcommand\textopeno{{\ipafont\symbol{"1D10}}}
或者更简单地使用当前选定的字体
\newcommand\textopeno{ᴐ}
从技术上讲,理论上,可以tipa
在同一文档中继续使用旧编码作为 Unicode luainputenc
,但如果我再多说一点,可怜的 Ulrike Fischer 可能会心脏病发作。她不应该遭受这样的对待。
附言
Frank Mittlebach 正确地补充了我的回答,您收到此错误的原因是tipa
似乎未正确安装。您的 TeX 引擎正在寻找作为后备的 T3 Computer Modern Roman 字体应该安装在 TeX Live 2019 上,但找不到。
尽管如此,我还是强烈建议使用 Unicode,而不是传统的 8 位编码。其优点包括能够在源文件中输入 IPA 符号,以及复制、粘贴和搜索 PDF。
根据他的评论,以下解决方法回答了您的字面问题,即如何使用中的8 位cmr
字体。我不推荐它。tipa
fontspec
\documentclass{article}
% Changed the geometry to fit in a TeX.SX MWE
\usepackage[paperwidth=10cm, paperheight=4cm]{geometry}
\usepackage{tipa}
\usepackage{fontspec}
\defaultfontfeatures{Scale = MatchLowercase}
\setmainfont{EB Garamond}[Scale=1.0, NFSSFamily = cmr]
\begin{document}
In the bigynnyng god made of nouȝt\footnote{Nouȝt: nought \textipa{/n\textopeno :t/}}
heuene and erthe.
\end{document}
截至 2019 年 7 月,此字体系列适用在 CTAN有cmr
、、cmss
和cmtt
,phv
但ptm
现在可以从 OpenType 字体自动生成 T3 字体,因此还有更多字体正在筹备中。您可以在本地从 OpenType 字体生成 T3 字体 — 但如果您拥有 Unicode 字体并且已经在使用,则根本没有理由进行这种繁琐的程序fontspec
。(这样做的唯一理由是满足仅接受 8 位编码但允许您提供自己的 8 位字体的站点的要求。我希望不久的将来,这些站点能够赶上本世纪。)您还需要做更多工作才能通过这种方式在输入中启用 UTF-8 IPA 符号。
答案2
尽管评论和其他答案中都有这样的陈述,但问题的实际原因并不是 LuaLaTeX 使用了“遗留”包,而只是 OP 的安装有问题。
9pt 处的字体 \T3/cmr/m/n/9=tipa9 无法加载:未找到度量数据或度量数据错误
如果出现此行,则表明 tipa9 的度量文件有问题或缺失。因此我猜测如果 tipa 与 pdftex 一起使用,也会出现同样的问题。我没有 GaramondPremPro,因此无法准确重现该示例,但简化它并使用 EB Garamond 对我来说在 LuaLaTeX 或 XeLaTeX 中效果很好。
第二行(警告)
字体形状改为
T3/GaramondPremrPro(0)/m/n' undefined(Font) using
T3/cmr/m/n'
可能首先出现,因为它说请求的编码 T3 不适用于当前字体,因此改用 T3/cmr/m/n(然后那个出现 ftm 问题导致上述错误。
第三个只是重申发生了一些字体替换,因为 Garamond 字体在 T3 中不可用,而在 TU 中可用,因此为 IPA 字符选择了不同的字体(或者不是因为本地问题)。
因此基本上如果您使用 tipa 包,除非您进行某些更改,否则您将在 Computer Modern 中获得 IPA 字符,但您可以更改为其他字体,因为还有其他字体可用于 T3 编码,并且可能很快就会有更多字体,因为 autoinst 现在也支持该编码。
举个例子:
\documentclass[11pt]{book}
\setlength\textheight{3cm}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\usepackage{tipa}
\begin{document}
In the bigynnyng god made of nouȝt\footnote{Nouȝt: nought /\textipa{n\textopeno :t}/} heuene and erthe.
Alternative settings:
\renewcommand\tipaencoding
{\fontencoding{T3}\fontfamily{ptm}\selectfont}
Or\footnote{Nouȝt: nought /\textipa{n\textopeno :t}/} heuene and erthe.
\renewcommand\tipaencoding
{\fontencoding{T3}\fontfamily{LinguisticsPro-LF}\selectfont}
Or\footnote{Nouȝt: nought /\textipa{n\textopeno :t}/} heuene and erthe.
\end{document}
给出
有人认为使用 Unicode 引擎意味着您不应该使用 tipa(或不能使用),但事实并非如此。使用包含 IPA 符号的 otf 字体并没有错。但是,tipa 为您提供了一种输入语法,在许多情况下,这种语法非常简洁,可能比直接输入 unicode 符号更容易。您可能还拥有较旧的文本或需要与所有引擎兼容的文本。tipa 提供的支持可能存在于\tone
指示器领域,而在其他情况下您无法获得这些支持。也许它们是 Unicode 的,但我认为不是。因此,如果需要,那么...
不要忘记,fontspec 在底层只是调用 NFSS,并且不同的编码可以很好地并行工作。
最后,T3 是一种字体编码,因此它与使用无关luainputenc
--- 这是@Davislor 给出的不错的答案中的一个红点,两者完美地并排在一起。