Tengo el siguiente gráfico construido con tkz-berge
la biblioteca. En la configuración actual, los nodos/vértices se numeran automáticamente y comienzan con el índice 0. Me pregunto cómo restablecer el contador para comenzar con 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}
Respuesta1
El contador de nodos se utiliza en todo el código para tkz-berge
calcular posiciones y generar nombres de nodos internos, por lo que cuando cambia el contador todo tipo de cosas se estropean. Sin embargo, puede renovar (es decir, modificar) el comando de impresión del nodo de nivel inferior \write@math
que llama \Vertex
(definido por el paquete tkz-graph
, que se carga con tkz-berge
) con la etiqueta del nodo como uno de los argumentos. Al usarlo, \pgfmathtruncatemacro
puede agregar 1 al contador de nodos, almacenar el resultado en una macro e imprimir esa macro en la etiqueta en lugar del contador mismo. Tenga en cuenta que \pgfmathtruncatemacro
debe usarse en lugar de \pgfmathsetmacro
para evitar agregar .0
en la etiqueta.
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: