将单位“cm”替换为宏会导致 tikz-ellipse 出错

将单位“cm”替换为宏会导致 tikz-ellipse 出错

我希望通过使用 来重现一个对象tikz。我的想法是测量光栅图像的坐标,然后使用 重现该图像tikz \draw。最后,我希望用比例因子替换绝对单位(cm 或 pt 等),并将对象集成到宏中。

我的 MWE:

\documentclass{memoir}

\usepackage{xcolor}
\usepackage{tikz}
  \usetikzlibrary{shapes.geometric,positioning,calc,patterns}

\usepackage{tikzpagenodes}
\usepackage{calc}

\newcommand{\fsymbolI}[5]{%
\def\aII{0.013797449*#1 }
 \begin{tikzpicture}[rotate=#4,overlay, remember picture, -latex]%
  \node[shift={(#2,#3)}] at (current page.north west){%
   \begin{tikzpicture}[rotate=180,overlay, remember picture]%
    \begin{scope}[xshift=-11.7cm,yshift=1.1cm]%
    \draw[#5,-] (6.4cm,15cm) -- (6.4cm,15.6cm) -- (11.6cm,11.8cm) -- (11.6cm,4.1cm) arc (0:-90:5.1cm)  -- (6.4cm,4.1cm) -- (6.4*\aII,8.6*\aII) arc (270:360: 3.6cm and 2.1cm) -- cycle ;%
     \draw[#5,-] (5.8cm,10.7cm) ellipse (1.05cm  and 0.85cm);
    \end{scope}%
   \end{tikzpicture}%
  };%
 \end{tikzpicture}%
}

\begin{document}
 \fsymbolI{1cm}{0mm}{0mm}{0}{green}
\end{document}

工作正常。但:

我的想法是将所有的“cm”替换为“*\aII”(在宏中定义符号I通过\def\aII{0.013797449*#1 })。除了我想更改的第 3 个参数外,其他都很好ellipse。所以

\draw[#5,-] (5.8*\aII,10.7*\aII) ellipse (1.05cm  and 0.85*\aII);

工作正常,但是

\draw[#5,-] (5.8*\aII,10.7*\aII) ellipse (1.05*\aII  and 0.85*\aII);

导致错误:

! 程序包 PGF 数学错误:未知运算符a' oran'(在'1.05*0.013797449*1cm 和 0.85*0.013797449*1cm' 中)。

我在定义“\aII”中添加了一个空格,但问题并没有解决。

任何帮助都将受到欢迎。

答案1

将长度表达式放入括号中。

\draw[#5,-] (5.8*\aII,10.7*\aII) ellipse ({1.05*\aII} and 0.85*\aII);

相关内容