我通过以下方式声明了一个新箭头TikZ
:
\pgfarrowsdeclarecombine{combined}{combined}{latex}{latex}{|}{|}
在第一个示例中,您会看到左箭头没有在坐标 (0,0) 处结束。我该如何避免这种情况?在第一张图片旁边,您会看到一个PSTricks
代表正确输出的示例。
在第二个例子中,产生的箭头tikz
看起来很奇怪。
%需要 latex->ps-pdf 或 xelatex
\documentclass{article}
\parindent0pt
\usepackage{tikz}
\usepackage{pstricks}
\usetikzlibrary{decorations.markings,arrows,calc}
\begin{document}
\par
First example
\par
\begin{tikzpicture}
\pgfarrowsdeclarecombine{combined}{combined}{latex}{latex}{|}{|}%
\draw[decoration={markings,%
mark=at position 0 with {\arrowreversed[scale=1]{combined}},
mark=at position 1 with {\arrow[scale=1]{combined}},
},
postaction={decorate},line width=3pt,blue] (0,0) -- (3,0);
\draw[yellow,line width=2pt] (0,0) -- (3,0);
\end{tikzpicture}
\begin{pspicture}(0,0)(3,1)
\psline[arrowscale=1.25,linecolor=blue,linewidth=3pt,arrowinset=0]{|<->|}(0,0)(3,0)
\psline[linecolor=yellow,linewidth=2pt](0,0)(3,0)
\end{pspicture}
\par\kern1cm
Second example
\par
\begin{tikzpicture}
\pgfarrowsdeclarecombine{combined}{combined}{latex}{latex}{|}{|}%
\draw[red,line width=3pt,combined-combined] (0,0) -- (3,0);
\draw[yellow,line width=2pt] (0,0) -- (3,0);
\end{tikzpicture}
\begin{pspicture}(0,0)(3,1)
\psline[linecolor=red,linewidth=3pt,arrowinset=0]{|<->|}(0,0)(3,0)
\psline[linecolor=yellow,linewidth=2pt](0,0)(3,0)
\end{pspicture}
\end{document}
答案1
在 pgfmanual p.612 和 p.615 中,这个问题得到了直接解决。您可以通过以下方式简单地向内箭头位置添加偏移量
\pgfarrowsdeclarecombine[-1\pgflinewidth]{combined}{combined}{latex}{latex}{|}{|}
这似乎适用于您的示例。但请尝试使用偏移值进行进一步调整。还请注意,乳胶箭头的尖端相当长,因此看起来好像放错了位置,但将偏移量更改为 -1.3,您就会发现事实并非如此。