LaTeX中加入包hyperref出现的错误之解决

在论文写作中为每个目录项或者其他类型的引用项加上超链接可以快速帮助自己查看和修改论文,尤其是当论文比较长的时候。这适用于论文初稿时,当论文定稿后,可根据需求与否,再决定是否继续适用这种类型的超链接。本文要讲的是在使用包hyperref建立上述超链接时出现的一个错误,及该错误的解决方法。本文对没有过多LaTeX使用经验的人来说,是很有帮助的。

1 问题描述

1.1 LaTeX的环境

  • LATEX 的运行环境如下图:
    LaTeX中加入包hyperref出现的错误之解决_第1张图片

  • 使用的documentclass为scrbook

1.2 出现问题

再原来文档内容的基础上,在preamble的最后加上下面指令:

%----back reference the citation
%    最好放在所以包的最后
\usepackage[backref]{hyperref}
%----

采用xelatex编译后出现的错误提示为:

(c:/texlive/2015/texmf-dist/tex/latex/base/omscmr.fd) [4]
Runaway argument?
{\@firstoffive }\fi ), so all elements of the truth table for $\sim P\ETC.
! Paragraph ended before \Hy@setref@link was complete.
< to be read again >
\par
l.95
?

2 解决办法

遇到此问题,应该删除主文件目录下的aux文件,该文件的名称与documentclass所在的文件名一致,对于本文例子,是如下图中椭圆形圈定的文件:
LaTeX中加入包hyperref出现的错误之解决_第2张图片

删除文件后,再次使用xelatex连续两次编译tex文件1,即可看到我们需要的结果,首先看目录项的结果:
LaTeX中加入包hyperref出现的错误之解决_第3张图片
再来看论文引用项和其他引用项的结果:
LaTeX中加入包hyperref出现的错误之解决_第4张图片

至于为什么会出现这个问题,需要我进一步的探求。


  1. 编译一次不会看你想要的结果。使用 LATEX 的时候,所有出现交叉引用 (cross-reference)的地方,都要连续编译2次才能看到最终的结果。 ↩

你可能感兴趣的:(工具学习,感悟,LaTeX)