我对大多数顶点使用以下设置:
\GraphInit[vstyle=Classic]
\tikzset{VertexStyle/.append style = {minimum size = 5pt, inner sep = 0pt}}
但我希望图形中的一个或两个顶点是空心的,外边缘较厚。我很困惑哪些选项可以用在 中\Vertex
,哪些可以放在 中\SetUpVertex
,哪些必须使用\tikzset
等。这里最好的选择是什么?
答案1
抱歉,我需要翻译 tkz-graph 的文档。首先,这个包的主要思想是向用户提供有用且简单的宏和样式。最后,您需要了解两种样式:VertexStyle
和EdgeStyle
。当您想要绘制图形时,您可以选择“通用”样式\GraphInit[vstyle=Classic]
。如果您的所有图形都具有相同的呈现方式,并且如果图形内部的所有顶点都具有相同的样式,则这很有用。但您可以手动全局更改样式,也可以本地更改样式。
存在一些不一致之处,但我需要将 tkz-graph 适配到 pgf 2.1 和 pgfkeys。使用新版本,我将仅使用 pgfkeys,并添加英文文档。
\documentclass[]{article}
\usepackage{tkz-graph}
\begin{document}
\begin{tikzpicture}
% the next line is because you want the style classic for most of the vertices
% if you can't find a style in the predefined styles then you create a style with
% \tikzset{VertexStyle/.style= ....
% if a predefined style is not exactly what you want you can use after the next line
% %\tikzset{VertexStyle/.append style = .....
% You also use : \SetUpVertex \SetUpVertex[FillColor=red]
% \SetUpVertex is to avoid the use of \tikzset{VertexStyle/.append style ....
\GraphInit[vstyle=Classic]
\SetUpVertex[FillColor=blue!30]
\Vertex{A}
% with a scope you apply locally a new style but you can use a tex group {....} instead.
\begin{scope}[VertexStyle/.append style = {minimum size = 5pt,
inner sep = 0pt,
color=green}]
\Vertex[x=4,y=2]{B}
\end{scope}
% here I use \tikzset
\tikzset{VertexStyle/.append style={rectangle}}
% Now if I want to put the label inside the vertex, I need to pass the style in the
% options of Vertex with ,LabelOut=false.
% Logically, it's possible with \SetUpVertex but ...
\Vertex[x=4,y=-2,LabelOut=false]{C}
\end{tikzpicture}
\end{document}
结论
如果您总是想要相同类型的图表,tkz-graph 很有用。如果图表不是“同质的”,则存在一些困难。
答案2
您可以使用类似如下的方法:
\begin{tikzpicture}
\SetVertexNormal[LineWidth=3pt]
\Vertex{B}
\SetVertexNoLabel
\Vertex[x=1,y=0]{C}
\end{tikzpicture}