我正在使用该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
到描述pic
(behind 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}