我希望通过使用 来重现一个对象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' or
an'(在'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);