嵌套 tikz 图片中的链

嵌套 tikz 图片中的链

我正在尝试\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 似乎认为\nodes 位于与最终绘制位置不同的位置:

糟糕的立场

\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。

相关内容