TikZ-沿路径重复文本

TikZ-沿路径重复文本

我正在尝试沿路径重复一些文本。我尝试了 PGF 手册中规定的操作/pgf/decoration/text effects/repeat text,但如您所见,它没有达到我想要的效果:

不良影响

我想要类似下面的东西,但在路径上重复:

有点想要的效果

平均能量损失

\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{decorations.text}

\begin{document}

\begin{tikzpicture}
    [block/.style={draw, rectangle, minimum size=5cm, align=center}]

    \node [block,
           postaction={decoration={text effects along path, text={BOX BOUNDARY\ },
               text effects/.cd,
                   repeat text,
                   character count=\m, character total=\n,
                   characters={text along path, scale=0.5+\m/\n/2}},
               decorate}]
           (box){};
    
\end{tikzpicture}

\end{document}

答案1

显然,它不适用于节点。您可以使用rectangle?(您始终可以在矩形顶部添加没有文本的节点)

\documentclass[tikz, border=1 cm]{standalone}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\draw[%
postaction={decoration={text effects along path, text={BOX BOUNDARY\ },
text effects/.cd,
repeat text,
character count=\m, character total=\n,
characters={text along path, scale=0.5+\m/\n/2}},
decorate},
] (0,0) rectangle (5,5);           
\end{tikzpicture}
\end{document}

带有重复文本的矩形

答案2

装饰和节点路径肯定发生了一些奇怪的事情。我不知道原因,但这里有一种方法,通过在节点上下文之外重复节点路径来工作。这使用我的spath3库来避免必须指定两次路径(顺便说一句,这表明它与小路因此必须与节点周围的路径的使用方式有关)。

overlay请注意,我目前需要在装饰路径上使用选项。这是因为矩形节点构造了一种特殊类型的路径,没有其他 TikZ 构造用途所以我在编码时没有考虑到这一点spath3。我目前正在修复这个问题,但与此同时边界框计算已关闭。

\documentclass[border=1cm]{standalone}
% \url{https://tex.stackexchange.com/q/615779/86}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{decorations.text,spath3}

\begin{document}

\begin{tikzpicture}
    [block/.style={draw, rectangle, minimum size=5cm, align=center}]

    \node [block,
      spath/save=node path,
    ]
    (box){};

    \path[
      overlay, % Needed temporarily
      spath/use=node path,
      decoration={
        text effects along path,
        text={BOX BOUNDARY\ },
        text effects/.cd,
        repeat text,
        character count=\m, character total=\n,
        characters={text along path, scale=0.5+\m/\n/2}
      },
      decorate,
    ];

\end{tikzpicture}

\end{document}

修饰节点路径

相关内容