Problem mit tkz-euclide

Problem mit tkz-euclide

Ich habe Probleme mit einer TikZ-Figur, nachdem ich den Code aus einer hervorragenden Antwort kopiert habeHier:

  \documentclass[11pt,a4paper]{article}
    \usepackage{blindtext}
    \usepackage{tkz-euclide}
    \usetkzobj{all}
    \usepackage{color}
   \begin{document}
   \begin{center}
  \begin{tikzpicture}
  \tkzDefPoint(0,0){M}
 \tkzDefPoint(1.5,0){A}
\tkzLabelPoints[below](A)
\tkzDefPoint(12,0){N}
\tkzDefPoint(10.5,0){B}
\tkzLabelPoints[below](B)
\tkzDrawSegment(M,N)
\tkzDefPoint(9.0,7){L}
\tkzDefPoint(7,5.1){C}
\tkzLabelPoints[above](C)
\tkzDrawSegment(A,L)
  \tkzDefLine[bisector](B,A,C)\tkzGetPoint{a}
  \tkzDrawSegment(A,a)
  \tkzDefPointWith[linear,K=0.6](A,a) \tkzGetPoint{D}
  \tkzDefPointBy[projection=onto A--C](D)
  \tkzGetPoint{h}
  \tkzDrawSegment(D,h)
  \tkzMarkRightAngle[fill=lightgray](A,h,D)
  %
  \tkzDefPointBy[projection=onto A--B](D)
  \tkzGetPoint{g}
  \tkzDrawSegment(D,g)
  \tkzMarkRightAngle[fill=lightgray](A,g,D)
  \end{tikzpicture}
  \end{center}
  \end{document}

Mein erstes Problem tritt beim Versuch auf, den Code zu kompilieren.Ich muss kommentieren \usetkzobj{all}. Andernfalls erhalte ich eine Fehlermeldung. Ich habe versucht, das tkz-euclide-Paket mit dem MikTeX-Paketmanager zu aktualisieren, aber das Problem besteht weiterhin. Falls hilfreich, hier ein Screenshot von MikTeX:

Bildbeschreibung hier eingeben

Wenn das Dokument kompiliert wird (mit dem oben genannten Befehlkommentiert) erhalte ich folgendes Bild.

Bildbeschreibung hier eingeben

Ich kann nicht verstehen, warum die Beschriftungen verschoben wurden. Ich habe am Originalcode kein Jota geändert.

Zum Vergleich hier das Bild aus der verlinkten Antwort.https://i.stack.imgur.com/VUFYR.png

Darüber hinaus möchte ich wissen, wie man Linien hinzufügt, die Übereinstimmung anzeigen, wie unten gezeigt:

Bildbeschreibung hier eingeben

Herzlichen Dank für jede Rückmeldung.

Antwort1

  1. Ich habe den Code von AndréC mit ein paar Änderungen verwendet. Ich habe entfernt, was unnötig war. In Ihrem Code habe ich entfernt, \usepackage{tikz}weil tkz-euclidees sich selbst lädt.

In Andrés Code habe ich die Zeile geändert \tkzDefPointWith[linear,K=0.6](A,a) \tkzGetPoint{D}. Sie ist immer noch gültig, aber \tkzDefPointWith[linear normed,K=8](A,a) \tkzGetPoint{D}vorzuziehen, da wir so die genaue Länge von AD kennen.

Abschließend empfiehlt es sich, zunächst die Punkte zu definieren und festzulegen und diese dann im letzten Schritt nachzuzeichnen, zu beschriften und zu markieren.

Für die Beschriftungspositionen steht eine .cfg-Konfigurationsdatei zur Verfügung. Je nach Benutzer kann diese unterschiedlich sein, was zu unterschiedlichen Positionen führt. Die beste Lösung besteht darin, Ihre eigenen Stile neu zu definieren.

 \documentclass[11pt,a4paper]{article}
 \usepackage{tkz-euclide}
 \begin{document}

  \begin{tikzpicture}
 % definition
  \tkzDefPoint(0,0){M}
  \tkzDefPoint(12,0){N}
  \tkzDefPoint(1.5,0){A}
  \tkzDefPoint(9,7){L}
  % calculate
  \tkzDefLine[bisector](N,A,L)             \tkzGetPoint{a}
  \tkzDefPointWith[linear normed,K=8](A,a) \tkzGetPoint{D}
  \tkzDefPointBy[projection=onto A--L](D)  \tkzGetPoint{C}
  \tkzDefPointBy[projection=onto A--N](D)  \tkzGetPoint{B}
  % drawing
  \tkzDrawSegments(D,B D,C A,a A,L M,N)
  % labeling
  \tkzLabelPoints[below](A,B)
  \tkzLabelPoints[above](C)
  % marking
  \tkzMarkRightAngles[fill=lightgray](A,C,D A,B,D)
  \tkzMarkSegments[mark=||](C,D D,B)
  \tkzMarkAngles[mark=|,size=2](B,A,D)
  \tkzMarkAngle[mark=|,size=2.1](D,A,C)
  \end{tikzpicture}

  \end{document}

Bildbeschreibung hier eingeben

  1. Hier ist eine Version mit tkz-Elementen und tkz-euclide. Die Kompilierung erfolgt mit lualatex.

Der Definitionsteil ändert sich nur in der Syntax. Wir definieren das Dreieck T.ANL. Dadurch wird die Bildung der Geraden L.AN und L.AL vermieden, die durch T.ANL.ab und T.ANL.ca definiert werden (ab, bc und ca sind die drei Seiten des Dreiecks).

Die Winkelhalbierende definiert die Winkelhalbierende von A. Die Winkelhalbierende (2) definiert die Winkelhalbierende von B usw.

za ist der zweite Punkt der Linie L.Aa. L.Aa.pa bezeichnet den ersten und L.Aa.pb den zweiten Punkt.

zD = L.Aa: Bericht (6)‘ platziert Punkt D 6cm von A entfernt.

\documentclass[11pt,a4paper]{article}
 \usepackage{tkz-euclide,tkz-elements}
 \begin{document}

\begin{tkzelements}
    -- definition
 z.M = point : new (0,0)
 z.N = z.M   : east (12)
 z.A = point : new (1.5,0)
 z.L = point : new (9,7)
 T.ANL = triangle : new (z.A,z.N,z.L)
   -- calculate
 L.Aa = T.ANL : bisector ()
 z.a  = L.Aa.pb
 z.D  = L.Aa :  report (6)
 z.B  = T.ANL.ab : projection (z.D)
 z.C  = T.ANL.ca : projection (z.D)
\end{tkzelements}

  \begin{tikzpicture}
\tkzGetNodes
 % drawing
 \tkzDrawSegments(B,D D,C A,a A,L M,N)
% labeling
 \tkzLabelPoints[below](A,B)
 \tkzLabelPoints[above](C)
% marking
 \tkzMarkRightAngles[fill=lightgray](A,C,D A,B,D)
 \tkzMarkSegments[mark=||](C,D D,B)
 \tkzMarkAngles[mark=|,size=2](B,A,D)
 \tkzMarkAngle[mark=|,size=2.1](D,A,C)
\end{tikzpicture}

\end{document}

Antwort2

Ich habe den Code von unnötigen Befehlen befreit. Der Code definiert unnötigerweise die Punkte B, D, h und g. Ich habe h und g entfernt und durch B und D ersetzt. Ich habe eine leichte Abweichung beim Radius der Winkel eingefügt, da es klarer zu lesen scheint, dass die Winkel mit der Codierung gleich sind, wenn ihr Radius unterschiedlich ist. Aber Sie können dies ändern.

 \documentclass[11pt,a4paper]{article}
 \usepackage{blindtext}
 \usepackage{tkz-euclide}
 \usepackage{color}
 \begin{document}
   \begin{center}
  \begin{tikzpicture}
  \tkzDefPoint(0,0){M}
 \tkzDefPoint(1.5,0){A}
\tkzLabelPoints[below](A)
\tkzDefPoint(12,0){N}

\tkzDrawSegment(M,N)
\tkzDefPoint(9.0,7){L}

\tkzDrawSegment(A,L)
  \tkzDefLine[bisector](N,A,L)\tkzGetPoint{a}
  \tkzDrawSegment(A,a)
  \tkzDefPointWith[linear,K=0.6](A,a) \tkzGetPoint{D}
  \tkzDefPointBy[projection=onto A--L](D)

  \tkzGetPoint{C}
  \tkzLabelPoints[above](C)

  \tkzMarkRightAngle[fill=lightgray](A,C,D)

  \tkzDefPointBy[projection=onto A--N](D)
  \tkzGetPoint{B}
  \tkzLabelPoints[below](B)
  \tkzDrawSegments(D,B D,C)
    \tkzMarkSegments[mark=||](C,D D,B)
    \tkzMarkAngle[mark=|,size=2](B,A,D)
    \tkzMarkAngle[mark=|,size=2.1](D,A,C)
  \tkzMarkRightAngle[fill=lightgray](A,B,D)
  \end{tikzpicture}
  \end{center}
  \end{document}

Bildbeschreibung hier eingeben

verwandte Informationen