我使用了一些需要 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 对此没有任何问题。
如果你打算使用.bib
BibTeX 文件,请记住使用
spec{\'i}al
由于 Biber 无论如何都会删除括号,因此最好使用这种语法。
答案2
这是 Biber 中的一个问题:它变成\'\i
了两个代码点ı
和́
,而不是单个代码点í
。(此处“正确”的 Unicode 结果是单个í
。)正如 LaTeX 所说,组合字符未设置为使用:组合字符以“错误的方式”出现,无法按照“LaTeX 方式”工作。如果您不想这样做,您有几个选择使用\'i
:
í
直接输入- 运行 Biber 时使用该
--output-safechars
选项,它将保留 LICR 格式 (\'{\i}
)