我正在为我的项目使用newtxtext
和biblatex
后端biber
。但我注意到参考书目中缺少一些重音符号(如 Erd\H{o}s)。这是一个带有屏幕截图的极简示例。(使用 XeLaTeX 和 TeXLive 2020 或 2021)
\documentclass{article}
\usepackage{newtxtext}
\usepackage[backend=biber, style=alphabetic, defernumbers=true, hyperref=auto, backref=true, giveninits=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{erdos1983greatest,
title={The greatest angle among $n$ points in the $d$-dimensional Euclidean space},
author={Erd\H{o}s, P. and F{\"u}redi, Z.},
journal={Annals of Discrete Mathematics},
volume={17},
pages={275--283},
year={1983},
publisher={Citeseer}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
Paul Erd\H{o}s published the paper \cite{erdos1983greatest}.
\printbibliography
\end{document}
请注意,主体中的重音已正确显示。
我几乎可以肯定这是newtxtext
的问题,因为一旦我将其版本从 1.64 升级到 1.70/71(最新版本),问题就消失了。但是,由于其他一些兼容性问题,我不想这样做(新版本破坏了我的其他字体设置,并且我正在pst-xxx
使用的一些软件包在 TeXLive 2021 中不起作用)。有没有什么解决方法?
答案1
在您的主文档中,您将字符定义为\H{o}
适用于旧版本的newtxtext
,但 Biber 用实际的 ő 替换它,而这是一个缺失的字符。
解决方法:用 自己定义角色\newunicodechar
。
\documentclass{article}
\usepackage{newtxtext}
\usepackage{newunicodechar}
\newunicodechar{ő}{\H{o}}
\usepackage[backend=biber, style=alphabetic, defernumbers=true, hyperref=auto, backref=true, giveninits=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{erdos1983greatest,
title={The greatest angle among $n$ points in the $d$-dimensional Euclidean space},
author={Erd\H{o}s, P. and F{\"u}redi, Z.},
journal={Annals of Discrete Mathematics},
volume={17},
pages={275--283},
year={1983},
publisher={Citeseer}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
Paul Erd\H{o}s published the paper \cite{erdos1983greatest}.
\printbibliography
\end{document}
这是四年前的字体包版本:
(/usr/share/texlive/texmf-dist/tex/latex/newtx/newtxtext.sty
Package: newtxtext 2018/03/27 v1.531
`newtxtext' v1.531, 2018/03/27 Text macros taking advantage of TeX-Gyre Termes
fonts (msharpe)