TikZ 中曲线箭头的快捷方式

TikZ 中曲线箭头的快捷方式

如果我想在曲线长度的某处(比如说 40%)画一条带箭头的曲线,我可以这样写:

\draw [decoration={
             markings,
             mark=at position 0.4 with \arrow{>}}
       ,postaction=decorate]
       (A) to (B);

如果我想绘制许多具有相同装饰的曲线,我可以将其中的大部分放在一个范围内,并减少每条路径需要输入的内容。

但是,如果我想绘制许多具有不同参数的曲线 - 比如,每条曲线的箭头位置都不同,并且 < 或 > 的选择可能因曲线而异。那么我似乎需要为每条曲线输入大量内容。

我想要做的是定义这样的事情:

\newcommand\arrowdata[2]{decoration={
             markings,
             mark=at position #1 with \arrow{#2}}
       ,postaction=decorate}

然后我就可以轻松地画出箭头了:

\draw [\arrowdata{0.3}{>}] (A) to (B);
\draw [\arrowdata{0.95}{<}] (C) to (D) to (E);

等等。但是,这不起作用,我不明白由此产生的错误消息。显然,我对宏在 TikZ 中的应用方式的理解太天真了。有人能帮我吗?

答案1

如果未事先扩展样式定义中的宏,则它们将不起作用。您应该定义自己的样式。

\tikzset{arrow data/.style 2 args={%
      decoration={%
         markings,
         mark=at position #1 with \arrow{#2}},
         postaction=decorate}
      }%
}

用法如下:

\draw [arrow data={0.3}{>}] (A) to (B);

相关内容