diff options
Diffstat (limited to 'macros/latex/contrib/tkz-doc/latex/tkz-doc.cls')
-rw-r--r-- | macros/latex/contrib/tkz-doc/latex/tkz-doc.cls | 306 |
1 files changed, 257 insertions, 49 deletions
diff --git a/macros/latex/contrib/tkz-doc/latex/tkz-doc.cls b/macros/latex/contrib/tkz-doc/latex/tkz-doc.cls index 1b74679f6c..6fb0053d72 100644 --- a/macros/latex/contrib/tkz-doc/latex/tkz-doc.cls +++ b/macros/latex/contrib/tkz-doc/latex/tkz-doc.cls @@ -1,6 +1,6 @@ % tkz-doc.cls % encoding: utf8 -% Copyright 2020 Alain Matthes +% Copyright 2022 Alain Matthes % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. @@ -8,20 +8,23 @@ % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2005/12/01 or later. +% % This work has the LPPL maintenance status “maintained”. +% % The Current Maintainer of this work is Alain Matthes. +% % tkz-doc class for use with the tkz documentation % ( AlterMundus Collection ). % -%% Objet : Classe LaTeX et Styles pour créer des documentations. +%% Objet : Classe LaTeX and Styles to create documentation. %<-------------- Définitions relatives au package ---------------------------> \newcommand*{\PackageName}{tkz-doc} -\newcommand*{\PackageVersion}{1.43c} -\newcommand*{\filedate}{2020/04/10} +\newcommand*{\PackageVersion}{1.45c} +\newcommand*{\filedate}{2022/07/14} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} -%<---------------------- Identification Part --------------------------------> +%<-------------------- Identification Part --------------------------------> \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesClass{\PackageName}[% \filedate\space Version:\space\PackageVersion\space % @@ -36,15 +39,25 @@ % svgnames loads a set of 151 rgb color names % obsolete usenames \PassOptionsToPackage{dvipsnames,svgnames}{xcolor} -%<-------------------------------------------------------------------------->- +%<--------------------------------------------------------------------------> \KOMAoptions{twoside=false} -%<-------------------------------------------------------------------------->- -\RequirePackage{framed,eso-pic} +%<--------------------------------------------------------------------------> +\RequirePackage{tikz} +\usetikzlibrary{decorations.shapes, + decorations.text, + decorations.pathreplacing, + decorations.pathmorphing, + decorations.markings, + shadows} +\RequirePackage{ragged2e} \RequirePackage[bottom,stable,ragged]{footmisc} +\raggedbottom +\RequirePackage{framed,eso-pic} \RequirePackage[automark,markcase=ignoreuppercase]{scrlayer-scrpage} -%<------------- define important words ----------------------------------> -\InputIfFileExists{tkz-doc.cfg}{\typeout{Local configuration file tkz-doc.cfg found and used}}{\typeout{tkz-doc.cfg not found}} - %<-------------------------------------------------------------------------->- +\RequirePackage[yyyymmdd]{datetime} +\RequirePackage{booktabs,cellspace,multicol} +%<------------- define important words -------------------------------------> +\InputIfFileExists{tkz-doc.cfg}{\typeout{Local configuration file tkz-doc.cfg found and used}}{\typeout{tkz-doc.cfg not found}} %<--------------------------------------------------------------------------> \pagestyle{scrheadings} \clearscrheadings \clearscrplain @@ -56,11 +69,9 @@ \automark[subsection]{section} \KOMAoptions{headsepline=.4pt} \addtokomafont{headsepline}{\color{sectioncolor}} - +\setheadwidth[0pt]{text} \KOMAoptions{footsepline=.4pt} \addtokomafont{footsepline}{\color{sectioncolor}} - -\setheadwidth[0pt]{text} \setfootwidth[0pt]{text} \renewcommand{\footnoterule}{\vspace*{-3pt}{% \color{sectioncolor}\hrule width 2in height 0.4pt}\vspace*{2.6pt}} @@ -81,18 +92,10 @@ \setcounter{secnumdepth}{3}% \setcounter{tocdepth}{3} %<------------------ Éxécution et chargement ----------------------------- -\RequirePackage{tikz} -\usetikzlibrary{decorations.shapes, - decorations.text, - decorations.pathreplacing, - decorations.pathmorphing, - decorations.markings, - shadows} -\RequirePackage{tabularx,ragged2e} -\RequirePackage[bottom,stable,ragged]{footmisc} -\raggedbottom -\newbox\tkzbox + + %<--------------- some macros -------------------------------------------- +\newbox\tkzbox \def\nodeshadowedone(#1,#2)#3{% \node[myblue,above,inner sep=0pt]{\global\setbox\tkzbox=\hbox{#3}\copy\tkzbox}; \node[above,yscale=#2,inner sep=0pt,xslant=#1,myblue!60]{\box\tkzbox}; @@ -103,12 +106,8 @@ \long\def\defoffile#1{\protected@xdef\@defoffile{\@defoffile{#1}}} \let\@defoffile\@empty %<------------------------------------------------------------------------- -\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}} +\newcommand*{\addbs}[1]{\texttt{\textbackslash#1}} %\cs parfois ?? + %<-------------------------- NewMacroBox -----------------------------------> \newcommand*{\ActivBoxName}{} \newenvironment{NewMacroBox}[2]{% @@ -146,9 +145,9 @@ }% %<----------------- end NewMacroBox -----------------------------------------> + %<----------------------------- NewEnvBox -----------------------------------> \let\fram@d=\MakeFramed \let\endfram@d=\endMakeFramed - \newenvironment{NewEnvBox}[1]{% \parindent=0pt \renewcommand*{\ActivBoxName}{#1} @@ -186,25 +185,69 @@ \par\medskip } %<------------------- end NewEnvBox -----------------------------------------> + + + +%<--------------% Define mybox and box title style-----------------------------> +% We need to save the node +% Every append after command might be useful to have this code + +\def\savelastnode{\pgfextra\edef\tmpA{\tikzlastnode}\endpgfextra} +\def\restorelastnode{\pgfextra\edef\tikzlastnode{\tmpA}\endpgfextra} + +\tikzstyle{mybox} = [draw=blue!50!black, very thick, + rectangle, rounded corners, inner sep=10pt, inner ysep=20pt,text=darkgray] +\tikzstyle{fancytitle} =[fill=MidnightBlue!20, text=blue!50!black,rounded corners] +\tikzstyle{title} = [append after command={% + \savelastnode node[fancytitle,right=10pt] at (\tikzlastnode.north west)% + {#1}\restorelastnode}] +%<------------------- end mybox -----------------------------------------> + + +%--------------- mots importants et macros --------------------------------- +\providecommand*{\BS}{\texttt{\char92}} +\providecommand*{\tkz}{T{\em k}Z} +\providecommand*{\PGF}{\tkzname{PGF}} +\providecommand*{\TIKZ}{Ti\textsl{k}Z} +\providecommand*{\tikzname}{Ti{\em k}Z} +\providecommand*{\pgfname}{\textsc{pgf}} +\providecommand*{\tkzdft}[1]{{\texttt{#1}}} +\providecommand*{\tkzAttention}[3]{\ \\\llap{\textcolor{#3}{#1\hskip #2}}} +\providecommand*{\tkzHand}{\ \\\llap{\textcolor{red}{\lefthand\hskip1em}}} +\providecommand*{\tkzBomb}{\ \\\llap{\textcolor{red}{\bomb\hskip1em}}} +\providecommand*{\tkzTwoBomb}{\ \\\llap{\textcolor{red}{\bomb\ \bomb\hskip1em}}} +\providecommand*{\tkzname}[1]{\textbf{\texttt{\textcolor{black}{#1}}}} +\providecommand*{\tkzimp}[1]{\textbf{#1}} +\providecommand*{\tkzHandBomb}{\ \\\llap{\textcolor{red}{\lefthand\ \bomb\hskip1em}}} +\providecommand\LaTeX{L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em\TeX} +\renewcommand\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\spacefactor1000} +\providecommand\LATEX{\LaTeX} +\providecommand\TEX{\TeX} + %<----------------------------- def macro arg opt----------------------------> -\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}} +\def\cmd@to@cs#1#2{\char\number`#2\relax} +\def\cmd#1{\cs{\expandafter\cmd@to@cs\string#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{myblue}#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\}} +\providecommand\oarg[1]{{\ttfamily[}\opt{\meta{#1}}{\ttfamily]}} +\providecommand\ooarg[1]{{\ttfamily[}\meta{#1}{\ttfamily]}} +\providecommand\opt[1]{{\color{myblue}#1}} +\providecommand*{\var}[1]{\{\opt{\meta{#1}}\}} +\providecommand*{\varp}[1]{\big(\opt{\meta{#1}}\big)} +\providecommand*{\vara}[1]{\{#1\}} + % -- Macros pour indexation ------------------------------------------------- +% It is necessary to think about \protect \newcommand*{\tkzNamePack}[1]{\NamePack{#1}} \newcommand*{\tkzNameMacro}[1]{\tkzcname{#1}\Imacro{#1}} \newcommand*{\tkzNameEnv}[1]{\tkzname{#1}\Ienv{#1}} \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*{\IstyleEnv}[2]{\index{#1_3@\texttt{#1: styles}!\texttt{#2}}} +\newcommand*{\Iaccent}[2]{\index{#1@\texttt{#2}}} \newcommand*{\IargNameEnv}[2]{\texttt{#2}\index{#1_2@\texttt{#1: arguments}!\texttt{#2}}} \newcommand*{\IoptEnv}[2]{\index{#1_3@\texttt{#1: options}!\texttt{#2}}} \newcommand*{\IoptNameEnv}[2]{\texttt{#2}\index{#1_3@\texttt{#1: options}!\texttt{#2}}} @@ -214,8 +257,6 @@ \newcommand*{\IoptName}[2]{\texttt{#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]{\texttt{\textcolor{MidnightBlue}{#1}}\index{Ti\emph{k}Z Library !#1@\texttt{#1}}} \newcommand*{\NameSys}[1]{\texttt{#1}\index{Operating System !#1@\texttt{#1}}} \newcommand*{\NameDist}[1]{\texttt{\textcolor{MidnightBlue}{#1}}\index{TeX Distributions !#1@\texttt{#1}}} @@ -225,10 +266,36 @@ \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*{\tkzcname}[1]{\Imacro{#1}\textbf{\texttt{\textcolor{MidnightBlue}{% - \textbackslash#1}}}} + \newcommand*{\tkzhname}[1]{\textbf{\texttt{\textcolor{MidnightBlue}{% \textbackslash#1}}}} +\newcommand*{\tkzNameSys}[1]{\texttt{\textcolor{MidnightBlue}{#1}}\index{Operating System !#1@\texttt{#1}}} +\newcommand*{\tkzNameDist}[1]{\texttt{\textcolor{MidnightBlue}{#1}}\index{TeX Distributions !#1@\texttt{#1}}} \newcommand{\red}{\color{BrickRed}} +% print #1 but add index +\newcommand*{\tkzcname}[1]{\Imacro{#1}\textbf{\texttt{\textcolor{MidnightBlue}{% + \textbackslash#1}}}} +\renewcommand\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX% + \spacefactor1000 } +\providecommand\LaTeX{% + L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em\TeX} +\providecommand\LATEX{\LaTeX} +% Some definitions useful in producing this sort of documentation: +\chardef\bslash=`\\ % p. 424, TeXbook +% Normalized (nonbold, nonitalic) tt font, to avoid font +% substitution warning messages if tt is used inside section +% headings and other places where odd font combinations might +% result. +\newcommand{\ntt}{\normalfont\ttfamily} +% command name +\newcommand{\cn}[1]{{\protect\ntt\bslash#1}} +% LaTeX package name +\newcommand{\pkg}[1]{{\protect\ntt#1}} +% File name +\newcommand{\fn}[1]{{\protect\ntt#1}} +% environment name +\newcommand{\env}[1]{{\protect\ntt#1}} +\hfuzz1pc % Don't bother to report overfull boxes if overage is < 1pc + \DeclareRobustCommand\meta[1]{% \ensuremath\langle @@ -278,8 +345,85 @@ \endgroup} %<--------------------------------------------------------------------- -\input{couverture} -%<--------- presentation première page ---------------------------------> +%<------------------ couverture. ------------------------------------ +\renewcommand\maketitle{% +\null +\AddToShipoutPicture*{% +\setlength\unitlength{1mm} +\put(0,0){% + \makebox(0,0)[lb]{% + \color{myblue!10}\rule{\paperwidth}{\paperheight}% + }% + }% +\put(0,0){% + \makebox(0,0)[lb]{% + \color{myblue}\rule{40mm}{\paperheight}% + }% + }% +\put(20,180){% 270 en portrait 180 en landscape + \rotatebox{90}{% + \makebox(0,0)[r]{% + \fontsize{30}{30}\color{myblue!50!white}% + \bfseries + \selectfont{\@title\ \tkzversionofpack}\hfill% + }% + }% + }% +\put(60,60){% +\begin{pgfpicture} +\pgfsys@transformxyscale{.5}{.5} +\pgfmathdeclarerandomlist{color}{{myblue}{DarkBlue}{SteelBlue}{blue}{MidnightBlue}} + \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){% 60,250 en portait 120,180 + \makebox(0,0)[l]{% + \begin{tikzpicture} + \nodeshadowedone(2,-1.25){\fontsize{60}{60} + \selectfont{\tkznamecollection}} + \end{tikzpicture} + }% + }% +\put(120,40){% + \makebox(0,0)[l]{% + \fontsize{17}{21} + \textcolor{sectioncolor}{\selectfont{\tkzauthorofpack}}% + }% + }% +\put(120,20){% + \makebox(0,0)[l]{% + \textcolor{sectioncolor}{\url{\tkzurlauthorcom}}% + }% + }% +\put(120,30){% + \makebox(0,0)[l]{% + \textcolor{sectioncolor}{\today \ \ Documentation V.\tkzversionofdoc}}% + }% + }% +\setcounter{footnote}{0}% +}% +%<----------------------- End cover ----------------------------> +%<--------- presentation first page ---------------------------------> \newcommand\presentation{% \thispagestyle{empty}% \par\vspace*{3 cm} @@ -293,8 +437,8 @@ \href{\tkzurlauthor}{% \rotatebox{90}{\hspace*{1.5em}{% \textcolor{sectioncolor}{\Huge \tkznamecollection}}}} - \textcolor{sectioncolor}{\rule{2pt}{\tkz@lx}}\quad% - \begin{minipage}[b]{.90\textwidth} + \textcolor{sectioncolor}{\rule{2pt}{\tkz@lx}}\quad% + \begin{minipage}[b]{.70\textwidth} {% \noindent\hfill \raggedleft\Large @@ -304,4 +448,68 @@ \par \end{minipage} } -\endinput +%<----------------------- Spc. Table ----------------------------> +\newcommand{\tkzsubf}[2]{% + {\small\begin{tabular}[t]{@{}c@{}} + #1\\#2 + \end{tabular}}% +} + +\renewcommand{\labelitemi}{--} +\setlength\parindent{0pt} +\RedeclareSectionCommand[tocnumwidth=3.5em]{part} +\RedeclareSectionCommand[tocnumwidth=3.5em]{section} +\RedeclareSectionCommand[tocnumwidth=3.5em]{subsection} +\RedeclareSectionCommand[tocnumwidth=3.5em]{subsubsection} +\renewcommand\partheadstartvskip{\clearpage\null\vfil} +\renewcommand\partheadmidvskip{\par\nobreak\vskip 20pt\thispagestyle{empty}} +\renewcommand\partheadendvskip{\vfil\clearpage} +\renewcommand\raggedpart{\centering} + +%<------------------------------------------------------------------------- +% code for booktab font change command see jos-astuces.rtfd +\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}}% + +% table inside the cover ----------------------------> + +\def\tkzTitleFrame#1{% +\edef\titleinframe{#1} +\author{\tkzauthorofpack} +\title{\tkznameofpack} +\date{\today} +\clearpage +\thispagestyle{empty} +\maketitle +\null +\if@tkzcadre +\AddToShipoutPicture*{% +\setlength\unitlength{1mm} +\if@landscape\def\tkz@posy{90}\def\tkz@posx{160}% +\else\def\tkz@posx{70}\def\tkz@posy{140} +\fi +\put(\tkz@posx,\tkz@posy){% +\begin{tikzpicture}[color=framecolor, +every node/.style={inner sep=0pt}] + \node[draw,line width=2pt,double,color=framecolor, + fill=myblue!10,opacity=.5,minimum width=300pt,minimum height=240pt] (vecbox) {}; + \node[text width=240pt] at (vecbox.center){% + \begin{center} + \color{MidnightBlue} + \fontsize{24}{48} + \selectfont\titleinframe% + \end{center}}; + \node[anchor=north west] at (vecbox.north west) +{\pgfornament[width=2cm]{61}}; +\node[anchor=north east] at (vecbox.north east) +{\pgfornament[width=2cm,symmetry=v]{61}}; +\node[anchor=south west] at (vecbox.south west) +{\pgfornament[width=2cm,symmetry=h]{61}}; +\node[anchor=south east] at (vecbox.south east) {\pgfornament[width=2cm,symmetry=c]{61}}; +\end{tikzpicture} +} +}\fi} +\endinput
\ No newline at end of file |