TikZ:\foreach 命令可以在 decoration = {markings,?

TikZ:\foreach 命令可以在 decoration = {markings,?

我可以使用\foreach里面吗decoration = {markings, ...

\documentclass[convert = false, tikz]{standalone}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{arrows}

\begin{document}
\begin{tikzpicture}
  \begin{scope}[decoration = {markings,
      \foreach \loc in {.1, .2, ..., 1}{
        mark = at position \loc with {\arrow{latex}},
      }
    }]
    \draw[postaction = decorate] (0, 0) -- (2,3);
  \end{scope}
\end{tikzpicture}
\end{document}

该代码在编译时冻结。

答案1

这不起作用(至少对于您的语法来说)。不过,该decorations.markings库为提供此功能的键提供了不同的语法mark

只需使用

mark = between positions .1 and 1 step .1 with {\arrow{latex}}

不过,这里你会遇到一个问题,因为由于 TeX 的不精确性,最后一步的值1不会被放置。但在这种情况下,最好像往常一样放置最后一个箭头,-latex这样线条就会正确缩短。

代码

\documentclass[convert = false, tikz]{standalone}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{arrows}

\begin{document}
\begin{tikzpicture}
  \begin{scope}[decoration = {markings,
        mark=between positions .1 and 1 step .1 with {\arrow{latex}},
    }]
    \draw[postaction = decorate, -latex] (0, 0) -- (2,3);
  \end{scope}
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容