在这个问题中TikZ 是否有与 PSTricks \ncbar 命令等效的命令?Jake 提供了一个非常好的 PSTricks\ncbar
命令的 TikZ 版本。
使用 TikZ 中的常规节点连接,我可以使用参数[auto]
自动沿路径放置节点。我希望能够使用路径来做到这一点\ncbar
,但我不知道该怎么做。
因此,在下面的代码中,我想沿着弯曲箭头添加一个 C 节点,类似于在直箭头上添加的 C 节点。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\tikzset{
ncbar angle/.initial=90,
ncbar/.style={
to path=(\tikztostart)
-- ($(\tikztostart)!#1!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztotarget)$)
-- ($(\tikztotarget)!($(\tikztostart)!#1!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztotarget)$)!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztostart)$)
-- (\tikztotarget)
},
ncbar/.default=0.5cm,
}
\begin{document}
\begin{tikzpicture}[auto]
\node (A) at (1,4) {A};
\node (B) at (3,4) {B};
\draw[->] (A) to node {C} (B);
\draw[->] (A) to [ncbar=-1.5em] node {C} (B); % can I get this to work?
\end{tikzpicture}
\end{document}
答案1
您可以\tikztonodes
在主链接中添加路径构造。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\tikzset{
ncbar angle/.initial=90,
ncbar/.style={
to path=(\tikztostart)
-- ($(\tikztostart)!#1!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztotarget)$)
-- ($(\tikztotarget)!($(\tikztostart)!#1!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztotarget)$)!\pgfkeysvalueof{/tikz/ncbar angle}:(\tikztostart)$)
\tikztonodes
-- (\tikztotarget)
},
ncbar/.default=0.5cm,
}
\begin{document}
\begin{tikzpicture}[auto]
\node (A) at (1,4) {A};
\node (B) at (3,4) {B};
\draw[->] (A) to node {C} (B);
\draw[->] (A) to [ncbar=-1.5em] node[pos=0.3,below] {C} (B);
\end{tikzpicture}
\end{document}