我有一些使用該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 頁。