我已经开始在 TikZ 中绘制自动机,因为它可以帮我定位节点,并且通常在选项方面只需要很少的后期处理。
我知道我可以使用该指令强制节点位于同一水平层[same layer]
。
我如何垂直执行此操作(即对齐 1,3,5 和 2,4)?
梅威瑟:
\documentclass[10pt,letterpaper]{article}
\usepackage{tikz}
\usetikzlibrary{graphdrawing,positioning,graphs}
\usegdlibrary{layered,trees}
\begin{document}
\begin{tikzpicture}[baseline]
\begin{graph}[layered layout]
{1->2->3->4,
2->4,1->4,
1->3,4->5,2->5,
{[same layer]1,2},
{[same layer]3,4}
};
\end{graph}
\end{tikzpicture}
\end{document}
答案1
像这样?
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{graphs}
\begin{document}
\begin{tikzpicture}
\begin{graph}[grid placement,wrap after=2]{
1 -> 2 -> 3 -> 4 -> 5, 1 -> 3, 1 -> 4, 2 -> 4, 2 -> 5};
\end{graph}
\end{tikzpicture}
\end{document}
更多细节
你可以
- 为节点分配一个班次。
- 用于
/
声明一个洞。实际上,nema/txet
声明了一个名为 nema 的节点,但显示为 txet。
\begin{tikzpicture}
\begin{graph}[grid placement,wrap after=4]{
/, 2 , 3 , /,
5, 6[at={(.5,0)}], 7[at={(0,-.5)}], 8,
9,10[at={(0,.5)}],11[at={(-.5,0)}],12,
/,14 ,15};
\end{graph}
\end{tikzpicture}
更多细节
粗略地说,TikZ 节点由两部分组成:其形状和显示的文本。文本部分通常会显示,而形状部分会在您说 时绘制[draw]
。停止它的一个简单方法是说[white]
,这会使形状部分绘制为白色。或者更强烈地说,[opacity=0]
如果您的背景不是白色。
至于展开节点,您可以调整内置参数,例如[branch down=2cm,grow right=2cm]
。
答案2
您还可以使用以下技巧:使用same layer
水平对齐,但也对齐rotate=90
整个图形,以便水平变为垂直(这不会旋转节点内容,这对于这种情况来说是完美的):
\documentclass[10pt,letterpaper]{article}
\usepackage{tikz}
\usetikzlibrary{graphdrawing,positioning,graphs}
\usegdlibrary{layered,trees}
\begin{document}
\begin{tikzpicture}[baseline,rotate=90]
\begin{graph}[layered layout]
{1->2->3->4,
2->4,1->4,
1->3,4->5,2->5,
{[same layer]1,3,5},
{[same layer]2,4}
};
\end{graph}
\end{tikzpicture}
\end{document}
生成: