为 tkz-euclide 中的元素设置全局样式

为 tkz-euclide 中的元素设置全局样式

使用 tkz-euclide 时是否可以为元素设置全局样式?(我有一个包含许多 TikZ 图形的文档,我希望能够为不同的线、点等组设置不同的样式,可以通过更改文件顶部的参数来控制。)

可以在 TikZ 中使用 来执行此操作\tikzset,但我还无法弄清楚在使用 tkz-euclide 时如何执行此操作。

这是一个最小的例子,我希望它能够帮助解释我正在做的事情:

\documentclass[a4paper]{article}
\usepackage[upright]{fourier} 
\usepackage[usenames,dvipsnames,svgnames]{xcolor}
\usepackage{tkz-euclide,fullpage}
\usetkzobj{all}

 \tikzset{%
  mystyleone/.style={%
 color=blue!50!white,
 fill=gray!20!red!50!white
               }      
  mystyletwo/.style={%
  color=blue!70!black,
  fill=blue!70!black
   }
  }

  \begin{document}

  \begin{tikzpicture}
  \tkzInit[xmin=-4,xmax=4,ymin=-4,ymax=4]
  \tkzClip

   % Set out the initial points
   \tkzDefPoint(0,0){O}
    \tkzDefPoint(0,1){A} 

   \tkzDrawPoints[mystyleone](O)
   \tkzDrawPoints[mystyletwo](A)

   % labels
   \tkzLabelPoints(O,A)

   \end{tikzpicture}

  \end{document} 

如本例所示,我希望能够定义一些样式变量,然后在 、 、 等中使用单一名称作为选项\tkzDrawCircle调用\tkzDrawSegments它们\tkzLabelPoints

答案1

我不确定这是否完全符合您的要求,但我现在将其作为答案发布,因为我必须更正代码的其他部分才能使其正常工作,因此以这种方式展示最容易。如果这不是可接受的解决方案,我将删除答案。

使它按预期工作的快速方法是简单地将键的完整路径(对于您的情况,/tikz/mystyleone)放入选项设置中。这是必需的,因为tkz-euclide .cds(changes irectory)为每个命令、等d设置不同的本地化键路径。我们需要输入用户定义样式的完整路径,以“退出”此缩小的键搜索路径。\tkzDrawCircle\tkzDrawPoints

以下是修正样式定义后的完整代码,以便可以找到两者:

\documentclass[a4paper]{article}
\usepackage[upright]{fourier} 
\usepackage[usenames,dvipsnames,svgnames]{xcolor}
\usepackage{tkz-euclide,fullpage}
%\usetkzobj{all} % useless with the new version

\tikzset{
  mystyleone/.style={
    color=blue!50!white,
    fill=gray!20!red!50!white,
  },
  mystyletwo/.style={
    color=blue!70!black,
    fill=blue!70!black,
  },
}

\begin{document}
\begin{tikzpicture}
  \tkzInit[xmin=-4,xmax=4,ymin=-4,ymax=4]
  \tkzClip

  % Set out the initial points
  \tkzDefPoint(0,0){O}
  \tkzDefPoint(0,1){A} 

  \tkzDrawPoints[/tikz/mystyleone](O)
  \tkzDrawPoints[/tikz/mystyletwo](A)

  % labels
  \tkzLabelPoints(O,A) 
\end{tikzpicture}
\end{document} 

结果如下:

在此处输入图片描述

答案2

好的方法介于 Darko 的评论和 Paul 的回答之间。

原则上,在经典图形中只使用一种点样式。必须用 来定义,\tkzSetUpPoint然后您才有可能定义自己的样式,但如下所示:

\tikzset{/tikz/mystyletwo/.style={color=blue!20!black,fill=blue!20}}

\documentclass[border=5mm]{standalone}
\usepackage{tkz-euclide}
%\usetkzobj{all} % useless with the new version
\tkzSetUpPoint[color=blue!50!white, fill=gray!20!red!50!white] 
\tikzset{/tikz/mystyletwo/.style={ color=blue!20!black, fill=blue!20}}
\begin{document}
\begin{tikzpicture}
  % Set out the initial points
  \tkzDefPoint(0,0){O}
  \tkzDefPoint(0,1){A} 
  % drawing
  \tkzDrawPoints(O)
  \tkzDrawPoints[mystyletwo,size=4](A)
  % labels
  \tkzLabelPoints(O,A) 
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容