Dreiecksdiagramm erstellt mit tkz-euklidischen Renderings in TeX Live 2018, aber nicht 2020

Dreiecksdiagramm erstellt mit tkz-euklidischen Renderings in TeX Live 2018, aber nicht 2020

Ich habe ein Dreiecksdiagramm, das in Overleaf (TeX Live 2018) perfekt kompiliert und gerendert wird:

Bildbeschreibung hier eingeben

Hier ist der Code, der erfolgreich kompiliert wird:

\documentclass[addpoints]{exam}
\printanswers
\usepackage{gensymb} %for degree symbol
\usepackage{pgf,tikz}
\usetikzlibrary{angles,arrows.meta,automata,backgrounds,calc,decorations.markings,decorations.pathreplacing,intersections,patterns,positioning,quotes}
\usetikzlibrary{shapes} %For polygon nodes, see http://www.texample.net/tikz/examples/node-shapes/
\usepgflibrary{shapes.geometric}

%Needed to resolve conflict between tkz-euclide and thmtools, see https://tex.stackexchange.com/questions/456029/thmtools-and-tkz-euclide-conflict
\usepackage{tkz-euclide}
\usetkzobj{all}
%\usepackage{thmtools}
\usepackage{etoolbox}
\makeatletter
%%% patch tkz-tools-base.tex
\let\tkz@g@xa\tkz@init@xmin % don't undef \@xa or thmtools will be upset
\let\tkz@g@xb\tkz@init@xmax\undef\@xb
\let\tkz@g@ya\tkz@init@ymin\undef\@ya
\let\tkz@g@yb\tkz@init@ymax\undef\@yb
\patchcmd{\tkz@Init}
 {\global\let\@xa\tkz@init@xmin
  \global\let\@xb\tkz@init@xmax
  \global\let\@ya\tkz@init@ymin
  \global\let\@yb\tkz@init@ymax}
 {\global\let\tkz@g@xa\tkz@init@xmin
  \global\let\tkz@g@xb\tkz@init@xmax
  \global\let\tkz@g@ya\tkz@init@ymin
  \global\let\tkz@g@yb\tkz@init@ymax}
 {}{}
\patchcmd{\tkz@Grid}
 {(\@xa,\@ya)(\@xb,\@yb)}
 {(\tkz@g@xa,\tkz@g@ya)(\tkz@g@xb,\tkz@g@yb)}
 {}{}
\makeatother
\newtheorem{thm}{Theorem}

\title{MWE}
\begin{document}
\begin{questions}
\question
\begin{parts}
\part %from https://tex.stackexchange.com/questions/314290/how-to-draw-a-triangle-with-line-parallel-inside
$\triangle ABC$ to $\triangle ADE$
\begin{center}
\begin{tikzpicture}[scale=0.5]
\tkzDefPoint(0,0){A}
\tkzDefPoint(12,0){D}
\tkzDefPoint(12,6){E}
\tkzLabelPoint[below right](D){$D$}
\tkzLabelPoint[above right](E){$E$}
\tkzLabelPoint[below left](A){$A$}
\begin{pgfinterruptboundingbox}
\tkzDrawSegment(A,D)
\tkzDrawSegment(A,E)
\tkzDrawSegment(D,E)
\tkzDefPoint(9,4.5){C}
\tkzDefMidPoint(A,E)\tkzGetPoint{C}
\tkzDrawAltitude(A,D)(C)\tkzGetPoint{B}
\tkzLabelPoint[above](C){$C$}
\tkzLabelPoint[below](B){$B$}
\tkzLabelSegment[right](B,C){$y_1$}
\tkzLabelSegment[right](D,E){$y_2$}
\tkzLabelSegment[below](A,B){$x_1$}
\tkzLabelSegment[below](B,D){$x_2$}
\tkzLabelSegment[above](A,C){$z_1$}
\tkzLabelSegment[above](C,E){$z_2$}
\tkzMarkRightAngle[size=0.75,opacity=.4](A,B,C)
\tkzMarkRightAngle[size=0.75,opacity=.4](A,D,E)
\draw[{Bar[width=3mm].Latex[]}-{Latex[]Bar[width=3mm]}]($(D)-(0,1.5)$) -- node [fill=white] {$l$} ($(A)-(0,1.5)$);
\end{pgfinterruptboundingbox}
%\draw (current bounding box.south east) rectangle (current bounding box.north west);
\end{tikzpicture}
\end{center}
\vspace*{\stretch{1}}
\end{parts}
\end{questions}
\end{document}

Wenn Sie jedoch die TeX Live-Distribution von 2018 auf 2020 ändern, wird das Diagramm beschädigt und kann nicht gerendert werden:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Ich habe gelernt vondieser Threaddas \usetkzobj{all}sollte nicht mit dem aktuellen tkz-euclide verwendet werden. Das Kommentieren dieser Zeile in der Distribution 2020 behebt einige, aber nicht alle Probleme.

Hier ist ein Link zu meinem Overleaf-Projekt, falls es hilft:

Umseitig MWE

Sie können versuchen, die Version zu ändern, indem Sie zu Menü > TeX Live gehen und sehen, was passiert. (Denken Sie daran, die Kommentare zu entfernen, \usetkzobj{all}wenn Sie TeX Live auf 2018 umstellen, sonst wird das Diagramm nicht richtig dargestellt.)

Irgendwelche Ideen, was die Inkompatibilität(en) verursachen könnte(n)? Danke!

Antwort1

Die Syntax für \tkzDrawXXXX scheint sich geändert zu haben und dies betrifft Ihre \tkzDrawAltitude. Dies hier kompiliert:

\documentclass{article}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}[scale=0.5]
\tkzDefPoint(0,0){A}
\tkzDefPoint(12,0){D}
\tkzDefPoint(12,6){E}
\tkzLabelPoint[below right](D){$D$}
\tkzLabelPoint[above right](E){$E$}
\tkzLabelPoint[below left](A){$A$}
\begin{pgfinterruptboundingbox}
\tkzDrawSegment(A,D)
\tkzDrawSegment(A,E)
\tkzDrawSegment(D,E)
\tkzDefPoint(9,4.5){C}
\tkzDefMidPoint(A,E)\tkzGetPoint{C}
\tkzDrawAltitude(A,C,D)%<--- changed
\tkzGetPoint{B}
\tkzLabelPoint[above](C){$C$}
\tkzLabelPoint[below](B){$B$}
\tkzLabelSegment[right](B,C){$y_1$}
\tkzLabelSegment[right](D,E){$y_2$}
\tkzLabelSegment[below](A,B){$x_1$}
\tkzLabelSegment[below](B,D){$x_2$}
\tkzLabelSegment[above](A,C){$z_1$}
\tkzLabelSegment[above](C,E){$z_2$}
\tkzMarkRightAngle[size=0.75,opacity=.4](A,B,C)
\tkzMarkRightAngle[size=0.75,opacity=.4](A,D,E)
\draw[{Bar[width=3mm].Latex[]}-{Latex[]Bar[width=3mm]}]($(D)-(0,1.5)$) -- node [fill=white] {$l$} ($(A)-(0,1.5)$);
\end{pgfinterruptboundingbox}
%\draw (current bounding box.south east) rectangle (current bounding box.north west);
\end{tikzpicture}
\end{document}

verwandte Informationen