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>指定 a:

將箭頭的寬度設定為<angle>/2箭頭長度乘以正切值的兩倍。這會導致箭頭尖端的張角為<angle>,且指定長度不變。

所有引用均來自 PGF 手冊第 188 頁。

相關內容