![tkz-euclide 관련 문제](https://rvso.com/image/475717/tkz-euclide%20%EA%B4%80%EB%A0%A8%20%EB%AC%B8%EC%A0%9C.png)
훌륭한 답변에서 코드를 복사한 후 TikZ 그림에 문제가 발생했습니다.여기:
\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}
첫 번째 문제는 코드를 컴파일하려고 할 때 발생합니다.댓글을 달아야겠어 \usetkzobj{all}
. 그렇지 않으면 오류 메시지가 나타납니다. MikTeX 패키지 관리자를 사용하여 tkz-euclide 패키지를 업데이트하려고 시도했지만 문제가 지속됩니다. 도움이 되었다면 다음은 MikTeX의 스크린샷입니다.
문서가 컴파일될 때(앞에서 언급한 명령을 사용하여)댓글을 달았습니다.) 다음 그림이 나타납니다.
라벨이 대체된 이유를 이해할 수 없습니다. 원래 코드에서 단일 iota를 변경하지 않았습니다.
비교를 위해 연결된 답변의 이미지입니다.https://i.stack.imgur.com/VUFYR.png
추가적으로 아래와 같이 합동을 나타내는 선을 추가하는 방법을 알고 싶습니다.
피드백을 보내주셔서 진심으로 감사드립니다.
답변1
- 나는 AndréC의 코드를 약간 수정하여 사용했습니다. 불필요한 것을 제거했습니다. 귀하의 코드에서는 자체적으로 로드되기
\usepackage{tikz}
때문에 제거했습니다 .tkz-euclide
André의 코드에서 줄을 변경했습니다 \tkzDefPointWith[linear,K=0.6](A,a) \tkzGetPoint{D}
. 여전히 유효하지만 \tkzDefPointWith[linear normed,K=8](A,a) \tkzGetPoint{D}
더 바람직합니다. 이렇게 하면 AD의 정확한 길이를 알 수 있기 때문입니다.
마지막으로 먼저 점을 정의하고 결정한 다음 마지막 단계로 점을 추적하고 레이블을 지정하고 표시하는 것이 좋습니다.
라벨 위치의 경우 .cfg 구성 파일을 사용할 수 있습니다. 사용자에 따라 위치가 달라질 수 있으며 결과적으로도 다를 수 있습니다. 가장 좋은 해결책은 자신만의 스타일을 재정의하는 것입니다.
\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}
- 다음은 tkz-elements 및 tkz-euclide가 포함된 버전입니다. 컴파일은 lualatex를 사용하여 수행됩니다.
정의 부분은 구문만 변경됩니다. 우리는 삼각형 T.ANL을 정의합니다. 이렇게 하면 T.ANL.ab 및 T.ANL.ca(ab, bc 및 ca는 삼각형의 세 변임)에 의해 정의되는 직선 L.AN 및 L.AL이 생성되는 것을 방지할 수 있습니다.
이등분선은 A의 이등분선을 정의합니다. 이등분선(2)은 B의 이등분선을 정의합니다.
za는 L.Aa 선의 두 번째 점입니다. L.Aa.pa는 첫 번째 점을 지정하고 L.Aa.pb는 두 번째 점을 지정합니다.
zD = L.Aa: 보고서 (6)`은 A에서 6cm 떨어진 곳에 점 D를 배치합니다.
\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}
답변2
불필요한 명령의 코드를 줄였습니다. 코드는 B, D, h, g 지점을 불필요하게 정의합니다. 나는 h와 g를 제거하고 B와 D로 대체했습니다. 각도의 반경이 다를 때 각도가 코딩과 동일하다는 것을 읽는 것이 더 명확해 보이기 때문에 각도의 반경에 약간의 불일치를 두었습니다. 하지만 이것을 바꿀 수 있습니다.
\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}