Me gustaría utilizar un efecto de brillo para los nodos de colores que contienen texto. Desafortunadamente, solo puedo encontrar la clave circular glow
; vea el ejemplo a continuación.
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shadows}
\begin{document}
\begin{tikzpicture}
\clip (-2, -3) rectangle (2,3);
\node[circular glow={fill=green}, rectangle, text width=2.5cm, align=justify] {Given the rectangular text area, rectangular glow would be desirable to also cover the corners.};
\end{tikzpicture}
\end{document}
¿Hay alguna manera de obtener un área rectangular de color con un brillo similar al del área circular de arriba, es decir, algo así como "brillo rectangular"?
Respuesta1
Podrías jugar con \shade
"dividir" tu área de sombreado en cuatro partes, aprovechando la local bounding box
opción para evitar poner coordenadas explícitas.
También creé un \pic
con dos argumentos: el primero es el nombre del área rectangular que te gustaría sombrear, en mi ejemplo mybox
; el segundo es el color que te gustaría usar, en mi ejemplo green
.
Por supuesto, podrías agregar otros parámetros, por ejemplo el otro color para el sombreado; en mis ejemplos, "blanco" es fijo.
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shadings, backgrounds}
\tikzset{
pics/myshade/.style 2 args={
code = {%
\begin{scope}[on background layer]
\shade[upper left=white, upper right=#2,
lower left=white,lower right=white]
(#1.south west) rectangle (#1.center);
\shade[upper left=#2, upper right=white,
lower left=white,lower right=white]
(#1.south) rectangle (#1.east);
\shade[upper left=white, upper right=white,
lower left=#2,lower right=white]
(#1.center) rectangle (#1.north east);
\shade[upper left=white, upper right=white,
lower left=white,lower right=#2]
(#1.west) rectangle (#1.north);
\end{scope}
}
}
}
\begin{document}
\begin{tikzpicture}[local bounding box=mybox]
\clip (-2, -3) rectangle (2,3);
\pic {myshade={mybox}{green}};
\node[rectangle, text width=2.5cm, align=justify]
{Given the rectangular text area, rectangular glow would be desirable to also cover the corners.};
\end{tikzpicture}
\end{document}
La opción on background layer
no es necesaria en tu caso, pero la agregué para hacer la imagen myshade
más general (evitarla podría sobrescribir el área, mira el siguiente ejemplo, sin que on background layer
el texto de mynode
quedara oculto debajo del sombreado).
Solo para mostrar cómo puedes usar la imagen myshade
para sombrear áreas rectangulares. El cuadro delimitador está sombreado en rojo, el nodo está sombreado en cian:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shadings, backgrounds}
\tikzset{
pics/myshade/.style 2 args={
code = {%
\begin{scope}[on background layer]
\shade[upper left=white, upper right=#2,
lower left=white,lower right=white]
(#1.south west) rectangle (#1.center);
\shade[upper left=#2, upper right=white,
lower left=white,lower right=white]
(#1.south) rectangle (#1.east);
\shade[upper left=white, upper right=white,
lower left=#2,lower right=white]
(#1.center) rectangle (#1.north east);
\shade[upper left=white, upper right=white,
lower left=white,lower right=#2]
(#1.west) rectangle (#1.north);
\end{scope}
}
}
}
\begin{document}
\begin{tikzpicture}[local bounding box=mybox]
\clip (-2, -3) rectangle (2,3);
\pic {myshade={mybox}{red}};
\node[rectangle, text width=2.5cm, align=justify] (mynode)
{Given the rectangular text area, rectangular glow would be desirable to also cover the corners.};
\pic {myshade={mynode}{cyan}};
\end{tikzpicture}
\end{document}
Respuesta2
No precisamente. Echemos un vistazo al manual:
Entonces, lo que puedes hacer es intentar fingir algún tipo de brillo agregando un general shadow
. Si seleccionas scale
y fill color
cuidadosamente, se acerca bastante.
También puede agregar un desvanecimiento, ver su biblioteca, pero no proporciona un desvanecimiento escalado, como desea (solo N, W, S, E, circular(es)).
Opinión: En términos de legibilidad, drop shadow
puede que no sea tan malo... si necesitas tales efectos, por cierto. Recuerde, TeX/LaTeX se origina en la composición tipográfica de documentos profesionales, como libros. En gran medida todavía se resiste a la ruta de MS-Office... lo cual me gusta. La mayoría de las veces, este enfoque más restrictivo ayuda a comunicar mensajes visuales de manera diferente, si no mejor.
Reemplacé tu clip por un borde lo suficientemente grande.
\documentclass[border=6mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shadows}
\begin{document}
\begin{tikzpicture}
% \clip (-2, -3) rectangle (2,3);
\node[
circular glow={fill=green},
rectangle,
text width=2.5cm,
align=justify
] at (0,0)
{Given the rectangular text area, rectangular glow would be desirable to also cover the corners.};
\node[
general shadow={fill=green!45,shadow scale=1.05},
% drop shadow, fill=green,
rectangle, fill=green,
text width=2.5cm,
align=justify
] at (5,0)
{Given the rectangular text area, rectangular glow would be desirable to also cover the corners.};
\end{tikzpicture}
\end{document}