Tikz Arrow 库:如何才能轻松地从 arrows 迁移到 arrows.meta?

Tikz Arrow 库:如何才能轻松地从 arrows 迁移到 arrows.meta?

我有一些使用该arrows库的遗留代码,我想在使用该arrows.meta库的新工作中重用其中的一些代码(包括以后调整箭头)。

>=triangle 45我认为我可能只需定义一种新样式即可传递给新库,而不是遍历所有内容进行修复(等等)。这是我的 MWE:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
% Failed attempt at providing legacy arrowheads:
\tikzset{triangle 45/.tip={Triangle[angle=45]}}
\begin{document}
% Legacy tikzpicture:
\begin{tikzpicture}[>=triangle 45]
\draw[->] (0,0) -> (2,0);  
\end{tikzpicture}
\end{document}

然而,这彻底失败了:

...
(d:/TeXlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.meta.code.tex
))
Runaway argument?
45 +0 +0 +0 \pgf@stop \expandafter \pgfarrowsaddtooptions \expandafter \ETC.
! File ended while scanning use of \pgfarrowsfourparameters@.
<inserted text>
                \par
<*> test.tex

看起来 .tip 需要更多参数,但我在手册中找不到任何内容来澄清这一点。

我做错了什么或者期待错了什么?

答案1

密钥angle应以 的形式指定angle=<angle>:<dimension>,其中,根据 PGF 手册:

此键设置长度宽度箭头的一半。长度将是 的余弦<angle>,而宽度将是 的一半正弦的两倍<angle>

因此,在上面给出的 MWE 中,我们将得到

Triangle[angle=45:3pt]

还可以指定可选参数:

Triangle[angle=45:1pt 5]

根据手册:

<dimension>如果给出了可选因子,它们会在计算正弦和余弦之前添加线宽的一定倍数。

\documentclass[margin=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
% Failed attempt at providing legacy arrowheads:
\tikzset{triangle 45/.tip={Triangle[angle=45:3pt]}}
\begin{document}
% Legacy tikzpicture:
\begin{tikzpicture}[>=triangle 45]
\draw[->] (0,0) -> (2,0);  
\draw[-{Triangle[angle=45:1pt 5]}] (0,-.2) -> (2,-.2);
\end{tikzpicture}
\end{document}

在此处输入图片描述

密钥angle'不需要<dimension>指定:

将箭头宽度设置为<angle>/2箭头长度的正切值的两倍。这样箭头尖端的张角为<angle>,且指定的长度不变。

所有引述均来自 PGF 手册第 188 页。

相关内容