TikZ:“内联”pgfonlayer?

TikZ:“内联”pgfonlayer?

可能重复:
TikZ 中的“Z 级别”

在 tikz 中使用图层时我通常执行以下操作:

\begin{pgfonlayer}{background}
    \draw[red] (0,0)--(1,0);
\end{pgfonlayer}

有没有办法内联使用图层?例如:

\draw[layer=background, red] (0,0) -- (1,0);

答案1

我不知道该怎么做。我的解决方法是为图层创建新命令:

\documentclass{minimal}

\usepackage{tikz}
    \pgfdeclarelayer{background}
    \pgfsetlayers{main,foreground}
    \newcommand{\onlayer}[2]{%
        \begin{pgfonlayer}{#1}%
        #2%
        \end{pgfonlayer}%
    }
    \newcommand{\bglayer}[1]{%
        \begin{pgfonlayer}{background}%
        #1%
        \end{pgfonlayer}%
    }

\begin{document}
\begin{tikzpicture}
    \fill (0,0) rectangle (2,2);
    \bglayer{\fill [gray] (1,1) rectangle (3,3);}
\end{tikzpicture}
\end{document}

它不像你的内联版本那么舒适,但比使用环境更好(更短)pgfonlayer...

编辑另一种方式如下TikZ 中的“Z 级别”

相关内容