答案1
我不会猜测线的缩短或指定sep
取决于箭头尖大小的项,除非您自己指定,否则很难找出这些项,对于倒置的尖头,我会将箭头尖放在开始和结束处。
不过,没有人愿意手动放置它们,因此我建议使用s 的UnMeasure
和样式。这将需要您使用而不是。UnMeasure'
edge node
to
--
Measure
注意和之间的区别Measure'
,其中 Bar 实际放置在目标点上,而不是只是触摸它. 除了使用否定词之外sep
,还可以加载ext.arrows
库并使用Untipped Bar
。
代码
\documentclass[tikz]{standalone}
\usetikzlibrary{arrows.meta}
\tikzset{
pics/arrow/.style={/tikz/sloped, /tikz/allow upside down,
code=\pgfarrowdraw{#1}}, pics/arrow/.default=>,
Measure/.tip ={Straight Barb[] . Bar[ ]},
Measure'/.tip={Straight Barb[] . Bar[sep=+0pt +-.5]},
Measure/.style ={Measure -Measure },
Measure'/.style={Measure'-Measure'},
UnMeasure/.style={
line to, draw=none, arrows=-, % force -- in to, disable drawing and no tips
every to/.append style={edge node={pic[at start] {arrow=Measure}
pic[at end, xscale=-1] {arrow=Measure}}}},
UnMeasure'/.style={
line to, draw=none, arrows=-, % force -- in to, disable drawing and no tips
every to/.append style={edge node={pic[at start] {arrow=Measure'}
pic[at end, xscale=-1] {arrow=Measure'}}}}}
\begin{document}
\begin{tikzpicture}[ultra thick]
\draw[help lines] (-.5,-.5) grid[ystep=.5] (1.5,1.9);
\draw[ Measure ] ( 0, 0 ) -- (1, 0 );
\draw[ Measure'] ( 0, .5) -- (1, .5);
\draw[UnMeasure ] ( 0, 1 ) to (1, 1 );
\draw[UnMeasure'] ( 0, 1.5) to (1, 1.5);
\end{tikzpicture}
\end{document}
输出
第二幅图像是通过使用 实现的Straight Barb[angle'=60]
。
答案2
这利用了箭头重置虚线图案。这允许人们使箭头之间的线消失。此外,人们可以arrows.meta
轻松地反转库的箭头。
\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
\draw[{Straight Barb[reversed].Bar[]}-{Bar[].Straight Barb[reversed]},dash pattern=on 0pt off 500pt]
(-2, 0)--(2, 0);
\end{tikzpicture}
\end{document}
显然,您可以改变箭头的外观,将其设为样式,等等。
答案3
和arrows.meta
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary {arrows.meta}
\begin{document}
\tikz{
\draw[help lines](0,-1)grid(4,2);
\draw [{Stealth[length=4pt]}-{Stealth[length=4pt]}] (0,1) -- (4,1);
\draw [draw=none,tips=true,{Stealth[length=4pt,reversed]}-{Stealth[length=4pt,reversed]},shorten <=-4pt,shorten >=-4pt] (0,0) -- (4,0);
}
\end{document}
编辑:与 Chris H. 的评论一致,但与 Qrrbrbirlbel 的解决方案相比,该解决方案不太成功。特别是shorten >=-3pt
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary {arrows.meta}
\begin{document}
\tikzset{
mytips/.tip = {Straight Barb[length=2pt]},
mytipsrev /.tip = {Straight Barb[length=2pt,reversed]},
myarrow/.style = {{mytips}-{mytips}},
myarrowreverse/.style = {draw=none,tips=true,{mytipsrev}|-|{mytipsrev},shorten <=-3pt,shorten >=-3pt},
}
\begin{tikzpicture}
\draw[help lines](0,-1)grid(4,2);
\draw [myarrow] (0,1) -- (4,1);
\draw [myarrowreverse] (0,0) -- (4,0);
\end{tikzpicture}
\end{document}
答案4
我迄今为止尝试写以下内容:
\begin{tikzpicture}
\draw[->|] (-2.01, 0)--(-2, 0);
\draw[->|] (2.01, 0)--(2, 0);
\end{tikzpicture}
另外,评论中建议的 Black Mild
\draw[>|-|<] (-2, 0)--(2, 0);
\draw[white,shorten <=2.1pt,shorten >=2.1pt] (-2, 0)--(2, 0);
但是,第二个建议需要您手动调整箭头的位置,因为当您从 更改为 时,垂直条会发生位移>|-|<
。|<->|
尽管如此,这仍然是一个有趣的建议,我认为它会有所帮助。