Biber 将 \u{\i} 更改为一些奇怪的值

Biber 将 \u{\i} 更改为一些奇怪的值

Biber 将 ASCII-TeX 重音符号更改为其各自的 Unicode 字符,虽然这对于大多数字母和重音符号来说效果很好,但对于“无点 i”上的重音符号来说却是一个问题。

问题在于,像 Times New Roman 这样的流行字体已经覆盖了 Unicode 等效的

\u{i}
\"{i}

并做不是涵盖了 Unicode 中“无点”的等价内容

\u{\i}
\"{\i}

即使在目视检查下它们看起来完全相同,正如在此 MWE 上所见:

\documentclass{report}

\RequirePackage{fontspec}
\setmainfont{Times New Roman}

\begin{document}

Accent on dotless with ASCII TeX: Ole\u\i nik,  Ha\"\i ssinsky

Accent on dotted i: Olĭnk, Haïssinsky

Accent on dotless i: Oleı̆nik, Haı̈ssinsky

\end{document}

EGreg 的回答涵盖了其中的一些内容这里。同样的问题也发生在其他几个无点 i 的重音上,但令人惊讶的是不是带有重音符号 (\'{\i})。

我对此有几个问题:

如果字体上没有此字符的覆盖范围,那么 ASCII-TeX 输入如何适用于 \u{\i}?TeX 是否会进行替换并在最终输出中使用带点的字符?

请注意,将源转换为带点 i 的重音符号显然适用于 LaTeX 并在 PDF 中产生正确的外观,但这是错误的做法,因为源可能被 TeX 以外的其他程序使用,或者源可能来自不愿意做出错误更改的地方。

有关 biber 如何处理它的示例,请使用:

\documentclass{report}
\RequirePackage{fontspec}
\usepackage{filecontents}
\setmainfont{Times New Roman}

\usepackage{biblatex}
\addbibresource{\jobname.bib}

\begin{filecontents}{\jobname.bib}
@unpublished{a,
    author = {Ole\u\i nik and  Ha\"\i ssinsky and Sina\^\i},
    title = {These display fine (dotted i):  Ole\u{i}nik and  Ha\"i{}ssinsky and Sina\^i},
}
\end{filecontents}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

答案1

这是对为什么某些重音符号不显示的部分回答,但不是这里提出的问题的完整答案。我仍然不知道为什么\u{\i}即使字体缺少字形,排版仍然正确。

Unicode 中输入的字形无法正确排版的问题是由于在Microsoft TrueType 核心字体包。该包安装的 Times NR 版本为 2.95,版本太旧,无法覆盖无点 i 上的重音符号。

据我所知,这些旧版本的字体是在宽松(或糟糕)的许可证下分发的,而微软此后已对其进行了收紧。

你能做什么来解决这个问题?

  1. 微软视窗MS Windows(较新安装)的用户可以使用较新的字体版本,而不会出现此问题。

  2. Linux 双启动您的新字体位于 Windows 分区中,只需执行 alocate times.ttf即可看到它。在将它们复制到 Linux 分区或在 Linux 中使用它之前,您应该查阅许可证。

  3. Linux 本身从字体代工厂或 fonts.com 等分销商处购买最新版本的字体

相关内容