CTAN Comprehensive TeX Archive Network

Directory macros/latex/contrib/tkz/tkz-euclide


tkz-euclide — for euclidean geometry

Release 5.02c 2023/02/03


tkz-euclide is a package (latex) which allows you to draw two-dimensional geometric figures, in other words to create figures of Euclidean geometry. It uses a Cartesian coordinate system orthogonormal (unit 1cm) as well as tools to define the unique coordinates of points and to manipulate them. The idea is to allow you to follow step by step a construction that would be done by hand as naturally as possible. Now tkz-euclide introduces a "lua" option which allows to do most of the calculations using "lua".


This package may be modified and distributed under the terms and conditions of the Project Public License, version 1.3 or greater.


The package compiles with utf8, pdflatex and lualatex, loads and depends on updated versions of:


The package tkz-euclide is present in Live and MiK, use the package manager to install.

You can experiment with the tkz-euclide package by placing all of the distribution files in the directory containing your current tex file.

The different files must be moved into the different directories in your installation TDS tree or in your TEXMFHOME:

How to use it

To use the package tkz-euclide, place the following lines in the preamble of your document:

\usepackage{tkz-euclide} or \usepackage[lua]{tkz-euclide}
    your code

If you use the xcolor package, load that package before tkz-euclide to avoid package conflicts.


Documentation for tkz-euclide is available on CTAN.


All examples given in documentation will be stored on my site : http://altermundus.fr as standalone files, ready for compilation.

Other examples, in French, are on my site.


  • 5.02c. Correction of the file tkz-lib-eu-shape.tex. Remove duplicate macro inside tkz-draw-eu-points.tex (ex tkz-obj-eu-draw-points.tex)
  • 5.01c Correction of the date of the file tkz-euclide.sty. Cleaned up the file tkz-tools-lua-math.tex. Added file tkz-obj-eu-points-spc.tex
  • 5.00c Added the "lua" option to the package, allowing to perform most of the calculations with "lua". This saves time and precision;
  • 4.25c. Remove input{tkz-obj-eu-draw-triangles.tex} from the list of files to load.
  • 4.24c. Correction of a bug in the macro \tkzMarkAngle; Modification of the macro \tkzDefCircle[apollonius];
  • 4.23c. Correction of a bug in the macro \tkzDrawSemiCircle, Modification of \tkzDefRadicalAxis, Remove old codes, Correction of the documentation;
  • 4.22c. Correction of a bug in the macro \tkzMarkAngle; Correction of the documentation: Remove options R, diameter of the macro \tkzDrawCircle. To draw a circle you must use two points: the center and a point of the circle. \tkzDefPointOnCircle : forgotten "in rad" in the documentation.

Complement in the documentation for the macro \tkzDefCircle[R](....). You can use either \tkzGetPoints{o}{x} or either \tkzGetPoints{x}.

  • 4.21c the package archive was corrupted, all the "|" disappeared ...
  • 4.2c.

Now \tkzDefCircle gives two points as results: the center of the circle and a point of the circle. When a point of the circle is known, it is enough to use \tkzGetPoint or \tkzGetFirstPoint to get the center, otherwise \tkzGetPoints will give you the center and a point of the circle. You can always get the length of the radius with \tkzGetLength . I wanted to favor working with nodes and banish the appearance of numbers in the code.

In order to isolate the definitions, I deleted or modified certain macros which are: \tkzDrawLine , \tkzDrawTriangle , \tkzDrawCircle , \tkzDrawSemiCircle and \tkzDrawRectangle ;

Thus \tkzDrawSquare(A,B) becomes \tkzDefSquare(A,B) \tkzGetPoints{C}{D} then

\tkzDrawPolygon(A,B,C,D) ;

If you want to draw a circle, you can't do so tkzDrawCircleR . First you have to define the point through which the circle passes, so you have to do \tkzDefCircle[R](A,1) \tkzGetPoint{a} and finally \tkzDrawCircle(A,a) . Another possibilty is to define a point on the circle \tkzDefShiftPoint[A](1,O){a} ;

The following macros \tkzDefCircleBy[orthogonal through] and \tkzDefCircleBy[orthogonal from] become \tkzDefCircle[orthogonal through] and \tkzDefCircle[orthogonal from] ;

\tkzDefLine[euler](A,B,C) is a macro that allows you to obtain the line of Euler when possible. \tkzDefLine[altitude](A,B,C) is possible again, as well as \tkzDefLine[tangent at=A](O) and \tkzDefLine[tangent from=P](O,A) which did not works;

`\tkzDefTangent`  is replaced by  \tkzDelLine[tangent from = ...]  or  \tkzDelLine[tangent at = ...] 

I added the macro \tkzPicAngle[tikz options](A,B,C) for those who prefer to use TIKZ.

The order of the arguments of the macro \tkzDefPointOnCircle has changed: now it is center, angle and point or radius. I have added two options for working with radians which are through in rad and R in rad.

I added the option reverse to the arcs paths. This allows to reverse the path and to reverse if necessary the arrows that would be present.

I have unified the styles for the labels. There is now only label style left which is valid for points, segments, lines, circles and angles. I have deleted label seg style{label line style and label angle style

I added the macro \tkzFillAngles to use several angles.

Correction option return with tkzProtractor

As a reminder, the following changes have been made previously:

 `\tkzDrawMedian` ,  `\tkzDrawBisector` ,  `\tkzDrawAltitude` ,  `\tkzDrawMedians` ,  \tkzDrawBisectors  et   \tkzDrawAltitudes  do not exist anymore. The creation and drawing separation is not respected so it is preferable to first create the coordinates of these points with  \tkzDefSpcTriangle[median]  and then to choose the ones you are going to draw with  \tkzDrawSegments  or  \tkzDrawLines ;

\tkzDrawTriangle has been deleted. \tkzDrawTriangle[equilateral] was handy but it is better to get the third point with \tkzDefTriangle[equilateral] and then draw with \tkzDrawPolygon ; idem for \tkzDrawSquare and \tkzDrawGoldRectangle ;

The circle inversion was badly defined so I rewrote the macro. The input arguments are always the center and a point of the circle, the output arguments are the center of the image circle and a point of the image circle or two points of the image line if the antecedent circle passes through the pole of the inversion. If the circle passes the inversion center, the image is a straight line, the validity of the procedure depends on the choice of the point on the antecedent circle;

Correct allocation for gold sublime and euclide triangles;

I added the option " next to" for the intersections LC and CC;

Correction option isoceles right;

\tkzDefMidArc(O,A,B) gives the middle of the arc center $O$ from $A$ to $B$;

Good news : Some useful tools have been added. They are present on an experimental basis and will undoubtedly need to be improved;

The options "orthogonal from and through" depend now of tkzDefCircleBy

`\tkzDotProduct(A,B,C)`  computes the scalar product in an orthogonal reference system of the vectors $\overrightarrow{A,B}$ and $\overrightarrow{A,C}$. 
`\tkzDotProduct(A,B,C)=aa'+bb' if vec{AB} =(a,b) and vec{AC} =(a',b')` 
`\tkzPowerCircle(A)(B,C)`  power of point $A$ with respect to the circle of center $B$ passing through $C$;
`\tkzDefRadicalAxis(A,B)(C,D)`  Radical axis of two circles of center $A$ and $C$;

Some tests : \tkzIsOrtho(A,B,C) and \tkzIsLinear(A,B,C) The first indicates whether the lines AB and AC are orthogonal. The second indicates whether the points $A$, $B$ and $C$ are aligned;

\tkzIsLinear(A,B,C) if A, B, C are aligned then tkzLineartrue you can use \iftkzLinear (idem for \tkzIsOrtho );

A style for vectors has been added that you can of course modify \tikzset{vector style/.style={>=Latex,->}} ;

Now it's possible to add an arrow on a line or a circle with the option tkz arrow .

  • 4.05b \tkzInterLC new option near new method to choice the points \tkzInterCC new method to choice the points \tkzDefTangent add method to choice the points \tkzTestInterLC and \iftkzFlagLC \tkzTestInterLC and \iftkzFlagCC
  • `\tkzDefHarmonic` option ext int both then node or R
  • \tkzDefGoldenRatio new macro \tkzSwapPoints Exchange two points \tkzPermute Permutation of two points of a triangle \tkzDefPointsBy option rotation with nodes no need to know the angle \tkzMarkArc and \tkzLabelArc
  • `\tkzDefPointOnCircle[angle=30,center=K1,radius=\rAp]` becomes  
    `\tkzDefPointOnCircle[R= angle 30 center K1 radius \rAp]`
    Added  `\tkzDefPointOnCircle[through= angle 30 center K1 point \rAp]`   
    Added some styles to place arrow "tkz arrow" and "tkz arrows" 
    Added " line cap =round" and "line join =round" to all the constructions
    Added information about angles in the documentation
  • 4.03 Adaptation of the code and documentation to the changes of the macros for the intersections.
  • 4.02 Major changes for the macros concerning the intersection of a line and a circle or two circles. If one point of the intersection is known then you can use the "common" option and indicate what the common point is. The second point is given in tkzFirstPointResult. In other cases, for the intersection of two circles the determined points form angles with the centers of the circles. One of the angles measures less than 180 degrees and the other more than 180. The smaller one determines tkzFirstPointResult.

For the intersection of a line and a circle, the method is the same except that the angle is formed by a point on the line and the center of the circle.

  • 4.01

\tkzDefOrthogonalCircle was defined twice so I deleted the version in tkz-obj-eu-circles-by

In the tkz-obj-eu-draw-lines.tex new code for add dim from muzimuzhi Z. The code comes from an answer on the site tex.stackexchange.com

In the file tkz-obj-eu-draw-triangles.tex added options pythagoras and egyptian equivalent to pythagore euclid equivalent to euclide two one equivalent to half

 Added option "swap" useful with golden, gold, school, half, pythagoras

In the file tkz-obj-eu-circles correction of bug in \tkzDefOrthoThroughCircle : \tkz@@CalcLength has been replaced by \tkz@@CalcLengthcm

 Addition of the macro \tkzDefGoldenRatio in tkz-obj-eu-points-spc. It allows to split a segment with a ratio equal to the golden ratio

Minor corrections of the documentation. New examples about option "dim"

  • 4.00 correction of bugs, tkz-euclide no longer depends on tkz-base. The unit is "cm". The bounding box is controlled. The documentation has been restructured according to the rule: set, calculate, draw, mark and fill, label.
  • 3.06 correction of bugs, amelioration of the documentation.
  • 3.05 correction of bugs, amelioration of the documentation.
  • 3.02 replacement french documentation by english documentation, correction of bugs.
  • 3.01 replacement fp for xfp, addition of some macros, correction of bugs
  • 1.16 correction of bugs
  • 1.13 first version


Alain Matthes, 5 rue de Valence, Paris 75005, al (dot) ma (at) mac (dot) com

Download the contents of this package in one zip archive (1.2M).

tkz-euclide – Tools for drawing Euclidean geometry

The tkz-euclide package is a set of files designed to give math teachers and students easy access to the programming of Euclidean geometry with TikZ.

Home pagehttps://altermundus.fr
Version5.02c 2023-02-03
LicensesThe Project Public License 1.3
Copyright2022–2023 Alain Matthes
MaintainerAlain Matthes
Contained inTeX Live as tkz-euclide
MiKTeX as tkz-euclide
TopicsGraphics use
Use luatex
See alsopst-eucl
Guest Book Sitemap Contact Contact Author