由于在网上搜索多次未果,希望得到一些理解通过这个论坛讨论了为什么超链接周围的红色方框hyperref
无法在我的 PDF 输出中打印,并且知道一些解决方法(如果有的话)来解决这个问题:
\documentclass[10pt,a4paper]{article}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{hyperref}
\hypersetup{
colorlinks = false
}
\title{\textbf{SampleDocFile}}
\date{{\small October 17\textsuperscript{th} 2016}}
\begin{document}
\maketitle
\tableofcontents
\newpage
\section{First section}
\subsection{first subsection}
\subsubsection{first_first subsection}
\subsubsection{first_second subsection}
\subsection{first_third subsection}
\section{Second section}
\section{Third section}
\end{document}
附言:我注意到大多数用户都希望去掉红色边框/方框,因此互联网上有很多可行的解决方案。但是出于某些原因,我热衷于在 PDF 中编译后保留它们,并寻找实现它的最佳方法。
谢谢
编辑:
作为一种解决方法,我最终得到以下结果:
1.
\usepackage{hyperref}
\hypersetup{
colorlinks = true
}
- 然后我在我的部分上放一个框架
(i.e \section{\frame{First section}})
优势:目录中实现的目标(全部framed
为红色)
漏洞:目录之外定义的部分也带有框架。因此,有人知道通过仅保留目录中的框架来打破此处的依赖关系的方法吗?
答案1
非常 hacky,但可以\fcolorbox
在定义中添加\contentsline
:
\documentclass{article}
\usepackage{xcolor}
\usepackage[hidelinks]{hyperref}
\makeatletter
\def\contentsline#1#2#3#4{%
\begingroup
\Hy@safe@activestrue
\edef\x{\endgroup
\def\noexpand\Hy@tocdestname{#4}%
}\x
\ifx\Hy@tocdestname\ltx@empty
\csname l@#1\endcsname{#2}{#3}%
\else
\ifcase\Hy@linktoc % none
\csname l@#1\endcsname{#2}{#3}%
\or % section
\csname l@#1\endcsname{%
\fcolorbox{red}{white}{\hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend} % HACK
}{#3}%
\or % page
\def\Hy@temp{#3}%
\ifx\Hy@temp\ltx@empty
\csname l@#1\endcsname{#2}{#3}%
\else
\csname l@#1\endcsname{{#2}}{%
\hyper@linkstart{link}{\Hy@tocdestname}{#3}\hyper@linkend
}%
\fi
\else % all
\def\Hy@temp{#3}%
\ifx\Hy@temp\ltx@empty
\csname l@#1\endcsname{%
\hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend
}{}%
\else
\csname l@#1\endcsname{%
\hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend
}{%
\hyper@linkstart{link}{\Hy@tocdestname}{#3}\hyper@linkend
}%
\fi
\fi
\fi
}
\makeatother
\begin{document}
\tableofcontents
\section{First section}
\subsection{first subsection}
\subsubsection{first first subsection}
\subsubsection{first second subsection}
\subsection{first third subsection}
\section{Second section}
\section{Third section}
\end{document}
或者使用更紧密的框架:
\documentclass{article}
\usepackage{xcolor}
\usepackage[hidelinks]{hyperref}
\newcommand{\cframe}[2]{%
{\color{#1}\frame{\color{black}#2\color{#1}}}
}
\makeatletter
\def\contentsline#1#2#3#4{%
\begingroup
\Hy@safe@activestrue
\edef\x{\endgroup
\def\noexpand\Hy@tocdestname{#4}%
}\x
\ifx\Hy@tocdestname\ltx@empty
\csname l@#1\endcsname{#2}{#3}%
\else
\ifcase\Hy@linktoc % none
\csname l@#1\endcsname{#2}{#3}%
\or % section
\csname l@#1\endcsname{%
\cframe{red}{\hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend}
}{#3}%
\or % page
\def\Hy@temp{#3}%
\ifx\Hy@temp\ltx@empty
\csname l@#1\endcsname{#2}{#3}%
\else
\csname l@#1\endcsname{{#2}}{%
\hyper@linkstart{link}{\Hy@tocdestname}{#3}\hyper@linkend
}%
\fi
\else % all
\def\Hy@temp{#3}%
\ifx\Hy@temp\ltx@empty
\csname l@#1\endcsname{%
\hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend
}{}%
\else
\csname l@#1\endcsname{%
\hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend
}{%
\hyper@linkstart{link}{\Hy@tocdestname}{#3}\hyper@linkend
}%
\fi
\fi
\fi
}
\makeatother
\begin{document}
\tableofcontents
\section{First section}
\subsection{first subsection}
\subsubsection{first first subsection}
\subsubsection{first second subsection}
\subsection{first third subsection}
\section{Second section}
\section{Third section}
\end{document}