summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex')
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex333
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