TkzDrawAltitude 不再起作用,出现“段落在 \tkz@Altitude 之前结束”错误

TkzDrawAltitude 不再起作用,出现“段落在 \tkz@Altitude 之前结束”错误

我的书的其中一节画出了点积。下面的代码多年来一直运行良好。我现在使用的是 Ubuntu 20.04,安装了最新的 texlive 和 pgf 包,下面的相同命令现在失败了……相关包之一是否已使用新语法更新?任何帮助表示感谢

现在失败了,但总是运行良好(最小工作示例,摘录):

\documentclass[a4paper,11pt]{article}
\usepackage{tkz-euclide}
\usetkzobj{all}% should be removed

\begin{document}

\section{Section 1}

\begin{figure*}[ht!]
\begin{center}
\begin{tikzpicture}[scale=1.2]
\node[circle,fill=black,draw,black,scale=0.2] (a) at (2,2) {};
\node[circle,fill=black,draw,black,scale=0.2] (O) at (0,0) {};
\node[circle,fill=black,draw,black,scale=0.2] (b) at (3,-1) {};
\draw[postaction={decorate,decoration={markings,mark=at position 0.3 with {\arrow[black,line width=2pt]{>}}}}](O)--(a)node[midway,above]{\textbf{a}};  
\draw[postaction={decorate,decoration={markings,mark=at position 0.3 with {\arrow[black,line width=2pt]{>}}}}](O)--(b)node[midway,below]{\textbf{b}};  
\draw pic [draw=red,fill=red!20,angle radius=4mm,"$\theta$",angle eccentricity=1.5] {angle = b--O--a};

\tkzDrawAltitude[dashed,color=magenta](O,b)(a)
\tkzGetPoint{P}
\tkzLabelPoint[below](P){$P$}
\tkzMarkRightAngle(a,P,O) 

\end{tikzpicture}
\end{center}
\end{figure*}
\end{document}

答案1

这里有一个只有 的解决方案tkz-euclide。我使用了版本 4,其中tkzDrawAltitude不再存在。现在您需要使用tkzdefSpeTriangle[orthic](a,O,b){...}来获取海拔高度。然后继续\tkzDrawLines

\documentclass{standalone}
\usepackage{tkz-euclide}
\begin{document}

\begin{tikzpicture}[scale=1.2]
\tkzDefPoints{2/2/a,3/-1/b,0/0/O}
\begin{scope}[decoration={markings,mark=at position 0.2 with  {\arrow[black,line width=1pt]{>}}}]
 \tkzDrawSegments[postaction={decorate}](O,a O,b) 
\end{scope}
% v4
\tkzDefSpcTriangle[orthic](a,O,b){P,HO,Hb}
\tkzDrawLine[dashed,color=magenta](a,P)
% v 3.06 \tkzDrawAltitude[dashed,color=magenta](O,a,b)
\tkzLabelPoint[below](P){$P$}
\tkzMarkRightAngle(a,P,O) 
\tkzDrawPoints(a,b,O)

\tkzFillAngle[fill=red!20,opacity=.5,size=.5](b,O,a)
\tkzLabelAngle[pos=0.4](b,O,a){$\theta$}
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

不知何故, fromtkz-euclide的语法发生了变化(可能自 2020 年 1 月 25 日发布 v3.01c 以来)\tkzDrawAltitude (参见源代码行

\tkzDrawAltitude[<options>](A,B)(C)

至(查看 texlive SVN repo 上的源代码行,`` 已添加和tikz-euclideGitHub repo)

\tkzDrawAltitude[<options>](A,C,B)

一些注释


因此,在 OP 的例子中,改变

\tkzDrawAltitude[dashed,color=magenta](O,b)(a)
% to
\tkzDrawAltitude[dashed,color=magenta](O,a,b)

解决了这个问题。

而且,

  • 在最新的(v3.06c)文档中tkz-euclide,唯一记录的绘制海拔的方法是
    \tkzDrawLine[altitude,<options>](A,C,B)
    
  • 应予\usetkzobj{all}删除。

相关内容