我对 TikZ 样式的理解哪里错了?

我对 TikZ 样式的理解哪里错了?

我正在尝试通过阅读手册(第 34 页)来学习 TikZ。我知道我的理解一定完全偏离了轨道,因为没有任何东西像我认为的那样工作;但我不确定我误解了什么。

我从手册中理解的是:假设你想画出许多形状如下的圆

\draw[red, very thick, radius = 1] (0, 0) circle;

red, very thick, radius = 1你可以通过 TikZ 风格将所有内容打包成一个单词,而不是直接写,就像这样

myCircle/.style = {red, very thick, radius = 1};

现在你可以更快地画圆了,因为你只需写

\documentclass{book}
\usepackage{tikz}
\usepackage{parskip}

\begin{document}

\begin{tikzpicture}

    `myCircle/.style = {red, very thick, radius = 1};`
    \draw[myCircle] (0, 0) circle;
    \draw[myCircle] (1, 2) circle;
    \draw[myCircle] (3, 4) circle;

\end{tikzpicture}

\end{document}

然而,这并不起作用;它甚至无法编译。

对我来说,这可能更令人困惑:在手册中,他们使用 做了类似的事情help lines,这显然是 TikZ 包中预定义的东西(一种样式?)。现在下面的代码确实可以编译,但它无法使网格线变成蓝色且非常粗。

\documentclass{book}
\usepackage{tikz}
\usepackage{parskip}
\begin{document}

\begin{tikzpicture}

     help lines/. style = {blue, very thick}
     \draw[help lines] (-4, -4) grid (4, 4);

\end{tikzpicture}

\end{document}

你能帮我看看我的理解哪里错了吗?谢谢。

答案1

您有几个(4 个?)问题。

  1. 如果要为一张图片定义样式,则需要将其放入图片的可选参数中,放在方括号中[ ]
  2. 风格以,(或论证的结束)结束,而不是;
  3. 在 中tikzset,样式具有由正常 TeX 规则决定的范围。
  4. /和处理程序之间不能有空格.style

这有效:

\documentclass{book}
\usepackage{tikz}
\usepackage{parskip}

\begin{document}

\begin{tikzpicture}[
    myCircle/.style = {red, very thick, radius = 1}, % end with a comma, NOT semicolon!
    ]

    \draw[myCircle] (0, 0) circle;
    \draw[myCircle] (1, 2) circle;
    \draw[myCircle] (3, 4) circle;
\end{tikzpicture}

\tikzset{help lines/.style = {blue, very thick}} %% no spaces between / and .style!

\begin{tikzpicture}
     \draw[help lines] (-4, -4) grid (4, 4);
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容