我正在尝试\node
使用嵌套图片将一个复杂的项目(由多个 s 组成)绘制为一个有凝聚力的整体\tikz
。我最外面的图片使用了一个链,每个都\node
放在链上。
我的内侧图片也使用了链条,但是它应该与外侧的链条不同。
这种结构会导致错误:
包 pgf 错误:没有已知名为 chain-2 的形状。
我该如何修复它?
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{chains,scopes,shapes.misc}
\begin{document}
\begin{tikzpicture}[start chain,node distance=5mm,
every node/.style={on chain},
connect/.append style={join=by ->},
point/.style={coordinate},
l/.style={draw, rounded rectangle, rounded rectangle right arc=0},
c/.style={draw},
r/.style={draw, rounded rectangle, rounded rectangle left arc=0},
cozy/.style={node distance=0}]
\node [point] {};
\node [connect] (lcr) {\tikz{[start chain, cozy]
\node [l] (l) {L};
\node [c] (c) {C};
\node [r] (r) {R};
}};
\node [point, connect] {};
\end{tikzpicture}
\end{document}
编辑:
我已经利用@Gonzalo Medina的回答(使用盒子来存储内部 tikzpicture)来消除错误。尽管它让我更接近解决方案,但我的实际情况不会因此得到解决,因为现在 latex 似乎认为\node
s 位于与最终绘制位置不同的位置:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{chains,scopes,shapes.misc}
\newsavebox\mybox
\tikzset{
l/.style={draw, rounded rectangle, rounded rectangle right arc=0},
c/.style={draw},
r/.style={draw, rounded rectangle, rounded rectangle left arc=0},
cozy/.style={node distance=0pt}
}
\begin{document}
\savebox\mybox{%
\tikz[start chain,every node/.style={on chain},node distance=-\pgflinewidth]
{
\node [l] (l) {L};
\node [c] (c) {C};
\node [r] (r) {R};
}}
\begin{tikzpicture}[start chain,node distance=5mm,
every node/.style={on chain},
connect/.append style={join=by ->},
point/.style={coordinate},
group/.style={inner sep=0, outer sep=0}]
\node [point] {};
\node [connect, group] (lcr) {\usebox\mybox};
\node [point, connect] {};
{[]
\draw[->] (0,-1) -- (l.south east);
}
\end{tikzpicture}
\end{document}
也许我只需要摆脱chain
嵌套图片中的...或就此而言,丢失整个嵌套图片,并坚持单一级别的 tikz。