我想知道的是,我是否可以为使用 TikZ 绘制的框添加发光效果。无论是在这里搜索还是(优秀的)TikZ 手册都没有返回任何结果。有一个圆形发光选项,但我认为这对我的情况没有帮助,还是有帮助!?
任何意见都值得赞赏:)。
编辑:我认为这些模糊阴影似乎是一个相当特殊的 PDF 功能,只有少数 PDF 查看器支持该功能(实际上,只有 Linux 版 Acrobat Reader 9 对我有用)。
(蓝色框尺寸相同)
答案1
这个 MWE 可能更接近你的问题:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\def\shadowradius{3pt}
%
\newcommand\drawshadowbis[1]{
\begin{pgfonlayer}{shadow}
\fill[inner color=red,outer color=red!10!white] ($(#1.south west)$) circle (\shadowradius);
\fill[inner color=red,outer color=red!10!white] ($(#1.north west)$) circle (\shadowradius);
\fill[inner color=red,outer color=red!10!white] ($(#1.south east)$) circle (\shadowradius);
\fill[inner color=red,outer color=red!10!white] ($(#1.north east)$) circle (\shadowradius);
\fill[ top color=red, bottom color=red!10!white] ($(#1.south west)+((0,-\shadowradius)$) rectangle ($(#1.south east)$);
\fill[left color=red,right color=red!10!white] ($(#1.south east)$) rectangle ($(#1.north east)+((\shadowradius,0)$);
\fill[bottom color=red,top color=red!10!white] ($(#1.north west)$) rectangle ($(#1.north east)+((0,\shadowradius)$);
\fill[right color=red,left color=red!10!white] ($(#1.south west)$) rectangle ($(#1.north west)+(-\shadowradius,0)$);
\end{pgfonlayer}
}
%
\pgfdeclarelayer{shadow}
\pgfsetlayers{shadow,main}
\begin{tikzpicture}
\node [fill=blue,rectangle,rounded corners=0pt,draw=blue, ultra thick, text=white] (box) {Test!!!};
\drawshadowbis{box}
\end{tikzpicture}
\end{document}
答案2
通过修改此线程中的 Caramdir 的代码:使用基于 tikz 的圆角矩形实现褪色阴影?, 我懂了:
这是我的 MWE:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\def\shadowradius{3pt}
%
\newcommand\drawshadowbis[1]{
\begin{pgfonlayer}{shadow}
\fill[inner color=blue,outer color=blue!10!black] ($(#1.south west)$) circle (\shadowradius);
\fill[inner color=blue,outer color=blue!10!black] ($(#1.north west)$) circle (\shadowradius);
\fill[inner color=blue,outer color=blue!10!black] ($(#1.south east)$) circle (\shadowradius);
\fill[inner color=blue,outer color=blue!10!black] ($(#1.north east)$) circle (\shadowradius);
\fill[ top color=blue, bottom color=blue!10!black] ($(#1.south west)+((0,-\shadowradius)$) rectangle ($(#1.south east)$);
\fill[left color=blue,right color=blue!10!black] ($(#1.south east)$) rectangle ($(#1.north east)+((\shadowradius,0)$);
\fill[bottom color=blue,top color=blue!10!black] ($(#1.north west)$) rectangle ($(#1.north east)+((0,\shadowradius)$);
\fill[right color=blue,left color=blue!10!black] ($(#1.south west)$) rectangle ($(#1.north west)+(-\shadowradius,0)$);
\end{pgfonlayer}
}
%
\pgfdeclarelayer{shadow}
\pgfsetlayers{shadow,main}
\begin{tikzpicture}
\node [fill=blue,rectangle,rounded corners=0pt,draw=blue, ultra thick, text=white] (box) {Test!!!};
\drawshadowbis{box}
\end{tikzpicture}
\end{document}