You are on page 1of 19

tkz-euclide

Alain Matthes

Ngày 9 tháng 5 năm 2021

Firstly, I would like to thank Till Tantau for the beautiful LATEX package, namely TikZ.

I received much valuable advice, remarks, corrections and examples from Jean-Côme
Charpentier, Josselin Noirel, Manuel Pégourié-Gonnard, Franck Pastor, David Arnold,
Ulrike Fischer, Stefan Kottwitz, Christian Tellechea, Nicolas Kisselhoff, David Arnold,
Wolfgang Büchel, John Kitzmiller, Dimitri Kapetas, Gaétan Marris, Mark Wibrow, Yves
Combe for his work on a protractor, Paul Gaborit and Laurent Van Deik for all his correc-
tions, remarks and questions.

I would also like to thank Eric Weisstein, creator of MathWorld: MathWorld.

You can find some examples on my site: altermundus.fr. under construction!

Please report typos or any other comments to this documentation to: Alain Matthes.
This file can be redistributed and/or modified under the terms of the LATEX Project Public
License Distributed from CTAN archives.

1
2 Alain Matthes: tkz-euclide tool for Euclidean Geometry

Mục lục
1. Bản trình bày và Tổng quan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Tại sao tkz-euclide? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. tkz-euclide so với TikZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Cách hoạt động . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1. Ví dụ Phần I: tam giác vàng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2. Ví dụ Phần II: hai phương pháp khác là vàng và tam giác euclide. . . . . . . . . . . . . 6
1.3.3. Ví dụ đầy đủ nhưng tối thiểu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4. Các phần tử của mã tkz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5. Ký hiệu và quy ước . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6. Cách sử dụng gói tkz-euclide? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6.1. Hãy xem một ví dụ cổ điển . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6.2. Đặt, Tính, Vẽ, Đánh dấu, Nhãn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2. Cài đặt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1. Danh sách th mục tệp tkzbase và tkzeuclide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3. Tin tức và khả năng tương thích . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


1. Bản trình bày và Tổng quan 3

1. Bản trình bày và Tổng quan


7 Ví dụ 1 8: 2
\begin{ tikzpicture }[ scale =.25]
\ tkzDefPoints {00/0/A,12/0/B,6/12*sind(60)/C}
\ foreach \ density in {20,30,...,240}{%
\ tkzDrawPolygon [fill=teal!\ density ](A,B,C)
\ pgfnodealias {X}{A}
\ tkzDefPointWith [ linear ,K=.15](A,B) \ tkzGetPoint {A}
\ tkzDefPointWith [ linear ,K=.15](B,C) \ tkzGetPoint {B}
\ tkzDefPointWith [ linear ,K=.15](C,X) \ tkzGetPoint {C}}
\end{ tikzpicture }

1.1. Tại sao tkz-euclide?

Mục tiêu ban đầu của tôi là cung cấp cho các giáo viên toán khác và bản thân tôi một công cụ
để nhanh chóng tạo ra các hình hình học Euclid mà không cần đầu tư quá nhiều công sức
vào việc học một ngôn ngữ lập trình mới. Tất nhiên, tkz-euclide dành cho giáo viên toán sử
dụng LATEX và giúp bạn có thể dễ dàng tạo các bản vẽ chính xác bằng LATEX.
Có vẻ như phương pháp đơn giản nhất là tái tạo phương pháp được sử dụng để xây dựng
bằng tay. Để mô tả một cấu trúc, tất nhiên, bạn phải xác định các đối tượng cũng như các
hành động mà bạn thực hiện. Đối với tôi, dường như cú pháp gần với ngôn ngữ của các nhà
toán học và sinh viên của họ sẽ dễ hiểu hơn; hơn nữa, đối với tôi dường như cú pháp này
phải gần với cú pháp của LATEX. Tất nhiên, các đối tượng là điểm, đoạn thẳng, đường thẳng,
hình tam giác, đa giác và hình tròn. Đối với các hành động, tôi coi năm hành động là đủ, đó
là: xác định, tạo, vẽ, đánh dấu và gắn nhãn.
Cú pháp có lẽ quá dài dòng nhưng tôi tin rằng nó có thể dễ dàng truy cập. Do đó, những
sinh viên như giáo viên đã có thể dễ dàng tiếp cận công cụ này.

1.2. tkz-euclide so với TikZ

Tôi thích lập trình với TikZvà nếu không có TikZ tôi sẽ không bao giờ có ý tưởng tạo tkz-
euclide nhưng đừng bao giờ quên rằng đằng sau nó có TikZ và luôn có thể chèn mã từ TikZ.
tkz-euclide không ngăn bạn sử dụng TikZ. Điều đó nói rằng, tôi không nghĩ rằng trộn cú
pháp là một điều tốt.
Không cần phải so sánh TikZ và tkz-euclide. Phần sau không được gửi đến cùng một đối
tượng như TikZ. Cái đầu tiên cho phép bạn làm rất nhiều thứ, cái thứ hai chỉ vẽ hình học. Cái
đầu tiên có thể làm mọi thứ mà cái thứ hai làm, nhưng cái thứ hai sẽ dễ dàng làm những gì
bạn muốn hơn.

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


4 Alain Matthes: tkz-euclide tool for Euclidean Geometry

1.3. Cách hoạt động

1.3.1. Ví dụ Phần I: tam giác vàng

α
C D A

Hãy phân tích hình

1. CBD và DBE là các tam giác cân;

2. BC = BE và ( BD ) là tia phân giác của góc CBE;

3. Từ đó chúng ta suy ra rằng các góc CBD và DBE bằng nhau và có cùng số đo α

BAC + ’
’ BCA = 180◦ trong tam giác BAC
ABC + ’

BCA = 180◦ trong tam giác CBD


3α + ’
khi đó
BCA = 180◦
α + 2’
ho
BCA = 90◦ − α/2

4. Cuối cùng
’ = α = 36◦
CBD
tam giác CBD là một tam giác "vàng".

Làm thế nào để dựng một tam giác vàng hoặc một góc 36◦ ?

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


1.3 Cách hoạt động 5

1. Chúng tôi đặt các điểm cố định C và D. \tkzDefPoint (0,0) {C} và \tkzDefPoint
(4,0) {D};

2. Chúng ta dựng một hình vuông CDe f và chúng ta dựng điểm giữa m của [C f ];
Chúng ta có thể làm tất cả những điều này với một la bàn và một quy tắc;

3. Sau đó, chúng tôi theo dõi một vòng cung với tâm m qua e. Cung này cắt qua đường
(C f ) tại n;

4. Bây giờ hai cung tròn có tâm C và D và bán kính Cn xác định điểm B.

7 Ví dụ 2 8: 2
\begin{ tikzpicture }
\ tkzDefPoint (0,0){C}
\ tkzDefPoint (4,0){D}
\ tkzDefSquare (C,D)
\ tkzGetPoints {e}{f}
\ tkzDefMidPoint (C,f)
\ tkzGetPoint {m}
\ tkzInterLC (C,f)(m,e)
\ tkzGetSecondPoint {n}
\ tkzInterCC [with nodes](C,C,n)(D,C,n)
\ tkzGetFirstPoint {B}
\ tkzDrawSegment [ brown , dashed ](f,n)
\ pgfinterruptboundingbox
\ tkzDrawPolygon [ brown , dashed ](C,D,e,f)
\ tkzDrawArc [ brown , dashed ](m,e)(n)
\ tkzCompass [ brown , dashed , delta=20](C,B)
\ tkzCompass [ brown , dashed , delta=20](D,B)
\ endpgfinterruptboundingbox
\ tkzDrawPoints (C,D,B)
\ tkzDrawPolygon (B,...,D)
\end{ tikzpicture }

Sau khi dựng tam giác vàng BCD, ta dựng điểm A bằng cách nhận thấy rằng BD = DA. Sau
đó, chúng tôi nhận được điểm E và cuối cùng là điểm F. Điều này được thực hiện với các
giao điểm đã được xác định của các đối tượng (đường thẳng và hình tròn).

7 Ví dụ 3 8
\begin{ tikzpicture }
\ tkzDefPoint (0,0){C}
\ tkzDefPoint (4,0){D}
\ tkzDefSquare (C,D)
\ tkzGetPoints {e}{f}
\ tkzDefMidPoint (C,f)

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


6 Alain Matthes: tkz-euclide tool for Euclidean Geometry

\ tkzGetPoint {m}
\ tkzInterLC (C,f)(m,e)
\ tkzGetSecondPoint {n}
\ tkzInterCC [with nodes](C,C,n)(D,C,n)
\ tkzGetFirstPoint {B}
\ tkzInterLC (C,D)(D,B) \ tkzGetSecondPoint {A}
\ tkzInterLC (B,A)(B,D) \ tkzGetSecondPoint {E}
\ tkzInterLL (B,D)(C,E) \ tkzGetPoint {F}
\ tkzDrawPoints (C,D,B)
\ tkzDrawPolygon (B,...,D)
\ tkzDrawPolygon (B,C,D)
\ tkzDrawSegments (D,A A,B C,E)
\ tkzDrawArc [delta =10](B,C)(E)
\ tkzMarkRightAngle [fill=blue!20](B,F,C)
\ tkzFillAngles [fill=blue!10](C,B,D E,A,D)
\ tkzMarkAngles (C,B,D E,A,D)
\ tkzLabelAngles [pos=1.5](C,B,D E,A,D){$\alpha $}
\ tkzLabelPoints [below ](A,C,D,E)
\ tkzLabelPoints [above right ](B,F)
\ tkzDrawPoints (A,...,F)
\end{ tikzpicture }
: 2
B

E
F

α
C D A

1.3.2. Ví dụ Phần II: hai phương pháp khác là vàng và tam giác euclide

tkz-euclide biết cách xác định tam giác "vàng" hoặc "euclide". Chúng ta có thể xác định BCD
và BCA giống như hình tam giác vàng.
\begin { tikzpicture }
\ tkzDefPoint (0,0){C}

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


1.3 Cách hoạt động 7

\ tkzDefPoint (4,0){D}
\ tkzDefTriangle [ euclide ](C,D)
\ tkzGetPoint {B}
\ tkzDefTriangle [ euclide ](B,C)
\ tkzGetPoint {A}
\ tkzInterLC (B,A)(B,D) \ tkzGetSecondPoint {E}
\ tkzInterLL (B,D)(C,E) \ tkzGetPoint {F}
\ tkzDrawPoints (C,D,B)
\ tkzDrawPolygon (B,...,D)
\ tkzDrawPolygon (B,C,D)
\ tkzDrawSegments (D,A A,B C,E)
\ tkzDrawArc [delta =10](B,C)(E)
\ tkzDrawPoints (A,...,F)
\ tkzMarkRightAngle [fill=blue!20](B,F,C)
\ tkzFillAngles [fill=blue!10](C,B,D E,A,D)
\ tkzMarkAngles (C,B,D E,A,D)
\ tkzLabelAngles [pos=1.5](C,B,D E,A,D){$\alpha $}
\ tkzLabelPoints [below ](A,C,D,E)
\ tkzLabelPoints [above right ](B,F)
\end{ tikzpicture }

Đây là một phương pháp cuối cùng sử dụng phép quay:


\begin{ tikzpicture }
\ tkzDefPoint (0,0){C} % possible
% \ tkzDefPoint [label =below :$C$](0,0){C}
% but don’t do this
\ tkzDefPoint (2,6){B}
% We get D and E with a rotation
\ tkzDefPointBy [ rotation = center B angle 36](C) \ tkzGetPoint {D}
\ tkzDefPointBy [ rotation = center B angle 72](C) \ tkzGetPoint {E}
% To get A we use an intersection of lines
\ tkzInterLL (B,E)(C,D) \ tkzGetPoint {A}
\ tkzInterLL (C,E)(B,D) \ tkzGetPoint {H}
% drawing
\ tkzDrawArc [delta =10](B,C)(E)
\ tkzDrawPolygon (C,B,D)
\ tkzDrawSegments (D,A B,A C,E)
% angles
\ tkzMarkAngles (C,B,D E,A,D) %this is to draw the arcs
\ tkzLabelAngles [pos=1.5](C,B,D E,A,D){$\alpha $}
\ tkzMarkRightAngle (B,H,C)
\ tkzDrawPoints (A,...,E)
% Label only now
\ tkzLabelPoints [below left](C,A)
\ tkzLabelPoints [below right ](D)
\ tkzLabelPoints [above ](B,E)

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


8 Alain Matthes: tkz-euclide tool for Euclidean Geometry

\end{ tikzpicture }

1.3.3. Ví dụ đầy đủ nhưng tối thiểu



Một đơn vị độ dài đang được chọn, ví dụ cho thấy cách lấy đoạn độ dài a từ đoạn độ dài a,
sử dụng thước kẻ và compa.
IB = a, AI = 1


a2 = a ( a > 0)

I M
A(0, 0) B(10, 0)
a/2
1 a/2

Bình luận

– Lời mở đầu
Đầu tiên chúng ta hãy nhìn vào phần mở đầu. Nếu cần, bạn phải tải xcolor trước
tkz-euclide, tức là trước TikZ. TikZ có thể gây ra sự cố với các ký tự hiện hoạt, nhưng ...
cung cấp một thư viện trong phiên bản mới nhất để giải quyết những vấn đề này babel.
\ documentclass { standalone } % hoặc một lớp khác
% \ usepackage { xcolor } % trước tikz hoặc tkz- euclide nếu cần
\ usepackage {tkz- euclide } % không cần tải TikZ
% \ usetkzobj {all} không còn cần thiết nữa
% \ usetikzlibrary { babel} nếu có vấn đề với các ký tự hoạt động

Đoạn mã sau bao gồm một số phần:

– Định nghĩa các điểm cố định: phần đầu tiên bao gồm các định nghĩa về các điểm cần
thiết cho việc xây dựng, đây là các điểm cố định. Trong hầu hết các trường hợp, macro
\tkzInit và \tkzClip là không cần thiết.
\ tkzDefPoint (0,0){A}
\ tkzDefPoint (1,0){I}

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


1.3 Cách hoạt động 9

– Phần thứ hai dành riêng cho việc tạo ra các điểm mới từ các điểm cố định; điểm B được
đặt cách A 10 cm. Trung điểm của [ AB] được xác định bởi M và sau đó đường trực giao
với đường ( AB) được tìm kiếm tại điểm I. Sau đó ta tìm giao điểm của đường thẳng
này với nửa đường tròn tâm M đi qua A.
\ tkzDefPointBy [ homothety = center A ratio 10 ](I)
\ tkzGetPoint {B}
\ tkzDefMidPoint (A,B)
\ tkzGetPoint {M}
\ tkzDefPointWith [ orthogonal ](I,M)
\ tkzGetPoint {H}
\ tkzInterLC (I,H)(M,A)
\ tkzGetSecondPoint {B}

– Cái thứ ba bao gồm các bản vẽ khác nhau;


\ tkzDrawSegment [style = orange ](I,H)
\ tkzDrawPoints (O,I,A,B,M)
\ tkzDrawArc (M,A)(O)
\ tkzDrawSegment [dim={$1$,-16 pt,}](O,I)
\ tkzDrawSegment [dim={$a/2$,-10 pt,}](I,M)
\ tkzDrawSegment [dim={$a/2$,-16 pt,}](M,A)

– Đánh dấu: thứ tư được dành để đánh dấu;


\ tkzMarkRightAngle (A,I,B)

– Dán nhãn: cái sau chỉ liên quan đến việc đặt nhãn.
\ tkzLabelPoint [left](O){$A(0,0)$}
\ tkzLabelPoint [right ](A){$B(10,0)$}
\ tkzLabelSegment [right =4pt](I,B){$\sqrt{a^2}=a \ (a>0)$}

– Mã đầy đủ:
\begin { tikzpicture }[ scale =1,ra/. style ={fill=gray!20}]
% fixed points
\ tkzDefPoint (0,0){A}
\ tkzDefPoint (1,0){I}
% calculation
\ tkzDefPointBy [ homothety = center A ratio 10 ](I) \ tkzGetPoint {B}
\ tkzDefMidPoint (A,B) \ tkzGetPoint {M}
\ tkzDefPointWith [ orthogonal ](I,M) \ tkzGetPoint {H}
\ tkzInterLC (I,H)(M,B) \ tkzGetSecondPoint {C}
\ tkzDrawSegment [style = orange ](I,C)
\ tkzDrawArc (M,B)(A)
\ tkzDrawSegment [dim={$1$,-16 pt,}](A,I)

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


10 Alain Matthes: tkz-euclide tool for Euclidean Geometry

\ tkzDrawSegment [dim={$a/2$,-10 pt,}](I,M)


\ tkzDrawSegment [dim={$a/2$,-16 pt,}](M,B)
\ tkzMarkRightAngle [ra](A,I,C)
\ tkzDrawPoints (I,A,B,C,M)
\ tkzLabelPoint [left](A){$A(0,0)$}
\ tkzLabelPoints [ above right](I,M)
\ tkzLabelPoints [ above left](C)
\ tkzLabelPoint [right ](B){$B(10,0)$}
\ tkzLabelSegment [right =4pt](I,C){$\sqrt{a^2}=a \ (a>0)$}
\end{ tikzpicture }

1.4. Các phần tử của mã tkz

Trong đoạn này, chúng ta bắt đầu xem xét các "quy tắc" và "ký hiệu" được sử dụng để tạo
một hình với tkz-euclide.

Các đối tượng nguyên thủy là các điểm. Bạn có thể tham chiếu đến một điểm bất kỳ lúc nào
bằng cách sử dụng tên được cung cấp khi xác định nó. (sau này có thể gán tên khác).

Nói chung, macro tkz-euclide có tên bắt đầu bằng tkz. Có bốn danh mục chính bắt đầu bằng:
\tkzDef ... \tkzDraw ... \tkzMark ... và \tkzLabel ...

Trong số danh mục đầu tiên, \tkzDefPoint cho phép bạn xác định các điểm cố định. Nó sẽ
được nghiên cứu chi tiết sau. Ở đây chúng ta sẽ xem chi tiết macro \tkzDefTriangle.

Macro này giúp nó có thể liên kết với một cặp điểm với điểm thứ ba để xác định một tam giác
nhất định \tkzDefTriangle (A, B). Điểm thu được được tham chiếu tkzPointResult và
có thể chọn một tham chiếu khác với \tkzGetPoint {C} ví dụ. Dấu ngoặc đơn được sử dụng
để chuyển các đối số. Trong (A, B) A và B là các điểm mà một phần ba sẽ được xác định.

Tuy nhiên, trong {C} chúng ta sử dụng dấu ngoặc nhọn để truy xuất điểm mới. Để chọn một
loại tam giác nhất định trong số các lựa chọn sau: equilateral, half, pythagoras, school,
golden hoặc sublime, euclide, gold, cheops.... và hai góc bạn chỉ cần chọn giữa các móc,
ví dụ:

\tkzDefTriangle[euclide](A,B) \tkzGetPoint{C}

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


1.5 Ký hiệu và quy ước 11

7 Ví dụ 4 8: 2
\begin{ tikzpicture }[ scale =.5]
euclide
\ tkzDefPoints {0/0/A,8/0/B}
\ foreach \tr in { equilateral ,
half, pythagore ,%
school , golden , euclide ,
gold, cheops }
{\ tkzDefTriangle [\tr](A,B) equilateral
\ tkzGetPoint {C} pythagore
\ tkzDrawPoint (C) cheopsgoldgolden
school
\ tkzLabelPoint [ right](C){\tr} half
\ tkzDrawSegments (A,C C,B)}
\ tkzDrawPoints (A,B)
\ tkzDrawSegments (A,B)
\end{ tikzpicture }

1.5. Ký hiệu và quy ước

Tôi đã cố tình chọn sử dụng Pháp hình học và các quy ước cá nhân để mô tả các đối tượng
hình học được biểu diễn. Các đối tượng được xác định và đại diện bởi tkz-euclide là các
điểm, đường thẳng và đường tròn nằm trong một mặt phẳng. Chúng là các đối tượng chính
của hình học Euclid mà từ đó chúng ta sẽ dựng các hình.
Theo Euclidian, những con số này sẽ chỉ minh họa những ý tưởng thuần túy do bộ não của
chúng ta tạo ra. Do đó, một điểm không có thứ nguyên và do đó không tồn tại thực. Theo
cách tương tự, đường thẳng không có chiều rộng và do đó không tồn tại trong thế giới thực.
Các đối tượng mà chúng ta sẽ xem xét chỉ là các đại diện của các đối tượng toán học lý tưởng.
tkz-euclide sẽ làm theo các bước của người Hy Lạp cổ đại để có được các cấu trúc hình học
bằng thước và la bàn.
Dưới đây là các ký hiệu sẽ được sử dụng:

– Các điểm được biểu diễn hình học bằng một đĩa nhỏ hoặc bằng giao điểm của hai
đường (hai đường thẳng, một đường thẳng và một đường tròn hoặc hai đường tròn).
Trong trường hợp này, điểm được biểu diễn bằng một dấu thập.
7 Ví dụ 5 8: 2
\begin { tikzpicture }
B
\ tkzDefPoints {0/0/A,4/2/B}
\ tkzDrawPoints (A,B)
\ tkzLabelPoints (A,B)
\end{ tikzpicture }
A

hoặc cũng vậy

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


12 Alain Matthes: tkz-euclide tool for Euclidean Geometry

7 Ví dụ 6 8: 2
\begin { tikzpicture }
B
\ tkzSetUpPoint [ shape = cross,
color =red]
\ tkzDefPoints {0/0/A,4/2/B}
\ tkzDrawPoints (A,B)
\ tkzLabelPoints (A,B) A
\end{ tikzpicture }

Sự tồn tại của một điểm đang được thiết lập, chúng ta có thể đặt cho nó một nhãn sẽ là
một chữ cái viết hoa (với một số ngoại lệ) của bảng chữ cái Latinh như A, B hoặc C. Ví
dụ:

– O là tâm của một vòng tròn, một phép quay, v.v.;


– M đã xác định một điểm giữa;
– H xác định chân của độ cao;
– P0 là hình ảnh của P bằng một phép biến đổi;

Điều quan trọng cần lưu ý là tên tham chiếu của một điểm trong mã có thể khác với
nhãn để chỉ định điểm đó trong văn bản. Vì vậy, chúng ta có thể xác định một điểm A
và đặt nó dưới dạng nhãn P. Đặc biệt kiểu dáng sẽ khác, điểm A sẽ được dán nhãn A.
7 Ví dụ 7 8: 2
\begin { tikzpicture }
P
\ tkzDefPoints {0/0/A}
\ tkzDrawPoints (A)
\ tkzLabelPoint (A){$P$}
\end{ tikzpicture }

Ngoại lệ: một số điểm chẳng hạn như giữa các cạnh của tam giác có chung một đặc
điểm nên tên của chúng cũng có chung một đặc điểm là điều bình thường. Chúng tôi sẽ
chỉ định các điểm này theo Ma , Mb và Mc hoặc M A , MB và MC .
Trong mã, các điểm này sẽ được gọi là: M_A, M_B và M_C.
Một ngoại lệ khác liên quan đến các điểm xây dựng trung gian sẽ không được dán
nhãn. Chúng thường sẽ được chỉ định bằng một ký tự viết thường trong mã.

– Các đoạn đường được chỉ định bởi hai điểm biểu thị các điểm kết thúc của chúng trong
dấu ngoặc vuông: [ AB].

– Các đường thẳng trong hình học Euclid được xác định bởi hai điểm nên A và B xác
định đường thẳng ( AB). Chúng tôi cũng có thể chỉ định đường thẳng này bằng cách
sử dụng bảng chữ cái Hy Lạp và đặt tên là (δ) hoặc (∆). Cũng có thể chỉ định đường
thẳng bằng các chữ cái viết thường như d và d0 .

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


1.6 Cách sử dụng gói tkz-euclide? 13

– Đường bán thẳng được chỉ định như sau [ AB).

– Mối quan hệ giữa các đường thẳng. Hai đường thẳng ( AB) và (CD ) vuông góc sẽ được
viết ( AB) ⊥ (CD ) và nếu chúng song song với nhau ta sẽ viết ( AB) k (CD ).

– Độ dài các cạnh của tam giác ABC là AB, AC và BC. Các số cũng được ký hiệu bằng
một chữ cái thường nên chúng ta sẽ viết: AB = c, AC = b và BC = a. Chữ cái a cũng
được dùng để biểu thị một góc và r thường được dùng để biểu thị bán kính, d một
đường kính, l một chiều dài, d một khoảng cách.

– Các đa giác được chỉ định sau các đỉnh của chúng nên ABC là một tam giác, EFGH là
một tứ giác.

– Các góc thường được đo bằng độ (ví dụ: 60◦ ) và trong một tam giác đều ABC, chúng ta
sẽ viết ’ b = 60◦ .
ABC = B

– Các cung được chỉ định bởi các điểm cực của chúng. Ví dụ: nếu A và B là hai điểm của
cùng một đường tròn thì ˜
AB.

– Các vòng tròn được ghi chú là C nếu không có sự nhầm lẫn nào có thể xảy ra hoặc C
(O ; A) đối với đường tròn có tâm O và đi qua điểm A hoặc C (O ; 1) cho đường tròn
tâm O và bán kính 1 cm.

– Tên các đường cụ thể của một tam giác: Tôi đã sử dụng các thuật ngữ đường phân giác,
đường phân giác ra ngoài, đường trung tuyến (đôi khi được gọi là đường phân giác
vuông góc), đường cao, đường trung tuyến và đường trung tuyến.
item (x1 , y1 ) toạ độ của điểm A1 , (x A , y A ) toạ độ của điểm A.

1.6. Cách sử dụng gói tkz-euclide?

1.6.1. Hãy xem một ví dụ cổ điển

Để chỉ ra đúng cách, chúng ta sẽ xem cách dựng một tam giác đều. Một số khả năng đang mở
ra cho chúng ta, chúng ta sẽ làm theo các bước của Euclid.

– Trước hết, bạn phải sử dụng một lớp tài liệu. Lựa chọn tốt nhất để kiểm tra mã của bạn
là tạo một hình duy nhất với lớp standalone.
\ documentclass { standalone }

– Khi đó gọi gói lệnh tkz-euclide:


\ usepackage {tkz- euclide }

Bạn không cần tải TikZ vì gói tkz-euclide hoạt động trên TikZ và tải nó.

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


14 Alain Matthes: tkz-euclide tool for Euclidean Geometry

– \usetkzobj{all} Với phiên bản mới 3.03 bạn không cần dòng này nữa. Tất cả các đối
tượng hiện đã được tải.

– Khởi động tài liệu và mở môi trường ảnh TikZ:


\begin { document }
\begin { tikzpicture }

– Bây giờ chúng ta xác định hai điểm cố định:


\ tkzDefPoint (O,O){A}
\ tkzDefPoint (5,2){B}

– Hai điểm xác định hai vòng tròn, hãy sử dụng các vòng tròn sau:
vòng tròn với tâm A qua B và vòng tròn với tâm B qua A. Hai đường tròn này có hai
điểm chung, bây giờ chúng ta xác định hai điểm cố định:
\ tkzInterCC (A,B)(B,A)

Chúng ta có thể nhận được các điểm giao nhau với


\ tkzGetPoints {C}{D}

– Có được tất cả các điểm cần thiết, chúng ta có thể chuyển sang các bước cuối cùng bao
gồm cả việc phân lô.
\ tkzDrawCircles [gray, dashed ](A,B B,A)
\ tkzDrawPolygon (A,B,C)% The triangle

– Vẽ tất cả các điểm A, B, C và D:


\ tkzDrawPoints (A,...,D)

– Bước cuối cùng, chúng tôi in nhãn cho các điểm và sử dụng các tùy chọn để định vị:

\ tkzLabelSegments [swap](A,B){$c$}
\ tkzLabelPoints (A,B,D)
\ tkzLabelPoints [above ](C)

– Cuối cùng chúng tôi đóng cả hai môi trường


\end{ tikzpicture }
\end{ document }

– Mã hoàn chỉnh

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


1.6 Cách sử dụng gói tkz-euclide? 15

7 Ví dụ 8 8: 2
\begin { tikzpicture }[ scale =.4]
% fixed points C
\ tkzDefPoint (0,0){A}
\ tkzDefPoint (5,2){B}
% calculus
\ tkzInterCC (A,B)(B,A) B
\ tkzGetPoints {C}{D}
c
% drawings A
\ tkzDrawCircles [gray,
dashed ](A,B B,A) D
\ tkzDrawPolygon (A,B,C)
\ tkzDrawPoints (A,...,D)
% marking
\ tkzMarkSegments [mark=s||](A,B B,C C,A)
% labelling
\ tkzLabelSegments [swap](A,B){$c$}
\ tkzLabelPoints (A,B,D)
\ tkzLabelPoints [above ](C)
\end{ tikzpicture }

1.6.2. Đặt, Tính, Vẽ, Đánh dấu, Nhãn

Tiêu đề có thể là: Tách Phép tính và Bản vẽ


Khi tài liệu được chuẩn bị bằng hệ thống LATEX mã nguồn của tài liệu có thể được chia thành
hai phần: phần thân tài liệu và phần mở đầu. Theo phương pháp này, các ấn phẩm có thể
được cấu trúc, tạo kiểu và sắp chữ với nỗ lực tối thiểu. Tôi đề xuất một phương pháp tương
tự để tạo các hình với tkz-euclide.
Phần đầu tiên xác định các điểm cố định, phần thứ hai cho phép tạo ra các điểm mới. Đây là
hai phần chính. Tất cả những gì còn lại cần làm là vẽ, đánh dấu và dán nhãn.

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


16 Alain Matthes: tkz-euclide tool for Euclidean Geometry

2. Cài đặt

tkz-euclide.sty và tkz-base.sty hiện nằm trên máy chủ của CTAN 1 . Nếu bạn muốn thử
nghiệm phiên bản beta, chỉ cần đặt các tệp sau vào thư mục texmf mà hệ thống của bạn có
thể tìm thấy. Bạn sẽ phải kiểm tra một số điểm:

– Các thư mục tkz-base.sty và tkz-euclide.sty phải nằm trên đường dẫn được latex
nhận dạng.

– xfp.sty 2 , numprint.sty và tikz 3.00.sty vì chúng là bắt buộc để hoạt động bình
thường tkz-euclide.sty.

– Tài liệu này và tất cả các ví dụ được lấy bằng lualatex-dev nhưng pdflatex phải phù
hợp.

2.1. Danh sách th mục tệp tkzbase và tkzeuclide


Trong thư mục base:

– tkz-base.cfg

– tkz-base.sty

– tkz-lib-marks.tex

– tkz-obj-axes.tex

– tkz-obj-grids.tex

– tkz-obj-marks.tex

– tkz-obj-points.tex

– tkz-obj-rep.tex

– tkz-tools-arith.tex

– tkz-tools-base.tex

– tkz-tools-BB.tex

– tkz-tools-misc.tex
1 tkz-base.styvà tkz-euclide.sty là một phần của TeXLive và tlmgr cho phép bạn cài đặt chúng. Các gói
này cũng là một phần của MiKTeX trong Windows.
2 xfp.sty phải được cài đặt thay thế fp.sty.

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


2.1 Danh sách th mục tệp tkzbase và tkzeuclide 17

– tkz-tools-modules.tex
– tkz-tools-print.tex
– tkz-tools-text.tex
– tkz-tools-utilities.tex

Trong thư mục euclide:

– tkz-euclide.sty
– tkz-obj-eu-angles.tex
– tkz-obj-eu-arcs.tex
– tkz-obj-eu-circles.tex
– tkz-obj-eu-compass.tex
– tkz-obj-eu-draw-circles.tex
– tkz-obj-eu-draw-lines.tex
– tkz-obj-eu-draw-polygons.tex
– tkz-obj-eu-draw-triangles.tex
– tkz-obj-eu-lines.tex
– tkz-obj-eu-points-by.tex
– tkz-obj-eu-points-rnd.tex
– tkz-obj-eu-points-with.tex
– tkz-obj-eu-points.tex
– tkz-obj-eu-polygons.tex
– tkz-obj-eu-protractor.tex
– tkz-obj-eu-sectors.tex
– tkz-obj-eu-show.tex
– tkz-obj-eu-triangles.tex
– tkz-tools-angles.tex
– tkz-tools-intersections.tex
– tkz-tools-math.tex

Gói lệnh tkz-euclide g tất cả các teẹp vào.

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


18 Alain Matthes: tkz-euclide tool for Euclidean Geometry

3. Tin tức và khả năng tương thích

Một số thay đổi đã được thực hiện để làm cho cú pháp đồng nhất hơn và đặc biệt là để phân
biệt định nghĩa và tìm kiếm tọa độ với phần còn lại, tức là vẽ, đánh dấu và ghi nhãn. Trong
tương lai, các macro định nghĩa bị tách biệt, sẽ dễ dàng hơn khi đưa vào giai đoạn tính toán
tọa độ bằng cách sử dụng Lua.
Một tính năng mới quan trọng là sự thay thế gần đây của gói fp.sty bằng xfp.sty. Điều này
là để cải thiện các phép tính hơn một chút và để làm cho nó dễ sử dụng hơn.
Dưới đây là một số thay đổi.

– Cải thiện mã và sửa lỗi;

– Với tkz-euclide tải tất cả các đối tượng, vì vậy không cần đặt \usetkzobj {all };

– Hộp giới hạn hiện được kiểm soát trong mỗi macro (hy vọng) để tránh việc sử dụng
\tkzInit theo sau là \tkzClip;

– Đã thêm macro cho hộp giới hạn: \tkzSaveBB \tkzClipBB, v.v.;

– Về mặt logic, hầu hết các macro đều chấp nhận tùy chọn TikZ . Vì vậy, tôi đã loại bỏ các
tùy chọn "trùng lặp" khi có thể, do đó tùy chọn "nhãn tùy chọn" bị loại bỏ;

– Điểm ngẫu nhiên hiện có trong tkz-euclide và macro \tkzGetRandPointOn được thay
thế bằng \tkzDefRandPointOn. Vì lý do đồng nhất, các điểm phải được truy xuất bằng
\tkzGetPoint;

– Các tùy chọn end và start cho phép gán nhãn cho một đường thẳng sẽ bị xóa. Bây giờ
bạn phải sử dụng macro \tkzLabelLine;

– Giới thiệu thư viện quotes và angles; nó cho phép gán nhãn cho một điểm, ngay cả khi
tôi không ủng hộ cách làm này;

– Khái niệm vectơ biến mất, để vẽ một vectơ chỉ cần chuyển "->" làm tùy chọn cho
\tkzDrawSegment;

– Nhiều macro vẫn tồn tại, nhưng đã lỗi thời và sẽ biến mất:

– \tkzDrawMedians vạch và tạo các trung điểm trên các cạnh của một tam giác. Việc
tạo và tách bản vẽ không được tôn trọng vì vậy trước tiên bạn nên tạo tọa độ của
những điểm này bằng \tkzSpcTriangle[median] và sau đó để chọn những cái bạn
sẽ vẽ bằng \tkzDrawSements hoặc \tkzDrawLines;

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/


3. Tin tức và khả năng tương thích 19

– \tkzDrawMedians (A,B)(C) hiện được đánh vần là \tkzDrawMedians (A,C,B). Điều


này xác định giá trị trung bình từ C;
– Một ví dụ khác \tkzDrawTriangle[equilateral] rất tiện lợi nhưng tốt hơn là lấy
điểm thứ ba với \tkzDefTriangle[equilateral] và sau đó vẽ bằng \tkzDrawPolygon;
– \tkzDefRandPointOn được thay thế bằng \tkzGetRandPointOn;
– bây giờ \tkzTangent được thay thế bằng \tkzDefTangent;
– Bạn có thể sử dụng path name nếu bạn muốn tìm giao lộ nhưng nó rất chậm như
trong TikZ.

– Sự xuất hiện của macro \usetkztool cho phép tải các "công cụ" mới.

Người dịch: Nguyễn Hữu Điển https://vietex.blog.fc2.com/

You might also like