tkz-euclide 4.00b 版--删除“cm”

tkz-euclide 4.00b 版--删除“cm”

我的一些图片不再能用 4.00b 版的软件包进行编译tkz-euclide

公告新版本 (2022-Jan-5)tkz-euclide表示:

出现了一些新宏,其他(次要的)宏消失了。将代码从版本 3 转移到版本 4 的唯一重要限制是删除单位“cm”。

我的文件中可能有数百个“cm”。建议如何处理这个问题?应该将“cm”转换为哪个单位?我可以用“mm”代替吗?第一次我按字面意思理解了“删除”,只是把它删掉了,但这会改变图片。

另请查看以下 MWE:

\documentclass{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0,0){M1}
\tkzDefPoint(120:5){X}
\tkzDefPoint(120:3){M2}
\tkzDefPoint(45:4){P}
\tkzInterLC(P,M1)(M1,X)\tkzGetPoints{N1}{F1}
\tkzInterLC(P,M2)(M2,X)\tkzGetPoints{N2}{F2}
\tkzMarkAngle[arc=ll,size=.9cm](F2,X,F1)
\tkzMarkAngle[arc=ll,size=.9cm](N2,X,N1)
\end{tikzpicture}
\end{document}

删除两个出现的cm会产生不同的图像。我希望您可以重现此情况——遗憾的是这里不支持包含 .pdf。

答案1

以下是一些示例cm。代码可以编译,但在 .log 文件中你会看到:

Missing character: There is no c ("63) in font nullfont!
Missing character: There is no m ("6D) in font nullfont!
Missing character: There is no c ("63) in font nullfont!
Missing character: There is no m ("6D) in font nullfont!
\documentclass{standalone}
\usepackage{tkz-euclide}
  
\tkzSetUpColors[background=white,text=teal]  
\tkzSetUpPoint[size=2,color=teal]
\tkzSetUpLine[thin,color=teal]
\tkzSetUpCompass[color=brown,ultra thin,/tkzcompass/delta=10]
\tikzset{label style/.append style={color=teal}}
 
\begin{document}
\begin{tikzpicture}

\begin{scope}[rotate=28]
  \tkzDefPoint(4,0){A} \tkzDefPoint(0,0){B}  \tkzDefPoint(1.5,4){C}
  \tkzDrawLines(B,A B,C)
  \tkzFillAngle[fill=teal!30,size=1](A,B,C)
  \tkzDefPointWith[linear normed,K=2](B,A) \tkzGetPoint{I}
  \tkzDefPointWith[linear normed,K=2](B,C) \tkzGetPoint{J}
  \tkzDrawArc(B,I)(J)
  \tkzCompass(I,J)
  \tkzDrawPoints(A,B,C,I,J) 
  \tkzLabelPoints(A,B,C,I,J)
\end{scope}

\begin{scope}
  \tkzDefPoint(5,0){B'}
  \tkzDefPoint(9,0){A'}
  \tkzDrawLine(B',A')
  \tkzDuplicateSegment(B,I)(B',A')  \tkzGetPoint{I'} 
  \tkzDrawArc[angles](B',I')(0,80)
  \tkzCalcLength[cm](I,J)  \tkzGetLength{dIJ}
  \tkzCalcLength[cm](B,I)  \tkzGetLength{dBI} 
  \tkzDrawArc[arc,R](I',\dIJ)(100,120)
  \tkzInterCC[R](B',\dBI cm)(I',\dIJ cm)\tkzGetPoints{J'}{K}  
  \tkzDrawLine[add = 0 and 1](B',J')
  \tkzFillAngle[fill=teal!30,size=1cm](A',B',J')
  \tkzDrawPoints(A',B',I',J')
  \tkzLabelPoints(A',B',I',J')
\end{scope}
\end{tikzpicture}
\end{document}

现在代码应该这样写:

\documentclass{standalone}
\usepackage{tkz-euclide}
  
\tkzSetUpColors[background=white,text=teal]  
\tkzSetUpPoint[size=2,color=teal]
\tkzSetUpLine[thin,color=teal]
\tkzSetUpCompass[color=brown,ultra thin,/tkzcompass/delta=10]
\tikzset{label style/.append style={color=teal}}
 
\begin{document}
\begin{tikzpicture}

\begin{scope}[rotate=28]
  \tkzDefPoint(4,0){A} \tkzDefPoint(0,0){B}  \tkzDefPoint(1.5,4){C}
  \tkzDrawLines(B,A B,C)
  \tkzFillAngle[fill=teal!30,size=1](A,B,C)
  \tkzDefPointWith[linear normed,K=2](B,A) \tkzGetPoint{I}
  \tkzDefPointWith[linear normed,K=2](B,C) \tkzGetPoint{J}
  \tkzDrawArc(B,I)(J)
  \tkzCompass(I,J)
  \tkzDrawPoints(A,B,C,I,J) 
  \tkzLabelPoints(A,B,C,I,J)
\end{scope}

\begin{scope}
  \tkzDefPoint(5,0){B'}
  \tkzDefPoint(9,0){A'}
  \tkzDrawLine(B',A')
  \tkzDuplicateSegment(B,I)(B',A')  \tkzGetPoint{I'} 
  \tkzDrawArc[angles](B',I')(0,80)
  \tkzCalcLength(I,J)  \tkzGetLength{dIJ}
  \tkzCalcLength(B,I)  \tkzGetLength{dBI} 
  \tkzDrawArc[arc,R](I',\dIJ)(100,120)
  \tkzInterCC[R](B',\dBI)(I',\dIJ)\tkzGetPoints{J'}{K}  
  \tkzDrawLine[add = 0 and 1](B',J')
  \tkzFillAngle[fill=teal!30,size=1](A',B',J')
  \tkzDrawPoints(A',B',I',J')
  \tkzLabelPoints(A',B',I',J')
\end{scope}
\end{tikzpicture}
\end{document}

在此处输入图片描述

使用你的 MWE 如果你保留“cm”,那么你就会遇到错误:

! 程序包 PGF 数学错误:未知运算符c' orcm'(在 '.9cmcm-2.5\pgflinewidth ' 中)。

没有“厘米”

\documentclass{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0,0){M1}
\tkzDefPoint(120:5){X}
\tkzDefPoint(120:3){M2}
\tkzDefPoint(45:4){P}
\tkzInterLC(P,M1)(M1,X)\tkzGetPoints{N1}{F1}
\tkzInterLC(P,M2)(M2,X)\tkzGetPoints{N2}{F2}
\tkzDrawPoints(M1,M2,X,P,N1,N2,F1,F2)
\tkzLabelPoints(M1,M2,X,P,N1,N2,F1,F2)
\tkzDrawSegments(P,M1 P,F2 X,F1 X,F2 N1,F1 X,N1 X,N2)
\tkzDrawCircles(M1,X M2,X)
\tkzMarkAngle[arc=ll,size=.9](F2,X,F1)
\tkzMarkAngle[arc=ll,size=.9](N2,X,N1)
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容