![使用 tikz 时未设置位置](https://linux22.com/image/389399/%E4%BD%BF%E7%94%A8%20tikz%20%E6%97%B6%E6%9C%AA%E8%AE%BE%E7%BD%AE%E4%BD%8D%E7%BD%AE.png)
我正在使用tikz
。LyX
我正在尝试构建一个基本图表。是否可以以某种方式添加节点的路径而不设置每个节点的位置?
现在我使用:
\begin{tikzpicture}
[scale=.8,auto=left,node/.style={circle,draw}]
\node[circle,draw] (A) at (0,0) {$v_1$};
\node[circle,draw] (B) at (4,0) {$v_2$};
\draw[->] (A)--(B) node[midway,above]{$e_0$};
\end{tikzpicture}
输出:
但是是否可以删除该at (4,0)
部分,以便tikz
单独生成图形?我并不真正关心节点位于何处,我只关心它们的出口以及它们之间的路径。所需的代码如下所示:
\begin{tikzpicture}
[scale=.8,auto=left,node/.style={circle,draw}]
\node[circle,draw] (A) {$v_1$};
\node[circle,draw] (B) {$v_2$};
\draw[->] (A)--(B) node[midway,above]{$e_0$};
\end{tikzpicture}
并且输出应该是相同的(可能90
程度不同但逻辑相同)。
主要目标只是声明路径并将tikz
为我完成艰苦的工作。
我正在使用网页图形可视化(浏览器中的 Graphviz)。在那里,我只需声明它将为我构建图形的路径(无需设置位置)。我知道不可能使用它,Graphviz
并且LyX
每个使用它的人都会上传图像。我更喜欢构建节点,这样看起来会更好。
是否有可能以某种方式创建图形而不声明每个节点的坐标?
答案1
该graphs
库可让您无需担心节点的位置(参见手册 3.1 第 408 页及以下章节)。
\documentclass[tikz,border=5mm]{standalone}
\usetikzlibrary{graphs}
\begin{document}
\begin{tikzpicture}
\graph[grow right=30mm,nodes={circle,draw}] {
1 ->[edge label={a}] 2 ->[edge label={b}] 3;
1 -- [bend right,edge label'={c}] 3;
};
\end{tikzpicture}
\end{document}
答案2
你的建议的最低限度的实现可能是
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{chains}
\begin{document}
\begin{tikzpicture}[start chain,c/.style={circle,draw,join},every join/.style={-latex}]
\node [c,on chain] {A};
\node [c,on chain] {B};
\end{tikzpicture}
\end{document}
稍微复杂一点的版本可能是
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{chains,decorations.markings}
\newcounter{eindex}
\begin{document}
\begin{tikzpicture}[node distance=2.4cm,start chain,%
midmark/.style={postaction={decorate,decoration={markings,
mark=at position 0.5 with {\stepcounter{eindex}
\node[anchor=south] at (0,0.1){$e_{\theeindex}$};}}}},
c/.style={circle,draw,join},every join/.style={-latex,midmark}]
\node [c,on chain] {A};
\node [c,on chain] {B};
\node [c,on chain] {C};
\end{tikzpicture}
\end{document}
当然,链条可以朝任何方向延伸,而且还有更多的东西,正如您在 pgfmanual 第 48 节中看到的那样。