Biblatex + Xelatex 不显示重音

Biblatex + Xelatex 不显示重音

Biblatex 与 pdflatex 配合使用效果很好,但使用 Xelatex 编译时,重音符号突然消失。

梅威瑟:

\documentclass{article}

\usepackage[
backend=biber,
style=alphabetic,
citestyle=authoryear 
]{biblatex}

\usepackage{filecontents}
\begin{filecontents*}{temp.bib}
    @article{Beck_Johnson_2013,
        title               ={The Effect of Temperature on \textit{{Anopheles}} Mosquito Population},
        author              ={Bj{\' o}rnstad, Ottar N.},
        year                ={2013},
        journaltitle        ={PLOS ONE}
    }
\end{filecontents*}

\addbibresource{temp.bib}

\begin{document}

\cite{Beck_Johnson_2013}

\printbibliography
\end{document}

使用 Xelatex: 无重音

使用 Pdflatex: 口音

答案1

Xe(La)TeX 使用 Computer Modern 作为默认字体。Computer Modern 不包含真正的重音字符,而是可以通过宏由多个字符组成。

因此,您会注意到,\'o直接在文档中使用会产生“ó”,但书写ó不会产生效果。默认情况下,Biber 会将这些宏转换为其对应的 Unicode 字符,并将其发送到文件。因此,即使您在文件中书写.bbl,我们实际上请求的ó也是 而不是文档中的。\'o\'o.bib

您可以通过使用--output-safechars命令行选项进行编译,使 Biber 输出组合宏而不是 Unicode 字符。


然而,我主张采取不同的方法。如果你加载fontspec

\usepackage{fontspec}

默认字体设置为 Latin Modern,它本身包含大量重音字符。因此我们可以继续ó在文档中使用,它将出现在最终的 PDF 中。

平均能量损失

\documentclass{article}
\usepackage{fontspec}
\usepackage[
backend=biber,
style=alphabetic,
citestyle=authoryear 
]{biblatex}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{Beck_Johnson_2013,
  title         ={The Effect of Temperature on \textit{{Anopheles}} Mosquito Population},
  author        ={Bj{\'o}rnstad, Ottar N.},
  year          ={2013},
  journaltitle  ={PLOS ONE}
}
\end{filecontents*}

\addbibresource{\jobname.bib}

\begin{document}
\cite{Beck_Johnson_2013}

\printbibliography
\end{document}

示例输出

相关内容