在我的目录中,有些条目跨越多行。由于我使用 LaTeX -> PS -> PDF 进行编译,因此创建的链接无法正确显示在输出文件 (pdf) 中。为了解决这个问题,我在序言中 hyperref
添加了。\usepackage{hypdvips}
这是我的最小工作示例:
\documentclass{scrbook}
%\usepackage[USenglish]{babel}
%\usepackage[T1]{fontenc}
%\usepackage[latin1]{inputenc}
\usepackage[breaklinks=true]{hyperref} %breaklinks=true allows link text to break across lines;
\usepackage{hypdvips} %The hypdvips package fixes some problems when using hyperref with dvips as backend driver.
\listfiles
\begin{document}
\tableofcontents
\chapter{A short chapter heading}
\section{A short section heading}
\chapter{A very long never ending far reaching comprehensive illustrative long chapter heading}
\section{A very long never ending far reaching comprehensive illustrative long section heading}
\subsection{Short: Two alternative models for the workforce assignment problem}
\subsection{Long: Limitations of the models and potential remedies and extensions}
\end{document}
然而,添加hypdvips导致两个错误消息:
! Undefined control sequence. \tableofcontents ->\backrefsetup {disable}\pp@backup@tableofcontents \backre... l.15 \tableofcontents
! Undefined control sequence. \tableofcontents ...tableofcontents \backrefsetup {enable} l.15 \tableofcontents
输出文件已创建并且所有链接都正确显示,但输出文件中出现“disable”和“enable”字样。
该问题似乎与已经报告的问题类似这里。我使用最新版本的hypdvips
软件包(Version 3.01)和pdfTeX,Version 3.1415926-2.5-1.40.14(MiKTeX 2.9)(预加载格式=latex 2014.3.24)。
我测试的所有文档类都会发生此错误(scrbook
、book
、scrartcl
、article
、scrreprt
)report
。如能提供任何帮助,我将不胜感激。
答案1
这是 中的一个错误hypdvips
。根据选项设置,hyperef
不会加载包backref
。但hypdvips
会重新定义\tableofcontents
和 朋友以禁用那里的反向引用。它使用\backrefsetup
未定义,因为backref
未加载。
解决方法:
提供以下虚拟定义
\backrefsetup
:\providecommand*{\backrefsetup}[1]{}
选项
backref
或pagebackref
用于hyperref
启用反向引用并加载包backref
。使用选项
tocbr
、lofbr
、lotbr
、loabr
。hypdvips
然后hypdvips
不重新定义\tableofcontents
和朋友插入\backrefsetup
命令以禁用那里的反向引用。
当然,backref
应该是最新的:
显示,当ChangeLog
定义时:hyperref
\backrefstup
2012-07-24
backref
1.37:
\backrefsetup
添加。- 选项
enable
及disable
添加。
答案2
对我来说,上述建议的解决方案都没有真正起作用。相反,重新定义以下命令(由 hypdvips 包定义),使其不执行任何操作,使得 hypdvips 和 biblatex 包在我的情况下兼容。
\renewcommand*{\Hy@backout}[1]{}