% !TeX TXS-program:compile = txs:///arara
% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode}
% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')

\documentclass[french,a4paper,11pt]{article}
\usepackage[margin=2cm,includefoot]{geometry}
\def\TPversion{0.1.1}
\def\TPdate{28 Mai 2023}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
\usepackage{tikz2d-fr}
\usepackage{tkz-euclide}
\usepackage{awesomebox}
\usepackage{fontawesome5}
\usepackage{footnote}
\makesavenoteenv{tabular}
\usepackage{enumitem}
\usepackage{tabularray}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\lfoot{\sffamily\small [tikz2d-fr]}
\cfoot{\sffamily\small - \thepage{} -}
\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}

%\usepackage{hvlogos}
\usepackage{hologo}
\providecommand\tikzlogo{Ti\textit{k}Z}
\providecommand\TeXLive{\TeX{}Live\xspace}
\providecommand\PSTricks{\textsf{PSTricks}\xspace}
\let\pstricks\PSTricks
\let\TikZ\tikzlogo
\newcommand\TableauDocumentation{%
       \begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}}
               {\LARGE \LaTeX} & & & & &\\
               & {\LARGE \hologo{pdfLaTeX}} & & & & \\
               & & {\LARGE \hologo{LuaLaTeX}} & & & \\
               & & & {\LARGE \TikZ} & & \\
               & & & & {\LARGE \TeXLive} & \\
               & & & & & {\LARGE \hologo{MiKTeX}} \\
       \end{tblr}
}

\usepackage{hyperref}
\urlstyle{same}
\hypersetup{pdfborder=0 0 0}
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}

\usepackage{babel}
\AddThinSpaceBeforeFootnotes
\FrenchFootnotes

\usepackage[most]{tcolorbox}
\tcbuselibrary{listings}
\newtcblisting{DemoCode}[1][]{%
       enhanced,width=0.95\linewidth,center,%
       bicolor,size=title,%
       colback=cyan!2!white,%
       colbacklower=cyan!1!white,%
       colframe=cyan!75!black,%
       listing options={%
               breaklines=true,%
               breakatwhitespace=true,%
               style=tcblatex,basicstyle=\small\ttfamily,%
               tabsize=4,%
               commentstyle={\itshape\color{gray}},
               keywordstyle={\color{blue}},%
               classoffset=0,%
               keywords={},%
               alsoletter={-},%
               keywordstyle={\color{blue}},%
               classoffset=1,%
               alsoletter={-},%
               morekeywords={\draw,node,\coordinate,tikz3d-fr},%
               keywordstyle={\color{violet}},%
               classoffset=2,%
               alsoletter={-},%
               morekeywords={\TracerSegments,\DefinirPoints,\DefinirPoint,\MarquerPoint,\MarquerPoints,mainlevee,\ImagePoint,\ImagesPoints},%
               keywordstyle={\color{green!50!black}},%
               classoffset=3,%
               morekeywords={Cap,Style,Couleurs,Cycle,Join,line,cap,line,join,Suite,Couleurs,DecalLabel,StyleMarque,Couleur,Math,TaillePolice},%
               keywordstyle={\color{orange}}
       },%
       #1
}

\tcbset{vignettes/.style={%
       nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,%
       boxrule=0.75pt,left=7pt,right=1pt,top=0pt,bottom=0.25pt,%
       }
}

\tcbset{vignetteMaJ/.style={%
       fontupper={\vphantom{pf}\footnotesize\ttfamily},
       vignettes,colframe=purple!50!black,coltitle=white,colback=purple!10,%
       overlay={\begin{tcbclipinterior}%
                       \fill[fill=purple!75]($(interior.south west)$) rectangle node[rotate=90]{\tiny \sffamily{\textcolor{black}{\scalebox{0.66}[0.66]{\textbf{MàJ}}}}} ($(interior.north west)+(5pt,0pt)$);%
       \end{tcbclipinterior}}
       }
}

\newcommand\Cle[1]{{\bfseries\sffamily\textlangle #1\textrangle}}
\newcommand\cmaj[1]{\tcbox[vignetteMaJ]{#1}\xspace}

\begin{document}

\setlength{\aweboxleftmargin}{0.07\linewidth}
\setlength{\aweboxcontentwidth}{0.93\linewidth}
\setlength{\aweboxvskip}{8pt}

\pagestyle{fancy}

\thispagestyle{empty}

\vspace{2cm}

\begin{center}
       \begin{minipage}{0.75\linewidth}
       \begin{tcolorbox}[colframe=yellow,colback=yellow!15]
               \begin{center}
                       \begin{tabular}{c}
                               {\Huge \texttt{tikz2d-fr}}\\
                               \\
                               {\LARGE Quelques commandes simplifiées (fr)} \\
                               \\
                               {\LARGE pour utiliser avec \TikZ.} \\
                       \end{tabular}

                       \bigskip

                       {\small \texttt{Version \TPversion{} -- \TPdate}}
               \end{center}
       \end{tcolorbox}
\end{minipage}
\end{center}

\begin{center}
       \begin{tabular}{c}
       \texttt{Cédric Pierquet}\\
       {\ttfamily c pierquet -- at -- outlook . fr}\\
       \texttt{\url{https://github.com/cpierquet/tikz2dfr}}
\end{tabular}
\end{center}

\vspace{0.25cm}

{$\blacktriangleright$~~Définir des points par coordonnées.}

\smallskip

{$\blacktriangleright$~~Définir des points par transformations simples.}

\smallskip

{$\blacktriangleright$~~Tracer des segments, avec option(s) de couleurs.}

\smallskip

{$\blacktriangleright$~~Marquer des points.}

\vspace{1cm}

\begin{center}
       \begin{tcolorbox}[enhanced,colframe=cyan,colback=cyan!2,center,width=0.95\linewidth,drop fuzzy shadow=lightgray]
       \hfill
       \begin{tikzpicture}
               \DefinirPoints[Couleur=violet,DecalLabel=0pt]{A/0,0/b B/4,0/b C/3,2/h}
               \TracerSegments[Suite,Cycle,Couleurs=red,Join=bevel]{A B C}
       \end{tikzpicture}
       \hspace{1cm}
       \begin{tikzpicture}
               \DefinirPoints[DecalLabel=1pt]{A/0,0/bg B/4,0/bd C/3,2/h}
               \TracerSegments[Suite,Cycle,Couleurs={red,blue,green}]<thick,mainlevee>{A B C}
               \MarquerPoints[StyleMarque=x]{A}\MarquerPoints[StyleMarque=+]{B}\MarquerPoints{C}
       \end{tikzpicture}
       \hfill~

       \vspace{1cm}

       \hfill~
       \begin{tikzpicture}
               \DefinirPoints*{A_1/0:2/ A_2/45:2/ A_3/90:2/ A_4/135:2/ A_5/180:2/ A_6/225:2/ A_7/270:2/ A_8/315:2/}
               \TracerSegments[Suite,Cycle,Couleurs={red,blue,green,yellow,orange,pink,gray,violet}]<thick,mainlevee=1cm et 1mm>{A_1 A_2 A_3 A_4 A_5 A_6 A_7 A_8}
               \TracerSegments[]<semithick,densely dotted,mainlevee>{A_1/A_5 A_2/A_6 A_3/A_7 A_4/A_8}
       \end{tikzpicture}
       \hfill~
       \end{tcolorbox}
\end{center}

\vspace{0.5cm}

%\hfill{}\textit{Merci à Denis Bitouzé et à Gilles Le Bourhis pour leurs retours et idées !}

\smallskip

\vfill

\hrule

\medskip

\TableauDocumentation

\medskip

\hrule

\medskip

\newpage

\phantomsection
\hypertarget{matoc}{}

\tableofcontents

\vfill

\part{Historique}

\verb|v0.1.1|~:~~~~Ajout d'une clé \Cle{[TaillePolice]} + Points définis par une transformation simple.

\verb|v0.1.0|~:~~~~Version initiale.

\newpage

\part{Introduction}

\section{Le package tikz2d-fr}

\subsection{Introduction}

\begin{noteblock}
Le package propose des commandes basiques -- francisées -- pour travailler sur des figures simples en 2D, à l'aide de \TikZ{} avec :

\begin{itemize}
       \item de quoi simuler un tracé à \textit{main levée} ;
       \item de quoi définir des points (et donc des nœuds) via \textsf{nom/coordonnées/positionlabel} ;
       \item \cmaj{0.1.1} de quoi définir des points images par des transformations simples ;
       \item de marquer des points (croix, disques) ;
       \item de quoi tracer des segments (enchaînés ou non) en spécifiant les couleurs éventuelles.
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{noteblock}

\begin{importantblock}
On peut voir ce modeste package comme un \textit{maigre} complément à \TikZ{} et \textsf{tkz-euclide}\footnotemark\footnotetext{\url{https://ctan.org/pkg/tkz-euclide}} qui permet de faire énormément de choses en géométrie euclidienne.

\smallskip

Ainsi, les éventuel points (nœuds) créés par \textsf{tikz2d-fr} seront réutilisables dans toute commande classique de \TikZ{} ou de \textsf{tkz-euclide}.

\smallskip

On peut donc \textit{utiliser} le package \textsf{tikz2d-fr} comme \textit{base} de travail avant des choses plus poussées !
\end{importantblock}

\subsection{Autres solutions}

\begin{importantblock}
À noter qu'il existe d'autres solutions graphiques, comme :

\begin{itemize}
       \item \textsf{\PSTricks} avec \textsf{pst-eucl}\footnotemark\footnotetext{\url{https://www.ctan.org/pkg/pst-eucl}} ;
       \item \hologo{MetaPost} avec \textsf{ProfCollege} et son environnement \texttt{geometrie}\footnotemark\footnotetext{\url{https://www.ctan.org/pkg/profcollege}}.
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{importantblock}

\subsection{Chargement du package, packages utilisés}

\begin{importantblock}
Le package se charge, de manière classique, dans le préambule.

Il n'existe pas d'option pour le package, et \texttt{xcolor} n'est pas chargé.
\end{importantblock}

\begin{DemoCode}[listing only]
\documentclass{article}
\usepackage{tikz2d-fr}

\end{DemoCode}

\begin{noteblock}
\textsf{tikz2d-fr} charge les packages suivantes :

\begin{itemize}
       \item \texttt{tikz}, \texttt{xstring}, \texttt{simplekv}, \texttt{xintexpr} et \texttt{listofitems} ;
       \item les librairies \texttt{\textit{tikz}.decorations} et \texttt{\textit{tikz}.decorations.pathmorphing}.
\end{itemize}

Il est compatible avec les compilations usuelles en \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} ou \textsf{xelatex}.
\end{noteblock}

\vfill~

\pagebreak

\part{Styles et commandes}

\section{Tracé à main levée}

\subsection{Idée}

\begin{tipblock}
L'idée est de \textit{proposer} un style \textit{tout prêt} pour simuler un tracé, en \TikZ, à \og main levée \fg.

Il s'agit d'un style \textit{basique} utilisant la librairie \textsf{decorations} avec \textsf{random steps}.
\end{tipblock}

\begin{DemoCode}[listing only]
\tikzset{%
       mainlevee/.style args={#1et#2}{%
               decorate,decoration={random steps, segment length=#1,amplitude=#2}},
               mainlevee/.default={5mm et 0.6pt}
       }
\end{DemoCode}

\subsection{Utilisation basique}

\begin{cautionblock}
Il s'agit ni plus ni moins d'un style \TikZ{} à intégrer dans les tracés et constructions \TikZ !

\smallskip

Pour ce style, deux paramètres peuvent être précisés via \Cle{mainlevee=\#1 et \#2} :

\begin{itemize}
       \item \Cle{\#1} correspond à l'option \textsf{segment length} (longueur des segments \textit{types}) ;

       \hfill{}défaut \Cle{5mm}
       \item \Cle{\#2} correspond à l'option \textsf{amplitude} (amplitude maximale de la \textit{déformation}).

       \hfill{}défaut \Cle{0.6pt}
\end{itemize}

Les valeurs \Cle{mainlevee=5mm et 0.6pt} donnent des résultats -- à mon sens -- satisfaisants, mais l'utilisateur pourra modifier à loisir ces paramètres !
\end{cautionblock}

\begin{DemoCode}[listing only]
%la grille a été rajoutée pour la sortie
\begin{tikzpicture}
       \draw[thick,mainlevee] (0,0) rectangle (4,4) ;
\end{tikzpicture}

\begin{tikzpicture}
       \draw[thick,mainlevee=5mm et 2pt] (0,0) rectangle (4,4) ;
\end{tikzpicture}

\begin{tikzpicture}
       \draw[thick,mainlevee=10mm et 3mm]  (0,0) rectangle (4,4) ;
\end{tikzpicture}
\end{DemoCode}

\begin{DemoCode}[text only]
\hfill~\begin{tikzpicture}
               \draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
               \draw[thick,mainlevee]  (0,0) rectangle (4,4) ;
       \end{tikzpicture}
       \hspace{1cm}
       \begin{tikzpicture}
               \draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
               \draw[thick,mainlevee=5mm et 2pt]  (0,0) rectangle (4,4) ;
       \end{tikzpicture}
       \hspace{1cm}
       \begin{tikzpicture}
               \draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
               \draw[thick,mainlevee=10mm et 3mm]  (0,0) rectangle (4,4) ;
       \end{tikzpicture}
       \hfill~
\end{DemoCode}

\pagebreak

\section{Définir des points par coordonnées}

\subsection{Commandes}

\begin{cautionblock}
Les commandes \textit{simplifiées} et \textit{francisées} disponibles sont :

\begin{itemize}
       \item \texttt{\textbackslash DefinirPoint} pour définir un point ;
       \item \texttt{\textbackslash DefinirPoints} pour définir des points ;
       \item \texttt{\textbackslash MarquerPoint} pour marquer (matérialiser) un point ;
       \item \texttt{\textbackslash MarquerPoints} pour marquer (matérialiser) des points.
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{cautionblock}

\begin{DemoCode}[listing only]
\begin{tikzpicture}[options tikz]
       %créer/placer/nommer un point
       \DefinirPoint(*)[clés]{noeud}{coordonnées}<label>
       %créer/placer/nommer plusieurs points, sans modification des labels !
       \DefinirPoints(*)[clés]{liste}
       %marquer un point
       \MarquerPoint[clés]{point}
       %marquer plusieurs points
       \MarquerPoints[clés]{liste}
\end{tikzpicture}
\end{DemoCode}

\subsection{Clés, options et arguments}

\begin{tipblock}
Les versions étoilées désactivent l'affichage des labels des points.

\smallskip

L'argument optionnel et entre \texttt{[...]} propose les \Cle{clés} suivantes (communes ou spécifiques) :

\begin{itemize}
       \item \Cle{PosLabel} pour préciser la position (francisée) du label pour les points ; \hfill{}défaut : \Cle{b}
       \item \cmaj{0.1.1} \Cle{TaillePolice} pour spécifier la taille de la police du label ;

       \hfill{}défaut : \Cle{\textbackslash normalsize}
       \item \Cle{StyleMarque} parmi \Cle{x/o/+} pour spécifier le style de la marque des points ;

       \hfill{}défaut : \Cle{o}
       \item \Cle{Math} : booléen pour afficher le label en mode math ; \hfill{}défaut : \Cle{false}
       \item \Cle{TailleMarque} pour spécifier la taille de la marque des points (disque/ croix) ;

       \hfill{}défaut : \Cle{2pt}
       \item \Cle{Couleur} pour paramétrer la couleur.\hfill{}défaut : \Cle{black}
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{tipblock}

\begin{tipblock}
Les positions pour les labels des points sont \textit{francisées} :

\begin{itemize}
       \item \Cle{b} : \texttt{bas}
       \item \Cle{h} : \texttt{haut}
       \item \Cle{g} : \texttt{gauche}
       \item \Cle{d} : \texttt{droite}
       \item \Cle{hg} : \texttt{haut gauche}
       \item \ldots
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{tipblock}

\begin{tipblock}
De manière un peu plus spécifique :

\begin{itemize}
       \item le \texttt{<label>} pour la commande \texttt{\textbackslash DefinirPoint} est optionnel, et est identique à \texttt{\{nœud\}} ;
       \item la \texttt{\{liste\}} pour la commande \texttt{\textbackslash DefinirPoints} est à donner -- par exemple -- sous la forme \texttt{A/xa,ya/poslabel B/alpha:r/poslabel ...}.
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{tipblock}

\begin{DemoCode}[]
\begin{tikzpicture}
       \DefinirPoint{A}{0,0}
       \DefinirPoints{B/4,0/ C/3,2/}
       \DefinirPoints[Math]{H_1/-1,2.5/}
       \MarquerPoints{A,B,C,H_1}
\end{tikzpicture}
\end{DemoCode}

\begin{DemoCode}[]
\begin{tikzpicture}
       \DefinirPoints[DecalLabel=1pt,Couleur=blue,Math]{A/0,0/bg B/4,0/bd}
       \DefinirPoints[DecalLabel=1pt,Couleur=red,TaillePolice=\LARGE]{C/3,2/h}
       \MarquerPoints[StyleMarque=x,Couleur=violet]{A}
       \MarquerPoints[Couleur=orange]{B}
       \MarquerPoint[StyleMarque=+,Couleur=red]{C}
\end{tikzpicture}
\end{DemoCode}

\pagebreak

\section{Définir des points par transformation}

\subsection{Commandes}

\begin{cautionblock}
\cmaj{0.1.1} Les commandes \textit{simplifiées} et \textit{francisées} disponibles sont :

\begin{itemize}
       \item \texttt{\textbackslash ImagePoint} pour définir un point par transformation ;
       \item \texttt{\textbackslash ImagesPoints} pour définir des points par transformation.
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{cautionblock}

\begin{noteblock}
Les \textit{transformations} disponibles sont (l'écriture \textit{mathématique} sert à illustrer la syntaxe \LaTeX{} utilisée) :

\begin{itemize}
       \item les translations glissées $t(A)=A+k\times\vec{u}$ ;
       \item les rotations $r(A)=A+{\text{rot}}(\Omega,\theta)$ ;
       \item les symétries centrales $s(A)=A+{\text{sym}}(I)$.
\end{itemize}
\end{noteblock}

\begin{DemoCode}[listing only]
\begin{tikzpicture}[options tikz]
       %création des points utiles
       \DefinirPoint... \DefinirPoints
       %point défini par une transformation
       \ImagePoint(*)[clés]{formule}<label point>
       %points définis par des transformations, sans modification des labels !
       \ImagesPoints(*)[clés]{formule § formule § ...}
\end{tikzpicture}
\end{DemoCode}

\begin{DemoCode}[listing only]
\begin{tikzpicture}[options tikz]
       %création des points utiles
       \DefinirPoint...
       %point défini par une translation glissée
       \ImagePoint(*)[clés]{PtArr=PTDep+t(k,DebVect>FinVect)}
\end{tikzpicture}
\end{DemoCode}

\hfill
\begin{tikzpicture}
       \draw[thin,lightgray] (-2,-1) grid (5,3) ;
       \DefinirPoints{A/0,0/}
       \DefinirPoints*{K/-1,1/ L/2,2/}
       \draw[semithick,->,>=latex] (K)--(L) node[midway,sloped,above] {$\vec{u}$} ;
       \ImagePoint[Math]{A'=A+t(1.5,K>L)}
       \draw[semithick,->,>=latex,gray,dashed] (A)--(A') node[midway,sloped,below] {$k\times\vec{u}$} ;
       \MarquerPoints{A,A'}
\end{tikzpicture}
\hfill~

\begin{DemoCode}[listing only]
\begin{tikzpicture}[options tikz]
       %création des points utiles
       \DefinirPoint...
       %point défini par une rotation
       \ImagePoint{PtArr=PTDep+r(centre,angle)}
       %point défini par une symétrie centrale
\end{tikzpicture}
\end{DemoCode}

\hfill
\begin{tikzpicture}
       \draw[thin,lightgray] (-2,0) grid (4,4) ;
       \DefinirPoint[Math]{Omega}{0,1}<\Omega>
       \DefinirPoint{A}{3,0.5}
       \ImagePoint[Math]{A'=A+r(Omega,55)}
       \draw[semithick,->,>=latex,gray,dashed] (Omega)--(A) ;
       \draw[semithick,->,>=latex,gray,dashed] (Omega)--(A') ;
       \tkzPicAngle["$\mathcolor{gray}{\alpha}$",draw=gray,<->,angle eccentricity=1.2,angle radius=1cm](A,Omega,A')
       \MarquerPoints{Omega,A,A'}
\end{tikzpicture}
\hfill~

\begin{DemoCode}[listing only]
\begin{tikzpicture}[options tikz]
       %création des points utiles
       \DefinirPoint...
       \ImagePoint{PtArr=PTDep+s(centre)}
\end{tikzpicture}
\end{DemoCode}

\hfill
\begin{tikzpicture}
       \draw[thin,lightgray] (-4,-1) grid (5,2) ;
       \DefinirPoints{A/4,1/ I/0.5,0.5/}
       \ImagePoint[Math]{A'=A+s(I)}
       \draw[semithick,->,>=latex,gray,dashed] (I)--(A) node[midway,sloped] {$/\!/$} ;
       \draw[semithick,->,>=latex,gray,dashed] (I)--(A') node[midway,sloped] {$/\!/$} ;
       \MarquerPoints{A,I,A'}
\end{tikzpicture}
\hfill~

\subsection{Clés, options et arguments}

\begin{tipblock}
Les versions étoilées désactivent l'affichage des labels des points.

\smallskip

L'argument optionnel et entre \texttt{[...]} propose les \Cle{clés} suivantes (communes ou spécifiques) :

\begin{itemize}
       \item \Cle{PosLabel} pour préciser la position (francisée) du label pour les points ; \hfill{}défaut : \Cle{b}
       \item \Cle{TaillePolice} pour spécifier la taille de la police du label ;

       \hfill{}défaut : \Cle{\textbackslash normalsize}
       \item \Cle{StyleMarque} parmi \Cle{x/o/+} pour spécifier le style de la marque des points ;

       \hfill{}défaut : \Cle{o}
       \item \Cle{Math} : booléen pour afficher le label en mode math ; \hfill{}défaut : \Cle{false}
       \item \Cle{TailleMarque} pour spécifier la taille de la marque des points (disque/ croix) ;

       \hfill{}défaut : \Cle{2pt}
       \item \Cle{Couleur} pour paramétrer la couleur.\hfill{}défaut : \Cle{black}
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{tipblock}

\pagebreak

\begin{noteblock}
On donne par exemple $A(0;0)$, $B(4;1)$ et $C(3;2)$ et on définit les points :
%
\begin{itemize}
       \item $D$ image de $A$ par la translation de vecteur $\overrightarrow{AB}$ ;
       \item $E$ image de $A$ par la translation de vecteur $\overrightarrow{CB}$ ;
       \item $F$ image de $A$ par la translation-glissée de vecteur $2\overrightarrow{DB}$ ;
       \item $G$ image de $F$ par la translation de vecteur $\overrightarrow{BD}$ ;
       \item $K$ image de $G$ par la rotation de centre $F$ et d'angle 90° ;
       \item $L$ image de $B$ par la symétrie centrale de centre $C$ ;
       \item $H_1$ image de $A$ par la translation-glissée de vecteur $-0{,}5\overrightarrow{BA}$.
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{noteblock}

\begin{DemoCode}[tikz lower]
\draw[thin,lightgray] (-5,-2) grid (8,5) ;
\DefinirPoints[Math,TaillePolice=\LARGE]{A/0,0/ B/4,1/ C/3,2/}
\ImagesPoints[TaillePolice=\tiny]{D=C+t(A>B) § E=A+t(C>B) § F=A+t(2,B>C) § G=F+t(B>D) § K=G+r(F,90) § L=B+s(C)}
\ImagePoint[Math,TaillePolice=\scriptsize]{H_1=A+t(-0.5,B>A)}
\MarquerPoints{A,B,C,D,E,F,G,K,L}
\MarquerPoint{H_1}
\end{DemoCode}

\pagebreak

\section{Tracer des segments}

\subsection{Commandes}

\begin{cautionblock}
La commande \textit{simplifiée} et \textit{francisée} pour tracer des segments est \texttt{\textbackslash TracerSegments}.

\smallskip

Le fonctionnement de cette commande permet de définir les segments :

\begin{itemize}
       \item sous la forme \texttt{A/B C/D ...} dans le cas de segments \textit{non forcément contigus} ;
       \item sous la forme \texttt{A B C ...} dans le cas de segments \textit{contigus} (avec possibilité de \textit{fermer} le chemin).
\end{itemize}
\end{cautionblock}

\begin{DemoCode}[listing only]
%version liste de segments (AB) et (CD) et ...
\begin{tikzpicture}
       \TracerSegments[clés]<options tikz>{ptA/ptB ptC/ptD ...}
\end{tikzpicture}

%version suite de points (AB) et (BC) et ...
\begin{tikzpicture}
       \TracerSegments[Suite,clés]<options tikz>{ptA ptB ptC ...}
\end{tikzpicture}
\end{DemoCode}

\subsection{Clés, options et arguments}

\begin{tipblock}
Concernant les \textsf{clés}, qui correspondent au premier argument, optionnel et entre \texttt{[...]} (certaines clés sont inactives dans certaines situations\ldots) :

\begin{itemize}
       \item \Cle{Cap} : type de \textit{jointure} pour les segments individuels ;\hfill{}défaut \Cle{round}
       \item \Cle{Join} : type de \textit{jointure} pour les segments enchaînés ;\hfill{}défaut \Cle{miter}
       \item \Cle{Couleurs} : sous la forme \Cle{couleur unique} ou \Cle{liste,de,couleurs} (cohérente avec le nombre de segments !) ;

       \hfill{}défaut \Cle{black}
       \item \Cle{Cycle} : booléen pour préciser qu'on veut \textit{fermer} le chemin ;\hfill{}défaut \Cle{false}
       \item \Cle{Suite} : booléen pour préciser qu'on veut travaille avec des points enchaînés.

       \hfill{}défaut \Cle{false}
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{tipblock}

\begin{tipblock}
Le deuxième argument, optionnel et entre \texttt{<...>} correspond aux options, en langage \TikZ{} à passer à l'ensemble des segments.

\smallskip

Le troisième argument, obligatoire et entre \texttt{\{...\}} correspond à la suite des segments à tracer :

\begin{itemize}
       \item sous la forme \texttt{ptA/ptB ptC/ptD ...} pour des segments individuels ;
       \item sous la forme \texttt{ptA ptB ptC ...} (avec la clé \Cle{Suite}) pour des segments enchaînés.
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{tipblock}

\begin{noteblock}
À noter que dans le cas d'une succession de segments (\Cle{Suite}) monochromes, cela revient à un chemin et donc ce sera la clé \Cle{Join=...} qui sera utile.
\end{noteblock}

\pagebreak

\begin{DemoCode}[]
\begin{tikzpicture}
       \TracerSegments[Suite,Couleurs={red,blue,green}]{0,0 4,0 1,3 0,0}
\end{tikzpicture}
\begin{tikzpicture}
       \TracerSegments[Suite,Cap=butt,Couleurs={red,blue,green}]{0,0 4,0 1,3 0,0}
\end{tikzpicture}
\begin{tikzpicture}
       \TracerSegments[Suite,Cap=rect,Couleurs={red,blue,green}]{0,0 4,0 1,3 0,0}
\end{tikzpicture}
\end{DemoCode}

\begin{DemoCode}[]
\begin{tikzpicture}
       \TracerSegments[Cycle,Suite,Couleurs=blue,Join=round]{0,0 4,0 1,3}
\end{tikzpicture}
\begin{tikzpicture}
       \TracerSegments[Couleurs={red,blue,green}]{0,0/4,0 1,3/0,0 4,0/1,3}
\end{tikzpicture}
\begin{tikzpicture}
       \TracerSegments[Suite,Couleurs={yellow,orange}]{0,0 4,0 1,3}
\end{tikzpicture}
\end{DemoCode}

\begin{DemoCode}[]
\begin{tikzpicture}
       \DefinirPoints[DecalLabel=1pt]{A/0,0/bg B/4,0/bd C/3,2/h}
       \TracerSegments[Suite,Cycle,Couleurs={red,blue,green}]{A B C}
       \MarquerPoints[StyleMarque=x]{A,B,C}
\end{tikzpicture}
\begin{tikzpicture}
       \DefinirPoints[DecalLabel=1pt,Math]{A/0,0/bg B/4,0/bd C/3,2/h}
       \TracerSegments[Couleurs={yellow,red}]{A/B B/C}
       \TracerSegments[Couleurs=blue]{C/A}
       \MarquerPoints{A,B,C}
\end{tikzpicture}
\end{DemoCode}

\end{document}