我开始学习使用 tikz 绘制简单的图形。我想N
通过绘制类似这样的图形来表示存在节点的想法:
如何...
在两个节点之间画一个省略号:?
下面是我在上面使用的代码:
\documentclass[12pt,a4paper]{report}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.5cm,
main node/.style={thick,circle,draw,font=\sffamily\Large}]
\node[main node] (1) {$X_1$};
\node[main node] (2) [right of=1]{$X_N$};
\node[main node] (5) [below of=1]{C};
\path[every node/.style={font=\sffamily\small}]
(1) edge (5);
\end{tikzpicture}
\end{document}
(欢迎提出有关如何改进我的 tikz 代码的其他评论。)
答案1
另一种说法是\path (1) -- node[auto=false]{\ldots} (2);
。您已在选项中打开该auto
设置tikzpicture
,auto=false
请将其关闭。
另外,建议加载positioning
库并使用,right=of
而不是只说right of=
。参见PGF/TikZ 中“right of=”和“right=of”之间的区别。
最后,我真的不认为[every node...
你最后一条路的选择会起到什么作用。
\documentclass[12pt,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning}
\begin{document}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=1.5cm,
main node/.style={thick,circle,draw,font=\sffamily\Large}]
\node[main node] (1) {$X_1$};
\node[main node] (2) [right=of 1]{$X_N$};
\node[main node] (5) [below=of 1]{C};
\path (1) edge (5);
\path (1) -- node[auto=false]{\ldots} (2);
\end{tikzpicture}
\end{document}
答案2
您可以添加一个没有任何边框的节点,并使用\ldots
。
该语法的at ($(1)!.5!(2)$)
意思是“将其放置在1
和之间的一半距离处2
”。这需要calc
库。
还有一件事:我从 切换arrows
到arrows.meta
因为前者已被弃用。请参阅Tikz 手册(16.5 参考:箭头提示,第 203 页)以了解如何定义箭头尖头的更多详细信息。唉,箭头有点不同,如果您想要圆形,请添加>={Stealth[round]}
。
编辑:除了固定定位之外,我还将您的节点选项放在了中\tikzset
,查看新代码,然后改用\draw () -- ();
。
输出
代码
\documentclass[12pt,a4paper]{report}
\usepackage{tikz}
\usetikzlibrary{calc,arrows.meta,positioning}
\tikzset{
every node/.style={font=\sffamily\small},
main node/.style={thick,circle,draw,font=\sffamily\Large}
}
\begin{document}
\begin{tikzpicture}[->,>={Stealth[round,sep]},shorten >=1pt,auto,node distance=2.5cm]
\node[main node] (1) {$X_1$};
\node[main node] (2) [right =of 1]{$X_N$};
\node[main node] (5) [below =of 1]{C};
\node at ($(1)!.5!(2)$) {\ldots};
\draw (1) -- (5);
\end{tikzpicture}
\end{document}