tcolorbox 和淡入淡出的路径尺寸过大

tcolorbox 和淡入淡出的路径尺寸过大

我遇到了这个我不明白的“尺寸太大”错误:

\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{positioning,shadows}
\newtcolorbox{mybox}{
    enhanced,
    colframe=white,
    colback=white,
    overlay={
        \draw[thick,red,path fading=south](frame.north east)--(frame.south east);
    }
}
\begin{document}
   \begin{mybox}
        content goes here
   \end{mybox}
\end{document}

我试图用从角落开始向南、向北、向东等方向逐渐变淡的线条来装饰一个盒子。有些可行(例如从西北角向东逐渐变淡),有些则不行(例如 mwe 中的线条)。

这是为什么?我理解为什么会出现“维度”错误,但我似乎不明白为什么会出现这种情况。我看不出哪个计算超出了范围-16384 < x < 16384

另外,这可以修复吗?

答案1

您可以模仿一个宽度等于 line width线的矩形来获得一条线。

overlay={
        \draw[thick,red,path fading=south]([xshift=-0.4pt]frame.north east) rectangle (frame.south east);

注意xshift=-0.4pt。这里我们实际上画了一个看起来像一条线的矩形。

完整代码:

\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{positioning,shadows}
\newtcolorbox{mybox}{
    enhanced,
    colframe=white,
    colback=white,
    overlay={
        \draw[thick,red,path fading=south]([xshift=-0.4pt]frame.north east) rectangle (frame.south east);
    \draw[thick,red,path fading=north]([xshift=-0.4pt]frame.south west) rectangle (frame.north west);
    }
}
\begin{document}
   \begin{mybox}
        content goes here
        \par
        \vspace{4in}
        Some content again
   \end{mybox}
\end{document}

在此处输入图片描述

我画了两条线。您可以根据需要添加更多。

答案2

我认为这只是打字错误。如果

(frame.north east)--(frame.south east)

你写

(frame.north west) rectangle (frame.south east)

你会得到

在此处输入图片描述

\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{positioning,shadows}
\newtcolorbox{mybox}{
    enhanced,
    colframe=white,
    colback=white,
    overlay={
        \draw[thick, red, path fading=south](frame.north west) rectangle (frame.south east);
    }
}
\begin{document} 
   \begin{mybox}
     content goes here
     \end{mybox}
\end{document}

相关内容