在此流程图的 MWE 中,\chainin
使用命令时它不会编译,我需要了解以下内容:
align=center
没有将节点内容居中,例如(m-2-1)
。\\
由于使用会使编译运行很长时间,我怎样才能中断任何矩阵节点内的线?- 我怎样才能以这样的方式连接
(m-3-1)
和,(m-1-2)
即连接向右延伸到中间,然后垂直向左延伸到右边(m-1-2)
? - 使用
\chainin
命令时,出现错误:Undefined control sequence. \chainin
尽管加载了chains
库。
我已经在没有的情况下绘制了这个流程图chains
,但我需要知道使用它是否可以实现。
\RequirePackage{luatex85}
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,chains, positioning,matrix,shapes}
\begin{document}
\begin{tikzpicture}[
every node/.style={draw,rectangle,align=center},
every join/.style=latex,
join
]
\matrix (m) [matrix of nodes,column sep=5mm,row sep=5mm]{
{1\\new line} & 4\\
2 & 5\\
3 & 6\\
};
{ [start chain]
\chainin (m-1-1);
\chainin (m-2-1);
\chainin (m-3-1);
\chainin (m-1-2);
\chainin (m-2-2);
\chainin (m-3-2);
}
\end{tikzpicture}
\end{document}
答案1
问题在于Undefined control sequence
你缺少一个库:
\usetikzlibrary{scopes}
据我所知,手册中没有提到,但我以前见过这个问题。
至于你的问题 (3),我认为最好单独画出那条线,并将链分成两部分。至少因为我不知道如何修改路径\chainin
运算符...
梅威瑟:
\RequirePackage{luatex85}
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,chains,scopes,positioning,matrix,shapes,calc}
\begin{document}
\begin{tikzpicture}[
every node/.style={draw,rectangle,align=center}, >=latex
]
\matrix (m) [matrix of nodes,column sep=5mm,row sep=5mm]
{
\node(m-1-1){1\\new line}; & 4\\
2 & 5\\
3 & 6\\
};
%\matrix[below=5cm] (m) [matrix of nodes,column sep=5mm,row sep=5mm]{
% |[text width=1.5cm]| {1\\new line} & 4\\
% 2 & 5\\
% 3 & 6\\
%};
{ [start chain,every on chain/.style={join=by ->}]
\chainin (m-1-1);
\chainin (m-2-1);
\chainin (m-3-1);
\chainin (m-1-2);
\chainin (m-2-2);
\chainin (m-3-2);
}
\draw[red,->] (m-3-1) -| ($(m-3-1)!.7!(m-1-2)$) |-(m-1-2);
\end{tikzpicture}
\end{document}
我在 MWE 中也使用了不同的方法在矩阵环境中进行换行(问题 2)。正如手册中所说,可以使用嵌套节点,因此由于每个矩阵单元都是一个节点,我们可以在\node
该节点内使用,并且由于我们已经将样式every node
设置为align=center
,该节点已经居中对齐,因此无需指定text width
。虽然我不知道为什么键align=center
在里面不起作用\matrix
,也许是一个错误......