Redefinir contador de nome de vértice em tkz-berge

Redefinir contador de nome de vértice em tkz-berge

Eu tenho um gráfico a seguir construído com tkz-bergebiblioteca. Nas configurações atuais os nós/vértices são numerados automaticamente começando com o índice 0. Gostaria de saber como zerar o contador para começar com 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}

Figura 1

Responder1

O contador de nós é usado em todo o código para tkz-bergecalcular posições e gerar nomes de nós internos, portanto, quando você altera o contador, todos os tipos de coisas quebram. No entanto, você pode renovar (ou seja, modificar) o comando de impressão do nó de nível inferior \write@mathque chama \Vertex(definido pelo pacote tkz-graph, que é carregado por tkz-berge) com o rótulo do nó como um dos argumentos. Usando \pgfmathtruncatemacrovocê pode adicionar 1 ao contador do nó, armazenar o resultado em uma macro e imprimir essa macro no rótulo em vez do próprio contador. Observe que \pgfmathtruncatemacrodeve ser usado em vez de \pgfmathsetmacropara evitar a adição .0no rótulo.

MWE:

\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}

Resultado:

insira a descrição da imagem aqui

informação relacionada