hyperref 和 FourierOrns 之间不兼容?

hyperref 和 FourierOrns 之间不兼容?

考虑使用 lualatex 或 xelatex 编译此文件:

\documentclass[a4paper,12pt]{scrartcl}
\usepackage{fourier-otf}
%\usepackage[pdftitle={My title},pdfauthor={Me}]{hyperref}
\begin{document}
\textpertenthousand,           \textit{\textpertenthousand},
\textbf{\textpertenthousand},  \textbf{\textit{\textpertenthousand}}.

\eurologo, \textit{\eurologo},
\textbf{\eurologo},  \textbf{\textit{\eurologo}}.
\end{document}

输出符合预期:

在此处输入图片描述

现在,如果我取消注释 hyperref 行,我会得到

在此处输入图片描述

出了什么问题?谢谢!

答案1

fourier-otf\textpercentthousand用固定定义重新定义,因此会丢失其原始编码特定定义。因此,当hyperref为其自己的 PU 编码添加定义时,主文本编码的定义就会丢失。

一个简单的解决方法是在加载傅立叶后纠正定义

\DeclareTextCommand{\textpertenthousand}{TU}{\TakeFourierOrnament{37}}

但正确的解决方法是将fourier-otf.sty第 22 行改为使用\DeclareTextCommandnot \renewcommand

$ diff fourier-orns.sty~ fourier-orns.sty
22c22
<   \renewcommand*{\textpertenthousand}{\TakeFourierOrnament{37}}
---
>   \DeclareTextCommand{\textpertenthousand}{TU}{\TakeFourierOrnament{37}}

您可以将其报告给软件包维护者。

相关内容