Estoy tratando de ilustrar la construcción del gráfico de voltaje del gráfico de Petersen. En la práctica, esto significa:
- El ciclo exterior se etiquetará en el sentido de las agujas del reloj (a,0),...,(a,4) con arcos orientados en ese orden;
- El ciclo interno se etiquetará en el sentido de las agujas del reloj (b,0),...,(b,4) con arcos (b,0) -> (b,2), (b,1) -> (b,3), (b,2) -> (b,4) y (b,3) -> (b,0); y
- Cada (a,i) se unirá al correspondiente (b,i) (en esa dirección).
Casi puedo lograr esto usando la macro grpetersen y el siguiente código:
\begin{tikzpicture}[->,>=triangle 45,rotate=90,scale=1.2,style=thick]
\newcommand{\aset}[2]{$\{#1,#2\}$}
\tikzset{VertexStyle/.style={draw,rectangle}}
\SetVertexNoLabel
\SetVertexMath
\SetUpVertex[MinSize=30pt]
\grPetersen[RA=3,RB=1.5]
% \SetUpEdge{style={->-}}
\AssignVertexLabel{a}{\textsl{(a,0)},\textsl{(a,4)},\textsl{(a,3)},\textsl{(a,2)},\textsl{(a,1)}}
\AssignVertexLabel{b}{\textsl{(b,0)},\textsl{(b,4)},\textsl{(b,3)},\textsl{(b,2)},\textsl{(b,1)}}
\end{tikzpicture}
Sin embargo, los arcos del ciclo exterior están orientados en la dirección incorrecta y no veo cómo cambiarlos sin cambiar los otros arcos orientados correctamente.
Cualquier sugerencia sería muy apreciada.
Es parte de tkzgraph/berge; consulte "Trazado de gráficos con nombre" de Altermundus. Aquí hay un documento mínimo que contiene el código anterior.
\documentclass{article}
\usepackage{tkz-graph}
\usepackage{tkz-berge}
\begin{document}
\begin{tikzpicture}[->,>=triangle 45,rotate=90,scale=1.2,style=thick]
\newcommand{\aset}[2]{$\{#1,#2\}$}
\tikzset{VertexStyle/.style={draw,rectangle}}
\SetVertexNoLabel
\SetVertexMath
\SetUpVertex[MinSize=30pt]
\grPetersen[RA=3,RB=1.5]
% \SetUpEdge{style={->-}}
\AssignVertexLabel{a}{\textsl{(a,0)},\textsl{(a,4)},\textsl{(a,3)},\textsl{(a,2)},\textsl{(a,1)}}
\AssignVertexLabel{b}{\textsl{(b,0)},\textsl{(b,4)},\textsl{(b,3)},\textsl{(b,2)},\textsl{(b,1)}}
\end{tikzpicture}
\end{document}
Respuesta1
Aquí quizás haya una solución. Modifiqué mi macro que definí entkz-berge.sty. La mejor manera es aprender.tkz-bergeo aprendertikzpara crear tus propias macros. Puedes encontrar algunas ideas dentro del código detkz-bergepero también miras el documentoGráficos con nombrepara encontrar algunos ejemplos Gráficos con nombre
Observación: tkz-berge carga tkz-graph y tikz
\documentclass{article}
\usepackage{tkz-berge}
\makeatletter
\renewcommand*{\grPetersen}[1][]{%
\begingroup%
\setkeys[GR]{cl}{#1}%
\begin{scope}[<-]
\grCycle[#1]{5}%
\end{scope}
\edef\tkzb@rtemp{\cmdGR@cl@RB}
\edef\tkzb@ptemp{\cmdGR@cl@prefixx}
\grStartwo[#1,RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{2}
\EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{5}
\endgroup%
}
\makeatother
\begin{document}
\begin{tikzpicture}[->,>=triangle 45,rotate=90,scale=1.2,style=thick]
\newcommand{\aset}[2]{$\{#1,#2\}$}
\tikzset{VertexStyle/.style={draw,rectangle}}
\SetVertexNoLabel
\SetVertexMath
\SetUpVertex[MinSize=30pt]
\grPetersen[RA=3,RB=1.5]
\AssignVertexLabel{a}{\textsl{(a,0)},\textsl{(a,4)},\textsl{(a,3)},\textsl{(a,2)},\textsl{(a,1)}}
\AssignVertexLabel{b}{\textsl{(b,0)},\textsl{(b,4)},\textsl{(b,3)},\textsl{(b,2)},\textsl{(b,1)}}
\end{tikzpicture}
\end{document}