我想在 TikZ 中向节点添加图案;例如,我怎样才能用数字 5 填充数字 5(即图片中的图片...)?
这是我的 MWE:
\documentclass[border=5pt,tikz]{standalone}
\usepackage[outline]{contour}
\begin{document}
\begin{tikzpicture}
\foreach \x in {1,1.2,...,3}
\foreach \y in {1,1.3,...,4.2}
{
\node[xshift=-2cm,yshift=-2.5cm] at (\x,\y) {5};
}
\node[white] {\resizebox{3cm}{3cm}{\contour{blue}{5}}};
\node[red] at (0,1.2) {5}; % <--| where it should be; kind of „invert the pattern onto the node“
\end{tikzpicture}
\end{document}
PS 请原谅源代码的混乱,这只是一个“外壳”。我当然会自己清理它。
答案1
以下是基于的提议这个答案和这个答案。更新:根据经验,我发现在添加\path (5.south) -- ++ (0,-0.1);
到tikzfadingfrompicture
环境中后,结果会变得更好。我不知道为什么这似乎是必要的,也不知道如何避免这种手动转变。
\documentclass[border=5pt,tikz]{standalone}
\usetikzlibrary{fadings}
\usepackage{contour}
\contournumber{32}
\begin{tikzfadingfrompicture}[name=A]
\node[transparent!0,scale=15] (5) at (0,0) {5};
\path (5.south) -- ++ (0,-0.1);
\end{tikzfadingfrompicture}
\begin{document}
\begin{tikzpicture}
\node[white,scale=15] {\contour{blue}{5}};
\foreach \x in {1,1.2,...,3.4}
\foreach \y in {0.1,0.4,...,4.5}
{
\path[path fading=A,fit fading=false]
({\x-2},{\y-2.5}) node {5};
}
\end{tikzpicture}
\end{document}
更新:为了完整性:非手动且更准确的修复作者为 StefanH(当然,所有荣誉都归于他)。
\documentclass[border=5pt,tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{fadings,positioning}
\usepackage{contour}
\contournumber{32}
\begin{tikzfadingfrompicture}[name=5-0]
\node[transparent!0,scale=15] (5) at (0,0) {5};
\end{tikzfadingfrompicture}
%%%
\begin{document}
\begin{tikzpicture}
\makeatletter
\node[white,scale=15,yshift=-0.5*\con@base@length] {\contour{blue}{5}};
\makeatother
\foreach \x in {1,1.2,...,3.4}
\foreach \y in {0.1,0.4,...,4.5}
{
\path[path fading=5-0,fit fading=false]
({\x-2},{\y-2.5}) node {5};
}
\end{tikzpicture}
\end{document}