我遇到了一个奇怪的问题,书目条目中重音字符的重音位置不正确。考虑以下 MWE,其中引用的作者姓氏为 ,,Galí``:
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8
\begin{filecontents*}{biblatextest.bib}
@Book{Gali2015,
author = {Gal{\'\i}, Jordi},
title = {Monetary policy, inflation, and the business cycle: an introduction to the new Keynesian framework and its applications},
year = {2015},
edition = {2},
publisher = {Princeton University Press},
location = {Princeton and Oxford},
}
\end{filecontents*}
\documentclass{article}
\usepackage[style=bath,sorting=ynt]{biblatex}
\addbibresource{biblatextest.bib}
\begin{document}
\noindent Here is a citation. Compare \cite[S.~123]{Gali2015}.
The author's name is Gal{\'\i}.
\appendix
\newrefcontext[sorting=nyt]%
\printbibliography
\end{document}
比较一下引文和参考书目中重音的位置与常规文本中重音的位置:
我完全不知道为什么会发生这种情况,或者如何解决它。我很感激任何帮助、指示、提示、建议等。谢谢!
答案1
Biber 翻译\'\i
成 Unicode 序列
U+0131 ı 拉丁文小写字母无点 I
U+0301 ́ 组合尖音符
拉丁现代字体似乎不喜欢这个(有效的)序列。
XeLaTeX 直接使用
U+00ED í 带有尖音符的拉丁文小写字母 I
这对于拉丁现代来说不是什么问题。
作为解决方法,您可以在文件中使用\'i
或。两者都被 biber 视为 U+00ED。í
.bib
实际上,整个过程与 biber 无关。如果在文件中直接使用这些 Unicode 序列tex
,则在使用 Latin Modern 时会看到相同的问题。对于(某些)其他字体,情况并非如此:
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8
\documentclass{article}
\usepackage{fontspec}
\begin{document}
Gal{\'i}
Gal{\'\i}
Galı́ % U+0131 ı LATIN SMALL LETTER DOTLESS I U+0301 ́ COMBINING ACUTE ACCENT
Galí % U+00ED í LATIN SMALL LETTER I WITH ACUTE
\setmainfont{Noto Serif}
Gal{\'i}
Gal{\'\i}
Galı́ % U+0131 ı LATIN SMALL LETTER DOTLESS I U+0301 ́ COMBINING ACUTE ACCENT
Galí % U+00ED í LATIN SMALL LETTER I WITH ACUTE
\end{document}
结果: