我的 LaTeX 论文中有一个布尔值,我用它来创建自定义作者版本(包括版权框和可点击的链接和参考资料)。对于作者版本,我包括了包\hyperref
(在另一种情况下,我使用\nohyperref
,按照我之前的问题https://tex.stackexchange.com/a/53316/2090)。
然而,我注意到,当包含时hyperref
,我的布局略有变化(我将其归咎于行距,但不是 100% 确定),最终结果是我的论文的最后几行被推到了新的页面上。
有没有办法不让 hyperref 影响布局(行距)?或者用一种简单的方法抵消它的影响?
我目前使用的 hyperref 选项如下。但即使禁用这些选项也会产生相同的结果。
\hypersetup{
pdfborder={0 0 0},
colorlinks=true, linkcolor=blue, urlcolor=blue, citecolor=blue,
pdfpagemode=UseNone}
答案1
只是报告我最终使用的解决方法。
我在适用的地方插入了命令\linespread{0.99}
。
\ifthenelse{\boolean{AuthorVersion}}{
\linespread{0.99} % apparently hyperref changes layout for this paper, so adjust slightly
\usepackage{hyperref} % for hyper references of citations, sections, etc.
...
}{
\linespread{0.99} % do here also, to have same layout in camready and author version
\usepackage{nohyperref} % to disable links (EDAS doesn't want them)
\usepackage{url} % hyperref includes \url but nohyperref doesn't
}
答案2
hyperref
或包的草稿选项nohyperref
还删除了超级功能(如链接和目标)的特殊功能。这些特殊功能可能会影响段落和页面的分页。
以下示例在pdftex
使用驱动程序时禁用大多数超级功能。通过重新定义 pdfTeX 的原语(依赖于它们在 中的调用方式)来删除链接和目标hyperref
。替换定义将添加一个 whatsit,将 whatsit 写入日志文件,以保持对段落和页面中断的影响。
\documentclass{article}
\usepackage{makeidx}
\makeindex
% Disable information and catalog entries
\makeatletter
\AtBeginDocument{%
\let\PDF@SetupDoc\relax
}
\makeatother
% Disable links, hyperref usually ends \pdfstartlinks arguments with \relax
\protected\def\pdfstartlink#1\relax{%
\immediate\write-1{- \string\pdfstartlink#1}%
}
\protected\def\pdfendlink{%
\immediate\write-1{- \string\pdfendlink}%
}
% Disable destinations, \pdfdest usually ended by \relax in hyperref
\protected\def\pdfdest#1\relax{%
\immediate\write-1{- \string\pdfdest#1}%
}
\usepackage[
% disable features independent from typesetting
bookmarks=false,
pdfpagelabels=false,
]{hyperref}
\begin{document}
\tableofcontents
\section{Hello World}
\index{Einstein}
\begin{equation}
\label{eq:einstein}
E=mc^2
\end{equation}
See equation (\ref{eq:einstein}) on page \pageref{eq:einstein}.
\section{TeX user groups}
\begin{itemize}
\item[\href{http://www.tug.org/}{TUG}:] \url{http://www.tug.org/}
\item[\href{http://www.dante.de/}{DANTE}:] \url{http://www.dante.de/}
\end{itemize}
\printindex
\end{document}
禁用功能的列表并不完整,例如表格和选项ocgcolorlinks
仍然留下痕迹。
日志文件包含:
- \pdfdestname{Doc-Start}XYZ
- \pdfdestname{section*.1}XYZ
- \pdfstartlinkattr{/Border[0 0 1]/H/I/C[1 0 0]}goto name{section.1}
- \pdfendlink
- \pdfstartlinkattr{/Border[0 0 1]/H/I/C[1 0 0]}goto name{section.2}
- \pdfendlink
- \pdfdestname{section.1}XYZ
- \pdfdestname{equation.1.1}XYZ
- \pdfdestname{equation.1.1}XYZ
- \pdfdestname{equation.1.1}XYZ
- \pdfdestname{equation.1.1}XYZ
- \pdfstartlinkattr{/Border[0 0 1]/H/I/C[1 0 0]}goto name{equation.1.1}
- \pdfendlink
- \pdfstartlinkattr{/Border[0 0 1]/H/I/C[1 0 0]}goto name{equation.1.1}
- \pdfendlink
- \pdfdestname{section.2}XYZ
- \pdfstartlinkattr{/Border[0 0 1]/H/I/C[0 1 1]}user{/Subtype/Link/A<</Type/Act
- \pdfendlink
- \pdfstartlinkattr{/Border[0 0 1]/H/I/C[0 1 1]}user{/Subtype/Link/A<</Type/Act
- \pdfendlink
- \pdfstartlinkattr{/Border[0 0 1]/H/I/C[0 1 1]}user{/Subtype/Link/A<</Type/Act
- \pdfendlink
- \pdfstartlinkattr{/Border[0 0 1]/H/I/C[0 1 1]}user{/Subtype/Link/A<</Type/Act
- \pdfendlink
- \pdfdestname{page.1}XYZ
- \pdfdestname{section*.2}XYZ
- \pdfstartlinkattr{/Border[0 0 1]/H/I/C[1 0 0]}goto name{page.1}
- \pdfendlink
- \pdfdestname{page.2}XYZ
这对您的文档有帮助吗?
答案3
我遇到过类似的问题,但不是行距变化引起的。hyperref 包将纸张大小从 A4 格式更改为美国信纸格式,从而导致页面高度降低 18 毫米,并将一些文本移到下一页。我通过在文档类中声明页面大小解决了该问题:
\documentclass[a4paper]{letter}
另一种解决方案是将纸张高度声明为所需值(例如 A4 -> 297mm):
\setlength{\paperheight}{some value}