Knotennamenzähler in tkz-berge zurücksetzen

Knotennamenzähler in tkz-berge zurücksetzen

Ich habe mit der Bibliothek folgenden Graphen erstellt tkz-berge. In den aktuellen Einstellungen werden die Knoten/Eckpunkte automatisch nummeriert, beginnend mit dem Index 0. Ich frage mich, wie ich den Zähler zurücksetzen kann, um mit 1 zu beginnen?

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

Abbildung 1

Antwort1

Der Knotenzähler wird im gesamten Code von verwendet, tkz-bergeum Positionen zu berechnen und interne Knotennamen zu generieren. Wenn Sie also den Zähler ändern, bricht alles Mögliche zusammen. Sie können jedoch den Befehl zum Drucken von Knoten auf niedrigerer Ebene erneuern (d. h. ändern), \write@mathder \Vertex(definiert durch das Paket tkz-graph, das von geladen wird tkz-berge) mit der Knotenbezeichnung als einem der Argumente aufruft. Mit \pgfmathtruncatemacrokönnen Sie 1 zum Knotenzähler hinzufügen, das Ergebnis in einem Makro speichern und dieses Makro in der Bezeichnung statt im Zähler selbst drucken. Beachten Sie, dass \pgfmathtruncatemacroanstelle von verwendet werden sollte, um das Hinzufügen in der Bezeichnung \pgfmathsetmacrozu vermeiden ..0

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}

Ergebnis:

Bildbeschreibung hier eingeben

verwandte Informationen