我想使用 hyperref 包,用于超链接文档中的引文和图片。但是,当我将 hyperref 添加到序言中时,发生了一些奇怪的事情。
我使用了一些自定义命令,例如斜体的定义:
\let\i\textit
但是,出于某种原因,hyperref 无法很好地处理此定义。我的所有斜体都消失了,斜体命令变成了看起来像微型数字 1 的东西。
有人知道如何解决这个问题吗?
答案1
我可以用
\documentclass{article}
\let\i\textit
\usepackage{hyperref}
\begin{document}
\i{xyz}
\end{document}
发生这种情况的原因是hyperref
恢复了的定义以\i
产生“无点的 i”(您会误认为是小数字 1)。
然而,推迟重新定义也不是一个好主意。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\let\i\textit
\begin{document}
\i{xyz}
naïve
\end{document}
会产生一些神秘的错误:
! You can't use a prefix with `\aftergroup'.
<to be read again>
\aftergroup
l.10 naï
ve
?
! Missing number, treated as zero.
<to be read again>
\accent@spacefactor
l.10 naï
ve
?
! Bad space factor (0).
<to be read again>
\accent@spacefactor
l.10 naï
ve
?
如果您不知道自己在做什么,切勿使用\let
。避免重新定义您不了解的命令,并且一般来说,避免重新定义所有与输出字形相关的命令,例如\i
。