为什么我的代码不起作用?

为什么我的代码不起作用?
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
        \coordinate (A) at (-10,0);
        \coordinate (B) at (0,0);
        \coordinate (C) at (0,5*sqrt(2*sqrt(2)-2));
        \coordinate (D) at (-5-5*sqrt(2),5*sqrt(2*sqrt(2)-2));
        \draw (A) -- (B) -- (C) -- (D) -- (A) -- (C);
\end{tikzpicture}
\end{document}

答案1

正如沃纳指出的那样,你只需要添加括号。我写这篇文章是因为我认为混合不是一个好主意fpeval。除非你非常小心你所做的事情。当然,如果你非常小心,并且知道 TiZ 内部确实如此,您可以使用它,然后它就是一个很好的工具。但这里绝对不需要这样做,也不需要加载库calc。不,解析坐标中的表达式并不麻烦。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
        \coordinate (A) at (-10,0);
        \coordinate (B) at (0,0);
        \coordinate (C) at (0,{5*sqrt(2*sqrt(2)-2)});
        \coordinate (D) at ({-5-5*sqrt(2)},{5*sqrt(2*sqrt(2)-2)});
        \draw (A) -- (B) -- (C) -- (D) -- (A) -- (C);
\end{tikzpicture}
\end{document}

如果沃纳 (Werner) 写了答案,我会很乐意删除它。

这就是我不建议混合的原因fpeval

\documentclass{article}
\usepackage{xfp}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[red] (0,0) -- (\fpeval{3pt+2cm},1);
\draw[blue] (0,0) -- ({3pt+2cm},1);
\end{tikzpicture}
\end{document}

在此处输入图片描述

再次,如果你了解 Ti 的内部结构\fpevalZ 已经足够好了,你会没事的,但我不认为对于一般用户来说,在没有明确警告的情况下混入它是一个很好的建议。

相关内容