TikZ:`behind path` 键在角度库中不起作用

TikZ:`behind path` 键在角度库中不起作用

我正在使用该angles库来标记图表中的角度。但是,我注意到,angles默认情况下,包创建的弧位于图表其余部分上方的一层,即以下 MWE 会生成其下方和左侧的图片。

\documentclass[border=2mm]{standalone}

\usepackage{tikz}
\usetikzlibrary{angles}

\begin{document}


\begin{tikzpicture}
    \draw [red,thick]
        (0,0) coordinate (B) --
        (2,0) coordinate (A) --
        (2,1.2) coordinate (C) pic[pic text={$\theta$},draw,black,ultra thick,angle radius=8mm,angle eccentricity=1.2]{angle} --
        cycle
    ;
\end{tikzpicture}


\end{document}

在此处输入图片描述在此处输入图片描述

我想制作一个弧线位于较低层的图片(如上图和右图所示)。据我了解,这应该可以通过将键添加behind path到描述picbehind path在我的计算机上,节点和图片都在angles库外,所以我很确定这只是 的问题angles)。然而,这没有效果。这种行为是怎么回事,对描述的可选参数进行哪些修改pic将产生预期的结果?

backgrounds请注意,以下 MWE 使用库和产生所需的结果(上图和右图)scope。 不过,我问的是如何避免使用这种构造(或者,我想,在原始构造或任何其他强制构造之上绘制第二个红色三角形)。

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{angles,backgrounds}
\begin{document}

\begin{tikzpicture}
    \draw [red,thick]
        (0,0) coordinate (B) --
        (2,0) coordinate (A) --
        (2,1.2) coordinate (C) --
        cycle
    ;
    \begin{scope}[on background layer]
        \pic[pic text={$\theta$},draw,ultra thick,angle radius=8mm,angle eccentricity=1.2]{angle};
    \end{scope}
\end{tikzpicture}

\end{document}

谢谢!

答案1

angles库明确地将部分代码放在背景中,将其他部分放在前景中。您可以根据代码编写自己的图片:

\documentclass[border=2mm]{standalone}

\usepackage{tikz}
\usetikzlibrary{angles,backgrounds}

\makeatletter
\tikzset{
  pics/backangle/.style = {
    setup code  = \tikz@lib@angle@parse#1\pgf@stop,
    background code = \tikz@lib@angle@background#1\pgf@stop\tikz@lib@angle@foreground#1\pgf@stop,
    %foreground code = \tikz@lib@angle@foreground#1\pgf@stop,
  },
  pics/right backangle/.style = {
    setup code  = \tikz@lib@angle@parse#1\pgf@stop,
    background code = \tikz@lib@rightangle@background#1\pgf@stop\tikz@lib@rightangle@foreground#1\pgf@stop,
    %foreground code = \tikz@lib@rightangle@foreground#1\pgf@stop,
  },
  pics/backangle/.default=A--B--C,
}%
\makeatother
\begin{document}


\begin{tikzpicture}
    \draw [red,thick]
        (0,0) coordinate (B) --
        (2,0) coordinate (A) --
        (2,1.2) coordinate (C) pic[pic text={$\theta$},draw,black,ultra thick,angle radius=8mm,angle eccentricity=1.2,]{backangle} --
        cycle
    ;
\end{tikzpicture}


\end{document}

在此处输入图片描述

相关内容