在 中tkz-euclide
,我想绘制一个具有计算坐标的点,就像在 TikZ 中一样。但是我遇到了一个难以理解的语法错误,导致放置错误。以下 MWE 显示了两种情况下发生的情况:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usepackage[active,tightpage]{preview}
\begin{document}
\PreviewEnvironment{tikzpicture} .
\setlength\PreviewBorder{5pt}
\pagestyle{empty}
\begin{tikzpicture}%[node distance = 2cm, auto]
\tkzDefPoint[label= left:$O$](0,0){O}
\tkzDrawPoints[size=9,color=red](O)
\coordinate (T) at ({sqrt(4)},0);
\tkzDrawPoints(T)
\tkzLabelPoints[right](T)
\tkzDefPoint[label= left:$I$]({sqrt(4)},0){I}
\tkzDrawPoints(I)
\end{tikzpicture}
\end{document}
该点O
是参考点,T
在经典 TikZ 中定义并正确打印,而我定义的点tkz-euclide
给出了一堆错误并绘制在错误的 x 坐标上。
当然,一种解决方法是使用 TikZ 而不是tkz-euclide
用计算坐标绘制点,但这会使代码有点混乱。
有没有办法正确计算点tkz-euclide
:{1+1}
可以工作但不行{sqrt(4)}
,也没有很多函数如asin
,,acos
......?
答案1
tkz-euclide
使用fp
包进行计算,因此语法不同。sqrt(4)
您必须使用而不是root(2,4)
。反三角函数是等。请参阅arcsin
(其中提供了 README 文件arccos
texdoc fp
https://www.ctan.org/pkg/fp), 第 139-142 行列出了已知操作。
\documentclass[border=5mm]{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}%[node distance = 2cm, auto]
\tkzDefPoint[label= left:$O$](0,0){O}
\tkzDrawPoints[size=9,color=red](O)
\coordinate (T) at ({sqrt(4)},0);
\tkzDrawPoints(T)
\tkzLabelPoints[right](T)
\tkzDefPoint[label= left:$I$]({root(2,4)},0){I}
\tkzDrawPoints(I)
\end{tikzpicture}
\end{document}