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を呼び出す下位レベルのノード印刷コマンドを更新(つまり変更)できます。このコマンドには、ノード ラベルが引数の 1 つとして使用されます。 を使用すると、ノード カウンタに 1 を追加し、その結果をマクロに格納して、カウンタ自体ではなくラベルにそのマクロを印刷できます。ラベルにが追加されるのを避けるために、 の代わりに を使用する必要があることに注意してください。\Vertextkz-graphtkz-berge\pgfmathtruncatemacro\pgfmathtruncatemacro\pgfmathsetmacro.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}

結果:

ここに画像の説明を入力してください

関連情報