如何在 tikzset 链接中添加文本

如何在 tikzset 链接中添加文本

如何更改 tikzset 自动将文本添加到链接中

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{shapes,positioning,fit}
\begin{document}


\tikzset{mylink/.style={dashed,->}}
\begin{tikzpicture}

\node[circle,draw] (a) at (0,0){a};

\node[circle,draw] (b) at (5,2){b};

\draw[mylink](a) -- node{aaa}(b) ;
\end{tikzpicture}
\end{document}

答案1

您可以通过大约三种方式来自动获取具有样式的节点。

最简单的方法是使用to路径运算符,只需将使用的更改to path

-- node {#1} (\tikztotarget) \tikztonodes

(这当然只适用于--路径。)

如果您坚持--在路径中使用,您可以使用该decorations.markings库并自动用节点标记这些路径:

mark=at position .5 with {\node {#1};}

这也适用于非直线(--/ line to)路径。

第三个选项仅适用于 PGF 的当前 CVS 版本,并使用所谓的边缘节点。与解决方案 1 类似,我将样式更改every edge为包含此edge node。(我们也可以在路径中使用every toand 。) 这里的优点是我们仍然可以将路径更改为例如。to
curve to

代码

\documentclass[tikz]{standalone}
\usetikzlibrary{decorations.markings}
\tikzset{
    mylink/.style={
        dashed,
        ->,
    },
    aaa/.style={
        every to/.append style={
            to path=-- node {#1} (\tikztotarget) \tikztonodes
        }
    },
    aaa/.default=aaa,
    bbb/.style={
        decoration={
            markings,
            mark=at position .5 with {\node {#1};}
        },
        postaction=decorate
    },
    bbb/.default=bbb,
    ccc/.style={
        every edge/.append style={edge node=node {#1}}
    },
    ccc/.default=ccc
}
\begin{document}
\begin{tikzpicture}
\node[circle,draw] (a) at (0,0) {a};
\node[circle,draw] (b) at (5,2) {b};
\draw[mylink, aaa] (a) to (b);
\end{tikzpicture}

\begin{tikzpicture}
\node[circle,draw] (a) at (0,0) {a};
\node[circle,draw] (b) at (5,2) {b};
\draw[mylink, bbb] (a) -- (b);
\end{tikzpicture}

\begin{tikzpicture}
\node[circle,draw] (a) at (0,0) {a};
\node[circle,draw] (b) at (5,2) {b};
\draw[mylink, ccc, curve to] (a) edge (b);
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

相关内容