texlive[66992] Master: tikz3d-fr (2may23)

commits+karl at tug.org commits+karl at tug.org
Tue May 2 22:30:46 CEST 2023


Revision: 66992
          http://tug.org/svn/texlive?view=revision&revision=66992
Author:   karl
Date:     2023-05-02 22:30:46 +0200 (Tue, 02 May 2023)
Log Message:
-----------
tikz3d-fr (2may23)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/libexec/ctan2tds
    trunk/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/tikz3d-fr/
    trunk/Master/texmf-dist/doc/latex/tikz3d-fr/README.md
    trunk/Master/texmf-dist/doc/latex/tikz3d-fr/tikz3d-fr-doc.pdf
    trunk/Master/texmf-dist/doc/latex/tikz3d-fr/tikz3d-fr-doc.tex
    trunk/Master/texmf-dist/tex/latex/tikz3d-fr/
    trunk/Master/texmf-dist/tex/latex/tikz3d-fr/tikz3d-fr.sty
    trunk/Master/tlpkg/tlpsrc/tikz3d-fr.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/tikz3d-fr/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz3d-fr/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tikz3d-fr/README.md	2023-05-02 20:30:46 UTC (rev 66992)
@@ -0,0 +1,7 @@
+tikz3d-fr is a package to work with some 3D figures.
+----------------------------------------------------------
+tikz3d-fr est un package pour travailler un peu en tikz3d.
+----------------------------------------------------------
+Author : Cédric Pierquet
+email : cpierquet at outlook.fr
+Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tikz3d-fr/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tikz3d-fr/tikz3d-fr-doc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/tikz3d-fr/tikz3d-fr-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz3d-fr/tikz3d-fr-doc.pdf	2023-05-02 20:29:03 UTC (rev 66991)
+++ trunk/Master/texmf-dist/doc/latex/tikz3d-fr/tikz3d-fr-doc.pdf	2023-05-02 20:30:46 UTC (rev 66992)

Property changes on: trunk/Master/texmf-dist/doc/latex/tikz3d-fr/tikz3d-fr-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tikz3d-fr/tikz3d-fr-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz3d-fr/tikz3d-fr-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tikz3d-fr/tikz3d-fr-doc.tex	2023-05-02 20:30:46 UTC (rev 66992)
@@ -0,0 +1,752 @@
+% !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.0}
+\def\TPdate{02 Mai 2023}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{amsmath,amssymb}
+\usepackage{tikz3d-fr}
+\usepackage{awesomebox}
+\usepackage{fontawesome5}
+\usepackage{footnote}
+\makesavenoteenv{tabular}
+\usepackage{enumitem}
+\usepackage{tabularray}
+\usepackage{fancyvrb}
+\usepackage{fancyhdr}
+\fancyhf{}
+\renewcommand{\headrulewidth}{0pt}
+\lfoot{\sffamily\small [tikz3d-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}
+\usetikzlibrary{calc}
+\tcbuselibrary{minted}
+\NewTCBListing{PresCodeTex}{ O{cyan} m }{%
+	enhanced,width=0.93\linewidth,flush right,boxrule=0.75pt,colframe=#1!85!black,%
+	sharp corners,top=0mm,bottom=0mm,left=0.4em,right=5mm,%
+	before skip=\baselineskip,after skip=\baselineskip,%
+	colback=white,
+	fontupper=\footnotesize,fontlower=\footnotesize,%
+	watermark text={\faCode},watermark opacity=0.25,watermark zoom=0.50,%
+	title={{\scriptsize\faCode} Code \LaTeX},
+	lefttitle=0.4em,
+	fonttitle=\bfseries\footnotesize\sffamily,colbacktitle=darkgray!50!#1,%
+	listing engine=minted,minted style=colorful,minted language=tex,
+	minted options={tabsize=4,fontsize=\footnotesize,autogobble,breaklines=true},
+	#2,%
+	overlay={\draw[#1!85!black] ($(frame.north west)+(-0.035\linewidth,-0.025\linewidth)$) node[scale=1.66] {\faCode} ;}
+}
+
+\NewTCBListing{PresCode}{ O{cyan} m }{%
+	enhanced,width=0.93\linewidth,flush right,boxrule=0.75pt,colframe=#1!85!black,%
+	sharp corners,top=0mm,bottom=0mm,left=0.4em,right=5mm,%
+	before skip=\baselineskip,after skip=\baselineskip,%
+	colback=white,
+	fontupper=\footnotesize,fontlower=\footnotesize,%
+	watermark text={\faCogs},watermark opacity=0.25,watermark zoom=0.50,%
+	title={{\scriptsize\faCogs} Code \LaTeX{} et sortie \LaTeX},
+	lefttitle=0.4em,
+	fonttitle=\bfseries\footnotesize\sffamily,colbacktitle=darkgray!50!#1,%
+	listing engine=minted,minted style=colorful,minted language=tex,
+	minted options={tabsize=4,fontsize=\footnotesize,autogobble,breaklines=true},
+	#2,%
+	overlay={%
+		\draw[#1!85!black] ($(frame.north west)+(-0.035\linewidth,-0.025\linewidth)$) node[scale=1.66] {\faCode} ;
+		\draw[#1!85!black] ($(segmentation.west)+(-0.035\linewidth,-0.025\linewidth)$) node[scale=1.66] {\faFilePdf} ;
+		
+	}
+}
+
+\NewTCBListing{PresCodeSortie}{ O{cyan} m }{%
+	enhanced,width=0.93\linewidth,flush right,boxrule=0.75pt,colframe=#1!85!black,%
+	sharp corners,top=0mm,bottom=0mm,left=0.4em,right=5mm,%
+	before skip=\baselineskip,after skip=\baselineskip,%
+	colback=white,
+	fontupper=\footnotesize,fontlower=\footnotesize,%
+	watermark text={\faFilePdf},watermark opacity=0.25,watermark zoom=0.50,%
+	title={{\scriptsize\faFilePdf} Sortie \LaTeX},
+	lefttitle=0.4em,
+	fonttitle=\bfseries\footnotesize\sffamily,colbacktitle=darkgray!50!#1,%
+	listing engine=minted,minted style=colorful,minted language=tex,
+	minted options={tabsize=4,fontsize=\footnotesize,autogobble,breaklines=true},
+	#2,%
+	overlay={\draw[#1!85!black] ($(frame.north west)+(-0.035\linewidth,-0.025\linewidth)$) node[scale=1.66] {\faFilePdf} ;}
+}
+
+\NewTCBListing{PresentationCode}{ O{blue} m }{%
+	sharp corners=downhill,enhanced,arc=12pt,skin=bicolor,%
+	colback=#1!1!white,colframe=#1!75!black,colbacklower=white,%
+	attach boxed title to top right={yshift=-\tcboxedtitleheight},title=Code \LaTeX,%
+	boxed title style={%
+		colframe=#1!75!black,colback=#1!15!white,%
+		,sharp corners=downhill,arc=12pt,%
+	},%
+	top=\baselineskip,%
+	fonttitle=\color{#1!90!black}\itshape\ttfamily\footnotesize,%
+	listing engine=minted,minted style=colorful,
+	minted language=tex,minted options={tabsize=4,fontsize=\small,autogobble},
+	#2
+}
+
+\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=ForestGreen!50!black,coltitle=white,colback=purple!25,%
+	overlay={\begin{tcbclipinterior}%
+			\fill[fill=purple!75]($(interior.south west)$) rectangle node[rotate=90]{\tiny \sffamily{\textcolor{Black}{\scalebox{0.85}[0.75]{\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{tikz3d-fr}}\\
+				\\
+				{\LARGE Quelques commandes (fr) pour} \\
+				\\
+				{\LARGE un peu de 3D 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/tikz3dfr}}
+\end{tabular}
+\end{center}
+
+\vspace{0.25cm}
+
+{$\blacktriangleright$~~Un environnement avec déclaration des unités.}
+
+\smallskip
+
+{$\blacktriangleright$~~Une commande pour afficher un pavé, avec personnalisations.}
+
+\smallskip
+
+{$\blacktriangleright$~~Deux commandes pour afficher des empilements de \og petits cubes \fg.}
+
+\vspace{1cm}
+
+\begin{center}
+	\begin{tcolorbox}[enhanced,colframe=cyan,colback=cyan!2,center,width=0.95\linewidth,drop fuzzy shadow=lightgray]
+	\begin{EnvTikzEspace}
+		\PaveTikzTriDim[Cube,Largeur=2.5,AffLabel,Couleur=blue!50!black,CouleurSommets=red]
+	\end{EnvTikzEspace}
+	
+	\vspace*{-2cm}
+	
+	\hfill\BlocPetitsCubes[violet]{1,2,3,4,5 / 0,2,1,1,3 / 0,2,1,1,2 / 1,1,1,1,1}\hfill~
+	
+	\vspace*{-2cm}
+	
+	\hfill
+	\begin{EmpilementCubes}
+		\PlaquePetitsCubes[cyan/red/green/yellow]{ 3111-1-4 / 233123 / 2-1112 }
+		\PlaquePetitsCubes[cyan/red]{ 111 / -21 }
+		\PlaquePetitsCubes[cyan/red/green]{ 3-2 }
+	\end{EmpilementCubes}
+	\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.0|~:~~~~Version initiale.
+
+\newpage
+
+\part{Introduction}
+
+\section{Le package tikz3d-fr}
+
+\subsection{Introduction}
+
+\begin{noteblock}
+Le package propose des commandes basiques -- francisées -- pour travailler sur des figures simples en 3D, à l'aide de \TikZ{} en utilisant des coordonnées tridimensionnelles :
+
+\begin{itemize}
+	\item un environnement avec gestion des unités $x/y/z$ ;
+	\item une commande pour tracer et personnaliser un cube ;
+	\item des commandes pour créer/afficher/nommer des points de l'espace ;
+	\item des commandes pour tracer un ou plusieurs segments ;
+	\item des commandes et un environnement pour travailler sur des \textit{empilements} de cubes.
+\end{itemize}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
+
+\begin{importantblock}
+Il existe d'autres solutions pour travailler avec de la 3D en \LaTeX, comme par exemple les packages \textsf{ProfCollege}\footnotemark\footnotetext{\url{https://www.ctan.org/pkg/profcollege}} (de Christophe Poulain, qui utilise \hologo{MetaPost}, et qui est certainement beaucoup plus performant) ou \textsf{pst-ob3d}\footnotemark\footnotetext{\url{https://www.ctan.org/pkg/pst-ob3d}} (de Herbert Voß et Denis Girou, qui utilise \pstricks).
+
+\smallskip
+
+L'idée est de proposer une utilisation des capacités (natives) 3D de \TikZ, en proposant des commandes \textit{simplifiées} et \textit{francisées} pour des figures simples (tétraèdres, cubes, pyramides, pavés) utilisées fréquemment dans des exercices de géométrie dans l'espace dans l'enseignement secondaires en France.
+\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é avec des options spécifiques.
+\end{importantblock}
+
+\begin{PresCodeTex}{listing only}
+\usepackage{tikz3d-fr}
+\end{PresCodeTex}
+
+\begin{noteblock}
+\textsf{tikz3d-fr} charge les packages suivantes :
+
+\begin{itemize}
+	\item \texttt{tikz}, \texttt{xstring}, \texttt{xintexpr}, \texttt{simplekv} et \texttt{xinttools} et \texttt{listofitems} ;
+	\item les librairies \texttt{\textit{tikz}.calc} et \texttt{\textit{tikz}.babel}.
+\end{itemize}
+
+Il est compatible avec les compilations usuelles en \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} ou \textsf{xelatex}.
+\end{noteblock}
+
+\vfill~
+
+\pagebreak
+
+\part{Environnement 3D et commandes de base}
+
+\section{Création de l'environnement}
+
+\subsection{Commande}
+
+\begin{cautionblock}
+L'environnement dédié à la création de figures en 3D avec \TikZ{} est \texttt{EnvTikzEspace}.
+
+Il permet de définir les unités et \textit{angles} des différents axes.
+\end{cautionblock}
+
+\begin{PresCodeTex}{listing only}
+\begin{EnvTikzEspace}[Clés]<options tikz>
+	%commandes
+\end{EnvTikzEspace}
+\end{PresCodeTex}
+
+\subsection{Clés et options}
+
+\begin{tipblock}
+Le premier argument, optionnel et entre \texttt{[...]} propose les \Cle{clés} suivantes :
+
+\begin{itemize}
+	\item \Cle{UniteX}, à donner sous la forme \Cle{\{angle\string:longueur\}} pour le vecteur de base $\vec{\imath}$ ;
+	
+	\hfill{}défaut : \Cle{\{-15\string:1cm\}},%
+	\item \Cle{UniteY}, à donner sous la forme \Cle{\{angle\string:longueur\}} pour le vecteur de base $\vec{\jmath}$ ;
+	
+	\hfill{}défaut : \Cle{\{20\string:0.65cm\}}
+	\item \Cle{UniteZ}, à donner sous la forme \Cle{\{angle\string:longueur\}} pour le vecteur de base $\vec{k}$ ;
+	
+	\hfill{}défaut : \Cle{\{90\string:1cm\}}
+	\item Le booléen \Cle{VueClassique} pour un affichage en perspective habituelle.\hfill~défaut : \Cle{false}
+\end{itemize}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
+
+\begin{tipblock}
+Le second argument, optionnel et entre \texttt{<...>} est quant à lui relatif à des arguments à passer à l'environnement \TikZ{} créé, comme par exemple un alignement vertical, etc
+\end{tipblock}
+
+\begin{PresCode}{}
+\begin{EnvTikzEspace}
+	\draw[->,>=latex] (0,0,0)--(1,0,0) node[right] {$\vec{\imath}$} ;
+	\draw[->,>=latex] (0,0,0)--(0,1,0) node[right] {$\vec{\jmath}$} ;
+	\draw[->,>=latex] (0,0,0)--(0,0,1) node[above] {$\vec{k}$} ;
+\end{EnvTikzEspace}
+\end{PresCode}
+
+\begin{PresCode}{}
+\begin{EnvTikzEspace}[UniteX={-145:1.25cm},UniteY={0:1.75cm},UniteZ={90:1.75cm}]
+	\draw[->,>=latex] (0,0,0)--(1,0,0) node[right] {$\vec{\imath}$} ;
+	\draw[->,>=latex] (0,0,0)--(0,1,0) node[right] {$\vec{\jmath}$} ;
+	\draw[->,>=latex] (0,0,0)--(0,0,1) node[above] {$\vec{k}$} ;
+\end{EnvTikzEspace}
+\end{PresCode}
+
+\begin{PresCode}{}
+\begin{EnvTikzEspace}[VueClassique]
+	\draw[->,>=latex] (0,0,0)--(1,0,0) node[right] {$\vec{\imath}$} ;
+	\draw[->,>=latex] (0,0,0)--(0,1,0) node[right] {$\vec{\jmath}$} ;
+	\draw[->,>=latex] (0,0,0)--(0,0,1) node[above] {$\vec{k}$} ;
+\end{EnvTikzEspace}
+\end{PresCode}
+
+\begin{noteblock}
+Une fois l'environnement, via son \textit{repère}, est créé, toute commande en \TikZ{} est utilisable avec les coordonnées \texttt{(x,y,z)} ou bien les \texttt{scope} avec les \texttt{canva}.
+\end{noteblock}
+
+\begin{PresCode}{}
+\begin{EnvTikzEspace}[UniteX={-145:0.575cm},UniteY={0:0.7cm},UniteZ={90:0.7cm}]
+	\filldraw[red] (2,4,3) circle[radius=1pt] ; \draw[red] (0,0,0) -- (2,4,3) ;
+	\draw[thin,->,>=latex] (0,0,0)--(3,0,0) ;
+	\draw[thin,->,>=latex] (0,0,0)--(0,5,0) ;
+	\draw[thin,->,>=latex] (0,0,0)--(0,0,4) ;
+	\draw[->,>=latex] (0,0,0)--(1,0,0) ;
+	\draw[->,>=latex] (0,0,0)--(0,1,0) ;
+	\draw[->,>=latex] (0,0,0)--(0,0,1) ;
+	\draw[dashed] (0,0,3)--(2,4,3)--(2,4,0)--(0,0,0) (2,4,0)--(2,0,0) (2,4,0)--(0,4,0) ;
+\end{EnvTikzEspace}
+\end{PresCode}
+
+\pagebreak
+
+\section{Points et segments}
+
+\subsection{Commandes}
+
+\begin{cautionblock}
+Les commandes \textit{simplifiées} et \textit{francisées} disponible sont :
+
+\begin{itemize}
+	\item \texttt{\textbackslash PlacePointEspace} pour placer un point dans l'espace ;
+	\item \texttt{\textbackslash PlacePointsEspace} pour placer des points dans l'espace ;
+	\item \texttt{\textbackslash MarquePointEspace} pour marquer (matérialiser) un point dans l'espace ;
+	\item \texttt{\textbackslash MarquePointsEspace} pour marquer (matérialiser) un point dans l'espace ;
+	\item \texttt{\textbackslash TraceSegmentEspace} pour tracer un segment dans l'espace ;
+	\item \texttt{\textbackslash TraceSegmentsEspace} pour tracer des segments dans l'espace.
+\end{itemize}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
+
+\begin{PresCodeTex}{listing only}
+\begin{EnvTikzEspace}[Clés]<options tikz>
+	%créer/placer/nommer un point
+	\PlacePointEspace(*)[clés]{nœud}{coordonnées}<label>
+	%créer/placer/nommer plusieurs points
+	\PlacePointsEspace(*)[clés]{liste}
+	%marquer un point
+	\MarquePointEspace[clés]{point}
+	%marquer plusieurs points
+	\MarquePointsEspace[clés]{liste}
+	%tracer un segment
+	\TraceSegmentEspace[clés](point)(point)
+	%tracer plusieurs segments
+	\TraceSegmentsEspace[clés]{liste}
+\end{EnvTikzEspace}
+\end{PresCodeTex}
+
+\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{StyleMarque} parmi \Cle{x/o} pour spécifier le style de la marque des points ;
+	
+	\hfill{}défaut : \Cle{o}
+	\item \Cle{TailleMarque} pour spécifier la taille de la marque des points (disque ou 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 PlacePointEspace} est optionnel, et est identique à \texttt{\{nœud\}} ;
+	\item la \texttt{\{liste\}} pour la commande \texttt{\textbackslash PlacePointsEspace} est à donner -- par exemple -- sous la forme \texttt{A/0,0,0/bg B/5,2,1/hd} ;
+	\item la \texttt{\{liste\}} pour la commande \texttt{\textbackslash TraceSegmentsEspace} est à donner -- par exemple -- sous la forme \texttt{A/B A/C A/D B/D} ;
+	\item les \texttt{[clés]} pour les segments correspondent aux options en langage \TikZ.
+\end{itemize}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
+
+\begin{PresCode}{}
+\begin{EnvTikzEspace}[VueClassique]
+	%placement des points avec labels
+	\PlacePointsEspace[Couleur=red]{A/0,0,0/bg B/4,0,0/bd C/4,4,0/hd D/0,4,0/hg E/0,0,4/bg F/4,0,4/bd G/4,4,4/hd H/0,4,4/hg}
+	%segments pointillés
+	\TraceSegmentsEspace[thick,dashed,purple]{A/D D/C D/H}
+	%segments pleins
+	\TraceSegmentsEspace[thick,blue]{A/B B/C C/G G/H H/E E/A E/F B/F F/G}
+	%Marques points
+	\MarquePointsEspace[Couleur=orange]{A,B,C,D,E,F,G,H}
+\end{EnvTikzEspace}
+\end{PresCode}
+
+\pagebreak
+
+\section{Pavés}
+
+\subsection{Commandes}
+
+\begin{cautionblock}
+Les commandes \textit{simplifiée} et \textit{francisé} pour afficher un pavé (ou un cube !) est  la commande \texttt{\textbackslash PaveTikzTriDim}.
+\end{cautionblock}
+
+\begin{PresCodeTex}{listing only}
+\begin{EnvTikzEspace}[Clés]<options tikz>
+	\PaveTikzTriDim[clés]
+\end{EnvTikzEspace}
+\end{PresCodeTex}
+
+\begin{PresCode}{}
+\begin{EnvTikzEspace}[VueClassique]
+	\PaveTikzTriDim
+\end{EnvTikzEspace}
+\hspace{1cm}
+\begin{EnvTikzEspace}
+	\PaveTikzTriDim
+\end{EnvTikzEspace}
+\end{PresCode}
+
+\subsection{Clés et options}
+
+\begin{tipblock}
+Quelques \Cle{clés} sont disponibles pour cette commande :
+
+\begin{itemize}
+	\item \Cle{Largeur} : largeur du pavé ;\hfill{}défaut \Cle{2}
+	\item \Cle{Profondeur} : profondeur du pavé ;\hfill{}défaut \Cle{1}
+	\item \Cle{Hauteur} : hauteur du pavé ;\hfill{}défaut \Cle{1.25}
+	\item \Cle{Sommets} : liste des sommets (avec délimiteur § !) ;\hfill{}défaut \Cle{A§B§C§D§E§F§G§H}
+	\item \Cle{Math} : booléen pour forcer le mode math des sommets ;\hfill{}défaut \Cle{false}
+	\item \Cle{Epaisseur} : épaisseur des arêtes (en \textit{langage simplifié} \TikZ) ;\hfill{}défaut \Cle{thick}
+	\item \Cle{AffLabel} : booléen pour afficher les noms des sommets ;\hfill{}défaut \Cle{false}
+	\item \Cle{Plein} : booléen pour ne pas afficher les arêtes \textit{invisibles} ;\hfill{}défaut \Cle{false}
+	\item \Cle{Cube} : booléen pour préciser qu'il s'agit d'un cube (seule \Cle{Largeur} est util(isé)e) ;
+	
+	\hfill{}défaut \Cle{false}
+	\item \Cle{Couleur} : couleur des arêtes ; \hfill{}défaut \Cle{black}
+	
+	\item \Cle{CouleurSommets} : couleur des sommets.\hfill{}défaut \Cle{black}
+\end{itemize}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
+
+\pagebreak
+
+\begin{PresCode}{}
+\begin{EnvTikzEspace}
+	\PaveTikzTriDim[Cube,Largeur=3,Couleur=red,CouleurSommets=blue,AffLabel]
+\end{EnvTikzEspace}
+\end{PresCode}
+
+\begin{PresCode}{}
+\begin{EnvTikzEspace}[VueClassique]<scale=2>
+	\PaveTikzTriDim[Largeur=3,Profondeur=4,Hauteur=2,Plein,Couleur=gray,AffLabel, CouleurSommets=gray]
+\end{EnvTikzEspace}
+\end{PresCode}
+
+\newpage
+
+\part{Empilements de cubes}
+
+\section{Environnement dédié}
+
+\begin{cautionblock}
+L'environnement dédié à la création de figures type \textit{empilement de cubes} est\ldots{} \texttt{EmpilementCubes}.
+
+Il existe deux manières de définir les empilements :
+
+\begin{itemize}
+	\item en travaillant par \textit{plaques} verticales de l'arrière vers l'avant ;
+	\item en travaillant par les \textit{hauteurs} des colonnes, de l'arrière vers l'avant \textbf{et} de gauche à droite.
+\end{itemize}
+
+L'unité de base des cubes est fixée au départ à $0{,}5$\,cm.
+\end{cautionblock}
+
+\begin{importantblock}
+Les axes (et de ce fait la vue proposée !) sont fixés, non modifiables, donc cette partie est beaucoup moins performante que ce propose le package \textsf{ProfCollege} avec sa commande \texttt{\textbackslash VueCubes} !
+\end{importantblock}
+
+\begin{PresCodeTex}{listing only}
+\begin{EmpilementCubes}[échelle]<options tikz>
+	%commandes
+\end{EmpilementCubes}
+\end{PresCodeTex}
+
+\section{Création par \textit{plaques}}
+
+\subsection{Commandes}
+
+\begin{cautionblock}
+La commande pour créer une plaque \textit{verticale} est \texttt{\textbackslash PlaquePetitsCubes}, avec la contrainte de créer la \textit{figure} de l'arrière vers l'avant.
+
+Il existe également la commande \texttt{\textbackslash PlaqueVide} pour \textit{passer} une ligne.
+\end{cautionblock}
+
+\begin{PresCodeTex}{listing only}
+\begin{EmpilementCubes}[échelle]<options tikz>
+	\PlaquePetitsCubes[couleur(s)]{empilement}
+	\PlaqueVide[nb]
+\end{EmpilementCubes}
+\end{PresCodeTex}
+
+\begin{importantblock}
+Les plaques créées sont affichées l'une \textit{devant} l'autre, et elles sont -- par défaut -- collées les unes aux autres.
+\end{importantblock}
+
+\subsection{Options et arguments}
+
+\begin{tipblock}
+Le premier argument, optionnel et entre \texttt{[...]} permet de spécifier une couleur (\texttt{cyan} par défaut) ou une liste de couleurs qui seront utilisées pour la création des plaques :
+
+\begin{itemize}
+	\item soit une couleur unique, qui sera \textit{codée} par \texttt{1} pour la création des cubes ;
+	\item soit plusieurs couleurs, sous la forme \texttt{couleur1/couleur2/couleur3/...} qui seront codées par \texttt{1}, \texttt{2}, \ldots{} pour la création des cubes.
+\end{itemize}
+
+Le second argument, obligatoire et entre \texttt{\{...\}} est quant à lui la liste, des lignes à construire, avec comme ordres :
+
+\begin{itemize}
+	\item du bas vers le haut (caractère de séparation \texttt{/}) ;
+	\item de la gauche vers la droite (caractère de séparation \texttt{,}) ;
+	\item un \texttt{-} code un \textit{trou}, et un numéro code une couleur (comme définie(s) précédemment).
+\end{itemize}
+
+Cette manière permet de créer des plaques avec couleurs \textit{individuelles} et des \textit{trous} éventuels.
+\end{tipblock}
+
+\begin{PresCode}{}
+\begin{EmpilementCubes}
+	%plaque
+	%de bas en haut : couleurs VBRB-B-J / RVVBRV / J-BBBR
+	\PlaquePetitsCubes[cyan/red/green/yellow]{ 3121-1-4 / 233123 / 4-1112 }
+\end{EmpilementCubes}
+\end{PresCode}
+
+\begin{PresCode}{}
+\begin{EmpilementCubes}
+	%plaque n°1 (fond)
+	\PlaquePetitsCubes{ 1111 / 1111 }
+	\PlaqueVide[2]
+	%plaque n°2
+	\PlaquePetitsCubes[cyan/red]{ 111- / -211  }
+	\PlaqueVide[2]
+	%plaque n°3 (devant)
+	\PlaquePetitsCubes{ 1111 / ---1 }
+\end{EmpilementCubes}
+\end{PresCode}
+
+\begin{PresCode}{}
+\begin{EmpilementCubes}
+	%plaque n°1 (fond)
+	\PlaquePetitsCubes{ 1111 / 1111 }
+	%plaque n°2
+	\PlaquePetitsCubes[cyan/red]{ 111- / -211  }
+	%plaque n°3 (devant)
+	\PlaquePetitsCubes{ 1111 / ---1 }
+\end{EmpilementCubes}
+\end{PresCode}
+
+
+\begin{PresCode}{}
+\begin{EmpilementCubes}[1.75]
+	\PlaquePetitsCubes[cyan/red/green/yellow]{ 3111-1-4 / 233123 / 2-1112 }
+	\PlaquePetitsCubes[cyan/red]{ 111 / -21 }
+	\PlaquePetitsCubes[cyan/red/green]{ 3-2 }
+\end{EmpilementCubes}
+\end{PresCode}
+
+\pagebreak
+
+\section{Création par \textit{hauteurs}}
+
+\subsection{Commande}
+
+\begin{tipblock}
+L'idée, reprise du package \textsf{ProfCollege}\footnotemark\footnotetext{\url{https://www.ctan.org/pkg/profcollege}} permet d'afficher une empilement de cubes (monochromes, et sans trou) en précisant -- grâce à un système de \textit{grille} -- les hauteurs des colonnes.
+
+La commande qui permet de réaliser cet empilement est \texttt{\textbackslash BlocPetitsCubes}.
+\end{tipblock}
+
+\begin{PresCodeTex}{listing only}
+%création dans un environnement dédié
+\begin{EmpilementCubes}[échelle]<options tikz>
+	\BlocPetitsCubes*[couleur]{grille des hauteurs}
+\end{EmpilementCubes}
+\end{PresCodeTex}
+
+\begin{PresCodeTex}{listing only}
+%création autonome
+\BlocPetitsCubes[couleur]{grille des hauteurs}
+\end{PresCodeTex}
+
+\begin{cautionblock}
+Le support de la grille des hauteurs est donc à donner sous forme \textit{rectangulaire}, en respectant un nombre \textit{homogène} de colonnes par ligne !
+\end{cautionblock}
+
+\begin{importantblock}
+Voici une grille permettant d’anticiper la création d'un assemblage (en spécifiant les hauteurs) :
+
+\begin{center}
+	\begin{EnvTikzEspace}[UniteX={-22:1cm},UniteY={22:1cm}]
+		\foreach \x in {0,...,4} {\draw[semithick] (\x,-0.2,0)--++(0,5.4,0) ;}
+		\foreach \y in {0,...,5} {\draw[semithick] (-0.2,\y,0)--++(4.4,0,0) ;}
+		\foreach \y/\n in {0.5/1,1.5/2,2.5/3,3.5/4,4.5/5}
+			{\draw (0.5,\y,0) node[font=\small\sffamily] {\n} ;}
+		\foreach \y/\n in {0.5/0,1.5/2,2.5/1,3.5/1,4.5/3}
+			{\draw (1.5,\y,0) node[font=\small\sffamily] {\n} ;}
+		\foreach \y/\n in {0.5/0,1.5/2,2.5/1,3.5/1,4.5/2}
+			{\draw (2.5,\y,0) node[font=\small\sffamily] {\n} ;}
+		\foreach \y/\n in {0.5/1,1.5/1,2.5/1,3.5/1,4.5/1}
+			{\draw (3.5,\y,0) node[font=\small\sffamily] {\n} ;}
+	\end{EnvTikzEspace}
+\end{center}
+\end{importantblock}
+
+\subsection{Options et arguments}
+
+\begin{tipblock}
+Le premier argument, optionnel et entre \texttt{[...]} permet de spécifier une couleur (\texttt{cyan} par défaut).
+
+Le second argument, obligatoire et entre \texttt{\{...\}} est quant à lui la liste des hauteurs, comme présentée précédemment :
+
+\begin{itemize}
+	\item le caractère de séparation des \textit{plaques} est le \texttt{/} ;
+	\item pour chaque plaque, le caractère de séparation des colonnes est le \texttt{,}.
+\end{itemize}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
+
+\begin{importantblock}
+Par exemple, la \textit{grille} associée à l'empilement précédent est :
+
+\smallskip
+
+\hfill\texttt{1,2,3,4,5 / 0,2,1,1,3 / 0,2,1,1,2 / 1,1,1,1,1}\hfill~
+\end{importantblock}
+
+\vfill~
+
+\begin{PresCode}{}
+\begin{EmpilementCubes}
+	\BlocPetitsCubes*{1,2,3,4,5}
+\end{EmpilementCubes}
+\end{PresCode}
+
+\begin{PresCode}{}
+%commande autonome, taille par défaut
+\BlocPetitsCubes{1,2,3,4,5 / 0,2,1,1,3 / 0,2,1,1,2 / 1,1,1,1,1}
+\end{PresCode}
+
+\begin{PresCode}{}
+\begin{EmpilementCubes}[2]
+	\BlocPetitsCubes*[violet]{1,2,3,4,5 / 0,2,1,1,3 / 0,2,1,1,2 / 1,1,1,1,1}
+\end{EmpilementCubes}
+\end{PresCode}
+
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tikz3d-fr/tikz3d-fr-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tikz3d-fr/tikz3d-fr.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz3d-fr/tikz3d-fr.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tikz3d-fr/tikz3d-fr.sty	2023-05-02 20:30:46 UTC (rev 66992)
@@ -0,0 +1,314 @@
+% Author     : C. Pierquet
+% licence    : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tikz3d-fr}[2023/05/02 0.1.0 Aide pour l'utilisation de TikZ 3D]
+%0.1.0	Version initiale
+
+%------Packages utiles
+\RequirePackage{tikz}
+\RequirePackage{xstring}
+\RequirePackage{simplekv}
+\RequirePackage{xinttools}
+\RequirePackage{xintexpr}
+\RequirePackage{listofitems}
+%------Librairies tikz
+\usetikzlibrary{calc}
+\usetikzlibrary{babel}
+
+%%------Param3D pour l'environnement
+\defKV[paramstridim]{%
+	UniteX=\xdef\PLTriDimUx{#1},%
+	UniteY=\xdef\PLTriDimUy{#1},%
+	UniteZ=\xdef\PLTriDimUz{#1}
+}
+\setKVdefault[paramstridim]{%
+	UniteX={-15:1cm},%
+	UniteY={20:0.65cm},%
+	UniteZ={90:1cm},%
+	VueClassique=false
+}
+
+\NewDocumentEnvironment{EnvTikzEspace}{ O{} D<>{} }%1=clés,2=paramtikz(comme line join... scale...)
+{
+	\useKVdefault[paramstridim]%
+	\setKV[paramstridim]{#1}%
+	\ifboolKV[paramstridim]{VueClassique}
+		{%
+			\xdef\PLTriDimUx{0:1cm}%
+			\xdef\PLTriDimUy{30:0.5cm}%
+			\xdef\PLTriDimUz{90:1cm}%
+		}{}%
+	\begin{tikzpicture}[x={(\PLTriDimUx)},y={(\PLTriDimUy)},z={(\PLTriDimUz)},#2]
+}
+{
+	\end{tikzpicture}
+}
+
+%%------PaveDroitTikZ
+\defKV[paramspavetridim]{%
+	Largeur=\xdef\PFPaveLgDDD{#1},%
+	Profondeur=\xdef\PFPavePfDDD{#1},%
+	Hauteur=\xdef\PFPaveHtDDD{#1},%
+	Sommets=\def\PFPaveSommetsDDD{#1},%
+	Epaisseur=\xdef\PFPaveThickDDD{#1},%
+	Couleur=\xdef\PFPaveCouleurDDD{#1},%
+	CouleurSommets=\xdef\PFPaveCouleurSommDDD{#1}
+}
+\setKVdefault[paramspavetridim]{%
+	AffLabel=false,%
+	Plein=false,%
+	Largeur=2,%
+	Profondeur=1,%
+	Hauteur=1.25,%
+	Epaisseur=thick,%
+	Sommets=A§B§C§D§E§F§G§H,%
+	Cube=false,%
+	Math=false,%
+	Couleur=black,%
+	CouleurSommets=black
+}
+
+
+\newcommand\PaveTikzTriDim[1][]{%
+	\useKVdefault[paramspavetridim]%
+	\setKV[paramspavetridim]{#1}%
+	\ifboolKV[paramspavetridim]{Cube}
+		{%
+			\xdef\PFPavePfDDD{\PFPaveLgDDD}%
+			\xdef\PFPaveHtDDD{\PFPaveLgDDD}%
+		}{}
+	\setsepchar{§}%
+	\readlist*\PFListeSommets\PFPaveSommetsDDD
+	\itemtomacro\PFListeSommets[1]\PaveA
+	\itemtomacro\PFListeSommets[2]\PaveB
+	\itemtomacro\PFListeSommets[3]\PaveC
+	\itemtomacro\PFListeSommets[4]\PaveD
+	\itemtomacro\PFListeSommets[5]\PaveE
+	\itemtomacro\PFListeSommets[6]\PaveF
+	\itemtomacro\PFListeSommets[7]\PaveG
+	\itemtomacro\PFListeSommets[8]\PaveH
+	%les nœuds du pave
+	\coordinate (\PaveA) at (0,0,0) ;
+	\coordinate (\PaveB) at ({\PFPaveLgDDD},0,0) ;
+	\coordinate (\PaveC) at ({\PFPaveLgDDD},{\PFPavePfDDD},0) ;
+	\coordinate (\PaveD) at (0,{\PFPavePfDDD},0) ;
+	\coordinate (\PaveE) at (0,0,{\PFPaveHtDDD}) ;
+	\coordinate (\PaveF) at ({\PFPaveLgDDD},0,{\PFPaveHtDDD}) ;
+	\coordinate (\PaveG) at ({\PFPaveLgDDD},{\PFPavePfDDD},{\PFPaveHtDDD}) ;
+	\coordinate (\PaveH) at (0,{\PFPavePfDDD},{\PFPaveHtDDD}) ;
+	\ifboolKV[paramspavetridim]{AffLabel}
+		{%
+			\draw (\PaveA) node[below left,\PFPaveCouleurSommDDD] {\ifboolKV[paramspavetridim]{Math}{$\PaveA$}{\PaveA}} ;
+			\draw (\PaveB) node[below right,\PFPaveCouleurSommDDD] {\ifboolKV[paramspavetridim]{Math}{$\PaveB$}{\PaveB}} ;
+			\draw (\PaveC) node[above right,\PFPaveCouleurSommDDD] {\ifboolKV[paramspavetridim]{Math}{$\PaveC$}{\PaveC}} ;
+			\ifboolKV[paramspavetridim]{Plein}
+				{}
+				{%
+					\draw (\PaveD) node[above left,\PFPaveCouleurSommDDD] {\ifboolKV[paramspavetridim]{Math}{$\PaveD$}{\PaveD}} ;
+				}%
+				\draw (\PaveE) node[below left,\PFPaveCouleurSommDDD] {\ifboolKV[paramspavetridim]{Math}{$\PaveE$}{\PaveE}} ;
+				\draw (\PaveF) node[below right,\PFPaveCouleurSommDDD] {\ifboolKV[paramspavetridim]{Math}{$\PaveF$}{\PaveF}} ;
+				\draw (\PaveG) node[above right,\PFPaveCouleurSommDDD] {\ifboolKV[paramspavetridim]{Math}{$\PaveG$}{\PaveG}} ;
+				\draw (\PaveH) node[above left,\PFPaveCouleurSommDDD] {\ifboolKV[paramspavetridim]{Math}{$\PaveH$}{\PaveH}} ;%
+		}%
+		{}%on affiche rien
+	\ifboolKV[paramspavetridim]{Plein}
+		{}
+		{%
+			\draw[\PFPaveCouleurDDD,dashed,\PFPaveThickDDD,line join=bevel] (\PaveA)--(\PaveD)--(\PaveC) (\PaveD)--(\PaveH) ;%
+		}%
+	\draw[\PFPaveCouleurDDD,\PFPaveThickDDD,line join=bevel] (\PaveE)--(\PaveF)--(\PaveG)--(\PaveH)--cycle ;
+	\draw[\PFPaveCouleurDDD,\PFPaveThickDDD,line join=bevel] (\PaveE)--(\PaveA)--(\PaveB)--(\PaveF)--cycle ;
+	\draw[\PFPaveCouleurDDD,\PFPaveThickDDD,line join=bevel] (\PaveC)--(\PaveG)--(\PaveF)--(\PaveB)--cycle ;
+}
+
+%%------Commandes internes pour les nœuds et points
+\NewDocumentCommand\TransfPosTikz{ m }{%défaut below
+	\def\PosTmpLabel{below}
+	\IfEq{#1}{b}{\def\PosTmpLabel{below}}{}
+	\IfEq{#1}{d}{\def\PosTmpLabel{right}}{}
+	\IfEq{#1}{h}{\def\PosTmpLabel{above}}{}
+	\IfEq{#1}{g}{\def\PosTmpLabel{left}}{}
+	\IfEq{#1}{bg}{\def\PosTmpLabel{below left}}{}
+	\IfEq{#1}{bd}{\def\PosTmpLabel{below right}}{}
+	\IfEq{#1}{hg}{\def\PosTmpLabel{above left}}{}
+	\IfEq{#1}{hd}{\def\PosTmpLabel{above right}}{}
+}
+\tikzset{pics/croix/.style args={#1/#2}{
+		code={
+			\draw[line width={0.5*#1},rotate=#2] (-#1,0) -- (#1,0);
+			\draw[line width={0.5*#1},rotate=#2] (0,-#1) -- (0, #1);
+		}
+	},
+	pics/croix/.default={2pt/0}
+}
+
+%%------Créer/Placer/Nommer Point(s) 3d
+\defKV[TkzTriDimPoint]{%
+	PosLabel=\xdef\TrimDimLabel{#1},%
+	DecalLabel=\xdef\TrimDimDecalLabel{#1},%
+	StyleMarque=\xdef\TrimDimStylePt{#1},%
+	TailleMarque=\xdef\TrimDimtaillePt{#1},%
+	Couleur=\xdef\TrimDimCoul{#1}
+}
+
+\setKVdefault[TkzTriDimPoint]{%
+	PosLabel={b},%
+	DecalLabel=1pt,%
+	StyleMarque=o,%
+	TailleMarque=2pt,%
+	Couleur=black
+}
+
+\NewDocumentCommand\PlacePointEspace{ s O{} m m D<>{#3} }{%
+	%*=label
+	%2=clés
+	%3=nom nœud
+	%4=coordonnées x,y,z
+	%5=label si différent
+	\useKVdefault[TkzTriDimPoint]%
+	\setKV[TkzTriDimPoint]{#2}%
+	\TransfPosTikz{\TrimDimLabel}
+	\coordinate (#3) at (#4) ;
+	\IfBooleanTF{#1}%on désactive le label avec (*)
+		{}%
+		{\draw (#3) node[\TrimDimCoul,\PosTmpLabel=\TrimDimDecalLabel] {#5} ;}%
+}
+
+\NewDocumentCommand\PlacePointsEspace{ s O{} m }{%
+	%*=labels off
+	%2=clés
+	%3=liste nom/coordonnées/pos
+	\useKVdefault[TkzTriDimPoint]%
+	\setKV[TkzTriDimPoint]{#2}%
+	\setsepchar[.]{ ./}%
+	\readlist*\ListePtsEspace{#3}
+	\foreach \i in {1,2,...,\ListePtsEspacelen}
+		{%
+			\IfBooleanTF{#1}%on désactive le label avec (*)
+				{%
+					\PlacePointEspace*[#2]{\ListePtsEspace[\i,1]}{\ListePtsEspace[\i,2]}
+				}%
+				{%
+					\PlacePointEspace[#2,PosLabel={\ListePtsEspace[\i,3]}]{\ListePtsEspace[\i,1]}{\ListePtsEspace[\i,2]}
+				}%
+		}%
+}
+
+\NewDocumentCommand\MarquePointEspace{ O{} m }{%
+	%1=clés
+	%2=nom nœud
+	\useKVdefault[TkzTriDimPoint]%
+	\setKV[TkzTriDimPoint]{#1}%
+	\IfStrEq{\TrimDimStylePt}{o}%
+		{\filldraw[\TrimDimCoul] (#2) circle[radius=\TrimDimtaillePt] ;}{}%
+	\IfStrEq{\TrimDimStylePt}{x}%
+		{\draw[\TrimDimCoul] (#2) pic{croix=\TrimDimtaillePt/45} ;}{}%
+}
+
+\NewDocumentCommand\MarquePointsEspace{ O{} m }{%
+	%1=clés
+	%2=liste nom/coordonnées/pos
+	\useKVdefault[TkzTriDimPoint]%
+	\setKV[TkzTriDimPoint]{#1}%
+	\foreach \i in {#2}
+		{%
+			\MarquePointEspace[#1]{\i}
+		}%
+}
+
+%%------Créer Segment(s) 3d
+\NewDocumentCommand\TraceSegmentEspace{ O{} r() r() }{%1=optionstikz,2=A,3=B
+	\draw[#1] (#2)--(#3) ;
+}
+
+\NewDocumentCommand\TraceSegmentsEspace{ O{} m }{%1=optionstikz,2=liste A/B C/D
+	\setsepchar[.]{ ./}%
+	\readlist*\ListePtsEspace{#2}
+	\foreach \i in {1,2,...,\ListePtsEspacelen}
+		{\draw[#1] (\ListePtsEspace[\i,1])--(\ListePtsEspace[\i,2]) ;}
+}
+
+%--Petits Cubes
+%%------EmpilementCubes
+\NewDocumentEnvironment{EmpilementCubes}{ O{1} D<>{} }%
+{
+	\begin{tikzpicture}[x={(-160:0.5cm)},y={(-25:0.45cm)},z={(90:0.5cm)},scale=#1,#2]
+}
+{
+	\end{tikzpicture}
+}
+
+\NewDocumentCommand\PetitCube{ O{cyan} m }{%
+	\StrBefore[1]{#2}{,}[\xtmp]%
+	\StrBetween[1,2]{#2}{,}{,}[\ytmp]%
+	\StrBehind[2]{#2}{,}[\ztmp]%
+	\draw[fill=#1!70,very thin,line join=bevel] ({\xtmp+1},\ytmp,\ztmp)--++(0,1,0)--++(0,0,-1)--++(0,-1,0)--cycle;
+	\draw[fill=#1!80,very thin,line join=bevel] (\xtmp,{\ytmp+1},\ztmp)--++(1,0,0)--++(0,0,-1)--++(-1,0,0)--cycle; 
+	\draw[fill=#1!35!white,very thin,line join=bevel] (\xtmp,\ytmp,\ztmp)--++(1,0,0)--++(0,1,0)--++(-1,0,0)--cycle;
+}
+
+\newcounter{lgblocs}%compteur des lignes, qui sera incrémenté
+\NewDocumentCommand\PlaqueVide{ O{1} }{\addtocounter{lgblocs}{#1}}%passer une plaque
+\NewDocumentCommand\PlaquePetitsCubes{ O{cyan} m }{%poser un cube (attention à l'ordre)
+	\setsepchar[.]{/}
+	%lecture des couleurs
+	\readlist*\ListeCouleurs{#1}
+	%code
+	\readlist*\ListeTraitee{#2}
+	\def\hauteur{\ListeTraiteelen}
+	\addtocounter{lgblocs}{1}
+	\def\y{\thelgblocs}
+	\foreach \i in {1,...,\ListeTraiteelen}%
+		{%
+			%on stocke la ligne à afficher en hauteur
+			\itemtomacro\ListeTraitee[\i]{\lignetmp}
+			%on stocke le nombre de colonnes à afficher
+			\StrLen{\lignetmp}[\colonnetmp]
+			\foreach \j in {\colonnetmp,...,1}%
+				{%
+					\StrChar{\lignetmp}{\j}[\elementtmp]
+					\IfStrEq{\elementtmp}{-}%
+						{}%
+						{%
+							\itemtomacro\ListeCouleurs[\elementtmp]{\elementcouleur}
+							\PetitCube[\elementcouleur]{-\j,\y,\i}
+						}%
+				}%
+		}%
+}
+
+\NewDocumentCommand\BlocPetitsCubes{ s O{cyan} m }{%
+	%*pour autonome
+	%2=couleur unique
+	%3=liste des hauteurs (attention à l'ordre)
+	\setsepchar[.]{/.,}
+	\readlist*\ListeTraitee{#3}
+	\def\Largeur{\ListeTraiteelen}
+	%on lit la Profondeur
+	\itemtomacro\ListeTraitee[1]{\ListeTMP}
+	\setsepchar{,}
+	\readlist*\ListeTraiteeB{\ListeTMP}
+	\def\Profondeur{\ListeTraiteeBlen}
+	\IfBooleanTF{#1}
+		{}
+		{\begin{EnvTikzEspace}[UniteX={-160:0.5cm},UniteY={-25:0.45cm},UniteZ={90:0.5cm}]}
+	%Placement des cubes
+	\foreach \y in {1,...,\Largeur}%
+		{%
+			\foreach \x in {\Profondeur,...,1}
+			{%
+				\itemtomacro\ListeTraitee[\y,\x]{\Hauteur}
+				\xintifboolexpr{\Hauteur == 0}%
+					{}%
+					{%
+						\foreach \z in {1,...,\Hauteur}{\PetitCube[#2]{-\x,\y,\z}}
+					}%
+			}%
+		}%
+	\IfBooleanTF{#1}
+		{}
+		{\end{EnvTikzEspace}}
+}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tikz3d-fr/tikz3d-fr.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2023-05-02 20:29:03 UTC (rev 66991)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2023-05-02 20:30:46 UTC (rev 66992)
@@ -812,7 +812,7 @@
     threadcol threeddice threeparttable threeparttablex
     thuaslogos thubeamer thucoursework thumb thumbpdf thumbs thumby thuthesis
     ticket ticollege tidyres
-    tikz-3dplot tikz-among-us tikz-bagua tikz-bayesnet tikz-bbox
+    tikz3d-fr tikz-3dplot tikz-among-us tikz-bagua tikz-bayesnet tikz-bbox
     tikz-cd tikz-dependency tikz-dimline tikz-ext
     tikz-feynhand tikz-feynman tikz-imagelabels tikz-inet
     tikz-kalender tikz-karnaugh tikz-ladder tikz-lake-fig tikz-layers

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2023-05-02 20:29:03 UTC (rev 66991)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2023-05-02 20:30:46 UTC (rev 66992)
@@ -1804,6 +1804,7 @@
  'texdraw'		=> '&POSTtexdraw',
  'tex-ps'		=> '&POSTtex_ps',
  'thumbpdf'		=> '&POST_preserve_man',
+ 'tikz3d-fr'		=> '&POST_onelevel',
  'tikz-cd'		=> '&POSTtikz_cd',
  'tikz-ext'		=> '&POSTtikz_ext',
  'tipa-de'		=> '&POST_rmsymlink',

Modified: trunk/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc	2023-05-02 20:29:03 UTC (rev 66991)
+++ trunk/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc	2023-05-02 20:30:46 UTC (rev 66992)
@@ -154,8 +154,8 @@
 depend scsnowman
 depend setdeck
 depend signchart
+depend simplenodes
 depend simpleoptics
-depend simplenodes
 depend smartdiagram
 depend spath3
 depend spectralsequences
@@ -199,6 +199,7 @@
 depend tikz-timing
 depend tikz-trackschematic
 depend tikz-truchet
+depend tikz3d-fr
 depend tikzbricks
 depend tikzcodeblocks
 depend tikzducks

Added: trunk/Master/tlpkg/tlpsrc/tikz3d-fr.tlpsrc
===================================================================


More information about the tex-live-commits mailing list.