diff options
Diffstat (limited to 'macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex')
-rw-r--r-- | macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex | 333 |
1 files changed, 333 insertions, 0 deletions
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex new file mode 100644 index 0000000000..c6d706417a --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex @@ -0,0 +1,333 @@ +% proflycee-tools-piton.tex +% Copyright 2023 Cédric Pierquet +% 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. +% The latest version of this license is in +% 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. + +%2.5.8 Styles alternatifs + Modification marges + +\RequirePackage{iftex} + +%%------STYLE PYTHON LST +\ifluatex +\tcbuselibrary{listings} +\lstdefinelanguage{langnat}{% + keywords={}, + inputencoding=utf8, + comment=[l]{}} +\lstdefinestyle{PLpython}{% + language = python, + inputencoding = utf8, + basicstyle = \ttfamily\footnotesize, + keywordstyle = \color{ForestGreen}, + keywordstyle = [2]\color{magenta}, + commentstyle = \color{gray}\itshape, + stringstyle = \color{red!75}, + numberstyle = \scriptsize\ttfamily\color{darkgray}, + aboveskip = 0pt, + belowskip = 0pt, + tabsize = 4, + showstringspaces = false, + columns = fullflexible, + keepspaces = true, + breaklines = true, + breakatwhitespace = true +} +\else +\tcbuselibrary{listingsutf8} +\lstdefinelanguage{langnat}{% + keywords={}, + inputencoding=utf8/latin1, + comment=[l]{}} +\lstdefinestyle{PLpython}{% + language = python, + inputencoding = utf8/latin1, + basicstyle = \ttfamily\footnotesize, + keywordstyle = \color{ForestGreen}, + keywordstyle = [2]\color{magenta}, + commentstyle = \color{gray}\itshape, + stringstyle = \color{red!75}, + numberstyle = \scriptsize\ttfamily\color{darkgray}, + aboveskip = 0pt, + belowskip = 0pt, + tabsize = 4, + showstringspaces = false, + columns = fullflexible, + keepspaces = true, + breaklines = true, + breakatwhitespace = true +} +\fi + +%%------PYTHONLISTINGS +%v1 +\tcbset{stylepythonlst/.style={% + enhanced,boxrule=1.25pt,% + left=0.6em, + sharp corners=downhill,arc=12pt, + before skip=\baselineskip,after skip=\baselineskip,% + top=\baselineskip,bottom=1mm,right=5mm, + attach boxed title to top right={yshift=-\tcboxedtitleheight}, + boxed title style={ + size=small,colback=ForestGreen!25,boxrule=1.25pt, + colframe=Green,boxsep=1.25pt, + sharp corners=downhill, + arc=12pt, + top=2pt,bottom=1pt,left=6pt,right=6pt + }, + colframe=Green,colback=ForestGreen!5,% + fonttitle=\color{ForestGreen}\itshape\ttfamily\footnotesize, + title={\scriptsize\faPython}\:Code Python\vphantom{p}, + watermark text={\faPython},watermark opacity=0.175,watermark zoom=0.50, + listing only,listing engine=listings,% + } +} + +\tcbset{stylepythonlstnolineos/.style={% + stylepythonlst, + listing options={style=PLpython,xleftmargin=0pt,numbers=none} + } +} + +\tcbset{stylepythonlstlineos/.style={% + stylepythonlst, + listing options={style=PLpython,xleftmargin=16pt,numbers=left} + } +} + +\NewTCBListing{CodePythonLst}{ s O{\linewidth} m }{% * off pour numéros de lignes + {largeur} + <options tcbox> + \IfBooleanTF{#1}{stylepythonlstnolineos}{stylepythonlstlineos}, + width=#2,#3 +} + +\NewTCBInputListing{\CodePythonLstFichier}{ s O{\linewidth} m m }{ + \IfBooleanTF{#1}{stylepythonlstnolineos}{stylepythonlstlineos}, + width=#2,#3, + listing file={#4} +} + +%v2 +\tcbset{StylPythonB/.style={% + enhanced,boxrule=0.75pt,colframe=DarkGray!50!Black,% + sharp corners,top=0mm,bottom=0mm,left=0.2em,right=5mm,% + before skip=\baselineskip,after skip=\baselineskip,% + colback=white, + fontupper=\footnotesize,fontlower=\footnotesize,% + listing only,listing engine=listings,% + watermark text={\faPython},watermark opacity=0.25,watermark zoom=0.50,% + title={{\scriptsize\faCode} Code Python}, + lefttitle=0.4em, + fonttitle=\bfseries\footnotesize\sffamily,colbacktitle=DarkGray!50!Black + } +} + +\tcbset{StylPythonBno/.style={% + StylPythonB, + listing options={style=PLpython,xleftmargin=0pt,numbers=none} + } +} + +\tcbset{StylPythonByes/.style={% + StylPythonB, + listing options={style=PLpython,xleftmargin=16pt,numbers=left},% + underlay={% + \begin{tcbclipinterior} + \filldraw[lightgray!25] (interior.south west) rectangle ([xshift=1.3em]interior.north west) ; + \end{tcbclipinterior}% + } + } +} + +\NewTCBListing{CodePythonLstAlt}{ s O{\linewidth} m }{% * off pour numéros de lignes + {options keys} + <options tcbox> + \IfBooleanTF{#1}{StylPythonBno}{StylPythonByes},width=#2,#3 +} + +\NewTCBInputListing{\CodePythonLstFichierAlt}{ s O{\linewidth} m m }{ + \IfBooleanTF{#1}{StylPythonBno}{StylPythonByes}, + width=#2,#3, + listing file={#4} +} + +%%------PSEUDOCODE +%language pseudocode listings +\lstdefinestyle{pseudocodePL}{% + language = langnat, + basicstyle = \footnotesize\ttfamily, + numberstyle = \scriptsize\ttfamily\color{gray}, + keywordstyle = \bfseries, + stringstyle = \color{red!75}, + keepspaces = true, + tabsize = 4, + numbersep = 10pt, + xleftmargin = 14pt, + numbers = left, + morestring = [b]", + showstringspaces = false, + escapeinside = {(*}{*)} +} + +\lstdefinestyle{pseudocodenoPL}{% + language = langnat, + basicstyle = \footnotesize\ttfamily, + numberstyle = \scriptsize\ttfamily\color{gray}, + keywordstyle = \bfseries, + stringstyle = \color{red!75}, + keepspaces = true, + tabsize = 4, + numbersep = 10pt, + numbers = none, + showstringspaces = false, + morestring = [b]", + escapeinside = {(*}{*)} +} + +%style tcbox pseudocode avec bannière hautdroite +\tcbset{stylepseudocodePL/.style={% + enhanced,boxrule=1.25pt,sharp corners=downhill,arc=12pt, + before skip=\baselineskip,after skip=\baselineskip,leftupper=10pt,top=\baselineskip,bottom=1mm,rightupper=5mm,% + attach boxed title to top right={yshift=-\tcboxedtitleheight}, + boxed title style={ + size=small,colback=gray!25,boxrule=1.25pt, + colframe=darkgray,boxsep=1.25pt, + sharp corners=downhill, + arc=12pt, + top=2pt,bottom=1pt,left=6pt,right=6pt + }, + fonttitle=\color{darkgray}\ttfamily\footnotesize, + title={\scriptsize\faFileCode}\:\textit{Pseudo-Code}\vphantom{p}, + watermark text={\faCode},watermark opacity=0.175,watermark zoom=0.50, + } +} + +\ifluatex + \newcommand\algomathttPL[1]{\symtt{#1}} +\else + \newcommand\algomathttPL[1]{\mathtt{#1}} +\fi + +\DeclareTCBListing{PseudoCode}{ s O{12cm} m }{% étoilée sans numéro, <taille> puis option... + width=#2,#3, + stylepseudocodePL, + listing only,listing engine=listings, + listing options={ + style=\IfBooleanTF{#1}{pseudocodenoPL}{pseudocodePL},%version étoilée sans numéro de lignes + aboveskip=0pt,belowskip=0pt, + columns=fullflexible, + literate={é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1% + {ú}{{\'u}}1 {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1% + {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1% + {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1% + {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1% + {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1% + {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1% + {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1% + {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1% + {ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1% + {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1% + {€}{{\texteuro}}1 {£}{{\pounds}}1% + {=}{\textleftarrow}1 {==}{=}1% + {*}{$\algomathttPL{\times}$}{1}% + } +} + +%style tcbox pseudocode v2 +\lstdefinestyle{pseudocodePLalt}{% + language = langnat, + basicstyle = \footnotesize\ttfamily, + numberstyle = \scriptsize\ttfamily\color{gray}, + keywordstyle = \bfseries, + stringstyle = \color{red!75}, + keepspaces = true, + tabsize = 4, + xleftmargin = 1.5em, + numbers = left, + morestring = [b]", + showstringspaces = false, + escapeinside = {(*}{*)} +} + +\lstdefinestyle{pseudocodenoPLalt}{% + language = langnat, + basicstyle = \footnotesize\ttfamily, + numberstyle = \scriptsize\ttfamily\color{gray}, + keywordstyle = \bfseries, + stringstyle = \color{red!75}, + keepspaces = true, + tabsize = 4, + numbers = none, + showstringspaces = false, + morestring = [b]", + escapeinside = {(*}{*)} +} + +\tcbset{stylepseudocodePLalt/.style={% + enhanced,boxrule=0.75pt,colframe=DarkGray!50!Black,% + sharp corners,top=0mm,bottom=0mm,left=0.4em,right=5mm,% + before skip=\baselineskip,after skip=\baselineskip,% + colback=white, + fontupper=\footnotesize,fontlower=\footnotesize,% + listing only,listing engine=listings,% + watermark text={\faCode},watermark opacity=0.25,watermark zoom=0.50,% + title={{\scriptsize\faCode} PseudoCode}, + lefttitle=0.4em, + fonttitle=\bfseries\footnotesize\sffamily,colbacktitle=DarkGray!50!Black + } +} + +\tcbset{stylepseudocodePLaltlines/.style={% + underlay={% + \begin{tcbclipinterior} + \filldraw[lightgray!25] (interior.south west) rectangle ([xshift=1.3em]interior.north west) ; + \end{tcbclipinterior}% + } + } +} + +\DeclareTCBListing{PseudoCodeAlt}{ s O{12cm} m }{% étoilée sans numéro, <taille> puis option... + width=#2,#3, + stylepseudocodePLalt, + listing only,listing engine=listings, + \IfBooleanTF{#1}{}{stylepseudocodePLaltlines}, + listing options={ + style=\IfBooleanTF{#1}{pseudocodenoPLalt}{pseudocodePLalt},%version étoilée sans numéro de lignes + aboveskip=2pt,belowskip=2pt, + columns=fullflexible, + literate={é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1% + {ú}{{\'u}}1 {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1% + {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1% + {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1% + {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1% + {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1% + {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1% + {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1% + {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1% + {ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1% + {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1% + {€}{{\texteuro}}1 {£}{{\pounds}}1% + {=}{\textleftarrow}1 {==}{=}1% + {*}{$\algomathttPL{\times}$}{1}% + } +} + +%%------PRESENTATIONDECODES CLASSIQUES +\NewTCBListing{PresentationCode}{ O{ForestGreen} m }{% + sharp corners=downhill,enhanced,arc=12pt,skin=bicolor,% + colback=#1!5!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,% + },% + fonttitle=\color{#1!90!black}\itshape\ttfamily\footnotesize,% + listing options={% + style=tcblatex,basicstyle=\footnotesize\ttfamily,% + keywordstyle=\bfseries\color{Blue},tabsize=2,% + },% + #2 +} + +\endinput
\ No newline at end of file |