如何从 TikZ 中的箭头尖库中的一个箭头中绘制“仅箭头尖”?
问题是,如果您尝试使用蛮力解决方案,例如
\tikz \draw[-triangle 90] (0,0) -- +(.1,0);
你会遇到麻烦,因为这会产生一条小线,即 (0,0) 到 (.1, 0) 的部分,而这条线无法移除(无论你将 .1 改为 .00001,都会留下残余)。当人们想要旋转箭头以用于沿路径“放下箭头尖端”时,就会出现问题,就像 Andrew Stacey 的解决方案一样这个问题。
答案1
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\fbox{ \begin{tikzpicture}
\node[inner sep=0pt] {\tikz\draw[-triangle 90](0,0) ;};
\end{tikzpicture}}
\fbox{ \begin{tikzpicture}
\node[rotate=90,inner sep=0pt] {\tikz\draw[-triangle 90](0,0) ;};
\end{tikzpicture} }
\fbox{ \begin{tikzpicture}
\node[rotate=180,inner sep=0pt] {\tikz\draw[-triangle 90](0,0) ;};
\end{tikzpicture} }
\fbox{ \begin{tikzpicture}
\node[rotate=270,inner sep=0pt] {\tikz\draw[-triangle 90](0,0) ;};
\end{tikzpicture} }
\end{document}
答案2
您可以像这样使用标记装饰库:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{arrows}
\begin{document}
\tikz\path[decoration={markings,mark=at position 1 with \arrow{triangle 90}}, decorate] (0,0);
\end{document}
这样不会画出线,只会画出箭头。您可以更改坐标以将其放在其他地方。
编辑:我从你的评论中看出,你这样做的目的是让箭头出现在弯曲的路径上。这只会让标记方法更有用,因为标记也可以像这样使用:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}
\path[draw,%
decoration={%
markings,%
mark=at position 0.0 with \arrow{triangle 90},%
mark=at position 0.5 with \arrow{triangle 90},%
mark=at position 0.999 with \arrow{triangle 90},% 1 does not work for some reason, not exactly sure why...
},%
postaction=decorate] (0,0) to[out=90, in=180] (2,2);
\node at (3,1) {or};
\path[xshift=4cm, draw,%
decoration={%
markings,%
mark=between positions 0 and 1 step 5mm with \arrow{triangle 90},%
},%
postaction=decorate] (0,0) to[out=90, in=180] (2,2);
\node at (7,1) {or};
\path[xshift=8cm, draw,%
decoration={%
markings,%
mark=at position 0 cm with \arrow{triangle 90},%
mark=at position 0.5 cm with \arrow{triangle 90},%
mark=at position 1 cm with \arrow{triangle 90},%
mark=at position 2 cm with \arrow{triangle 90},%
mark=at position 3 cm with \arrow{triangle 90},%
},%
postaction=decorate] (0,0) to[out=90, in=180] (2,2);
\end{tikzpicture}
\end{document}
其结果是:
如您所见,您可以给出路径的分数,有一个步骤语法,您可以给出路径上的绝对位置。除了箭头之外,您还可以放置其他东西,实际上几乎任何可以用 TikZ 绘制的东西。例如,以下内容完全有效:
mark=between positions 0 and 1 step 5mm with {\node[draw,circle,fill=blue!20, inner sep=1pt] {x};}