有没有办法让参考书目反向引用显示并超链接在 PDF 文件中,但不打印在硬拷贝中。
当我使用
\usepackage[colorlinks=false,backref=page]{hyperref}
我在超链接周围看到一个未打印的红框。我可以使用 backref 钩子将这种行为应用于链接本身吗?
答案1
我从是否可以区分 pdf 的软拷贝和硬拷贝?并反转视图/打印状态以定义viewonly
环境,然后将其包装\BR@backref
在该环境中。它似乎有效,但请注意,内容仅在打印时不可见,但仍占用空间,因此可能会导致打印版本中出现空白行。
请注意,不需要实际打印文档来查看其是否有效;打印预览模式应该显示差异。
更新:现在使用ocg-p
软件包版本 0.4(或更高版本)来获得更简洁、更可靠的代码。(可通过修订历史记录查看旧答案。)
.bib
此处的示例使用了您的发行版附带的测试文件。
\documentclass[10pt,a4paper]{article}
\usepackage[a4paper]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{natbib}
\bibliographystyle{plainnat}
\usepackage[backref=page]{hyperref}
% "viewonly" environment for content which should only be visible when the document is viewed on screen, not when it is printed
\usepackage{ocg-p}
\newenvironment{viewonly}{\begin{ocg}[printocg=never,listintoolbar=never]{Soft copy only}{viewonly}{1}}{\end{ocg}}
\makeatletter
\let\oldBR@backref=\BR@backref
\renewcommand{\BR@backref}[1]{\begin{viewonly}\oldBR@backref{#1}\end{viewonly}}
\makeatother
\begin{document}
This text is always visible. \cite{GSM97,RudolphGrabowskiGraubmann96}
\begin{viewonly}
This can not be seen if the document is printed.
\end{viewonly}
This text is visible in both the soft and the hard copy. \cite{Lam94}
\bibliography{biblio}
\end{document}