arrows.meta
当我尝试在使用 的上下文中结合使用 的功能时fixed point arithmetic
,我收到了一条错误消息。
梅威瑟:
\documentclass[border=8pt]{standalone}
\usepackage{fp}
\usepackage{tikz}
\usetikzlibrary{fixedpointarithmetic}
\usetikzlibrary{calc}
\usetikzlibrary{arrows.meta}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[
my arrow/.style={arrows={-Stealth[scale=1.5]}},
fixed point arithmetic,
]
\coordinate (A) at (0,0);
\coordinate (B) at (60:3in);
\draw[my arrow] (A) -- (B);
\end{tikzpicture}
\end{document}
错误信息如下:
! FP error: Illegal character \pgfarrowlength found in float number!.
\FP@errmessage #1->\errmessage {FP error: #1!}
l.18 \draw[my arrow] (A) -- (B);
?
我该如何解决这个问题?
答案1
该错误信息似乎表明内部计算fixed point arithmetic
被搞乱了arrows.meta
。
scope
自然的解决方法是将所有需要处理的材料放入环境中fixedpointarithmetic
,并将描绘箭头的代码放在外面。
一个例子:
\documentclass[border=8pt]{standalone}
\usepackage{fp}
\usepackage{tikz}
\usetikzlibrary{fixedpointarithmetic}
\usetikzlibrary{calc}
\usetikzlibrary{arrows.meta}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[
my arrow/.style={arrows={-Stealth[scale=1.5]}},
]
\begin{scope}[fixed point arithmetic]
\coordinate (A) at (0,0);
\coordinate (B) at (60:3in);
% a few operations here
\draw (A) parabola ($(B)-(.25,.45)$);
\draw ($(B)-(.25,.45)$) parabola (A);
\end{scope}
% arrows outside the "dangerous" environment
\draw[my arrow] (A) -- (B);
\end{tikzpicture}
\end{document}
结果: