考虑使用 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 行改为使用\DeclareTextCommand
not \renewcommand
:
$ diff fourier-orns.sty~ fourier-orns.sty
22c22
< \renewcommand*{\textpertenthousand}{\TakeFourierOrnament{37}}
---
> \DeclareTextCommand{\textpertenthousand}{TU}{\TakeFourierOrnament{37}}
您可以将其报告给软件包维护者。