![使用 Tikz 自定义箭头](https://linux22.com/image/255911/%E4%BD%BF%E7%94%A8%20Tikz%20%E8%87%AA%E5%AE%9A%E4%B9%89%E7%AE%AD%E5%A4%B4.png)
我正在使用 Tikz 包,我想创建一个新的箭头。所以我使用了在互联网上找到的以下代码:
\documentclass[a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
% Code for the new arrow tip, called halfcirc.
\pgfarrowsdeclare{halfcirc}{halfcirc}
{
\arrowsize=0.2pt
\advance\arrowsize by .5\pgflinewidth
\pgfarrowsleftextend{-4\arrowsize-.5\pgflinewidth}
\pgfarrowsrightextend{.5\pgflinewidth}
}
{
\arrowsize=0.2pt
\advance\arrowsize by .5\pgflinewidth
\pgfsetdash{}{0pt} % do not dash
\pgfsetroundjoin % fix join
\pgfsetroundcap % fix cap
\pgfpathmoveto{\pgfpoint{-4\arrowsize}{4\arrowsize}}
\pgfpatharc{90}{-90}{4\arrowsize}
\pgfusepathqstroke
}
% Declare a reversed version called revhalfcirc.
\pgfarrowsdeclarereversed{revhalfcirc}{revhalfcirc}{halfcirc}{halfcirc}
% Demonstration of the arrow tip.
\begin{tikzpicture}
\draw[help lines] (-3,-2) grid (3,2);
\draw[line width=10pt, revhalfcirc-halfcirc] (-2,0) -- (0,0);
\end{tikzpicture}
\end{document}
但弹出一个错误:
! Undefined control sequence.
\pgf@arrow@right@revhalfcirc -> \arrowsize
=0.2pt \advance \arrowsize by .5\...
l.32 ...pt, revhalfcirc-halfcirc] (-2,0) -- (0,0);
?
有什么问题?我是 Tikz 新手。
答案1
您需要加载tikz
提供箭头等支持的库,方法是添加
\usetikzlibrary{arrows}
就在您对包的调用下面tikz
。然后,该库提供\arrowsize
命令和其他命令。
在您的示例中,代码应如下所示:
\documentclass[a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
% Code for the new arrow tip, called halfcirc.
\pgfarrowsdeclare{halfcirc}{halfcirc}
{
\arrowsize=0.2pt
\advance\arrowsize by .5\pgflinewidth
\pgfarrowsleftextend{-4\arrowsize-.5\pgflinewidth}
\pgfarrowsrightextend{.5\pgflinewidth}
}
{
\arrowsize=0.2pt
\advance\arrowsize by .5\pgflinewidth
\pgfsetdash{}{0pt} % do not dash
\pgfsetroundjoin % fix join
\pgfsetroundcap % fix cap
\pgfpathmoveto{\pgfpoint{-4\arrowsize}{4\arrowsize}}
\pgfpatharc{90}{-90}{4\arrowsize}
\pgfusepathqstroke
}
% Declare a reversed version called revhalfcirc.
\pgfarrowsdeclarereversed{revhalfcirc}{revhalfcirc}{halfcirc}{halfcirc}
% Demonstration of the arrow tip.
\begin{tikzpicture}
\draw[help lines] (-3,-2) grid (3,2);
\draw[line width=10pt, revhalfcirc-halfcirc] (-2,0) -- (0,0);
\end{tikzpicture}
\end{document}
编译后,它会给出以下输出,这似乎正是您所期望的: