在节点处裁剪——制作图案

在节点处裁剪——制作图案

我想在 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}

在此处输入图片描述

相关内容