我可以使用\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}