diff options
author | Norbert Preining <norbert@preining.info> | 2022-02-09 03:00:53 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-02-09 03:00:53 +0000 |
commit | 8363587176bd1746ab2d65ee183b196e6d3458cf (patch) | |
tree | 64a89e6416d2b23d149b3dd918af467ae0b7441a /macros/latex/contrib | |
parent | 98810f6d7d064e61186d0ce674c4ee9de47a1f55 (diff) |
CTAN sync 202202090300
Diffstat (limited to 'macros/latex/contrib')
137 files changed, 2318 insertions, 1570 deletions
diff --git a/macros/latex/contrib/spbmark/spbmark.pdf b/macros/latex/contrib/spbmark/spbmark.pdf Binary files differindex 2baaca2e23..ea8bda569d 100644 --- a/macros/latex/contrib/spbmark/spbmark.pdf +++ b/macros/latex/contrib/spbmark/spbmark.pdf diff --git a/macros/latex/contrib/spbmark/spbmark.sty b/macros/latex/contrib/spbmark/spbmark.sty index 8655a6245d..b6ab48bdde 100644 --- a/macros/latex/contrib/spbmark/spbmark.sty +++ b/macros/latex/contrib/spbmark/spbmark.sty @@ -9,7 +9,7 @@ % https://creativecommons.org/licenses/by/4.0/legalcode \NeedsTeXFormat{LaTeX2e}[2018/12/31] \RequirePackage{xparse,l3keys2e} -\ProvidesExplPackage{spbmark}{2022/01/31}{1.34} +\ProvidesExplPackage{spbmark}{2022/02/08}{1.35} {Customize superscripts and subscripts} \cs_generate_variant:Nn \box_set_ht:Nn { cv } diff --git a/macros/latex/contrib/spbmark/spbmark.tex b/macros/latex/contrib/spbmark/spbmark.tex index 42cc8b7dbe..0fa51a2fea 100644 --- a/macros/latex/contrib/spbmark/spbmark.tex +++ b/macros/latex/contrib/spbmark/spbmark.tex @@ -6,8 +6,8 @@ { package = spbmark, title = the spbmark package, - version = v1.34, - date = 2022/01/31, + version = v1.35, + date = 2022/02/08, authors = Qu Yi, info = Customize superscript and subscript, email = q1jx@foxmail.com, @@ -34,7 +34,7 @@ \newsplitarg{\splitoarg}{[}{]} \newsplitarg{\splitmarg}{\{}{\}} \newsplitarg{\splitdarg}{(}{)} -\newnote*{\newtag}{\textcolor{red}{\ding{73}\ New}} +\newnote{\newtag}{\textcolor{red}{\ding{73}\ New}} \makeatother \begin{document} diff --git a/macros/latex/contrib/tkz/tkz-euclide/README.md b/macros/latex/contrib/tkz/tkz-euclide/README.md index cda513e6f6..ffe98b82d4 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/README.md +++ b/macros/latex/contrib/tkz/tkz-euclide/README.md @@ -1,6 +1,6 @@ # tkz-euclide — for euclidean geometry -Release 4.03 b 2022/01/19 +Release 4.05 b 2022/02/07 ## Description @@ -74,6 +74,27 @@ The new version of `tkz-euclide` is *not* fully compatible with the version ## History +- 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. diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex index 041890614d..07b1982dc7 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex @@ -1,58 +1,33 @@ \section{FAQ} \subsection{Most common errors} - For the moment, I'm basing myself on my own, because having changed syntax several times, I've made a number of mistakes. This section is going to be expanded. + For the moment, I'm basing myself on my own, because having changed syntax several times, I've made a number of mistakes. This section is going to be expanded. With version 4.05 new problems may appear. \begin{itemize}\setlength{\itemsep}{10pt} - \item Error "dimension too large" : In some cases, this error occurs. One way to avoid it is to use the "\tkzname{xfp}" option. When this option is used in an environment, the "veclen" function is replaced by a function dependent on "xfp". For example, an error occurs if you use the macro \tkzcname{tkzDrawArc} - with too small an angle. The error is produced by the \NameLib{decoration} library when you want to place a mark on an arc. Even if the mark is absent, the error is still present. - -\begin{tkzexample}[] -\begin{tikzpicture}[scale=1.25] - \tkzDefPoint(0,0){O} - \tkzDefPoint(2.5,0){N} - \tkzDefPoint(-4.2,0.5){M} - \tkzDefPointBy[rotation=center O angle 30](N) - \tkzGetPoint{B} - \tkzDefPointBy[rotation=center O angle -50](N) - \tkzGetPoint{A} - \tkzInterLC(M,B)(O,N) \tkzGetFirstPoint{C} - \tkzInterLC(M,A)(O,N) \tkzGetSecondPoint{A'} - \tkzMarkAngle[mkpos=.2, size=0.5](A,C,B) - \tkzMarkAngle[mkpos=.2, size=0.5](A,M,C) - \tkzDrawSegments(A,C M,A M,B) - \tkzDrawCircle(O,N) - \tkzLabelCircle[above left](O,N)(120){$\mathcal{C}$} - \begin{scope}[xfp] - \tkzMarkAngle[mkpos=.2, size=1.2](C,A,M) - \end{scope} - \tkzDrawPoints(O, A, B, M, B, C) - \tkzLabelPoints[right](O,A,B) - \tkzLabelPoints[above left](M,C) - \tkzLabelPoint[below left](A'){$A'$} -\end{tikzpicture} -\end{tkzexample} + \item The mistake I make most often is to forget to put an "s" in the macro used to draw more than one object: like \tkzcname{tkzDrawSegment(s)} or \tkzcname{tkzDrawCircle(s)} ok like in this example \tkzcname{tkzDrawPoint(A,B)} when you need \tkzcname{tkzDrawPoints(A,B)}; -\item \tkzcname{tkzDrawPoint(A,B)} when you need \tkzcname{tkzDrawPoints}. - -\item \tkzcname{tkzGetPoint(A)} When defining an object, use braces and not brackets, so write: \tkzcname{tkzGetPoint\{A\}}. + \item Don't forget that since version 4 the unit is obligatorily the "cm" it is thus necessary to withdraw the unit like here \tkzcname{tkzDrawCircle[R](O,3cm)} which becomes \tkzcname{tkzDrawCircle[R](O,3)}. The traditional options of \tkzname{TikZ} keep their units example\tkzname{ below right = 12pt} on the other hand one will write \tkzname{size=1.2} to position an arc in \tkzcname{tkzMarkAngle}; + + \item The following error still happens to me from time to time. A point that is created has its name in brackets while a point that is used either as an option or as a parameter has its name in braces. Example \tkzcname{tkzGetPoint(A)} When defining an object, use braces and not brackets, so write: \tkzcname{tkzGetPoint\{A\}}; + + \item The changes in obtaining the points of intersection between lines and circles sometimes exchange the solutions, this leads either to a bad figure or to an error. + + \item \tkzcname{tkzGetPoint\{A\}} in place of \tkzcname{tkzGetFirstPoint\{A\}}. When a macro gives two points as results, either we retrieve these points using \tkzcname{tkzGetPoints\{A\}\{B\}}, or we retrieve only one of the two points, using \tkzcname{tkzGetFirstPoint\{A\}} or + \tkzcname{tkzGetSecondPoint\{A\}}. These two points can be used with the reference \tkzname{tkzFirstPointResult} or + \tkzname{tkzSecondPointResult}. It is possible that a third point is given as\\ \tkzname{tkzPointResult}; -\item \tkzcname{tkzGetPoint\{A\}} in place of \tkzcname{tkzGetFirstPoint\{A\}}. When a macro gives two points as results, either we retrieve these points using \tkzcname{tkzGetPoints\{A\}\{B\}}, or we retrieve only one of the two points, using \tkzcname{tkzGetFirstPoint\{A\}} or -\tkzcname{tkzGetSecondPoint\{A\}}. These two points can be used with the reference \tkzname{tkzFirstPointResult} or -\tkzname{tkzSecondPointResult}. It is possible that a third point is given as\\ \tkzname{tkzPointResult}. - -\item \tkzcname{tkzDrawSegment(A,B A,C)} when you need \tkzcname{tkzDrawSegments}. It is possible to use only the versions with an "s" but it is less efficient! -\item Mixing options and arguments; all macros that use a circle need to know the radius of the circle. If the radius is given by a measure then the option includes a \tkzname{R}. +\item Mixing options and arguments; all macros that use a circle need to know the radius of the circle. If the radius is given by a measure then the option includes a \tkzname{R}. -\item \tkzcname{tkzDrawSegments[color = gray,style=dashed]\{B,B' C,C'\}} is a mistake. Only macros that define an object use braces. \item The angles are given in degrees, more rarely in radians. + \item If an error occurs in a calculation when passing parameters, then it is better to make these calculations before calling the macro. \item Do not mix the syntax of \tkzNamePack{pgfmath} and \tkzNamePack{xfp}. I've often chosen \tkzNamePack{xfp} but if you prefer pgfmath then do your calculations before passing parameters. - -\item Use of \tkzcname{tkzClip}: In order to get accurate results, I avoided using normalized vectors. The advantage of normalization is to control the dimension of the manipulated objects, the disadvantage is that with TeX, this implies inaccuracies. These inaccuracies are often small, in the order of a thousandth, but they lead to disasters if the drawing is enlarged. Not normalizing implies that some points are far away from the working area and \tkzcname{tkzClip} allows you to reduce the size of the drawing. + + \item Error "dimension too large" : In some cases, this error occurs. One way to avoid it is to use the "\tkzname{xfp}" option. When this option is used in an environment, the "veclen" function is replaced by a function dependent on "xfp". For example, an error occurs if you use the macro \tkzcname{tkzDrawArc} + with too small an angle. The error is produced by the \NameLib{decoration} library when you want to place a mark on an arc. Even if the mark is absent, the error is still present. \end{itemize} \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-angles.tex index 7a65cf6a51..d1e2e2c868 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-angles.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-angles.tex @@ -1,46 +1,100 @@ -\section{The angles} +\section{Angles} +\subsection{Definition and usage with \tkzname{tkz-euclide}} +In Euclidean geometry, an angle is the figure formed by two rays, called the sides of the angle, sharing a common endpoint, called the vertex of the angle.[Wikipedia]. A ray with \tkzname{tkz-euclide} is defined by two points also each angle is defined with three points like $\widehat{AOB}$. The vertex $O$ is the second point. Their order is important because it is assumed that the angle is specified in the direct order (counterclockwise). +In trigonometry and mathematics in general, plane angles are conventionally measured counterclockwise, starting with $0^\circ$ pointing directly to the right (or east), and $90^\circ$ pointing straight up (or north)[Wikipedia]. +Let us agree that an angle measured counterclockwise is positive. + + \begin{center} + + \begin{tikzpicture}[scale=.75] + \node {clockwise}; + \tkzDefPoint(0,0){O} \tkzDefPoint(90:2){A}\tkzDefPoint(180:2){B} + \tkzDrawArc[black,line width=2pt,arrows = {Stealth-}](O,B)(A) + \end{tikzpicture} + \begin{tikzpicture}[scale=.75] + \node {counterclockwise}; + \tkzDefPoint(0,0){O} \tkzDefPoint(90:2){A}\tkzDefPoint(0:2){B} + \tkzDrawArc[black,line width=2pt,arrows = {-Stealth}](O,A)(B) + \end{tikzpicture} + + \end{center} + + \tkzname{Angles} are involved in several macros like \tkzcname{tkzDefPoint},\tkzcname{tkzDefPointBy[rotation = \dots]}, \tkzcname{tkzDrawArc} + and the next one \tkzcname{tkzGetAngle}. With the exception of the last one, all these macros accept negative angles. + + \begin{figure}[!h] + \centering + \begin{tabular}{|c|c|} + \hline + \tkzsubf{\begin{tikzpicture} + \tkzDefPoint(0,0){O} \tkzDefPoint(0:2){A} + \tkzDefPointBy[rotation=center O angle 80](A) \tkzGetPoint{B} + \tkzDrawSegments[-{Stealth}](O,A O,B) + \tkzMarkAngles[size=2,-Stealth,teal](A,O,B) + \tkzFindAngle(A,O,B) \tkzGetAngle{an} + \tkzLabelAngle[pos=1,teal](A,O,B){$ \pgfmathprintnumber{\an}^\circ$} + \tkzAutoLabelPoints[center=O](A,B) + \end{tikzpicture}} + {Rotation $80^\circ$ from $(O,A)$ to $(O,B)$\\ + {\textbackslash}tkzDefPointBy[rotation=center O angle 80]} + & + \tkzsubf{\begin{tikzpicture} + \tkzDefPoint(0,0){O} \tkzDefPoint(0:2){A} + \tkzDefPointBy[rotation=center O angle -80](A) \tkzGetPoint{B} + \tkzDrawSegments[-{Stealth}](O,A O,B) + \tkzMarkAngles[size=2,Stealth-,red](B,O,A) + \tkzFindAngle(B,O,A) \tkzGetAngle{an} + \tkzLabelAngle[pos=1,red](B,O,A){$-\pgfmathprintnumber{\an}^\circ$} + \tkzAutoLabelPoints[center=O](A,B) + \end{tikzpicture}} + {Rotation $-80^\circ$ from $(O,A)$ to $(O,B)$\\ + {\textbackslash}tkzDefPointBy[rotation=center O angle -80]} + \\ \hline + \tkzsubf{\begin{tikzpicture} + \tkzDefPoint(0,0){O} \tkzDefPoint(0:2){A} + \tkzDefPointBy[rotation=center O angle 80](A) \tkzGetPoint{B} + \tkzDrawSegments[-{Stealth}](O,A O,B) + \tkzMarkAngles[size=1.5,-Stealth,teal](A,O,B) + \tkzFindAngle(A,O,B) \tkzGetAngle{an} + \tkzLabelAngle[pos=1,teal](A,O,B){$ \pgfmathprintnumber{\an}^\circ$} + \tkzAutoLabelPoints[center=O](A,B) + \end{tikzpicture}} + { {\textbackslash}tkzFindAngle(A,O,B) gives $80$} + & + \tkzsubf{\begin{tikzpicture} + \tkzDefPoint(0,0){O} \tkzDefPoint(0:2){A} + \tkzDefPointBy[rotation=center O angle -80](A) \tkzGetPoint{B} + \tkzDrawSegments[-{Stealth}](O,A O,B) + \tkzMarkAngles[size=1,-Stealth,red](A,O,B) + \tkzFindAngle(A,O,B) \tkzGetAngle{an} + \tkzLabelAngle[pos=.75,red](A,O,B){$\pgfmathprintnumber{\an}^\circ$} + \tkzAutoLabelPoints[center=O](A,B) + \end{tikzpicture}} + {{\textbackslash}tkzFindAngle(A,O,B) gives $\pgfmathprintnumber{\an}^\circ$} + \\\hline + \end{tabular} + \end{figure} + +As we can see, the $-80^\circ$ rotation defines a clockwise angle but the macro +\tkzcname{tkzFindAngle} recovers a counterclockwise angle. -%\section{Angles tools} \subsection{Recovering an angle \tkzcname{tkzGetAngle}} \begin{NewMacroBox}{tkzGetAngle}{\parg{name of macro}}% -Assigns the value in degree of an angle to a macro. This macro retrieves \tkzcname{tkzAngleResult} and stores the result in a new macro. +Assigns the value in degree of an angle to a macro. The value is positive and between $0^\circ$ and $360^\circ$. This macro retrieves \tkzcname{tkzAngleResult} and stores the result in a new macro. \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{name of macro} {\tkzcname{tkzGetAngle}\{ang\}}{\tkzcname{ang} contains the value of the angle.} \end{tabular} -\end{NewMacroBox} - -\subsection{Example of the use of \tkzcname{tkzGetAngle}} - - The point here is that $(AB)$ is the bisector of $\widehat{CAD}$, such that the $AD$ slope is zero. We recover the slope of $(AB)$ and then rotate twice. - - -\begin{tkzexample}[latex=7cm,small] -\begin{tikzpicture} - \tkzDefPoint(1,5){A} \tkzDefPoint(5,2){B} - \tkzDrawSegment(A,B) - \tkzFindSlopeAngle(A,B)\tkzGetAngle{tkzang} - \tkzDefPointBy[rotation= center A angle \tkzang ](B) - \tkzGetPoint{C} - \tkzDefPointBy[rotation= center A angle -\tkzang ](B) - \tkzGetPoint{D} - \tkzCompass[length=1](A,C) - \tkzCompass[delta=10,brown](B,C) - \tkzDrawPoints(A,B,C,D) - \tkzLabelPoints(B,C,D) - \tkzLabelPoints[above left](A) - \tkzDrawSegments[style=dashed,color=orange!30](A,C A,D) -\end{tikzpicture} -\end{tkzexample} - +\end{NewMacroBox} +This is an auxiliary macro that allows you to retrieve the result of the following macro \tkzcname{tkzFindAngle}. \subsection{Angle formed by three points} @@ -51,14 +105,14 @@ The result is stored in a macro \tkzcname{tkzAngleResult}. \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{(pt1,pt2,pt3)} {\tkzcname{tkzFindAngle}(A,B,C)}{\tkzcname{tkzAngleResult} gives the angle ($\overrightarrow{BA},\overrightarrow{BC}$)} \bottomrule \end{tabular} \medskip -The result is between -180 degrees and +180 degrees. $pt2$ is the vertex and \tkzcname{tkzGetAngle} can retrieve the angle. +The measure is always positive and between $0^\circ$ and $360^\circ$. With the usual conventions, a counterclockwise angle smaller than a straight angle has always a measure between $0^\circ$ and $180^\circ$, while a clockwise angle smaller than a straight angle will have a measurement greater than $180^\circ$. \tkzcname{tkzGetAngle} can retrieve the angle. \end{NewMacroBox} \subsubsection{Verification of angle measurement} @@ -70,8 +124,7 @@ The result is between -180 degrees and +180 degrees. $pt2$ is the vertex and \tk \tkzDefEquilateral(A,B) \tkzGetPoint{C} \tkzDrawPolygon(A,B,C) - \tkzFindAngle(B,A,C) - \tkzGetAngle{angleBAC} + \tkzFindAngle(B,A,C) \tkzGetAngle{angleBAC} \edef\angleBAC{\fpeval{round(\angleBAC)}} \tkzDrawPoints(A,B,C) \tkzLabelPoints(A,B) @@ -83,49 +136,46 @@ The result is between -180 degrees and +180 degrees. $pt2$ is the vertex and \tk \subsubsection{Determination of the three angles of a triangle} -\begin{tkzexample}[latex=7cm,small] +\begin{tkzexample}[latex=6cm,small] \begin{tikzpicture} +\tikzset{label angle style/.append style={pos=1.4}} \tkzDefPoints{0/0/a,5/3/b,3/6/c} \tkzDrawPolygon(a,b,c) -\tkzFindAngle(c,b,a) -\tkzGetAngle{angleCBA} +\tkzFindAngle(c,b,a)\tkzGetAngle{angleCBA} \pgfmathparse{round(1+\angleCBA)} \let\angleCBA\pgfmathresult -\tkzFindAngle(a,c,b) -\tkzGetAngle{angleACB} +\tkzFindAngle(a,c,b)\tkzGetAngle{angleACB} \pgfmathparse{round(\angleACB)} \let\angleACB\pgfmathresult -\tkzFindAngle(b,a,c) -\tkzGetAngle{angleBAC} +\tkzFindAngle(b,a,c)\tkzGetAngle{angleBAC} \pgfmathparse{round(\angleBAC)} \let\angleBAC\pgfmathresult \tkzMarkAngle(c,b,a) -\tkzLabelAngle[pos=1.4](c,b,a)% - {\tiny $\angleCBA^\circ$} +\tkzLabelAngle(c,b,a){\tiny $\angleCBA^\circ$} \tkzMarkAngle(a,c,b) -\tkzLabelAngle[pos=1.4](a,c,b)% - {\tiny $\angleACB^\circ$} +\tkzLabelAngle(a,c,b){\tiny $\angleACB^\circ$} \tkzMarkAngle(b,a,c) -\tkzLabelAngle[pos=1.4](b,a,c)% - {\tiny $\angleBAC^\circ$} +\tkzLabelAngle(b,a,c){\tiny $\angleBAC^\circ$} \end{tikzpicture} \end{tkzexample} + \subsubsection{Angle between two circles} +We are looking for the angle formed by the tangents at a point of intersection -\begin{tkzexample}[vbox,small] +\begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=.4] -\pgfkeys{/pgf/number format/.cd,fixed,precision=1} +\pgfkeys{/pgf/number format/.cd,% + fixed,precision=1} \tkzDefPoints{0/0/A,6/0/B,4/2/C} \tkzDrawCircles(A,C B,C) \tkzDefTangent[at=C](A) \tkzGetPoint{a} \tkzDefPointsBy[symmetry = center C](a){d} \tkzDefTangent[at=C](B) \tkzGetPoint{b} \tkzDrawLines[add=1 and 4](a,C C,b) -\tkzDrawSegments(A,C B,C) +\tkzFillAngle[fill=teal,opacity=.2% + ,size=2](b,C,d) \tkzFindAngle(b,C,d)\tkzGetAngle{bcd} -\tkzMarkAngle[size=3,arc=ll,mark=s](b,C,d) -\tkzFillAngle[fill=teal,opacity=.2,size=2](b,C,d) \tkzLabelAngle[pos=1.25](b,C,d){% \tiny $\pgfmathprintnumber{\bcd}^\circ$} \end{tikzpicture} @@ -141,7 +191,7 @@ Determines the slope of the straight line (AB). The result is stored in a macro \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{(pt1,pt2)} {\tkzcname{tkzFindSlopeAngle}(A,B)}{} \bottomrule @@ -151,6 +201,27 @@ arguments & example & explication \\ \tkzcname{tkzGetAngle} can retrieve the result. If retrieval is not necessary, you can use \tkzcname{tkzAngleResult}. \end{NewMacroBox} +\subsubsection{How to use \tkzcname{tkzFindSlopeAngle}} + + The point here is that $(AB)$ is the bisector of $\widehat{CAD}$, such that the $AD$ slope is zero. We recover the slope of $(AB)$ and then rotate twice. + +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture} + \tkzDefPoint(1,5){A} \tkzDefPoint(5,2){B} + \tkzFindSlopeAngle(A,B)\tkzGetAngle{tkzang} + \tkzDefPointBy[rotation= center A angle \tkzang ](B) + \tkzGetPoint{C} + \tkzDefPointBy[rotation= center A angle -\tkzang ](B) + \tkzGetPoint{D} + \tkzDrawSegment(A,B) + \tkzDrawSegments[new](A,C A,D) + \tkzDrawPoints(A,B,C,D) + \tkzCompass[length=1](A,C) + \tkzCompass[delta=10,brown](B,C) + \tkzLabelPoints(B,C,D) + \tkzLabelPoints[above left](A) +\end{tikzpicture} +\end{tkzexample} \subsubsection{Use of \tkzcname{tkzFindSlopeAngle} and \tkzcname{tkzGetAngle}} Here is another version of the construction of a mediator @@ -187,11 +258,11 @@ Here is another version of the construction of a mediator \tkzFindSlopeAngle(A,D)\tkzGetAngle{SAD} \pgfkeys{/pgf/number format/.cd,fixed,precision=2} \tkzText(1,5){The slope of (AB) is : - $\pgfmathprintnumber{\SAB}$} + $\pgfmathprintnumber{\SAB}^\circ$} \tkzText(1,4.5){The slope of (AC) is : - $\pgfmathprintnumber{\SAC}$} + $\pgfmathprintnumber{\SAC}^\circ$} \tkzText(1,4){The slope of (AD) is : - $\pgfmathprintnumber{\SAD}$} + $\pgfmathprintnumber{\SAD}^\circ$} \end{tikzpicture} \end{tkzexample} diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circleby.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circleby.tex index fac856d457..4df2f61333 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circleby.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circleby.tex @@ -1,4 +1,4 @@ -\section{Definition of circle by transformation; \tkzcname{tkzDefCircleBy} } +\subsection{Definition of circle by transformation; \tkzcname{tkzDefCircleBy} } These transformations are: \begin{itemize} @@ -50,7 +50,7 @@ options & & examples \\ The image is only defined and not drawn. \end{NewMacroBox} -\subsection{Examples of transformations} +\subsubsection{Examples of transformations} \subsubsection{\tkzname{Translation}} \begin{tkzexample}[latex=7cm,small] @@ -60,9 +60,10 @@ The image is only defined and not drawn. \tkzDefCircleBy[translation= from B to A](C,D) \tkzGetPoints{C'}{D'} \tkzDrawPoints[teal](A,B,C,D,C',D') - \tkzLabelPoints[color=teal](A,B,C,D,C',D') \tkzDrawSegments[orange,->](A,B) \tkzDrawCircles(C,D C',D') + \tkzLabelPoints[color=teal](A,B,C,C') + \tkzLabelPoints[color=teal,above](D,D') \end{tikzpicture} \end{tkzexample} @@ -75,9 +76,10 @@ The image is only defined and not drawn. \tkzDefCircleBy[reflection = over A--B](C,D) \tkzGetPoints{C'}{D'} \tkzDrawPoints[teal](A,B,C,D,C',D') - \tkzLabelPoints[color=teal](A,B,C,D,C',D') \tkzDrawLine[add =0 and 1][orange](A,B) \tkzDrawCircles(C,D C',D') + \tkzLabelPoints[color=teal](A,B,C,C') + \tkzLabelPoints[color=teal,above](D,D') \end{tikzpicture} \end{tkzexample} @@ -91,8 +93,9 @@ The image is only defined and not drawn. \tkzDefCircleBy[homothety=center A ratio .5](C,D) \tkzGetPoints{C'}{D'} \tkzDrawPoints[teal](A,C,D,C',D') - \tkzLabelPoints[color=teal](A,C,D,C',D') \tkzDrawCircles(C,D C',D') + \tkzLabelPoints[color=teal](A,C,C') + \tkzLabelPoints[color=teal,above](D,D') \end{tikzpicture} \end{tkzexample} @@ -105,18 +108,20 @@ The image is only defined and not drawn. \tkzDefCircleBy[symmetry=center B](C,D) \tkzGetPoints{C'}{D'} \tkzDrawPoints[teal](B,C,D,C',D') - \tkzLabelPoints[color=teal](B,C,D,C',D') \tkzDrawLines[orange](C,C' D,D') \tkzDrawCircles(C,D C',D') + \tkzLabelPoints[color=teal](A,C,C') + \tkzLabelPoints[color=teal,above](D) + \tkzLabelPoints[color=teal,below](D') \end{tikzpicture} \end{tkzexample} \subsubsection{\tkzname{Rotation}} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=0.5] - \tkzDefPoint(0,0){A} \tkzDefPoint(3,-1){B} + \tkzDefPoint(3,-1){B} \tkzDefPoint(3,2){C} \tkzDefPoint(4,3){D} - \tkzDefCircleBy[rotation=center B angle 60](C,D) + \tkzDefCircleBy[rotation=center B angle 90](C,D) \tkzGetPoints{C'}{D'} \tkzDrawPoints[teal](B,C,D,C',D') \tkzLabelPoints[color=teal](B,C,D,C',D') @@ -126,7 +131,7 @@ The image is only defined and not drawn. \subsubsection{\tkzname{Orthogonal from}} -Orthogonal circle of given center. \tkzcname{tkzGetPoints{z1}{z2}} gives two points of the circle. +Orthogonal circle of given center. \tkzcname{tkzGetPoints\{z1\}\{z2\}} gives two points of the circle. \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=.75] @@ -147,19 +152,18 @@ Orthogonal circle of given center. \tkzcname{tkzGetPoints{z1}{z2}} gives two poi \subsubsection{\tkzname{Orthogonal from} : Right angle between circles} We are looking for a circle orthogonal to the given circle. -\begin{tkzexample}[latex=6cm,small] -\begin{tikzpicture}[scale=.5] +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture}[scale=.4] \tkzDefPoints{0/0/A,6/0/B,4/2/D} \tkzDefCircleBy[orthogonal from=B](A,D) -\tkzGetFirstPoint{C} +\tkzGetSecondPoint{C} \tkzDrawCircles(A,C B,C) \tkzDefTangent[at=C](A) \tkzGetPoint{a} \tkzDefPointsBy[symmetry = center C](a){d} \tkzDefTangent[at=C](B) \tkzGetPoint{b} \tkzDrawLines[add=1 and 4](a,C C,b) \tkzDrawSegments(A,C B,C) -\tkzMarkAngle[size=2.5](b,C,d) -\tkzFillAngle[fill=teal,opacity=.2,size=3](b,C,d) +\tkzMarkRightAngle[fill=teal,opacity=.2,size=1](b,C,d) \end{tikzpicture} \end{tkzexample} diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex index f0cdae595e..e0d1ccd6fe 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex @@ -1,6 +1,6 @@ -\section{The Circles} +\section{Circles} -Among the following macros, one will allow you to draw a circle, which is not a real feat. To do this, you will need to know the center of the circle and either the radius of the circle or a point on the circumference. It seemed to me that the most frequent use was to draw a circle with a given centre passing through a given point. This will be the default method, otherwise you will have to use the \tkzname{R} option. There are a large number of special circles, for example the circle circumscribed by a triangle. +Among the following macros, one will allow you to draw a circle, which is not a real feat. To do this, you will need to know the center of the circle and either the radius of the circle or a point on the circumference. It seemed to me that the most frequent use was to draw a circle with a given center passing through a given point. This will be the default method, otherwise you will have to use the \tkzname{R} option. There are a large number of special circles, for example the circle circumscribed by a triangle. \begin{itemize} \item I have created a first macro \tkzcname{tkzDefCircle} which allows, according to a particular circle, to retrieve its center and the measurement of the radius in cm. This recovery is done with the macros \tkzcname{tkzGetPoint} and \tkzcname{tkzGetLength}; @@ -25,7 +25,7 @@ This macro allows you to retrieve the characteristics (center and radius) of cer \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2} or \parg{pt1,pt2,pt3}}{\parg{A,B}} {$[AB]$ is radius $A$ is the center} \bottomrule @@ -85,7 +85,7 @@ options & default & definition \\ \tkzDrawCircle(O,B) \tkzDrawSegment(A,B) \tkzDrawPoints(A,B,O) - \tkzLabelPoints(A,B,O) + \tkzLabelPoints[below](A,B,O) \end{tikzpicture} \end{tkzexample} @@ -139,6 +139,8 @@ We want to define an excircle of a triangle relatively to point $C$ \tkzLabelPoints[left](F) \end{tikzpicture} \end{tkzexample} + + \subsubsection{Euler's circle for a given triangle with option \tkzname{euler}} @@ -328,4 +330,91 @@ The incircle of the medial triangle $M_aM_bM_c$ is the Spieker circle: \tkzLabelLine[pos=0.5,left](X,y){R} \end{tikzpicture} \end{tkzexample} + +\subsection{Projection of excenters} + +\begin{NewMacroBox}{tkzDefProjExcenter}{\oarg{local options}\parg{A,B,C}\parg{a,b,c}\marg{X,Y,Z}}% +Each excenter has three projections on the sides of the triangle ABC. We can do this with one macro\\ \tkzcname{tkzDefProjExcenter[name=J](A,B,C)(a,b,c)\{Y,Z,X\}}. + +\medskip +\begin{tabular}{lll}% +\toprule +options & default & definition \\ +\midrule +\TOline{name} {no defaut}{used to name the vertices} +\bottomrule +\end{tabular} + +\begin{tabular}{lll}% +arguments & default & definition \\ +\midrule +\TAline{(pt1=$\alpha_1$,pt2=$\alpha_2$,\dots)}{no default}{Each point has a assigned weight} +\end{tabular} + +\medskip +\end{NewMacroBox} + +\subsubsection{Excircles} + +\begin{tikzpicture}[scale=.6] +\tikzset{line style/.append style={line width=.2pt}} +\tikzset{label style/.append style={color=teal,font=\footnotesize}} +\tkzDefPoints{0/0/A,5/0/B,0.8/4/C} +\tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c} +\tkzDefSpcTriangle[intouch,name=I](A,B,C){a,b,c} +\tkzDefProjExcenter[name=J](A,B,C)(a,b,c){X,Y,Z} + +\tkzDefCircle[in](A,B,C) \tkzGetPoint{I} \tkzGetSecondPoint{T} +\tkzDrawCircles[red](Ja,Xa Jb,Yb Jc,Zc) +\tkzDrawCircle(I,T) +\tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc) +\tkzDrawLines[add=1.5 and 1.5](A,C A,B B,C) +\tkzDrawSegments(Ja,Xa Ja,Ya Ja,Za + Jb,Xb Jb,Yb Jb,Zb + Jc,Xc Jc,Yc Jc,Zc + I,Ia I,Ib I,Ic) +\tkzMarkRightAngles[size=.2,fill=gray!15](Ja,Za,B Ja,Xa,B Ja,Ya,C Jb,Yb,C Jb,Zb,B Jb,Xb,C Jc,Yc,A Jc,Zc,B Jc,Xc,C I,Ia,B I,Ib,C I,Ic,A) +\tkzDrawSegments[blue](Jc,C Ja,A Jb,B) +\tkzLabelPoints(A,Yc,Ya,Yb,Ja,I,Zc) +\tkzLabelPoints[left](Jb,Ib) +\tkzLabelPoints[below](Zb,Ic,Jc,B,Za) +\tkzLabelPoints[above right](C) +\tkzLabelPoints[right](Xb,Ia,Xa,Xc) +\end{tikzpicture} + +\begin{tkzexample}[code only,small] +\begin{tikzpicture}[scale=.6] +\tikzset{line style/.append style={line width=.2pt}} +\tikzset{label style/.append style={color=teal,font=\footnotesize}} +\tkzDefPoints{0/0/A,5/0/B,0.8/4/C} +\tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c} +\tkzDefSpcTriangle[intouch,name=I](A,B,C){a,b,c} +\tkzDefProjExcenter[name=J](A,B,C)(a,b,c){X,Y,Z} + +\tkzDefCircle[in](A,B,C) \tkzGetPoint{I} \tkzGetSecondPoint{T} +\tkzDrawCircles[red](Ja,Xa Jb,Yb Jc,Zc) +\tkzDrawCircle(I,T) +\tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc) +\tkzDrawLines[add=1.5 and 1.5](A,C A,B B,C) +\tkzDrawSegments(Ja,Xa Ja,Ya Ja,Za + Jb,Xb Jb,Yb Jb,Zb + Jc,Xc Jc,Yc Jc,Zc + I,Ia I,Ib I,Ic) +\tkzMarkRightAngles[size=.2,fill=gray!15](% + Ja,Za,B Ja,Xa,B + Ja,Ya,C Jb,Yb,C + Jb,Zb,B Jb,Xb,C + Jc,Yc,A Jc,Zc,B + Jc,Xc,C I,Ia,B + I,Ib,C I,Ic,A) +\tkzDrawSegments[blue](Jc,C Ja,A Jb,B) +\tkzLabelPoints(A,Yc,Ya,Yb,Ja,I,Zc) +\tkzLabelPoints[left](Jb,Ib) +\tkzLabelPoints[below](Zb,Ic,Jc,B,Za) +\tkzLabelPoints[above right](C) +\tkzLabelPoints[right](Xb,Ia,Xa,Xc) +\end{tikzpicture} +\end{tkzexample} + + \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-clipping.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-clipping.tex index e7e96e461c..342e0024ab 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-clipping.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-clipping.tex @@ -157,7 +157,7 @@ This macro makes it possible to contain the different plots in the designated po \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2,pt3,\dots}}{\parg{A,B,C}}{} \midrule @@ -233,7 +233,7 @@ options & default & definition \\ \begin{NewMacroBox}{tkzClipCircle}{\oarg{local options}\parg{A,B} or \parg{A,r}}% \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{A,B} or \parg{A,r}}{\parg{A,B} or \parg{A,2cm}} {AB radius or diameter } \bottomrule @@ -309,7 +309,7 @@ see a more complex example about clipping here : \ref{About clipping circles} \begin{tabular}{lll}% options & default & definition \\ \midrule -\TOline{towards}{towards}{$O$ is the centre and the sector starts from $A$ to $(OB)$} +\TOline{towards}{towards}{$O$ is the center and the sector starts from $A$ to $(OB)$} \TOline{rotate} {towards}{The sector starts from $A$ and the angle determines its amplitude. } \TOline{R}{towards}{We give the radius and two angles} \bottomrule diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex index 08fd38950e..4740226622 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex @@ -11,8 +11,8 @@ You can define the length of the arc with the option |length| or the option |del \toprule options & default & definition \\ \midrule -\TOline{delta} {0 (deg)}{Modifies the angle of the arc by increasing it symmetrically (in degrees)} -\TOline{length}{1 (cm)}{Changes the length (in cm)} +\TOline{delta} {0 (deg)}{Increases the angle of the arc symmetrically} +\TOline{length}{1 (cm)}{Changes the length (in cm)} \end{tabular} \end{NewMacroBox} diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-drawing.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-drawing.tex index 181285901c..8f8b72d95f 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-drawing.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-drawing.tex @@ -183,20 +183,6 @@ Arguments are a list of pairs of points separated by spaces. The styles of \TI \end{tikzpicture} \end{tkzexample} -\subsubsection{Example with the option \tkzname{add}} -\begin{tkzexample}[latex=8cm,small] -\begin{tikzpicture}[scale=.5] - \tkzDefPoint(0,0){O} - \tkzDefPoint(3,1){I} - \tkzDefPoint(1,4){J} - \tkzDefLine[bisector](I,O,J) - \tkzGetPoint{i} - \tkzDefLine[bisector out](I,O,J) - \tkzGetPoint{j} - \tkzDrawLines[add = 1 and .5](O,I O,J) - \tkzDrawLines[add = 1 and .5,new](O,i O,j) -\end{tikzpicture} -\end{tkzexample} %<----------------------------------------------------------------------------> % SEGMENT(S) %<----------------------------------------------------------------------------> @@ -402,7 +388,7 @@ Just give a list of points and the macro plots the polygon using the \TIKZ\ opti \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2,pt3,...}}{|\BS tkzDrawPolygon[gray,dashed](A,B,C)|}{Drawing a triangle} \end{tabular} @@ -432,6 +418,7 @@ options & default & example \\ \tkzDefPoint(0,0){A} \tkzDefPoint(6,0){B} \tkzDefTriangle[two angles = 50 and 70](A,B) \tkzGetPoint{C} +\tkzDrawPolygon(A,B,C) \tkzLabelAngle[pos=1.4](B,A,C){$50^\circ$} \tkzLabelAngle[pos=0.8](C,B,A){$70^\circ$} \end{tikzpicture} @@ -461,7 +448,7 @@ Just give a list of points and the macro plots the polygonal chain using the \TI \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2,pt3,...}}{|\BS tkzDrawPolySeg[gray,dashed](A,B,C)|}{Drawing a triangle} \end{tabular} @@ -528,10 +515,9 @@ A Sangaku look! It is a question of proving that one can inscribe in a half-disc \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2}}{\parg{A,B}} {two points to define a radius or a diameter} -\bottomrule \end{tabular} \medskip @@ -556,13 +542,13 @@ Of course, you have to add all the styles of \TIKZ\ for the tracings... \begin{tikzpicture} \tkzDefPoint(0,0){O} \tkzDefPoint(3,0){A} - % circle with centre O and passing through A + % circle with center O and passing through A \tkzDrawCircle(O,A) % diameter circle $[OA]$ \tkzDrawCircle[diameter,new,% line width=.4pt,fill=orange!10,% opacity=.5](O,A) - % circle with centre O and radius = exp(1) cm + % circle with center O and radius = exp(1) cm \edef\rayon{\fpeval{0.25*exp(1)}} \tkzDrawCircle[R,color=orange](O,\rayon) \end{tikzpicture} @@ -575,7 +561,7 @@ Of course, you have to add all the styles of \TIKZ\ for the tracings... \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2 pt3,pt4 ...}}{\parg{A,B C,D}} {List of two points} \bottomrule @@ -660,9 +646,9 @@ Based on an idea by O. Reboux made with pst-eucl (Pstricks module) by D. Rodrigu \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule -\TAline{\parg{pt1,pt2}}{\parg{O,A} or\parg{A,B}} {radius or diameter} +\TAline{\parg{pt1,pt2}}{\parg{O,A} or \parg{A,B}} {radius or diameter} \bottomrule \end{tabular} @@ -706,7 +692,7 @@ options & default & definition \\ \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2 pt3,pt4 ...}}{\parg{A,B C,D}} {List of two points} \bottomrule @@ -942,14 +928,14 @@ There's no need to put \tkzname{towards}. You can use \tkzname{fill} as an optio \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture} \tkzDefPoint(0,0){O} - \tkzDefPoint(-30:3){A} + \tkzDefPoint(-30:1){A} \tkzDefPointBy[rotation = center O angle -60](A) - \tkzDrawSector(O,A)(tkzPointResult) + \tkzDrawSector[teal](O,A)(tkzPointResult) \begin{scope}[shift={(-60:1)}] \tkzDefPoint(0,0){O} - \tkzDefPoint(-30:3){A} + \tkzDefPoint(-30:1){A} \tkzDefPointBy[rotation = center O angle -60](A) - \tkzDrawSector(O,tkzPointResult)(A) + \tkzDrawSector[red](O,tkzPointResult)(A) \end{scope} \end{tikzpicture} \end{tkzexample} @@ -957,10 +943,9 @@ There's no need to put \tkzname{towards}. You can use \tkzname{fill} as an optio \subsubsection{\tkzcname{tkzDrawSector} and \tkzname{rotate}} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=2] - \tkzDefPoint(0,0){O} - \tkzDefPoint(2,2){A} - \tkzDrawSector[rotate,draw=orange!50!black](O,A)(30) - \tkzDrawSector[rotate,draw=teal!50!black](O,A)(-30) + \tkzDefPoints{0/0/O,2/2/A,2/1/B} + \tkzDrawSector[rotate,orange](O,A)(20) + \tkzDrawSector[rotate,teal](O,B)(-20) \end{tikzpicture} \end{tkzexample} @@ -969,14 +954,15 @@ There's no need to put \tkzname{towards}. You can use \tkzname{fill} as an optio \begin{tikzpicture}[scale=1.25] \tkzDefPoint(0,0){O} \tkzDefPoint(2,-1){A} - \tkzDrawSector[R](O,2)(30,90) - \tkzDrawSector[R](O,2)(90,180) - \tkzDrawSector[R](O,2)(180,270) - \tkzDrawSector[R](O,2)(270,360) + \tkzDrawSector[R](O,1)(30,90) + \tkzDrawSector[R](O,1)(90,180) + \tkzDrawSector[R](O,1)(180,270) + \tkzDrawSector[R](O,1)(270,360) \end{tikzpicture} \end{tkzexample} -\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{R}} +\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{R with nodes}} +In this example I use the option \tkzname{fill} but \tkzcname{tkzFillSector} is possible. \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=1.25] \tkzDefPoint(0,0){O} diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-elements.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-elements.tex index c2ab8f9bf2..ba1dbc6e07 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-elements.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-elements.tex @@ -13,7 +13,7 @@ To get new points you will use macros. \tkzname{\tkznameofpack} macros have a na |\tkzDef...| |\tkzDraw...| |\tkzMark...| and |\tkzLabel...|. The used points are passed as parameters between parentheses while the created points are between braces. -Le code des figures est placés dans un environnement \tkzimp{tikzpicture} +The code of the figures is placed in an environment \tkzimp{tikzpicture} \begin{tkzltxexample}[] \begin{tikzpicture} diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-examples.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-examples.tex index 60ecb19965..2447e1f842 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-examples.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-examples.tex @@ -381,7 +381,7 @@ The three altitudes of a triangle intersect at the same H-point. \tkzInterLC(A,C)(I,B) \tkzGetFirstPoint{B'} \tkzInterLC(A,B)(I,B) - \tkzGetFirstPoint{C'} + \tkzGetSecondPoint{C'} \tkzInterLL(B,B')(C,C') \tkzGetPoint{H} \tkzInterLL(A,H)(C,B) \tkzGetPoint{A'} \tkzDefCircle[circum](A,B',C') \tkzGetPoint{O} @@ -406,7 +406,7 @@ The three altitudes of a triangle intersect at the same H-point. \tkzInterLC[common=A](C,A)(O,A) \tkzGetFirstPoint{M} \tkzInterLC(C,B)(O,A) -\tkzGetFirstPoint{N} +\tkzGetSecondPoint{N} \tkzInterLL(B,M)(A,N)\tkzGetPoint{I} \tkzDrawCircles[diameter](A,B I,C) \tkzDrawSegments(C,A C,B A,B B,M A,N) @@ -909,10 +909,10 @@ Another solution \begin{tikzpicture} \tkzDefPoints{0/0/A,4/2/B,2/3/K} -\tkzDrawCircle[R](A,1)\tkzDrawCircle[R](B,3) +\tkzDrawCircles[R](A,1 B,3) \tkzInterCC[R](A,1)(K,3) \tkzGetPoints{a}{a'} \tkzInterCC[R](B,3)(K,3) \tkzGetPoints{b}{b'} -\tkzInterLL(a,a')(b,b') \tkzGetPoint{X} +\tkzInterLL(a,a')(b,b') \tkzGetPoint{X} \tkzDefPointBy[projection= onto A--B](X) \tkzGetPoint{H} \tkzGetPoint{C} \tkzInterLC[R](A,B)(B,3) \tkzGetPoints{b1}{E} @@ -921,7 +921,7 @@ Another solution \tkzDrawCircle[orange](I,D) \tkzInterLC(X,H)(I,D) \tkzGetPoints{M}{M'} \tkzInterLC(M,D)(A,D) \tkzGetPoints{P}{P'} -\tkzInterLC(M,E)(B,E) \tkzGetPoints{Q}{Q'} +\tkzInterLC(M,E)(B,E) \tkzGetPoints{Q'}{Q} \tkzInterLL(P,Q)(A,B) \tkzGetPoint{O} \tkzDrawSegments[orange](A,P I,M B,Q) \tkzDrawPoints(A,B,D,E,M,I,O,P,Q,X,H) @@ -933,10 +933,10 @@ Another solution \begin{tkzexample}[code only,small] \begin{tikzpicture} \tkzDefPoints{0/0/A,4/2/B,2/3/K} -\tkzDrawCircle[R](A,1)\tkzDrawCircle[R](B,3) +\tkzDrawCircles[R](A,1 B,3) \tkzInterCC[R](A,1)(K,3) \tkzGetPoints{a}{a'} \tkzInterCC[R](B,3)(K,3) \tkzGetPoints{b}{b'} -\tkzInterLL(a,a')(b,b') \tkzGetPoint{X} +\tkzInterLL(a,a')(b,b') \tkzGetPoint{X} \tkzDefPointBy[projection= onto A--B](X) \tkzGetPoint{H} \tkzGetPoint{C} \tkzInterLC[R](A,B)(B,3) \tkzGetPoints{b1}{E} @@ -945,7 +945,7 @@ Another solution \tkzDrawCircle[orange](I,D) \tkzInterLC(X,H)(I,D) \tkzGetPoints{M}{M'} \tkzInterLC(M,D)(A,D) \tkzGetPoints{P}{P'} -\tkzInterLC(M,E)(B,E) \tkzGetPoints{Q}{Q'} +\tkzInterLC(M,E)(B,E) \tkzGetPoints{Q'}{Q} \tkzInterLL(P,Q)(A,B) \tkzGetPoint{O} \tkzDrawSegments[orange](A,P I,M B,Q) \tkzDrawPoints(A,B,D,E,M,I,O,P,Q,X,H) @@ -955,6 +955,56 @@ Another solution \end{tikzpicture} \end{tkzexample} +\newpage +\subsection{Middle of a segment with a compass} + +\begin{tikzpicture} +\node [mybox,title={Tangent lines to two circles with radical axis}] (box){% +\begin{minipage}{0.90\textwidth} + {\emph{This example involves determining the middle of a segment, using only a compass.}} +\end{minipage} +}; +\end{tikzpicture}% + + \begin{tikzpicture} + \tkzDefPoint(0,0){A} + \tkzDefRandPointOn[circle= center A radius 4] \tkzGetPoint{B} + \tkzDefPointBy[rotation= center A angle 180](B) \tkzGetPoint{C} + \tkzInterCC(A,B)(B,A) \tkzGetPoints{I}{I'} + \tkzInterCC(A,I)(I,A) \tkzGetPoints{J}{B} + \tkzInterCC(B,A)(C,B) \tkzGetPoints{D}{E} + \tkzInterCC(D,B)(E,B) \tkzGetPoints{M}{M'} + \tkzSetUpArc[color=orange,style=solid,delta=10] + \tkzDrawArc(C,D)(E) + \tkzDrawArc(B,E)(D) + \tkzDrawCircle[color=teal,line width=.2pt](A,B) + \tkzDrawArc(D,B)(M) + \tkzDrawArc(E,M)(B) + \tkzCompasss[color=orange,style=solid](B,I I,J J,C) + \tkzDrawPoints(A,B,C,D,E,M) + \tkzLabelPoints(A,B,M) + \end{tikzpicture} + + \begin{tkzexample}[code only,small] + \begin{tikzpicture} + \tkzDefPoint(0,0){A} + \tkzDefRandPointOn[circle= center A radius 4] \tkzGetPoint{B} + \tkzDefPointBy[rotation= center A angle 180](B) \tkzGetPoint{C} + \tkzInterCC(A,B)(B,A) \tkzGetPoints{I}{I'} + \tkzInterCC(A,I)(I,A) \tkzGetPoints{J}{B} + \tkzInterCC(B,A)(C,B) \tkzGetPoints{D}{E} + \tkzInterCC(D,B)(E,B) \tkzGetPoints{M}{M'} + \tkzSetUpArc[color=orange,style=solid,delta=10] + \tkzDrawArc(C,D)(E) + \tkzDrawArc(B,E)(D) + \tkzDrawCircle[color=teal,line width=.2pt](A,B) + \tkzDrawArc(D,B)(M) + \tkzDrawArc(E,M)(B) + \tkzCompasss[color=orange,style=solid](B,I I,J J,C) + \tkzDrawPoints(A,B,C,D,E,M) + \tkzLabelPoints(A,B,M) + \end{tikzpicture} + \end{tkzexample} \newpage @@ -992,12 +1042,12 @@ With \pkg{tkz-euclide} is easy to show you the last definition % with K=2 we search some points like I such as IA=2 x IB \tkzDefCircle[apollonius,K=2](A,B) \tkzGetPoint{K1} \tkzGetLength{rAp} -\tkzDefPointOnCircle[angle=30,center=K1,radius=\rAp] +\tkzDefPointOnCircle[R= angle 30 center K1 radius \rAp] \tkzGetPoint{I} -\tkzDefPointOnCircle[angle=280,center=K1,radius=\rAp] +\tkzDefPointOnCircle[R= angle 280 center K1 radius \rAp] \tkzGetPoint{J} \tkzDrawSegments[new](A,I I,B A,J J,B) -\tkzDrawCircle[R,color = teal,fill=MidnightBlue!20,opacity=.4](K1,\rAp pt) +\tkzDrawCircle[R,color = teal,fill=teal!20,opacity=.4](K1,\rAp pt) \tkzDrawPoints(A,B,K1,I,J) \tkzDrawSegment(A,B) \tkzLabelPoints[below,font=\scriptsize](A,B,K1,I,J) @@ -1012,9 +1062,9 @@ With \pkg{tkz-euclide} is easy to show you the last definition \tkzDefPoint(4,0){B} \tkzDefCircle[apollonius,K=2](A,B) \tkzGetPoint{K1} \tkzGetLength{rAp} -\tkzDefPointOnCircle[angle=30,center=K1,radius=\rAp] +\tkzDefPointOnCircle[R = angle 30 center K1 radius \rAp] \tkzGetPoint{I} -\tkzDefPointOnCircle[angle=280,center=K1,radius=\rAp] +\tkzDefPointOnCircle[R = angle 280 center K1 radius \rAp] \tkzGetPoint{J} \tkzDrawSegments[new](A,I I,B A,J J,B) \tkzDrawCircle[R,fill=teal!20,opacity=.4](K1,\rAp pt) @@ -1232,12 +1282,12 @@ The last example is very complex and it is to show you all that we can do with \ \tkzInterLC(A,B)(Q,Cb) \tkzGetFirstPoint{Ba} \tkzInterLC(A,C)(Q,Cb) \tkzGetPoints{Ac}{Ca} \tkzInterLC(B,C')(Q,Cb) \tkzGetFirstPoint{Bc} -\tkzInterLC(Q,Ja)(Q,Cb) \tkzGetSecondPoint{F'a} -\tkzInterLC(Q,Jc)(Q,Cb) \tkzGetSecondPoint{F'c} -\tkzInterLC(Q,Jb)(Q,Cb) \tkzGetSecondPoint{F'b} -\tkzInterLC(Sp,F'a)(Ja,Za) \tkzGetFirstPoint{Fa} -\tkzInterLC(Sp,F'b)(Jb,Yb) \tkzGetFirstPoint{Fb} -\tkzInterLC(Sp,F'c)(Jc,Yc) \tkzGetFirstPoint{Fc} +\tkzInterLC(Ja,Q)(Q,Cb) \tkzGetSecondPoint{F'a} +\tkzInterLC(Jc,Q)(Q,Cb) \tkzGetFirstPoint{F'c} +\tkzInterLC(Jb,Q)(Q,Cb) \tkzGetSecondPoint{F'b} +\tkzInterLC[common=F'a](Sp,F'a)(Ja,F'a) \tkzGetFirstPoint{Fa} +\tkzInterLC[common=F'b](Sp,F'b)(Jb,F'b) \tkzGetFirstPoint{Fb} +\tkzInterLC[common=F'c](Sp,F'c)(Jc,F'c) \tkzGetFirstPoint{Fc} \tkzInterLC(Mc,Sp)(Q,Cb) \tkzGetFirstPoint{A''} \tkzDefLine[parallel=through A''](N,Mc) \tkzGetPoint{q} % Calculations are done, now you can draw, mark and label @@ -1272,7 +1322,7 @@ The last example is very complex and it is to show you all that we can do with \ \end{tkzexample} \subsubsection*{The result} -% + \begin{tikzpicture}[scale=.6] \tkzDefPoints{0/0/A,6/0/B,0.8/4/C} \tkzDefTriangleCenter[euler](A,B,C) \tkzGetPoint{N} @@ -1295,12 +1345,12 @@ The last example is very complex and it is to show you all that we can do with \ \tkzInterLC(A,B)(Q,Cb) \tkzGetFirstPoint{Ba} \tkzInterLC(A,C)(Q,Cb) \tkzGetPoints{Ac}{Ca} \tkzInterLC(B,C')(Q,Cb) \tkzGetFirstPoint{Bc} -\tkzInterLC(Q,Ja)(Q,Cb) \tkzGetSecondPoint{F'a} -\tkzInterLC(Q,Jc)(Q,Cb) \tkzGetSecondPoint{F'c} -\tkzInterLC(Q,Jb)(Q,Cb) \tkzGetSecondPoint{F'b} -\tkzInterLC(Sp,F'a)(Ja,Za) \tkzGetFirstPoint{Fa} -\tkzInterLC(Sp,F'b)(Jb,Yb) \tkzGetFirstPoint{Fb} -\tkzInterLC(Sp,F'c)(Jc,Yc) \tkzGetFirstPoint{Fc} +\tkzInterLC(Ja,Q)(Q,Cb) \tkzGetSecondPoint{F'a} +\tkzInterLC(Jc,Q)(Q,Cb) \tkzGetFirstPoint{F'c} +\tkzInterLC(Jb,Q)(Q,Cb) \tkzGetSecondPoint{F'b} +\tkzInterLC[common=F'a](Sp,F'a)(Ja,F'a) \tkzGetFirstPoint{Fa} +\tkzInterLC[common=F'b](Sp,F'b)(Jb,F'b) \tkzGetFirstPoint{Fb} +\tkzInterLC[common=F'c](Sp,F'c)(Jc,F'c) \tkzGetFirstPoint{Fc} \tkzInterLC(Mc,Sp)(Q,Cb) \tkzGetFirstPoint{A''} \tkzDefLine[parallel=through A''](N,Mc) \tkzGetPoint{q} \tkzDrawPolygon(A,B,C) @@ -1325,6 +1375,7 @@ The last example is very complex and it is to show you all that we can do with \ \tkzLabelPoints[right](C) \tkzLabelPoints[below right](A) \tkzLabelPoints[above right](Yb) +\tkzDrawSegments(Fc,F'c Fb,F'b Fa,F'a) \tkzDrawSegments[color=green!50!black](Mc,N Mc,A'' A'',Q) \tkzDrawSegments[color=red,dashed](Ac,Ab Ca,Cb Ba,Bc Ja,Jc A',Cb C',Ab) \tkzDrawSegments[color=red](Cb,Ab Bc,Ac Ba,Ca A',C') diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-filling.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-filling.tex index c206565b6a..8976e9e7b3 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-filling.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-filling.tex @@ -41,7 +41,7 @@ You don't need to put \tkzname{radius} because that's the default option. Of cou \tkzDefMidPoint(A,D) \tkzGetPoint{F} \tkzDefMidPoint(B,C) \tkzGetPoint{E} \tkzDefMidPoint(B,D) \tkzGetPoint{Q} - \tkzDefTangent[from = B](F,A) \tkzGetPoints{G}{H} + \tkzDefTangent[from = B](F,A) \tkzGetPoints{H}{G} \tkzInterLL(F,G)(C,D) \tkzGetPoint{J} \tkzInterLL(A,J)(F,E) \tkzGetPoint{K} \tkzDefPointBy[projection=onto B--A](K) @@ -129,7 +129,7 @@ You can color by drawing the polygon, but in this case you color the inside of t \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2,\dots}}{\parg{A,B,\dots}}{} %\bottomrule diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex index a8676a2854..e55ac4faf8 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex @@ -1,10 +1,10 @@ -\section{Intersections} +\section{\tkzname{Intersections}} It is possible to determine the coordinates of the points of intersection between two straight lines, a straight line and a circle, and two circles. The associated commands have no optional arguments and the user must determine the existence of the intersection points himself. -\subsection{Intersection of two straight lines} +\subsection{Intersection of two straight lines \tkzcname{tkzInterLL}} \begin{NewMacroBox}{tkzInterLL}{\parg{$A,B$}\parg{$C,D$}}% Defines the intersection point \tkzname{tkzPointResult} of the two lines $(AB)$ and $(CD)$. The known points are given in pairs (two per line) in brackets, and the resulting point can be retrieved with the macro \tkzcname{tkzDefPoint}. \end{NewMacroBox} @@ -25,13 +25,13 @@ Defines the intersection point \tkzname{tkzPointResult} of the two lines $(AB)$ \end{tikzpicture} \end{tkzexample} -\subsection{Intersection of a straight line and a circle} +\subsection{Intersection of a straight line and a circle \tkzcname{tkzInterLC}} As before, the line is defined by a couple of points. The circle is also defined by a couple: \begin{itemize} -\item $(O,C)$ which is a pair of points, the first is the centre and the second is any point on the circle. -\item $(O,r)$ The $r$ measure is the radius measure. The unit can be the \emph{cm} or \emph{pt}. +\item $(O,C)$ which is a pair of points, the first is the center and the second is any point on the circle. +\item $(O,r)$ The $r$ measure is the radius measure. \end{itemize} \begin{NewMacroBox}{tkzInterLC}{\oarg{options}\parg{$A,B$}\parg{$O,C$} or \parg{$O,r$} or \parg{$O,C,D$}}% @@ -42,115 +42,169 @@ So the arguments are two couples. \toprule options & default & definition \\ \midrule -\TOline{N} {N} { (O,C) determines the circle} -\TOline{R} {N} { (O, 1 ) unit 1 cm} -\TOline{with nodes}{N} { (O,C,D) CD is a radius} -\TOline{common} {} { common = pt if pt is common point} +\TOline{N} {N} {(O,C) determines the circle} +\TOline{R} {N} {(O, 1 ) unit 1 cm} +\TOline{with nodes}{N} {(O,C,D) CD is a radius} +\TOline{common=pt} {} {pt is common point; tkzFirstPoint gives the other point} +\TOline{near} {} {tkzFirstPoint is the closest point to the first point of the line} \bottomrule \end{tabular} \medskip -The macro defines the intersection points $I$ and $J$ of the line $(AB)$ and the center circle $O$ with radius $r$ if they exist; otherwise, an error will be reported in the |.log| file. \tkzname{with nodes} vous évite de calculer le rayon qui est la longueur de $[CD]$. +The macro defines the intersection points $I$ and $J$ of the line $(AB)$ and the center circle $O$ with radius $r$ if they exist; otherwise, an error will be reported in the |.log| file. \tkzname{with nodes} avoids you to calculate the radius which is the length of $[CD]$. +If common and near are not used then \tkzname{tkzFirstPoint} is the smallest angle (angle with \tkzname{tkzSecondPoint} and the center of the circle). \end{NewMacroBox} +\begin{NewMacroBox}{tkzTestInterLC}{\parg{$O,A$}\parg{$O',B$}}% +So the arguments are two couples which define a line and a circle with a center and a point on the circle. If there is a non empty intersection between these the line and the circle then the test \tkzcname{iftkzFlagLC} gives true. +\end{NewMacroBox} + +\subsubsection{test line-circle intersection} + +\begin{tkzexample}[latex=7cm,small] + \begin{tikzpicture}[scale=1] + \tkzDefPoints{% x y name + 3 /4 /I, + 3 /2 /P, + 0 /2 /La, + 8 /3 /Lb} + \tkzDrawCircle(I,P) + \foreach \i in {1,...,3}{% + \coordinate (Lb) at (8,\i); + \tkzDrawLine(La,Lb) + \tkzTestInterLC(La,Lb)(I,P) + \iftkzFlagLC + \tkzInterLC(La,Lb)(I,P) + \tkzGetPoints{a}{b} + \tkzDrawPoints(a,b) + \fi + } + \end{tikzpicture} +\end{tkzexample} + + \subsubsection{Line-circle intersection} -In the following example, the drawing of the circle uses two points and the intersection of the straight line and the circle uses two pairs of points: +In the following example, the drawing of the circle uses two points and the intersection of the straight line and the circle uses two pairs of points. We will compare the angles $\widehat{D,E,O}$ and $\widehat{E,D,O}$. These angles are in opposite directions. \tkzname{tkzFirstPoint} is assigned to the point that forms the angle with the smallest measure (counterclockwise direction). The counterclockwide angle $\widehat{D,E,O}$ has a measure equal to $360\circ$ minus the measure of $\widehat{O,E,D}$. \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=.75] \tkzInit[xmax=5,ymax=4] \tkzDefPoint(1,1){O} - \tkzDefPoint(0,4){A} - \tkzDefPoint(5,0){B} + \tkzDefPoint(-2,4){La} + \tkzDefPoint(5,0){Lb} \tkzDefPoint(3,3){C} \tkzInterLC(A,B)(O,C) \tkzGetPoints{D}{E} + \tkzMarkAngle[->,size=1.5](E,D,O) + \tkzDrawPolygons[new](O,D,E) + \tkzMarkAngle[->,size=1.5](D,E,O) \tkzDrawCircle(O,C) - \tkzDrawPoints[color=blue](O,A,B,C) + \tkzDrawPoints[color=teal](O,La,Lb,C) \tkzDrawPoints[color=red](D,E) - \tkzDrawLine(A,B) - \tkzLabelPoints[above right](O,A,B,C,D,E) + \tkzDrawLine(La,Lb) + \tkzLabelPoints[above right](O,La,Lb,C,D,E) \end{tikzpicture} \end{tkzexample} -\subsubsection{Line-circle intersection with common point} +\subsubsection{Line passing through the cente,r option \tkzname{common}} +This case is special. You cannot compare the angles. In this case, the option \tkzname{near} must be used. \tkzname{tkzFirstPoint} is assigned to the point closest to the first point given for the line. Here we want $A$ to be closest to $Lb$. + \begin{tkzexample}[latex=7cm,small] - \begin{tikzpicture}[scale=.5] - \tkzDefPoints{0/0/O,5/1/A,2/2/B} - \tkzInterLC[common=A](B,A)(O,A)\tkzGetFirstPoint{C} - \tkzDrawPoints(O,A,B) - \tkzDrawCircle(O,A) - \tkzDrawLine(A,C) - \tkzDrawPoint(C) - \tkzLabelPoints(A,B,C) - \end{tikzpicture} +\begin{tikzpicture} +\tkzDefPoints{% x y name + 0 /1 /D, + 6 /0 /B, + 3 /3 /O, + 2 /2 /La, + 5 /5 /Lb} + \tkzDrawCircle(O,D) + \tkzDrawLine(La,Lb) + \tkzInterLC[near](Lb,La)(O,D) + \tkzGetFirstPoint{A} + \tkzDrawSegments(O,A) + \tkzDrawPoints(O,D,La,Lb) + \tkzLabelPoints(O,D,La,Lb,a) +\end{tikzpicture} +\end{tkzexample} + +\subsubsection{Line-circle intersection with option \tkzname{common}} +A special case that we often meet, a point of the line is on the circle and we are looking for the other common point. +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture}[scale=.5] + \tkzDefPoints{0/0/O,-5/0/A,2/-2/B,0/5/D} + \tkzInterLC[common=A](B,A)(O,D) + \tkzGetFirstPoint{C} + \tkzDrawPoints(O,A,B) + \tkzDrawCircle(O,A) + \tkzDrawLine(A,C) + \tkzDrawPoint(C) + \tkzLabelPoints(A,B,C) +\end{tikzpicture} \end{tkzexample} \subsubsection{Line-circle intersection order of points} The idea is to compare the angles formed with the first defining point of the line, a resultant point and the center of the circle. The first point is the one that corresponds to the smallest angle. -As you can see $\widehat{BCO} < \widehat{BEO} $ +As you can see $\widehat{BCO} < \widehat{BEO} $. To tell the truth,$ \widehat{BEO}$ is counterclockwise. + +\begin{tkzexample}[latex=6cm,small] +\begin{tikzpicture}[scale=.5] + \tkzDefPoints{0/0/O,5/1/A,2/2/B,3/1/D} + \tkzInterLC[common=A](B,D)(O,A) \tkzGetPoints{C}{E} + \tkzDrawPoints(O,A,B,D) + \tkzDrawCircle(O,A) \tkzDrawLine(E,C) + \tkzDrawSegments[dashed](B,O O,C) + \tkzMarkAngle[->,size=1.5](B,C,O) + \tkzDrawSegments[dashed](O,E) + \tkzMarkAngle[->,size=1.5](B,E,O) + \tkzDrawPoints(C,E) + \tkzLabelPoints[above](O,E) + \tkzLabelPoints[right](A,B,C,D) +\end{tikzpicture} +\end{tkzexample} +\subsubsection{Example with \tkzcname{foreach}} \begin{tkzexample}[latex=7cm,small] - \begin{tikzpicture}[scale=.5] - \tkzDefPoints{0/0/O,5/1/A,2/2/B,3/1/D} - \tkzInterLC[common=A](B,D)(O,A) \tkzGetPoints{C}{E} - \tkzDrawPoints(O,A,B,D) - \tkzDrawCircle(O,A) - \tkzDrawLine(E,C) - \tkzDrawSegments[dashed](B,O O,C) - \tkzMarkAngle[->,size=1.5](B,C,O) - \tkzDrawSegments[dashed](O,E) - \tkzMarkAngle[->,size=1.5](B,E,O) - \tkzDrawPoints(C,E) - \tkzLabelPoints(O,A,B,C,D,E) - \end{tikzpicture} +\begin{tikzpicture}[scale=3,rotate=180] +\tkzDefPoint(0,1){J} +\tkzDefPoint(0,0){O} +\foreach \i in {0,-5,-10,...,-90}{ + \tkzDefPoint({2.5*cos(\i*pi/180)},{1+2.5*sin(\i*pi/180)}){P} + \tkzInterLC[R](P,J)(O,1)\tkzGetPoints{N}{M} + \tkzDrawSegment[color=orange](J,N) + \tkzDrawPoints[red](N)} +\foreach \i in {-90,-95,...,-175,-180}{ + \tkzDefPoint({2.5*cos(\i*pi/180)},{1+2.5*sin(\i*pi/180)}){P} + \tkzInterLC[R](P,J)(O,1)\tkzGetPoints{N}{M} + \tkzDrawSegment[color=orange](J,M) + \tkzDrawPoints[red](M)} +\end{tikzpicture} \end{tkzexample} +\subsubsection{Line-circle intersection with option \tkzname{near}} +$D$ is the point closest to $b$. -\subsubsection{Line-circle intersection in Sangaku} \begin{tkzexample}[vbox,small] - \begin{tikzpicture}[scale=1] - \def\ORadius{6} - \def\OORadius{4} - \pgfmathparse{(2*(\ORadius-\OORadius))/(\ORadius/\OORadius+1)}% - \let\OOORadius\pgfmathresult% - \pgfmathparse{\ORadius-\OOORadius}% - \let\OOOORadius\pgfmathresult% - \pgfmathparse{2*\OORadius-\ORadius}% - \let\XA\pgfmathresult% - \tkzDefPoint["$O$" below left](0,0){O} - \ifdim\XA pt = 0pt\relax% - \tkzDefPoint["$A$" below right](\XA,0){A} - \else - \tkzDefPoint["$A$" below left](\XA,0){A} - \fi - \tkzDefPoint["$D$" below right](\OORadius,0){D} - \tkzDefPoint["$X$" below left](-\ORadius,0){X} - \tkzDefPoint["$B$" below right](\ORadius,0){B} - \tkzDefPoint["$O_2$" below left](\OORadius-\ORadius,0){O2} - \tkzDefLine[mediator](A,B) \tkzGetPoints{mr}{ml} - \tkzInterLC[R](D,mr)(O,\ORadius) \tkzGetPoints{E}{C} - \tkzDefLine[orthogonal=through A](X,A) \tkzGetPoint{pr} - \ifdim\XA pt < 0 pt\relax - \tkzInterLC[R](A,pr)(O,\OOOORadius) \tkzGetPoints{O3}{O4} - \else - \ifdim\XA pt = 0pt\relax - \tkzInterLC[R](A,pr)(O,\OOOORadius) \tkzGetPoints{O3}{O4} - \else - \tkzInterLC[R](A,pr)(O,\OOOORadius) \tkzGetPoints{O4}{O3} - \fi - \fi - \tkzDefPointBy[projection=onto A--C](O3) \tkzGetPoint{H} - \tkzDrawCircles[R](O,{\ORadius} O2,{\OORadius} O3,{\OOORadius}) - \tkzDrawSegments[dashed](O,O3 C,D O3,A O3,H) - \tkzDrawSegments(X,B A,C B,C) - \tkzMarkSegments[mark=s|](D,B D,A) - \tkzLabelPoints[right](O3,H) - \tkzLabelPoint[above right](C){$C$} - \tkzMarkRightAngles[fill=gray!30](X,D,C X,A,O3 A,H,O3) - \tkzDrawPoints(A,B,C,D,X,O,O2,O3,H) + \begin{tikzpicture} + \tkzDefPoints{0/0/A,12/0/C} + \tkzDefGoldenRatio(A,C) \tkzGetPoint{B} + \tkzDefMidPoint(A,C) \tkzGetPoint{O} + \tkzDefMidPoint(A,B) \tkzGetPoint{O_1} + \tkzDefMidPoint(B,C) \tkzGetPoint{O_2} + \tkzDefPointBy[rotation=center O_2 angle 90](C) \tkzGetPoint{P} + \tkzDefPointBy[rotation=center O_1 angle 90](B) \tkzGetPoint{Q} + \tkzDefPointBy[rotation=center B angle 90](C) \tkzGetPoint{b} + \tkzInterLC[near](b,B)(O,A) \tkzGetFirstPoint{D} + \tkzInterCC(D,B)(O,C) \tkzGetPoints{V}{U} + \tkzDefPointBy[projection=onto U--V](O_1) \tkzGetPoint{M} + \tkzDefPointBy[projection=onto U--V](O_2) \tkzGetPoint{N} + \tkzDrawPoints(A,B,C,O,O_1,O_2,D,U,V,M,N,b) + \tkzDrawSemiCircles[teal](O,C O_1,B O_2,C) + \tkzDrawSegments(A,C B,D U,V A,D C,D M,B B,N) + \tkzDrawArc(D,U)(V) + \tkzLabelPoints(A,B,C,O,O_1,O_2) + \tkzLabelPoints[above](D,U,V,M,N) \end{tikzpicture} \end{tkzexample} @@ -160,25 +214,21 @@ Figure from \url{http://gogeometry.com/problem/p190_tangent_circle} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=.75] - \tkzDefPoint(0,0){A} - \tkzDefPoint(8,0){B} - \tkzDefMidPoint(A,B) - \tkzGetPoint{O} - \tkzDefMidPoint(O,B) - \tkzGetPoint{O'} - \tkzDefTangent[from=A](O',B) - \tkzGetSecondPoint{E} - \tkzInterLC(A,E)(O,B) - \tkzGetSecondPoint{D} - \tkzDefPointBy[projection=onto A--B](D) - \tkzGetPoint{F} - \tkzDrawCircles(O,B O',B) - \tkzDrawSegments(A,D A,B D,F) - \tkzDrawSegments[color=red,line width=1pt, - opacity=.4](A,O F,B) - \tkzDrawPoints(A,B,O,O',E,D) - \tkzMarkRightAngle(D,F,B) - \tkzLabelPoints(A,B,O,O',E,D) + \tkzDefPoint(0,0){A} + \tkzDefPoint(8,0){B} + \tkzDefMidPoint(A,B) \tkzGetPoint{O} + \tkzDefMidPoint(O,B) \tkzGetPoint{O'} + \tkzDefTangent[from=A](O',B) \tkzGetFirstPoint{E} + \tkzInterLC(A,E)(O,B) \tkzGetFirstPoint{D} + \tkzDefPointBy[projection=onto A--B](D) + \tkzGetPoint{F} + \tkzDrawCircles(O,B O',B) + \tkzDrawSegments(A,D A,B D,F) + \tkzDrawSegments[color=red,line width=1pt, + opacity=.4](A,O F,B) + \tkzDrawPoints(A,B,O,O',E,D) + \tkzMarkRightAngle(D,F,B) + \tkzLabelPoints(A,B,O,O',E,D) \end{tikzpicture} \end{tkzexample} @@ -187,54 +237,34 @@ Let's look at some special cases like straight lines tangent to the circle. \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=.5] - \tkzDefPoint(0,8){A} \tkzDefPoint(8,0){B} - \tkzDefPoint(8,8){C} \tkzDefPoint(4,4){I} - \tkzDefPoint(2,7){E} \tkzDefPoint(6,4){F} - \tkzInterLC[R](A,C)(I,4) \tkzGetPoints{I1}{I2} - \tkzInterLC[R](B,C)(I,4) \tkzGetPoints{J1}{J2} - \tkzInterLC[R](A,B)(I,4) \tkzGetPoints{K1}{K2} - \tkzInterLC[R](E,F)(I,4) \tkzGetPoints{I2}{J2} - \tkzDrawCircle[R](I,4) - \tkzDrawPoints[color=red](I1,J1,K1,K2) - \tkzDrawLines(A,B B,C A,C I2,J2) - \tkzDrawPoints[color=blue](E,F) - \tkzDrawPoints[color=red](I2,J2) + \tkzDefPoint(0,8){A} \tkzDefPoint(8,0){B} + \tkzDefPoint(8,8){C} \tkzDefPoint(4,4){D} + \tkzDefPoint(2,4){E} \tkzDefPoint(4,2){F} + \tkzDefPoint(8,4){G} + \tkzInterLC(A,C)(D,G) \tkzGetPoints{I1}{I2} + \tkzInterLC(B,C)(D,G) \tkzGetPoints{J1}{J2} + \tkzInterLC[near](A,B)(D,G) \tkzGetPoints{K1}{K2} + \tkzInterLC(E,F)(D,G) \tkzGetPoints{E1}{E2} + \tkzDrawCircle(D,G) + \tkzDrawPoints[color=red](I1,J1,K1,K2,E1,E2) + \tkzDrawLines(A,B B,C A,C I2,J2 E1,E2) + \tkzDrawPoints[color=blue](A,...,F) + \tkzDrawPoints[color=red](I2,J2) + \tkzLabelPoints[left](B,D,E,F) + \tkzLabelPoints[below left](A,C) + \tkzLabelPoints[below=4pt](I1,K1,K2,E2) + \tkzLabelPoints[left](J1,E1) \end{tikzpicture} -\end{tkzexample} - -\subsubsection{More complex example} -\tkzHandBomb\ Be careful with the syntax. First of all, calculations for the points can be done during the passage of the arguments, but the syntax of \tkzname{xfp} must be respected. You can see that I use the term \tkzname{pi} because \NamePack{xfp} can work with radians. You can also work with degrees but in this case, you need to use specific commands like |sind| or |cosd|. Furthermore, when calculations require the use of parentheses, they must be inserted in a group... \TEX \{ \dots \}. -\begin{tkzexample}[latex=7cm,small] -\begin{tikzpicture}[scale=1.25] -\tkzDefPoint(0,1){J} -\tkzDefPoint(0,0){O} -\tkzDrawArc[R,line width=1pt,color=red](J,2.5)(180,0) -\foreach \i in {0,-5,-10,...,-85,-90}{ - \tkzDefPoint({2.5*cosd(\i)},{1+2.5*sind(\i)}){P} - \tkzDrawSegment[color=orange](J,P) - \tkzInterLC[R](P,J)(O,1) - \tkzGetPoints{M}{N} - \tkzDrawPoints[red](N) - } -\foreach \i in {-90,-95,...,-175,-180}{ - \tkzDefPoint({2.5*cosd(\i)},{1+2.5*sind(\i)}){P} - \tkzDrawSegment[color=orange](J,P) - \tkzInterLC[R](P,J)(O,1) - \tkzGetPoints{M}{N} - \tkzDrawPoints[red](M) - } -\end{tikzpicture} \end{tkzexample} -\subsubsection{Calculation of radius example 1} +\subsubsection{Calculation of radius} With \tkzname{pgfmath} and \tkzcname{pgfmathsetmacro} The radius measurement may be the result of a calculation that is not done within the intersection macro, but before. A length can be calculated in several ways. It is possible of course, - to use the module \tkzname{pgfmath} and the macro \tkzcname{pgfmathsetmacro}. In some cases, the results obtained are not precise enough, so the following calculation $0.0002 \div 0.0001$ gives $1.98$ with pgfmath while xfp will give $2$. + to use the module \tkzname{pgfmath} and the macro \tkzcname{pgfmathsetmacro}. In some cases, the results obtained are not precise enough, so the following calculation $0.0002 \div 0.0001$ gives $1.98$ with pgfmath while xfp will give $2$. -\subsubsection{Calculation of radius example 2} With \tkzname{xfp} and \tkzcname{fpeval}: \begin{tkzexample}[latex=7cm,small] @@ -269,7 +299,7 @@ With \tkzname{xfp} and \tkzcname{fpeval}: \end{tikzpicture} \end{tkzexample} -\subsection{Intersection of two circles} +\subsection{Intersection of two circles \tkzcname{tkzInterCC}} The most frequent case is that of two circles defined by their center and a point, but as before the option \tkzname{R} allows to use the radius measurements. @@ -277,18 +307,43 @@ The most frequent case is that of two circles defined by their center and a poin \begin{tabular}{lll}% options & default & definition \\ \midrule -\TOline{N} {N} {$OA$ and $O'A'$ are radii, $O$ and $O'$ are the centres} -\TOline{R} {N} {$r$ and $r'$ are dimensions and measure the radii} -\TOline{with nodes} {N} { in (A,A,C)(C,B,F) AC and BF give the radii. } +\TOline{N} {N} {$OA$ and $O'A'$ are radii, $O$ and $O'$ are the centers.} +\TOline{R} {N} {$r$ and $r'$ are dimensions and measure the radii.} +\TOline{with nodes} {N} {in (A,A,C)(C,B,F) AC and BF give the radii. } +\TOline{common=pt} {} {pt is common point; tkzFirstPoint gives the other point.} \bottomrule \end{tabular} \medskip -This macro defines the intersection point(s) $I$ and $J$ of the two center circles $O$ and $O'$. If the two circles do not have a common point then the macro ends with an error that is not handled. \\ -It is also possible to use directly \tkzcname{tkzInterCCN} and \tkzcname{tkzInterCCR}. +This macro defines the intersection point(s) $I$ and $J$ of the two center circles $O$ and $O'$. If the two circles do not have a common point then the macro ends with an error that is not handled. If the centers are $O$ and $O'$ and the intersections are $A$ and $B$ then the angles $\widehat{O,A,O'}$ and $\widehat{O,B,O'}$ are in opposite directions. \tkzname{tkzFirstPoint} is assigned to the point that forms the "clockwise" angle. +\end{NewMacroBox} + +\begin{NewMacroBox}{tkzTestInterCC}{\parg{$O,A$}\parg{$O',B$}}% +So the arguments are two couples which define two circles with a center and a point on the circle. If there is a non empty intersection between these two circles then the test \tkzcname{iftkzFlagCC} gives true. \end{NewMacroBox} -\subsubsection{circle-circle intersection with common point.} +\subsubsection{test circle-circle intersection} + +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture}[scale=1] + \tkzDefPoints{% x y name + 0 /0 /A, + 2 /0 /B, + 4 /0 /I, + 1 /0 /P} +\tkzDrawCircle(A,B) +\foreach \i in {1,...,3}{% + \coordinate (P) at (\i,0); +\tkzDrawCircle[new](I,P) + \tkzTestInterCC(A,B)(I,P) + \iftkzFlagCC + \tkzInterCC(A,B)(I,P) \tkzGetPoints{a}{b} + \tkzDrawPoints(a,b) + \fi} + \end{tikzpicture} +\end{tkzexample} + +\subsubsection{circle-circle intersection with \tkzname{common} point.} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=.5] @@ -297,7 +352,7 @@ It is also possible to use directly \tkzcname{tkzInterCCN} and \tkzcname{tkzInte \tkzDrawCircles(O,B A,B) \tkzInterCC[common=B](O,B)(A,B)\tkzGetFirstPoint{C} \tkzDrawPoint(C) - \tkzLabelPoints(O,A,B,C) + \tkzLabelPoints[above](O,A,B,C) \end{tikzpicture} \end{tkzexample} @@ -308,22 +363,28 @@ As you can see $\widehat{ODB} < \widehat{OBE} $ \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=.5] + \pgfkeys{/pgf/number format/.cd,fixed relative,precision=4} \tkzDefPoints{0/0/O,5/-1/A,2/2/B,2/-1/C} \tkzDrawPoints(O,A,B) \tkzDrawCircles(O,A B,C) \tkzInterCC(O,A)(B,C)\tkzGetPoints{D}{E} \tkzDrawPoints(C,D,E) \tkzLabelPoints(O,A,B,C,D,E) - \tkzDrawSegments[dashed](D,O D,B) - \tkzMarkAngle[->,size=1.5](O,D,B) - \tkzDrawSegments[dashed](E,O E,B) - \tkzMarkAngle[->,size=1.5](O,E,B) + \tkzDrawSegments[cyan](D,O D,B) + \tkzMarkAngle[red,->,size=1.5](O,D,B) + \tkzFindAngle(O,D,B) \tkzGetAngle{an} + \tkzLabelAngle(O,D,B){$ \pgfmathprintnumber{\an}$} + \tkzDrawSegments[cyan](E,O E,B) + \tkzMarkAngle[red,->,size=1.5](O,E,B) + \tkzFindAngle(O,E,B) \tkzGetAngle{an} + \tkzLabelAngle(O,E,B){$ \pgfmathprintnumber{\an}$} \end{tikzpicture} \end{tkzexample} \subsubsection{Construction of an equilateral triangle.} +$\widehat{A,C,B}$ is a clockwise angle \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[trim left=-1cm,scale=.5] \tkzDefPoint(1,1){A} @@ -340,67 +401,33 @@ As you can see $\widehat{ODB} < \widehat{OBE} $ \end{tikzpicture} \end{tkzexample} -\subsubsection{Example a mediator.} -\begin{tkzexample}[latex=7cm,small] -\begin{tikzpicture}[scale=.5] - \tkzDefPoint(0,0){A} - \tkzDefPoint(2,2){B} - \tkzInterCC(B,A)(A,B)\tkzGetPoints{M}{N} - \tkzDrawCircles[color=teal](A,B B,A) - \tkzDrawCircle[color=teal](A,B) - \tkzDrawPoints(M,N) - \tkzDrawLine[new](M,N) -\end{tikzpicture} -\end{tkzexample} - -\subsubsection{An isosceles triangle.} -\begin{tkzexample}[latex=7cm,small] -\begin{tikzpicture}[rotate=120,scale=.75] - \tkzDefPoint(1,2){A} - \tkzDefPoint(4,0){B} - \tkzInterCC[R](A,4)(B,4) - \tkzGetPoints{C}{D} - \tkzDrawCircles[R,dashed](A,4 B,4) - \tkzCompass[new](A,C) - \tkzCompass[new](B,C) - \tkzDrawPolygon(A,B,C) - \tkzDrawPoints(A,B,C) - \tkzMarkSegments[mark=s|](A,C B,C) - \tkzLabelPoints[](A,B) - \tkzLabelPoint[above](C){$C$} -\end{tikzpicture} -\end{tkzexample} - \subsubsection{Segment trisection} The idea here is to divide a segment with a ruler and a compass into three segments of equal length. \begin{tkzexample}[latex=7cm,small] -\begin{tikzpicture}[scale=.5] +\begin{tikzpicture}[scale=.6] \tkzDefPoint(0,0){A} \tkzDefPoint(3,2){B} - \tkzInterCC(A,B)(B,A) \tkzGetPoints{C}{D} - \tkzInterCC(D,B)(B,A) \tkzGetPoints{A}{E} - \tkzInterCC(D,B)(A,B) \tkzGetPoints{F}{B} - \tkzInterLC(E,F)(F,A) \tkzGetPoints{D}{G} - \tkzInterLL(A,G)(B,E) \tkzGetPoint{O} - \tkzInterLL(O,D)(A,B) \tkzGetPoint{J} - \tkzInterLL(O,F)(A,B) \tkzGetPoint{I} - \tkzDrawCircles(D,A A,B B,A F,A) - \tkzDrawSegments[new](O,G - O,B O,D O,F) - \tkzDrawPoints(A,B,D,E,F,G,I,J) - \tkzLabelPoints(A,B,D,E,F,G,I,J) - \tkzDrawSegments(A,B B,D A,D% - A,F F,G E,G B,E) - \tkzMarkSegments[mark=s|](A,I I,J J,B) + \tkzInterCC(A,B)(B,A) \tkzGetSecondPoint{D} + \tkzInterCC(D,B)(B,A) \tkzGetPoints{A}{C} + \tkzInterCC(D,B)(A,B) \tkzGetPoints{E}{B} + \tkzInterLC[common=D](C,D)(E,D) \tkzGetFirstPoint{F} + \tkzInterLL(A,F)(B,C) \tkzGetPoint{O} + \tkzInterLL(O,D)(A,B) \tkzGetPoint{H} + \tkzInterLL(O,E)(A,B) \tkzGetPoint{G} + \tkzDrawCircles(D,E A,B B,A E,A) + \tkzDrawSegments[](O,F O,B O,D O,E) + \tkzDrawPoints(A,...,H) + \tkzDrawSegments(A,B B,D A,D A,E E,F C,F B,C) + \tkzMarkSegments[mark=s|](A,G G,H H,B) \end{tikzpicture} \end{tkzexample} \subsubsection{With the option "\tkzimp{with nodes}"} \begin{tkzexample}[latex=6cm,small] \begin{tikzpicture}[scale=.5] - \tkzDefPoints{0/0/a,0/5/B,5/0/C} + \tkzDefPoints{0/0/A,0/5/B,5/0/C} \tkzDefPoint(54:5){F} \tkzInterCC[with nodes](A,A,C)(C,B,F) \tkzGetPoints{a}{e} @@ -435,39 +462,37 @@ As you can see $\widehat{ODB} < \widehat{OBE} $ \tkzDrawSegments(C,L) \tkzDrawPoints(A,B,C,D,E,M1,M2,M3,O,L) \tkzDrawSegments(O,E) - \tkzDrawSegments[dashed](C,A D,B) + \tkzDrawSegments[new](C,A D,B) \tkzDrawPoint(O) - \tkzDrawCircles[dashed](M3,D B,M2 D,O) + \tkzDrawCircles[new](M3,D B,M2 D,O) \tkzDrawCircle(O,A) \tkzLabelPoints(A,B,C,D,E,M1,M2,M3,O,L) \end{tikzpicture} \end{tkzexample} -\subsubsection{An oval} -\begin{tkzexample}[latex=7cm,small] - \begin{tikzpicture}[scale=0.4] - \tkzDefPoint(-4,0){I} - \tkzDefPoint(4,0){J} - \tkzDefPoint(0,0){O} - \tkzInterCC(J,O)(O,J) \tkzGetPoints{L}{H} - \tkzInterCC(I,O)(O,I) \tkzGetPoints{K}{G} - \tkzInterLL(I,K)(J,H) \tkzGetPoint{M} - \tkzInterLL(I,G)(J,L) \tkzGetPoint{N} - \tkzDefPointsBy[symmetry=center J](L,H){D,E} - \tkzDefPointsBy[symmetry=center I](G,K){C,F} - \begin{scope}[line style/.style = {very thin,teal}] - \tkzDrawLines[add=1.5 and 1.5](I,K I,G J,H J,L) - \tkzDrawLines[add=.5 and .5](I,J) - \tkzDrawPoints(H,L,K,G,I,J,D,E,C,F,M,N) - \tkzDrawCircles[R](O,4 I,4 J,4) - \tkzDrawArc(N,D)(C) - \tkzDrawArc(M,F)(E) - \tkzDrawArc(J,E)(D) - \tkzDrawArc(I,C)(F) - \end{scope} - \tkzLabelPoints(H,L,K,G,I,J,D,E,C,F,M,N) - \end{tikzpicture} +\subsubsection{Altshiller-Court's theorem} + The two lines joining the points of intersection of two orthogonal circles to a point on one of the circles met the other circle in two diametricaly oposite points. Altshiller p 176 + + +\begin{tkzexample}[vbox,small] +\begin{tikzpicture} + \tkzDefPoints{0/0/P,5/0/Q,3/2/I} + \tkzDefCircleBy[orthogonal from=P](Q,I) + \tkzGetFirstPoint{E} + \tkzDrawCircles(P,E Q,E) + \tkzInterCC[common=E](P,E)(Q,E) \tkzGetFirstPoint{F} + \tkzDefPointOnCircle[through = angle 80 center P point E] + \tkzGetPoint{A} + \tkzInterLC[common=E](A,E)(Q,E) \tkzGetFirstPoint{C} + \tkzInterLL(A,F)(C,Q) \tkzGetPoint{D} + \tkzDrawLines[add=0 and 1](P,Q) + \tkzDrawLines[add=0 and 2](A,E) + \tkzDrawSegments(P,E E,F F,C A,F C,D) + \tkzDrawPoints(P,Q,E,F,A,C,D) + \tkzLabelPoints(P,Q,E,F,A,C,D) +\end{tikzpicture} \end{tkzexample} + \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-labelling.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-labelling.tex index 9553e4d996..b7bbbeb5b7 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-labelling.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-labelling.tex @@ -84,46 +84,23 @@ arguments & example & result \\ \end{tabular} \end{NewMacroBox} -\subsubsection{Example with \tkzcname{tkzAutoLabelPoints}} +\subsubsection{Label for points with \tkzcname{tkzAutoLabelPoints}} Here the points are positioned relative to the center of gravity of $A,B,C \text{ and } O$. -\begin{tkzexample}[latex=5cm,small] -\begin{tikzpicture}[scale=1.25] - \tkzDefPoint(2,1){O} - \tkzDefRandPointOn[circle=center O radius 1.5] - \tkzGetPoint{A} - \tkzDrawCircle(O,A) - \tkzDefPointBy[rotation=center O angle 100](A) - \tkzGetPoint{C} - \tkzDefPointBy[rotation=center O angle 78](A) - \tkzGetPoint{B} - \tkzDrawPoints(O,A,B,C) - \tkzDrawSegments(C,B B,A A,O O,C) - \tkzDefCentroid(A,B,C,O) - \tkzDrawPoint(tkzPointResult) - \tkzAutoLabelPoints[center=tkzPointResult, - dist=.3,red](O,A,B,C) -\end{tikzpicture} -\end{tkzexample} - -\subsubsection{Example with \tkzcname{tkzAutoLabelPoints}} -This time the reference is $O$ and the distance is by default $0.15$. -\begin{tkzexample}[latex=5cm,small] -\begin{tikzpicture}[scale=1.25] +\begin{tkzexample}[latex=4cm,small] +\begin{tikzpicture}[scale=1] \tkzDefPoint(2,1){O} - \tkzDefRandPointOn[circle=center O radius 1.5] - \tkzGetPoint{A} + \tkzDefRandPointOn[circle=center O radius 1.5]\tkzGetPoint{A} + \tkzDefPointBy[rotation=center O angle 100](A)\tkzGetPoint{C} + \tkzDefPointBy[rotation=center O angle 78](A)\tkzGetPoint{B} \tkzDrawCircle(O,A) - \tkzDefPointBy[rotation=center O angle 100](A) - \tkzGetPoint{C} - \tkzDefPointBy[rotation=center O angle 78](A) - \tkzGetPoint{B} \tkzDrawPoints(O,A,B,C) \tkzDrawSegments(C,B B,A A,O O,C) - \tkzAutoLabelPoints[center=O,red](A,B,C) + \tkzDefCentroid(A,B,C,O) + \tkzDrawPoint(tkzPointResult) + \tkzAutoLabelPoints[center=tkzPointResult, dist=.3,red](O,A,B,C) \end{tikzpicture} \end{tkzexample} - \section{Label for a segment} \hypertarget{tls}{} \begin{NewMacroBox}{tkzLabelSegment}{\oarg{local options}\parg{pt1,pt2}\marg{label}} @@ -381,24 +358,6 @@ You don't need to put \tkzname{radius} because that's the default option. We can \end{tikzpicture} \end{tkzexample} -\subsubsection{Second example} - -\begin{tkzexample}[latex=7cm,small] -\begin{tikzpicture}[scale=.5] - \tkzDefPoints{2/3/A,5/-1/B} - \tkzDefPoint[label=below:$\mathcal{C}$, - shift={(2,3)}](-30:5.5){E} - \begin{scope}[shift=(A)] - \tkzDefPoint(30:5){C} - \end{scope} - \tkzDrawCircle(A,B) - \tkzDrawSegment(A,B) - \tkzDrawPoints(A,B,C) - \tkzLabelPoints[right](B,C) - \tkzLabelPoints[above](A) -\end{tikzpicture} -\end{tkzexample} - \section{Label for an arc} \hypertarget{tls}{} \begin{NewMacroBox}{tkzLabelArc}{\oarg{local options}\parg{pt1,pt2,pt3}\marg{label}} diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex index 923a5b462e..d7e852340e 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex @@ -1,4 +1,4 @@ -\section{The straight lines} +\section{Straight lines} It is of course essential to draw straight lines, but before this can be done, it is necessary to be able to define certain particular lines such as mediators, bisectors, parallels or even perpendiculars. The principle is to determine two points on the straight line. @@ -12,7 +12,7 @@ I used the term "mediator" to designate the perpendicular bisector line at the m \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2}}{\parg{A,B}} {[mediator](A,B)} \TAline{\parg{pt1,pt2,pt3}}{\parg{A,B,C}} {[bisector](B,A,C)} @@ -40,7 +40,7 @@ options & default & definition \\ \tkzDefLine[mediator](A,B) \tkzGetPoints{C}{D} \tkzDefPointWith[linear,K=.75](C,D) \tkzGetPoint{D} \tkzDefMidPoint(A,B) \tkzGetPoint{I} - \tkzFillPolygon[color=teal!30](A,C,B,D) + \tkzFillPolygon[color=teal!20](A,C,B,D) \tkzDrawSegments(A,B C,D) \tkzMarkRightAngle(B,I,C) \tkzDrawSegments(D,B D,A) @@ -123,7 +123,7 @@ The parameter in brackets is the center of the circle or the center of the circl \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2 or \parg{pt1,dim}} }{\parg{A,B} or \parg{A,2cm}} {$[AB]$ is radius $A$ is the center} \bottomrule @@ -139,7 +139,7 @@ options & default & definition \\ \bottomrule \end{tabular} -The tangent is not drawn. A second point of the tangent is given by \tkzname{tkzPointResult}. +The tangent is not drawn. With option \tkzname{at}, a point of the tangent is given by \tkzname{tkzPointResult}. With option \tkzname{from} you get two points of the circle with \tkzname{tkzFirstPointResult} and \tkzname{tkzSecondPointResult}. You can choose between these two points by comparing the angles formed with the outer point, the contact point and the center. The two possible angles have different directions. Angle counterclockwise refers to \tkzname{tkzFirstPointResult}. \end{NewMacroBox} \subsubsection{Example of a tangent passing through a point on the circle } @@ -158,36 +158,59 @@ The tangent is not drawn. A second point of the tangent is given by \tkzname{tkz \end{tikzpicture} \end{tkzexample} -\subsubsection{Example of tangents passing through an external point } +\subsubsection{Choice of contact point with tangents passing through an external point} \begin{tkzexample}[latex=7cm,small] -\begin{tikzpicture}[scale=.8] - \tkzDefPoint(3,3){c} - \tkzDefPoint(6,3){a0} - \pgfmathsetmacro\R{1} - \tkzDrawCircle[R](c,\R) - \foreach \an in {0,10,...,350}{ - \tkzDefPointBy[rotation=center c angle \an](a0) - \tkzGetPoint{a} - \tkzDefTangent[from with R = a](c,\R) - \tkzGetPoints{e}{f} - \tkzDrawLines[color=teal](a,f a,e) - \tkzDrawSegments(c,e c,f) - }% +\begin{tikzpicture}[scale=1,rotate=-30] +\tkzDefPoints{ %x y name + 0 /0 /Q, + 0 /2 /A, + 6 /-1 /O} +\tkzDefTangent[from = O](Q,A) \tkzGetPoints{R}{S} +\tkzInterLC[near](O,Q)(Q,A) \tkzGetPoints{M}{N} +\tkzDrawCircle(Q,M) +\tkzDrawSegments[new,add = 0 and .2](O,R O,S) +\tkzDrawSegments[gray](N,O R,Q S,Q) +\tkzDrawPoints(O,Q,R,S,M,N) +\tkzMarkAngle[gray,-stealth,size=1](O,R,Q) +\tkzFindAngle(O,R,Q) \tkzGetAngle{an} +\tkzLabelAngle(O,R,Q){$\pgfmathprintnumber{\an}^\circ$} +\tkzMarkAngle[gray,-stealth,size=1](O,S,Q) +\tkzFindAngle(O,S,Q) \tkzGetAngle{an} +\tkzLabelAngle(O,S,Q){$\pgfmathprintnumber{\an}^\circ$} +\tkzLabelPoints(Q,O,M,N,R) +\tkzLabelPoints[above,text=red](S) \end{tikzpicture} \end{tkzexample} + + + +\subsubsection{Example of tangents passing through an external point } +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture}[scale=.8] +\tkzDefPoints{0/0/c,1/0/d,3/0/a0} +\def\tkzRadius{1} +\tkzDrawCircle(c,d) + \foreach \an in {0,10,...,350}{ + \tkzDefPointBy[rotation=center c angle \an](a0) + \tkzGetPoint{a} + \tkzDefTangent[from = a](c,d) + \tkzGetPoints{e}{f} + \tkzDrawLines(a,f a,e) + \tkzDrawSegments(c,e c,f)} +\end{tikzpicture} +\end{tkzexample} + \subsubsection{Example of Andrew Mertz} \begin{tkzexample}[latex=6cm,small] \begin{tikzpicture}[scale=.5] \tkzDefPoint(100:8){A}\tkzDefPoint(50:8){B} - \tkzDefPoint(0,0){C} \tkzDefPoint(0,4){R} + \tkzDefPoint(0,0){C} \tkzDefPoint(0,-4){R} \tkzDrawCircle(C,R) \tkzDefTangent[from = A](C,R) \tkzGetPoints{D}{E} \tkzDefTangent[from = B](C,R) \tkzGetPoints{F}{G} - \tkzDrawSector[fill=teal!20,opacity=0.5](A,D)(E) - \tkzFillSector[color=teal,opacity=0.5](B,F)(G) - \tkzInterCC(A,D)(B,F) \tkzGetSecondPoint{I} - \tkzDrawPoint[color=black](I) + \tkzDrawSector[fill=teal!20,opacity=0.5](A,E)(D) + \tkzFillSector[color=teal,opacity=0.5](B,G)(F) \end{tikzpicture} \end{tkzexample} \url{http://www.texample.net/tikz/examples/} @@ -208,7 +231,7 @@ The tangent is not drawn. A second point of the tangent is given by \tkzname{tkz \tkzDrawCircle[fill = orange](B,A) \tkzDrawCircle[fill = purple](E,B) \tkzDefTangent[from=B](F,A) - \tkzInterLL(F,tkzFirstPointResult)(C,D) + \tkzInterLL(F,tkzSecondPointResult)(C,D) \tkzInterLL(A,tkzPointResult)(F,E) \tkzDrawCircle[fill = yellow](tkzPointResult,Q) \tkzDefPointBy[projection= onto B--A](tkzPointResult) diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex index e02856ecd3..1d59e074f4 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex @@ -18,15 +18,15 @@ index = totoc, twoside, headings = small, - %cadre + cadre ]{tkz-doc} %\usepackage{etoc} \gdef\tkznameofpack{tkz-euclide} -\gdef\tkzversionofpack{4.03} -\gdef\tkzdateofpack{2022/01/20} +\gdef\tkzversionofpack{4.05b} +\gdef\tkzdateofpack{2022/02/07} \gdef\tkznameofdoc{doc-tkz-euclide} -\gdef\tkzversionofdoc{4.03} -\gdef\tkzdateofdoc{2022/01/20} +\gdef\tkzversionofdoc{4.05b} +\gdef\tkzdateofdoc{2022/02/07} \gdef\tkzauthorofpack{Alain Matthes} \gdef\tkzadressofauthor{} \gdef\tkznamecollection{AlterMundus} @@ -115,14 +115,6 @@ % } %<---------------------------------------------------------------------------> \AtBeginDocument{\MakeShortVerb{\|}} % link to shortvrb -% settings -\tkzSetUpColors[background=white,text=black] -\tkzSetUpCompass[color=orange, line width=.4pt,delta=10] -\tkzSetUpArc[color=gray,line width=.4pt] -\tkzSetUpPoint[size=2,color=teal] -\tkzSetUpLine[line width=.4pt,color=teal] -\tkzSetUpStyle[orange]{new} -\tikzset{every picture/.style={line width=.4pt}} \makeatletter % We need to save the node % Every append after command might be useful to have this code @@ -152,10 +144,29 @@ \hfuzz1pc % Don't bother to report overfull boxes if overage is < 1pc \newcommand{\pkg}[1]{{\protect\ntt#1}} + +% settings +\tkzSetUpColors[background=white,text=black] +\tkzSetUpCompass[color=orange, line width=.4pt,delta=10] +\tkzSetUpArc[color=gray,line width=.4pt] +\tkzSetUpPoint[size=2,color=teal] +\tkzSetUpLine[line width=.4pt,color=teal] +\tkzSetUpStyle[color=orange,ultra thin]{new} +\tikzset{every picture/.style={line width=.4pt}} +\tikzset{label angle style/.append style={color=teal,font=\footnotesize}} +\tikzset{new/.style={color=orange,ultra thin}} +%\tikzset{label style/.append style={color=teal,font=\footnotesize}} + +\newcommand{\tkzsubf}[2]{% + {\small\begin{tabular}[t]{@{}c@{}} + #1\\#2 + \end{tabular}}% +} + + \begin{document} - \parindent=0pt \author{\tkzauthorofpack} \title{\tkznameofpack} @@ -271,8 +282,9 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch \include{TKZdoc-euclide-styles} \part{Examples} -\include{TKZdoc-euclide-examples} \include{TKZdoc-euclide-others} +\include{TKZdoc-euclide-examples} + \part{FAQ} \include{TKZdoc-euclide-FAQ} diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-marking.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-marking.tex index 8ca0dc0f13..209aca27d9 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-marking.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-marking.tex @@ -242,25 +242,25 @@ More delicate operation because there are many options. The symbols used for mar % \tkzMarkAngle(B, A, C) % -% Marque d'angle -% arc de cercle (simple/double/triple) et marque d'églité. +% Angle mark +% arc de cercle (simple/double/triple) et mark of equality. % -% Par défaut: +% By default: % arc = simple -% mksize = 1 (rayon de l'arc) +% mksize = 1 (radius of the arc) % style traits pleins -% mkpos ? position: 0.5 (position de la marque) -% mark rien du tout (ignoré si type est utilisé) +% mkpos ? position: 0.5 (mark position) +% mark none % -% Paramètres (optionnels) +% Parameters (optional) % arc : l, ll, lll % mksize : 1 % gap : 3pt % dist : 1? -% style : type de traits +% style : type of lines % mkpos : 0.5 % mark : none , |, ||,|||, z, s, x, o, oo mais tous les -% % symboles de tikz sont permis +% % tikz symbols are allowed \begin{NewMacroBox}{tkzMarkAngle}{\oarg{local options}\parg{A,O,B}}% $O$ is the vertex. Attention the arguments vary according to the options. Several markings are possible. You can simply draw an arc or add a mark on this arc. The style of the arc is chosen with the option \tkzname{arc}, the radius of the arc is given by \tkzname{mksize}, the arc can, of course, be colored. @@ -280,29 +280,21 @@ options & default & definition \\ \end{tabular} \end{NewMacroBox} -\subsubsection{Example with \tkzname{mark = x}} -\begin{tkzexample}[latex=6cm,small] - \begin{tikzpicture}[scale=.75] - \tkzDefPoints{0/0/O,5/0/A,3/4/B} - \tkzMarkAngle[size = 4,mark = x, - arc=ll,mkcolor = red](A,O,B) - \tkzDrawLines(O,A O,B) - \tkzDrawPoints(O,A,B) - \end{tikzpicture} -\end{tkzexample} \DeleteShortVerb{\|} -\subsubsection{Example with \tkzname{mark =||}} -\MakeShortVerb{\|} +\subsubsection{Example with \tkzname{mark = x} and with \tkzname{mark =||}} + \begin{tkzexample}[latex=6cm,small] - \begin{tikzpicture}[scale=.75] - \tkzDefPoints{0/0/O,5/0/A,3/4/B} - \tkzMarkAngle[size = 4,mark = ||, - arc=ll,mkcolor = red](A,O,B) - \tkzDrawLines(O,A O,B) - \tkzDrawPoints(O,A,B) - \end{tikzpicture} +\begin{tikzpicture}[scale=.75] + \tkzDefPoints{0/0/O,5/0/A,3/4/B} + \tkzMarkAngle[size = 4,mark = x, + arc=ll,mkcolor = red,mkpos=.33](A,O,B) + \tkzMarkAngle[size = 2,mark = ||, + arc=ll,mkcolor = blue,mkpos=.66](A,O,B) + \tkzDrawLines(O,A O,B) + \tkzDrawPoints(O,A,B) +\end{tikzpicture} \end{tkzexample} - +\MakeShortVerb{\|} \begin{NewMacroBox}{tkzMarkAngles}{\oarg{local options}\parg{A,O,B}\parg{A',O',B'}etc.}% With common options, there is a macro for multiple angles. \end{NewMacroBox} diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-news.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-news.tex index 1226b02e13..57bb41c3d3 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-news.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-news.tex @@ -28,7 +28,7 @@ Here are some of the changes. I'm sorry but the list of changes and novelties is \item |\tkzMarkArc| and |\tkzLabelArc| are new macros; -\item Now |\tkzClipCircle| and |\tkzClipPolygon| have an option \tkzimp{out}. To use this option you must have a Bounding Box that contains the object on which the Clip action will be performed. Cela peut se faire en utilisant un objet qui englobe la figure ou bien en utilisant la macro \tkzcname{tkzInit}; +\item Now |\tkzClipCircle| and |\tkzClipPolygon| have an option \tkzimp{out}. To use this option you must have a Bounding Box that contains the object on which the Clip action will be performed. This can be done by using an object that encompasses the figure or by using the macro \tkzcname{tkzInit}; \item The options \tkzname{end} and \tkzname{start} which allowed to give a label to a straight line are removed. You now have to use the macro \tkzcname{tkzLabelLine}; diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-others.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-others.tex index 47886c814d..a47fc85075 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-others.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-others.tex @@ -223,7 +223,7 @@ Below the figure used to illustrate the proof of the “Gou gu theorem.” (cod \tkzCalcLength(A',B) \tkzGetLength{lB} \pgfmathparse{\lA-\lB} \tkzInterLC[R](A,A')(A',\pgfmathresult) - \tkzGetSecondPoint{D'} + \tkzGetFirstPoint{D'} \tkzDefSquare(D',A')\tkzGetPoints{B'}{C'} \tkzDefLine[orthogonal=through D](D,D') \tkzGetPoint{d} diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointby.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointby.tex index 9c3f682563..a2f5584670 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointby.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointby.tex @@ -38,6 +38,7 @@ options & & examples \\ \TOline{projection }{= onto \#1--\#2}{[projection=onto A--B](E)} \TOline{rotation } {= center \#1 angle \#2}{[rotation=center O angle 30](E)} \TOline{rotation in rad}{= center \#1 angle \#2}{[rotation in rad=center O angle pi/3](E)} +\TOline{rotation with nodes}{= center \#1 from \#2 to \#3}{[center O from A to B](E)} \TOline{inversion}{= center \#1 through \#2}{[inversion =center O through A](E)} \TOline{inversion negative}{= center \#1 through \#2}{...} \bottomrule @@ -116,7 +117,8 @@ The image is only defined and not drawn. \tkzMarkRightAngle[fill=orange!10,opacity=.4](D,G,B) \tkzDrawPoints(A,C,F) \tkzLabelPoints(A,C,F) \tkzDrawPoints(B,D,E,G) - \tkzLabelPoints[above right](B,D,E,G) + \tkzLabelPoints[above right](B,D,E) + \tkzLabelPoints[above](G) \end{tikzpicture} \end{tkzexample} @@ -148,13 +150,13 @@ The image is only defined and not drawn. \tkzGetPoint{D} \tkzDrawSegment(A,tkzPointResult) \tkzDrawLine(B,D) - \tkzDrawArc(A,B)(C) - \tkzDrawArc(B,C)(A) + \tkzDrawArc(A,B)(C) \tkzDrawArc(B,C)(A) \tkzDrawArc(C,D)(D) \tkzMarkRightAngle(D,B,A) \tkzDrawPoints(A,B) \tkzLabelPoints(A,B) - \tkzLabelPoints[above](C,D) + \tkzLabelPoints[above](C) + \tkzLabelPoints[right](D) \end{tikzpicture} \end{tkzexample} @@ -173,6 +175,24 @@ The image is only defined and not drawn. \end{tikzpicture} \end{tkzexample} +\subsubsection{\tkzname{rotation with nodes}} +\begin{tkzexample}[latex=6cm,small] +\begin{tikzpicture} + \tkzDefPoint(0,0){O} + \tkzDefPoint(0:2){A} + \tkzDefPoint(40:2){B} + \tkzDefPoint(20:4){C} + \tkzDrawLine(O,A) + \tkzDefPointBy[rotation with nodes% + =center O from A to B](C) + \tkzGetPoint{D} +\tkzDrawPoints(A,B,C,D) +\tkzDrawCircle(O,A) +\tkzLabelPoints(A,C,D) +\tkzLabelPoints[above](B) +\end{tikzpicture} +\end{tkzexample} + \subsubsection{\tkzname{inversion }} Inversion is the process of transforming points to a corresponding set of points known as their inverse points. Two points $P$ and $P'$ are said to be inverses with respect to an inversion circle having inversion center $O$ and inversion radius $k$ if $P'$ is the perpendicular foot of the altitude of $OQP$, where $Q$ is a point on the circle such that $OQ$ is perpendicular to $PQ$.\\ @@ -189,14 +209,31 @@ Some propositions : \item Angles are preserved in inversion. \end{itemize} -Explanation +Explanation: + +Directly +(Center O power=$k^2={OA}^2=OP \times OP'$) + +\begin{tkzexample}[latex=6cm,small] +\begin{tikzpicture}[scale=.5] + \tkzDefPoints{4/0/A,6/0/P,0/0/O} + \tkzDefCircle(O,A) + \tkzDefPointBy[inversion = center O through A](P) + \tkzGetPoint{P'} + \tkzDrawSegments(O,P) + \tkzDrawCircle(O,A) + \tkzLabelPoints[above right,font=\scriptsize](O,A,P,P') + \tkzDrawPoints(O,A,P,P') +\end{tikzpicture} +\end{tkzexample} + \begin{tkzexample}[latex=6cm,small] \begin{tikzpicture}[scale=.5] \tkzDefPoints{4/0/A,6/0/P,0/0/O} \tkzDefCircle(O,A) \tkzDefLine[orthogonal=through P](O,P) \tkzGetPoint{L} - \tkzDefTangent[from = P](O,A) \tkzGetPoints{Q}{R} + \tkzDefTangent[from = P](O,A) \tkzGetPoints{R}{Q} \tkzDefPointBy[projection=onto O--A](Q) \tkzGetPoint{P'} \tkzDrawSegments(O,P O,A) \tkzDrawSegments[new](O,P O,Q P,Q Q,P') @@ -214,22 +251,6 @@ Explanation \end{tikzpicture} \end{tkzexample} -Directly -(Center O power=$k^2={OA}^2=OP \times OP'$) - -\begin{tkzexample}[latex=6cm,small] -\begin{tikzpicture}[scale=.5] - \tkzDefPoints{4/0/A,6/0/P,0/0/O} - \tkzDefCircle(O,A) - \tkzDefPointBy[inversion = center O through A](P) - \tkzGetPoint{P'} - \tkzDrawSegments(O,P) - \tkzDrawCircle(O,A) - \tkzLabelPoints[above right,font=\scriptsize](O,A,P,P') - \tkzDrawPoints(O,A,P,P') -\end{tikzpicture} -\end{tkzexample} - \subsubsection{Inversion of lines} \begin{tkzexample}[latex=6cm,small] @@ -293,7 +314,7 @@ Directly \tkzInterCC(A,P)(A',P') \tkzGetPoints{C}{D} \tkzCalcLength(A,P) \tkzGetLength{rAP} -\tkzDefPointOnCircle[angle=190,center=A,radius=\rAP] +\tkzDefPointOnCircle[R= angle 190 center A radius \rAP] \tkzGetPoint{M} \tkzDefPointBy[inversion = center O through C](M) \tkzGetPoint{M'} @@ -368,7 +389,7 @@ The inversion circle itself, circles orthogonal to it, and lines through the inv \tkzInterCC(A,P)(A',P') \tkzGetPoints{C}{D} \tkzCalcLength(A,P) \tkzGetLength{rAP} -\tkzDefPointOnCircle[angle=190,center=A,radius=\rAP] +\tkzDefPointOnCircle[R= angle 190 center A radius \rAP] \tkzGetPoint{M} \tkzDefPointBy[inversion = center O through C](M) \tkzGetPoint{M'} @@ -404,7 +425,7 @@ It's an inversion followed by a symmetry of center $O$ \end{tkzexample} - +\newpage \subsection{Transformation of multiple points; \tkzcname{tkzDefPointsBy} } Variant of the previous macro for defining multiple images. You must give the names of the images as arguments, or indicate that the names of the images are formed from the names of the antecedents, leaving the argument empty. @@ -446,6 +467,9 @@ options & & examples \\ \TOline{projection = onto \#1--\#2}{}{[projection=onto A--B](E)\{F\}} \TOline{rotation = center \#1 angle \#2}{}{[rotation=center angle 30](E)\{F\}} \TOline{rotation in rad = center \#1 angle \#2}{}{for instance angle pi/3} +\TOline{rotation with nodes = center \#1 from \#2 to \#3}{}{[center O from A to B](E)\{F\}} +\TOline{inversion = center \#1 through \#2}{}{[inversion = center O through A](E)\{F\}} +\TOline{inversion negative = center \#1 through \#2}{}{...} \bottomrule \end{tabular} @@ -469,32 +493,29 @@ The points are only defined and not drawn. \end{tikzpicture} \end{tkzexample} -\subsubsection{Example of symmetry} +\subsubsection{Example of symmetry: an oval} \begin{tkzexample}[latex=7cm,small] -\begin{tikzpicture}[scale=.4] +\begin{tikzpicture}[scale=0.4] \tkzDefPoint(-4,0){I} \tkzDefPoint(4,0){J} \tkzDefPoint(0,0){O} \tkzInterCC(J,O)(O,J) \tkzGetPoints{L}{H} \tkzInterCC(I,O)(O,I) \tkzGetPoints{K}{G} - \tkzDrawLines[add=1.5 and 1.5](I,K I,G J,H J,L) - \tkzDrawLines[add=.5 and .5](I,J) \tkzInterLL(I,K)(J,H) \tkzGetPoint{M} \tkzInterLL(I,G)(J,L) \tkzGetPoint{N} \tkzDefPointsBy[symmetry=center J](L,H){D,E} \tkzDefPointsBy[symmetry=center I](G,K){C,F} - \tkzDrawPoints(H,L,K,G,I,J,D,E,C,F,M,N) - \tkzDrawCircle[R](O,4) - \tkzDrawCircle[R](I,4) - \tkzDrawCircle[R](J,4) - \tkzDrawArc(N,D)(C) - \tkzDrawArc(M,F)(E) - \tkzDrawArc(J,E)(D) - \tkzDrawArc(I,C)(F) - \tkzLabelPoints[font=\scriptsize](H,L,K,G,I,J,% - D,E,C,F,M,N) -\end{tikzpicture} -\end{tkzexample} + \begin{scope}[line style/.style = {very thin,teal}] + \tkzDrawLines[add=1.5 and 1.5](I,K I,G J,H J,L) + \tkzDrawLines[add=.5 and .5](I,J) + \tkzDrawCircles(O,I I,O J,O) + \tkzDrawArc[delta=0,orange](N,D)(C) + \tkzDrawArc[delta=0,orange](M,F)(E) + \tkzDrawArc[delta=0,orange](J,E)(D) + \tkzDrawArc[delta=0,orange](I,C)(F) + \end{scope} +\end{tikzpicture} +\end{tkzexample} \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointsSpc.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointsSpc.tex index 2949a6a262..bb2d2d9215 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointsSpc.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointsSpc.tex @@ -1,5 +1,6 @@ Now that the fixed points are defined, we can with their references using macros from the package or macros that you will create get new points. The calculations may not be apparent but they are usually done by the package. -Vous aurez peut-être besoin d'utiliser certains constantes mathématiques, voici la liste des constantes définies par le package. +You may need to use some mathematical constants, here is the list of constants defined by the package. +You may need to use some mathematical constants, here is the list of constants defined by the package. \section{Auxiliary tools} \subsection{Constants} @@ -71,7 +72,7 @@ arguments & default & example \\ \end{tabular} \end{NewMacroBox} -Parfois les résultats consistent en un point et une dimension. Vous obtenez le point avec \tkzcname{tkzGetPoint} et la dimension avec \tkzcname{tkzGetLength}. +Sometimes the results consist of a point and a dimension. You get the point with \tkzcname{tkzGetPoint} and the dimension with \tkzcname{tkzGetLength}. \begin{NewMacroBox}{tkzGetLength}{\marg{name of a macro}}% @@ -119,6 +120,41 @@ Review the use of \tkzcname{tkzDefPoint}. \end{tikzpicture} \end{tkzexample} +\subsection{Golden ratio} +From Wikipedia : In mathematics, two quantities are in the golden ratio if their ratio is the same as the ratio of their sum to the larger of the two quantities. Expressed algebraically, for quantities $a$, $b$ such as $a > b > 0$; $a+b$ is to $a$ as $a$ is to $b$. + +$ \frac{a+b}{a} = \frac{a}{b} = \phi = \frac{1 + \sqrt{5}}{2}$ + + +One of the two solutions to the equation $x^2 - x - 1 = 0$ +is the golden ratio $\phi$, $\phi = \frac{1 + \sqrt{5}}{2}$. + +\begin{NewMacroBox}{tkzDefGoldenRatio}{\parg{pt1,pt2}}% +\begin{tabular}{lll}% +arguments & default & example \\ +\midrule +\TAline{(pt1,pt2)}{no default}{\tkzcname{tkzDefGoldenRatio(A,C)} \tkzcname{tkzGetPoint}\{B\}} +\bottomrule +\end{tabular} + +\medskip +$AB=a$, $BC=b$ and $\frac{AC}{AB} = \frac{AB}{BC} =\phi$ +\end{NewMacroBox} + +\subsubsection{Use the golden ratio to divide a line segment} +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture} + \tkzDefPoints{0/0/A,6/0/C} + \tkzDefMidPoint(A,C) \tkzGetPoint{I} + %\tkzDefPointWith[linear,K=\tkzInvPhi](A,C) + \tkzDefGoldenRatio(A,C) \tkzGetPoint{B} + \tkzDrawSegments(A,C) + \tkzDrawPoints(A,B,C) + \tkzLabelPoints(A,B,C) +\end{tikzpicture} +\end{tkzexample} + +It is also possible to use the following macro. \subsection{Barycentric coordinates } $pt_1$, $pt_2$, \dots, $pt_n$ being $n$ points, they define $n$ vectors $\overrightarrow{v_1}$, $\overrightarrow{v_2}$, \dots, $\overrightarrow{v_n}$ with the origin of the referential as the common endpoint. $\alpha_1$, $\alpha_2$, @@ -143,7 +179,7 @@ You need at least two points. Result in \tkzname{tkzPointResult}. \subsubsection{Using \tkzcname{tkzDefBarycentricPoint} with two points} -In the following example, we obtain the barycentre of points $A$ and $B$ with coefficients $1$ and $2$, in other words: +In the following example, we obtain the barycenter of points $A$ and $B$ with coefficients $1$ and $2$, in other words: \[ \overrightarrow{AI}= \frac{2}{3}\overrightarrow{AB} \] @@ -182,68 +218,111 @@ This time $M$ is simply the center of gravity of the triangle. \end{tikzpicture} \end{tkzexample} -\subsection{Golden ration} -From Wikipedia : In mathematics, two quantities are in the golden ratio if their ratio is the same as the ratio of their sum to the larger of the two quantities. Expressed algebraically, for quantities $a$, $b$ $a > b > 0$ $a+b$ is to $a$ as $a$ is to $b$. -$ \frac{a+b}{a} = \frac{a}{b} = \phi = \frac{1 + \sqrt{5}}{2}$ +\subsection{Internal and external Similitude Center} +The centers of the two homotheties in which two circles correspond are called external and internal centers of similitude. You can use \tkzcname{tkzDefIntSimilitudeCenter} and \tkzcname{tkzDefExtSimilitudeCenter} but the next macro is better. +\begin{NewMacroBox}{tkzDefSimilitudeCenter}{\oarg{options}\parg{O,A}\parg{O',B} or \parg{O,r}\parg{O',r'}}% -One of the two solutions to the equation $x^2 - x - 1 = 0$ -is the golden ratio $\phi$, $\phi = \frac{1 + \sqrt{5}}{2}$. +\begin{tabular}{lll}% +arguments & example & explanation \\ +\midrule +\TAline{\parg{pt1,pt2}\parg{pt3,pt4}}{$(O,A)(O',B)$} {$r=OA,r'=O'B$} +\TAline{\parg{pt1,r1}\parg{pt2,r2}}{$(A,1)(B,2)$} {} -\begin{NewMacroBox}{tkzDefGoldenRatio}{\parg{pt1,pt2}}% +\end{tabular} + +\medskip \begin{tabular}{lll}% -arguments & default & example \\ +\toprule +options & default & definition \\ \midrule -\TAline{(pt1,pt2)}{no default}{\tkzcname{tkzDefGoldenRatio(A,C)} \tkzcname{tkzGetPoint}\{B\}} -\bottomrule +\TOline{ext}{ext}{external center} +\TOline{int}{ext}{internal center} + +\TOline{node}{node}{Circles are defined by two points: center and point on the circle} +\TOline{R}{node}{Circles are defined by the center and the radius} \end{tabular} +\end{NewMacroBox} -\medskip -$AB=a$, $BC=b$ and $\frac{AC}{AB} = \frac{AB}{BC} =\phi$ -\end{NewMacroBox} +\subsubsection{Internal and external with \tkzname{node}} +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture}[scale=.75] + \tkzDefPoints{0/0/O,4/-5/A,3/0/B,5/-5/C} +\tkzDefSimilitudeCenter[int](O,B)(A,C) \tkzGetPoint{I} + \tkzDefSimilitudeCenter[ext](O,B)(A,C) \tkzGetPoint{J} + \tkzDefTangent[from = I](O,B) \tkzGetPoints{D}{E} + \tkzDefTangent[from = I](A,C) \tkzGetPoints{D'}{E'} + \tkzDefTangent[from = J](O,B) \tkzGetPoints{F}{G} + \tkzDefTangent[from = J](A,C) + \tkzGetPoints{F'}{G'} + \tkzDrawCircles(O,B A,C) + \tkzDrawSegments[add = .5 and .5,new](D,D' E,E') + \tkzDrawSegments[add= 0 and 0.25,new](J,F J,G) + \tkzDrawPoints(O,A,I,J,D,E,F,G,D',E',F',G') + \tkzLabelPoints[font=\scriptsize](O,A,I,J,D,E,F,G,D',E',F',G') +\end{tikzpicture} +\end{tkzexample} + +You can use \tkzcname{tkzDefBarycentricPoint} to find a homothetic center + +|\tkzDefBarycentricPoint(O=\r,A=\R) \tkzGetPoint{I}| \\ +|\tkzDefBarycentricPoint(O={-\r},A=\R) \tkzGetPoint{J}| -\subsection{Use the golden ratio to divide a line segment} +\subsubsection{Example with \tkzname{node}} \begin{tkzexample}[latex=7cm,small] -\begin{tikzpicture} - \tkzDefPoints{0/0/A,6/0/C} - \tkzDefMidPoint(A,C) \tkzGetPoint{I} - %\tkzDefPointWith[linear,K=\tkzInvPhi](A,C) +\begin{tikzpicture}[rotate=60,scale=.5] + \tkzDefPoints{0/0/A,5/0/C} \tkzDefGoldenRatio(A,C) \tkzGetPoint{B} - \tkzDrawSegments(A,C) - \tkzDrawPoints(A,B,C) - \tkzLabelPoints(A,B,C) + \tkzDefSimilitudeCenter(A,B)(C,B) \tkzGetPoint{J} + \tkzDefTangent[from = J](A,B) \tkzGetPoints{F}{G} + \tkzDefTangent[from = J](C,B) \tkzGetPoints{F'}{G'} + \tkzDrawCircles(A,B C,B) + \tkzDrawSegments[add= 0 and 0.25,cyan](J,F J,G) + \tkzDrawPoints(A,J,F,G,F',G') + \tkzLabelPoints[font=\scriptsize](A,J,F,G,F',G') \end{tikzpicture} \end{tkzexample} +\newpage +%<----------------------------------------------------------------------> +\subsection{ Harmonic division} +%<----------------------------------------------------------------------> +\begin{NewMacroBox}{tkzDefHarmonic}{\oarg{options}\parg{pt1,pt2,pt3} or \parg{pt1,pt2}}% + +\begin{tabular}{lll}% +options & default & definition \\ +\midrule +\TOline{both}{both}{\parg{A,B} we look for C and D such that $(A,B;C,D) = -1$ } +\TOline{ext}{both}{\parg{A,B,C} we look for D such that $(A,B;C,D) = -1$} +\TOline{int}{both}{\parg{A,B,D} we look for C such that $(A,B;C,D) = -1$} +\end{tabular} +\end{NewMacroBox} -\subsection{Internal Similitude Center} -The centres of the two homotheties in which two circles correspond are called external and internal centres of similitude. +\subsubsection{options \tkzname{ext} and \tkzname{int}} +\begin{tkzexample}[vbox,small] + \begin{tikzpicture} + \tkzDefPoints{0/0/A,6/0/B,4/0/C} + \tkzDefHarmonic[ext](A,B,C) \tkzGetPoint{J} + \tkzDefHarmonic[int](A,B,J) \tkzGetPoint{I} + \tkzDrawPoints(A,B,I,J) + \tkzDrawLine[add=.5 and 1](A,B) + \tkzLabelPoints(A,B,I,J) + \end{tikzpicture} +\end{tkzexample} +\subsubsection{option \tkzname{both} } +\tkzname{both} is the default option \begin{tkzexample}[vbox,small] -\begin{tikzpicture}[rotate=30] - \tkzDefPoints{0/0/O,4/-5/A} - \tkzDefPoints{3/0/x,5/-5/y} - \pgfmathsetmacro\R{3}\pgfmathsetmacro\r{1} - \tkzDefIntSimilitudeCenter[R](O,\R)(A,\r) \tkzGetPoint{I} - \tkzDefExtSimilitudeCenter[R](O,\R)(A,\r) \tkzGetPoint{J} - \tkzDefTangent[from with R= I](O,3) \tkzGetPoints{D}{E} - \tkzDefTangent[from with R= I](A,1) \tkzGetPoints{D'}{E'} - \tkzDefTangent[from with R= J](O,3) \tkzGetPoints{F}{G} - \tkzDefTangent[from with R= J](A,1) \tkzGetPoints{F'}{G'} - \tkzDrawCircles(O,x A,y) \tkzDrawCircles[R](O,3 A,1) - \tkzDrawSegments[add = .5 and .5,new](D,D' E,E') - \tkzDrawSegments[add= 0 and 0.25,new](J,F J,G) - \tkzDrawPoints(O,A,I,J,D,E,F,G,D',E',F',G') - \tkzLabelPoints[font=\scriptsize](O,A,I,J,D,E,F,G,D',E',F',G') +\begin{tikzpicture} + \tkzDefPoints{0/0/A,6/0/B} + \tkzDefHarmonic(A,B,{1/2})\tkzGetPoints{I}{J} + \tkzDrawPoints(A,B,I,J) + \tkzDrawLine[add=1 and .5](A,B) + \tkzLabelPoints(A,B,I,J) \end{tikzpicture} \end{tkzexample} -You can \tkzcname{tkzDefBarycentricPoint} to find a homothetic center - -|\tkzDefBarycentricPoint(O=\r,A=\R) \tkzGetPoint{I}| \\ -|\tkzDefBarycentricPoint(O={-\r},A=\R) \tkzGetPoint{J}| - %<----------------------------------------------------------------------> \subsection{ Equidistant points} %<----------------------------------------------------------------------> @@ -283,6 +362,95 @@ This macro makes it possible to obtain two points on a straight line equidistant \end{tkzexample} +\section{Point on line or circle} +\subsection{Point on a line} + +\begin{NewMacroBox}{tkzDefPointOnLine}{\oarg{local options}\parg{A,B}}% +\begin{tabular}{lll}% +arguments & default & definition \\ +\midrule +\TAline{pt1,pt2} {no default} {Two points to define a line} +\bottomrule +\end{tabular} + +\medskip +\begin{tabular}{lll}% +options & default & definition \\ +\midrule +\TOline{pos=nb} {}{nb is a decimal } +\end{tabular} +\end{NewMacroBox} + +\subsubsection{Use of option \tkzname{pos}} +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture} +\tkzDefPoints{0/0/A,3/0/B} +\tkzDefPointOnLine[pos=1.2](A,B)\tkzGetPoint{P} +\tkzDefPointOnLine[pos=-0.2](A,B)\tkzGetPoint{R} +\tkzDefPointOnLine[pos=0.5](A,B) \tkzGetPoint{S} +\tkzDrawLine[new](A,B) +\tkzDrawPoints(A,B,P) +\tkzLabelPoints(A,B) +\tkzLabelPoint[above](P){pos=$1.2$} +\tkzLabelPoint[above](R){pos=$-.2$} +\tkzLabelPoint[above](S){pos=$.5$} +\tkzDrawPoints(A,B,P,R,S) +\tkzLabelPoints(A,B) +\end{tikzpicture} +\end{tkzexample} + +\subsection{Point on a circle} + +\begin{NewMacroBox}{tkzDefPointOnCircle}{\oarg{local options}}% +\begin{tabular}{lll}% +options & default & examples definition \\ +\midrule +\TOline{through} {}{through = angle 30 center K1 point B]} +\TOline{R} {}{R = angle 30 center K1 radius \tkzcname{rAp}} +\end{tabular} +\end{NewMacroBox} + +\subsubsection{Altshiller's Theorem} + The two lines joining the points of intersection of two orthogonal circles to a point on one of the circles met the other circle in two diametricaly oposite points. Altshiller p 176 + +\begin{tkzexample}[latex=6cm,small] +\begin{tikzpicture}[scale=.4] +\tkzDefPoints{0/0/P,5/0/Q,3/2/I} +\tkzDefCircleBy[orthogonal from=P](Q,I) +\tkzGetFirstPoint{E} +\tkzDrawCircles(P,E Q,E) +\tkzInterCC[common=E](P,E)(Q,E) \tkzGetFirstPoint{F} +\tkzDefPointOnCircle[through = angle 80 center P point E] + \tkzGetPoint{A} +\tkzInterLC[common=E](A,E)(Q,E) \tkzGetFirstPoint{C} +\tkzInterLL(A,F)(C,Q) \tkzGetPoint{D} +\tkzDrawLines[add=0 and .75](P,Q) +\tkzDrawLines[add=0 and 2](A,E) +\tkzDrawSegments(P,E E,F F,C A,F C,D) +\tkzDrawPoints(P,Q,E,F,A,C,D) +\tkzLabelPoints(P,Q,F,C,D) +\tkzLabelPoints[above](E,A) +\end{tikzpicture} +\end{tkzexample} + +\subsubsection{Use of \tkzcname{tkzDefPointOnCircle}} +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture} +\tkzDefPoints{0/0/A,4/0/B,0.8/3/C} +\tkzDefPointOnCircle[R = angle 90 center B radius 1] +\tkzGetPoint{I} +\tkzDefCircle[circum](A,B,C) +\tkzGetPoint{G} \tkzGetLength{rG} +\tkzDefPointOnCircle[R = angle 30 center G radius \rG] +\tkzGetPoint{J} +\tkzDrawCircle[R,teal](B,1) +\tkzDrawCircle(G,J) +\tkzDrawPoints(A,B,C,G,I,J) +\tkzAutoLabelPoints[center=G](A,B,C,J) +\tkzLabelPoints[below](G,I) +\end{tikzpicture} +\end{tkzexample} + \newpage \section{Special points relating to a triangle} @@ -372,10 +540,10 @@ options & default & definition \\ \subsubsection{Option \tkzname{in}} In geometry, the incircle or inscribed circle of a triangle is the largest circle contained in the triangle; it touches (is tangent to) the three sides. The center of the incircle is a triangle center called the triangle's incenter. The center of the incircle, called the incenter, can be found as the intersection of the three internal angle bisectors. The center of an excircle is the intersection of the internal bisector of one angle (at vertex $A$, for example) and the external bisectors of the other two. The center of this excircle is called the excenter relative to the vertex $A$, or the excenter of $A$. Because the internal bisector of an angle is perpendicular to its external bisector, it follows that the center of the incircle together with the three excircle centers form an orthocentric system.\\ -(\url{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle}) +(Article on \href{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle}{Wikipedia}) \medskip - We get the centre of the inscribed circle of the triangle. The result is of course in \tkzname{tkzPointResult}. We can retrieve it with \tkzcname{tkzGetPoint}. + We get the center of the inscribed circle of the triangle. The result is of course in \tkzname{tkzPointResult}. We can retrieve it with \tkzcname{tkzGetPoint}. \begin{tkzexample}[latex=8cm,small] \begin{tikzpicture} @@ -392,10 +560,10 @@ The center of the incircle, called the incenter, can be found as the intersectio \subsubsection{Option \tkzname{ex}} An excircle or escribed circle of the triangle is a circle lying outside the triangle, tangent to one of its sides and tangent to the extensions of the other two. Every triangle has three distinct excircles, each tangent to one of the triangle's sides.\\ -(\url{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle}) +(Article on \href{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle}{Wikipedia}) - We get the centre of an inscribed circle of the triangle. The result is of course in \tkzname{tkzPointResult}. We can retrieve it with \tkzcname{tkzGetPoint}. + We get the center of an inscribed circle of the triangle. The result is of course in \tkzname{tkzPointResult}. We can retrieve it with \tkzcname{tkzGetPoint}. \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=.5] @@ -570,7 +738,7 @@ The mittenpunkt (also called the middlespoint) of a triangle $ABC$ is the symmed \end{tikzpicture} \end{tkzexample} -\subsubsection{Example : relation between \tkzname{gergonne}, \tkzname{centroid} and \tkzname{mittenpunkt}} +\subsubsection{Relation between \tkzname{gergonne}, \tkzname{centroid} and \tkzname{mittenpunkt}} The Gergonne point $Ge$, triangle centroid $G$, and mittenpunkt $M$ are collinear, with GeG/GM=2. @@ -592,172 +760,5 @@ The Gergonne point $Ge$, triangle centroid $G$, and mittenpunkt $M$ are collinea \end{tikzpicture} \end{tkzexample} -\newpage -\section{Projection of excenters} - -\begin{NewMacroBox}{tkzDefProjExcenter}{\oarg{local options}\parg{A,B,C}\parg{a,b,c}\marg{X,Y,Z}}% -Each excenter has three projections on the sides of the triangle ABC. We can do this with one macro\\ \tkzcname{tkzDefProjExcenter[name=J](A,B,C)(a,b,c)\{Y,Z,X\}}. - -\medskip -\begin{tabular}{lll}% -\toprule -options & default & definition \\ -\midrule -\TOline{name} {no defaut}{used to name the vertices} -\bottomrule -\end{tabular} - -\begin{tabular}{lll}% -arguments & default & definition \\ -\midrule -\TAline{(pt1=$\alpha_1$,pt2=$\alpha_2$,\dots)}{no default}{Each point has a assigned weight} -\bottomrule -\end{tabular} - -\medskip -\end{NewMacroBox} - -\subsubsection{Excircles} -\begin{tikzpicture}[scale=.5] -\tkzDefPoints{0/0/A,5/0/B,0.8/4/C} -\tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c} -\tkzDefSpcTriangle[intouch,name=I](A,B,C){a,b,c} -\tkzDefProjExcenter[name=J](A,B,C)(a,b,c){X,Y,Z} - -\tkzDefCircle[in](A,B,C) \tkzGetPoint{I} \tkzGetSecondPoint{T} -\tkzDrawCircles[red](Ja,Xa Jb,Yb Jc,Zc) -\tkzDrawCircle(I,T) -\tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc) -\tkzDrawLines[add=2 and 2,line width=1pt](A,C A,B B,C) -\tkzDrawSegments(Ja,Xa Ja,Ya Ja,Za - Jb,Xb Jb,Yb Jb,Zb - Jc,Xc Jc,Yc Jc,Zc - I,Ia I,Ib I,Ic) -\tkzMarkRightAngles[size=.2,fill=gray!15](% - Ja,Za,B - Ja,Xa,B - Ja,Ya,C - Jb,Yb,C - Jb,Zb,B - Jb,Xb,C - Jc,Yc,A - Jc,Zc,B - Jc,Xc,C - I,Ia,B - I,Ib,C - I,Ic,A) -\tkzDrawSegments[blue](Jc,C Ja,A Jb,B) -\tkzLabelPoints(Xb,Yc,A,B,C,Xa,Xc,Ya,Yb,Ja,Jb,Jc,I) -\tkzLabelPoints[above right](Za,Zb,Zc) -\tkzLabelPoints[below](Ia,Ib,Ic) -\end{tikzpicture} - -\begin{tkzexample}[code only,small] - \begin{tikzpicture}[scale=.5] - \tkzDefPoints{0/0/A,5/0/B,0.8/4/C} - \tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c} - \tkzDefSpcTriangle[intouch,name=I](A,B,C){a,b,c} - \tkzDefProjExcenter[name=J](A,B,C)(a,b,c){X,Y,Z} - - \tkzDefCircle[in](A,B,C) \tkzGetPoint{I} \tkzGetSecondPoint{T} - \tkzDrawCircles[red](Ja,Xa Jb,Yb Jc,Zc) - \tkzDrawCircle(I,T) - \tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc) - \tkzDrawLines[add=2 and 2,line width=1pt](A,C A,B B,C) - \tkzDrawSegments(Ja,Xa Ja,Ya Ja,Za - Jb,Xb Jb,Yb Jb,Zb - Jc,Xc Jc,Yc Jc,Zc - I,Ia I,Ib I,Ic) - \tkzMarkRightAngles[size=.2,fill=gray!15](% - Ja,Za,B - Ja,Xa,B - Ja,Ya,C - Jb,Yb,C - Jb,Zb,B - Jb,Xb,C - Jc,Yc,A - Jc,Zc,B - Jc,Xc,C - I,Ia,B - I,Ib,C - I,Ic,A) - \tkzDrawSegments[blue](Jc,C Ja,A Jb,B) - \tkzLabelPoints(Xb,Yc,A,B,C,Xa,Xc,Ya,Yb,Ja,Jb,Jc,I) - \tkzLabelPoints[above right](Za,Zb,Zc) - \tkzLabelPoints[below](Ia,Ib,Ic) - \end{tikzpicture} -\end{tkzexample} - - -\section{Point on line or circle} -\subsection{Point on a line} - -\begin{NewMacroBox}{tkzDefPointOnLine}{\oarg{local options}\parg{A,B}}% -\begin{tabular}{lll}% -arguments & default & definition \\ -\midrule -\TAline{pt1,pt2} {no default} {Two points to define a line} -\bottomrule -\end{tabular} - -\medskip -\begin{tabular}{lll}% -options & default & definition \\ -\midrule -\TOline{pos=nb} {}{nb is a decimal } -\end{tabular} -\end{NewMacroBox} - -\subsubsection{Use of option \tkzname{pos}} -\begin{tkzexample}[latex=9cm,small] - \begin{tikzpicture} - \tkzDefPoints{0/0/A,4/0/B} - \tkzDefPointOnLine[pos=1.2](A,B) - \tkzGetPoint{P} - \tkzDefPointOnLine[pos=-0.2](A,B) - \tkzGetPoint{R} - \tkzDefPointOnLine[pos=0.5](A,B) - \tkzGetPoint{S} - \tkzDrawLine[new](A,B) - \tkzDrawPoints(A,B,P) - \tkzLabelPoints(A,B) - \tkzLabelPoint[above](P){pos=$1.2$} - \tkzLabelPoint[above](R){pos=$-.2$} - \tkzLabelPoint[above](S){pos=$.5$} - \tkzDrawPoints(A,B,P,R,S) - \tkzLabelPoints(A,B) - \end{tikzpicture} -\end{tkzexample} - -\subsection{Point on a circle} - -\begin{NewMacroBox}{tkzDefPointOnCircle}{\oarg{local options}}% -\begin{tabular}{lll}% -options & default & definition \\ -\midrule -\TOline{angle} {0}{angle formed with the abscissa axis} -\TOline{center} {|tkzPointResult|}{circle center required} -\TOline{radius} {|\BS tkzLengthResult|}{radius circle} -\end{tabular} -\end{NewMacroBox} - -\begin{tkzexample}[latex=7cm,small] -\begin{tikzpicture} -\tkzDefPoints{0/0/A,4/0/B,0.8/3/C} -\tkzDefPointOnCircle[angle=90,center=B,radius=1] -\tkzGetPoint{I} -\tkzDefCircle[circum](A,B,C) -\tkzGetPoint{G} \tkzGetLength{rG} -\tkzDefPointOnCircle[angle=30,center=G,radius=\rG] -\tkzGetPoint{J} -\tkzDrawCircle[R,teal](B,1) -\tkzDrawPoint[teal](I) -\tkzDrawPoints(A,B,C) -\tkzDrawCircle(G,J) -\tkzDrawPoints(G,J) -\tkzDrawPoint[red](J) -\tkzLabelPoints(G,J) -\end{tikzpicture} -\end{tkzexample} \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointwith.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointwith.tex index b157cabef7..51abb0b7e1 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointwith.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointwith.tex @@ -16,7 +16,7 @@ In the general case this distance is the distance between the 2 points given as \begin{tabular}{lll}% \toprule -arguments & definition & explication \\ +arguments & definition & explanation \\ \midrule \TAline{(pt1,pt2)} {point couple}{the result is a point in \tkzname{tkzPointResult} } \\ @@ -28,7 +28,7 @@ In what follows, it is assumed that the point is recovered by \tkzNameMacro{tkzG \begin{tabular}{lll}% \toprule -options & example & explication \\ +options & example & explanation \\ \midrule \TOline{orthogonal}{[orthogonal](A,B)}{$AC=AB$ and $\overrightarrow{AC} \perp \overrightarrow{AB}$} \TOline{orthogonal normed}{[orthogonal normed](A,B)}{$AC=1$ and $\overrightarrow{AC} \perp \overrightarrow{AB}$} @@ -165,7 +165,8 @@ OK=OI since $\lvert K \rvert=1$ then OI=OJ=OK. \tkzDrawLines(A,B B,C A,F) \tkzCompass(B,F) \tkzDrawPoints(A,B,C,F,M,E) - \tkzLabelPoints(A,B,C,F,M,E) + \tkzLabelPoints(A,B,C,F,M) + \tkzLabelPoints[above](E) \end{tikzpicture} \end{tkzexample} @@ -258,7 +259,7 @@ Allows to obtain the coordinates of a vector. \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex index e27221a916..24df108ab1 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex @@ -9,7 +9,7 @@ We can rename them with \tkzcname{tkzGetPoints}. \medskip \begin{tabular}{lll}% \toprule -Arguments & example & explication \\ +Arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2}}{\tkzcname{tkzDefSquare}\parg{A,B}}{The square is defined in the direct direction.} \end{tabular} @@ -77,7 +77,7 @@ We can rename them with \tkzcname{tkzGetPoints}. \medskip \begin{tabular}{lll}% \toprule -Arguments & example & explication \\ +Arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2}}{\tkzcname{tkzDefRectangle}\parg{A,B}}{The rectangle is defined in the direct direction.} \end{tabular} @@ -134,7 +134,7 @@ The macro determines a rectangle whose size ratio is the number $\Phi$.\\ \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2}}{\parg{A,B}}{If C and D are created then $AB/BC=\Phi$.} \end{tabular} @@ -188,7 +188,7 @@ From the number of sides, depending on the options, this macro determines a regu \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2}}{\parg{O,A}}{with option "center", $O$ is the center of the polygon.} \TAline{\parg{pt1,pt2}}{\parg{A,B}}{with option "side", $[AB]$ is a side.} diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex index 56af228c28..e4530e276a 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex @@ -120,13 +120,17 @@ How to draw points : \subsubsection{Complete code with \pkg{tkz-euclide}} -\colorlet{input}{red!80!black} -\colorlet{output}{red!70!black} -\colorlet{triangle}{orange!40} +We need to define colors +|\colorlet{input}{red!80!black} |\\ +|\colorlet{output}{red!70!black}|\\ +|\colorlet{triangle}{orange!40} | \begin{tkzexample}[vbox,small] + \colorlet{input}{red!80!black} + \colorlet{output}{red!70!black} + \colorlet{triangle}{orange!40} \begin{tikzpicture}[scale=1.25,thick,help lines/.style={thin,draw=black!50}] \tkzDefPoint(0,0){A} \tkzDefPoint(1.25+rand(),0.25+rand()){B} @@ -226,38 +230,39 @@ Like the intersection of two circles, it's easy to find the intersection of a li \medskip There are no more difficulties. Here the final code with some simplications. -Nous tracons le cercle $\mathcal{K}$ de centre $D$ et passant par $G$. Il coupe la droite $AD$ au point $L$. $AL = BC$. +We draw the circle $\mathcal{K}$ with center $D$ and passing through $G$. It intersects the line $AD$ at point $L$. $AL = BC$. \hspace*{1cm}\vbox{\red | \tkzDrawCircle(D,G)|} \hspace*{1cm}\vbox{\red | \tkzInterLC(D,A)(D,G)\tkzGetSecondPoint{L}|} -\begin{tkzexample}[vbox,small] - \begin{tikzpicture}[scale=2] - \tkzDefPoint(0,0){A} - \tkzDefPoint(0.75,0.25){B} - \tkzDefPoint(1,1.5){C} - \tkzDefTriangle[equilateral](A,B) \tkzGetPoint{D} - \tkzInterLC(B,D)(B,C)\tkzGetFirstPoint{G} - \tkzInterLC(D,A)(D,G)\tkzGetSecondPoint{L} - \tkzDrawCircles(B,C D,G) - \tkzDrawLines[add=0 and 2](D,A D,B) - \tkzDrawSegment(A,B) - \tkzDrawSegments[red](A,L B,C) - \tkzDrawPoints[red](D,L,G) - \tkzDrawPoints[fill=gray](A,B,C) - \tkzLabelPoints[left,red](A) - \tkzLabelPoints[below right,red](L) - \tkzLabelCircle[above left=6pt](B,G)(180){$\mathcal{H}$} - \tkzLabelPoints[above left](D,G) - \tkzLabelPoints[above,red](C) - \tkzLabelPoints[right,red](B) - \tkzLabelCircle[above left=6pt](D,G)(180){$\mathcal{K}$} - \end{tikzpicture} +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture}[scale=1.5] +\tkzDefPoint(0,0){A} +\tkzDefPoint(0.75,0.25){B} +\tkzDefPoint(1,1.5){C} +\tkzDefTriangle[equilateral](A,B) \tkzGetPoint{D} +\tkzInterLC(B,D)(B,C)\tkzGetFirstPoint{G} +\tkzInterLC(D,A)(D,G)\tkzGetSecondPoint{L} +\tkzDrawCircles(B,C D,G) +\tkzDrawLines[add=0 and 2](D,A D,B) +\tkzDrawSegment(A,B) +\tkzDrawSegments[red](A,L B,C) +\tkzDrawPoints[red](D,L,G) +\tkzDrawPoints[fill=gray](A,B,C) +\tkzLabelPoints[left,red](A) +\tkzLabelPoints[below right,red](L) +\tkzLabelCircle[above=12pt](B,G)(90){$\mathcal{H}$} +\tkzLabelPoints[above left](D) +\tkzLabelPoints[below](G) +\tkzLabelPoints[above,red](C) +\tkzLabelPoints[right,red](B) +\tkzLabelCircle[above=12pt](D,G)(90){$\mathcal{K}$} +\end{tikzpicture} \end{tkzexample} \subsection{\tkzname{\tkznameofpack 4} vs \tkzname{\tkznameofpack 3}} -Now I am no longer a Mathematics teacher, and I only spend a few hours studying geometry. I wanted to avoid multiple complications by trying to make \tkzname{tkz-euclide} independent of \tkzname{tkz-base}. Thus was born \tkzname{\tkznameofpack} 4. The latter is a simplified version of its predecessor. The macros of \tkzname{tkz-euclide 3} have been retained. The unit is now \tkzname{cm}. Si vous avez besoin de certaines macros de \tkzname{tkz-base}, il vous faudra sans doute utiliser la macro \tkzcname{tkzInit}. +Now I am no longer a Mathematics teacher, and I only spend a few hours studying geometry. I wanted to avoid multiple complications by trying to make \tkzname{tkz-euclide} independent of \tkzname{tkz-base}. Thus was born \tkzname{\tkznameofpack} 4. The latter is a simplified version of its predecessor. The macros of \tkzname{tkz-euclide 3} have been retained. The unit is now \tkzname{cm}. If you need some macros from \tkzname{tkz-base}, you may need to use the \tkzcname{tkzInit}. \subsection{How to use the \tkzname{\tkznameofpack} package ?} \subsubsection{Let's look at a classic example} @@ -569,7 +574,7 @@ $IB=a$, $AI=1$ \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} + \tkzInterLC(I,H)(M,B) \tkzGetFirstPoint{C} \tkzDrawSegment[style=orange](I,C) \tkzDrawArc(M,B)(A) \tkzDrawSegment[dim={$1$,-16pt,}](A,I) diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rnd.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rnd.tex index 9427fd8da3..ac1efde3ea 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rnd.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rnd.tex @@ -29,151 +29,49 @@ options & default & definition \\ \end{tabular} \end{NewMacroBox} -\subsection{Random point in a rectangle} +\subsubsection{Random point in a rectangle} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture} - \tkzInit[xmax=5,ymax=5]\tkzGrid - \tkzDefPoints{0/0/A,2/2/B,5/5/C} - \tkzDefRandPointOn[rectangle = A and B] - \tkzGetPoint{a} - \tkzDefRandPointOn[rectangle = B and C] - \tkzGetPoint{d} - \tkzDrawLine(a,d) - \tkzDrawPoints(A,B,C,a,d) - \tkzLabelPoints(A,B,C,a,d) + \tkzDefPoints{0/0/A,5/3/C} + \tkzDefRandPointOn[rectangle = A and C] + \tkzGetPoint{E} + \tkzDefRectangle(A,C)\tkzGetPoints{B}{D} + \tkzDrawPolygon[red](A,...,D) + \tkzDrawPoints(A,...,E) + \tkzLabelPoints(A,...,E) \end{tikzpicture} \end{tkzexample} -\subsection{Random point on a segment} +\subsubsection{Random point on a segment or a line} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture} - \tkzInit[xmax=5,ymax=5] \tkzGrid - \tkzDefPoints{0/0/A,2/2/B,3/3/C,5/5/D} - \tkzDefRandPointOn[segment = A--B]\tkzGetPoint{a} - \tkzDefRandPointOn[segment = C--D]\tkzGetPoint{d} - \tkzDrawPoints(A,B,C,D,a,d) - \tkzLabelPoints(A,B,C,D,a,d) -\end{tikzpicture} -\end{tkzexample} - -\subsection{Random point on a straight line} -\begin{tkzexample}[latex=7cm,small] -\begin{tikzpicture} - \tkzInit[xmax=5,ymax=5] \tkzGrid - \tkzDefPoints{0/0/A,2/2/B,3/3/C,5/5/D} - \tkzDefRandPointOn[line = A--B]\tkzGetPoint{E} - \tkzDefRandPointOn[line = C--D]\tkzGetPoint{F} - \tkzDrawPoints(A,...,F) - \tkzLabelPoints(A,...,F) + \tkzDefPoints{0/0/A,5/2/C} + \tkzDefRandPointOn[segment = A--C]\tkzGetPoint{B} + \tkzDrawLine(A,C) + \tkzDrawPoints(A,C) \tkzDrawPoint[red](B) + \tkzLabelPoints(A,C) \tkzLabelPoints[red](B) \end{tikzpicture} \end{tkzexample} - - -\subsubsection{Random point on a circle} +\subsubsection{Random point on a circle or a disk} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture} -\tkzInit[ymin=-1,xmax=6,ymax=5] \tkzGrid \tkzDefPoints{3/2/A,1/1/B} \tkzCalcLength(A,B) \tkzGetLength{rAB} \tkzDefRandPointOn[circle = center A radius \rAB] -\tkzGetPoint{a} +\tkzGetPoint{C} \tkzDefRandPointOn[circle through= center A through B] -\tkzGetPoint{b} +\tkzGetPoint{D} \tkzDefRandPointOn[disk through=center A through B] -\tkzGetPoint{c} +\tkzGetPoint{E} \tkzDrawCircle[R](A,\rAB) -\tkzDrawSegment(A,a) -\tkzDrawPoints(A,B,a,b,c) -\tkzLabelPoints(A,B,a,b,c) +\tkzDrawPoints(A,B) +\tkzLabelPoints(A,B) +\tkzDrawPoints[red](C,D,E) +\tkzLabelPoints[red](C,D,E) \end{tikzpicture} \end{tkzexample} - -\subsubsection{Random example and circle of Apollonius} -\begin{tkzexample}[latex=7cm,small] -\begin{tikzpicture}[scale=1] - \tkzDefPoints{0/0/A,3/0/B} - \def\coeffK{2} - \tkzApolloniusCenter[K=\coeffK](A,B) - \tkzGetPoint{P} - \tkzDefApolloniusPoint[K=\coeffK](A,B) - \tkzGetPoint{M} - \tkzDefRandPointOn[circle through=% - center P through M] - \tkzGetPoint{N} - \tkzDefApolloniusRadius[K=\coeffK](A,B) - \tkzDrawCircle[R,color = blue!50!black, - fill=blue!20, - opacity=.4](tkzPointResult,\tkzLengthResult) - \tkzLabelCircle[R,draw,fill=green!10,% - text width=3cm,% - text centered](P,\tkzLengthResult+1)(-120)% - { $MA/MB=\coeffK$\\$NA/NB=\coeffK$} - \tkzDrawPoints(A,B,P,M,N) - \tkzLabelPoints(A,B,P,M,N) - \tkzDrawSegments[red](N,A N,B) - \tkzDrawPoints(A,B) - \tkzDrawSegments[red](A,B) -\end{tikzpicture} -\end{tkzexample} - - - -\subsection{Middle of a compass segment} - To conclude this section, here is a more complex example. It involves determining the middle of a segment, using only a compass. - -\begin{tikzpicture} - \tkzDefPoint(0,0){A} - \tkzDefRandPointOn[circle= center A radius 4] - \tkzGetPoint{B} - \tkzDefPointBy[rotation= center A angle 180](B) - \tkzGetPoint{C} - \tkzInterCC[R](A,4)(B,4) - \tkzGetPoints{I}{I'} - \tkzInterCC[R](A,4)(I,4) - \tkzGetPoints{J}{B} - \tkzInterCC(B,A)(C,B) - \tkzGetPoints{D}{E} - \tkzInterCC(D,B)(E,B) - \tkzGetPoints{M}{M'} - \tkzSetUpArc[color=teal,style=dashed,delta=10] - \tkzDrawArc(C,D)(E) - \tkzDrawArc(B,E)(D) - \tkzDrawCircle[color=teal,line width=.2pt](A,B) - \tkzDrawArc(D,B)(M) - \tkzDrawArc(E,M)(B) - \tkzCompasss[style=solid](B,I I,J J,C) - \tkzDrawPoints(A,B,C,D,E,M) - \tkzLabelPoints(A,B,M) - \end{tikzpicture} - -\begin{tkzexample}[code only,small] -\begin{tikzpicture} - \tkzDefPoint(0,0){A} - \tkzDefRandPointOn[circle= center A radius 4] - \tkzGetPoint{B} - \tkzDefPointBy[rotation= center A angle 180](B) - \tkzGetPoint{C} - \tkzInterCC[R](A,4)(B,4) - \tkzGetPoints{I}{I'} - \tkzInterCC[R](A,4)(I,4) - \tkzGetPoints{J}{B} - \tkzInterCC(B,A)(C,B) - \tkzGetPoints{D}{E} - \tkzInterCC(D,B)(E,B) - \tkzGetPoints{M}{M'} - \tkzSetUpArc[ccolor=teal,style=dashed,delta=10] - \tkzDrawArc(C,D)(E) - \tkzDrawArc(B,E)(D) - \tkzDrawCircle[color=teal,line width=.2pt](A,B) - \tkzDrawArc(D,B)(M) - \tkzDrawArc(E,M)(B) - \tkzCompasss[color=orange,style=solid](B,I I,J J,C) - \tkzDrawPoints(A,B,C,D,E,M) - \tkzLabelPoints(A,B,M) - \end{tikzpicture} - \end{tkzexample} \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-styles.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-styles.tex index d28226ee97..c7afa131bf 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-styles.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-styles.tex @@ -50,7 +50,7 @@ options & default & definition \\ \subsubsection{Global style or local style} First of all here is a figure created with the styles of my documentation, then the style of the points is modified within the environment \tkzNameEnv{tikzspicture}. -You can use the macro \tkzcname{tkzSetUpPoint} globally or locally, If you place this macro in your preamble or before your first figure then the point style will be valid for all figures in your document. Il sera possible d'utiliser un autre style locallement en utilisant cette commande au sein d'un environnement \tkzNameEnv{tikzpicture}.\\ Let's look at this possibility. +You can use the macro \tkzcname{tkzSetUpPoint} globally or locally, If you place this macro in your preamble or before your first figure then the point style will be valid for all figures in your document. It will be possible to use another style locally by using this command within an environment \tkzNameEnv{tikzpicture}.\\ Let's look at this possibility. \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture} \tkzDefPoints{0/0/A,5/0/B,3/2/C,3/1/D} @@ -330,4 +330,176 @@ You can set your own style with \tkzcname{tkzSetUpStyle} \end{tikzpicture} \end{tkzexample} +\section{How to use \tkzname{arrows}} + +In some countries, arrows are used to indicate the parallelism of lines, +to represent half-lines or the sides of an angle (rays). + +Here are some examples of how to place these arrows. +\tkzname{ tkz-euclide} loads a library called \tkzname{arrows.meta}. + +|\usetikzlibrary{arrows.meta}| + +This library is used to produce different styles of arrow heads. The next examples use some of them. + +\subsection{Arrows at endpoints on segment, ray or line} +\tkzname{Stealth}, \tkzname{Triangle}, \tkzname{To}, \tkzname{Latex} and \dots which can be combined with \tkzname{reversed}. That's easy to place an arrow at one or two endpoints. + +\begin{enumerate} +\item \tkzname{Triangle} and \tkzname{Ray} + \begin{tkzexample}[latex=6cm,small] + \begin{tikzpicture} + \tkzDefPoints{0/0/A,4/0/B} + \tkzDrawSegment[-Triangle](A,B) + \end{tikzpicture} + \end{tkzexample} +\item \tkzname{Stealth} and \tkzname{Segment} + \begin{tkzexample}[latex=6cm,small] + \begin{tikzpicture} + \tkzDefPoints{0/0/A,4/0/B} + \tkzDrawSegment[Stealth-Stealth](A,B) + \end{tikzpicture} + \end{tkzexample} +\item \tkzname{Latex} and \tkzname{Line} + \begin{tkzexample}[latex=6cm,small] + \begin{tikzpicture} + \tkzDefPoints{0/0/A,4/0/B} + \tkzDrawLine[red,Latex-Latex](A,B) + \tkzDrawPoints(A,B) + \end{tikzpicture} + \end{tkzexample} +\item \tkzname{To} and \tkzname{Segment} + \begin{tkzexample}[latex=6cm,small] + \begin{tikzpicture} + \tkzDefPoints{0/0/A,4/0/B} + \tkzDrawSegment[To-To](A,B) + \end{tikzpicture} + \end{tkzexample} +\item \tkzname{Latex} and \tkzname{Segment} + \begin{tkzexample}[latex=6cm,small] + \begin{tikzpicture} + \tkzDefPoints{0/0/A,4/0/B} + \tkzDrawSegment[Latex-Latex](A,B) + \end{tikzpicture} + \end{tkzexample} +\item \tkzname{Latex} and \tkzname{Ray} + \begin{tkzexample}[latex=6cm,small] + \begin{tikzpicture} + \tkzDefPoints{0/0/A,4/0/B} + \tkzDrawSegment[Latex-](A,B) + \end{tikzpicture} + \end{tkzexample} +\item \tkzname{Latex} and \tkzname{Several rays} + \begin{tkzexample}[latex=6cm,small] +\begin{tikzpicture} + \tkzDefPoints{0/0/A,4/0/B,5/-2/C} + \tkzDrawSegments[-Latex](A,B A,C) +\end{tikzpicture} +\end{tkzexample} +\end{enumerate} + +\subsubsection{Scaling an arrow head} + +\begin{tkzexample}[latex=6cm,small] +\begin{tikzpicture} + \tkzDefPoints{0/0/A,4/0/B} + \tkzDrawSegment[{Latex[scale=2]}-{Latex[scale=2]}](A,B) +\end{tikzpicture} +\end{tkzexample} + +\subsubsection{Using vector style} +|\tikzset{vector style/.style={>=Latex,->}}| + +You can redefine this style. +\begin{tkzexample}[latex=6cm,small] +\begin{tikzpicture} + \tkzDefPoints{0/0/A,4/0/B} +\tkzDrawSegment[vector style](A,B) +\end{tikzpicture} +\end{tkzexample} + +\subsection{Arrows on middle point of a line segment} + +Arrows on lines are used to indicate that those lines are parallel. It depends on the country, in France we prefer to indicate outside the figure that $(A,B) \parallel (D,C)$. The code is an adaptation of an answer by \tkzname{muzimuzhi Z} on the site \href{https://tex.stackexchange.com/questions/632596/how-to-manage-argument-pattern-keys-and-subways}{tex.stackexchange.com}. + +\medskip + Syntax: \\ + + \begin{itemize} +\item |tkz arrow| (\tkzname{Latex} by default) +\item |tkz arrow=<arrow end tip>| +\item |tkz arrow=<arrow end tip> at <pos> (<pos> = .5 by default)| +\item |tkz arrow={<arrow end tip>[<arrow options>] at <pos>}| option possible \tkzname{scale} + \end{itemize} + +Example usages: \\ + +|\tkzDrawSegment[tkz arrow=Stealth] (A,B)|\\ +|\tkzDrawSegment[tkz arrow={To[scale=3] at .4}](A,B)|\\ +|\tkzDrawSegment[tkz arrow={Latex[scale=5,blue] at .6}](A,B)| + +\subsubsection{In a parallelogram} +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture} + \tkzDefPoints{0/0/A,3/0/B,4/2/C} + \tkzDefParallelogram(A,B,C) + \tkzGetPoint{D} + \tkzDrawSegments[tkz arrow](A,B D,C) + \tkzDrawSegments(B,C D,A) + \tkzLabelPoints(A,B) + \tkzLabelPoints[above right](C,D) + \tkzDrawPoints(A,...,D) +\end{tikzpicture} +\end{tkzexample} + +\subsubsection{A line parallel to another one} +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture} + \tkzDefPoints{0/0/A,3/0/B,1/2/C} + \tkzDefPointWith[colinear= at C](A,B) + \tkzGetPoint{D} + \tkzDrawSegments[tkz arrow=Triangle](A,B C,D) + \tkzLabelPoints(A,B,C) + \tkzDrawPoints(A,...,C) +\end{tikzpicture} +\end{tkzexample} + +\subsubsection{Arrow on a circle} +It is possible to place an arrow on the first quarter of a circle. A rotation allows you to move the arrow. +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture} +\tkzDefPoints{0/0/A,3/0/B} +\begin{scope}[rotate=150] + \tkzDrawCircle[tkz arrow={Latex[scale=2,red]}](A,B) +\end{scope} +\end{tikzpicture} +\end{tkzexample} + +\subsection{Arrows on all segments of a polygon} +Some users of my package have asked me to be able to place an arrow on each side of a polygon. I used a style proposed by Paul Gaborit on the site +\href{https://tex.stackexchange.com/questions/3161/tikz-how-to-draw-an-arrow-in-the-middle-of-the-line}{tex.stackexchange.com}. + +|\tikzset{tkz arrows/.style=|\\ +|{postaction={on each path={tkz arrow={Latex[scale=2,color=black]}}}}}| + +You can change this style. With \tkzname{tkz arrows} you can an arrow on each segment of a polygon + +\subsubsection{Arrow on each segment with \tkzname{tkz arrows} } + +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture} + \tkzDefPoints{0/0/A,3/0/B} + \tkzDefSquare(A,B) \tkzGetPoints{C}{D} + \tkzDrawPolygon[tkz arrows](A,...,D) +\end{tikzpicture} +\end{tkzexample} + +\subsubsection{Using \tkzname{tkz arrows} with a circle} +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture} + \tkzDefPoints{0/0/A,3/0/B} + \tkzDrawCircle[tkz arrows](A,B) +\end{tikzpicture} +\end{tkzexample} + \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex index d0d36fea4e..dbc6ea7d20 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex @@ -9,7 +9,7 @@ This involves creating a segment on a given half-line of the same length as a gi \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{(pt1,pt2)(pt3,pt4)\{pt5\}} {\tkzcname{tkzDuplicateSegment}(A,B)(E,F)\{C\}}{AC=EF and $C \in [AB)$} \\ @@ -90,7 +90,7 @@ defines the macro \tkzcname{dAB}. \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{(pt1,pt2)\{name of macro\}} {\tkzcname{tkzCalcLength}[pt](A,B)}{\tkzcname{dAB} gives $AB$ in pt} \bottomrule @@ -153,15 +153,15 @@ The macro \tkzcname{tkzDefCircle[radius](A,B)} defines the radius that we retrie \subsection{Transformation from pt to cm or cm to pt} Not sure if this is necessary and it is only a division by 28.45274 and a multiplication by the same number. The macros are: -\begin{NewMacroBox}{tkzpttocm}{\parg{nombre}\marg{name of macro}}% +\begin{NewMacroBox}{tkzpttocm}{\parg{number}\marg{name of macro}}% The result is stored in a macro. \medskip \begin{tabular}{lll}% \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule -\TAline{(nombre){name of macro}} {\tkzcname{tkzpttocm}(120)\{len\}}{\tkzcname{len} donne un nombre de tkzname{cm}} +\TAline{(number)\{name of macro\}} {\tkzcname{tkzpttocm}(120)\{len\}}{\tkzcname{len} gives a number of tkzname{cm}} \bottomrule \end{tabular} @@ -170,15 +170,15 @@ You'll have to use \tkzcname{len} along with \tkzname{cm}. \end{NewMacroBox} \subsection{Change of unit} -\begin{NewMacroBox}{tkzcmtopt}{\parg{nombre}\marg{name of macro}}% +\begin{NewMacroBox}{tkzcmtopt}{\parg{number}\marg{name of macro}}% The result is stored in a macro. \medskip \begin{tabular}{lll} \toprule -arguments & example & explication \\ +arguments & example & explanation \\ \midrule -\TAline{(nombre)\{name of macro\}}{\tkzcname{tkzcmtopt}(5)\{len\}}{\tkzcname{len} longueur en \tkzname{pts}} +\TAline{(number)\{name of macro\}}{\tkzcname{tkzcmtopt}(5)\{len\}}{\tkzcname{len} length in \tkzname{pts}} \bottomrule \end{tabular} @@ -197,7 +197,7 @@ arguments & example & explication \\ %<--------------------------------------------------------------------------–> \begin{NewMacroBox}{tkzGetPointCoord}{\parg{$A$}\marg{name of macro}}% \begin{tabular}{lll}% -arguments & example & explication \\ +arguments & example & explanation \\ \midrule \TAline{(point)\{name of macro\}} {\tkzcname{tkzGetPointCoord}(A)\{A\}}{\tkzcname{Ax} and \tkzcname{Ay} give coordinates for $A$} \end{tabular} @@ -237,4 +237,26 @@ Stores in two macros the coordinates of a point. If the name of the macro is \tk \tkzDrawSegment[->,purple](b,c) \end{tikzpicture} \end{tkzexample} + +\subsection{Swap labels of points} + +\begin{NewMacroBox}{tkzSwapPoints}{\parg{$pt1$,$pt2$}}% +\begin{tabular}{lll}% +arguments & example & explanation \\ +\midrule +\TAline{(pt1,pt2)} {\tkzcname{tkzSwapPoints}(A,B)}{now $A$ has the coordinates of $B$ } +\end{tabular} + +\emph{The points have exchanged their coordinates.} +\end{NewMacroBox} +\subsubsection{Example} + +\begin{tkzexample}[width=6cm,small] +\begin{tikzpicture} + \tkzDefPoints{0/0/O,5/-1/A,2/2/B} + \tkzSwapPoints(A,B) + \tkzDrawPoints(O,A,B) + \tkzLabelPoints(O,A,B) +\end{tikzpicture} +\end{tkzexample} \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-triangles.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-triangles.tex index 990862afff..7eb2875ec7 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-triangles.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-triangles.tex @@ -163,18 +163,17 @@ This triangle has sides whose lengths are proportional to 3, 4 and 5. \end{tkzexample} \subsubsection{Option \tkzname{gold} } -\begin{tkzexample}[latex=7 cm,small] +\begin{tkzexample}[latex=6 cm,small] \begin{tikzpicture} - \tkzDefPoints{0/0/A,4/0/B} - \tkzDefTriangle[gold](A,B) - \tkzGetPoint{C} - \tkzDrawPolygon(A,B,C) - \tkzDrawPoints(A,B,C) - \tkzLabelPoints(A,B) - \tkzLabelPoints[above](C) - \tkzLabelAngle[pos=0.8](B,A,C){$36^\circ$} - \tkzLabelAngle[pos=0.8](C,B,A){$72^\circ$} - \tkzLabelAngle[pos=0.8](A,C,B){$72^\circ$} + \tkzDefPoints{0/0/A,4/0/B} + \tkzDefTriangle[gold](A,B) + \tkzGetPoint{C} + \tkzDrawPolygon(A,B,C) + \tkzDrawPoints(A,B,C) + \tkzLabelPoints(B) \tkzLabelPoints[below](A,C) + \tkzLabelAngle[pos=0.8](C,A,B){$36^\circ$} + \tkzLabelAngle[pos=0.8](A,B,C){$72^\circ$} + \tkzLabelAngle[pos=0.8](B,C,A){$72^\circ$} \end{tikzpicture} \end{tkzexample} @@ -196,7 +195,7 @@ This triangle has sides whose lengths are proportional to 3, 4 and 5. \end{tikzpicture} \end{tkzexample} -\section{Specific triangles with \tkzcname{tkzDefSpcTriangle}} +\subsection{Specific triangles with \tkzcname{tkzDefSpcTriangle}} The centers of some triangles have been defined in the "points" section, here it is a question of determining the three vertices of specific triangles. @@ -227,7 +226,7 @@ options & default & definition \\ \end{NewMacroBox} -\subsection{How to name the vertices} +\subsubsection{How to name the vertices} With \tkzcname{tkzDefSpcTriangle[medial,name=M](A,B,C)\{\_A,\_B,\_C\}} you get three vertices named $M_A$, $M_B$ and $M_C$. @@ -260,7 +259,7 @@ In the following example, we obtain the Euler circle which passes through the pr \end{tikzpicture} \end{tkzexample} -\subsection{Option \tkzname{in} or \tkzname{incentral} } +\subsubsection{Option \tkzname{in} or \tkzname{incentral} } The incentral triangle is the triangle whose vertices are determined by the intersections of the reference triangle’s angle bisectors with the @@ -286,7 +285,7 @@ respective opposite sides. \end{tikzpicture} \end{tkzexample} -\subsection{Option \tkzname{ex} or \tkzname{excentral} } +\subsubsection{Option \tkzname{ex} or \tkzname{excentral} } The excentral triangle of a triangle $ABC$ is the triangle $J_aJ_bJ_c$ with vertices corresponding to the excenters of $ABC$. @@ -308,7 +307,7 @@ The excentral triangle of a triangle $ABC$ is the triangle $J_aJ_bJ_c$ with vert \end{tkzexample} -\subsection{Option \tkzname{intouch} or \tkzname{contact}} +\subsubsection{Option \tkzname{intouch} or \tkzname{contact}} The contact triangle of a triangle $ABC$, also called the intouch triangle, is the triangle formed by the points of tangency of the incircle of $ABC$ with $ABC$.\\ \href{http://mathworld.wolfram.com/ContactTriangle.html}{Weisstein, Eric W. "Contact triangle" From MathWorld--A Wolfram Web Resource.} @@ -330,11 +329,11 @@ We obtain the intersections of the bisectors with the sides. \end{tikzpicture} \end{tkzexample} -\subsection{Option \tkzname{extouch}} +\subsubsection{Option \tkzname{extouch}} The extouch triangle $T_aT_bT_c$ is the triangle formed by the points of tangency of a triangle $ABC$ with its excircles $J_a$, $J_b$, and $J_c$. The points $T_a$, $T_b$, and $T_c$ can also be constructed as the points which bisect the perimeter of $A_1A_2A_3$ starting at $A$, $B$, and $C$.\\ \href{http://mathworld.wolfram.com/ExtouchTriangle.html}{Weisstein, Eric W. "Extouch triangle" From MathWorld--A Wolfram Web Resource.} -We obtain the points of contact of the exinscribed circles as well as the triangle formed by the centres of the exinscribed circles. +We obtain the points of contact of the exinscribed circles as well as the triangle formed by the centers of the exinscribed circles. \begin{tkzexample}[latex=8cm,small] \begin{tikzpicture}[scale=.7] @@ -365,7 +364,7 @@ We obtain the points of contact of the exinscribed circles as well as the triang \end{tikzpicture} \end{tkzexample} -\subsection{Option \tkzname{orthic}} +\subsubsection{Option \tkzname{orthic}} Given a triangle $ABC$, the triangle $H_AH_BH_C$ whose vertices are endpoints of the altitudes from each of the vertices of ABC is called the orthic triangle, or sometimes the altitude triangle. The three lines $AH_A$, $BH_B$, and $CH_C$ are concurrent at the orthocenter H of ABC. @@ -395,7 +394,7 @@ Given a triangle $ABC$, the triangle $H_AH_BH_C$ whose vertices are endpoints of \end{tikzpicture} \end{tkzexample} -\subsection{Option \tkzname{feuerbach}} +\subsubsection{Option \tkzname{feuerbach}} The Feuerbach triangle is the triangle formed by the three points of tangency of the nine-point circle with the excircles.\\ \href{http://mathworld.wolfram.com/FeuerbachTriangle.html}{Weisstein, Eric W. "Feuerbach triangle" From MathWorld--A Wolfram Web Resource.} @@ -426,7 +425,7 @@ The Feuerbach triangle is the triangle formed by the three points of tangency of \end{tikzpicture} \end{tkzexample} -\subsection{Option \tkzname{tangential}} +\subsubsection{Option \tkzname{tangential}} The tangential triangle is the triangle $T_aT_bT_c$ formed by the lines tangent to the circumcircle of a given triangle $ABC$ at its vertices. It is therefore antipedal triangle of $ABC$ with respect to the circumcenter $O$.\\ \href{http://mathworld.wolfram.com/TangentialTriangle.html}{Weisstein, Eric W. "Tangential Triangle." From MathWorld--A Wolfram Web Resource. } @@ -448,7 +447,7 @@ The tangential triangle is the triangle $T_aT_bT_c$ formed by the lines tangent \end{tikzpicture} \end{tkzexample} -\subsection{Option \tkzname{euler}} +\subsubsection{Option \tkzname{euler}} The Euler triangle of a triangle $ABC$ is the triangle $E_AE_BE_C$ whose vertices are the midpoints of the segments joining the orthocenter $H$ with the respective vertices. The vertices of the triangle are known as the Euler points, and lie on the nine-point circle. \\ \href{https://mathworld.wolfram.com/EulerTriangle.html}{Weisstein, Eric W. "Euler Triangle." From MathWorld--A Wolfram Web Resource.} @@ -482,7 +481,7 @@ The Euler triangle of a triangle $ABC$ is the triangle $E_AE_BE_C$ whose vertice \end{tikzpicture} \end{tkzexample} -\subsection{Option \tkzname{euler} and Option \tkzname{orthic}} +\subsubsection{Option \tkzname{euler} and Option \tkzname{orthic}} \begin{tkzexample}[vbox,small] \begin{tikzpicture}[scale=1.25] \tkzDefPoints{0/0/A,6/0/B,0.8/4/C} @@ -509,7 +508,7 @@ The Euler triangle of a triangle $ABC$ is the triangle $E_AE_BE_C$ whose vertice \end{tkzexample} -\subsection{Option \tkzname{symmedial}} +\subsubsection{Option \tkzname{symmedial}} The symmedial triangle$ K_AK_BK_C$ is the triangle whose vertices are the intersection points of the symmedians with the reference triangle $ABC$. \begin{tkzexample}[latex=7cm,small] @@ -525,5 +524,52 @@ The symmedial triangle$ K_AK_BK_C$ is the triangle whose vertices are the inters \tkzLabelPoints[font=\scriptsize](A,B,C,K,K_A,K_B,K_C) \end{tikzpicture} \end{tkzexample} - + +\subsection{Permutation of two points of a triangle} + +\begin{NewMacroBox}{tkzPermute}{\parg{$pt1$,$pt2$,$pt3$}}% +\begin{tabular}{lll}% +arguments & example & explanation \\ +\midrule +\TAline{(pt1,pt2,pt3)} {\tkzcname{tkzPermute}(A,B,C)}{$A$, $\widehat{B,A,C}$ are unchanged, $B$, $C$ exchange their position} +\midrule +\end{tabular} + +\emph{The triangle is unchanged.} +\end{NewMacroBox} + +\subsubsection{Modification of the \tkzname{school} triangle} +This triangle is constructed from the segment $[AB]$ on $[A,x)$ +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture} + \tkzDefPoints{0/0/A,4/0/B,6/0/x} + \tkzDefTriangle[school](A,B) + \tkzGetPoint{C} + \tkzDrawSegments(A,B B,x) + \tkzDrawSegments(A,C B,C) + \tkzDrawPoints(A,B,C) + \tkzLabelPoints(A,B,C,x) + \tkzMarkRightAngles(C,B,A) +\end{tikzpicture} +\end{tkzexample} + +If we want the segment $[AC]$ to be on $[A,x)$, we just have to swap $B$ and $C$. + +\begin{tkzexample}[latex=7cm,small] +\begin{tikzpicture} + \tkzDefPoints{0/0/A,4/0/B,6/0/x} + \tkzDefTriangle[school](A,B) + \tkzGetPoint{C} + \tkzPermute(A,B,C) + \tkzDrawSegments(A,B C,x) + \tkzDrawSegments(A,C B,C) + \tkzDrawPoints(A,B,C) + \tkzLabelPoints(A,C,x) + \tkzLabelPoints[above](B) + \tkzMarkRightAngles(C,B,A) +\end{tikzpicture} +\end{tkzexample} + +Remark: Only the first point is unchanged. The order of the last two parameters is not important. + \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf b/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf Binary files differindex f00c25c789..276253b32c 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf +++ b/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg index fee32ea5fc..36ed515b7b 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg @@ -16,9 +16,9 @@ % and save the file in a directory part of your TEXINPUTS environment % variable. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-euclide.cfg} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-euclide.cfg} %<------ colors ---------------------------------------–> \def\tkz@backgroundcolor{white} \def\tkz@textcolor{black} @@ -133,7 +133,8 @@ \tikzset{line style/.style = {line width = \tkz@euc@linewidth, color = \tkz@euc@linecolor, style = \tkz@euc@linestyle, - add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}% + add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}, + line cap = round } } \tikzset{label seg style/.style = {color = \tkz@mainlinecolor, @@ -178,9 +179,79 @@ fill = \tkz@fillcolor, left = 3pt} } -%<--------------------------- vector --------------------------------------–> -\tikzset{vector style/.style={>=latex,->} +% +%<--------------------------- arrow --------------------------------------–> +% Syntax: +% +% - tkz arrow=<arrow end tip>` +% - tkz arrow=<arrow end tip> at <pos> (<pos> = .5 by default) +% - tkz arrow={<arrow end tip>[<arrow options>] at <pos>} +% +% +% Example usages: +% +% \draw[tkz arrow=Stealth] (A) -- (B); +% \draw[tkz arrow={To[scale=3] at .3}] (A)-- (B); +% \draw[tkz arrow={Latex[scale=5,blue] at .8}] (A)-- (B); + +\tikzset{ +tkz arrow/.default=Latex, + tkz arrow/.code=% + {% + \pgfutil@in@{ at }{#1}% + \ifpgfutil@in@ + \mytikz@parsearrow#1\mytikz@stop + \else + \mytikz@parsearrow#1 at .5\mytikz@stop + \fi + } +} +\def\mytikz@parsearrow#1 at #2\mytikz@stop{% + \pgfutil@in@{[}{#1}% + \ifpgfutil@in@ + \mytikz@parsearrow@opt{#2}#1\mytikz@stop + \else + \mytikz@parsearrow@opt{#2}#1[]\mytikz@stop + \fi } + +% #1 = pos, #2 = arrow end tip, #3 = arrow options +\def\mytikz@parsearrow@opt#1#2[#3]\mytikz@stop{% + \pgfkeysalso{decoration={ + markings, + mark=at position #1 with {\arrow[#3]{#2}} + }, + postaction={decorate} + }% +} +%<-------------------------------------------------------------------------> +\tikzset{ + on each path/.style={ + decorate, + decoration={ + show path construction, + moveto code={}, + lineto code={ + \path [#1] + (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast); + }, + curveto code={ + \path [#1] (\tikzinputsegmentfirst) + .. controls + (\tikzinputsegmentsupporta) and (\tikzinputsegmentsupportb) + .. + (\tikzinputsegmentlast); + }, + closepath code={ + \path [#1] + (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast); + }}}} + %<--------------------------- arrows --------------------------------------–> +\tikzset{tkz arrows/.style=% +{postaction={on each path={tkz arrow={Latex[scale=2,color=black]}}}}} +%<--------------------------- vector --------------------------------------–> +\tikzset{vector style/.style={>=Latex,->}} +%<--------------------------- tkzdotted --------------------------------------–> \tikzset{tkzdotted/.style={% dash pattern=on 0.4\pgflinewidth off #1\pgflinewidth,line cap=round, shorten >=#1\pgflinewidth/2,shorten <=#1\pgflinewidth/2, tkzdotted/.default=8}} diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty index ffe08e9468..e59c97fa0f 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty @@ -10,11 +10,11 @@ % The Current Maintainer of this work is Alain Matthes. %<------------------------------------------------------------> -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-euclide.sty} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-euclide.sty} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tkz-euclide}[ 2022/01/19 4.03 for pure Euclidean Geometry ] +\ProvidesPackage{tkz-euclide}[ 2022/02/07 4.05b for pure Euclidean Geometry ] \@ifpackageloaded{tkz-base}{ \newdimen\tkzRadius @@ -23,6 +23,7 @@ \newif\iftkz@line@normed \newif\ifnormtkzcode@execute% german ? right angle \newif\iftkz@swap@sc%---------------------- semi circle +\newif\iftkz@swap@tr }{ \RequirePackage{tikz} \usetikzlibrary{angles, @@ -64,6 +65,16 @@ \newif\iftkz@vec@normed %--------------------- lines \newif\iftkz@line@normed +%--------------------- circles +\newif\iftkzClipOutCircle +%--------------------- polygons +\newif\iftkzClipOutPoly +%--------------------- triangles +\newif\iftkz@swap@tr +\newif\iftkz@permute +%--------------------- intersections +\newif\iftkzFlagLC\tkzFlagLCfalse +\newif\iftkzFlagCC\tkzFlagCCfalse %--------------------- tkz axis \newif\iftkz@X@noticks \newif\iftkz@Y@noticks @@ -76,6 +87,7 @@ \newif\iftkz@np \newif\iftkz@swap \newif\iftkz@init@NO +\newif\iftkz@integer \newif\iftkz@Rep@orig%--------------------- Rep \newif\iftkzLengthIncm%--------------------- Math \newif\iftkz@sop@show%--------------------- marks diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex index 86bb1c2f75..88edcbd70e 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-lib-eu-marks.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-lib-eu-marks.tex} \makeatletter %<--------------------------------------------------------------------------–> % Création des symboles diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex index 2445260c3e..66824d184b 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-lib-eu-shape.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-lib-eu-shape.tex} \makeatletter %<--------------------------------------------------------------------------–> % Création des symboles diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex index e7ba177379..65e0c5b944 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex @@ -10,22 +10,21 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-axesmin} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-axesmin} \makeatletter -\newif\ifinteger \def\removedot#1.{#1} \newcommand\tkzgetinteger[1]{\expandafter\tkz@getinteger#1.\@nil} \def\tkz@getinteger#1.#2\@nil{% \ifx\empty#2\empty - \integertrue + \tkz@integertrue \else \ifnum\removedot#2=0 - \integertrue + \tkz@integertrue \else - \integerfalse + \tkz@integerfalse \fi \fi } diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex index 506ec8c739..0fcc4f210f 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-circles.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-circles.tex} \makeatletter %<--------------------------------------------------------------------------–> % tkzCircle center and one point diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex index 7ea8b3136d..9f0168d835 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-circles.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-circles.tex} \makeatletter %<--------------------------------------------------------------------------–> % tkzCircle center and one point diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex index 30e07a08a8..3ecb646303 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-compass.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-compass.tex} \makeatletter %<--------------------------------------------------------------------------–> % Author Alain Matthes diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex index 0818c0fd26..6b5ed5ae7e 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-tool-eu-angles.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-tool-eu-angles.tex} \makeatletter %<--------------------------------------------------------------------------–> % tkzSetUpArc @@ -202,25 +202,25 @@ color = teal!20, size = 4pt, pos = .5, - mark = |, + mark = none, /@tkzmarkarc/.search also={/tikz}, } \def\tkzMarkArc{\pgfutil@ifnextchar[{\tkz@MarkArc}{\tkz@MarkArc[]}} \def\tkz@MarkArc[#1](#2,#3,#4){% \begingroup \pgfqkeys{/@tkzmarkarc}{#1} \def\tkz@mymarkarc{\pgfsetplotmarksize{\tkz@mkarcsize}\pgfuseplotmark{\tkz@markarcseg}} - \tkz@@CalcLength(#2,#3){tkz@radius} - \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstAngle} - \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@SecondAngle} - \pgfmathparse{\tkz@FirstAngle}\edef\tkz@FirstAngle{\pgfmathresult}% - \pgfmathparse{\tkz@SecondAngle}\edef\tkz@SecondAngle{\pgfmathresult}% - \pgfmathgreaterthan{\tkz@FirstAngle}{0} - \ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} - \ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathsubtract{\tkz@FirstAngle}{360} - \edef\tkz@FirstAngle{\pgfmathresult}% - \fi +\tkz@@CalcLength(#2,#3){tkz@radius} +\tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstAngle} +\tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@SecondAngle} +\pgfmathparse{\tkz@FirstAngle}\edef\tkz@FirstAngle{\pgfmathresult}% +\pgfmathparse{\tkz@SecondAngle}\edef\tkz@SecondAngle{\pgfmathresult}% +\pgfmathgreaterthan{\tkz@FirstAngle}{0} +\ifdim\pgfmathresult pt=1 pt\relax% + \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} + \ifdim\pgfmathresult pt=1 pt\relax% + \pgfmathsubtract{\tkz@FirstAngle}{360} + \edef\tkz@FirstAngle{\pgfmathresult}% +\fi \else \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} \ifdim\pgfmathresult pt=1 pt\relax% @@ -232,46 +232,43 @@ \edef\tkz@FirstAngle{\pgfmathresult}% \pgfmathadd{\tkz@SecondAngle}{\tkz@delta} \edef\tkz@SecondAngle{\pgfmathresult} - \begin{scope}[decoration={markings, - mark=at position \tkz@mkarcpos with {\tkz@mymarkarc}}] - \path[shift = {(#2)},\tkz@mkcolor,/@tkzmarkarc/.cd,#1,postaction={decorate}]% - (\tkz@FirstAngle:\tkz@radius pt) arc (\tkz@FirstAngle:\tkz@SecondAngle:\tkz@radius pt); - \end{scope} +\begin{scope}[decoration={markings,mark=at position \tkz@mkarcpos with {\tkz@mymarkarc}}] +\path[shift = {(#2)},\tkz@mkcolor,/@tkzmarkarc/.cd,#1,postaction={decorate}]% +(\tkz@FirstAngle:\tkz@radius pt) arc (\tkz@FirstAngle:\tkz@SecondAngle:\tkz@radius pt); +\end{scope} \endgroup } \def\tkzLabelArc{\pgfutil@ifnextchar[{\tkz@LabelArc}{\tkz@LabelArc[]}} \def\tkz@LabelArc[#1](#2,#3,#4)#5{% \begingroup - \pgfqkeys{/@tkzmarkarc}{#1} - \tkz@@CalcLength(#2,#3){tkz@radius} - \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstAngle} - \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@SecondAngle} - \pgfmathparse{\tkz@FirstAngle}\edef\tkz@FirstAngle{\pgfmathresult}% - \pgfmathparse{\tkz@SecondAngle}\edef\tkz@SecondAngle{\pgfmathresult}% - \pgfmathgreaterthan{\tkz@FirstAngle}{0} - \ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} - \ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathsubtract{\tkz@FirstAngle}{360} - \edef\tkz@FirstAngle{\pgfmathresult}% - \fi - \else - \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} - \ifdim\pgfmathresult pt=1 pt\relax% - \pgfmathadd{\tkz@SecondAngle}{360} - \edef\tkz@SecondAngle{\pgfmathresult}% +\pgfqkeys{/@tkzmarkarc}{#1} +\tkz@@CalcLength(#2,#3){tkz@radius} +\tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstAngle} +\tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@SecondAngle} +\pgfmathparse{\tkz@FirstAngle}\edef\tkz@FirstAngle{\pgfmathresult}% +\pgfmathparse{\tkz@SecondAngle}\edef\tkz@SecondAngle{\pgfmathresult}% +\pgfmathgreaterthan{\tkz@FirstAngle}{0} +\ifdim\pgfmathresult pt=1 pt\relax% +\pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} + \ifdim\pgfmathresult pt=1 pt\relax% + \pgfmathsubtract{\tkz@FirstAngle}{360} + \edef\tkz@FirstAngle{\pgfmathresult}% \fi - \fi - \pgfmathsubtract{\tkz@FirstAngle}{\tkz@delta} - \edef\tkz@FirstAngle{\pgfmathresult}% - \pgfmathadd{\tkz@SecondAngle}{\tkz@delta} - \edef\tkz@SecondAngle{\pgfmathresult} - \begin{scope}[decoration={markings, - mark=at position \tkz@mkarcpos with \node{#5};}] - \path[shift = {(#2)},/@tkzmarkarc/.cd,#1,postaction={decorate}]% - (\tkz@FirstAngle:\tkz@radius pt) arc (\tkz@FirstAngle:\tkz@SecondAngle:\tkz@radius pt); - \end{scope} +\else +\pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle} + \ifdim\pgfmathresult pt=1 pt\relax% + \pgfmathadd{\tkz@SecondAngle}{360} + \edef\tkz@SecondAngle{\pgfmathresult}% + \fi +\fi +\pgfmathsubtract{\tkz@FirstAngle}{\tkz@delta} +\edef\tkz@FirstAngle{\pgfmathresult}% +\pgfmathadd{\tkz@SecondAngle}{\tkz@delta} +\edef\tkz@SecondAngle{\pgfmathresult} +\begin{scope}[decoration={markings,mark=at position \tkz@mkarcpos with \node{#5};}] + \path[shift = {(#2)},/@tkzmarkarc/.cd,#1,postaction={decorate}]% + (\tkz@FirstAngle:\tkz@radius pt) arc (\tkz@FirstAngle:\tkz@SecondAngle:\tkz@radius pt); \end{scope} \endgroup } %<---------------------------------------------------------------------------> diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex index 963f0f7da7..95c29886e1 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-draw-circles.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-draw-circles.tex} \makeatletter @@ -186,7 +186,6 @@ } %<--------------------------- Clip Circle ---------------------------------–> -\newif\iftkzClipOutCircle \def\tkz@numcc{0} \pgfkeys{/tkzclipc/.cd, through/.code = \def\tkz@numcoc{0}, diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex index 41c11c1c66..3b07d9f9ca 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-draw-lines.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-draw-lines.tex} \makeatletter \def\tkz@numdl{0} @@ -20,7 +20,7 @@ /tkzdrawl/.search also={/tikz} } %<--------------------------------------------------------------------------–> -% Drawing a line > +% Drawing a line %<--------------------------------------------------------------------------–> \def\tkzDrawLine{\pgfutil@ifnextchar[{\tkz@DrawLine}{\tkz@DrawLine[]}} \def\tkz@DrawLine[#1](#2,#3){% @@ -42,8 +42,7 @@ \next#2\@nil } %<--------------------------------------------------------------------------–> -\def\tkzDrawLines{\pgfutil@ifnextchar[{\tkz@DrawLines}{% - \tkz@DrawLines[]}} +\def\tkzDrawLines{\pgfutil@ifnextchar[{\tkz@DrawLines}{\tkz@DrawLines[]}} \def\tkz@DrawLines[#1](#2){% \xdef\tkz@optline{#1} \begingroup @@ -107,7 +106,7 @@ \def\tkz@multiDrawSeg#1 #2\@nil{% \protected@edef\tkz@temp{ - \noexpand \tkzDrawSegment[\tkz@optseg](#1)}\tkz@temp% + \noexpand \tkzDrawSegment[\tkz@optseg](#1)}\tkz@temp% \def\tkz@nextArg{#2}% \ifx\tkzutil@empty\tkz@nextArg \let\next\@gobble @@ -120,7 +119,7 @@ \def\tkz@optseg{#1} \begingroup \let\next\tkz@multiDrawSeg - \next#2 \@nil % + \next#2 \@nil % \endgroup } %<--------------------------------------------------------------------------–> diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex index 951cc0c629..fae41863a7 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-polygons.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-polygons.tex} \makeatletter %<--------------------------------------------------------------------------–> % Polygon @@ -24,7 +24,7 @@ \tkz@DrawPolygon[]}} \def\tkz@DrawPolygon[#1](#2,#3){% \begingroup - \draw[line style,#1] (#2) + \draw[line style,line join=round,#1] (#2) \foreach \pt in {#2,#3}{--(\pt)}--cycle;% \endgroup } @@ -73,7 +73,7 @@ {\tkz@DrawRectangle[]}} \def\tkz@DrawRectangle[#1](#2,#3){% \begingroup - \draw[#1](#2) -| (#3) -| (#2); + \draw[line join=round,#1](#2) -| (#3) -| (#2); \endgroup } %<-------------------------- gold rectangle -------------------------------–> @@ -113,7 +113,6 @@ % %<--------------------------------------------------------------------------–> -\newif\iftkzClipOutPoly% \pgfkeys{tkzclippolygon/.cd, out code/.is if = tkzClipOutPoly, out/.code = \tkzClipOutPolyfalse} diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex index e6e1a161b3..4679ab85d1 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-draw-triangles.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-draw-triangles.tex} \makeatletter %<--------------------------------------------------------------------------–> % Draw Triangles @@ -65,7 +65,7 @@ \or% 9 \tkzDefIsoscelesRightTriangle(#2,#3) \fi - \draw[/drawtriangle/.cd,line style,#1] (#2)--(#3)--(tkzPointResult)--cycle; + \draw[/drawtriangle/.cd,line style,line join=round,#1] (#2)--(#3)--(tkzPointResult)--cycle; \endgroup } diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex index 2febd43328..207b537c61 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-grids.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-grids.tex} \makeatletter %<--------------------------------------------------------------------------–> % Setup Grid diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex index 8f9811c76f..fddfca0723 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-lines.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-lines.tex} \makeatletter %<--------------------------------------------------------------------------–> % les lignes @@ -205,12 +205,18 @@ %<-------------------------------------------------------------------------–> \def\tkzTgtFromP(#1,#2)(#3){% \begingroup - \tkzDefMidPoint(#1,#3) \tkz@@CalcLengthcm(#1,#2){tkz@radone} + \tkzDefMidPoint(#1,#3) \tkz@@CalcLengthcm(tkzPointResult,#1){tkz@radtwo} \tkzInterCCR(#1,\tkz@radone)(tkzPointResult,\tkz@radtwo){% - tkzFirstPointResult}{% - tkzSecondPointResult}% + tkzFirstPointResult}{tkzSecondPointResult}% + \tkzFindAngle(#3,tkzFirstPointResult,#1) \tkzGetAngle{tkz@an} + \ifdim\tkz@an pt<180 pt\relax% + \else + \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} + \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} + \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} + \fi \endgroup } %<-------------------------------------------------------------------------–> @@ -221,6 +227,13 @@ \tkzInterCCR(#1,#2)(tkzPointResult,\tkzLengthResult){% tkzFirstPointResult}{% tkzSecondPointResult}% + \tkzFindAngle(#3,tkzFirstPointResult,#1) \tkzGetAngle{tkz@an} + \ifdim\tkz@an pt<180 pt\relax% + \else + \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} + \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} + \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} + \fi \endgroup } %<--------------------------------------------------------------------------–> diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex index b10b308f35..4def351f35 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-tools-el-points-by.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-tools-el-points-by.tex} \makeatletter %<--------------------------------------------------------------------------–> % Transformations Géométriques @@ -44,9 +44,12 @@ \def\tkz@numtrsf{7}}, inversion negative/.code args={center #1 through #2}{ \def\tkzcenter{#1}% \def\tkzpoint{#2}% - \def\tkz@numtrsf{8}} -% inversion négative ? -} + \def\tkz@numtrsf{8}}, + rotation with nodes/.code args={center #1 from #2 to #3}{ \def\tkzcenter{#1}% + \def\tkzfrom{#2}% + \def\tkzto{#3}% + \def\tkz@numtrsf{9}} +} %<--------------------------------------------------------------------------–> \def\tkzDefPointBy{\pgfutil@ifnextchar[{\tkz@DefPointBy}{\tkz@DefPointBy[]}} \def\tkz@DefPointBy[#1](#2){% @@ -71,7 +74,9 @@ \tkzUInversePoint(\tkzcenter,\tkzpoint)(#2) \or% 8 \tkzUInverseNegativePoint(\tkzcenter,\tkzpoint)(#2) -\fi +\or% 9 + \tkzURotateWithNodes(\tkzcenter,\tkzfrom,\tkzto)(#2) +\fi \endgroup } %<--------------------------------------------------------------------------–> @@ -97,7 +102,9 @@ \or% 7 \tkzInversePoint(\tkzcenter,\tkzpoint)(#2){#3} \or% 8 - \tkzInverseNegativePoint(\tkzcenter,\tkzpoint)(#2){#3} + \tkzInverseNegativePoint(\tkzcenter,\tkzpoint)(#2){#3} + \or% 9 + \tkzRotateWithNodes(\tkzcenter,\tkzfrom,\tkzto)(#2){#3} \fi \endgroup } @@ -441,6 +448,7 @@ } \endgroup } +%<--------------------------------------------------------------------------–> \def\tkzUInverseNegativePoint(#1,#2)(#3){% \begingroup \tkz@@CalcLengthcm(#1,#2){tkz@lna}% @@ -449,7 +457,58 @@ \tkzVecKNorm[\tkz@lnc](#1,#3) \tkzUCSym(#1)(tkzPointResult) \endgroup -} +} +%<--------------------------------------------------------------------------–> +%<--------------- rotate with nodes ------------------------–> +%<--------------------------------------------------------------------------–> +\def\tkzRotateWithNodes(#1,#2,#3)(#4)#5{% +\begingroup +\gdef\tkz@LastList{#5} + \foreach\PointRotWN in {#4}{% + \FirstPointInList\tkz@LastList + \ifx\tkz@FirstPoint\tkzutil@empty + \def\tkz@pointtsf{\PointRotWN '} + \else + \def\tkz@pointtsf{\tkz@FirstPoint} + \fi + \tkzFindAngle(#2,#1,#3) + \tkz@@extractxy{\PointRotWN} + \tkz@ax\pgf@x% + \tkz@ay\pgf@y% + \tkz@@extractxy{#1} + \tkz@bx\pgf@x% + \tkz@by\pgf@y% + \pgfmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}% + {\pgfpoint{\tkz@bx}{\tkz@by}}% + {\tkzAngleResult} + \tkz@bx\pgf@x% + \tkz@by\pgf@y% + \pgfinterruptboundingbox + \path[coordinate](\tkz@bx,\tkz@by) coordinate (\tkz@pointtsf);% + \endpgfinterruptboundingbox +} +\endgroup +} +%<--------------------------------------------------------------------------–> +\def\tkzURotateWithNodes(#1,#2,#3)(#4){% +\begingroup + \tkzFindAngle(#2,#1,#3) + \pgf@process{\pgfpointanchor{#4}{center}}% + \tkz@ax\pgf@x% + \tkz@ay\pgf@y% + \pgf@process{\pgfpointanchor{#1}{center}}% + \tkz@bx\pgf@x% + \tkz@by\pgf@y% + \pgfmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}% + {\pgfpoint{\tkz@bx}{\tkz@by}}% + {\tkzAngleResult} + \tkz@bx\pgf@x% + \tkz@by\pgf@y% + \pgfinterruptboundingbox + \path (\tkz@bx,\tkz@by) coordinate (tkzPointResult);% + \endpgfinterruptboundingbox +\endgroup +} %<--------------------------------------------------------------------------–> % Fin des transformations %<--------------------------------------------------------------------------–> diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex index 11d94cb8f2..b6f51bc53a 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-el-points-rnd.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-el-points-rnd.tex} %<--------------------------------------------------------------------------–> \makeatletter %<-------------------------------------------------------------------------–> diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex index daa2b85a52..09c803dde0 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-el-points.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-el-points.tex} \makeatletter %add ExCenter %<--------------------------------------------------------------------------–> @@ -81,6 +81,28 @@ \endgroup } %<--------------------------------------------------------------------------–> +\def\tkz@simicenter{0} +\pgfkeys{/tkzsimicenter/.cd, + ext/.code = \def\tkz@simicenter{0}, + int/.code = \def\tkz@simicenter{1}, + node/.code = , + R/.code = , + ext +}% + +\def\tkzDefSimilitudeCenter{\pgfutil@ifnextchar[{\tkz@DefSimilitudeCenter}% + {\tkz@DefSimilitudeCenter[]}} +\def\tkz@DefSimilitudeCenter[#1](#2,#3)(#4,#5){% +\pgfqkeys{/tkzsimicenter}{#1} +\begingroup +\ifcase\tkz@simicenter% + \tkzDefExtSimilitudeCenter[#1](#2,#3)(#4,#5) + \or% 1 + \tkzDefIntSimilitudeCenter[#1](#2,#3)(#4,#5) +\fi +\endgroup +} +%<--------------------------------------------------------------------------–> % Internal Similitude center % Two circles have two similitude centers namely the internal center of % similitude Si and the external similitude center Se. @@ -90,7 +112,9 @@ /tkzSimilitudeCenter/.cd, node/.code = \def\tkz@numhomo{0}, R/.code = \def\tkz@numhomo{1}, - node + node, + /tkzSimilitudeCenter/.unknown/.code = {\let\searchname=\pgfkeyscurrentname + \pgfkeysalso{\searchname/.try=#1, /tikz/\searchname/.retry=#1}} } \def\tkzDefIntSimilitudeCenter{\pgfutil@ifnextchar[{\tkz@DefIntSimilitudeCenter}{\tkz@DefIntSimilitudeCenter[]}} \def\tkz@DefIntSimilitudeCenter[#1](#2,#3)(#4,#5){% @@ -131,7 +155,58 @@ } \let\tkzDefExtHomotheticCenter\tkzDefExtSimilitudeCenter +%<--------------------------------------------------------------------------–> +% Harmonic Division +%<--------------------------------------------------------------------------–> +% A , B , C ,D CA/CB = DA/DB +%<--------------------------------------------------------------------------–> +\def\tkz@numdha{0} +\pgfkeys{/tkzharmonic/.cd, + ext/.code = \def\tkz@numdha{0}, + int/.code = \def\tkz@numdha{1}, + both/.code = \def\tkz@numdha{2}, + both, +}% + +\def\tkzDivHarmonic{\pgfutil@ifnextchar[{\tkz@DivHarmonic}{\tkz@DivHarmonic[]}} +\def\tkz@DivHarmonic[#1](#2){% +\begingroup +\pgfqkeys{/tkzharmonic}{#1} + \ifcase\tkz@numdha% + \tkzDefDivHarmonicExt(#2) + \or% + \tkzDefDivHarmonicInt(#2) + \or% + \tkzDefDivHarmonicBoth(#2) + \fi +\endgroup +} +\def\tkzDefDivHarmonicExt(#1,#2,#3){% +\begingroup + \tkz@@CalcLengthcm(#3,#1){tkz@da} + \tkz@@CalcLengthcm(#3,#2){tkz@db} + \path[coordinate] (barycentric cs:#1={-\tkz@db},#2={\tkz@da}) coordinate (tkzPointResult); +\endgroup +} + +\def\tkzDefDivHarmonicInt(#1,#2,#3){% +\begingroup + \tkz@@CalcLengthcm(#3,#1){tkz@da} + \tkz@@CalcLengthcm(#3,#2){tkz@db} + \path[coordinate] (barycentric cs:#1={\tkz@db},#2={\tkz@da}) coordinate (tkzPointResult); +\endgroup +} + +\def\tkzDefDivHarmonicBoth(#1,#2,#3){% +\begingroup +\edef\tkz@k{\fpeval{#3}} + \path[coordinate] (barycentric cs:#1=1,#2={\tkz@k}) coordinate (tkzFirstPointResult); + \path[coordinate] (barycentric cs:#1=1,#2={-\tkz@k}) coordinate (tkzSecondPointResult); +\endgroup +} + +\let\tkzDefHarmonic\tkzDivHarmonic %<--------------------------------------------------------------------------–> % golden ratio %<--------------------------------------------------------------------------–> @@ -510,16 +585,24 @@ %<--------------------------------------------------------------------------–> % Point on circle %<--------------------------------------------------------------------------–> +\def\tkz@numptcirc{0} \pgfkeys{/tkzptcircle/.cd, - angle/.store in = \tkz@angle, - angle = 0 , - center/.store in = \tkz@center, - radius/.store in = \tkz@radius, + through/.code args = {angle #1 center #2 point #3} {\def\tkz@angle{#1}% + \def\tkz@center{#2}% + \def\tkz@through{#3}% + \def\tkz@numptcirc{0}}, + R/.code args = {angle #1 center #2 radius #3} {\def\tkz@angle{#1}% + \def\tkz@center{#2}% + \def\tkz@radius{#3}% + \def\tkz@numptcirc{1}}, } \def\tkzDefPointOnCircle{\pgfutil@ifnextchar[{\tkz@DefPointOnCircle}{\tkz@DefPointOnCircle[]}} \def\tkz@DefPointOnCircle[#1]{% \begingroup \pgfqkeys{/tkzptcircle}{#1} + \ifcase\tkz@numptcirc% + \tkz@@CalcLengthcm(\tkz@center,\tkz@through){tkz@radius} +\fi \path (\tkz@center) --++(\tkz@angle:\tkz@radius) coordinate(tkzPointResult); \endgroup } @@ -532,5 +615,6 @@ \path (#2) to [#1] coordinate (tkzPointResult) (#3); \endgroup } + \makeatother \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex index 5d204fbd85..27951df7ac 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-el-points-with.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-el-points-with.tex} \makeatletter %<--------------------------------------------------------------------------–> % Vectors diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex index 20d0988a82..ecf22fbd9c 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-points.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-points.tex} \makeatletter %<---------------------------------------------------------------------------> % init def point diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex index 871cd6a36d..42f5a4f5ce 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-polygons.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-polygons.tex} % bug in regular polygon side 2020/03/09 \makeatletter %<--------------------------------------------------------------------------–> diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex index ec13a910fd..bb679c6bea 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-protractor.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-protractor.tex} \makeatletter %<--------------------------------------------------------------------------–> % !!! idea from Y. Combe !!! diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex index 7de5a1f1b1..ee07eddbd1 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-sectors.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-sectors.tex} \makeatletter %<----------------------- Sectors ------------------------------–> \gdef\tkz@nums{0} diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex index a22f1534f6..649ab09f7b 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-show.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-show.tex} \makeatletter %<--------------------------------------------------------------------------–> % finding specific points in a triangle diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex index 4ab0ae915e..04d9ea258b 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex @@ -10,11 +10,10 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-triangles.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-triangles.tex} \makeatletter -\newif\iftkz@swap@tr %<--------------------------------------------------------------------------–> % Triangle Equilateral %<--------------------------------------------------------------------------–> @@ -35,7 +34,6 @@ \endgroup } %<--------------------------------------------------------------------------–> - \def\tkzDefIsoscelesRightTriangle{\pgfutil@ifnextchar[{\tkz@DefIsoscelesRightTriangle}{% \tkz@DefIsoscelesRightTriangle[]}} @@ -142,16 +140,16 @@ golden/.code = \def\tkz@numtr{4}, sublime/.code = \def\tkz@numtr{4}, euclid/.code = \def\tkz@numtr{5}, - euclide/.code = \def\tkz@numtr{5}, + euclide/.code = \def\tkz@numtr{5}, gold/.code = \def\tkz@numtr{6}, cheops/.code = \def\tkz@numtr{7}, two angles/.code args = {#1 and #2} { \def\tkz@numtr{8}% \def\tkz@alpha{#1}% \def\tkz@beta{#2}}, isosceles right/.code = \def\tkz@numtr{9}, - swap/.is if = tkz@swap@tr, - swap/.default = true, - swap = false, + swap/.is if = tkz@swap@tr, + swap/.default = true, + swap = false, equilateral } diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex index 9d7af23518..4af6ca4f09 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-obj-eu-BB.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-obj-eu-BB.tex} \makeatletter %<--------------------------------------------------------------------------–> \def\tkzShowBB{\pgfutil@ifnextchar[{\tkz@ShowBB}{\tkz@ShowBB[]}} diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex index 8e28c4a2b3..0748e4462a 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex @@ -10,13 +10,14 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-tools-angles.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-tools-angles.tex} \makeatletter %<--------------------------------------------------------------------------–> %<--------------------------------------------------------------------------–> -% thanks karu : http://tex.stackexchange.com/questions/151667/tkzgetangle-strange-behavior/196224#196224 \tkzGetAngle strange behavior +% thanks karu : http://tex.stackexchange.com/questions/151667/tkzgetangle-strange-behavior/196224#196224 +% \tkzGetAngle strange behavior % defines \tkz@FirstAngle and \tkz@SecondAngle sens trigo %<--------------------------------------------------------------------------–> \def\tkzNormalizeAngle(#1,#2){% diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex index b48a191b1f..9ad90734b2 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-tools-eu-base.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-tools-eu-base.tex} \makeatletter %<--------------------------------------------------------------------------–> \global\let\tkz@tmp@xa\tkz@init@xmin% modif 2016 diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex index 5380ce9257..8f95c8e4ad 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-tools-eu-colors} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-tools-eu-colors} \makeatletter %<------ Initialisation of the colors with tkzSetUpColors -----------------> diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex index fb1633937f..74d351e2e4 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex @@ -13,9 +13,9 @@ % The Current Maintainer of this work is Alain Matthes. % utf8 encoding -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-tools-intersections.tex} +\def\fileversion{4.04} +\def\filedate{2022/01/22} +\typeout{2022/01/22 4.04 tkz-tools-intersections.tex} \makeatletter %<--------------------------------------------------------------------------–> % intersection de deux lignes @@ -127,28 +127,29 @@ \def\tkzTestInterLC(#1,#2)(#3,#4){% \tkz@Projection(#1,#2)(#3){tkz@pth}% distance centre à la ligne \tkz@@CalcLength(#3,tkz@pth){tkz@mathLen}% -\tkz@@CalcLength(#3,#4){tkzLengthResult} +\tkz@@CalcLength(#3,#4){tkzLengthResult}%calcul du rayon \ifdim\tkz@mathLen pt>\tkzLengthResult pt\relax% -\def\tkzflagLC{-1} +\tkzFlagLCfalse \else -\def\tkzflagLC{1} +\tkzFlagLCtrue \fi } %<--------------------------------------------------------------------------–> \def\tkz@numlc{0} \pgfkeys{/linecircle/.cd, - node/.code = \def\tkz@numlc{0}, - R/.code = \def\tkz@numlc{1}, - with nodes/.code = \def\tkz@numlc{2}, - common/.store in = \tkz@common, - common = {}, + node/.code = \def\tkz@numlc{0}, + R/.code = \def\tkz@numlc{1}, + with nodes/.code = \def\tkz@numlc{2}, + common/.store in = \tkz@common, + near/.store in = \tkz@near, + common = {}, + near = {}, node } %<--------------------------------------------------------------------------–> \def\tkzInterLC{\pgfutil@ifnextchar[{\tkz@InterLC}{\tkz@InterLC[]}} \def\tkz@InterLC[#1](#2,#3)(#4,#5){% \begingroup -\pgfkeys{linecircle/.cd} \pgfqkeys{/linecircle}{#1} \pgfinterruptboundingbox \ifcase\tkz@numlc% @@ -164,7 +165,8 @@ {tkzSecondPointResult}% \fi \ifx\tkz@common\tkzutil@empty - \tkzFindAngle(#2,tkzFirstPointResult,#4) \tkzGetAngle{tkz@an} + \ifx\tkz@near\tkzutil@empty + \tkzFindAngle(tkzSecondPointResult,tkzFirstPointResult,#4) \tkzGetAngle{tkz@an} \ifdim\tkz@an pt<180 pt\relax% \else \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} @@ -172,8 +174,18 @@ \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} \fi \else + \tkz@@CalcLength(#2,tkzFirstPointResult){tkzLengthFirst} + \tkz@@CalcLength(#2,tkzSecondPointResult){tkzLengthSecond} + \ifdim \tkzLengthFirst pt < \tkzLengthSecond pt\relax% + \else + \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} + \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} + \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} + \fi + \fi + \else \tkz@@CalcLength(\tkz@common,tkzSecondPointResult){tkz@mathLen} - \ifdim\tkz@mathLen pt<0.05pt\relax% + \ifdim\tkz@mathLen pt<0.1pt\relax% \else \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} @@ -256,60 +268,10 @@ \tkzInterLCR(#1,#2)(#3,\tkz@radius pt){#6}{#7} \endgroup } - -%<--------------------------------------------------------------------------–> -% Intersection de deux cercles -%<--------------------------------------------------------------------------–> -\def\tkz@numcc{0} -\pgfkeys{ -/circlecircle/.cd, - node/.code = {\global\def\tkz@numcc{0}}, - R/.code = {\global\def\tkz@numcc{1}}, - with nodes/.code = {\global\def\tkz@numcc{2}}, - common/.store in = \tkz@common, - common = {}, -} %<--------------------------------------------------------------------------–> -\def\tkzInterCC{\pgfutil@ifnextchar[{\tkz@InterCC}{\tkz@InterCC[]}} -\def\tkz@InterCC[#1](#2,#3)(#4,#5){% -\begingroup -\pgfkeys{/circlecircle/.cd,node} -\pgfqkeys{/circlecircle}{#1} -\ifcase\tkz@numcc% - % first case 0 - \tkz@save@length - \tkz@@CalcLengthcm(#2,#3){tkz@rayA} - \tkz@@CalcLengthcm(#4,#5){tkz@rayB} - \tkz@restore@length - \tkzInterCCR(#2,\tkz@rayA)(#4,\tkz@rayB){tkzFirstPointResult}{% - tkzSecondPointResult} - \or% 1 - \tkzInterCCR(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}% - \or%2 - \tkzInterCCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult} -\fi - \ifx\tkz@common\tkzutil@empty - \tkzFindAngle(#2,tkzFirstPointResult,#4) \tkzGetAngle{tkz@an} - \ifdim\tkz@an pt<180 pt\relax% - \else - \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} - \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} - \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} - \fi - \else -\tkz@@CalcLength(\tkz@common,tkzSecondPointResult){tkz@mathLen} - \ifdim\tkz@mathLen pt<0.05pt\relax% - \else - \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} - \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} - \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} - \fi - \fi -\endgroup -} +% Intersection of 2 circles %<--------------------------------------------------------------------------–> %<--------------------------------------------------------------------------–> - % méthode % /* circle_circle_intersection() * % * Determine the points where 2 circles in a common plane intersect. @@ -385,6 +347,71 @@ % % return 1; % } +%<--------------------------------------------------------------------------–> +% Intersection de deux cercles +%<--------------------------------------------------------------------------–> +%<---------- test ------------------------------------------------------–> +% test avec des nodes +\def\tkzTestInterCC(#1,#2)(#3,#4){% +\tkz@@CalcLength(#1,#3){tkz@mathLen}% distance entre les centres +\tkz@@CalcLength(#2,#1){tkz@rA}%calcul du rayon +\tkz@@CalcLength(#4,#3){tkz@rB}%calcul du rayon +\edef\tkz@rS{\fpeval{\tkz@rA+\tkz@rB}} +\ifdim\tkz@mathLen pt > \tkz@rS pt\relax% +\tkzFlagCCfalse +\else +\tkzFlagCCtrue +\fi +} + +\def\tkz@numcc{0} +\pgfkeys{ +/circlecircle/.cd, + node/.code = \def\tkz@numcc{0}, + R/.code = \def\tkz@numcc{1}, + with nodes/.code = \def\tkz@numcc{2}, + common/.store in = \tkz@common, + common = {}, + node +} +%<--------------------------------------------------------------------------–> +\def\tkzInterCC{\pgfutil@ifnextchar[{\tkz@InterCC}{\tkz@InterCC[]}} +\def\tkz@InterCC[#1](#2,#3)(#4,#5){% +\begingroup +\pgfqkeys{/circlecircle}{#1} +\ifcase\tkz@numcc% + % first case 0 + \tkz@save@length + \tkz@@CalcLengthcm(#2,#3){tkz@rayA} + \tkz@@CalcLengthcm(#4,#5){tkz@rayB} + \tkz@restore@length + \tkzInterCCR(#2,\tkz@rayA)(#4,\tkz@rayB){tkzFirstPointResult}{% + tkzSecondPointResult} + \or% 1 + \tkzInterCCR(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}% + \or%2 + \tkzInterCCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult} +\fi + \ifx\tkz@common\tkzutil@empty + \tkzFindAngle(#2,tkzFirstPointResult,#4) \tkzGetAngle{tkz@an} + \ifdim\tkz@an pt<180 pt\relax% + \else + \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} + \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} + \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} + \fi + \else +\tkz@@CalcLength(\tkz@common,tkzSecondPointResult){tkz@mathLen} + \ifdim\tkz@mathLen pt<0.05pt\relax% + \else + \pgfnodealias{tkzPointTmp}{tkzSecondPointResult} + \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult} + \pgfnodealias{tkzFirstPointResult}{tkzPointTmp} + \fi + \fi +\endgroup +} +%<--------------------------------------------------------------------------–> \def\tkzInterCCR(#1,#2)(#3,#4)#5#6{% \begingroup diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex index 3cc9943e8e..9efc3f10ab 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-tools-eu-math.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-tools-eu-math.tex} \makeatletter %<--------------------------------------------------------------------------> % \tkzpointnormalised# @@ -54,7 +54,6 @@ % \veclen mais avec fp % option cm le résultat est en cm sinon en pt %<--------------------------------------------------------------------------> -%\newif\iftkzLengthIncm \iftkzLengthIncmtrue \pgfkeys{tkzcalclen/.cd, cm/.is if = tkzLengthIncm, cm/.default = true, diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex index 7ac948f2db..04db27c968 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-tools-utilities.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-tools-utilities.tex} \makeatletter %<------------- % chargement des modules ----------------------------------> \def\tkz@obj@all{angles,arcs,compass,defcircles,deflines,defpoints,defpointsby,defpointsrnd,defpointswith,polygons,protractor,sectors,show,triangles}% diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex index 3f419f19bd..36da262f36 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-tools-eu-text.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-tools-eu-text.tex} \makeatletter %<--------------------------------------------------------------------------–> % tkzText diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex index 65173a1d3c..3662ead876 100644 --- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex +++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex @@ -10,9 +10,9 @@ % This work has the LPPL maintenance status “maintained”. % The Current Maintainer of this work is Alain Matthes. -\def\fileversion{4.03} -\def\filedate{2022/01/19} -\typeout{2022/01/19 4.03 tkz-tools-eu-utilities.tex} +\def\fileversion{4.05b} +\def\filedate{2022/02/07} +\typeout{2022/02/07 4.05b tkz-tools-eu-utilities.tex} \makeatletter \pgfkeys{/tkzClip/.cd, space/.store in = {\tkz@CLI@space}, @@ -168,5 +168,14 @@ space = {}} } \def\EnabledNumprint{\let\numprint\tkz@numprint} %<---------------------------------------------------------–> +\def\tkzSwapPoints(#1,#2){ + \pgfnodealias{tkzPointTmp}{#2} + \pgfnodealias{#2}{#1} + \pgfnodealias{#1}{tkzPointTmp}} +%<---------------------------------------------------------–> +\def\tkzPermute(#1,#2,#3){ +\tkzURotateWithNodes(#1,#3,#2)(#3) \tkzGetPoint{tkzpt} +\tkzURotateWithNodes(#1,#2,#3)(#2) \tkzGetPoint{#2} +\tkzSwapPoints(tkzpt,#3)} \makeatother \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tkz/tkz-fct/README.md b/macros/latex/contrib/tkz/tkz-fct/README.md index 6f466c6666..c9b8b5413a 100644 --- a/macros/latex/contrib/tkz/tkz-fct/README.md +++ b/macros/latex/contrib/tkz/tkz-fct/README.md @@ -1,6 +1,6 @@ # tkz-fct – Tools for drawing graphs of functions -Release 1.6c 2022/01/27 +Release 1.7c 2022/02/07 ## Description @@ -52,7 +52,9 @@ In order to format the numbers correctly, you place the following two lines Documentation for `tkz-fct` is available on CTAN and in your TeX distribution. ## History -- 1.6c Correction of bug qwhich prevented "tkz" packages from being loaded at the same time. +- 1.7c Correction of the documentation +- 1.6c Correction of bug which prevented "tkz" packages from being loaded at the same time. + Minor corrections to the documentation - 1.5c Added a warning message that tkz-fct must be loaded before tkz-euclide - 1.4c Correction of a bug in the macro \tkzFct. Correction of the documentation. diff --git a/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-main.tex b/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-main.tex index 5c52bae065..dc6f6df150 100644 --- a/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-main.tex +++ b/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-main.tex @@ -19,11 +19,11 @@ ]{tkz-doc} \usepackage{etoc} \gdef\tkznameofpack{tkz-fct} -\gdef\tkzversionofpack{1.5c} -\gdef\tkzdateofpack{2022/01/25} -\gdef\tkznameofdoc{doc-tkz-tab} -\gdef\tkzdateofdoc{2022/01/25} -\gdef\tkzversionofdoc{1.5c} +\gdef\tkzversionofpack{1.7c} +\gdef\tkzdateofpack{2022/02/07} +\gdef\tkznameofdoc{doc-tkz-fct} +\gdef\tkzdateofdoc{2022/02/07} +\gdef\tkzversionofdoc{1.7c} \gdef\tkzauthorofpack{Alain Matthes} \gdef\tkzadressofauthor{} \gdef\tkznamecollection{AlterMundus} @@ -51,7 +51,7 @@ pdfauthor={\tkzauthorofpack}, pdftitle={\tkznameofpack}, pdfkeywords={tikz, pgf, pdf, pdflatex, graphic, euclide,lualatex, - points, maths, graph, gnuplot, angle ,function}, + points, maths, graph, gnuplot, angle, function}, pdfcreator={\tkzengine} } \usepackage{url} diff --git a/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-tangent.tex b/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-tangent.tex index ad5b8088ff..683c10a530 100644 --- a/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-tangent.tex +++ b/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-tangent.tex @@ -65,7 +65,7 @@ On peut changer le style des tangentes avec, par exemple, \tkzAxeXY \tkzFct[color=red,samples=100,domain = 0:800]% {(1./90000)*\x*\x*\x-(1./100)*\x*\x+(113./36)*\x} - \tkzDrawTangentLine[color=blue,kr=300,kl=450,coord](450) + \tkzDrawTangentLine[color=blue,kr=300,kl=450](450) \tkzText[draw, color = black,% fill = brown!50, opacity = 0.8](300,1200)% {$f(x)=\dfrac{1}{90000}x^3 -\dfrac{1}{{100}}x^2 +\dfrac{113}{36}x$} diff --git a/macros/latex/contrib/tkz/tkz-fct/doc/tkz-fct.pdf b/macros/latex/contrib/tkz/tkz-fct/doc/tkz-fct.pdf Binary files differindex c925fc1250..b1807b65e5 100644 --- a/macros/latex/contrib/tkz/tkz-fct/doc/tkz-fct.pdf +++ b/macros/latex/contrib/tkz/tkz-fct/doc/tkz-fct.pdf diff --git a/macros/latex/contrib/tkz/tkz-fct/latex/tkz-fct.sty b/macros/latex/contrib/tkz/tkz-fct/latex/tkz-fct.sty index a4d998ce85..e693b44b3c 100644 --- a/macros/latex/contrib/tkz/tkz-fct/latex/tkz-fct.sty +++ b/macros/latex/contrib/tkz/tkz-fct/latex/tkz-fct.sty @@ -13,14 +13,16 @@ % constants from tkz-base % \tkz@init@xstep % \tkz@init@ystep -\typeout{2022/01/27 1.6c function tkz-fct} +\typeout{2022/01/27 1.7c function tkz-fct} %<---------------------------------------------------------------------------> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tkz-fct}[2022/01/27 1.6c function ] +\ProvidesPackage{tkz-fct}[2022/01/27 1.7c function ] \@ifpackageloaded{tkz-euclide}{\typeout{tkz-base and tkz-fct must be loaded before tkz-euclide} \PackageError{tkz-fct}{tkz-base must be loaded before tkz-euclide}{tkz-base must be loaded before tkz-euclide}% \endinput}{} +\newif\iftkz@draw +\newif\iftkz@fp \newcount\tkz@tkzf@fct \edef\tkzTWOPTCode{\the\catcode`\:} \tkz@tkzf@fct=0 % @@ -74,12 +76,9 @@ % Styles %<---------------------------------------------------------------------------> \def\tkzfctset#1{\pgfkeys{/tkztan/.cd,#1}} - \tkzfctset{tan style/.style={->,>=latex}} %<---------------------------------------------------------------------------> % tkzFct %<---------------------------------------------------------------------------> -\newif\iftkz@draw -\newif\iftkz@fp \def\tkz@dmin{-5}\def\tkz@dmax{5} \global\let\tkz@tmp@xa\tkz@init@xmin% modif 2016 \global\let\tkz@tmp@xb\tkz@init@xmax% modif 2016 @@ -588,7 +587,6 @@ \end{scope} \endgroup } - %<--------------------------------------------------------------------------–> % tkzXH F rien T et [ ou ] %<--------------------------------------------------------------------------–> diff --git a/macros/latex/contrib/tuda-ci/README.md b/macros/latex/contrib/tuda-ci/README.md index f78ef6ffb9..1d32be8f41 100644 --- a/macros/latex/contrib/tuda-ci/README.md +++ b/macros/latex/contrib/tuda-ci/README.md @@ -2,7 +2,7 @@ Copyright (C) Marei Peischl <marei@peitex.de>, 2018–2022 - tuda-ci 2022/01/11 v3.21 + tuda-ci 2022/02/08 v3.22 *************************************************************************** @@ -302,3 +302,6 @@ leaflets | DEMO-TUDaLeaflet.tex | tudaleaflet.cls - fix title width for the combination of `custommargins=geometry` and `titlepage=false` - remove some obsolete warnings - improve TUDaLetter documentation + * 3.22 (2022-02-08) + - improve alignment for reviewers if `type=thesis` + - fix bug in handling of `\Metadata` diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf Binary files differindex 17c0d522e9..418dcdf635 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf Binary files differindex b8801e62ce..8eac4cd623 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf Binary files differindex 734587fb4a..8d22813c2f 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf Binary files differindex c14f47da87..93c2ab22eb 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf Binary files differindex e1e1f2572b..e54221552e 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf Binary files differindex 22ddb66ff9..62018d3670 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf Binary files differindex ac56796018..74a9fb9d32 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf Binary files differindex f4041615fb..35bf6ed958 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf Binary files differindex 97e29a4419..f1ebc78134 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf Binary files differindex 630a41e464..ed2348c566 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf Binary files differindex 4e00393b7b..a1a9f69ebd 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex index 3761557e82..8d6099a8e4 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaAnnouncement.tex' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaAnnouncement.tex' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex index 252bff80ef..1d56b54d2e 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaBeamer.tex' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaBeamer.tex' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib index dd998ad799..ac0556c495 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaBibliography.bib' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaBibliography.bib' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex index d3df62ab51..c3594ae9a5 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaExercise.tex' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaExercise.tex' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco index b0bff2da20..b33846a80c 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaFromaddress.lco' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaFromaddress.lco' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex index 8c5d12e20f..f255073c1a 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaLeaflet.tex' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaLeaflet.tex' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex index 3fe97e9ad5..fa3364b432 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaLetter.tex' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaLetter.tex' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex index acbf0a36a4..930de05d14 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaPhD.tex' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaPhD.tex' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex index cc158b1cb2..2896021e47 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaPoster.tex' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaPoster.tex' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex index 9e6f201dd6..780eea093c 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaPub.tex' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaPub.tex' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex index 2e109c86f6..7b7b2eddf2 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaReport.tex' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaReport.tex' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex index 94d56b0cdc..ffeaf6ca5d 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaSciPoster.tex' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaSciPoster.tex' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex index c2b822efe7..71ddb999fc 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex @@ -1,9 +1,9 @@ -%% This is file `DEMO-TUDaThesis.tex' version 3.21 (2022/01/11), +%% This is file `DEMO-TUDaThesis.tex' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the diff --git a/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty index 336de7a6f9..f23e844b43 100644 --- a/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty +++ b/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty @@ -1,9 +1,9 @@ -%% This is file `beamercolorthemeTUDa.sty' version 3.21 (2022/01/11), +%% This is file `beamercolorthemeTUDa.sty' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{beamercolorthemeTUDa} [\filedate\space\fileversion] diff --git a/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty index 8c391ad1ad..588af107b4 100644 --- a/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty +++ b/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty @@ -1,9 +1,9 @@ -%% This is file `beamerfontthemeTUDa.sty' version 3.21 (2022/01/11), +%% This is file `beamerfontthemeTUDa.sty' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{beamerfontthemeTUDa} [\filedate\space\fileversion] diff --git a/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty index bb2631d52b..954ca53a2d 100644 --- a/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty +++ b/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty @@ -1,9 +1,9 @@ -%% This is file `beamerinnerthemeTUDa.sty' version 3.21 (2022/01/11), +%% This is file `beamerinnerthemeTUDa.sty' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \ProvidesExplPackage{beamerinnerthemeTUDa}{\filedate}{\fileversion}{Inner~beamer~theme~of~tuda-ci} diff --git a/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty index 5f89098dbd..68803aedbd 100644 --- a/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty +++ b/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty @@ -1,9 +1,9 @@ -%% This is file `beamerouterthemeTUDa.sty' version 3.21 (2022/01/11), +%% This is file `beamerouterthemeTUDa.sty' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \ProvidesExplPackage{beamerouterthemeTUDa}{\filedate}{\fileversion}{Outer~beamer~theme~of~tuda-ci} diff --git a/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty index 611d897f2d..c98405a463 100644 --- a/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty +++ b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty @@ -1,9 +1,9 @@ -%% This is file `beamerthemeTUDa-mecheng.sty' version 3.21 (2022/01/11), +%% This is file `beamerthemeTUDa-mecheng.sty' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \RequirePackage{expl3} \ProvidesExplPackage{beamerthemeTUDa-mecheng}{\filedate}{\fileversion}{specific tudabeamer configuration for the department of mechanical engineering} diff --git a/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty index 95d10bca5d..61b3c69300 100644 --- a/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty +++ b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty @@ -1,9 +1,9 @@ -%% This is file `beamerthemeTUDa.sty' version 3.21 (2022/01/11), +%% This is file `beamerthemeTUDa.sty' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{beamerthemeTUDa} [\filedate\space\fileversion\space beamer theme using the Corporate Design of TU Darmstadt] diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo index e0fa3fad0c..4f9521020a 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo +++ b/macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo @@ -1,9 +1,9 @@ -%% This is file `tuda-a0paper.clo' version 3.21 (2022/01/11), +%% This is file `tuda-a0paper.clo' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \ProvidesExplFile{tuda-a0paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a0paper} \cs_set:Nn \ptxcd_setup_title_sizes: { \cs_set:Nn \ptxcd_title_fontsize: {{125pt}{165pt}} diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo index 5e11ac41ac..50bc5222a6 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo +++ b/macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo @@ -1,9 +1,9 @@ -%% This is file `tuda-a1paper.clo' version 3.21 (2022/01/11), +%% This is file `tuda-a1paper.clo' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \ProvidesExplFile{tuda-a1paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a1paper} \cs_set:Nn \ptxcd_setup_title_sizes: { \cs_set:Nn \ptxcd_title_fontsize: {{86pt}{120pt}} diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo index 972b49dcab..a47bda8675 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo +++ b/macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo @@ -1,9 +1,9 @@ -%% This is file `tuda-a2paper.clo' version 3.21 (2022/01/11), +%% This is file `tuda-a2paper.clo' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \ProvidesExplFile{tuda-a2paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a0paper} \cs_set:Nn \ptxcd_setup_title_sizes: { \cs_set:Nn \ptxcd_title_fontsize: {{65pt}{82pt}} diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo index b1cd25ae1f..00fd6ae6cb 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo +++ b/macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo @@ -1,9 +1,9 @@ -%% This is file `tuda-a3paper.clo' version 3.21 (2022/01/11), +%% This is file `tuda-a3paper.clo' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \ProvidesExplFile{tuda-a3paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a3paper} \cs_set:Nn \ptxcd_setup_title_sizes: { \cs_set:Nn \ptxcd_title_fontsize: {{47pt}{61pt}} diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo index 29fbafe2ea..794bce564f 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo +++ b/macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo @@ -1,9 +1,9 @@ -%% This is file `tuda-a4paper.clo' version 3.21 (2022/01/11), +%% This is file `tuda-a4paper.clo' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \ProvidesExplFile{tuda-a4paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a4paper} \cs_set:Nn \ptxcd_setup_title_sizes: { \cs_set:Nn \ptxcd_title_fontsize: {{36pt}{47pt}} diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo index b42da85022..08cba2a638 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo +++ b/macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo @@ -1,9 +1,9 @@ -%% This is file `tuda-a5paper.clo' version 3.21 (2022/01/11), +%% This is file `tuda-a5paper.clo' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \ProvidesExplFile{tuda-a5paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a5paper} \cs_set:Nn \ptxcd_setup_title_sizes: { \cs_set:Nn \ptxcd_title_fontsize: {{22pt}{28pt}} diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty b/macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty index ebb7016f76..ac22d86747 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty +++ b/macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty @@ -1,9 +1,9 @@ -%% This is file `tuda-pgfplots.sty' version 3.21 (2022/01/11), +%% This is file `tuda-pgfplots.sty' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} % Special thanks to: Sebastian Schöps Institut Theorie Elektromagnetischer Felder (TEMF), TU Darmstadt % The original version of this file has been inspired by the colorscheme in the Metropolis beamer theme by Matthias Vogelgesang https://github.com/matze/mtheme \ProvidesPackage{tuda-pgfplots}[\filedate\space\fileversion\space tuda-ci pgfplots color schemes] diff --git a/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls b/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls index f0b61510cb..b1b858ce59 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls @@ -1,9 +1,9 @@ -%% This is file `tudabeamer.cls' version 3.21 (2022/01/11), +%% This is file `tudabeamer.cls' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{tudabeamer} [\filedate\space\fileversion\space] diff --git a/macros/latex/contrib/tuda-ci/tex/tudacolors.def b/macros/latex/contrib/tuda-ci/tex/tudacolors.def index f4cf2ccbd1..9db7347dd0 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudacolors.def +++ b/macros/latex/contrib/tuda-ci/tex/tudacolors.def @@ -1,9 +1,9 @@ -%% This is file `tudacolors.def' version 3.21 (2022/01/11), +%% This is file `tudacolors.def' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \ProvidesFile{tudacolors.def} [\filedate\space\fileversion\space Color definitions for tuda-ci] diff --git a/macros/latex/contrib/tuda-ci/tex/tudacolors.sty b/macros/latex/contrib/tuda-ci/tex/tudacolors.sty index 59a27eb1cc..5b403ddd64 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudacolors.sty +++ b/macros/latex/contrib/tuda-ci/tex/tudacolors.sty @@ -1,9 +1,9 @@ -%% This is file `tudacolors.sty' version 3.21 (2022/01/11), +%% This is file `tudacolors.sty' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{tudacolors}{\filedate}{\fileversion}{Color definition for TU Darmstadt's tuda-ci bundle} diff --git a/macros/latex/contrib/tuda-ci/tex/tudaexercise.cls b/macros/latex/contrib/tuda-ci/tex/tudaexercise.cls index 4f05217ad3..b1f3a217c9 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudaexercise.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudaexercise.cls @@ -1,9 +1,9 @@ -%% This is file `tudaexercise.cls' version 3.21 (2022/01/11), +%% This is file `tudaexercise.cls' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplClass{tudaexercise} diff --git a/macros/latex/contrib/tuda-ci/tex/tudafonts.sty b/macros/latex/contrib/tuda-ci/tex/tudafonts.sty index 54cb00109a..57a2eb6e09 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudafonts.sty +++ b/macros/latex/contrib/tuda-ci/tex/tudafonts.sty @@ -1,9 +1,9 @@ -%% This is file `tudafonts.sty' version 3.21 (2022/01/11), +%% This is file `tudafonts.sty' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,23 +26,23 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tudafonts} [\filedate\space\fileversion\space font loading for TUDa-CI, TU Darmstadt's Corporate Design] -\expandafter\newif\csname if@TUDa@T1\endcsname +\expandafter\newif\csname if@ptxcd@T1\endcsname -\DeclareOption{T1}{\csname @TUDa@T1true\endcsname} +\DeclareOption{T1}{\csname @ptxcd@T1true\endcsname} \ProcessOptions\relax \RequirePackage{iftex} \RequirePackage{anyfontsize} \ifPDFTeX - \csname @TUDa@T1true\endcsname + \csname @ptxcd@T1true\endcsname %Fallback for older versions \expandafter\ifx\csname DeclareUnicodeCharacter\endcsname\relax \RequirePackage[utf8]{inputenc} @@ -53,7 +53,7 @@ \DeclareUnicodeCharacter{20AC}{\texteuro} \fi -\csname if@TUDa@T1\endcsname +\csname if@ptxcd@T1\endcsname \ifLuaTeX \RequirePackage[utf8]{luainputenc} \fi @@ -80,6 +80,8 @@ For correct font setup either install it manually or update you distribution} } +\def\ptxcd@sffamily@lining{\robototlf} + \let\accentfont\robotoslab \DeclareTextFontCommand{\textaccent}{\accentfont} diff --git a/macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls b/macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls index 4e268133a7..396b281fd0 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls @@ -1,9 +1,9 @@ -%% This is file `tudaleaflet.cls' version 3.21 (2022/01/11), +%% This is file `tudaleaflet.cls' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{tudaleaflet}{\filedate}{\fileversion}{Leaflets using the Corporate Design of TU Darmstadt} diff --git a/macros/latex/contrib/tuda-ci/tex/tudaletter.cls b/macros/latex/contrib/tuda-ci/tex/tudaletter.cls index 4ff6a0e5bc..e7878738d3 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudaletter.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudaletter.cls @@ -1,9 +1,9 @@ -%% This is file `tudaletter.cls' version 3.21 (2022/01/11), +%% This is file `tudaletter.cls' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplClass{tudaletter} diff --git a/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo b/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo index 327c046aae..46e1e5f7e5 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo +++ b/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo @@ -1,9 +1,9 @@ -%% This is file `tudalettersize10pt.clo' version 3.21 (2022/01/11), +%% This is file `tudalettersize10pt.clo' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This file is a slightly modified version of scrsize10pt.clo diff --git a/macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg b/macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg index d1b173392f..c5f9f3bf92 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg +++ b/macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg @@ -1,9 +1,9 @@ -%% This is file `tudamecheng.cfg' version 3.21 (2022/01/11), +%% This is file `tudamecheng.cfg' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \RequirePackage{expl3} \ProvidesExplFile{tudamecheng.cfg} {\filedate}{\fileversion}{Special Features the department of mechanical engineering of Darmstadt's Corporate Design (tuda-ci)} diff --git a/macros/latex/contrib/tuda-ci/tex/tudaposter.cls b/macros/latex/contrib/tuda-ci/tex/tudaposter.cls index 69e739a9b3..59bbb4588a 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudaposter.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudaposter.cls @@ -1,9 +1,9 @@ -%% This is file `tudaposter.cls' version 3.21 (2022/01/11), +%% This is file `tudaposter.cls' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{tudaposter}{\filedate}{\fileversion}{Poster Layouts for the Corporate Design of TU Darmstadt} diff --git a/macros/latex/contrib/tuda-ci/tex/tudapub.cls b/macros/latex/contrib/tuda-ci/tex/tudapub.cls index 5a8f082f26..e6b1870fa8 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudapub.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudapub.cls @@ -1,9 +1,9 @@ -%% This is file `tudapub.cls' version 3.21 (2022/01/11), +%% This is file `tudapub.cls' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplClass{tudapub} @@ -692,6 +692,7 @@ \newkomafont{institution}{\sffamily} \newkomafont{titleinfo}{\sffamily} +\newkomafont{reviewer}{\ptxcd@sffamily@lining} \setkomafont{subtitle}{\bfseries} \setkomafont{subject}{} \setkomafont{publishers}{} @@ -891,14 +892,14 @@ \cs_set:Npn \and {\exp_not:n {\exp_not:N \sep}} \use:c {Hy@pdfstringtrue} \tl_gset:Nf \g_ptxcd_xmp_title_tl {\@title} - \prop_gput_if_new:Nnx \g_ptxcd_MetaData_prop {title} {\tl_to_str:V \g_ptxcd_xmp_title_tl} - \prop_if_in:NnF \g_ptxcd_MetaData_prop {author} { + \prop_gput_if_new:Nnx \g_ptxcd_MetaData_prop {Title} {\tl_to_str:V \g_ptxcd_xmp_title_tl} + \prop_if_in:NnF \g_ptxcd_MetaData_prop {Author} { \tl_gset:Nx \g_ptxcd_xmp_author_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \sep}} \tl_gset:Nx \g_ptxcd_xmp_author_tl {\g_ptxcd_xmp_author_tl} - \prop_gput:Nnx \g_ptxcd_MetaData_prop {author} {\tl_to_str:V \g_ptxcd_xmp_author_tl} + \prop_gput:Nnx \g_ptxcd_MetaData_prop {Author} {\tl_to_str:V \g_ptxcd_xmp_author_tl} } - \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {publisher}{TU~Darmstadt} - \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {creator}{LaTeX~using~TUDa-CI} + \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {Publisher}{TU~Darmstadt} + \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {Creator}{LaTeX~using~TUDa-CI} \use:c {pdfx@localcommands}%should be held inside group \prop_map_function:NN \g_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn \endgroup @@ -908,19 +909,9 @@ \cs_new:Nn \ptxcd_write_xmp_line:nn { \begingroup \cs_set:Npn \sep {\exp_not:N \sep} - %Fallback test for older kernels - \cs_if_exist:NTF \str_uppercase:f { - \tl_set:Nx \l_tmpa_tl { - \str_uppercase:f {\tl_head:n {#1}} - \str_lowercase:f { \tl_tail:n {#1}} - } - } { - %may be removed in some time - \tl_set:Nx \l_tmpa_tl {\tl_mixed_case:n {#1}} - } - \cs_if_exist:cTF {\l_tmpa_tl}{ + \cs_if_exist:cTF {#1}{ \iow_now:Nx \ptxcd_xmpdata_stream { - \c_backslash_str \l_tmpa_tl {\exp_not:n {#2}} + \c_backslash_str #1 {\exp_not:n {#2}} } }{ \msg_error:nnn{tudapub} {unknown-metadata} {#1} @@ -928,7 +919,7 @@ \endgroup } -\prop_new:N \g_ptxcd_MetaData_prop + \prop_new:N \g_ptxcd_MetaData_prop \newcommand*{\Metadata}[1]{ \keyval_parse:NNn \use_none:n \ptxcd_set_metadata_prop:nn @@ -936,7 +927,15 @@ } \cs_set:Nn \ptxcd_set_metadata_prop:nn { - \exp_args:NNf \prop_gput:Nnn \g_ptxcd_MetaData_prop {\tl_lower_case:n{#1}} {#2} + %Fallback test for older kernels doesn't support mixed case eintries + \cs_if_exist:NTF \text_titlecase_first:n { + \exp_args:NNf \prop_gput:Nnn \g_ptxcd_MetaData_prop {\text_titlecase_first:n {#1}} {#2} + } { + \exp_args:NNx \prop_gput:Nnn \g_ptxcd_MetaData_prop { + \str_uppercase:f {\tl_head:n {#1}} + \str_lowercase:f {\tl_tail:n {#1}} + } {#2} + } } \msg_new:nnnn{tudapub} {unknown-metadata} { diff --git a/macros/latex/contrib/tuda-ci/tex/tudarules.sty b/macros/latex/contrib/tuda-ci/tex/tudarules.sty index 3709dc0d80..303573a89e 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudarules.sty +++ b/macros/latex/contrib/tuda-ci/tex/tudarules.sty @@ -1,9 +1,9 @@ -%% This is file `tudarules.sty' version 3.21 (2022/01/11), +%% This is file `tudarules.sty' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{tudarules}{\filedate}{\fileversion}{Creation of colored bars for tuda-ci bundle} diff --git a/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls b/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls index 7b61f44027..e4c2766c8e 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls @@ -1,9 +1,9 @@ -%% This is file `tudasciposter.cls' version 3.21 (2022/01/11), +%% This is file `tudasciposter.cls' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{tudasciposter}{\filedate}{\fileversion}{Scientific Poster Layout for TU Darmstadt} diff --git a/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo b/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo index 89c5614f4d..ff10869f4b 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo +++ b/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo @@ -1,9 +1,9 @@ -%% This is file `tudasize9pt.clo' version 3.21 (2022/01/11), +%% This is file `tudasize9pt.clo' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This file is a slightly modified version of scrsize10pt.clo diff --git a/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg b/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg index 6e596ff699..907f344f5a 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg +++ b/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg @@ -1,9 +1,9 @@ -%% This is file `tudathesis.cfg' version 3.21 (2022/01/11), +%% This is file `tudathesis.cfg' version 3.22 (2022/02/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- %% -%% Copyright (C) 2018--2021 by Marei Peischl <marei@peitex.de> +%% Copyright (C) 2018--2022 by Marei Peischl <marei@peitex.de> %% %% ============================================================================ %% This work may be distributed and/or modified under the @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.21} -\def\filedate{2022/01/11} +\def\fileversion{3.22} +\def\filedate{2022/02/08} \RequirePackage{expl3} \ProvidesExplFile{tudathesis.cfg} {\filedate}{\fileversion}{Special Features for publication type 'thesis' using TU Darmstadt's Corporate Design (tuda-ci)} @@ -242,12 +242,14 @@ } \int_zero:N \l_tmpb_int \par\vspace*{\baselineskip} + {\usekomafont{reviewer} \seq_map_inline:Nn \g_ptxcd_reviewer_seq - { + { \int_incr:N \l_tmpb_int \cs_if_exist_use:cF {__ptxcd_reviewname_\int_use:N \l_tmpb_int :} {\int_to_arabic:n {\l_tmpb_int}.~\text_titlecase:n{\ptxcd_reviewname}} :~\exp_not:n {##1}\\ + } } } diff --git a/macros/latex/contrib/zref-check/CHANGELOG.md b/macros/latex/contrib/zref-check/CHANGELOG.md index 2538c91c1d..17895758fa 100644 --- a/macros/latex/contrib/zref-check/CHANGELOG.md +++ b/macros/latex/contrib/zref-check/CHANGELOG.md @@ -1,6 +1,17 @@ # Changelog -## [Unreleased](https://github.com/gusbrs/zref-check/compare/v0.2.3...HEAD) +## [Unreleased](https://github.com/gusbrs/zref-check/compare/v0.2.4...HEAD) + +## [v0.2.4](https://github.com/gusbrs/zref-check/compare/v0.2.3...v0.2.4) (2022-02-08) + +### Added +- New `otherpage` check. +- Infrastructure support provided for integration with `zref-vario`. + +### Deprecated +- Option `labelcmd` has been deprecated with no replacement. The originally + intended use for this option has been made obsolete by package + `zref-clever`. ## [v0.2.3](https://github.com/gusbrs/zref-check/compare/v0.2.2...v0.2.3) (2021-12-20) diff --git a/macros/latex/contrib/zref-check/MANIFEST.md b/macros/latex/contrib/zref-check/MANIFEST.md index 3da3e90910..7a204e9782 100644 --- a/macros/latex/contrib/zref-check/MANIFEST.md +++ b/macros/latex/contrib/zref-check/MANIFEST.md @@ -78,6 +78,8 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.). * zc-check-nextpage01.lvt * zc-check-nextpage02.lvt * zc-check-nextsec01.lvt +* zc-check-otherpage01.lvt +* zc-check-otherpage02.lvt * zc-check-pagegap01.lvt * zc-check-pagesafter01.lvt * zc-check-pagesafter02.lvt @@ -106,9 +108,6 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.). * zc-opt-hyperref05.lvt * zc-opt-ignore01.lvt * zc-opt-ignore02.lvt -* zc-opt-labelcmd01.lvt -* zc-opt-labelcmd02.lvt -* zc-opt-labelcmd03.lvt * zc-opt-msglevel01.lvt * zc-opt-msglevel02.lvt * zc-opt-msglevel03.lvt @@ -164,6 +163,8 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.). * zc-check-nextpage01.tlg * zc-check-nextpage02.tlg * zc-check-nextsec01.tlg +* zc-check-otherpage01.tlg +* zc-check-otherpage02.tlg * zc-check-pagegap01.tlg * zc-check-pagesafter01.tlg * zc-check-pagesafter02.tlg @@ -212,9 +213,6 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.). * zc-opt-hyperref05.xetexdev.tlg * zc-opt-ignore01.tlg * zc-opt-ignore02.tlg -* zc-opt-labelcmd01.tlg -* zc-opt-labelcmd02.tlg -* zc-opt-labelcmd03.tlg * zc-opt-msglevel01.tlg * zc-opt-msglevel02.tlg * zc-opt-msglevel03.tlg diff --git a/macros/latex/contrib/zref-check/zref-check-code.pdf b/macros/latex/contrib/zref-check/zref-check-code.pdf Binary files differindex b134184968..92dafc7ae1 100644 --- a/macros/latex/contrib/zref-check/zref-check-code.pdf +++ b/macros/latex/contrib/zref-check/zref-check-code.pdf diff --git a/macros/latex/contrib/zref-check/zref-check-code.tex b/macros/latex/contrib/zref-check/zref-check-code.tex index eb649833cd..81efd7f4ec 100644 --- a/macros/latex/contrib/zref-check/zref-check-code.tex +++ b/macros/latex/contrib/zref-check/zref-check-code.tex @@ -4,7 +4,7 @@ % % This file is part of the LaTeX package "zref-check". % -% Copyright (C) 2021 Gustavo Barros +% Copyright (C) 2021-2022 Gustavo Barros % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this diff --git a/macros/latex/contrib/zref-check/zref-check.dtx b/macros/latex/contrib/zref-check/zref-check.dtx index 57f5e26ca4..6392f43c43 100644 --- a/macros/latex/contrib/zref-check/zref-check.dtx +++ b/macros/latex/contrib/zref-check/zref-check.dtx @@ -4,7 +4,7 @@ % % This file is part of the LaTeX package "zref-check". % -% Copyright (C) 2021 Gustavo Barros +% Copyright (C) 2021-2022 Gustavo Barros % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -121,7 +121,6 @@ % allowing for them to be consistently verified. % % -% % \section{Loading the package} % \label{sec:loading-package} % @@ -190,6 +189,16 @@ % Sets \pkg{zref-check}'s options (see Section~\ref{sec:options}). % \end{function} % +% \bigskip{} +% +% All user commands of \pkg{zref-check} have their \marg{label} arguments +% protected for \pkg{babel} active characters using \pkg{zref}'s +% \cs{zref@wrapper@babel}, so that we should have equivalent support in that +% regard, as \pkg{zref} itself does. \pkg{zref-check} depends on \pkg{zref}, +% as the name entails, which means it is able to work with \pkg{zref} labels, +% in general created by \cs{zlabel}, but also with \cs{zctarget} and the +% \texttt{zcregion} environment provided by this package. +% % % \section{Checks} % \label{sec:checks} @@ -229,6 +238,9 @@ % \item[nextpage] \meta{label} occurs on the next page relative to % \cs{zcheck}. % +% \item[otherpage] \meta{label} occurs on a page different from that of +% \cs{zcheck}, that is, it does \emph{not} occur on \opt{thispage}. +% % \item[pagegap] There is a page gap between \meta{label} and \cs{zcheck}, in % other words, \meta{label} does \emph{not} occur on \opt{thispage}, % \opt{prevpage} or \opt{nextpage}. @@ -357,69 +369,6 @@ % value, with default 5. % % -% \DescribeOption{labelcmd} % -% Defines the command used to set the user labels in \cs{zctarget} and -% \texttt{zcregion}. Takes a control sequence \emph{name} as value, and the -% default sets labels with the minimal required properties, those of the -% \texttt{zrefcheck} property list. This is a preamble only option. The -% specified control sequence must receive one mandatory argument (the -% \marg{label}) and must generate a \texttt{zref label} with at least the -% properties in the \texttt{zrefcheck} property list. The intended use case -% is that of the user creating a convenience macro which calls both \cs{label} -% and \cs{zlabel}, as suggested in Section~\ref{sec:labels}, so that the same -% labels are accessible either from the standard reference system or from -% \pkg{zref}. For example: -% -% \begin{verbatim} -% \NewDocumentCommand\mybothlabels{m}{\label{#1}\zlabel{#1}} -% \zrefchecksetup{labelcmd=mybothlabels} -% \end{verbatim} -% -% Note that the value of the underlying counter used for labels in -% \cs{zctarget} and \texttt{zcregion} -- what you'd get with a plain \cs{ref} -% here -- is not really meaningful. But you get to use -% \cs{pageref}\marg{label}, or \pkg{hyperref}'s -% \cs{hyperref}\oarg{label}\marg{text} on the labels used in \cs{zctarget} and -% \texttt{zcregion} with this procedure. -% -% -% \section{Labels} -% \label{sec:labels} -% -% \pkg{zref-check} depends on \pkg{zref}, as the name entails, which means it -% is able to work with \pkg{zref} labels, in general created by \cs{zlabel}, -% but also with \cs{zctarget} and the \texttt{zcregion} environment provided -% by this package. This has some advantages, particularly the data -% flexibility of \pkg{zref}, and the absence of the ubiquitous ``load-order'' -% and compatibility problems which are well known to afflict \LaTeX{} packages -% of this area of functionality. On the other hand, the reliance on -% \pkg{zref} labels may be seen as an inconvenience, since users of the -% standard cross-reference infrastructure may need to add extra labels for -% this. That's true. But \pkg{zref-check} is not meant to replace the -% existing functionality of the kernel or of the traditional packages in this -% area (to my knowledge, it only intersects directly with \pkg{varioref} and, -% even so, it is quite different in scope). Indeed, it is easy to see the use -% in tandem with standard references, for example: -% -% \begin{verbatim} -% ... Figure~\ref{fig:figure-1}, \zcheck*[nextpage]{fig:figure-1}{on -% the next page}. -% \end{verbatim} -% -% Besides, \pkg{zref} does not share the label name-space with the standard -% labels, so that you can call both \cs{label} and \cs{zlabel} with the same -% label name (manually, or through a convenience macro), to ease the label set -% administration. The example above presumes that was the case. -% -% All user commands of \pkg{zref-check} have their \marg{label} arguments -% protected for \pkg{babel} active characters using \pkg{zref}'s -% \cs{zref@wrapper@babel}, so that we should have equivalent support in that -% regard, as \pkg{zref} itself does. However, \pkg{zref-check} sets labels -% which either start with \texttt{zrefcheck@} or end with \texttt{@zrefcheck}, -% for internal use. Label names with either of those are considered reserved -% by the package. -% -% % \section{Limitations} % % There are three qualitatively different kinds of checks being used by @@ -561,7 +510,7 @@ % % Identify the package. % \begin{macrocode} -\ProvidesExplPackage {zref-check} {2021-12-20} {0.2.3} +\ProvidesExplPackage {zref-check} {2022-02-08} {0.2.4} {Flexible cross-references with contextual checks based on zref} % \end{macrocode} % @@ -614,9 +563,9 @@ % These are the lists of properties to be used by \pkg{zref-check}, that is, % the list of properties the references and targets store. This is the % minimum set required, more properties may be added according to options. -% For labels set with \cs{@@_target_label:n}, that is, user facing labels, we -% must use the \texttt{main} property list, so that \pkg{zref-clever} can also -% retrieve the properties it needs to refer to them. +% For user facing labels, we must use the \texttt{main} property list, so that +% \pkg{zref-clever} can also retrieve the properties it needs to refer to +% them. % \begin{macrocode} \zref@newlist { zrefcheck-check } \zref@addprops { zrefcheck-check } @@ -634,6 +583,16 @@ zc@abssec } % \end{macrocode} +% For \pkg{zref-vario} we only need page information, since we only perform +% \opt{above} and \opt{below} checks there. +% \begin{macrocode} +\zref@newlist { zrefcheck-zrefvario } +\zref@addprops { zrefcheck-zrefvario } + { + page , % for messages + abspage , + } +% \end{macrocode} % % % \section{Plumbing} @@ -694,11 +653,13 @@ Control~sequence~named~'#1'~used~in~option~'labelcmd'~is~not~defined.~ Using~default~value. } -\msg_new:nnn { zref-check } { option-deprecated } +\msg_new:nnn { zref-check } { option-deprecated-with-alternative } { - Option~'#1'~has~been~deprecated.\iow_newline: - Use~'#2'~as~a~replacement. + Option~'#1'~has~been~deprecated~\msg_line_context:.\iow_newline: + Use~'#2'~instead. } +\msg_new:nnn { zref-check } { option-deprecated } + { Option~'#1'~has~been~deprecated~\msg_line_context:. } % \end{macrocode} % % @@ -838,13 +799,13 @@ msglevel / obeydraft .code:n = { % NOTE Option value deprecated in 2021-12-07 for v0.2.2. - \msg_warning:nnnn { zref-check }{ option-deprecated } + \msg_warning:nnnn { zref-check }{ option-deprecated-with-alternative } { msglevel=obeydraft } { msglevel=infoifdraft } } , msglevel / obeyfinal .code:n = { % NOTE Option value deprecated in 2021-12-07 for v0.2.2. - \msg_warning:nnnn { zref-check }{ option-deprecated } + \msg_warning:nnnn { zref-check }{ option-deprecated-with-alternative } { msglevel=obeyfinal } { msglevel=warniffinal } } , msglevel .value_required:n = true , @@ -900,13 +861,13 @@ onpage / obeydraft .code:n = { % NOTE Option value deprecated in 2021-12-07 for v0.2.2. - \msg_warning:nnnn { zref-check }{ option-deprecated } + \msg_warning:nnnn { zref-check }{ option-deprecated-with-alternative } { onpage=obeydraft } { onpage=labelseqifdraft } } , onpage / obeyfinal .code:n = { % NOTE Option value deprecated in 2021-12-07 for v0.2.2. - \msg_warning:nnnn { zref-check }{ option-deprecated } + \msg_warning:nnnn { zref-check }{ option-deprecated-with-alternative } { onpage=obeyfinal } { onpage=msgiffinal } } , onpage .value_required:n = true , @@ -941,66 +902,18 @@ % % \subsubsection*{\opt{labelcmd} option} % -% \begin{variable}{\l_@@_target_label_tl} -% I'd love to receive the macro itself rather than it's name, but this would -% bring unwarranted complications: -% \url{https://tex.stackexchange.com/a/489570}. % \begin{macrocode} -\tl_new:N \l_@@_target_label_tl -\bool_new:N \l_@@_target_label_bool \keys_define:nn { zref-check } { labelcmd .code:n = { - \tl_set:Nn \l_@@_target_label_tl {#1} - \bool_set_true:N \l_@@_target_label_bool + % NOTE Option value deprecated in 2022-02-08 for v0.2.4. + \msg_warning:nnn { zref-check }{ option-deprecated } + { labelcmd } } , - labelcmd .value_required:n = true , } % \end{macrocode} -% \end{variable} -% -% \begin{macro}{\@@_target_label:n} -% Default definition of the function for user label setting in \cs{zctarget} -% and \texttt{zcregion}. It may be redefined at \texttt{begindocument} -% according to option \opt{labelcmd}. -% \begin{macrocode} -\cs_new_protected:Npn \@@_target_label:n #1 - { \zref@label {#1} } -% \end{macrocode} -% \end{macro} % -% \begin{macrocode} -\AddToHook { begindocument } - { - \bool_if:NT \l_@@_target_label_bool - { - \tl_if_blank:VT \l_@@_target_label_tl - { \tl_clear:N \l_@@_target_label_tl } - \cs_if_exist:cTF { \l_@@_target_label_tl } - { - \cs_set_protected:Npx \@@_target_label:n #1 - { - \exp_not:o - { \cs:w \l_@@_target_label_tl \cs_end: } - {#1} - } - } - { - \exp_args:Nnno \msg_warning:nnn { zref-check } - { labelcmd-undefined } { \l_@@_target_label_tl } - } - } - \keys_define:nn { zref-check } - { - labelcmd .code:n = - { - \msg_warning:nnn { zref-check } - { option-preamble-only } { labelcmd } - } - } - } -% \end{macrocode} % % % \subsubsection*{Package options} @@ -1191,6 +1104,11 @@ % complications it brings, this check was a slippery slope. All in all, I've % decided to drop it. % +% There's an interesting answer by David Carlisle at +% \url{https://tex.stackexchange.com/a/419189} to decide whether to typeset +% ``above'' or ``below'' using a method which essentially boils down to +% ``position in the \file{.aux} file''. +% % % % \subsection{Counter} @@ -1516,7 +1434,7 @@ % \begin{macrocode} \group_begin: \refstepcounter { zrefcheck } - \zref@wrapper@babel \@@_target_label:n {#1} + \zref@wrapper@babel \zref@label {#1} #2 \tl_if_empty:nF {#2} { @@ -1538,7 +1456,7 @@ \NewDocumentEnvironment {zcregion} { m } { \refstepcounter { zrefcheck } - \zref@wrapper@babel \@@_target_label:n {#1} + \zref@wrapper@babel \zref@label {#1} } { \zref@wrapper@babel @@ -1643,6 +1561,7 @@ prevpage , nextpage , facing , + otherpage , pagegap , above , below , @@ -1799,19 +1718,31 @@ \@@_check_thispage:nnT {#2} {#3} { \bool_set_true:N \l_@@_onpage_bool } - \@@_check_thispage:nnT - {#2} { \@@_end_lblfmt:n {#3} } - { \bool_set_true:N \l_@@_onpage_bool } - \zref@ifrefundefined { \@@_end_lblfmt:n {#2} } - {} + \zref@ifrefundefined { \@@_end_lblfmt:n {#3} } + { + \zref@ifrefundefined { \@@_end_lblfmt:n {#2} } + {} + { + \@@_check_thispage:nnT + { \@@_end_lblfmt:n {#2} } {#3} + { \bool_set_true:N \l_@@_onpage_bool } + } + } { \@@_check_thispage:nnT - { \@@_end_lblfmt:n {#2} } {#3} - { \bool_set_true:N \l_@@_onpage_bool } - \@@_check_thispage:nnT - { \@@_end_lblfmt:n {#2} } - { \@@_end_lblfmt:n {#3} } + {#2} { \@@_end_lblfmt:n {#3} } { \bool_set_true:N \l_@@_onpage_bool } + \zref@ifrefundefined { \@@_end_lblfmt:n {#2} } + {} + { + \@@_check_thispage:nnT + { \@@_end_lblfmt:n {#2} } {#3} + { \bool_set_true:N \l_@@_onpage_bool } + \@@_check_thispage:nnT + { \@@_end_lblfmt:n {#2} } + { \@@_end_lblfmt:n {#3} } + { \bool_set_true:N \l_@@_onpage_bool } + } } } \bool_if:NTF \l_@@_passedcheck_bool @@ -1836,6 +1767,7 @@ } \group_end: } +\cs_generate_variant:Nn \@@_do_check:nnn { nnV } % \end{macrocode} % \end{macro} % @@ -1861,7 +1793,7 @@ % % \subsubsection{This page} % -% \begin{macro}{\@@_check_thispage:nn} +% \begin{macro}{\@@_check_thispage:nn, \@@_check_otherpage:nn} % \begin{macrocode} \prg_new_protected_conditional:Npnn \@@_check_thispage:nn #1#2 { T , F , TF } { @@ -1880,13 +1812,19 @@ % shipped out, will receive value `1'. So, if we do find `0' here, better % signal something is wrong. This comment extends to all page number checks. % \begin{macrocode} - ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } && - ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 } + ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } && + ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 } } { \group_insert_after:N \prg_return_true: } { \group_insert_after:N \prg_return_false: } \group_end: } +\prg_new_protected_conditional:Npnn \@@_check_otherpage:nn #1#2 { T , F , TF } + { + \@@_check_thispage:nnTF {#1} {#2} + { \prg_return_false: } + { \prg_return_true: } + } % \end{macrocode} % \end{macro} % @@ -2424,6 +2362,32 @@ % \end{macro} % % +% +% \section{\pkg{zref-vario} integration} +% +% +% \begin{macro} +% { +% \zrefcheck_zrefvario_label: , +% \zrefcheck_zrefvario_run_check_on_label:n +% } +% \begin{macrocode} +\cs_new_protected:Npn \zrefcheck_zrefvario_label: + { + \int_gincr:N \g_@@_id_int + \tl_set:Nx \l_@@_checkbeg_tl + { \@@_check_lblfmt:n { \g_@@_id_int } } + \zref@labelbylist { \l_@@_checkbeg_tl } { zrefcheck-zrefvario } + } +\cs_new_protected:Npn \zrefcheck_zrefvario_run_check_on_label:nn #1#2 + { \@@_do_check:nnV {#1} {#2} \l_@@_checkbeg_tl } +\cs_generate_variant:Nn \zrefcheck_zrefvario_run_check_on_label:nn { Vn } +% \end{macrocode} +% \end{macro} +% +% +% +% % \begin{macrocode} %</package> % \end{macrocode} diff --git a/macros/latex/contrib/zref-check/zref-check.ins b/macros/latex/contrib/zref-check/zref-check.ins index 6d3a14b1cc..312a34c124 100644 --- a/macros/latex/contrib/zref-check/zref-check.ins +++ b/macros/latex/contrib/zref-check/zref-check.ins @@ -4,7 +4,7 @@ % % This file is part of the LaTeX package "zref-check". % -% Copyright (C) 2021 Gustavo Barros +% Copyright (C) 2021-2022 Gustavo Barros % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -50,7 +50,7 @@ This file was generated from file(s) of the LaTeX package "zref-check". -Copyright (C) 2021 Gustavo Barros +Copyright (C) 2021-2022 Gustavo Barros It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this diff --git a/macros/latex/contrib/zref-check/zref-check.pdf b/macros/latex/contrib/zref-check/zref-check.pdf Binary files differindex 18d89eb2d9..3c20e85536 100644 --- a/macros/latex/contrib/zref-check/zref-check.pdf +++ b/macros/latex/contrib/zref-check/zref-check.pdf diff --git a/macros/latex/contrib/zref-check/zref-check.tex b/macros/latex/contrib/zref-check/zref-check.tex index 6f22318782..140d22bfd4 100644 --- a/macros/latex/contrib/zref-check/zref-check.tex +++ b/macros/latex/contrib/zref-check/zref-check.tex @@ -4,7 +4,7 @@ % % This file is part of the LaTeX package "zref-check". % -% Copyright (C) 2021 Gustavo Barros +% Copyright (C) 2021-2022 Gustavo Barros % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this diff --git a/macros/latex/contrib/zref-vario/CHANGELOG.md b/macros/latex/contrib/zref-vario/CHANGELOG.md index 968785ecbf..256cf2d24a 100644 --- a/macros/latex/contrib/zref-vario/CHANGELOG.md +++ b/macros/latex/contrib/zref-vario/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## [Unreleased](https://github.com/gusbrs/zref-vario/compare/v0.1.1-alpha...HEAD) +## [Unreleased](https://github.com/gusbrs/zref-vario/compare/v0.1.2-alpha...HEAD) + +## [v0.1.2-alpha](https://github.com/gusbrs/zref-vario/compare/v0.1.1-alpha...v0.1.2-alpha) (2022-02-08) + +### Added +- Integration with `zref-check` and new corresponding option `vcheck`. ## [v0.1.1-alpha](https://github.com/gusbrs/zref-vario/compare/v0.1.0-alpha...v0.1.1-alpha) (2022-02-01) diff --git a/macros/latex/contrib/zref-vario/MANIFEST.md b/macros/latex/contrib/zref-vario/MANIFEST.md index 050277efd7..f615ce334e 100644 --- a/macros/latex/contrib/zref-vario/MANIFEST.md +++ b/macros/latex/contrib/zref-vario/MANIFEST.md @@ -64,6 +64,7 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.). * zv-basic04.lvt * zv-hyperref01.lvt * zv-languages01.lvt +* zv-vcheck01.lvt * zv-zcref-options01.lvt * zv-basic01.luatex.tlg * zv-basic01.luatexdev.tlg @@ -91,6 +92,7 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.). * zv-hyperref01.xetex.tlg * zv-hyperref01.xetexdev.tlg * zv-languages01.tlg +* zv-vcheck01.tlg * zv-zcref-options01.luatex.tlg * zv-zcref-options01.luatexdev.tlg * zv-zcref-options01.tlg diff --git a/macros/latex/contrib/zref-vario/zref-vario-code.pdf b/macros/latex/contrib/zref-vario/zref-vario-code.pdf Binary files differindex 88f1636636..64dcae0165 100644 --- a/macros/latex/contrib/zref-vario/zref-vario-code.pdf +++ b/macros/latex/contrib/zref-vario/zref-vario-code.pdf diff --git a/macros/latex/contrib/zref-vario/zref-vario.dtx b/macros/latex/contrib/zref-vario/zref-vario.dtx index 9d5992f8f3..17c01eed42 100644 --- a/macros/latex/contrib/zref-vario/zref-vario.dtx +++ b/macros/latex/contrib/zref-vario/zref-vario.dtx @@ -128,7 +128,7 @@ % % Identify the package. % \begin{macrocode} -\ProvidesExplPackage {zref-vario} {2022-02-01} {0.1.1-alpha} +\ProvidesExplPackage {zref-vario} {2022-02-08} {0.1.2-alpha} {Extended LaTeX page cross-references with varioref and zref-clever} % \end{macrocode} % @@ -574,7 +574,7 @@ \seq_if_in:NxF \g_@@_setup_languages_seq { \@@_base_lang:e { \l_@@_ref_language_tl } } { - \msg_warning:nnx { zref-vario } { language-not-setup } + \msg_warning:nnx { zref-vario } { language-not-setup } { \l_@@_ref_language_tl } } } @@ -731,6 +731,19 @@ \@@_varioref_setup: \@@_vpageref:VVn \l_@@_reftextcurrent_tl \l_@@_reftextother_tl {#1} + \bool_lazy_and:nnT + { \g_@@_zrefcheck_available_bool } + { \l_@@_with_vcheck_bool } + { + \zrefcheck_zrefvario_label: + \vref@pagenum \l_tmpa_tl { \the\c@vrcnt @vr } + \vrefpagenum \l_tmpb_tl {#1} + \tl_if_eq:NNT \l_tmpa_tl \l_tmpb_tl + { + \zrefcheck_zrefvario_run_check_on_label:Vn + \l_@@_vcheck_tl {#1} + } + } \group_end: } \cs_new_protected:Npn \@@_vpageref:nnn #1#2#3 @@ -787,6 +800,25 @@ { \keys_set:nn { zref-vario/ref } { nohyperref } } \@@_varioref_setup: \@@_vpagerefrange:Vnn \l_@@_reftextcurrent_tl {#1} {#2} + \bool_lazy_and:nnT + { \g_@@_zrefcheck_available_bool } + { \l_@@_with_vcheck_bool } + { + \zrefcheck_zrefvario_label: + \vrefpagenum \l_tmpa_tl {#1} + \vrefpagenum \l_tmpb_tl {#2} + \tl_if_eq:NNT \l_tmpa_tl \l_tmpb_tl + { + \vref@pagenum \l_tmpa_tl { \the\c@vrcnt @vr } + \tl_if_eq:NNT \l_tmpa_tl \l_tmpb_tl + { + \zrefcheck_zrefvario_run_check_on_label:Vn + \l_@@_vcheck_tl {#1} + \zrefcheck_zrefvario_run_check_on_label:Vn + \l_@@_vcheck_tl {#2} + } + } + } \group_end: } \cs_new_protected:Npn \@@_vpagerefrange:nnn #1#2#3 @@ -818,6 +850,67 @@ % % % +% \section{\pkg{zref-check} integration} +% +% Integration with \pkg{zref-check}. \opt{vcheck}, differently from +% \opt{check}, receives only two values \texttt{above} and \texttt{below}, +% since these are the only two checks which make sense for \pkg{zref-vario}. +% This means that it also does not take \cs{zcheck}'s options, but these can +% always be passed to \opt{check}. Besides this, \opt{vcheck}'s check should +% only be done when label(s) and reference are in the same page, that is, when +% \opt{vcurrent} is used. Furthermore, since \pkg{varioref} handles the case +% where the reference crosses page boundaries, we only set one label for the +% purpose, and this is done at the end of the reference, because that's the +% point \pkg{varioref} itself uses to check if label and reference are in the +% same page. +% +% \begin{macrocode} +\bool_new:N \g_@@_zrefcheck_available_bool +\bool_new:N \l_@@_with_vcheck_bool +\tl_new:N \l_@@_vcheck_tl +\AddToHook { begindocument/before } + { + \IfPackageLoadedTF { zref-check } + { + \IfPackageAtLeastTF { zref-check } { 2022-02-08 } + { + \bool_gset_true:N \g_@@_zrefcheck_available_bool + \keys_define:nn { zref-vario/current } + { + vcheck .choices:nn = + { above , below } + { + \bool_set_true:N \l_@@_with_vcheck_bool + \tl_set:NV \l_@@_vcheck_tl \l_keys_choice_tl + } , + } + } + { + \bool_gset_false:N \g_@@_zrefcheck_available_bool + \keys_define:nn { zref-vario/current } + { + vcheck .code:n = + { \msg_warning:nn { zref-vario } { zref-check-unavailable } } , + } + } + } + { + \bool_gset_false:N \g_@@_zrefcheck_available_bool + \keys_define:nn { zref-vario/current } + { + vcheck .code:n = + { \msg_warning:nn { zref-vario } { zref-check-unavailable } } , + } + } + } +\msg_new:nnn { zref-vario } { zref-check-unavailable } + { + Option~'vcheck'~is~only~available~when~'zref-check'~is~loaded~ + and~newer~than~'2022-02-08~v0.2.4'. + } +% \end{macrocode} +% +% % \section{Languages} % % diff --git a/macros/latex/contrib/zref-vario/zref-vario.pdf b/macros/latex/contrib/zref-vario/zref-vario.pdf Binary files differindex 8a37e41a8d..df3d54ed30 100644 --- a/macros/latex/contrib/zref-vario/zref-vario.pdf +++ b/macros/latex/contrib/zref-vario/zref-vario.pdf diff --git a/macros/latex/contrib/zref-vario/zref-vario.tex b/macros/latex/contrib/zref-vario/zref-vario.tex index 7801d52f5d..a4ef370837 100644 --- a/macros/latex/contrib/zref-vario/zref-vario.tex +++ b/macros/latex/contrib/zref-vario/zref-vario.tex @@ -236,7 +236,7 @@ macros to the values given to the corresponding options in support, you should set at least the whole set of ``\texttt{reftext}\dots{}'' options. Language independent default values are provided for the ``\dots{}\texttt{format}'' options (equivalent to the ones from -\pkg{varioref}, which are adequate to most use cases), so you may omit them. +\pkg{varioref}, which are adequate for most use cases), so you may omit them. But, if you need to adjust them, the default values can be overridden by setting the corresponding options in \cs{zvLanguageSetup}. @@ -249,6 +249,35 @@ though they do affect \pkg{zref-vario}'s commands, just as they do with \pkg{varioref}'s. +\section{Integration with \pkg{zref-check}} + +When package \pkg{zref-check} is loaded, \pkg{zref-vario} provides one further +option to its user commands: \opt{vcheck}. The purpose of this option is to +check the relative position of label and reference within the same page. It +can receive two values: \texttt{above} and \texttt{below}, being those the +names of the \pkg{zref-check}'s checks which are meaningful for the use case +at hand. Of course, these could also be performed with \cs{zcref}'s +\opt{check} option, which is available for \pkg{zref-vario}'s commands as +well. The difference here is that the check specified in \opt{vcheck} is only +performed when the referenced label -- or labels, in the case of a range -- +fall on the same page as the reference itself.\footnote{There's another + technical difference between them. \pkg{zref-check}'s checks, and hence + those of the \opt{check} option, make sure the whole reference passes each + check by setting labels both at the start and the end of the reference, and + verifying if each one of them passes the checks. But, since \pkg{varioref} + already has it's own mechanism to handle references which cross page + boundaries, \opt{vcheck}'s checks set only one label, at the end of the + reference, the same position \pkg{varioref} uses to check whether label and + reference are on the same page.} In other words, when \opt{vcurrent} would +be used (if provided). For this reason, only the commands which support +\opt{vcurrent} offer \pkg{vcheck}. Also, \opt{vcheck} cannot receive +\pkg{zref-check}'s options, as \opt{check} is able to, but the latter can be +used for the purpose of locally controlling the behavior of the checks +performed by \opt{vcheck}. Consult \pkg{zref-check}'s documentation for +details and limitations of these checks and envisaged workflows for their +reliable use. + + % \section{Acknowledgments} % % A number of people have contributed to \pkg{zref-vario}. Suggestions, |