使用 TikZ graphdrawing 包制作超链接图表

使用 TikZ graphdrawing 包制作超链接图表

这个问题在这里得到了一个关于如何使 TikZ 节点文本可点击的有趣回应。

我正在使用该graphdrawing包来自动设置图表,因此无法\hyperlink在“环境中”使用该命令\graph。我目前的文件如下所示:

\documentclass{article}
\usepackage{hyperref}
\usepackage{bookmark}
\usepackage{tikz}
\usetikzlibrary{trees,calc}
\usepackage{tikz}
\usetikzlibrary{graphs, graphdrawing}
\usegdlibrary{trees, layered}

\begin{document}

\begin{tikzpicture}
    \tikz [rounded corners] 
    \graph [layered layout, sibling distance=8mm, level distance=8mm]
    {
       A -> B -> C -> A
    };
\end{tikzpicture}

\clearpage
\section{Target A} 
\label{sec:A}

\clearpage
\section{Target B}
\label{sec:B} 

\clearpage
\section{Target C}
\label{sec:C}

\end{document}

我怎样才能设置超链接,以便当我使用时单击图表中的 A,它会带我到标题为“A”的部分graphdrawing

答案1

时机很好!——我刚刚为自己的文档制作了类似的“内容图”。:o)

工作原理:我为所有部分分配标签,并将它们用作图形节点的名称。然后使用命令排版节点\myref,该命令将三个指向给定标签的超链接输出为节点文本的一部分。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,graphs,graphdrawing}
\usegdlibrary{layered}
% Use frenchlinks for nifty small caps
\usepackage[frenchlinks]{hyperref}
\begin{document}

% Hyperlinks to:     Section #         Section name                    Page  number
%                    —————————         ————————————                    ————————————
\newcommand\myref[1]{\ref{#1}. \textbf{\nameref{#1}}\\\footnotesize p. \pageref{#1}}
%                            — —————————————————————  —————————————
%                     Period ^         Bold            Small  text

\section*{Graph of contents}
\begin{tikzpicture}[>=latex']
% (Note that you don’t need both \begin{tikzpicture} and \tikz)
\graph [
  layered layout, level distance=4em, sibling distance=3em,
  nodes={
    % Draw nodes as rectangles with centered text and a bit of horizontal padding
    draw, align=center, inner xsep=0.5em,
    % Use \myref to typeset nodes using their name (viz. section label) as input
    typeset={\myref{\tikzgraphnodefullname}}
  },
] { a -> { b -> c, d } };
\end{tikzpicture}

\section{The first section}  \label{a}
\section{The second section} \label{b}
\section{The third section}  \label{c}
\section{The fourth section} \label{d}
\end{document}

如果您想将前缀保留在您的部分标签中,您可以将其粘贴在、、和命令sec:的开头。\ref\nameref\pageref

如果你希望整个矩形都可以点击,可以看看这个问题

编辑

在阅读草稿时计算机视觉:算法与应用,我注意到一个很好的例子第 42 页上的“内容图表”

使用我上面给出的方法应该可以制作这种图表。


可能相关的问题:

相关内容