我想對包含一些文字的彩色節點使用發光效果。不幸的是,我只能找到關鍵circular glow
,請參見下面的範例。
\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}
有沒有辦法獲得與上面的圓形區域具有相似輝光的矩形彩色區域,即類似“矩形輝光”的東西?
答案1
您可以將\shade
著色區域「劃分」為四個部分,利用local bounding box
選項來避免放置明確的座標。
我還創建了一個\pic
帶有兩個參數的變數:第一個是您想要著色的矩形區域的名稱,在我的範例中mybox
;在我的範例中,第二個是您想要使用的顏色green
。
當然,您可以添加其他參數,例如用於陰影的其他顏色,在我的示例中“白色”是固定的。
\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}
on background layer
在您的情況下不需要該選項,但我添加它是為了使圖片myshade
更通用(避免它可能覆蓋該區域,請參閱以下範例,而不會將on background layer
文字mynode
隱藏在陰影下)。
只是為了展示如何使用圖片myshade
為任何矩形區域添加陰影。邊界框為紅色陰影,節點為青色陰影:
\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}
答案2
並不真地。我們來看說明書:
所以你能做的就是嘗試透過增加一個 來假裝某種發光general shadow
。如果你仔細選擇scale
,fill color
它會非常接近。
您也可以新增淡入淡出,請參閱其庫,但它不提供您想要的縮放淡入淡出(僅 N、W、S、E、圓形)。
觀點:就易讀性而言,drop shadow
可能還不錯......如果您需要這樣的效果,順便說一句。請記住,TeX/LaTeX 起源於排版專業文檔,例如書籍。在很大程度上,它仍然抵制 MS-Office 路徑……我喜歡這一點。通常,這種更具限制性的方法有助於以不同的方式傳達視覺訊息,甚至更好。
我用足夠大的邊框替換了你的剪輯。
\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}