![选择性地关闭引用的超链接](https://linux22.com/image/269875/%E9%80%89%E6%8B%A9%E6%80%A7%E5%9C%B0%E5%85%B3%E9%97%AD%E5%BC%95%E7%94%A8%E7%9A%84%E8%B6%85%E9%93%BE%E6%8E%A5.png)
我同时使用了natbib
和hyperref
软件包。我希望能够有选择地不为某些文内引文生成超链接。我知道我可以使用 中的星号来\ref*{...}
阻止为该参考文献生成超链接,但添加星号不会对 产生任何影响\cite*{...}
。
我看到选择性关闭超链接和从选定的参考文献中删除链接描述如何选择性地禁用交叉引用的超链接,以及如何打开/关闭某些类型(例如引用,url,文件)的超链接?描述了如何禁用给定类型的所有超链接,但是这些都不能解决我的问题。
答案1
环境NoHyper
应有助于:
\begin{NoHyper}\cite{foobar}\end{NoHyper}
星号形式存在问题,因为一些引用命令已经有星号形式了(例如\citep
, \citet
)。但可以定义宏,例如:
\newcommand*{\nolink}[1]{%
\begin{NoHyper}#1\end{NoHyper}%
}
\nolink{\cite{foobar}}
答案2
Heiko 的回答很棒。但是,它在字幕中不起作用。要使其工作,请使用:
\newcommand*{\nolink}[1]{%
{\protect\NoHyper#1\protect\endNoHyper}%
}
里面的花括号很重要。