在 XeLaTeX 中使用带有 fontspec 的某些字体时,超链接框格式不正确

在 XeLaTeX 中使用带有 fontspec 的某些字体时,超链接框格式不正确

问题:如何使用fontspec字体使得hyperref盒子形状良好且不会太高?

解决了:我不知道为什么,但添加Extension=.ttf内部setmainfont选项可以解决这个问题。

fontspec我的期望:在带有链接的文档中使用包中的不同字体(如 Junicode 和 XeLaTeX)hyperref

我得到的结果是:链接框太高,超出了字形,如下图所示。我已经用 Junicode 和 Cardo 进行了测试。

链接盒形状不良

当这些框在任何合理排版的文档中都不可见时,这尤其令人讨厌(尝试取消注释colorlinksMWE 中的行)。

作为参考,下图中所有功能均与默认的 Computer Modern 字体配合良好。此外,TeX Gyre Pagella 和 TeX Gyre Termes 似乎也能正常工作。

格式良好的链接框,带有默认字体

看来 Junicode 和 Cardo 字体本身就是造成这个问题的原因,但是有没有什么方法可以避免这个问题呢?

梅威瑟:

% To compile and experience the problem: xelatex file.tex

\documentclass{book}

\usepackage{fontspec}
\setmainfont[
  Mapping=tex-text,
  Extension=.ttf %%% THIS LINE SOLVED THE PROBLEM
]{Junicode}

\usepackage[xetex]{hyperref}%
\urlstyle{rm}%
%%% You can try uncommenting the `colorlinks` option to experience how
%%% uncomfortable it is to try to click those invisible boxes that have
%%% wrong dimensions.
\hypersetup{%
  xetex,%
  %colorlinks=true%
}

\begin{document}

Test link: \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC BY-SA}\\

Curiously italics work: \href{https://creativecommons.org/licenses/by-sa/4.0/}{\textit{CC BY-SA}}\\

test some more \href{https://www.google.com}{\MakeLowercase{Google}} and more\\

Finnish newspaper! \href{https://www.hs.fi/}{Helsingin Sanomat}

\end{document}

相关内容