在范围内使用 TikZ 装饰

在范围内使用 TikZ 装饰

我不想为该级别的所有线条定义一个装饰器tikzpicture,而是想使用范围来选择性地将某些装饰应用于绘图的某些部分。下面是一个最简单的例子:

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{decorations}

\begin{document}

\begin{tikzpicture}
%%% Draw the axis.
\begin{scope}[decoration={ticks}]
\draw [->] (0,0) -- (8,0);
\draw [decorate] (0,0) -- (8,0);
\end{scope}
\end{tikzpicture}

\end{document}

这应该会产生一个带有刻度标记的八个单位长的轴,并且装饰不应该“渗入”图形的其他区域。

相反,我得到了一个轴,但没有刻度标记!

编辑:事实证明,\usetikzlibrary{decorations}在序言中调用不起作用。相反,使用\usetikzlibrary{decorations.pathreplacing}。有人能告诉我为什么加载整个装饰库不起作用吗?

答案1

它需要库decorations.pathreplacingaxis默认情况下不存在路径样式。也许你可以澄清一下。下面的代码有效。但可能不如预期。

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}

\begin{document}
  \begin{tikzpicture}
    \begin{scope}[decoration={ticks}]
      \draw[->] (0,0) -- (8,0);
      \draw[decorate] (0,0) -- (8,0);
    \end{scope}
  \end{tikzpicture}
\end{document}

相关内容