summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-10-19 03:01:07 +0000
committerNorbert Preining <norbert@preining.info>2023-10-19 03:01:07 +0000
commit05e4c0a34b97237b4cd2f3fb0d5cd03e73b8e55e (patch)
treefc7502cefdd6bcd7e39361b7b5cfe5b650eeba11 /graphics
parentf4a002c5b54c3f9678105cef89c2cd0b4f41577a (diff)
CTAN sync 202310190301
Diffstat (limited to 'graphics')
-rw-r--r--graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.pdfbin423840 -> 501125 bytes
-rw-r--r--graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.tex179
-rw-r--r--graphics/pgf/contrib/outilsgeomtikz/tex/OutilsGeomTikz.sty128
3 files changed, 255 insertions, 52 deletions
diff --git a/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.pdf b/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.pdf
index e66c2c6c0f..2bd736f970 100644
--- a/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.pdf
+++ b/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.tex b/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.tex
index aa124a4596..3e30b249db 100644
--- a/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.tex
+++ b/graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.tex
@@ -4,8 +4,8 @@
\documentclass[french,a4paper,11pt]{article}
\usepackage[margin=2cm,includefoot]{geometry}
-\def\TPversion{0.1.2}
-\def\TPdate{22 mai 2023}
+\def\TPversion{0.1.4}
+\def\TPdate{18 octobre 2023}
\usepackage[table,svgnames]{xcolor}
\usepackage[bold-style=ISO,math-style=french]{concmath-otf}
%\usepackage[bold-style=ISO,math-style=french]{unicode-math}
@@ -39,12 +39,7 @@
\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}} \\
+ {\large \LaTeX} & {\large \hologo{pdfLaTeX}} & {\large \hologo{LuaLaTeX}} & {\large \TikZ} & {\large \TeXLive} & {\large \hologo{MiKTeX}} \\
\end{tblr}
}
@@ -171,14 +166,14 @@
\tkzRapporteur[Complet,Echelle=0.5,Origine={(13,3.25)},Rotation=25,Fond,CouleurFond=orange]
\end{tikzpicture}\hfill~
-%\vspace{0.5cm}
-%
-%\hfill{}\textit{Merci à Denis Bitouzé et à Gilles Le Bourhis pour leurs retours et idées !}
-
\smallskip
\vfill
+\hfill\textit{Merci à Arnaud pour ses retours et idées !!}
+
+\vfill
+
\hrule
\medskip
@@ -202,11 +197,15 @@
\part{Historique}
-\verb|v0.1.2|~:~~~~Ajout de la \textit{règle-repère}
+\verb|v0.1.4 : |Possibilité de positionner certains outils avec deux points (angle calculé automatiquement)
+
+\verb|v0.1.3 : |Ajout du \textit{pourcenteur}
+
+\verb|v0.1.2 : |Ajout de la \textit{règle-repère}
-\verb|v0.1.1|~:~~~~Correction d'un bug avec une ancienne syntaxe [join=...]
+\verb|v0.1.1 : |Correction d'un bug avec une ancienne syntaxe \textsf{[join=...]}
-\verb|v0.1.0|~:~~~~Version initiale.
+\verb|v0.1.0 : |Version initiale.
\vspace{1cm}
@@ -225,7 +224,8 @@ Le package \textsf{OutilsGeomTikz} \textit{propose} des éléments graphiques, e
\item un crayon ;
\item une règle graduée ;
\item une équerre graduée (30/60) ;
- \item un rapporteur (180 ou 360);
+ \item un rapporteur (180 ou 360) ;
+ \item un pourcenteur ;
\item une réquerre graduée ;
\item une \og règle-repère \fg{} graduée ;
\item une \og rappéquerre \fg{} graduée ;
@@ -283,14 +283,15 @@ Les différents outils disponibles ont \textit{grosso-modo} le même mode de fon
\begin{itemize}
\item le \textit{nom} de la commande est sous la forme \texttt{\textbackslash tkz<Outil>} ;
\item les outils ont été créés, en \TikZ, avec comme unité de base le centimètre ;
- \item pour certains outils, des dimensions minimales sont requises pour un aspect conforme et acceptable ;
+ \item pour certains outils, des dimensions minimales sont requises pour un aspect acceptable ;
\item les options personnalisables sont (sauf exceptions) :
\begin{itemize}
\item la \textit{taille} ;
\item l'\textit{échelle} globale ou l'\textit{échelle} des éventuels labels ;
\item les \textit{couleurs} ;
\item le \textit{fond} (couleur et opacité) ;
- \item la position (\textit{placement} et/ou \textit{rotation}).
+ \item la position (\textit{placement} et/ou \textit{rotation}) ;
+ \item un \textit{placement automatique} avec la données de 2 points.
\end{itemize}
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
@@ -301,12 +302,10 @@ Les différents outils disponibles ont \textit{grosso-modo} le même mode de fon
\begin{cautionblock}
Les outils disponibles sont à insérer dans un environnement \TikZ, et pour le moment il existe :
\begin{itemize}
- \item \texttt{\textbackslash tkzRegle} ;
- \item \texttt{\textbackslash tkzEquerre} ;
- \item \texttt{\textbackslash tkzRapporteur} ;
- \item \texttt{\textbackslash tkzRequerre} ;
+ \item \texttt{\textbackslash tkzRegle} et \texttt{\textbackslash tkzRegleRepere} ;
+ \item \texttt{\textbackslash tkzEquerre} et \texttt{\textbackslash tkzRequerre} ;
+ \item \texttt{\textbackslash tkzRapporteur} et \texttt{\textbackslash tkzPourcenteur} ;
\item \texttt{\textbackslash tkzRappequerre} ;
- \item \texttt{\textbackslash tkzRegleRepere} ;
\item \texttt{\textbackslash tkzCompas} ;
\item \texttt{\textbackslash tkzCrayon}.
\end{itemize}
@@ -317,6 +316,7 @@ Les outils disponibles sont à insérer dans un environnement \TikZ, et pour le
\tkzRegle[clés]
\tkzEquerre[clés]
\tkzRapporteur[clés]
+\tkzPourcenteur[clés]
\tkzRequerre[clés]
\tkzRappEquerre[clés]
\tkzRegleRepere[clés]
@@ -432,7 +432,8 @@ Quelques \Cle{clés} de personnalisation sont disponibles :
\hfill~(défaut : \Cle{m})
\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
+
+À noter que pour la clé \Cle{Rotation}, il est possible de préciser un deuxième point, et dans ce cas la clé sera précisée sous la forme \Cle{Rotation=auto/pt}. Dans \textbf{ce cas}, les points \textit{support} \textbf{devront} avoir été déclarés au préalable !
\end{tipblock}
\begin{noteblock}
@@ -445,17 +446,21 @@ Toutes les \Cle{clés} ne seront pas présentées de manière indépendante, mai
\begin{PresentationCode}{listing only}
%environnement tikz
+\coordinate (K) at (1,-3) ;
+\coordinate (C) at (6,-8) ;
\tkzRegle[Fond,CouleurFond=red]
-\tkzRegle[Longueur=13,Largeur=2,Rotation=-45,Couleur=ForestGreen, Origine={(1,-3)},Fond,PosVal=hb]
+\tkzRegle[Longueur=13,Largeur=2,Rotation=auto/C,Couleur=ForestGreen, Origine=K,Fond,PosVal=hb]
\tkzRegle[Largeur=1.25,Longueur=9,Couleur=blue,Rotation=20,Origine={(0,3)}, AfficheValeurs=false]
\end{PresentationCode}
\begin{PresentationCode}{text only}
\begin{tikzpicture}
\affichegrille{-1}{13}{-14}{7}
- \pointsutiles{(0,0),(1,-3),(0,3)}
+ \coordinate (K) at (1,-3) ;
+ \coordinate (C) at (6,-8) ;
+ \pointsutiles{(0,0),(1,-3),(0,3),(6,-8)}
\tkzRegle[Fond,CouleurFond=red]
- \tkzRegle[Longueur=13,Largeur=2,Rotation=-45,Couleur=ForestGreen,Origine={(1,-3)},Fond,PosVal=hb]
+ \tkzRegle[Longueur=13,Largeur=2,Rotation=auto/C,Couleur=ForestGreen, Origine=K,Fond,PosVal=hb]
\tkzRegle[Largeur=1.25,Longueur=9,Couleur=blue,Rotation=20,Origine={(0,3)},AfficheValeurs=false]
\end{tikzpicture}
\end{PresentationCode}
@@ -498,7 +503,8 @@ Quelques \Cle{clés} de personnalisation sont disponibles :
\hfill~(défaut : \Cle{false})
\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
+
+À noter que pour la clé \Cle{Rotation}, il est possible de préciser un deuxième point, et dans ce cas la clé sera précisée sous la forme \Cle{Rotation=auto/pt}. Dans \textbf{ce cas}, les points \textit{support} \textbf{devront} avoir été déclarés au préalable !
\end{tipblock}
\begin{noteblock}
@@ -511,17 +517,21 @@ Toutes les \Cle{clés} ne seront pas présentées de manière indépendante, mai
\begin{PresentationCode}{listing only}
%environnement tikz
+\coordinate (U) at (1,-5) ;
+\coordinate (V) at (9,-7) ;
\tkzRegleRepere[Fond,CouleurFond=red]
-\tkzRegleRepere[Longueur=8,Rotation=-15,Couleur=ForestGreen, Origine={(1,-5)},Fond,AfficheValeurs=false]
+\tkzRegleRepere[Longueur=8,Rotation=auto/V,Couleur=ForestGreen, Origine=U,Fond,AfficheValeurs=false]
\tkzRegleRepere[Longueur=18,Echelle=0.5,Couleur=blue,Rotation=20, Origine={(3,3.25)},Retourne]
\end{PresentationCode}
\begin{PresentationCode}{text only}
\begin{tikzpicture}
- \affichegrille{-1}{13}{-12}{7}
- \pointsutiles{(0,0),(1,-5),(3,3.25)}
+ \affichegrille{-1}{13}{-11}{7}
+ \coordinate (U) at (1,-5) ;
+ \coordinate (V) at (9,-7) ;
+ \pointsutiles{(0,0),(1,-5),(3,3.25),(9,-7)}
\tkzRegleRepere[Fond,CouleurFond=red]
- \tkzRegleRepere[Longueur=8,Rotation=-15,Couleur=ForestGreen, Origine={(1,-5)},Fond,AfficheValeurs=false]
+ \tkzRegleRepere[Longueur=8,Rotation=auto/V,Couleur=ForestGreen, Origine=U,Fond,AfficheValeurs=false]
\tkzRegleRepere[Longueur=18,Echelle=0.5,Couleur=blue,Rotation=20,Origine={(3,3.25)},Retourne]
\end{tikzpicture}
\end{PresentationCode}
@@ -556,24 +566,31 @@ Quelques \Cle{clés} de personnalisation sont disponibles :
\item le booléen \Cle{Fond} pour afficher une couleur de fond pour l'équerre ;\hfill~(défaut : \Cle{false})
\item \Cle{CouleurFond} pour la couleur du fond de l'équerre ;\hfill~(défaut : \Cle{black})
\item \Cle{Opacite} pour régler l'opacité du fond de l'équerre ;\hfill~(défaut : \Cle{0.5})
- \item le booléen \Cle{AfficheValeurs} pour afficher les valeurs des graduations.\hfill~(défaut : \Cle{true})
+ \item le booléen \Cle{PetitCote} dans le cas d'un placement par deux points. \hfill~(défaut \Cle{false})
\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
+
+À noter que pour la clé \Cle{Rotation}, il est possible de préciser un deuxième point, et dans ce cas la clé sera précisée sous la forme \Cle{Rotation=auto/pt}. Dans \textbf{ce cas}, les points \textit{support} \textbf{devront} avoir été déclarés au préalable !
+
+Le booléen \Cle{PetitCote} permet de forcer le placement de l'équerre sur le petit côté.
\end{tipblock}
\begin{PresentationCode}{listing only}
%environnement tikz
+\coordinate (P) at (8,6) ;
+\coordinate (Q) at (11,10) ;
\tkzEquerre[Fond]
-\tkzEquerre[Echelle=0.5,Origine={(8,6)},Couleur=DarkBlue,Rotation=-45]
+\tkzEquerre[Echelle=0.61,Origine=P,Couleur=DarkBlue,Rotation=auto/Q]
\tkzEquerre[Longueur=10,Origine={(2.5,-1)},Couleur=red,Rotation=-105]
\end{PresentationCode}
\begin{PresentationCode}{text only}
\begin{tikzpicture}
\affichegrille{-1}{13}{-7}{11}
- \pointsutiles{(0,0),(8,6),(2.5,-1)}
+ \coordinate (P) at (8,6) ;
+ \coordinate (Q) at (11,10) ;
+ \pointsutiles{(0,0),(8,6),(2.5,-1),(11,10)}
\tkzEquerre[Fond]
- \tkzEquerre[Echelle=0.5,Origine={(8,6)},Couleur=DarkBlue,Rotation=-45]
+ \tkzEquerre[Echelle=0.61,Origine=P,Couleur=DarkBlue,Rotation=auto/Q]
\tkzEquerre[Longueur=10,Origine={(2.5,-1)},Couleur=red,Rotation=-105]
\end{tikzpicture}
\end{PresentationCode}
@@ -642,6 +659,64 @@ Quelques \Cle{clés} de personnalisation sont disponibles :
\pagebreak
+\pagebreak
+
+\section{Le pourcenteur}
+
+\subsection{La commande}
+
+\begin{cautionblock}
+Le package propose l'outil \textsf{Pourcenteur}.
+
+La forme générale du rapporteur (largeur $6$~cm) est \textit{fixée}, mais le pourcenteur peut être \textit{personnalisé}.
+\end{cautionblock}
+
+\begin{PresentationCode}{tikz lower}
+\tkzPourcenteur
+\end{PresentationCode}
+
+\subsection{Clés et options}
+
+\begin{tipblock}
+Quelques \Cle{clés} de personnalisation sont disponibles :
+
+\begin{itemize}
+ \item \Cle{Origine} pour le placer le pourcenteur (au niveau du \textit{centre}) ;\hfill~(défaut : \Cle{\{(0,0)\}})
+ \item \Cle{Rotation} pour pivoter le pourcenteur (au niveau du \textit{centre}) ;\hfill~(défaut : \Cle{0})
+ \item \Cle{Echelle} pour l'échelle globale du pourcenteur ;\hfill~(défaut : \Cle{1})
+ \item \Cle{Couleur} pour la couleur des éléments du pourcenteur ;\hfill~(défaut : \Cle{black})
+ \item le booléen \Cle{Fond} pour afficher une couleur de fond ;\hfill~(défaut : \Cle{false})
+ \item \Cle{CouleurFond} pour la couleur du fond du pourcenteur ;\hfill~(défaut : \Cle{black})
+ \item \Cle{Opacite} pour régler l'opacité du fond du pourcenteur ;\hfill~(défaut : \Cle{0.5})
+ \item le booléen \Cle{Decoration} pour afficher les \textit{décorations d'intérieur} ; \hfill~(défaut : \Cle{true})
+ \item le booléen \Cle{AfficheValeurs} pour afficher les valeurs des pourcentages.\hfill~(défaut : \Cle{true})
+\end{itemize}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
+
+\pagebreak
+
+\begin{PresentationCode}{listing only}
+%environnement tikz
+\tkzPourcenteur[Fond,CouleurFond=purple]
+\tkzPourcenteur[Origine={(7,1)},Rotation=-45,Couleur=ForestGreen,Echelle=0.75]
+\tkzPourcenteur[Decoration=false,AfficheValeurs=false,Origine={(9,-4)},Rotation=30, Couleur=DarkBlue,Fond,CouleurFond=DarkBlue,Echelle=0.66]
+\tkzPourcenteur[Origine={(3,-4)},Rotation=90,Couleur=orange,Fond,CouleurFond=orange, Echelle=0.33]
+\end{PresentationCode}
+
+\begin{PresentationCode}{text only}
+\begin{tikzpicture}
+ \affichegrille{-4}{11}{-7}{4}
+ \pointsutiles{(0,0),(7,1),(9,-4)}
+ \tkzPourcenteur[Fond,CouleurFond=purple]
+ \tkzPourcenteur[Origine={(7,1)},Rotation=-45,Couleur=ForestGreen,Echelle=0.75]
+ \tkzPourcenteur[Decoration=false,AfficheValeurs=false,Origine={(9,-4)},Rotation=30,Couleur=DarkBlue, Fond,CouleurFond=DarkBlue,Echelle=0.66]
+ \tkzPourcenteur[Origine={(3,-4)},Rotation=90,Couleur=orange, Fond,CouleurFond=orange,Echelle=0.33]
+\end{tikzpicture}
+\end{PresentationCode}
+
+\pagebreak
+
\section{La réquerre}
\subsection{La commande}
@@ -673,23 +748,28 @@ Quelques \Cle{clés} de personnalisation sont disponibles :
\item \Cle{Opacite} pour régler l'opacité du fond de la réquerre ;\hfill~(défaut : \Cle{0.5})
\item le booléen \Cle{AfficheValeurs} pour afficher les valeurs des graduations.\hfill~(défaut : \Cle{true})
\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
+
+À noter que pour la clé \Cle{Rotation}, il est possible de préciser un deuxième point, et dans ce cas la clé sera précisée sous la forme \Cle{Rotation=auto/pt}. Dans \textbf{ce cas}, les points \textit{support} \textbf{devront} avoir été déclarés au préalable !
\end{tipblock}
\begin{PresentationCode}{listing only}
%environnement tikz
+\coordinate (F) at (1,-5) ;
+\coordinate (G) at (4,-4) ;
\tkzRequerre[Fond,CouleurFond=yellow]
\tkzRequerre[Echelle=0.5,Origine={(-5,-6)},Rotation=-80,Couleur=ForestGreen, Longueur=10,Largeur=3.5,AfficheValeurs=false]
-\tkzRequerre[Origine={(1,-5)},Rotation=15,Couleur=DarkBlue, Longueur=9,Largeur=2.75]
+\tkzRequerre[Origine=F,Rotation=auto/G,Couleur=DarkBlue, Longueur=9,Largeur=2.75]
\end{PresentationCode}
\begin{PresentationCode}{text only}
\begin{tikzpicture}
+ \coordinate (F) at (1,-5) ;
+ \coordinate (G) at (4,-4) ;
\affichegrille{-8}{7}{-9}{1}
- \pointsutiles{(0,0),(-5,-6),(1,-5)}
+ \pointsutiles{(0,0),(-5,-6),(1,-5),(4,-4)}
\tkzRequerre[Fond,CouleurFond=yellow]
\tkzRequerre[Echelle=0.5,Origine={(-5,-6)},Rotation=-80,Couleur=ForestGreen, Longueur=10,Largeur=3.5,AfficheValeurs=false]
- \tkzRequerre[Origine={(1,-5)},Rotation=15,Couleur=DarkBlue,Longueur=9,Largeur=2.75]
+ \tkzRequerre[Origine=F,Rotation=auto/G,Couleur=DarkBlue, Longueur=9,Largeur=2.75]
\end{tikzpicture}
\end{PresentationCode}
@@ -722,28 +802,35 @@ Quelques \Cle{clés} de personnalisation sont disponibles :
\item \Cle{EchelleValeurs} pour l'échelle des valeurs ;\hfill~(défaut : \Cle{1})
\item \Cle{Couleur} pour la couleur des éléments de la rappéquerre ;\hfill~(défaut : \Cle{black})
\item le booléen \Cle{Fond} pour afficher une couleur de fond pour la rappéquerre ;\hfill~(défaut : \Cle{false})
- \item \Cle{CouleurFond} pour la couleur du fond de la rappéquerre ;\hfill~(défaut : \Cle{black})
+ \item \Cle{CouleurFond} pour la couleur du fond de la rappéquerre ;
+
+ \hfill~(défaut : \Cle{black})
\item \Cle{Opacite} pour régler l'opacité du fond de la rappéquerre ;\hfill~(défaut : \Cle{0.5})
\item le booléen \Cle{AfficheAngles} pour afficher les valeurs des angles ;\hfill~(défaut : \Cle{true})
\item le booléen \Cle{AfficheValeurs} pour afficher les valeurs des graduations.\hfill~(défaut : \Cle{true})
\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
+
+À noter que pour la clé \Cle{Rotation}, il est possible de préciser un deuxième point, et dans ce cas la clé sera précisée sous la forme \Cle{Rotation=auto/pt}. Dans \textbf{ce cas}, les points \textit{support} \textbf{devront} avoir été déclarés au préalable !
\end{tipblock}
\begin{PresentationCode}{listing only}
%environnement tikz
+\coordinate (S) at (2,-10) ;
+\coordinate (T) at (0,-10.5) ;
\tkzRappEquerre[Fond,Ombre]
\tkzRappEquerre[Origine={(-5,-9)},Rotation=150,Couleur=ForestGreen,Echelle=0.5,Ombre]
-\tkzRappEquerre[Origine={(2,-10)},Rotation=-170,Couleur=DarkBlue, Largeur=4,Fond,AfficheValeurs=false,AfficheAngles=false,CouleurFond=DarkBlue]
+\tkzRappEquerre[Origine=S,Rotation=auto/T,Couleur=DarkBlue, Largeur=4,Fond,AfficheValeurs=false,AfficheAngles=false,CouleurFond=DarkBlue]
\end{PresentationCode}
\begin{PresentationCode}{text only}
\begin{tikzpicture}
\affichegrille{-8}{7}{-11}{1}
- \pointsutiles{(0,0),(-5,-9),(2,-10)}
+ \coordinate (S) at (2,-10) ;
+ \coordinate (T) at (0,-10.5) ;
+ \pointsutiles{(0,0),(-5,-9),(2,-10),(0,-10.5)}
\tkzRappEquerre[Fond,Ombre]
\tkzRappEquerre[Origine={(-5,-9)},Rotation=150,Couleur=ForestGreen,Echelle=0.5,Ombre]
- \tkzRappEquerre[Origine={(2,-10)},Rotation=-170,Couleur=DarkBlue,Largeur=4,Fond,AfficheValeurs=false,AfficheAngles=false,CouleurFond=DarkBlue]
+ \tkzRappEquerre[Origine=S,Rotation=auto/T,Couleur=DarkBlue, Largeur=4,Fond,AfficheValeurs=false,AfficheAngles=false,CouleurFond=DarkBlue]
\end{tikzpicture}
\end{PresentationCode}
diff --git a/graphics/pgf/contrib/outilsgeomtikz/tex/OutilsGeomTikz.sty b/graphics/pgf/contrib/outilsgeomtikz/tex/OutilsGeomTikz.sty
index 0f90563a4b..29bc489b0f 100644
--- a/graphics/pgf/contrib/outilsgeomtikz/tex/OutilsGeomTikz.sty
+++ b/graphics/pgf/contrib/outilsgeomtikz/tex/OutilsGeomTikz.sty
@@ -2,7 +2,9 @@
% licence........: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{OutilsGeomTikz}[2023/05/22 v0.1.2 Outils geometriques en TikZ]
+\ProvidesPackage{OutilsGeomTikz}[2023/10/18 v0.1.4 Outils geometriques en TikZ]
+% 0.1.4 Possibilité de positionner les outils avec deux points (angle calculé automatiquement)
+% 0.1.3 Ajout du pourcenteur
% 0.1.2 Ajout de la règle-repère
% 0.1.1 Correction d'un bug avec une ancienne syntaxe [join=...]
% 0.1.0 Version initiale
@@ -12,6 +14,7 @@
\RequirePackage{simplekv}
\RequirePackage{xstring}
\RequirePackage{nicefrac}
+%\RequirePackage{tkz-euclide}
%librairies tikz
\usetikzlibrary{calc,positioning}
@@ -53,7 +56,7 @@
Largeur=\def\REGLlargeur{#1},%
Couleur=\def\REGLcouleur{#1},%
CouleurFond=\def\REGLcouleurfond{#1},%
- Origine=\def\REGLposOrigin{#1},%
+ Origine=\xdef\REGLposOrigin{#1},%
Rotation=\def\REGLangle{#1},%
Opacite=\def\REGLopac{#1},%
PosVal=\def\REGLposval{#1}
@@ -76,6 +79,12 @@
\NewDocumentCommand{\tkzRegle}{ O{} }{%
\useKVdefault[RegleGeom]%
\setKV[RegleGeom]{#1}%
+ \IfSubStr{\REGLangle}{auto/}%
+ {%
+ \StrBehind{\REGLangle}{/}[\tmppointdeux]%
+ \pgfmathanglebetweenpoints{\pgfpointanchor{\REGLposOrigin}{center}}{\pgfpointanchor{\tmppointdeux}{center}}%
+ \edef\REGLangle{\pgfmathresult}%
+ }{}%
\xdef\REGLlongueur{\fpeval{max(3,\REGLlongueur)}}%valeurs mini
\xdef\REGLlargeur{\fpeval{max(1.5,\REGLlargeur)}}
\begin{scope}[shift={(\REGLposOrigin)},rotate=\REGLangle,scale=\REGLechelle]
@@ -137,7 +146,13 @@
\useKVdefault[RegleRepereGeom]%
\setKV[RegleRepereGeom]{#1}%
\xdef\REGLREPlongueur{\fpeval{max(4,2*round(0.5*\REGLREPlongueur,0))}}%valeurs mini
- \xdef\REGLREPlargeur{\fpeval{max(4,round(\REGLREPlargeur,0))}}
+ \xdef\REGLREPlargeur{\fpeval{max(4,round(\REGLREPlargeur,0))}}%
+ \IfSubStr{\REGLREPangle}{auto/}%
+ {%
+ \StrBehind{\REGLREPangle}{/}[\tmppointdeux]%
+ \pgfmathanglebetweenpoints{\pgfpointanchor{\REGLREPposOrigin}{center}}{\pgfpointanchor{\tmppointdeux}{center}}%
+ \edef\REGLREPangle{\pgfmathresult}%
+ }{}%
\begin{scope}[shift={(\REGLREPposOrigin)},rotate=\REGLREPangle,scale=\REGLREPechelle]
%bases de la règle-repère
\ifboolKV[RegleRepereGeom]{Fond}%
@@ -200,7 +215,13 @@
\useKVdefault[RequerreGeom]%
\setKV[RequerreGeom]{#1}%
\xdef\REQlongueur{\fpeval{max(6,\REQlongueur)}}%valeurs mini
- \xdef\REQlargeur{\fpeval{max(1.5,\REQlargeur)}}
+ \xdef\REQlargeur{\fpeval{max(1.5,\REQlargeur)}}%
+ \IfSubStr{\REQangle}{auto/}%
+ {%
+ \StrBehind{\REQangle}{/}[\tmppointdeux]%
+ \pgfmathanglebetweenpoints{\pgfpointanchor{\REQposOrigin}{center}}{\pgfpointanchor{\tmppointdeux}{center}}%
+ \edef\REQangle{\pgfmathresult}%
+ }{}%
\begin{scope}[shift={(\REQposOrigin)},rotate=\REQangle,scale=\REQechelle]
\ifboolKV[RequerreGeom]{Fond}
{
@@ -250,14 +271,27 @@
Rotation=0,%
AfficheValeurs=true,%
Fond=false,%
- Opacite=0.5
+ Opacite=0.5,%
+ PetitCote=false
}
\NewDocumentCommand{\tkzEquerre}{ O{} }{%
\useKVdefault[EquerreGeom]%
\setKV[EquerreGeom]{#1}%
\xdef\EQlongueur{\fpeval{max(4.5,\EQlongueur)}}%valeurs mini
- \def\EQlargeur{\fpeval{\EQlongueur*tand(30)}}
+ \def\EQlargeur{\fpeval{\EQlongueur*tand(30)}}%
+ \IfSubStr{\EQangle}{auto/}%
+ {%
+ \StrBehind{\EQangle}{/}[\tmppointdeux]%
+ \pgfmathanglebetweenpoints{\pgfpointanchor{\EQposOrigin}{center}}{\pgfpointanchor{\tmppointdeux}{center}}%
+ \ifboolKV[EquerreGeom]{PetitCote}%
+ {%
+ \edef\EQangle{\pgfmathresult}%
+ }%
+ {%
+ \edef\EQangle{\fpeval{\pgfmathresult-90}}%
+ }%
+ }{}%
\begin{scope}[shift={(\EQposOrigin)},rotate=\EQangle,scale=\EQechelle]
\ifboolKV[EquerreGeom]{Fond}
{%
@@ -404,6 +438,82 @@
\end{scope}
}
+\defKV[Pourcenteur]{%
+ Echelle=\def\POURCechelle{#1},%
+ EchelleAngle=\def\POURCechangle{#1},%
+ Couleur=\def\POURCcouleur{#1},%
+ CouleurFond=\def\POURCcouleurfond{#1},%
+ Origine=\def\POURCposOrigin{#1},%
+ Rotation=\def\POURCangle{#1},%
+ Opacite=\def\POURCopac{#1}
+}
+
+\setKVdefault[Pourcenteur]{%
+ Echelle=1,%
+ EchelleAngle=1,%
+ Couleur=black,%
+ CouleurFond=black,%
+ Origine={(0,0)},%
+ Rotation=0,%
+ AfficheValeurs=true,%
+ Fond=false,%
+ Opacite=0.5,%
+ Decoration=true
+}
+
+\NewDocumentCommand{\tkzPourcenteur}{ O{} }{%
+ \useKVdefault[Pourcenteur]%
+ \setKV[Pourcenteur]{#1}%
+ \begin{scope}[shift={(\POURCposOrigin)},rotate=\POURCangle,scale=\POURCechelle,every node/.style={rotate=\POURCangle}]
+ \ifboolKV[Pourcenteur]{Fond}
+ {%
+ \fill[draw=none,fill=\POURCcouleurfond!10!white,fill opacity=\POURCopac] (0,0) circle[radius=3] ;
+ }%
+ {}%
+ \draw[\POURCcouleur,semithick] (0,0) circle[radius=3] ;
+ \draw[\POURCcouleur,semithick] ({-0.15*3},0)--({0.15*3},0) (0,{-0.15*3})--(0,{0.15*3}) ;
+ \foreach \pct in {0,1,...,199}
+ {\draw[\POURCcouleur,thin] ({0.5*\pct*3.6}:{3})--({0.5*\pct*3.6}:{3-0.2}) ;}
+ \foreach \pct in {0,10,...,90}{%
+ \draw[\POURCcouleur,thin] ({(\pct+1)*3.6}:{3})--({(\pct+1)*3.6}:{3-0.35}) ;
+ \filldraw[\POURCcouleur] ({(\pct+1)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ;
+ \draw[\POURCcouleur,thin] ({(\pct+2)*3.6}:{3})--({(\pct+2)*3.6}:{3-0.35}) ;
+ \filldraw[\POURCcouleur] ({(\pct+2)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ;
+ \draw[\POURCcouleur,thin] ({(\pct+3)*3.6}:{3})--({(\pct+3)*3.6}:{3-0.35}) ;
+ \filldraw[\POURCcouleur] ({(\pct+3)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ;
+ \draw[\POURCcouleur,thin] ({(\pct+4)*3.6}:{3})--({(\pct+4)*3.6}:{3-0.35}) ;
+ \filldraw[\POURCcouleur] ({(\pct+4)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ;
+ \draw[\POURCcouleur,thin] ({(\pct+6)*3.6}:{3})--({(\pct+6)*3.6}:{3-0.35}) ;
+ \filldraw[\POURCcouleur] ({(\pct+6)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ;
+ \draw[\POURCcouleur,thin] ({(\pct+7)*3.6}:{3})--({(\pct+7)*3.6}:{3-0.35}) ;
+ \filldraw[\POURCcouleur] ({(\pct+7)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ;
+ \draw[\POURCcouleur,thin] ({(\pct+8)*3.6}:{3})--({(\pct+8)*3.6}:{3-0.35}) ;
+ \filldraw[\POURCcouleur] ({(\pct+8)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ;
+ \draw[\POURCcouleur,thin] ({(\pct+9)*3.6}:{3})--({(\pct+9)*3.6}:{3-0.35}) ;
+ \filldraw[\POURCcouleur] ({(\pct+9)*3.6}:{3-0.35}) circle[fill=\POURCcouleur,radius=0.75pt] ;
+ }
+ \foreach \pct in {5,10,15,20,30,35,40,45,55,60,65,70,80,85,90,95}{%
+ \draw[\POURCcouleur,semithick] ({\pct*3.6}:{3})--({\pct*3.6}:{3-0.5}) ;
+ \ifboolKV[Pourcenteur]{AfficheValeurs}
+ {\draw ({-\pct*3.6+90}:{3-0.6}) node[\POURCcouleur,rotate={-3.6*\pct},scale=\fpeval{0.8*\POURCechelle*\POURCechangle},font=\tiny] {\pct\,\%} ;}{}
+ }
+ \foreach \pct in {0,25,50,75}{%
+ \draw[\POURCcouleur,semithick] ({\pct*3.6}:{3})--({\pct*3.6}:{3-0.5}) ;
+ \ifboolKV[Pourcenteur]{AfficheValeurs}
+ {%
+ \draw ({-\pct*3.6+90}:{3-0.61}) node[\POURCcouleur,rotate={-3.6*\pct},scale=\fpeval{0.8*\POURCechelle*\POURCechangle},font=\scriptsize\bfseries] {\pct\,\%} ;
+ \draw ({-\pct*3.6+90}:{2+0.15}) node[\POURCcouleur,rotate={-3.6*\pct},scale=\fpeval{0.8*\POURCechelle*\POURCechangle},font=\tiny\bfseries] {\pct\,\%} ;
+ }{}%
+ }
+ \draw[\POURCcouleur,semithick] (0,1)--(0,2) (1.6,0)--(2,0) (0,-1.6)--(0,-2) (-1.6,0)--(-2,0) ;
+ \ifboolKV[Pourcenteur]{Decoration}
+ {%
+ \foreach \arccc in {0.8,0.9,...,1.9} {\draw[\POURCcouleur] (0,\arccc) arc (90:47:\arccc) ;}
+ }%
+ {}%
+ \end{scope}
+}
+
%--------RappÉquerre (OK)
\defKV[RapporteurEquerreGeom]{%
Echelle=\def\RAPPEQechelle{#1},%
@@ -435,6 +545,12 @@
\useKVdefault[RapporteurEquerreGeom]%
\setKV[RapporteurEquerreGeom]{#1}%
\xdef\RAPPEQlargeur{\fpeval{max(3,\RAPPEQlargeur)}}%valeurs mini
+ \IfSubStr{\RAPPEQangle}{auto/}%
+ {%
+ \StrBehind{\RAPPEQangle}{/}[\tmppointdeux]%
+ \pgfmathanglebetweenpoints{\pgfpointanchor{\RAPPEQposOrigin}{center}}{\pgfpointanchor{\tmppointdeux}{center}}%
+ \edef\RAPPEQangle{\pgfmathresult}%
+ }{}%
\begin{scope}[shift={(\RAPPEQposOrigin)},rotate=\RAPPEQangle,scale=\RAPPEQechelle,every node/.style={rotate=\RAPPEQangle}]
%fond
\ifboolKV[RapporteurEquerreGeom]{Fond}