如何使用 Biber 在 i 上放置尖音符:“\'{\i}”的问题

如何使用 Biber 在 i 上放置尖音符:“\'{\i}”的问题

我使用了一些需要 utf8 的包。这是主文件:

\documentclass[a4paper,titlepage]{report}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=alphabetic]{biblatex}
\addbibresource{refs.bib}

\begin{document}
\nocite{*}
\printbibliography[heading=bibintoc]
\end{document}

参考文件如下:

@MISC{Example,
    author = {Author with spec\'{\i}al character},
    title = {Title}
}

\H{o}我对输入特殊字符(如(ő) 或(ą))没有任何问题\k{a}。但是,当我尝试输入\'{\i}(í) 时,我收到以下输入错误:“未设置为使用 LaTeX”。似乎不允许双重组合。一个解决方案是改为使用\'{i},但不删除点会很丑陋。肯定有更好的方法吧?

注意:我曾尝试添加\DeclareUnicodeCharacter{00ED}{\'{\i}}序言,但也没有帮助。

答案1

从 LaTeX2e 的第一天起,当字体编码为 T1 时,就可以用 获得“í” \'i;自 2001 年 5 月以来,使用 OT1 也可以实现同样的效果;以下是 的摘录ltoutenc.dtx

%    Here we are adding some more composite commands to the |OT1|
%    encoding.  This makes the use of certain accents with |i|
%    compatible with their use with the |T1| encoding; this
%    enables them to become true \LaTeX{} internal representations.
%    However, it will make these accents work a little less fast since
%    a check will always be made for the existence of a composite.
%
% \changes{v1.93}{2001/05/28}{Added composites for compatibility with
%                             T1, pr/3295}
% \changes{v1.94}{2001/06/05}{Text composite Commands need kludges for
%                               `,' -- see tlb1903.lvt}
%    \begin{macrocode}
\DeclareTextComposite{\.}{OT1}{i}{`\i}
\DeclareTextComposite{\.}{OT1}{\i}{`\i}
\DeclareTextCompositeCommand{\`}{OT1}{i}{\@tabacckludge`\i}
\DeclareTextCompositeCommand{\'}{OT1}{i}{\@tabacckludge'\i}
\DeclareTextCompositeCommand{\^}{OT1}{i}{\^\i}
\DeclareTextCompositeCommand{\"}{OT1}{i}{\"\i}
%    \end{macrocode}

在同一个文件中我们发现

\DeclareTextComposite{\'}{T1}{i}{237}
\DeclareTextComposite{\'}{T1}{\i}{237}

(没有特别的注释,所以它们从一开始就存在)。

这意味着,自 2001 年以来,输入可以而且应该\'i采用任何(拉丁)字体编码,例如 OT1 和 T1。

不幸的是,一些导游仍然坚持\'i(或同等但更尴尬的坚持\'{i})在“i”上保留一个点,但这显然不是事实。

如果你将条目更改为

@MISC{Example,
    author = {Author with spec\'ial character},
    title = {Title}
}

您会发现 Biber 对此没有任何问题。

如果你打算使用.bibBibTeX 文件,请记住使用

spec{\'i}al

由于 Biber 无论如何都会删除括号,因此最好使用这种语法。

答案2

这是 Biber 中的一个问题:它变成\'\i了两个代码点ı́,而不是单个代码点í。(此处“正确”的 Unicode 结果是单个í。)正如 LaTeX 所说,组合字符未设置为使用:组合字符以“错误的方式”出现,无法按照“LaTeX 方式”工作。如果您不想这样做,您有几个选择使用\'i

  • í直接输入
  • 运行 Biber 时使用该--output-safechars选项,它将保留 LICR 格式 ( \'{\i})

相关内容