是否可以覆盖hyperref
以特定颜色显示参考的指令,但仅限于TikZ
和的上下文中pgfplots
?问题是我在环境中使用legend to ref
和,图例的文本由于全局设置而变为蓝色。我不知道如何强制图例的文本颜色,甚至不知道这是否可行,但我正在寻找的解决方案应该是可以在序言中全局设置的东西(如果可能的话)。\ref
tikzpicture
hyperref
梅威瑟:
\documentclass{article}
\usepackage{tikz,pgfplots}
\usepgfplotslibrary{groupplots}
\usepackage[colorlinks,linkcolor={blue}]{hyperref}
\begin{document}
\begin{figure}[]
\centering
\begin{tikzpicture}
% \hypersetup{hidelinks} % jfbu's solution: Uncomment to get black text.
\begin{groupplot}[
group style={
group size=2 by 1,},]
\nextgroupplot[scale only axis,width=0.35\textwidth,height=0.35\textwidth,legend to name=grouplegend,]
\addplot
coordinates {(1,1) (2,2) (3,3)};
\addlegendentry{Legend 1}
\nextgroupplot[scale only axis,width=0.35\textwidth,height=0.35\textwidth]
\addplot
coordinates {(1,1) (2,2) (3,3)};
\end{groupplot}
\node (legend) at ($(group c1r1.south)!0.5!(group c2r1.south)$)
[below, yshift=-3\pgfkeysvalueof{/pgfplots/every axis title shift}]
{\ref{grouplegend}};
\end{tikzpicture}%
\caption{The caption.}
\end{figure}
\end{document}
jfbu 的解决方案是将内容放置\hypersetup{hidelinks}
在tikzpicture
环境中,通过保留链接(我对此不感兴趣)但将文本显示为黑色来实现。不过,我正在寻找一种在全球范围内实现此目的的方法。
答案1
在仔细阅读pgfplots
手册时,我偶然发现了一个更优雅的解决方案。简单来说,不用调用在每张图片前暂停的命令,只需用hyperref
替换即可。\ref{refname}
\pgfplotslegendfromname{refname}
摘自pgfplots
第 189 页的手册:
\pgfplotslegendfromname{<name>}
此命令提出了一个等效的替代方案\ref{<name>}
:它本质上具有相同的效果,但是与包一起使用时不会创建链接hyperref
。
答案2
您可以使用 Stefan Kottwitz 的方法禁用 shyperref
中的链接tikzpicture
选择性关闭超链接并将其包装在execute at begin picture
:
\makeatletter
\tikzset{
every picture/.style={
execute at begin picture={
\let\ref\@refstar
}
}
}
\makeatother