我正在尝试通过阅读手册(第 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 个?)问题。
- 如果要为一张图片定义样式,则需要将其放入图片的可选参数中,放在方括号中
[
]
; - 风格以
,
(或论证的结束)结束,而不是;
- 在 中
tikzset
,样式具有由正常 TeX 规则决定的范围。 /
和处理程序之间不能有空格.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}