重置 tkz-berge 中的顶点名称计数器

重置 tkz-berge 中的顶点名称计数器

我有一张用库构建的下图tkz-berge。在当前设置中,节点/顶点自动编号,从索引 0 开始。我想知道如何重置计数器以便从 1 开始?

\documentclass{article}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{tkz-berge}
\begin{document}
\begin{tikzpicture}
\begin{tikzpicture}
\GraphInit[vstyle=Normal]
\SetUpVertex[Math,Lpos=-180,LabelOut]
\SetVertexNormal[FillColor=red,OuterSep=0pt]
\grEmptyPath[form=2,x=0,y=0,RA=2,rotation=90,prefix=u,Math]{5}
\SetUpVertex[Lpos=0]
\SetVertexNormal[FillColor=blue]
\grEmptyPath[form=2,x=6,y=0,RA=2,rotation=90,prefix=v,Math]{4}
\Edges(u4,v3,u3,v2,u1)
\Edges(u3,v3,u0,v0,u2,v1)
\end{tikzpicture}
\end{tikzpicture}
\end{document}

图1

答案1

tkz-berge节点计数器用于计算位置和生成内部节点名称的整个代码中,因此当您更改计数器时,所有事情都会崩溃。但是,您可以更新(即修改)较低级别的节点打印命令\write@math,该命令调用(由 加载的\Vertex包 定义)并将节点标签作为参数之一。使用您可以将 1 添加到节点计数器,将结果存储在宏中,并在标签中打印该宏而不是计数器本身。请注意,应使用 而不是以避免在标签中添加。tkz-graphtkz-berge\pgfmathtruncatemacro\pgfmathtruncatemacro\pgfmathsetmacro.0

梅威瑟:

\documentclass{article}
\usepackage{tkz-berge}
\makeatletter
\renewcommand*{\write@math}[3]{%
            \pgfmathtruncatemacro{\printindex}{#3+1}
            \Vertex[x = #1,y = #2,%
                    L = \cmdGR@cl@prefix\grMathSep{\printindex}]{\cmdGR@cl@prefix#3}}
\makeatother
\begin{document}
\begin{tikzpicture}
\GraphInit[vstyle=Normal]
\SetUpVertex[Math,Lpos=-180,LabelOut]
\SetVertexNormal[FillColor=red,OuterSep=0pt]
\grEmptyPath[form=2,x=0,y=0,RA=2,rotation=90,prefix=u,Math]{5}
\SetUpVertex[Lpos=0]
\SetVertexNormal[FillColor=blue]
\grEmptyPath[form=2,x=6,y=0,RA=2,rotation=90,prefix=v,Math]{4}
\Edges(u4,v3,u3,v2,u1)
\Edges(u3,v3,u0,v0,u2,v1)
\end{tikzpicture}
\end{document}

结果:

在此处输入图片描述

相关内容