![Problem mit tkz-euclide](https://rvso.com/image/475717/Problem%20mit%20tkz-euclide.png)
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:
Wenn das Dokument kompiliert wird (mit dem oben genannten Befehlkommentiert) erhalte ich folgendes Bild.
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:
Herzlichen Dank für jede Rückmeldung.
Antwort1
- 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}
weiltkz-euclide
es 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}
- 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}