tkz-euclide 관련 문제

tkz-euclide 관련 문제

훌륭한 답변에서 코드를 복사한 후 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

  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}

여기에 이미지 설명을 입력하세요

  1. 다음은 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}

여기에 이미지 설명을 입력하세요

관련 정보