tkz-euclide
当使用类内的包构建图形时tufte-handout
,在渲染输出中,一些点位于相交线的“下方”,而其他点位于相交线的“上方”。
例如,当运行“金三角”的此代码(来自包文档)时,
\begin{tikzpicture}
\tkzDefPoint(0,0){C}
\tkzDefPoint(4,0){D}
\tkzDefSquare(C,D)
\tkzGetPoints{e}{f}
\tkzDefMidPoint(C,f)
\tkzGetPoint{m}
\tkzInterLC(C,f)(m,e)
\tkzGetSecondPoint{n}
\tkzInterCC[with nodes](C,C,n)(D,C,n) \tkzGetFirstPoint{B}
\tkzInterLC(C,D)(D,B) \tkzGetSecondPoint{A}
\tkzInterLC(B,A)(B,D) \tkzGetSecondPoint{E} \tkzInterLL(B,D)(C,E) \tkzGetPoint{F} \tkzDrawPoints(C,D,B) \tkzDrawPolygon(B,...,D) \tkzDrawPolygon(B,C,D)
\tkzDrawSegments(D,A A,B C,E) \tkzDrawArc[delta=10](B,C)(E) \tkzDrawPoints(A,...,F) \tkzMarkRightAngle[fill=blue!20](B,F,C) \tkzFillAngles[fill=blue!10](C,B,D E,A,D) \tkzMarkAngles(C,B,D E,A,D) \tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$} \tkzLabelPoints[below](A,C,D,E) \tkzLabelPoints[above right](B,F)
\end{tikzpicture}
此图像结果:
如果仔细观察,点 A、B 和 F 就体现出了这种描述。
我该如何纠正这个问题?
答案1
事物按照它们在代码中出现的顺序进行绘制(除非为代码的某些部分指定了层),因此要将点绘制在顶部,只需将其移动\tkzDrawPoints(A,...,F)
到图表的最末端,在所有其他部分之后即可。(\tkzDrawPoints(C,D,B)
顺便说一下,您可以删除,这是多余的。)
\tkzFillAngles
我还建议在和之后画线\tkzMarkRightAngle
,目前填充覆盖了一半的线。
\documentclass[border=5mm]{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0,0){C}
\tkzDefPoint(4,0){D}
\tkzDefSquare(C,D)
\tkzGetPoints{e}{f}
\tkzDefMidPoint(C,f)
\tkzGetPoint{m}
\tkzInterLC(C,f)(m,e)
\tkzGetSecondPoint{n}
\tkzInterCC[with nodes](C,C,n)(D,C,n) \tkzGetFirstPoint{B}
\tkzInterLC(C,D)(D,B) \tkzGetSecondPoint{A}
\tkzInterLC(B,A)(B,D) \tkzGetSecondPoint{E} \tkzInterLL(B,D)(C,E) \tkzGetPoint{F}
\tkzDrawArc[delta=10](B,C)(E)
\tkzMarkRightAngle[fill=blue!20](B,F,C)
\tkzFillAngles[fill=blue!10](C,B,D E,A,D)
\tkzMarkAngles(C,B,D E,A,D)
\tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$}
\tkzLabelPoints[below](A,C,D,E)
\tkzLabelPoints[above right](B,F)
\tkzDrawSegments(D,A A,B C,E)
\tkzDrawPolygon(B,C,D)
\tkzDrawPoints(A,...,F)
\end{tikzpicture}
\end{document}
答案2
填角后画点。即\tkzDrawPoints
对应后移动\tkzFillAngles
。
PS:你的例子和第二个例子非常相似tkz-euclide
手动的,第 1.3.1 节示例第一部分:黄金三角. 您可以在包手册中了解所使用的命令顺序。