#5975: [with experimental patch] Implement latex output for (combinatorial)
graphs
--------------------------+-------------------------------------------------
Reporter: rbeezer | Owner: rbeezer
Type: enhancement | Status: new
Priority: major | Milestone: sage-feature
Component: graph theory | Keywords:
--------------------------+-------------------------------------------------
Comment(by fidelbarrera):
Replying to [comment:2 rbeezer]:
> latex-test-1.patch is just that, a test. Code by Fidel Barrera-Cruz,
which I've got working in this patch. Strictly experimental for
discussion purposes. The session
>
> {{{
> g = graphs.PetersenGraph()
> latex(g)
> }}}
>
> produces
>
> {{{
> \begin{tikzpicture}
> \GraphInit[vstyle=Dijkstra]
>
> \SetVertexNoLabel
> \SetVertexMath
>
> \Vertex[x=2.5cm,y=4.7553cm]{a0}
> \Vertex[x=0.0cm,y=2.9389cm]{a1}
> \Vertex[x=0.9549cm,y=0.0cm]{a2}
> \Vertex[x=4.0451cm,y=0.0cm]{a3}
> \Vertex[x=5.0cm,y=2.9389cm]{a4}
> \Vertex[x=2.5cm,y=3.441cm]{a5}
> \Vertex[x=1.25cm,y=2.5328cm]{a6}
> \Vertex[x=1.7275cm,y=1.0633cm]{a7}
> \Vertex[x=3.2725cm,y=1.0633cm]{a8}
> \Vertex[x=3.75cm,y=2.5328cm]{a9}
>
> \AssignVertexLabel{a}{10}{
> $0$,
> $1$,
> $2$,
> $3$,
> $4$,
> $5$,
> $6$,
> $7$,
> $8$,
> $9$
> }
>
> \Edge(a0)(a1)
> \Edge(a0)(a4)
> \Edge(a0)(a5)
> \Edge(a1)(a2)
> \Edge(a1)(a6)
> \Edge(a2)(a3)
> \Edge(a2)(a7)
> \Edge(a3)(a4)
> \Edge(a3)(a8)
> \Edge(a4)(a9)
> \Edge(a5)(a7)
> \Edge(a5)(a8)
> \Edge(a6)(a8)
> \Edge(a6)(a9)
> \Edge(a7)(a9)
>
> \end{tikzpicture}
> }}}
>
> which when run through Latex produces the attached PDF.
This new test version supports colors in vertices, labels and vertices.
One can also choose among the different styles offered by tkz-graph,
'Art', 'Shade', 'Welsh', 'Classic', etc. A sample session:[[BR]]
{{{
G=graphs.PetersenGraph()
latex(G)
}}}
This should give:[[BR]]
{{{
\begin{tikzpicture}
%
\definecolor{col_a0}{rgb}{1.0,1.0,1.0}
\definecolor{col_a1}{rgb}{1.0,1.0,1.0}
\definecolor{col_a2}{rgb}{1.0,1.0,1.0}
\definecolor{col_a3}{rgb}{1.0,1.0,1.0}
\definecolor{col_a4}{rgb}{1.0,1.0,1.0}
\definecolor{col_a5}{rgb}{1.0,1.0,1.0}
\definecolor{col_a6}{rgb}{1.0,1.0,1.0}
\definecolor{col_a7}{rgb}{1.0,1.0,1.0}
\definecolor{col_a8}{rgb}{1.0,1.0,1.0}
\definecolor{col_a9}{rgb}{1.0,1.0,1.0}
%
%
\definecolor{col_lab_a0}{rgb}{0.0,0.0,0.0}
\definecolor{col_lab_a1}{rgb}{0.0,0.0,0.0}
\definecolor{col_lab_a2}{rgb}{0.0,0.0,0.0}
\definecolor{col_lab_a3}{rgb}{0.0,0.0,0.0}
\definecolor{col_lab_a4}{rgb}{0.0,0.0,0.0}
\definecolor{col_lab_a5}{rgb}{0.0,0.0,0.0}
\definecolor{col_lab_a6}{rgb}{0.0,0.0,0.0}
\definecolor{col_lab_a7}{rgb}{0.0,0.0,0.0}
\definecolor{col_lab_a8}{rgb}{0.0,0.0,0.0}
\definecolor{col_lab_a9}{rgb}{0.0,0.0,0.0}
%
%
\definecolor{col_a0-a1}{rgb}{0.0,0.0,0.0}
\definecolor{col_a0-a4}{rgb}{0.0,0.0,0.0}
\definecolor{col_a0-a5}{rgb}{0.0,0.0,0.0}
\definecolor{col_a1-a2}{rgb}{0.0,0.0,0.0}
\definecolor{col_a1-a6}{rgb}{0.0,0.0,0.0}
\definecolor{col_a2-a3}{rgb}{0.0,0.0,0.0}
\definecolor{col_a2-a7}{rgb}{0.0,0.0,0.0}
\definecolor{col_a3-a4}{rgb}{0.0,0.0,0.0}
\definecolor{col_a3-a8}{rgb}{0.0,0.0,0.0}
\definecolor{col_a4-a9}{rgb}{0.0,0.0,0.0}
\definecolor{col_a5-a7}{rgb}{0.0,0.0,0.0}
\definecolor{col_a5-a8}{rgb}{0.0,0.0,0.0}
\definecolor{col_a6-a8}{rgb}{0.0,0.0,0.0}
\definecolor{col_a6-a9}{rgb}{0.0,0.0,0.0}
\definecolor{col_a7-a9}{rgb}{0.0,0.0,0.0}
%
%
\GraphInit[vstyle=Normal]
%
\SetVertexMath
%
\SetVertexNoLabel
%
\renewcommand*{\VertexLightFillColor}{col_a0}
\Vertex[x=2.5cm,y=4.7553cm]{a0}
\renewcommand*{\VertexLightFillColor}{col_a1}
\Vertex[x=0.0cm,y=2.9389cm]{a1}
\renewcommand*{\VertexLightFillColor}{col_a2}
\Vertex[x=0.9549cm,y=0.0cm]{a2}
\renewcommand*{\VertexLightFillColor}{col_a3}
\Vertex[x=4.0451cm,y=0.0cm]{a3}
\renewcommand*{\VertexLightFillColor}{col_a4}
\Vertex[x=5.0cm,y=2.9389cm]{a4}
\renewcommand*{\VertexLightFillColor}{col_a5}
\Vertex[x=2.5cm,y=3.441cm]{a5}
\renewcommand*{\VertexLightFillColor}{col_a6}
\Vertex[x=1.25cm,y=2.5328cm]{a6}
\renewcommand*{\VertexLightFillColor}{col_a7}
\Vertex[x=1.7275cm,y=1.0633cm]{a7}
\renewcommand*{\VertexLightFillColor}{col_a8}
\Vertex[x=3.2725cm,y=1.0633cm]{a8}
\renewcommand*{\VertexLightFillColor}{col_a9}
\Vertex[x=3.75cm,y=2.5328cm]{a9}
%
%
\AssignVertexLabel{a}{10}{
\color{col_lab_a0}{$0$},
\color{col_lab_a1}{$1$},
\color{col_lab_a2}{$2$},
\color{col_lab_a3}{$3$},
\color{col_lab_a4}{$4$},
\color{col_lab_a5}{$5$},
\color{col_lab_a6}{$6$},
\color{col_lab_a7}{$7$},
\color{col_lab_a8}{$8$},
\color{col_lab_a9}{$9$}
}
%
%
\renewcommand*{\EdgeColor}{col_a0-a1}
\Edge(a0)(a1)
\renewcommand*{\EdgeColor}{col_a0-a4}
\Edge(a0)(a4)
\renewcommand*{\EdgeColor}{col_a0-a5}
\Edge(a0)(a5)
\renewcommand*{\EdgeColor}{col_a1-a2}
\Edge(a1)(a2)
\renewcommand*{\EdgeColor}{col_a1-a6}
\Edge(a1)(a6)
\renewcommand*{\EdgeColor}{col_a2-a3}
\Edge(a2)(a3)
\renewcommand*{\EdgeColor}{col_a2-a7}
\Edge(a2)(a7)
\renewcommand*{\EdgeColor}{col_a3-a4}
\Edge(a3)(a4)
\renewcommand*{\EdgeColor}{col_a3-a8}
\Edge(a3)(a8)
\renewcommand*{\EdgeColor}{col_a4-a9}
\Edge(a4)(a9)
\renewcommand*{\EdgeColor}{col_a5-a7}
\Edge(a5)(a7)
\renewcommand*{\EdgeColor}{col_a5-a8}
\Edge(a5)(a8)
\renewcommand*{\EdgeColor}{col_a6-a8}
\Edge(a6)(a8)
\renewcommand*{\EdgeColor}{col_a6-a9}
\Edge(a6)(a9)
\renewcommand*{\EdgeColor}{col_a7-a9}
\Edge(a7)(a9)
%
%
\end{tikzpicture}
}}}
which should still produce the same output as in sage-petersen.pdf when
processed by LaTeX.[[BR]]
The '%' were added to avoid doctest errors.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5975#comment:3>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of
Reinventing the Wheel
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---