如何使用 tcolorbox 将“发光”效果应用于矩形?

如何使用 tcolorbox 将“发光”效果应用于矩形?

从手册第 195 页tcolorbox,我可以在圆圈上应用“发光”效果:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{shadows}


\begin{document}
\begin{tcolorbox}[enhanced,width=2.5cm,
square,circular arc,
halign=center,valign=center,
colback=red!5!white,colframe=red!75!black,
frame style={circular glow={fill=red}} ]
tcolorbox
\end{tcolorbox}


\end{document}

我正在尝试设置一种“矩形发光”样式。在阅读手册时tikz,我发现了以下设置,我猜这些设置应该适用于圆形发光,因此可以以某种方式适应矩形:

shadow scale=1.25, shadow xshift=0pt, shadow yshift=0pt,
fill=black, path fading={circle with fuzzy edge 15 percent},
every shadow,

有没有办法调整(大概是那些设置)以便它们在矩形中工作,从而产生像这样的结果?(只是一个例子,不是完全相同的颜色。)

在此处输入图片描述

答案1

您可能对此感兴趣shadows.blur。您可以通过多种方式自定义它,请参阅texdoc pgfblur

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{shadows.blur}

\begin{document}
\begin{tcolorbox}[enhanced,width=2.5cm,
square,%circular arc,
halign=center,valign=center,
colback=red!5!white,colframe=red!75!black,
frame style={ blur shadow={shadow blur extra rounding,
shadow blur steps=10,
shadow xshift=0ex,shadow yshift=0ex,shadow blur radius=1.5ex}} 
]
tcolorbox
\end{tcolorbox}
\end{document}

在此处输入图片描述

或者

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{shadows.blur}

\begin{document}
\begin{tcolorbox}[enhanced,width=2.5cm,
square,%circular arc,
halign=center,valign=center,
colback=red!5!white,colframe=red!75!black,
frame style={ blur shadow={shadow blur steps=10,shadow opacity=40,
shadow xshift=0ex,shadow yshift=0ex,shadow scale=1.05}} 
]
tcolorbox
\end{tcolorbox}
\end{document}

在此处输入图片描述

有很多选项,也有很多方法可以将它们组合起来。

发光效果可以通过以下方式实现Percusse 删除的答案

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{shadows.blur}
\makeatletter
\tikzset{render blur shadow/.code={\pgfbs@savebb%
\pgfsyssoftpath@getcurrentpath{\pgfbs@input@path}%
\pgfbs@compute@shadow@bbox%
\pgfbs@process@rounding{\pgfbs@input@path}{\pgfbs@fadepath}%
\pgfbs@apply@canvas@transform%
\colorlet{pstb@shadow@color}{white!\pgfbs@opacity!#1}%
\pgfdeclarefading{shadowfading}{\pgfbs@paint@fading}%
\pgfsetfillcolor{#1}%
\pgfsetfading{shadowfading}{\pgftransformshift{\pgfpoint{\pgfbs@midx}{\pgfbs@midy}}}%
\pgfbs@usebbox{fill}%
\pgfbs@restorebb%
},render blur shadow/.default=shadowcolor}
\colorlet{shadowcolor}{black}
\makeatother
\begin{document}
\pagecolor{black}
\colorlet{shadowcolor}{white}
\begin{tcolorbox}[enhanced,width=2.5cm,
square,halign=center,valign=center,
colback=black,colframe=black,colupper=white,
frame style={blur shadow={shadow blur steps=10,
shadow xshift=0ex,shadow yshift=0ex,shadow blur radius=1.5ex}} 
]
\sffamily I am a glowing tcolorbox
\end{tcolorbox}
\end{document}

在此处输入图片描述

相关内容