Eu gostaria de usar um efeito de brilho para nós coloridos contendo algum texto. Infelizmente, só consigo encontrar a chave circular glow
, veja o exemplo abaixo.
\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}
Existe uma maneira de obter uma área colorida retangular com brilho semelhante ao da área circular acima, ou seja, algo como "brilho retangular"?
Responder1
Você poderia brincar \shade
"dividindo" sua área de sombreamento em quatro partes, aproveitando a local bounding box
opção para evitar colocar coordenadas explícitas.
Também criei um \pic
com dois argumentos: o primeiro é o nome da área retangular que você gostaria de sombrear, no meu exemplo mybox
; a segunda é a cor que você gostaria de usar, no meu exemplo green
.
Claro, você poderia adicionar outros parâmetros, por exemplo, a outra cor para sombreamento, nos meus exemplos "branco" é fixo.
\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}
A opção on background layer
não é necessária no seu caso, mas adicionei para deixar a foto myshade
mais geral (evitando que ela sobrescreva a área, veja o exemplo a seguir, sem que on background layer
o texto de mynode
fique escondido sob o sombreamento).
Só para mostrar como você pode usar a foto myshade
para sombrear áreas retangulares. A caixa delimitadora está sombreada em vermelho, o nó está sombreado em ciano:
\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}
Responder2
Na verdade. Vamos dar uma olhada no manual:
Então o que você pode fazer é tentar fingir algum tipo de brilho adicionando um arquivo general shadow
. Se você selecionar scale
e fill color
com cuidado, chega bem perto.
Você também pode adicionar um fade, veja sua biblioteca, mas ele não fornece um fade em escala, como você deseja (apenas N, W, S, E, circular(es)).
Opinião: Em termos de legibilidade, drop shadow
pode não ser tão ruim assim... se você precisar de tais efeitos, aliás. Lembre-se de que o TeX/LaTeX se origina da composição tipográfica de documentos profissionais, como livros. Em grande medida, ainda resiste ao caminho do MS-Office... que eu gosto. Na maioria das vezes, esta abordagem mais restritiva ajuda a comunicar mensagens visuais de forma diferente, se não melhor.
Substituí seu clipe por uma borda grande o suficiente.
\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}