包 tkz-graph 中的内部和外部顶点标签?

包 tkz-graph 中的内部和外部顶点标签?

我正在绘制图形,想要在其中标记顶点(例如 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) 

要放置标签,只需使用普通的\nodes 即可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$};
...

样式abvbel在开始时就已定义,只需将标签上下移动一点,即沿 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}

相关内容