diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/tkz-doc |
Initial commit
Diffstat (limited to 'macros/latex/contrib/tkz-doc')
-rw-r--r-- | macros/latex/contrib/tkz-doc/README | 2 | ||||
-rw-r--r-- | macros/latex/contrib/tkz-doc/tkz-doc.cls | 485 | ||||
-rw-r--r-- | macros/latex/contrib/tkz-doc/tkzexample.sty | 497 |
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 + |