为什么在 tikzpicture 中设置 tikzfading 样式会增加边界框?

为什么在 tikzpicture 中设置 tikzfading 样式会增加边界框?

我正在使用 tikz 和 tikz 库“fadings”。我正在绘制一个 tikzpicture,它涉及循环遍历一个序列,并对序列的每个项执行一个操作。其中一个操作涉及设置 tikzfading 样式。这似乎需要在 tikzpicture 中设置 tikzfading 样式,但我注意到这样做会大大增加我的 tikzpicture 边界框的大小。


在这里我将演示一种 MWE。

如果我从 tikzpicture 外部设置 tikzfading 样式,则边界框不会受到影响:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fadings}

\begin{document}

    \tikzfading[name=myfade, outer color=transparent!0, inner color=transparent!100]
    
    \begin{tikzpicture}
        \fill[path fading=myfade] (0,0) rectangle (2,2);
        \draw[blue,dashed] (current bounding box.north west) rectangle (current bounding box.south east);
    \end{tikzpicture}

\end{document}

在此处输入图片描述

但是,只需将 tikzfading 样式的设置移动到 tikzpicture 内就会导致边界框的尺寸似乎增加一倍:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fadings}

\begin{document}
    
    \begin{tikzpicture}
        \tikzfading[name=myfade, outer color=transparent!0, inner color=transparent!100]
        \fill[path fading=myfade] (0,0) rectangle (2,2);
        \draw[blue,dashed] (current bounding box.north west) rectangle (current bounding box.south east);
    \end{tikzpicture}

\end{document}

在此处输入图片描述

注意:第二张图片让渐变的方块看起来变小了。这只是因为第二张图片需要截取较大的区域而产生的错觉。


有人知道这是什么原因造成的吗?我读了一些资料,似乎 tikzfading 库可能会使用一些额外的控制点来计算淡入淡出,并且这些控制点包含在边界框内。但如果是这种情况,我不确定为什么这种效果取决于在 tikzpicture 内部或外部设置样式。

无论如何,我也对一种解决方法感兴趣,它允许我在图片内设置 tikzfading 样式(以便我可以动态设置它们),而不会弄乱图片的边界框。谢谢

相关内容