“模糊阴影”弄乱了其他节点!

“模糊阴影”弄乱了其他节点!

考虑以下代码:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shadows.blur}

\pgfdeclarelayer{bg}
\pgfsetlayers{bg,main}

\begin{document}

\begin{tikzpicture}
\tikzstyle{MyNode}=[%
  minimum height=8mm, minimum width=10mm,
  blur shadow={shadow blur steps=5},
  fill=gray]

\begin{scope}
\node[MyNode]{A};
\begin{pgfonlayer}{bg}
    \node at (1,0){A-bg};
\end{pgfonlayer}
\end{scope}

\begin{scope}[xshift=55mm]
\node[MyNode]{A};
\begin{pgfonlayer}{bg}
    \node at (1,0){A-bg};
\end{pgfonlayer}
\end{scope}

\end{tikzpicture}
\end{document}

当该行blur shadow={shadow blur steps=5}存在时, 的内容\begin{pgfonlayer}{bg}不会出现在 PDF 中(或者至少我看不到它)。当我注释该行时,我可以看到它。我遗漏了什么?(我在 overleaf 和我的计算机上尝试了此代码pdflatex。行为相同。)下面的图片是注释或未注释该行时的屏幕截图。

编辑:我更新了代码来显示为什么切换范围的顺序没有帮助(无论你按什么顺序放置它们,首先出现的那个都会缺少其内容\begin{pgfonlayer}{bg})。

无模糊

模糊

答案1

这只是(并且最多)一种解决方法。您可以将背景节点带有阴影的节点。(将其放置在前面有点违背了将其放置在较低层的目的,但我明白这只是一个最小的工作示例,在某些情况下这样做确实有意义。)

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shadows.blur}
\pgfdeclarelayer{bg}
\begin{document}

\begin{tikzpicture}[MyNode/.style={minimum height=8mm, minimum width=15mm,
  blur shadow={shadow blur steps=5},
  fill=gray
  }]
\pgfsetlayers{bg,main}

\begin{scope}
\node{A};
\end{scope}

\begin{scope}[xshift=55mm]
\node[MyNode]{A};
\end{scope}

\begin{pgfonlayer}{bg}
 \node{A-bg};
\end{pgfonlayer}

\end{tikzpicture}
\end{document}

在此处输入图片描述

至于为什么会发生这种情况,我并不完全清楚。图层和shadows.blur创建了一些框,它们会移动。出于某种原因,创建框shadows.blur似乎会破坏背景层上的框。(但是,添加\node[MyNode]{A};图层bg也可以解决问题。

如果有真正的答案,我会很乐意删除这个解决方法。

相关内容