summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tkz-doc
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/tkz-doc
Initial commit
Diffstat (limited to 'macros/latex/contrib/tkz-doc')
-rw-r--r--macros/latex/contrib/tkz-doc/README2
-rw-r--r--macros/latex/contrib/tkz-doc/tkz-doc.cls485
-rw-r--r--macros/latex/contrib/tkz-doc/tkzexample.sty497
3 files changed, 984 insertions, 0 deletions
diff --git a/macros/latex/contrib/tkz-doc/README b/macros/latex/contrib/tkz-doc/README
new file mode 100644
index 0000000000..bd050e5e00
--- /dev/null
+++ b/macros/latex/contrib/tkz-doc/README
@@ -0,0 +1,2 @@
+Class and package for the documentation of all tkz-* packages.
+ %%% H I G H L Y E X P E R I M E N T A L %%%
diff --git a/macros/latex/contrib/tkz-doc/tkz-doc.cls b/macros/latex/contrib/tkz-doc/tkz-doc.cls
new file mode 100644
index 0000000000..0cd1e5ce28
--- /dev/null
+++ b/macros/latex/contrib/tkz-doc/tkz-doc.cls
@@ -0,0 +1,485 @@
+% Copyright (C) 2009 Alain Matthes
+% encoding : utf8
+% engine : pdflatex
+% H I G H L Y E X P E R I M E N T A L
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License , either version 1.3
+% of this license or (at your option) any later version and/or
+% 2. under the GNU Public License.
+%
+% See the file doc/generic/pgf/licenses/LICENSE for more details.%
+% See http://www.latex-project.org/lppl.txt for details.
+%
+%
+% ``tkz-doc'' class for use with the tkz documentation ( AlterMundus Collection ).
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% tkz-doc.cls encodage : utf8 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% Créé par Alain Matthes le 2009-02-22. %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Objet : Classe LaTeX et Styles pour créer des documentations.
+%<--------------------------------------------------------------------------->
+%<-------------- Définitions relatives au package --------------------------->
+\newcommand*{\PackageName}{tkz-doc}
+\newcommand*{\PackageVersion}{1.1 d}
+\newcommand*{\filedate}{2018/09/19}
+%<---------------------- Identification Part -------------------------------->
+%
+%<--------------------------------------------------------------------------->
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{\PackageName}%
+[\filedate\space Version:\space\PackageVersion\space tkz documentation class]
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
+\ProcessOptions\relax
+\LoadClass[titlepage,oneside]{scrartcl}
+\PassOptionsToPackage{usenames,dvipsnames,svgnames}{xcolor}
+\ifx\e@alloc\@undefined
+ \RequirePackage{etex}
+\fi
+\RequirePackage[utf8]{inputenc}
+\RequirePackage{xkeyval}[2005/11/25]
+\RequirePackage{framed,eso-pic}
+\RequirePackage{amsmath,amssymb}
+\RequirePackage{textcomp}
+\RequirePackage[upright]{fourier}
+\RequirePackage[scaled=0.85]{berasans}
+\RequirePackage[scaled=0.85]{beramono}
+\RequirePackage[bottom,stable,ragged]{footmisc}
+\RequirePackage[automark,nouppercase]{scrpage2}
+
+
+\pagestyle{scrheadings}
+\clearscrheadings
+\clearscrplain
+\ohead{\textcolor{Peach}{\pagemark}}
+\ihead{\textcolor{Peach}{\headmark}}
+\rofoot{\textcolor{Peach}{\namecollection}}
+\lofoot{\textcolor{Peach}{\nameofpack}}
+\automark[subsection]{section}
+\setheadsepline{.4pt}[\color{Peach}]
+\setfootsepline{.4pt}[\color{Peach}]
+\setheadwidth[0pt]{text}
+\setfootwidth[0pt]{text}
+\renewcommand{\footnoterule}{\vspace*{-3pt}{%
+ \color{Peach}\hrule width 2in height 0.4pt}
+ \vspace*{2.6pt}}
+\deffootnote{1.5em}{1em}{\makebox[1.5em][l]{%
+ \thefootnotemark}}
+\addtolength{\skip\footins}{\baselineskip}%
+%<------------------– En-tête et pied de page ------------------------------>
+%
+%<--------------------------------------------------------------------------->
+\pagenumbering{arabic}
+\newcommand\SectionFontStyle{\sffamily}
+\setkomafont{sectioning}{\bfseries\SectionFontStyle}
+\setkomafont{pagenumber}{\bfseries\SectionFontStyle}
+\setkomafont{pagehead}{\small\sffamily}
+\setkomafont{pagefoot}{\small\sffamily}
+\setkomafont{descriptionlabel}{\itshape}
+\addtokomafont{sectioning}{\color{sectioncolor}}
+\renewcommand*{\raggedsection}{\raggedright}
+%<--------------------------------------------------------------------------->
+%
+%<--------------------------------------------------------------------------->
+\newcounter{cnt}\setcounter{cnt}{1}
+\setcounter{secnumdepth}{3}%
+\setcounter{tocdepth}{3}
+
+\color{Maroon}
+\usepackage{titlesec}
+\titleformat{\section}[frame]
+{\normalfont}
+{\filright\footnotesize\enspace SECTION \thesection\enspace}
+{8pt}
+{\Large\bfseries\filcenter}
+\titleformat{\subsection}[block] {\large\bfseries\filright}{\fbox{\thesubsection}}{2em}{}%
+%<------------------ Éxécution et chargement ------------------------------->
+%
+%<--------------------------------------------------------------------------->
+% ------------------–Fin Taille des fontes ------------------------------->
+\RequirePackage{makeidx}
+\@twocolumnfalse
+\makeindex
+
+\RequirePackage{calc}
+\RequirePackage{tikz}
+% We need lots of libraries...
+\usetikzlibrary{%
+ arrows,%
+ calc,%
+ fit,%
+ patterns,%
+ plotmarks,%
+ shapes.geometric,%
+ shapes.misc,%
+ shapes.symbols,%
+ shapes.arrows,%
+ backgrounds,%
+ topaths,%
+ trees,%
+ matrix,%
+ folding,%
+ fadings,%
+ through,%
+ positioning,%
+ scopes,%
+ decorations.shapes,%
+ decorations.text,%
+ decorations.pathreplacing,%
+ decorations.pathmorphing,%
+ decorations.markings,%
+ shadows}
+
+\RequirePackage{multido}
+\RequirePackage{lscape}
+\RequirePackage{graphicx}
+\RequirePackage{array}
+\RequirePackage{multicol}
+\RequirePackage{multirow}
+\RequirePackage{tabularx,ragged2e}
+\RequirePackage{booktabs}
+\RequirePackage[bottom,stable,ragged]{footmisc}
+
+
+\raggedbottom
+% colors
+\definecolor{fondpaille}{cmyk}{0,0,0.1,0}
+\definecolor{bistre}{rgb}{.75,.50,.30}
+\providecolor{bistre}{rgb}{.75,.50,.30}
+\colorlet{graphicbackground}{fondpaille}
+\colorlet{codebackground}{fondpaille!92!Maroon}
+\colorlet{sectioncolor}{Maroon}
+\definecolor{textcolor}{RGB}{0, 0, 0}
+\colorlet{titlecolorbox}{fondpaille!92!Maroon}
+\colorlet{pdflinkcolor}{blue}
+\colorlet{pdfurlcolor}{blue}
+\colorlet{pdffilecolor}{Peach}
+\colorlet{stringcolor}{green!40!black!100}
+\colorlet{commencolor}{blue!0!black!100}
+
+\newbox\tkzbox
+
+\def\nodeshadowedone(#1,#2)#3{%
+\node[Mahogany,above,inner sep=0pt]{\global\setbox\tkzbox=\hbox{#3}\copy\tkzbox};
+\node[above,yscale=#2,inner sep=0pt,xslant=#1,Peach!60]{\box\tkzbox};
+}%
+%<--------------------------- Indexation ------------------------------------>
+\newcommand*{\Ilib}[1]{\index{Library_1@\texttt{Library}!\texttt{#1}}}
+\newcommand*{\Ienv}[1]{\index{Environment_1@\texttt{Environment}!\texttt{#1}}}
+\newcommand*{\IargEnv}[2]{\index{#1_2@\texttt{#1: arguments}!\texttt{#2}}}
+\newcommand*{\IargNameEnv}[2]{\tkzname{#2}\index{#1_2@\texttt{#1: arguments}!\texttt{#2}}}
+\newcommand*{\IoptEnv}[2]{\index{#1_3@\texttt{#1: options}!\texttt{#2}}}
+\newcommand*{\IoptNameEnv}[2]{\tkzname{#2}\index{#1_3@\texttt{#1: options}!\texttt{#2}}}
+\newcommand*{\Imacro}[1]{\index{#1_1@\texttt{\textbackslash#1}}}%n
+\newcommand*{\Iarg}[2]{%
+ \index{#1_2@\texttt{\textbackslash#1: arguments}!\texttt{#2}}}
+\newcommand*{\IargName}[2]{\tkzname{#2}\index{#1_2@\texttt{\textbackslash#1: arguments}!\texttt{#2}}}
+\newcommand*{\IoptName}[2]{\tkzname{#2}\index{#1_3@\texttt{\textbackslash#1: options}!\texttt{#2}}}
+\newcommand*{\Iopt}[2]{\index{#1_3@\texttt{\textbackslash#1: options}!\texttt{#2}}}
+\newcommand*{\Istyle}[2]{\index{#1_3@\texttt{\textbackslash#1: styles}!\texttt{#2}}}
+\newcommand*{\IstyleEnv}[2]{\index{#1_3@\texttt{#1: styles}!\texttt{#2}}}
+\newcommand*{\Iaccent}[2]{\index{#1@\texttt{#2}}}
+\newcommand*{\NameLib}[1]{\tkzname{#1}\index{Ti\emph{k}Z Library !#1@\texttt{#1}}}
+\newcommand*{\NameSys}[1]{\index{Operating System !#1@\texttt{#1}}}
+\newcommand*{\NameDist}[1]{\index{TeX Distributions !#1@\texttt{#1}}}
+\newcommand*{\NameFonct}[1]{\index{Functions !#1@\texttt{#1}}}
+\newcommand*{\NamePack}[1]{\index{Package !#1@\texttt{#1}}}
+
+\newcommand*{\TOenvline}[3]{\IoptNameEnv{\ActivBoxName}{#1}&\tkzdft{#2}&\ttfamily #3\\}
+\newcommand*{\TOline}[3]{\IoptName{\ActivBoxName}{#1}&\tkzdft{#2}&\ttfamily #3\\}
+\newcommand*{\TAline}[3]{\IargName{\ActivBoxName}{#1}&\tkzdft{#2}&\ttfamily #3\\}
+\newcommand*{\TMline}[3]{\tkzcname{#1}\index{#1_1@\texttt{\textbackslash#1}}&\tkzdft{#2}&\ttfamily #3\\}
+
+\newcommand*{\tkzNamePack}[1]{\tkzname{#1}\NamePack{#1}}
+\newcommand*{\tkzNameMacro}[1]{\tkzcname{#1}\Imacro{#1}}
+\newcommand*{\tkzNameEnv}[1]{\tkzname{#1}\Ienv{#1}}
+%<-------------------------------------------------------------------------->
+%<-------------------------------------------------------------------------->
+\newcommand*{\addbs}[1]{\texttt{\textbackslash#1}}
+\newcommand*{\@CellCode}[1]{}
+\newcommand*{\thead}{\noalign{\iffalse}\fi\@thead}
+\newcommand*{\@thead}[1][\em\ttfamily]{\gdef\@CellCode{#1}\iffalse{\fi}}
+\newcommand*{\tbody}{\noalign{\gdef\@CellCode{}}}
+\newcolumntype{I}{>{\@CellCode}}
+%<--------------------------------- Couverture ---------------------------->
+%<--------------------------------- Make Title ---------------------------->
+\renewcommand\maketitle{%
+\null
+\AddToShipoutPicture*{%
+\setlength\unitlength{1mm}
+\put(0,0){\makebox(0,0)[lb]{\color{Peach!10}\rule{\paperwidth}{\paperheight}}}
+\put(0,0){\makebox(0,0)[lb]{\color{Mahogany}\rule{40mm}{\paperheight}}}
+\put(20,270){\rotatebox{90}{%
+\makebox(0,0)[r]{\fontsize{60}{60}\color{orange!50!white}%
+\bfseries \selectfont{\@title\ \versionofpack}\hfill}}}%
+ \put(60,80){%
+ \begin{pgfpicture}
+\pgfmathdeclarerandomlist{color}{{Peach}{Orange}{Red}{Brown}}
+\foreach \a in {1,...,5}{%
+ \pgfmathrandominteger{\x}{1}{300}
+ \pgfmathrandominteger{\y}{1}{200}
+ \pgfmathrandominteger{\r}{20}{100}
+ \pgfmathrandominteger{\s}{5}{95}
+ \pgfmathrandominteger{\o}{50}{80}
+ \pgfmathrandomitem{\c}{color}
+ \pgfdeclareradialshading{ballshading}{\pgfpoint{-10bp}{10bp}}
+ {color(0bp)=(\c!15!white); color(9bp)=(\c!75!white);
+ color(18bp)=(\c!70!black); color(25bp)=(\c!50!black); color(50bp)=(black)}
+ \pgfsetfillopacity{\o/100}
+ \pgfpathcircle{\pgfpoint{+\x pt}{+\y pt}}{+\r pt}
+ \pgfshadepath{ballshading}{\s}
+ \pgfusepath{}
+}%
+\end{pgfpicture}}
+\put(60,250){\makebox(0,0)[l]{%
+\begin{tikzpicture}
+\nodeshadowedone(2,-1.25){\fontsize{60}{60}\selectfont{\namecollection}};
+\end{tikzpicture}
+}}%
+\put(130,40){\makebox(0,0)[l]{%
+\fontsize{17}{21}
+\textcolor{Mahogany}{\selectfont{\authorofpack}}}}
+\put(130,20){\makebox(0,0)[l]{%
+\textcolor{Mahogany}{\url{\urlauthor} \ \url{\urlauthorcom}}}}
+\put(130,30){\makebox(0,0)[l]{\textcolor{Mahogany}{\today}}}}
+%<----------------------------- End Couverture ---------------------------->
+\setcounter{footnote}{0}%
+}
+%<----------------------------- def macro arg opt---------------------------->
+ % some of the macros below are absolete
+\def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
+\def\cmd@to@cs#1#2{\char\number`#2\relax}
+\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
+\providecommand\marg[1]{{\ttfamily\char`\{}\opt{\meta{#1}}{\ttfamily\char`\}}}
+\providecommand\oarg[1]{{\ttfamily[}\opt{\meta{#1}}{\ttfamily]}}
+\providecommand\parg[1]{{\ttfamily(}\opt{\meta{#1}}{\ttfamily)}}
+\newcommand\opt[1]{{\color{Maroon}#1}}
+\newcommand\ooarg[1]{{\ttfamily[}\meta{#1}{\ttfamily]}}
+\newcommand*{\var}[1]{\{\opt{\meta{#1}}\}}
+\newcommand*{\varp}[1]{\big(\opt{\meta{#1}}\big)}
+\newcommand*{\vara}[1]{\{#1\}}
+
+
+\DeclareRobustCommand\meta[1]{%
+\ensuremath\langle
+ \ifmmode \expandafter \nfss@text \fi
+ {%
+ \meta@font@select
+ \edef\meta@hyphen@restore
+ {\hyphenchar\the\font\the\hyphenchar\font}%
+ \hyphenchar\font\m@ne
+ \language\l@nohyphenation
+ \/#1\/%
+ \meta@hyphen@restore
+ }\ensuremath\rangle
+}
+\def\meta@font@select{\itshape}
+%
+%<-------------------------- NewMacroBox ----------------------------------->
+
+\newcommand*{\ActivBoxName}{}
+\newenvironment{NewMacroBox}[2]{%
+\parindent=0pt
+\renewcommand*{\ActivBoxName}{#1}
+\def\FrameCommand{\color{Maroon}
+{\vrule width 1pt\hspace{3pt}}%
+}%
+\MakeFramed{\advance\hsize-\width}%
+\noindent
+\makebox[0pt][l]{%
+\hspace{-4pt}%
+\setlength{\fboxrule}{1pt}%
+\setlength{\fboxsep}{3pt}%
+\fcolorbox{Maroon}{titlecolorbox}{%
+\rule{6pt}{0pt}%
+\makebox[\width+6pt][l]{\tkzcname{#1#2}}%
+}%
+}\\*[.5\baselineskip]%
+\noindent
+% \ignorespaces\tkzcname{#1#3}
+\Imacro{#1}%
+\color{Maroon}}{%
+\par\noindent%
+\makebox[0pt][l]{%
+\hspace{-6pt}%
+\rule{6pt}{1pt}%
+\rule{\textwidth}{1pt}%
+\hspace{-1pt}%
+\rule{1pt}{10pt}%
+}%
+\endMakeFramed
+\noindent
+\ignorespacesafterend
+\par\medskip
+}%
+%<----------------- end NewMacroBox ----------------------------------------->
+%<----------------------------- NewEnvBox ----------------------------------->
+\let\fram@d=\MakeFramed \let\endfram@d=\endMakeFramed
+
+\newenvironment{NewEnvBox}[1]{%
+\parindent=0pt
+\renewcommand*{\ActivBoxName}{#1}
+%\gdef\tkzEnvMacro{#1}
+\def\FrameCommand{\color{Maroon}
+{\vrule width 1pt\hspace{3pt}}%
+}%
+\MakeFramed{\advance\hsize-\width}%
+\noindent
+\makebox[0pt][l]{%
+
+\hspace{-4pt}%
+\setlength{\fboxrule}{1pt}%
+\setlength{\fboxsep}{3pt}%
+\fcolorbox{Maroon}{titlecolorbox}{%
+\rule{6pt}{0pt}%
+\makebox[\width+6pt][l]{%
+ \tkzcname{\textcolor{Maroon}{begin}\{\ActivBoxName\}}{\oarg{options}}%
+ \hspace*{.25cm}\meta{environment contents}\hspace*{.25cm}%
+ \tkzcname{\textcolor{Maroon}{end}\{\ActivBoxName\}}}%
+}%
+}\\*[.5\baselineskip]%
+\noindent
+% \ignorespaces\tkzcname{#1#3}
+\Ienv{#1}
+\color{Maroon}}{%
+\par\noindent%
+\makebox[0pt][l]{%
+
+\hspace{-6pt}%
+\rule{6pt}{1pt}%
+\rule{\textwidth}{1pt}%
+
+\hspace{-1pt}%
+\rule{1pt}{10pt}%
+}%
+\endMakeFramed
+\noindent
+\ignorespacesafterend
+\par\medskip
+}
+%<------------------- end NewEnvBox ----------------------------------------->
+\def\nameoffile#1{\gdef\@nameoffile{#1}}
+\def\@nameoffile{\@latex@warning@no@line{No \noexpand\nameoffile given}}
+\long\def\defoffile#1{
+ \protected@xdef\@defoffile{\@defoffile{#1}}%
+}
+\let\@defoffile\@empty
+\def\nameoffile#1{\gdef\@nameoffile{#1}}
+\def\@nameoffile{\@latex@warning@no@line{No \noexpand\nameoffile given}}
+\long\def\defoffile#1{\protected@xdef\@defoffile{\@defoffile{#1}}%
+}
+\let\@defoffile\@empty
+
+\newcommand*{\red}{\color{red}}
+\newcommand*{\blue}{\color{BlueViolet}}
+\newcommand*{\BS}{\texttt{\char92}}
+\newcommand*{\tkz}{Ti{\em k}Z}
+\newcommand*{\orange}{\color{Orange}}
+\newcommand*{\blanc}{\color{White}}
+\newcommand*{\PGF}{\tkzname{PGF}}
+\newcommand*{\TIKZ}{\tkzname{Ti\emph{k}Z}}
+\newcommand*{\beamer}{\textsc{beamer}}
+\newcommand*{\pdf}{\textsc{pdf}}
+\newcommand*{\pgfname}{\textsc{pgf}}
+\newcommand*{\tikzname}{Ti\emph{k}Z}
+\newcommand*{\pstricks}{\textsc{pstricks}}
+
+\newcommand*{\tkzdft}[1]{{\texttt{#1}}}
+\providecommand\LaTeX{%
+ L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em\TeX}
+\providecommand\LATEX{\LaTeX}
+\renewcommand\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX%
+ \spacefactor1000 }
+ \providecommand\TEX{\TeX}
+ \newcommand*{\tkzAttention}[3]{\ \\\llap{\textcolor{#3}{#1\hskip #2}}}
+\newcommand*{\tkzHand}{\ \\\llap{\textcolor{red}{\lefthand\hskip1em}}}
+\newcommand*{\tkzHandBomb}{\ \\\llap{\textcolor{red}{\lefthand\ \bomb\hskip1em}}}
+\newcommand*{\tkzBomb}{\ \\\llap{\textcolor{red}{\bomb\hskip1em}}}
+\newcommand*{\tkzTwoBomb}{\ \\\llap{\textcolor{red}{\bomb\ \bomb\hskip1em}}}
+
+\newcommand*{\tkzname}[1]{\textbf{\texttt{\textcolor{Maroon}{#1}}}}
+\newcommand*{\tkzimp}[1]{\textbf{#1}}
+\newcommand*{\tkzcname}[1]{\Imacro{#1}\textbf{\texttt{\textcolor{Maroon}{\textbackslash#1}}}}
+\newcommand*{\tkzhname}[1]{\textbf{\texttt{\textcolor{Maroon}{\textbackslash#1}}}}
+%<--------------------------- presentation ---------------------------------->
+% \providecommand\href[2]{\texttt{#1}}
+
+\newcommand\presentation{%
+ \thispagestyle{empty}%
+ \par\vspace*{3 cm}
+ \begin{center}
+ {\Huge \@nameoffile}
+ \end{center}
+ \par\vspace*{3 cm}
+ \noindent
+ \newlength{\@lx}\settowidth{\@lx}{\huge \namecollection}%
+ \advance\@lx3em\quad
+ \href{\urlauthor}{%
+ \rotatebox{90}{\hspace*{1.5em}{\huge \namecollection}}}
+ \textcolor{Mahogany}{\rule{2pt}{\@lx}}\quad%
+ \begin{minipage}[b]{.90\textwidth}
+ {%
+ \noindent\hfill
+ \raggedleft\Large
+ \href{mailto:al.ma@mac.com}{\textcolor{blue}{\authorofpack}}\par
+ }%
+ \emph{\@defoffile}\par
+ %[\nameofdoc\ \dateofdoc]\par\medskip
+ \end{minipage}
+}
+%<---------------------- end presentation ---------------------------------->
+
+\renewcommand*{\idx@heading}{%
+ \idx@@heading{\indexname}%
+ % \@mkboth{\indexname}{\indexname}%
+}
+\renewenvironment{theindex}{%
+ \@restonecoltrue
+ \columnseprule \z@
+ \columnsep 35\p@
+ \idx@heading%
+ \index@preamble\par\nobreak
+ \thispagestyle{\indexpagestyle}\parindent\z@
+ \setlength{\parskip}{\z@ \@plus .3\p@}%
+ \setlength{\parfillskip}{\z@ \@plus 1fil}%
+ \let\item\@idxitem
+}{%
+ \if@restonecol\onecolumn\else\clearpage\fi
+}
+
+\def\tkz@background@color{white}
+\def\tkz@text@color{black}
+\global\edef\tkz@suc@bkc{\tkz@background@color}
+\global\edef\tkz@suc@txt{\tkz@text@color}
+\pgfkeys{/tkzsetupcolor/.cd,
+ background/.code = {\global\edef\tkz@suc@bkc{#1}},
+ text/.code = {\global\edef\tkz@suc@txt{#1}}}
+
+\def\tkzSetUpColors{\pgfutil@ifnextchar[{\tkz@SetUpColors}{%
+ \tkz@SetUpColors[]}}
+\def\tkz@SetUpColors[#1]{%
+\begingroup
+\pgfkeys{tkzsetupcolor/.cd,
+ background = \tkz@background@color,
+ text = \tkz@text@color}
+\pgfqkeys{/tkzsetupcolor}{#1}
+\pagecolor{\tkz@suc@bkc}
+\color{\tkz@suc@txt}}
+
+%<--------------------------------------------------------------------------->
+\endinput
+%<--------------------------------------------------------------------------->
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % %
+ % End of file `tkz-doc.cls'. %
+ % %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/tkz-doc/tkzexample.sty b/macros/latex/contrib/tkz-doc/tkzexample.sty
new file mode 100644
index 0000000000..a39fbe5bc6
--- /dev/null
+++ b/macros/latex/contrib/tkz-doc/tkzexample.sty
@@ -0,0 +1,497 @@
+% Copyright 2009 by Alain Matthes
+%
+% H I G H L Y E X P E R I M E N T A L
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Free Documentation License.
+%
+% The author of the original code
+% of the environment 'codeexample' is Till Tantau
+% from the file pgfmanual-en-macros.tex
+% (Copyright 2006 by Till Tantau)
+% See the file doc/generic/pgf/licenses/LICENSE for more details.
+%
+%<--------------------------------------------------------------------------->
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tkzexample}[2018/09/19 v1.1 d (code and graphic ) ]
+\RequirePackage{fixltx2e,calc,mdframed,fancyvrb}
+\newif\iftkzcodesaved
+\DeclareOption{saved}{\tkzcodesavedtrue}
+\ProcessOptions\relax
+%<--------------------------------------------------------------------------->
+\colorlet{graphicbackground}{white}
+\colorlet{codebackground}{white}
+\colorlet{codeonlybackground}{white}
+\colorlet{numbackground}{white}
+\colorlet{textcodecolor}{black}
+\colorlet{numcolor}{gray}
+%<--------------------------------------------------------------------------->
+\def\code@style{\small\ttfamily}
+\makeatletter
+\newcounter{code@cnt}%
+
+\ifx\scantokens\@undefined
+ \PackageError{tkzexample}{You need to use extended latex
+ (elatex) or (pdfelatex) to use this package}{}
+\fi
+
+% Define \find@tkzexample such that it doesn't destroy catcodes:
+\begingroup
+\catcode`|=0
+\catcode`[= 1
+\catcode`]=2
+\catcode`\{=12
+\catcode `\}=12
+\catcode`\\=12 |gdef|find@tkzexample#1\end{tkzexample}[|endoftkzexample[#1]]
+|endgroup
+
+\begingroup
+\catcode`|=0
+\catcode`[= 1
+\catcode`]=2
+\catcode`\{=12
+\catcode `\}=12
+\catcode`\\=12 |gdef|find@tkzltxexample#1\end{tkzltxexample}[|endoftkzltxexample[#1]]
+|endgroup
+
+% define \returntospace.
+%
+% It should define NEWLINE as {}, spaces and tabs as \space.
+\begingroup
+\catcode`\^=7
+\catcode`\^^M=13
+\catcode`\^^I=13
+\catcode`\ =13%
+\gdef\returntospace{\catcode`\ =13\def {\space}\catcode`\^^I=13\def^^I{\space}\catcode`\^^M=13\def^^M{}}%
+\endgroup
+
+\begingroup
+\catcode`\%=13
+\catcode`\^^M=13
+\gdef\commenthandler{\catcode`\%=13\def%{\@gobble@till@return}}
+\gdef\@gobble@till@return#1^^M{}
+\gdef\@gobble@till@return@ignore#1^^M{\ignorespaces}
+\gdef\typesetcomment{\catcode`\%=13\def%{\@typeset@till@return}}
+\gdef\@typeset@till@return#1^^M{{\def%{\char`\%}\textsl{\char`\%#1}}\par}
+\gdef\typesetcommentnum{\catcode`\%=13\def%{\@typeset@till@return@num}}
+\gdef\@typeset@till@return@num#1^^M{{\def%{\char`\%}\textsl{\char`\%#1}} \@@par}
+\endgroup
+
+\let\tkz@frameset\colorbox
+\let\tkz@frameltxset\colorbox
+\newwrite\fileexample
+\newdimen\tkzexamplewidth
+\newdimen\tkz@hsep
+\tkz@hsep=0pt
+\newif\ifcode@execute
+\newif\ifcode@saved\code@savedfalse
+\newif\ifnum@show \num@showfalse
+\newif\ifcode@overhang
+\newbox\tkzexamplebox
+\newif\ifcode@vbox \code@vboxfalse
+
+\pgfqkeys{/tkzexample}{%
+ execute code/.is if = code@execute,
+ show num/.is if = num@show,
+ overhang/.is if = code@overhang,
+ code only/.code = {\code@executefalse},
+ width/.code = {\setlength\tkzexamplewidth{#1}},
+ code/.code = {\colorlet{codebackground}{#1}},
+ graphic/.code = {\colorlet{graphicbackground}{#1}},
+ overhang/.code = {\code@overhangtrue},
+ num/.code = {\num@showtrue\setcounter{code@cnt}{1}},
+ numcolor/.code = {\colorlet{numcolor}{#1}},
+ numbkgcolor/.code = {\colorlet{numbackground}{#1}},
+ global num/.code = {\num@showtrue},
+ code style/.code = {\def\code@style{#1}},
+ normal/.code = {\def\code@size{\normalsize}},
+ small/.code = {\def\code@size{\small}},
+ very small/.code = {\def\code@size{\footnotesize}},
+ right margin/.code = {\def\tkz@rightmargin{#1}},
+ left margin/.code = {\def\tkz@leftmargin{#1}},
+ inner left margin/.code = {\def\tkz@innerleftmargin{#1}},
+ inner right margin/.code = {\def\tkz@innerrightmargin{#1}},
+ inner top margin/.code = {\def\tkz@innertopmargin{#1}},
+ inner bottom margin/.code = {\def\tkz@innerbottommargin{#1}},
+ line frame width/.code = {\def\tkz@linewidth{#1}},
+ frame code/.code = {\def\tkz@frameset{\fcolorbox{#1}}},
+ frame tex/.code = {\def\tkz@frameltxset{\fcolorbox{#1}}},
+ above skip/.code = {\def\tkz@above{#1}},
+ below skip/.code = {\def\tkz@below{#1}},
+ hsep/.code = {\setlength\tkz@hsep{#1}},
+ pre/.code = {\def\code@pre{#1}},
+ post/.code = {\def\code@post{#1}},
+ latex/.code = {\setlength\tkzexamplewidth{#1}%
+ \def\code@preadd{\begin{minipage}{#1}}%
+ \def\code@postadd{\end{minipage}}},
+ vbox/.code = {\code@vboxtrue
+ \def\code@preadd{\noindent
+ \vbox\bgroup
+ \setlength{\hsize}{\linewidth-6pt}%
+ }%
+ \def\code@postadd{\egroup}},
+ every tkzexample/.style={width=6cm},
+}%
+\def\code@size{}%
+\def\code@pre{}%
+\def\code@post{}%
+\def\code@preadd{}%
+\def\code@postadd{}%
+\def\tkz@above{\par}%
+\def\tkz@below{\par}%
+
+% execution du code
+\def\tkz@result{%
+ \begin{minipage}[t]{\wd\tkzexamplebox}%
+ \hrule width0pt
+ \code@size
+ \box\tkzexamplebox
+ \leavevmode
+ \end{minipage}%
+}%
+
+\newcommand\tkz@code[1]{%
+\begin{minipage}[t]{\code@width}{%
+\color{textcodecolor}%
+\parskip=\z@
+\hrule width\z@
+\vskip-.25em
+\let\do\@makeother
+\dospecials
+\frenchspacing
+\code@style\code@size
+\obeylines
+\@vobeyspaces
+\@tempswafalse
+\ifnum@show
+ \typesetcommentnum
+ \def\par{%
+ \if@tempswa
+ \leavevmode\null\@@par\penalty\interlinepenalty
+ \everypar{\setlength\fboxsep{1pt}%
+ \noindent\parskip=0pt%
+ \llap{\colorbox{numbackground}{\textcolor{numcolor}{%
+ \footnotesize\number\value{code@cnt}}}\enspace}%
+ \stepcounter{code@cnt}}%
+ \else
+ \@tempswatrue
+ \ifhmode\@@par\penalty\interlinepenalty\fi%
+ \fi
+ }%
+ \everypar{\setlength\fboxsep{1pt}%
+ \noindent\parskip=0pt%
+ \llap{\colorbox{numbackground}{\textcolor{numcolor}{%
+ \footnotesize\number\value{code@cnt}}}\enspace}%
+ \stepcounter{code@cnt}%
+ }%
+\else
+ \typesetcomment
+ \def\par{%
+ \if@tempswa
+ \leavevmode\null\@@par\penalty\interlinepenalty%
+ \else
+ \@tempswatrue
+ \ifhmode\@@par\penalty\interlinepenalty\fi%
+ \fi
+ }%
+\fi
+\obeylines
+\ifcode@saved\input{#1}\else#1\fi%
+}% end of content for the minipage
+\end{minipage}%
+}%
+
+\newcommand\tkz@codesplit[1]{%
+\begin{mdframed}[linewidth = \tkz@linewidth,
+ leftmargin = \tkz@leftmargin,
+ rightmargin = \tkz@rightmargin,
+ backgroundcolor = codeonlybackground,
+ innerleftmargin = \tkz@innerleftmargin,
+ innertopmargin = \tkz@innertopmargin]
+\begingroup
+\color{textcodecolor}%
+\parskip=\z@
+\hrule width0pt
+\let\do\@makeother
+\dospecials
+\frenchspacing
+\code@style\code@size
+\obeylines
+\@vobeyspaces
+\@tempswafalse
+\ifnum@show
+\typesetcommentnum
+\def\par{%
+ \if@tempswa
+ \leavevmode\null\@@par\penalty\interlinepenalty
+ \everypar{\setlength\fboxsep{1pt}%
+ \noindent\parskip=0pt%
+ \llap{\colorbox{numbackground}{\textcolor{numcolor}{%
+ \footnotesize\number\value{code@cnt}}}\enspace}%
+ \stepcounter{code@cnt}}%
+ \else
+ \@tempswatrue
+ \ifhmode\@@par\penalty\interlinepenalty\fi
+ \fi
+}%
+\everypar{\setlength\fboxsep{1pt}%
+ \noindent\parskip=0pt%
+ \llap{\colorbox{numbackground}{\textcolor{numcolor}{%
+ \footnotesize\number\value{code@cnt}}}\enspace}%
+ \stepcounter{code@cnt}%
+ }%
+\else
+\typesetcomment%
+\def\par{%
+ \if@tempswa
+ \leavevmode\null\@@par\penalty\interlinepenalty%
+ \else
+ \@tempswatrue
+ \ifhmode\@@par\penalty\interlinepenalty\fi%
+ \fi
+}%
+\fi
+\obeylines
+\ifcode@saved\input{#1}\else #1\fi
+\endgroup
+\end{mdframed}%
+}%
+
+
+\def\tkzref{\arabic{section}-\arabic{subsection}-\arabic{subsubsection}}%
+\def\tkzFileSavedPrefix{tkzFile}%
+\def\tkz@File@Saved@Name{\tkzFileSavedPrefix-\tkzref}%
+
+\iftkzcodesaved
+\def\tkzexample[#1]{%
+\code@executetrue
+\normalsize
+\pgfkeys{/tkzexample/.cd,
+ right margin = 0pt,
+ left margin = 0pt,
+ line frame width = 0,
+ inner left margin = 0 pt,
+ inner right margin = 0 pt,
+ inner top margin = 6 pt,
+ inner bottom margin = 0 pt}
+\pgfqkeys{/tkzexample}{every tkzexample,#1}%
+\parindent0pt
+\bgroup
+\VerbatimEnvironment
+\killienc\begin{VerbatimOut}{\tkz@File@Saved@Name.tex}}%
+\def\endtkzexample{\end{VerbatimOut}%
+\egroup
+\ifcode@execute
+\setbox\tkzexamplebox=\hbox{\input{\tkz@File@Saved@Name.tex}}%
+\ifdim\wd\tkzexamplebox>\tkzexamplewidth%
+ \gdef\code@mid{\parskip2pt\par}%
+% \hrule
+ %\def\code@mid{\hfill}%
+ \gdef\code@width{\linewidth}%
+\else
+ \ifdim\tkz@hsep=0pt
+ \gdef\code@mid{\hfill}%
+ \else
+ \gdef\code@mid{\hskip\tkz@hsep}%
+ \fi
+ \gdef\code@width{\linewidth-1.5em-\tkz@hsep-\tkzexamplewidth}%
+ \fi
+ \par\noindent
+ \code@savedtrue
+ \ifcode@overhang
+ \tkz@frameset{codebackground}{\tkz@code{\tkz@File@Saved@Name.tex}}%
+ \else
+ \tkz@frameltxset{graphicbackground}{\tkz@result}%
+ \fi
+ \else% pas de code pas clair
+ \gdef\code@mid{\hfill}%
+ \gdef\code@width{\linewidth}%
+ \gdef\code@end{}%
+ \fi% fin pas de code
+ \code@mid
+ \ifcode@overhang\tkz@frameltxset{graphicbackground}{\tkz@result}%
+ \else
+ \tkz@frameset{codebackground}{\tkz@code{\tkz@File@Saved@Name.tex}}%
+ \fi
+\tkz@below
+}%
+\else% end of code saved code et result ?
+\def\tkzexample[#1]{%
+\begingroup
+\code@executetrue
+\pgfkeys{/tkzexample/.cd,
+ right margin = 0pt,
+ left margin = 0pt,
+ line frame width = 0,
+ inner left margin = 0 pt,
+ inner right margin = 0 pt,
+ inner top margin = 6 pt,
+ inner bottom margin = 0 pt,}
+\pgfqkeys{/tkzexample}{every tkzexample,#1}%
+\parindent0pt
+\begingroup
+%\tkz@above
+\let\do\@makeother
+\dospecials
+\obeylines
+\@vobeyspaces
+\catcode`\%=13 %
+\catcode`\^^M=13 %
+\find@tkzexample}% #1 est tout ce qui se trouve dans l'environnement
+\def\endoftkzexample#1{%
+\endgroup
+\ifcode@execute % et \fcode@save ??
+ \setbox\tkzexamplebox=\hbox{%
+ {\commenthandler
+ \protected@xdef\code@temp{#1}}%
+ \catcode`\^^M=9 %
+ {\ignorespaces\code@preadd\code@pre
+ \expandafter\scantokens\expandafter{\code@temp\ignorespaces}%
+ \code@post\code@postadd\ignorespaces}%
+ }%
+ \ifdim\wd\tkzexamplebox>\tkzexamplewidth
+ \def\code@mid{\par}%
+ \def\code@width{\linewidth-6pt}%
+ \else
+ \ifdim\tkz@hsep=0pt
+ \def\code@mid{\hfill}%
+ \else
+ \def\code@mid{\hskip\tkz@hsep}%
+ \fi%
+ \def\code@width{\linewidth-1.5em-\tkz@hsep-\tkzexamplewidth}%
+ \fi%
+ \par\noindent
+ \ifcode@overhang
+ \tkz@frameset{codebackground}{\tkz@code{#1}}%
+ \else
+ \tkz@frameltxset{graphicbackground}{\tkz@result}%
+ \fi
+\else% pas de code execute
+ \def\code@mid{}%
+ \def\code@width{\linewidth-6pt}%
+ \def\code@end{}%
+ \fi% fin pas de code
+ \code@mid%
+ \ifcode@overhang%
+ \ifcode@execute\tkz@frameltxset{graphicbackground}{\tkz@result}\fi
+ \else%
+\ifcode@execute\tkz@frameset{codebackground}{\tkz@code{#1}}\else
+ \par\vskip1em
+ \tkz@codesplit{#1}
+ %\tkz@frameset{codebackground}{\tkz@code{#1}}%
+\fi
+ \fi
+ \tkz@below
+ \end{tkzexample}%
+}%
+\def\endtkzexample{\endgroup}%
+\fi
+%<--------------------------------------------------------------------------->
+\pgfqkeys{/tkzltxexample}{%
+ width/.code = {\setlength\tkzltxexamplewidth{#1}},
+ code/.code = {\colorlet{codeonlybackground}{#1}},
+ show num/.is if = num@show,
+ num/.code = {\num@showtrue\setcounter{code@cnt}{1}},
+ global num/.code = {\num@showtrue},
+ numcolor/.code = {\colorlet{numcolor}{#1}},
+ numbkgcolor/.code = {\colorlet{numbackground}{#1}},
+ normal/.code = {\def\code@size{\normalsize}},
+ small/.code = {\def\code@size{\small}},
+ very small/.code = {\def\code@size{\footnotesize}},
+ right margin/.code = {\def\tkz@rightmargin{#1}},
+ left margin/.code = {\def\tkz@leftmargin{#1}},
+ inner left margin/.code = {\def\tkz@innerleftmargin{#1}},
+ inner right margin/.code = {\def\tkz@innerrightmargin{#1}},
+ inner top margin/.code = {\def\tkz@innertopmargin{#1}},
+ inner bottom margin/.code = {\def\tkz@innerbottommargin{#1}},
+ line frame width/.code = {\def\tkz@linewidth{#1}},
+ hsep/.code = {\def\tkz@hsep{#1}},
+ typeset listing/.code = {#1},
+ frame code/.code = {\def\tkz@frameset{\fcolorbox{#1}}},
+ ignorespaces/.code = {\let\@gobble@till@return =%
+ \@gobble@till@return@ignore},
+ leave comments/.code = {\def\code@catcode@hook{\catcode`\%=12}%
+ \let\commenthandler=\relax%
+ \let\typesetcomment=\relax},
+ every tkzltxexample/.style = {width=8cm},
+ vbox/.code = {\def\code@preadd{\noindent
+ \vbox\bgroup\setlength{\hsize}{\linewidth}}%
+ \def\code@postadd{\egroup}}%
+}
+\def\code@size{}%
+% \def\code@pre{}
+\def\code@post{}%
+\def\code@pre{}%
+\def\code@post{}%
+\def\code@catcode@hook{}%
+
+\newdimen\tkzltxexamplewidth
+\newbox\tkzltxexamplebox
+
+\def\tkzltxexample[#1]{%
+\begingroup
+\pgfkeys{/tkzltxexample/.cd,
+ right margin = 0pt,
+ left margin = 0pt,
+ line frame width = 0,
+ inner left margin = 0 pt,
+ inner right margin = 0 pt,
+ inner top margin = 6 pt,
+ inner bottom margin = 0 pt,}
+\pgfqkeys{/tkzltxexample}{every tkzltxexample,#1}%
+\parindent0pt
+\begingroup%
+\let\do\@makeother
+\dospecials
+\obeylines
+\@vobeyspaces
+\catcode`\%=13 %
+\catcode`\^^M=13 %
+\code@catcode@hook%
+\relax%
+\find@tkzltxexample}
+\def\endoftkzltxexample#1{%
+\endgroup%
+\def\code@end{}%
+\par\vskip1em
+\tkz@codesplit{#1}%
+\par
+\code@post
+\end{tkzltxexample}%
+}%
+
+\def\endtkzltxexample{\endgroup}
+
+
+
+\newcommand\killienc{}
+\@tempcnta128
+\@whilenum\@tempcnta<\@cclvi\do{%
+ \edef\killienc{\killienc\catcode\the\@tempcnta=12}%
+ \advance\@tempcnta\@ne}
+
+\def\tkz@ref{\arabic{section}-\arabic{subsection}-\arabic{subsubsection}}
+\def\tkz@File@Saved@Name{\tkzFileSavedPrefix-\tkz@ref}
+\pgfkeys{
+/tkzsavedcode/.cd,
+ prefix/.code = {\def\tkzFileSavedPrefix{#1}}}
+
+\newcommand{\tkzSavedCode}[1][]{%
+\pgfkeys{%
+tkzsavedcode/.cd,
+ prefix = tkzFile}
+\pgfqkeys{/tkzsavedcode}{#1}
+\renewenvironment{tkzexample}[1][]{%
+\killienc\VerbatimOut{\tkz@File@Saved@Name.tex}}{%
+\endVerbatimOut}}
+
+% \renewenvironment{tkzexample}[1][]{%
+% \killienc \VerbatimOut{tkzeuc-\tkzref.tex}%
+% }{%
+% \endVerbatimOut
+% }
+% \fi
+\endinput
+