请考虑这个MWE:
\documentclass{article}
\usepackage{lineno}
\usepackage{hyperref}
% \linenumbers
\begin{document}
\url{https://www.this-is-a-very-long-url.com/this-is-a-very-long-url/this-is-a-very-long-url/this-is-a-very-long-url.html}
\end{document}
如果我们取消注释该\linenumbers
行,则会在 URL 前绘制一个额外的(小)彩色框:
这个额外的框是什么原因造成的?有办法避免吗?
答案1
行号位于建立链接时放置的框中,因此它也是链接的。
使用当前的 texsystem (texlive 2021),您可以避免这种情况。但这需要修补 lineno 的内部命令,因为停用代码必须位于正确的框级别:
\documentclass{article}
\usepackage{lineno}
\usepackage{hyperref}
\usepackage{iftex,etoolbox}
\ifxetex
\newcommand\runninglinkoff{\special{pdf: nolink}}
\newcommand\runninglinkon {\special{pdf: link}}
\fi
\ifpdftex
\newcommand\runninglinkoff{\pdfrunninglinkoff}
\newcommand\runninglinkon {\pdfrunninglinkon}
\fi
\ifluatex
\protected\def\runninglinkoff{\pdfextension linkstate 1 }
\protected\def\runninglinkon {\pdfextension linkstate 0 }
\fi
\makeatletter
\patchcmd\@LN@depthbox{\box\@tempboxa}{\runninglinkoff\box\@tempboxa \runninglinkon}{}{\fail}
\makeatother
\begin{document}
\linenumbers
\url{https://www.this-is-a-very-long-url.com/this-is-a-very-long-url/this-is-a-very-long-url/this-is-a-very-long-url.html}
\end{document}