我正在绘制图形,想要在其中标记顶点(例如 x、y、z、w 等),同时还要附加在每个顶点处计算的函数值(例如 4、-3、2、7 对应于顶点 x、y、z、w 等)。我想通过将 x 放在顶点内并将函数值放在外部来实现这一点,但如果有其他轻松实现这一点的方法,我也会接受。
是否可以使用该tkz-graph
软件包来实现这一点?我已阅读了文档(尽管我的法语很生疏),但还是无法弄清楚这一点。我也愿意尝试其他(简单易用的)软件包来实现这一点。
(我的 LaTeX 水平是 $< \epsilon$)
\documentclass[10pt,border=3mm,tikz]{standalone}
\usepackage{tkz-graph}
\begin{document}
\begin{tikzpicture}
\GraphInit[vstyle=Normal]
\SetGraphUnit{2}
\SetVertexMath
\Vertex{x}
\Vertex[LabelOut, L=$4$, Lpos=90]{x} % this just replaces the internal label doesn't add an outside label
\EA(x){y}
\NOEA(y){z}
\SOEA(z){w}
\Edges(x,y,z,w,y,z)
\end{tikzpicture}
\end{document}
答案1
这里有一种方法可以做到:将tkz-graph
(基于 Tikz 构建)与普通的混合Tikz
。
一些提示
Tikz
;
需要在每行末尾添加一个分号,以表明“此路径应在此处结束”。想象一下path
要执行的一系列命令,我们将其视为“绘制某些内容”。 内部tkz-graph
已经提供了此功能;
,因此您可以在没有此指示符的情况下编写它们。(您也可以混合使用这两种方法。)
因此,在第一部分中,只需使用以下命令绘制结构tkz-graph
:
\Vertex{x} % default position: at (0,0)
\EA (x){y} % EAst of x
\NOEA (y){z} % NOrthEAst of y
\SOEA (z){w} % SOuthEAst of z
\Edges(x,y,z,w,y,z)
要放置标签,只需使用普通的\node
s 即可Tikz
,如下所示:
- 放置
\node
(x)
在先前定义的坐标处- 并作为文本
{ }
- 一些符合 Latex 规范的文本,这里是数学模式
$4$
- 并完成此路径,即此单个命令,通过
;
% ~~~ and now some ordinary Tikz to place text in math mode $ $ ~~~
% kindly watch the semicolon ; needed here
\node[abv] at (x) {$4$};
\node[bel] at (y) {$-3$};
...
样式abv
和bel
在开始时就已定义,只需将标签上下移动一点,即沿 y 方向移动。(也许它也可以作为 tkz-graph 中的快捷方式。)
\begin{tikzpicture}[ % defining some own styles
abv/.style={yshift=6mm},
bel/.style={yshift=-6mm},
]
...
最终结果
\documentclass[10pt,border=3mm,tikz]{standalone}
\usepackage{tkz-graph}
\begin{document}
\begin{tikzpicture}[ % defining some own styles
abv/.style={yshift=6mm},
bel/.style={yshift=-6mm},
]
\GraphInit[vstyle=Normal]
\SetGraphUnit{2}
\SetVertexMath
\Vertex{x} % default position: at (0,0)
\EA (x){y} % EAst of x
\NOEA (y){z} % NOrthEAst of y
\SOEA (z){w} % SOuthEAst of z
\Edges(x,y,z,w,y,z)
% ~~~ and now some ordinary Tikz to place text in math mode $ $ ~~~
% kindly watch the semicolon ; needed here
\node[abv] at (x) {$4$};
\node[bel] at (y) {$-3$};
\node[abv] at (z) {$2$};
\node[bel] at (w) {$7$};
\end{tikzpicture}
\end{document}