summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/sim-os-menus
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-11-15 03:01:12 +0000
committerNorbert Preining <norbert@preining.info>2023-11-15 03:01:12 +0000
commitf5460c92605f1b3b17448b27ce53375157c3e4b1 (patch)
treec02171bfdb42a95c39a65edd35f227ae61c8de72 /macros/latex/contrib/sim-os-menus
parente20928a0f9f4a7faa8bb21915e761e11e34f04ff (diff)
CTAN sync 202311150301
Diffstat (limited to 'macros/latex/contrib/sim-os-menus')
-rw-r--r--macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdfbin0 -> 408693 bytes
-rw-r--r--macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex365
-rw-r--r--macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdfbin399589 -> 399623 bytes
-rw-r--r--macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex5
-rw-r--r--macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty546
5 files changed, 805 insertions, 111 deletions
diff --git a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdf b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdf
new file mode 100644
index 0000000000..530ec3542d
--- /dev/null
+++ b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex
new file mode 100644
index 0000000000..9793f8c7e1
--- /dev/null
+++ b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc-fr.tex
@@ -0,0 +1,365 @@
+% !TeX TXS-program:compile = txs:///pdflatex
+
+\documentclass[11pt,a4paper]{ltxdoc}
+\usepackage{sim-os-menus}
+\usepackage{graphicx}
+\usepackage{fancyvrb}
+\usepackage{fancyhdr}
+\usepackage{hyperref}
+\fancyhf{}
+\renewcommand{\headrulewidth}{0pt}
+%\rhead{\sffamily\small\affloetalab[Legende]}
+\lfoot{\sffamily\small [sim-os-menus]}
+\rfoot{\sffamily\small - \thepage{} -}
+%\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
+\usepackage{hologo}
+\providecommand\tikzlogo{Ti\textit{k}Z}
+\providecommand\TeXLive{\TeX{}Live\xspace}
+\providecommand\PSTricks{\textsf{PSTricks}\xspace}
+\let\pstricks\PSTricks
+\let\TikZ\tikzlogo
+
+\urlstyle{same}
+\hypersetup{pdfborder=0 0 0}
+\usepackage[margin=2cm]{geometry}
+\setlength{\parindent}{0pt}
+\def\TPversion{0.1.1}
+\def\TPdate{14/11/2023}
+\usepackage{soul}
+\sethlcolor{lightgray!25}
+\NewDocumentCommand\MontreCode{ m }{%
+ \hl{\vphantom{\texttt{pf}}\texttt{#1}}%
+}
+\usepackage[french]{babel}
+
+\begin{document}
+
+\pagestyle{fancy}
+
+\thispagestyle{empty}
+
+\begin{center}
+ \begin{minipage}{0.88\linewidth}
+ \begin{tcolorbox}[colframe=yellow,colback=yellow!15]
+ \begin{center}
+ \begin{tabular}{c}
+ {\Huge \texttt{sim-os-menus [fr]}}\\
+ \\
+ {\LARGE Présenter un 'terminal', une 'visionneuse'} \\
+ {\LARGE ou un 'menu contextuel' comme sur un ordi.} \\
+ \\
+ {\small \texttt{Version \TPversion{} -- \TPdate}}
+ \end{tabular}
+ \end{center}
+ \end{tcolorbox}
+\end{minipage}
+\end{center}
+
+\begin{center}
+ \begin{tabular}{c}
+ \texttt{Cédric Pierquet}\\
+ {\ttfamily c pierquet -- at -- outlook . fr}\\
+ \texttt{\url{https://github.com/cpierquet/sim-os-menus}} \\
+\end{tabular}
+\end{center}
+
+\hrule
+
+\vfill
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+\MenuContextuel[Police=\sffamily,ListeSeps={1,3/1/4/1/},ListeDecals={1,2,1,0}]{%
+ Menu1(>),Menu2,Menu3(>)(*),Menu4 §
+ SousMenuA(>),SousMenuB(>)(*) §
+ SousSousMenu1,SousSousMenu2,SousSousMenu3(>)(*),SousSousMenu4,SousSousMenu5(>) §
+ SSSSMa,SSSSMa(>)(*),SSSSMc §
+ OK(*),KO
+}
+\end{tcolorbox}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+\begin{TerminalUnix}[largeur=12cm,Align=center]{}
+test@DESKTOP:~$ ping -c 2 ctan.org
+PING ctan.org (5.35.249.60) 56(84) bytes of data.
+\end{TerminalUnix}
+\end{tcolorbox}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+\begin{VisionnIMG}[Largeur=12cm]{}
+\includegraphics[width=5cm]{example-image-b}
+\end{VisionnIMG}
+\end{tcolorbox}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+\begin{TerminalMac}[Largeur=14cm,Align=flush left]{}
+[test@server]$ ping -c 2 ctan.org
+PING ctan.org (5.35.249.60) 56(84) bytes of data.
+\end{TerminalMac}
+\end{tcolorbox}
+
+\vfill~
+
+\pagebreak
+
+\phantomsection
+
+\hypertarget{matoc}{}
+
+\tableofcontents
+
+\vspace*{5mm}
+
+\hrule
+
+\vspace*{5mm}
+
+\section{Introduction}
+
+\subsection{Description}
+
+Avec ce packages, il est possible de créer un \og faux \fg{} terminal, ou un \og faux \fg{} menu contextuel, ou encore une \og fausse \fg{} visionneuse, comme sur un écran d'ordinateur !
+
+Les styles sont \textit{globalement} fixés, mais quelques personnalisations sont possibles.
+
+\subsection{Chargement}
+
+Pour charger le package, il suffit d'ajouter dans le préambule :
+
+\begin{quote}
+\begin{verbatim}
+\usepackage{sim-os-menus}
+\end{verbatim}
+\end{quote}
+
+Les packages utiles, et chargés sont :
+
+\begin{itemize}
+ \item \MontreCode{tikz} (avec \MontreCode{calc,positioning}), \MontreCode{pgf}, \MontreCode{pgffor} ;
+ \item \MontreCode{calc}, \MontreCode{fontawesome5} ;
+ \item \MontreCode{simplekv}, \MontreCode{xintexpr}, \MontreCode{listofitems}, \MontreCode{xstring} ;
+ \item \MontreCode{settobox}, \MontreCode{tabularray} ;
+ \item \MontreCode{tcolorbox} (avec \MontreCode{breakable,fitting,skins,listings,listingsutf8,hooks}).
+\end{itemize}
+
+\vfill
+
+\subsection{Historique}
+
+\begin{quote}
+\begin{verbatim}
+0.1.1 : Ajout des commandes en [fr]
+0.1.0 : Version initiale
+\end{verbatim}
+\end{quote}
+
+\pagebreak
+
+\section{Les commandes disponibles}
+
+\subsection{Menu contextuel}
+
+Dans le but de créer un menu contextuel, la commande est :
+
+\begin{quote}
+\begin{verbatim}
+%----menu contextuel
+\MenuContextuel[clés]{liste des items}<options tikz>
+\end{verbatim}
+\end{quote}
+
+Les \textsf{clés}, optionnelles et entre \MontreCode{[...]}, sont :
+
+\begin{itemize}
+ \item \MontreCode{CoulFond} := couleur du fond ;
+ \item \MontreCode{CoulSurlig} : = couleur du surlignage ;
+ \item \MontreCode{Arrondi} := booléen pour arrondir les coins (\MontreCode{true} par défaut) ;
+ \item \MontreCode{Police} := police pour les items (\MontreCode{\textbackslash normalsize\textbackslash normalfont} par défaut) ;
+ \item \MontreCode{CoulItems} := couleur(s) des items (\MontreCode{black} par défaut) ;
+ \item \MontreCode{MargeV} := marge verticale des lignes (\MontreCode{6pt} par défaut) ;
+ \item \MontreCode{MargeH} := marge horizontale des lignes (\MontreCode{12pt} par défaut) ;
+ \item \MontreCode{Fleche} := caractère pour la flèche (\MontreCode{\textbackslash faCaretRight} par défaut) ;
+ \item \MontreCode{ListeSeps} := liste des éventuels séparateurs (vide ou pour tous les niveaux !) ;
+ \item \MontreCode{ListeIcones} := liste des éventuelles icones (vide ou pour tous les niveaux/items !) ;
+ \item \MontreCode{ListeDecals} := liste des éventuels décalages verticaux pour les sous-menus (à partir du n°2, \ldots !) (vide ou pour tous les sous-niveaux !) ;
+ \item \MontreCode{Icones} := booléen pour afficher les icones (\MontreCode{false} par défaut) ;
+ \item \MontreCode{Barre} := booléen pour une petite barre verticale après les éventuelles icones small vertical bar with icons (\MontreCode{true} par défaut) ;
+ \item \MontreCode{Space} := espacement horizontal entre les sous-menus (\MontreCode{-0.125} par défaut).
+\end{itemize}
+
+\medskip
+
+L'argument obligatoire, entre \MontreCode{\{...\}}, correspond à la liste des items, sous la forme :
+
+\smallskip
+
+\hfill\MontreCode{item1A,item1B,... § item2A,itemp2B,... § ...}\hfill~
+
+\begin{itemize}
+ \item si un item se termine par \MontreCode{(*)}, cela correspond au \textit{début} du sous-menu suivant (\underline{un seul} par niveau !) ;
+ \item si un item se termine par \MontreCode{(>)} (\underline{avant} un éventuel \MontreCode{(*)}), une \textit{flèche} est écrite à la fin de la ligne de l'item.
+\end{itemize}
+
+Une syntaxe correcte est fondamentale pour que le code présente correctement le menu contextuel !
+
+\vspace{5mm}
+
+Quelques conseils, du fait des \textsf{clés sensibles} \MontreCode{ListeIcones}, \MontreCode{ListeDecals} et \MontreCode{ListeSeps} :
+
+\begin{itemize}
+ \item \MontreCode{ListeIcones} doit avoir le même nombre d'éléments que le nombre de menus/items (avec des items vides possibles) ;
+ \item \MontreCode{ListeSeps} doit avoir le même nombre d'éléments que le nombre de niveaux (avec des niveaux vides possibles) ;
+ \item \MontreCode{ListeDecals} doit avoir le même nombre d'éléments que le nombre de sous-menus (Avec 0 si pas de décalage !).
+\end{itemize}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+%style par défaut
+\MenuContextuel{Item1A(>),Item1B,Item1C(>)(*),Item1D § Item2A(*),Item2B(>),Item2C}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+%style personnalisé
+\MenuContextuel[Arrondi=false,CoulFond=yellow,CoulSurlign=teal,%
+ ListeSeps={1,3/2},CoulItems={black/white},Icones,Espacement=0,%
+ ListeIcones={\faCut,\faIcon[regular]{copy},\faCopy,\faPaste / \faNotEqual}]
+ {Item1A(>)(*),Item1B,Item1C(>),Item1D § Item2A(*),Item2B(>),Item2C}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\MenuContextuel[Police=\sffamily,ListeSeps={1,3/1/4/1/},ListeDecals={1,2,1,0}]{%
+ Menu1(>),Menu2,Menu3(>)(*),Menu4 §
+ SousMenuA(>),SousMenuB(>)(*) §
+ SousSousMenu1,SousSousMenu2,SousSousMenu3(>)(*),SousSousMenu4,SousSousMenu5(>) §
+ SSSSMa,SSSSMa(>)(*),SSSSMc §
+ OK(*),KO
+}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Terminal}
+
+Pour créer un \og faux \fg{} terminal (Win/UNiX/Mac), les environnements sont :
+
+\begin{quote}
+\begin{verbatim}
+%----Terminal Windows
+\begin{TerminalWin}[clés]{options tcbox}
+ ...
+\end{TerminalWin}
+
+%----Terminal UNiX
+\begin{TerminalUnix}[clés]{options tcbox}
+ ...
+\end{TerminalUnix}
+
+%----Terminal OSX
+\begin{TerminalMac}[clés]{options tcbox}
+ ...
+\end{TerminalMac}
+\end{verbatim}
+\end{quote}
+
+Les \textsf{clés}, optionnelles et entre \MontreCode{[...]}, sont :
+
+\begin{itemize}
+ \item \MontreCode{Titre} := titre du terminal (\MontreCode{Terminal Win/UNiX/Mac} par défaut) ;
+ \item \MontreCode{Align} := alignement horizontal (paragraphe) du terminal (\MontreCode{center} par défaut) ;
+ \item \MontreCode{Largeur} := largeur du terminal (\MontreCode{\textbackslash linewidth} par défaut) ;
+ \item \MontreCode{Icones} := booléen pour afficher des icones (\MontreCode{true} par défaut).
+\end{itemize}
+
+\medskip
+
+L'argument obligatoire, entre \MontreCode{\{...\}}, correspond à des options spécifiques, à passer à la \textsf{tcolorbox}.
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{TerminalWin}{}
+Microsoft Windows [version 10.0.22000.493]
+(c) Microsoft Corporation. Tous droits réservés.
+C:\Users\test>ping ctan.org
+Envoi d'une requête 'ping' sur ctan.org [5.35.249.60] avec 32 octets de données :
+Réponse de 5.35.249.60 : octets=32 temps=35 ms TTL=51
+Réponse de 5.35.249.60 : octets=32 temps=37 ms TTL=51
+Réponse de 5.35.249.60 : octets=32 temps=35 ms TTL=51
+Réponse de 5.35.249.60 : octets=32 temps=39 ms TTL=51
+Statistiques Ping pour 5.35.249.60:
+Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
+Durée approximative des boucles en millisecondes :
+Minimum = 35ms, Maximum = 39ms, Moyenne = 36ms
+\end{TerminalWin}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{TerminalUnix}[Align=flush right]{hbox}
+test@DESKTOP:~$ ping -c 2 ctan.org
+PING ctan.org (5.35.249.60) 56(84) bytes of data.
+\end{TerminalUnix}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{TerminalMac}[Largeur=14cm,Align=flush left]{}
+[test@server]$ ping -c 2 ctan.org
+PING ctan.org (5.35.249.60) 56(84) bytes of data.
+\end{TerminalMac}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Visionneuses}
+
+Pour créer une \og fausse\fg{} visionneuse, les environnements sont :
+
+\begin{quote}
+\begin{verbatim}
+%----Visionneuse PDF
+\begin{VisionnPDF}[clés]{options tcbox}
+ ....
+\end{VisionnPDF}
+
+%----Visionneuse d'images
+\begin{VisionnIMG}[clés]{options tcbox}
+ ....
+\end{VisionnIMG}
+\end{verbatim}
+\end{quote}
+
+Les \textsf{clés}, optionnelles et entre \MontreCode{[...]}, sont :
+
+\begin{itemize}
+ \item \MontreCode{Titre} := titre du terminal (\MontreCode{Terminal Win/UNiX/Mac} par défaut) ;
+ \item \MontreCode{Align} := alignement horizontal (paragraphe) de la visionneuse (\MontreCode{center} par défaut) ;
+ \item \MontreCode{AlignH} := alignement horizontal (du contenu) de la visionneuse (\MontreCode{center} par défaut) ;
+ \item \MontreCode{Largeur} := largeur de la visionneuse (\MontreCode{\textbackslash linewidth} par défaut) ;
+ \item \MontreCode{Icones} := booléen pour afficher des icones (\MontreCode{true} par défaut).
+\end{itemize}
+
+\medskip
+
+L'argument obligatoire, entre \MontreCode{\{...\}}, correspond à des options spécifiques, à passer à la \textsf{tcolorbox}.
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{VisionnPDF}{hbox}
+\fbox{\includegraphics[page=35,width=6cm]{ProfLycee-doc.pdf}}%
+\fbox{\includegraphics[page=36,width=6cm]{ProfLycee-doc.pdf}}
+\end{VisionnPDF}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{VisionnPDF}[Largeur=14cm,Icones=false]{}
+\fbox{\includegraphics[page=65,width=4.75cm]{ProfLycee-doc.pdf}}
+\end{VisionnPDF}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{VisionnIMG}[Icones=false]{hbox}
+\includegraphics[width=5cm]{example-image-b}
+\end{VisionnIMG}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{VisionnIMG}[Largeur=12cm]{}
+\includegraphics[width=3cm]{example-image}
+\end{VisionnIMG}
+\end{tcblisting}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdf b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdf
index d7e7c69c9b..6550a4c0d5 100644
--- a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdf
+++ b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex
index 677a0883c5..229d363700 100644
--- a/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex
+++ b/macros/latex/contrib/sim-os-menus/doc/sim-os-menus-doc.tex
@@ -23,8 +23,8 @@
\hypersetup{pdfborder=0 0 0}
\usepackage[margin=2cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.0}
-\def\TPdate{13/11/2023}
+\def\TPversion{0.1.1}
+\def\TPdate{14/11/2023}
\usepackage{soul}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
@@ -146,6 +146,7 @@ The package loads the packages :
\begin{quote}
\begin{verbatim}
+0.1.1 : French version of the commands
0.1.0 : Initial version
\end{verbatim}
\end{quote}
diff --git a/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty b/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
index 2271b338d0..01da065abb 100644
--- a/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
+++ b/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
@@ -2,8 +2,9 @@
% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{sim-os-menus}[2023/11/13 0.1.0 Present 'context menu'/'terminal'/'windows', with TikZ or tcolorbox]
-%0.1.0 Initial version
+\ProvidesPackage{sim-os-menus}[2023/11/14 0.1.1 Present 'context menu'/'terminal'/'windows', with TikZ or tcolorbox (en of fr commands)]
+% 0.1.1 French version of the commands
+% 0.1.0 Initial version
%====PACKAGES
\RequirePackage{tikz,pgf,pgffor}
@@ -19,10 +20,12 @@
\RequirePackage{tcolorbox}
\tcbuselibrary{breakable,fitting,skins,listings,listingsutf8,hooks}
-%****CONTEXTMENU****
-%====USEFULL
+%====USEFULL DATA
+%****CONTEXTMENU
\definecolor{ColBackContextMenu}{HTML}{f0f0f0}%
\definecolor{ColHLContextMenu}{HTML}{90c8f6}%
+\definecolor{CoulFondMenuContext}{HTML}{f0f0f0}%
+\definecolor{CoulSurligMenuContext}{HTML}{90c8f6}%
\newlength{\ContMenOffsetIcon}\setlength{\ContMenOffsetIcon}{0pt}
\newlength{\ContMenOffsetArrow}\setlength{\ContMenOffsetArrow}{1em}
\newlength{\ContMenOffsetV}\setlength{\ContMenOffsetV}{6pt}
@@ -31,7 +34,100 @@
\newlength{\ContMenHgth}\newlength{\ContMenHgthTmp}
\newsavebox{\maboitemenucontext}
\newsavebox{\maboitelogomenucontext}
+%****TERMINAL
+\definecolor{Termmpurple}{RGB}{48,10,36}
+\definecolor{Termmgray}{RGB}{70,72,67}
+\definecolor{Termogray}{RGB}{148,147,141}
+\definecolor{Termoorange}{RGB}{233,101,56}
+\definecolor{Termterminal}{RGB}{80,78,70}
+\definecolor{Termlinux}{RGB}{0,39,51}
+\definecolor{Termwinblue}{HTML}{1883D7}
+\definecolor{Termosxgray}{HTML}{D8D6D9}
+\definecolor{Termosxgreen}{HTML}{1F8B36}
+\tcbset{StyleTermWindows/.style={%
+ enhanced,boxrule=1pt,arc=1pt,before skip=\baselineskip,after skip=\baselineskip,%
+ colframe=Termwinblue,colback=black,colbacktitle=white,colupper=white,coltitle=black,%
+ titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
+ fonttitle=\bfseries\small\sffamily
+ }
+}
+\newcommand\TermWinComm{%
+ \begin{tikzpicture}[thick,scale=0.66]
+ \draw (0,0.5em)--++(1em,0) ; \draw[rounded corners=0.05em] (2em,0) rectangle++ (0.8em,0.8em) ; \draw[rounded corners=0.05em] (2.2em,0.2em) rectangle++ (0.8em,0.8em) ; \draw (4em,1em)--(5em,0) (4em,0)--(5em,1em) ;
+ \end{tikzpicture}%
+}
+\newcommand{\TermUbuntuWhite}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[Termmgray] (0,0.25em) circle[radius=0.5em] ;
+ \end{tikzpicture}%
+}
+\newcommand{\TermUbuntuMin}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[color=Termogray!50!white] (0,0.25em) circle[radius=0.5em];
+ \draw[Termterminal](-0.35em,0.25em)--(0.35em,0.25em);
+ \end{tikzpicture}%
+}
+\newcommand{\TermUbuntuClose}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[color=Termoorange!70!white] (0,0.25em) circle[radius=0.5em];
+ \draw[Termterminal] (-0.32em,-0.07em)--(0.32em,0.57em);
+ \draw[Termterminal] (-0.32em,0.57em)--(0.32em,-0.07em);
+ \end{tikzpicture}%
+}
+\newcommand{\TermUbuntuMax}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[color=Termogray!50!white] (0,0.25em) circle[radius=0.5em];
+ \draw[Termterminal] (-0.32em,0.5em) rectangle (0.32em,0);
+ \end{tikzpicture}%
+}
+\tcbset{StyleTermUniX/.style={%
+ enhanced,boxrule=1pt,arc=4pt,before skip=\baselineskip,after skip=\baselineskip,%
+ colframe=Termmgray,colback=Termmpurple,colbacktitle=Termmgray,colupper=white,coltitle=white,%
+ titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
+ fonttitle=\bfseries\small\sffamily
+ }
+}
+\tcbset{StyleTermOSX/.style={%
+ enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
+ colframe=Termosxgray,colback=lightgray!15,colbacktitle=Termosxgray,colupper=black,coltitle=black,%
+ titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
+ fonttitle=\bfseries\small\sffamily
+ }
+}
+\newcommand{\TermOSXRed}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[red] (0,0.25em) circle[radius=0.45em] ;
+ \end{tikzpicture}%
+}
+\newcommand{\TermOSXOrange}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[orange] (0,0.25em) circle[radius=0.45em] ;
+ \end{tikzpicture}%
+}
+\newcommand{\TermOSXgreen}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[Termosxgreen] (0,0.25em) circle[radius=0.45em] ;
+ \end{tikzpicture}%
+}
+\newcommand{\TermOSXLG}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[Termosxgray] (0,0.25em) circle[radius=0.45em] ;
+ \end{tikzpicture}%
+}
+%****VIEWERS
+\tcbset{StylePDFViewer/.style={%
+ enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
+ colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
+ }
+}
+\tcbset{StyleIMGViewer/.style={%
+ enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
+ colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
+ }
+}
+%----[ENGLISH COMMANDS]
+%****CONTEXTMENU****
%====KEYS
\defKV[ContextMenu]{%
ColBack=\def\ContMenColBack{#1},%
@@ -252,34 +348,9 @@
}
%****TERMINAL****
-%====COLORS
-\definecolor{Termmpurple}{RGB}{48,10,36}
-\definecolor{Termmgray}{RGB}{70,72,67}
-\definecolor{Termogray}{RGB}{148,147,141}
-\definecolor{Termoorange}{RGB}{233,101,56}
-\definecolor{Termterminal}{RGB}{80,78,70}
-\definecolor{Termlinux}{RGB}{0,39,51}
-\definecolor{Termwinblue}{HTML}{1883D7}
-\definecolor{Termosxgray}{HTML}{D8D6D9}
-\definecolor{Termosxgreen}{HTML}{1F8B36}
-
%====WINDOWS (OK)
-\tcbset{StyleTermWindows/.style={%
- enhanced,boxrule=1pt,arc=1pt,before skip=\baselineskip,after skip=\baselineskip,%
- colframe=Termwinblue,colback=black,colbacktitle=white,colupper=white,coltitle=black,%
- titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
- fonttitle=\bfseries\small\sffamily
- }
-}
-
\setKVdefault[TERMwin]{Title={Terminal Win},Align={center},Width={\linewidth}}
-\newcommand\TermWinComm{%
- \begin{tikzpicture}[thick,scale=0.66]
- \draw (0,0.5em)--++(1em,0) ; \draw[rounded corners=0.05em] (2em,0) rectangle++ (0.8em,0.8em) ; \draw[rounded corners=0.05em] (2.2em,0.2em) rectangle++ (0.8em,0.8em) ; \draw (4em,1em)--(5em,0) (4em,0)--(5em,1em) ;
- \end{tikzpicture}%
-}
-
\newcommand\TermWinTitle{%
\begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={X[l]r}}
{\footnotesize\faTerminal}~~\useKV[TERMwin]{Title} & \TermWinComm \\ %
@@ -297,39 +368,6 @@
}
%====LINUX (OK)
-\newcommand{\TermUbuntuWhite}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[Termmgray] (0,0.25em) circle[radius=0.5em] ;
- \end{tikzpicture}%
-}
-\newcommand{\TermUbuntuMin}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[color=Termogray!50!white] (0,0.25em) circle[radius=0.5em];
- \draw[Termterminal](-0.35em,0.25em)--(0.35em,0.25em);
- \end{tikzpicture}%
-}
-\newcommand{\TermUbuntuClose}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[color=Termoorange!70!white] (0,0.25em) circle[radius=0.5em];
- \draw[Termterminal] (-0.32em,-0.07em)--(0.32em,0.57em);
- \draw[Termterminal] (-0.32em,0.57em)--(0.32em,-0.07em);
- \end{tikzpicture}%
-}
-\newcommand{\TermUbuntuMax}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[color=Termogray!50!white] (0,0.25em) circle[radius=0.5em];
- \draw[Termterminal] (-0.32em,0.5em) rectangle (0.32em,0);
- \end{tikzpicture}%
-}
-
-\tcbset{StyleTermUniX/.style={%
- enhanced,boxrule=1pt,arc=4pt,before skip=\baselineskip,after skip=\baselineskip,%
- colframe=Termmgray,colback=Termmpurple,colbacktitle=Termmgray,colupper=white,coltitle=white,%
- titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
- fonttitle=\bfseries\small\sffamily
- }
-}
-
\setKVdefault[TERMnux]{Title={Terminal UNiX},Align={center},Width={\linewidth}}
\newcommand\TermNuxTitle{%
@@ -348,39 +386,7 @@
\endtcblisting%
}
-%OSX (OK)
-\tcbset{StyleTermOSX/.style={%
- enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
- colframe=Termosxgray,colback=lightgray!15,colbacktitle=Termosxgray,colupper=black,coltitle=black,%
- titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
- fonttitle=\bfseries\small\sffamily
- }
-}
-
-\newcommand{\TermOSXRed}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[red] (0,0.25em) circle[radius=0.45em] ;
- \end{tikzpicture}%
-}
-
-\newcommand{\TermOSXOrange}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[orange] (0,0.25em) circle[radius=0.45em] ;
- \end{tikzpicture}%
-}
-
-\newcommand{\TermOSXgreen}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[Termosxgreen] (0,0.25em) circle[radius=0.45em] ;
- \end{tikzpicture}%
-}
-
-\newcommand{\TermOSXLG}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[Termosxgray] (0,0.25em) circle[radius=0.45em] ;
- \end{tikzpicture}%
-}
-
+%====OSX (OK)
\setKVdefault[TERMosx]{Title={Terminal Mac},Align={center},Width={\linewidth}}
\newcommand\TermOSXTitle{%
@@ -400,13 +406,7 @@
}
%****VIEWERS****
-%PDFVIEWER (OK)
-\tcbset{StylePDFViewer/.style={%
- enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
- colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
- }
-}
-
+%====PDFVIEWER (OK)
\setKVdefault[PDFViewer]{Title={PDF Viewer},Align={center},Width={\linewidth},Halign={center},Icons=true}
\NewDocumentCommand\PDFVIewerTitle{ s }{%
@@ -433,13 +433,7 @@
\endtcolorbox%
}
-%IMGVIEWER (OK)
-\tcbset{StyleIMGViewer/.style={%
- enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
- colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
- }
-}
-
+%====IMGVIEWER (OK)
\setKVdefault[IMGViewer]{Title={Image Viewer},Align={center},Width={\linewidth},Halign={center},Icons=true}
\NewDocumentCommand\IMGVIewerTitle{ s }{%
@@ -466,4 +460,338 @@
\endtcolorbox%
}
+%----[FRENCH COMMANDS]
+%****MENUCONTEXTUEL****
+%====KEYS
+\defKV[MenuContext]{%
+ CoulFond=\def\ContMenColBack{#1},%
+ CoulSurlig=\def\ContMenColHL{#1},%
+ Police=\def\ContMenuFonte{#1},%
+ MargeV=\setlength{\ContMenOffsetV}{#1},%
+ MargeH=\setlength{\ContMenOffset}{#1},
+ Fleche=\def\ContMenArrow{#1},%
+ ListeSeps=\xdef\ContMenSep{#1},%
+ ListeIcones=\xdef\ContMenIcons{#1},%
+ Espacement=\def\ContMenSpace{#1},%
+ CoulItems=\def\ContMenuColItems{#1},%
+ ListeDecals=\xdef\ContMenOffsets{#1}
+}
+
+\setKVdefault[MenuContext]{%
+ CoulFond=CoulFondMenuContext,%
+ CoulSurlig=CoulSurligMenuContext,%
+ Arrondi=true,%
+ Police=\normalsize\normalfont,%
+ MargeV=6pt,%
+ MargeH=12pt,%
+ Fleche=\faCaretRight,%
+ ListeSeps={},%
+ ListeIcones={},%
+ Icones=false,%
+ Barre=true,%
+ Espacement=-0.125,%
+ CoulItems=black,%
+ ListeDecals={}
+}
+
+%====MACRO
+\NewDocumentCommand\MenuContextuel{ O{} m D<>{} }{%
+ %clés
+ \useKVdefault[MenuContext]%
+ \setKV[MenuContext]{#1}%
+ \setsepchar{§/,}%
+ \readlist*\DonnesContMenu{#2}%
+ \IfEq{\ContMenSep}{}%
+ {}%
+ {
+ \setsepchar[.]{/.,}%
+ \readlist*\LstSepContMenu{\ContMenSep}%
+ }%
+ \IfEq{\ContMenIcons}{}%
+ {}%
+ {
+ \setsepchar[.]{/.,}%
+ \readlist*\LstIconsContMenu{\ContMenIcons}%
+ }%
+ \IfEq{\ContMenOffsets}{}%
+ {}%
+ {
+ \setsepchar{,}%
+ \readlist*\LstOffsetsContMenu{\ContMenOffsets}%
+ }%
+ %colors of items
+ \IfSubStr{\ContMenuColItems}{/}%
+ {%
+ \StrCut{\ContMenuColItems}{/}{\ContMenuColItemsE}{\ContMenuColItemsH}%
+ }%
+ {%
+ \xdef\ContMenuColItemsE{\ContMenuColItems}\xdef\ContMenuColItemsH{\ContMenuColItems}
+ }%
+ %height of lines
+ \sbox{\maboitemenucontext}{\ContMenuFonte qSÉ}%
+ \settoboxtotalheight{\ContMenHgthTmp}{\maboitemenucontext}%
+ \ifboolKV[MenuContext]{Icones}%
+ {%
+ \sbox{\maboitelogomenucontext}{\ContMenuFonte\faCreditCard}%
+ \settoboxwidth{\ContMenOffsetIcon}{\maboitelogomenucontext}%
+ }%
+ {%
+ \setlength{\ContMenOffsetIcon}{0pt}%
+ }%
+ \setlength{\ContMenHgth}{\ContMenHgthTmp+2\ContMenOffsetV}%
+ %environment
+ \begin{tikzpicture}[#3]
+ \ifboolKV[MenuContext]{Arrondi}%
+ {\tikzset{contextborder/.style={rounded corners=4pt}}}%
+ {\tikzset{contextborder/.style={}}}%
+ %--first node
+ \coordinate (I-1-1) at (0,0) ;%
+ %--levels one by one--
+ \foreach \niv in {1,...,\DonnesContMenulen}{%
+ \def\nivmun{\inteval{\niv-1}}%
+ \def\nivpun{\inteval{\niv+1}}%
+ \itemtomacro\DonnesContMenu[\niv]{\ContMenNivTmp}%
+ \setsepchar{,}\readlist*\ContMenLstItem{\ContMenNivTmp}%
+ %left nodes
+ \coordinate (I-\niv-2) at ($(I-\niv-1)+(0,{-\ContMenHgth})$) ;%
+ \xintifboolexpr{\ContMenLstItemlen >= 2}%
+ {%
+ \foreach \i in {2,...,\ContMenLstItemlen}{%
+ \xdef\j{\inteval{\i+1}}%
+ \coordinate (I-\niv-\j) at ($(I-\niv-\i)+(0,{-\ContMenHgth})$) ;%
+ }
+ }%
+ {}%
+ %width calculus
+ \itemtomacro\ContMenLstItem[1]{\itemtmp}%
+ \IfEndWith{\itemtmp}{(*)}{\StrGobbleRight{\itemtmp}{3}[\itemtmp]}{}%
+ \IfEndWith{\itemtmp}{(>)}{\StrGobbleRight{\itemtmp}{3}[\itemtmp]}{}%
+ \sbox{\maboitemenucontext}{\pgfinterruptpicture\ContMenuFonte\itemtmp\endpgfinterruptpicture}%
+ \settoboxwidth{\ContMenWdthTmp}{\maboitemenucontext}%
+ \xdef\tmplistwidth{\the\ContMenWdthTmp}%
+ \xintifboolexpr{\ContMenLstItemlen >= 2}%calul des autres si besoin
+ {%
+ \foreach \i in {2,...,\ContMenLstItemlen}{%
+ \itemtomacro\ContMenLstItem[\i]{\itemtmp}%
+ \IfEndWith{\itemtmp}{(*)}{\StrGobbleRight{\itemtmp}{3}[\itemtmp]}{}%
+ \IfEndWith{\itemtmp}{(>)}{\StrGobbleRight{\itemtmp}{3}[\itemtmp]}{}%
+ \sbox{\maboitemenucontext}{\pgfinterruptpicture\ContMenuFonte\itemtmp\endpgfinterruptpicture}%
+ \settoboxwidth{\ContMenWdthTmp}{\maboitemenucontext}%
+ \xdef\tmplistwidth{\tmplistwidth,\the\ContMenWdthTmp}%
+ }%
+ }%
+ {}%
+ \pgfmathsetlength{\ContMenWdth}{max(\tmplistwidth)}%
+ \setlength{\ContMenWdth}{\ContMenWdth+\ContMenOffsetIcon+2\ContMenOffset+\ContMenOffsetArrow}%calcul de la 1ère largeur
+ %boxes
+ \draw[contextborder,draw=none,fill=\ContMenColBack] (I-\niv-1) rectangle++ ({\ContMenWdth},{-\ContMenLstItemlen*\ContMenHgth}) ;
+ \ifboolKV[MenuContext]{Icones}%
+ {%
+ \ifboolKV[MenuContext]{Barre}{\draw[thick,white] ($(I-\niv-1)+({\ContMenOffset+\ContMenOffsetIcon-3pt},{-0.5\ContMenOffsetV})$) --++ (0,{-\ContMenLstItemlen*\ContMenHgth+\ContMenOffsetV}) ;}{}%
+ }%
+ {}%
+ %labels
+ \foreach \i in {1,...,\ContMenLstItemlen}{%
+ \itemtomacro\ContMenLstItem[\i]{\itemtmp}%
+ \IfEndWith{\itemtmp}{(*)}%
+ {%
+ \StrGobbleRight{\itemtmp}{3}[\itemtmp]%
+ %offset si delared ?
+
+ \IfEq{\ContMenOffsets}{}%
+ {%
+ \coordinate (I-\nivpun-1) at ($(I-\niv-\i)+({\ContMenWdth+\ContMenSpace\ContMenOffset},{0})$) ;
+ }%
+ {%
+ \xintifboolexpr{\niv < \DonnesContMenulen}%
+ {%
+ \itemtomacro\LstOffsetsContMenu[\niv]{\offsettmp}%
+ \coordinate (I-\nivpun-1) at ($(I-\niv-\i)+({\ContMenWdth+\ContMenSpace\ContMenOffset},{\offsettmp*\ContMenHgth})$) ;
+ }%
+ {}%
+ }%
+
+ \draw[contextborder,draw=none,fill=\ContMenColHL,fill opacity=0.65] ($(I-\niv-\i)+({0.25\ContMenOffset},{-0.5\ContMenOffsetV})$) rectangle++ ({\ContMenWdth-0.5\ContMenOffset},{-\ContMenHgth+\ContMenOffsetV}) ;
+ %test if char at the end
+ \IfEndWith{\itemtmp}{(>)}%
+ {%
+ \StrGobbleRight{\itemtmp}{3}[\itemtmp]%
+ \draw ($(I-\niv-\i)+(0,{-0.5*\ContMenHgth})$) node[inner sep=0pt,right={\ContMenOffset+\ContMenOffsetIcon},font=\ContMenuFonte,text=\ContMenuColItemsH] {\itemtmp} ;
+ \draw ($(I-\niv-\i)+({\ContMenWdth-0.5\ContMenOffset},{-0.5*\ContMenHgth})$) node[inner sep=0pt,left=0.25\ContMenOffset,font=\ContMenuFonte,text=\ContMenuColItemsH] {$\vcenter{\hbox{\ContMenArrow}}$} ;
+ }%
+ {%
+ \draw ($(I-\niv-\i)+(0,{-0.5*\ContMenHgth})$) node[inner sep=0pt,right={\ContMenOffset+\ContMenOffsetIcon},font=\ContMenuFonte,text=\ContMenuColItemsH] {\itemtmp} ;
+ }%
+ }%
+ {%
+ \IfEndWith{\itemtmp}{(>)}%
+ {%
+ \StrGobbleRight{\itemtmp}{3}[\itemtmp]%
+ \draw ($(I-\niv-\i)+(0,{-0.5*\ContMenHgth})$) node[inner sep=0pt,right={\ContMenOffset+\ContMenOffsetIcon},font=\ContMenuFonte] {\itemtmp} ;
+ \draw ($(I-\niv-\i)+({\ContMenWdth-0.5\ContMenOffset},{-0.5*\ContMenHgth})$) node[inner sep=0pt,left=0.25\ContMenOffset,font=\ContMenuFonte,text=\ContMenuColItemsE] {$\vcenter{\hbox{\ContMenArrow}}$} ;
+ }%
+ {%
+ \draw ($(I-\niv-\i)+(0,{-0.5*\ContMenHgth})$) node[inner sep=0pt,right={\ContMenOffset+\ContMenOffsetIcon},font=\ContMenuFonte,text=\ContMenuColItemsE] {\itemtmp} ;
+ }%
+ }%
+ }%
+ %border
+ \draw[contextborder,thick,\ContMenColBack!75!black] (I-\niv-1) rectangle++ ({\ContMenWdth},{-\ContMenLstItemlen*\ContMenHgth}) ;
+ %separators
+ \IfEq{\ContMenSep}{}%
+ {}%
+ {%
+ \itemtomacro\LstSepContMenu[\niv]{\lstsepniv}%
+ \IfEq{\lstsepniv}{}%
+ {}%
+ {%
+ \setsepchar{,}%
+ \readlist*\lstsepnivpos{\lstsepniv}
+ \foreachitem\sep\in\lstsepnivpos{\def\seppun{\inteval{\sep+1}}\draw[thick,\ContMenColBack!75!black] ($(I-\niv-\seppun)+({0.25\ContMenOffset},0)$) --++ ({\ContMenWdth-0.5\ContMenOffset},0) ;}%
+ }%
+ }%
+ %icons
+ \ifboolKV[MenuContext]{Icones}%
+ {%
+ \IfEq{\ContMenIcons}{}%
+ {}%
+ {%
+ \itemtomacro\LstIconsContMenu[\niv]{\lsticonsniv}%
+ \IfEq{\lsticonsniv}{}%
+ {}%
+ {%
+ \setsepchar{,}%
+ \readlist*\lsticonsnivpos{\lsticonsniv}%
+ \foreach \i in {1,...,\lsticonsnivposlen}{%
+ \itemtomacro\lsticonsnivpos[\i]{\icontmp}%
+ \itemtomacro\DonnesContMenu[\niv,\i]{\itemtmp}%
+ \IfEndWith{\itemtmp}{(*)}%
+ {%
+ \draw ($(I-\niv-\i)+({0.25\ContMenOffset+0.75\ContMenOffsetIcon},{-0.5*\ContMenHgth})$) node[scale=0.9,inner sep=0pt,font=\ContMenuFonte,text=\ContMenuColItemsH] {$\vcenter{\hbox{\icontmp}}$} ;
+ }%
+ {%
+ \draw ($(I-\niv-\i)+({0.25\ContMenOffset+0.75\ContMenOffsetIcon},{-0.5*\ContMenHgth})$) node[scale=0.9,inner sep=0pt,font=\ContMenuFonte,text=\ContMenuColItemsE] {$\vcenter{\hbox{\icontmp}}$} ;
+ }%
+ }%
+ }%
+ }%
+ }%
+ {}%
+ }%
+ \end{tikzpicture}
+}
+
+%****TERMINAL****
+%====WINDOWS (OK)
+\setKVdefault[TERMINALwin]{Titre={Terminal Win},Align={center},Largeur={\linewidth}}
+
+\newcommand\TerminalWinTitle{%
+ \begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={X[l]r}}
+ {\footnotesize\faTerminal}~~\useKV[TERMINALwin]{Titre} & \TermWinComm \\ %
+ \end{tblr}
+}
+
+\NewDocumentEnvironment{TerminalWin}{ O{} m }
+{%
+ \restoreKV[TERMINALwin]%
+ \setKV[TERMINALwin]{#1}%
+ \tcblisting{StyleTermWindows,{\useKV[TERMINALwin]{Align}},title={\TerminalWinTitle},listing only,listing engine=listings,listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},width={\useKV[TERMINALwin]{Largeur}},#2}
+}%
+{%
+ \endtcblisting%
+}
+
+%====LINUX (OK)
+\setKVdefault[TERMINALnux]{Titre={Terminal UNiX},Align={center},Largeur={\linewidth}}
+
+\newcommand\TerminalNuxTitle{%
+ \begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={lX[c]r}}
+ \TermUbuntuWhite~~\TermUbuntuWhite~~\TermUbuntuWhite & \vphantom{p}\useKV[TERMINALnux]{Titre} & \TermUbuntuMin~~\TermUbuntuMax~~\TermUbuntuClose \\
+ \end{tblr}
+}
+
+\NewDocumentEnvironment{TerminalUnix}{ O{} m }
+{%
+ \restoreKV[TERMINALnux]%
+ \setKV[TERMINALnux]{#1}%
+ \tcblisting{StyleTermUniX,{\useKV[TERMINALnux]{Align}},title={\TerminalNuxTitle},listing only,listing engine=listings,listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},width={\useKV[TERMINALnux]{Largeur}},#2}
+}%
+{%
+ \endtcblisting%
+}
+
+%====OSX (OK)
+\setKVdefault[TERMINALosx]{Titre={Terminal Mac},Align={center},Largeur={\linewidth}}
+
+\newcommand\TerminalOSXTitle{%
+ \begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={lX[c]r}}
+ \TermOSXRed~\TermOSXOrange~\TermOSXgreen & \vphantom{p}\useKV[TERMINALosx]{Titre} & \TermOSXLG~\TermOSXLG~\TermOSXLG \\
+ \end{tblr}
+}
+
+\NewDocumentEnvironment{TerminalMac}{ O{} m }
+{%
+ \restoreKV[TERMINALosx]%
+ \setKV[TERMINALosx]{#1}%
+ \tcblisting{StyleTermOSX,{\useKV[TERMINALosx]{Align}},title={\TerminalOSXTitle},listing only,listing engine=listings,listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},width={\useKV[TERMINALosx]{Largeur}},#2}
+}%
+{%
+ \endtcblisting%
+}
+
+%****VISIONNEUSES****
+%====PDFVIEWER (OK)
+\setKVdefault[PDFVisionn]{Titre={Visionneuse PDF},Align={center},Largeur={\linewidth},AlignH={center},Icones=true}
+
+\NewDocumentCommand\PDFVIewerTitre{ s }{%
+ \IfBooleanTF{#1}%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[PDFVisionn]{Titre} && \faIcon[regular]{file-pdf} \\
+ \end{tblr}
+ }%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]l|[1pt]l|[1pt]l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[PDFVisionn]{Titre} & \faIcon[regular]{folder}~~\faPrint~~\faIcon{pencil-alt} & \faArrowLeft~~\faArrowRight & \faExpand~~\faIcon{expand-alt}~~\faIcon{expand-arrows-alt}&&\faIcon[regular]{file-pdf} \\
+ \end{tblr}
+ }%
+}
+
+\NewDocumentEnvironment{VisionnPDF}{ O{} m }
+{%
+ \restoreKV[PDFVisionn]%
+ \setKV[PDFVisionn]{#1}%
+ \tcolorbox[StylePDFViewer,{\useKV[PDFVisionn]{Align}},title={\ifboolKV[PDFVisionn]{Icones}{\PDFVIewerTitre}{\PDFVIewerTitre*}},width={\useKV[PDFVisionn]{Largeur}},halign={\useKV[PDFVisionn]{AlignH}},#2]
+}%
+{%
+ \endtcolorbox%
+}
+
+%====IMGVIEWER (OK)
+\setKVdefault[IMGVisionn]{Titre={Visionneuse d'images},Align={center},Largeur={\linewidth},AlignH={center},Icones=true}
+
+\NewDocumentCommand\IMGVIewerTitre{ s }{%
+ \IfBooleanTF{#1}%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[IMGVisionn]{Titre} && \faIcon[regular]{file-image} \\
+ \end{tblr}
+ }%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]l|[1pt]l|[1pt]l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[IMGVisionn]{Titre} & \faIcon[regular]{folder}~~\faPrint~~\faPen~~\faFillDrip~~\faBorderNone& \faArrowLeft~~\faArrowRight & \faExpand~~\faIcon{expand-alt}~~\faIcon{expand-arrows-alt}&&\faIcon[regular]{file-image} \\
+ \end{tblr}
+ }%
+}
+
+\NewDocumentEnvironment{VisionnIMG}{ O{} m }
+{%
+ \restoreKV[IMGVisionn]%
+ \setKV[IMGVisionn]{#1}%
+ \tcolorbox[StyleIMGViewer,{\useKV[IMGVisionn]{Align}},title={\ifboolKV[IMGVisionn]{Icones}{\IMGVIewerTitre}{\IMGVIewerTitre*}},width={\useKV[IMGVisionn]{Largeur}},halign={\useKV[IMGVisionn]{AlignH}},#2]
+}%
+{%
+ \endtcolorbox%
+}
+
\endinput \ No newline at end of file