From c214169d860930db1533a657b345f53c6136ff6b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 3 Jul 2023 20:11:54 +0000 Subject: profsio (3jul23) git-svn-id: svn://tug.org/texlive/trunk@67534 c570f23f-e606-0410-a88d-b1316a301751 --- .../doc/latex/profsio/ProfSio-doc-fr.pdf | Bin 692493 -> 307885 bytes .../doc/latex/profsio/ProfSio-doc-fr.tex | 379 +++++++++++++++++++-- 2 files changed, 351 insertions(+), 28 deletions(-) (limited to 'Master/texmf-dist/doc') diff --git a/Master/texmf-dist/doc/latex/profsio/ProfSio-doc-fr.pdf b/Master/texmf-dist/doc/latex/profsio/ProfSio-doc-fr.pdf index e90084029ec..3c07f06d1c1 100644 Binary files a/Master/texmf-dist/doc/latex/profsio/ProfSio-doc-fr.pdf and b/Master/texmf-dist/doc/latex/profsio/ProfSio-doc-fr.pdf differ diff --git a/Master/texmf-dist/doc/latex/profsio/ProfSio-doc-fr.tex b/Master/texmf-dist/doc/latex/profsio/ProfSio-doc-fr.tex index ac11dc168a3..0d7a8b3b51b 100644 --- a/Master/texmf-dist/doc/latex/profsio/ProfSio-doc-fr.tex +++ b/Master/texmf-dist/doc/latex/profsio/ProfSio-doc-fr.tex @@ -1,13 +1,14 @@ % !TeX TXS-program:compile = txs:///arara -% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} -% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') +% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} +% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} +% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} \documentclass[french,a4paper,11pt]{article} \usepackage[margin=2cm,includefoot]{geometry} -\def\TPversion{0.1.1} -\def\TPdate{26 juin 2023} -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} +\def\TPversion{0.1.2} +\def\TPdate{3 juillet 2023} +%\usepackage[utf8]{inputenc} +%\usepackage[T1]{fontenc} \usepackage{amsmath,amssymb} \usepackage{ProfSio} \usepackage{awesomebox} @@ -17,6 +18,7 @@ \usepackage{enumitem} \usepackage{wrapstuff} \usepackage{lipsum} +\UseTblrLibrary{booktabs} \usepackage{fancyvrb} \usepackage{fancyhdr} \fancyhf{} @@ -48,7 +50,7 @@ \AddThinSpaceBeforeFootnotes \FrenchFootnotes -\usepackage{listings} +%\usepackage{listings} \usepackage{newverbs} \newverbcommand{\motcletex}{\color{cyan!75!black}}{} @@ -79,10 +81,10 @@ keywordstyle={\color{violet}},% classoffset=2,% alsoletter={-},% - morekeywords={\MPMPlaceTache,\MPMPlaceNotice,\MPMPlaceDuree,GrapheMPM,TableKarnaugh,\KarnaughCasesResult,\KarnaughBlocRegroup,\MPMPlaceTaches,\MPMPlaceDurees,GrapheTikz,\GrphPlaceSommets,\GrphTraceAretes,\tikzset,\DiagrammeSagittal,\draw},% + morekeywords={\MPMPlaceTache,\MPMPlaceNotice,\MPMPlaceDuree,GrapheMPM,TableKarnaugh,\KarnaughCasesResult,\KarnaughBlocRegroup,\MPMPlaceTaches,\MPMPlaceDurees,GrapheTikz,\GrphPlaceSommets,\GrphTraceAretes,\tikzset,\DiagrammeSagittal,\draw,\DiagrammeSagittalCompo,\TableVerite},% keywordstyle={\color{green!50!black}},% classoffset=3,% - morekeywords={CouleurDurees,CouleurFleches,LargeurCases,Epaisseur,Police,CouleurDates,CouleurBords,NoirBlanc,Grille,DecalHorizDeb,DecalVertDeb,DecalHorizFin,DecalVertFin,Coude,SensCoude,Unite,Variables,Swap,Aide,CouleurCases,Decalage,Couleur,Type,Legende,PosVarLaterale,CouleurLegende,CouleurSommets,TypeSommets,Unite,CouleurFT,DimensionSommets,PositionFleches,EchelleFleches,TypeFleche,Droit,Milieu,AngleGauche,AngleDroite,Boucle,GrphStyleArc,GrphStyleSommet,Poids,GrphStylepoids,DistElem,DistEns,LargEns,NomAppli,CouleurE,CouleurAppli,CouleurF,CouleurFleches,TypeFleche,Epaisseur,Labels,Ensembles,PosLabels,PoliceLabels},% + morekeywords={CouleurDurees,CouleurFleches,LargeurCases,Epaisseur,Police,CouleurDates,CouleurBords,NoirBlanc,Grille,DecalHorizDeb,DecalVertDeb,DecalHorizFin,DecalVertFin,Coude,SensCoude,Unite,Variables,Swap,Aide,CouleurCases,Decalage,Couleur,Type,Legende,PosVarLaterale,CouleurLegende,CouleurSommets,TypeSommets,Unite,CouleurFT,DimensionSommets,PositionFleches,EchelleFleches,TypeFleche,Droit,Milieu,AngleGauche,AngleDroite,Boucle,GrphStyleArc,GrphStyleSommet,Poids,GrphStylepoids,DistElem,DistEns,LargEns,NomAppli,CouleurE,CouleurAppli,CouleurF,CouleursFleches,TypeFleche,Epaisseur,Labels,Ensembles,PosLabels,PoliceLabels,Offset,NomApplis,CouleursAppli,VF,LargeursColonnes,CouleurEnonce,CodeAvant,CodeApres},% keywordstyle={\color{orange}} },% #1 @@ -126,8 +128,6 @@ {\Huge \texttt{ProfSio} [fr]}\\ \\ {\LARGE Des outils pour les Maths en BTS SIO.} \\ - \\ - {\large (Services Informatiques aux Organisations)} \end{tabular} \bigskip @@ -140,8 +140,7 @@ \begin{center} \begin{tabular}{c} - \texttt{Cédric Pierquet}\\ - {\ttfamily c pierquet -- at -- outlook . fr}\\ + \texttt{Cédric Pierquet} ({\ttfamily c pierquet -- at -- outlook . fr})\\ \texttt{\url{https://github.com/cpierquet/profsio}} \end{tabular} \end{center} @@ -162,6 +161,10 @@ {$\blacktriangleright$~~Créer des graphes simples ou des diagrammes sagittaux. +\vspace{0.15cm} + +{$\blacktriangleright$~~Créer des tables de vérité (via \hologo{LuaLaTeX}) grâce au code du package \packagetex!luatruthtable!\footnotemark\footnotetext{Package \LaTeX{} : \href{https://ctan.org/pkg/luatruthtable}{[Lien]} sur le site du CTAN}. + \vspace{1cm} \hfill @@ -195,18 +198,20 @@ \hfill~ \hfill -\begin{TableKarnaugh} +\begin{TableKarnaugh} \KarnaughCasesResult{0,1,1,0,1,1,1,1} \KarnaughBlocRegroup[Type=Centre,Couleur=blue!75,Decalage=-1.5pt]{10}{32} \KarnaughBlocRegroup[Type=Gauche,Couleur=red!75,Decalage=-1.5pt]{00}{11} \KarnaughBlocRegroup[Type=Droite,Couleur=red!75,Decalage=-1.5pt]{40}{31} \end{TableKarnaugh} \hspace{1cm} -\begin{TableKarnaugh}[Variables=u/v/w,Swap,CouleurCases=lime] +\begin{TableKarnaugh}[Variables=u/v/w,Swap,CouleurCases=lime] \KarnaughCasesResult*{1,1,1,1,1,0,0,0} \KarnaughBlocRegroup[Type=Centre,Couleur=blue!75,Decalage=-1.5pt]{00}{12} \KarnaughBlocRegroup[Type=Centre,Couleur=red!75,Decalage=-1.15pt]{01}{42} \end{TableKarnaugh} +\hspace{1cm} +\TableVerite{P,Q}{$P$,$Q$}{lognot*P,P*logand*Q,P*imp*Q}{$\lnot P$,$P \lor Q$,$P \Rightarrow Q$} \hfill~ \vspace{0.5cm} @@ -246,8 +251,14 @@ \vfill +\newpage + \section{Historique} +\verb|v0.1.2|~:~~~~Clé \Cle{Offset} pour les diagrammes sagittaux + Diagrammes sagittaux de composées. + +\verb| |~:~~~~Ajout des tables de vérité (via \hologo{LuaLaTeX}). + \verb|v0.1.1|~:~~~~Mise à jour de la documentation + Diagrammes sagittaux. \verb|v0.1.0|~:~~~~Version initiale. @@ -264,13 +275,18 @@ Le package \packagetex!ProfSio! propose quelques commandes pour travailler sur d \begin{itemize} \item graphe d'ordonnancement par la méthode MPM ; \item tableau de Karnaugh à 3 variables ; - \item graphes \textit{simples} orientés, pondérés. + \item graphes \textit{simples} orientés ou pondérés, des diagrammes sagittaux ; + \item des tables de vérité (via \hologo{LuaLaTeX}). \end{itemize} \vspace*{-\baselineskip}\leavevmode \end{noteblock} \begin{warningblock} Le code ne propose par de \og résolution \fg{} du graphe MPM, de \og simplification \fg{} d'expressions booléennes ou de représentation \og automatique \fg{} d'un graphe, il ne consiste \textit{qu'en} une mise en forme du graphe MPM, du tableau de Karnaugh ou du graphe. + +\smallskip + +Par contre, pour les tables de vérité, le code se charge de créer le tableau \underline{entièrement}, grâce aux données du package \packagetex!luatruthtable! (légèrement \textit{patchées} pour obtenir une alternance un peu plus homogène). \end{warningblock} \subsection{Chargement du package, packages utilisés} @@ -291,20 +307,17 @@ Il n'existe pas d'option pour le package, et \packagetex!xcolor! n'est pas charg \packagetex!ProfSio! charge les packages suivantes : \begin{itemize} - \item \packagetex!tikz!, \packagetex!pgffor! et \packagetex!xintexpr! ; - \item \packagetex!tabularray!, \packagetex!simplekv!, \packagetex!xstring! et \packagetex!listofitems! ; + \item \packagetex!tikz!, \packagetex!pgffor!, \packagetex!xintexpr!, \packagetex!tabularray!, \packagetex!simplekv!, \packagetex!xstring! et \packagetex!listofitems! ; + \item \packagetex!luacode! et \packagetex!nicematrix! (uniquement si le compilateur détecté est \hologo{LuaLaTeX}) ; \item les librairies \packagetex!tikz! : \begin{itemize} - \item \motcletex!tikz.positioning! + \item \motcletex!tikz.positioning!, \motcletex!tikz.babel!, \motcletex!tikz.calc! ; \item \motcletex!tikz.decorations.pathreplacing! et \motcletex!tikz.decorations.markings! ; - \item \motcletex!tikz.babel! ; - \item \motcletex!tikz.calc! ; - \item \motcletex!tikz.shapes! et \motcletex!tikz.shapes.geometric! ; - \item \motcletex!tikz.arrows! et \motcletex!tikz.arrows.meta!. + \item \motcletex!tikz.shapes!, \motcletex!tikz.shapes.geometric!, \motcletex!tikz.arrows! et \motcletex!tikz.arrows.meta!. \end{itemize} \end{itemize} -Il est compatible avec les compilations usuelles en \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} ou \textsf{xelatex}. +Il est compatible avec les compilations usuelles en \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} (obligatoire pour les tables de vérité !) ou \textsf{xelatex}. \end{noteblock} \subsection{Fonctionnement global} @@ -321,7 +334,7 @@ Le choix a été fait de : \begin{itemize} \item présenter l'ordonnancement par la méthode MPM, avec présentation des tâches \textit{fixée} ; \item limiter les tableaux de Karnaugh pour 3 variables, avec présentation \textit{fixée} ; - \item de ne pas forcément proposer de modification de la présentation \textit{globale} + \item de ne pas forcément proposer de modification de la présentation \textit{globale}. \end{itemize} \vspace*{-\baselineskip}\leavevmode \end{noteblock} @@ -1006,7 +1019,7 @@ Pour marquer une fermeture transitive, on peut utiliser le style \verb|FT| dans \pagebreak -\section{Diagrammes sagittaux} +\section{Diagramme sagittal d'une application} \subsection{Commande et fonctionnement global} @@ -1075,12 +1088,13 @@ Les \Cle{clés} disponibles sont : \item \Cle{DistElem} := distance verticale entre les éléments ; \hfill{}défaut : \Cle{0.75} \item \Cle{DistEns} := distance entre les \og patates \fg{} ; \hfill{}défaut : \Cle{4} \item \Cle{LargEns} := largeur des \og patates \fg{} ; \hfill{}défaut : \Cle{1.5} - \item \Cle{NomAppli} := nom de l'application ; \hfill{}défaut : \Cle{$f$} + \item \Cle{NomAppli} := nom de l'application ; \hfill{}défaut : \Cle{\$f\$} \item \Cle{CouleurE} := couleur de l'ensemble de départ ; \hfill{}défaut : \Cle{blue} \item \Cle{CouleurAppli} := couleur de l'application ; \hfill{}défaut : \Cle{violet} \item \Cle{CouleurF} := couleur de l'ensemble d'arrivée ; \hfill{}défaut : \Cle{red} \item \Cle{CouleurFleches} := couleur des flèches ; \hfill{}défaut : \Cle{teal} \item \Cle{TypeFleche} := type de la flèche ; \hfill{}défaut : \Cle{Latex} + \item \Cle{Offset} := décalage entre les flèches et les éléments (points) ; \hfill{}défaut : \Cle{2pt} \item \Cle{Epaisseur} := épaisseur des tracés ; \hfill{}défaut : \Cle{0.8pt} \item \Cle{Police} := police pour les éléments ; \hfill{}défaut : \Cle{vide} \item \Cle{NoirBlanc} := booléen pour forcer l'affichage en N\&{}B ; \hfill{}défaut : \Cle{false} @@ -1105,7 +1119,7 @@ Le troisième argument, obligatoire et entre \texttt{\{...\}}, permet de précis \begin{DemoCode}[] \DiagrammeSagittal[% E={1,2,3,4,5,6,7},F={a,b,c,d,e},Labels=false,% - DistElem=1,DistEns=6,LargEns=2,% + DistElem=1,DistEns=6,LargEns=2,Offset=4pt,% CouleurE=teal,CouleurF=orange,CouleurAppli=brown,CouleurFleches=brown ]{1/a,2/b,3/b,4/c,5/d,6/e,7/e} \end{DemoCode} @@ -1121,4 +1135,313 @@ Le troisième argument, obligatoire et entre \texttt{\{...\}}, permet de précis \end{tikzpicture} \end{DemoCode} +\pagebreak + +\section{Diagramme sagittal d'une composée d'applications} + +\subsection{Commande et fonctionnement global} + +\begin{cautionblock} +La commande dédiée à la création d'un diagramme sagittal pour une application est \motcletex!\DiagrammeSagittalCompo!. + +Le diagramme créé est réalisé avec un environnement \motcletex!tikzpicture!. +\end{cautionblock} + +\begin{DemoCode}[listing only] +%commande autonome +\DiagrammeSagittalCompo[clés]{liaisons1}{liaisons2} + +%commande à insérer dans un environnement tikzpicture +\begin{tikzpicture} + \DiagrammeSagittalCompo*[clés]{liaisons1}{liaisons2} +\end{tikzpicture} +\end{DemoCode} + +\begin{DemoCode}[] +\DiagrammeSagittalCompo% + [E={a,b,c,d},F={A,B,C,E,F,G,H},G={1,2,3,4,5}]% + {a/B,d/H}% + {B/1,B/2,H/5} +\end{DemoCode} + +\begin{warningblock} +La majorité des paramètres sont personnalisables, mais le \textit{thème} général est globalement \textit{fixé}, dans le sens où ce sont les éléments \textit{cosmétiques} qui pourront être modifiés. + +\smallskip + +La commande de création de \packagetex!ProfSio! est volontairement pour des applications basiques, dans l'optique de travailler avec exemples en adéquation avec le programme de BTS SIO. +\end{warningblock} + +\subsection{Arguments et clés} + +\begin{DemoCode}[listing only] +\DiagrammeSagittalCompo[clés]{liaisons1}{liaisons2} + +\begin{tikzpicture} + \DiagrammeSagittalCompo*[clés]{liaisons1}{liaisons2} +\end{tikzpicture} +\end{DemoCode} + +\begin{noteblock} +Le code se charge, grâce aux \Cle{clés}, de positionner et d'aligner les éléments des ensembles et les flèches. + +De ce fait, les \textit{écarts} entre les éléments d'un ensemble sont fixées globalement, tout comme le style général des flèches. +\end{noteblock} + +\begin{tipblock} +La version \textit{étoilé} permet de ne pas créer l'environnement \motcletex!tikzpicture!, pour d'éventuels rajouts ultérieurs : + +\begin{itemize} + \item les éléments de l'ensemble de départ sont des nœuds nommés \verb!(E...)! ; + \item les éléments de l'ensemble du milieu sont des nœuds nommés \verb!(F...)! ; + \item les éléments de l'ensemble d'arrivée sont des nœuds nommés \verb!(G...)!. +\end{itemize} +\vspace*{-\baselineskip}\leavevmode +\end{tipblock} + +\begin{tipblock} +Les \Cle{clés} disponibles sont : + +\begin{itemize} + \item \Cle{DistElem} := distance verticale entre les éléments ; \hfill{}défaut : \Cle{0.75} + \item \Cle{DistEns} := distance entre les \og patates \fg{} ; \hfill{}défaut : \Cle{4} + \item \Cle{LargEns} := largeur des \og patates \fg{} ; \hfill{}défaut : \Cle{1.5} + \item \Cle{NomApplis} := nom des applications ; \hfill{}défaut : \Cle{\$f\$/\$g\$} + \item \Cle{CouleurE} := couleur de l'ensemble de départ ; \hfill{}défaut : \Cle{blue} + \item \Cle{CouleurApplis} := couleurs des applications, \Cle{Couleur} ou \Cle{Couleur\_f/Couleur\_g} ; + + \hfill{}défaut : \Cle{violet} + \item \Cle{CouleurF} := couleur de l'ensemble du milieu ; \hfill{}défaut : \Cle{red} + \item \Cle{CouleurG} := couleur de l'ensemble d'arrivée ; \hfill{}défaut : \Cle{gray} + \item \Cle{CouleursFleches} := couleurs des flèches, \Cle{Couleur} ou \Cle{Couleur\_f/Couleur\_g} ; + + \hfill{}défaut : \Cle{teal} + \item \Cle{TypeFleche} := type de la flèche ; \hfill{}défaut : \Cle{Latex} + \item \Cle{Offset} := décalage entre les flèches et les éléments (points) ; \hfill{}défaut : \Cle{2pt} + \item \Cle{Epaisseur} := épaisseur des tracés ; \hfill{}défaut : \Cle{0.8pt} + \item \Cle{Police} := police pour les éléments ; \hfill{}défaut : \Cle{vide} + \item \Cle{NoirBlanc} := booléen pour forcer l'affichage en N\&{}B ; \hfill{}défaut : \Cle{false} + \item \Cle{Labels} := booléen pour afficher les noms des ensembles ; \hfill{}défaut : \Cle{true} + \item \Cle{Ensembles} := nom des ensembles ; + + \hfill{}défaut : \Cle{\$\textbackslash mathcal\{E\}\$/\$\textbackslash mathcal\{F\}\$/\$\textbackslash mathcal\{G\}\$} + \item \Cle{PosLabels} := position des labels, parmi \Cle{haut/bas}. \hfill{}défaut : \Cle{bas} +\end{itemize} + +Le deuxième argument, optionnel et entre \texttt{<...>} propose des options, en langage \packagetex!tikz! à passer à l'environnement. + +\smallskip + +Les arguments \texttt{3} et \texttt{4}, obligatoires et entre \texttt{\{...\}}, permettent de préciser les \textit{liaisons} sous la forme \verb!x1/f(x1),x2/f(x2),...! et \verb!y1/g(y1),y2/g(y2),...! . +\end{tipblock} + +\subsection{Exemples} + +\begin{DemoCode}[] +\DiagrammeSagittalCompo% + [DistElem=1,DistEns=5,LargEns=1.75,Police={\Large\ttfamily},% + Epaisseur=1pt,NomApplis={$h$/$\varphi$},CouleursFleches={teal/lime},% + E={a,b,c,d,e,f},F={A,C,H,P},G={1,2,3,4,5},PoliceLabels=\Large]% + {a/A,a/P,b/H,e/P,c/C}% + {A/5,C/3,H/3,P/4}% +\end{DemoCode} + +\begin{DemoCode}[] +\DiagrammeSagittalCompo% + [E={a,b,c,d,e},F={1,2,3,4,5,6,7},G={a,b,c,d,e},% + Ensembles={E/F/E}]% + {a/1,b/2,c/4,d/5,e/6}% + {1/a,2/b,3/b,4/c,5/d,6/e,7/e}% +\end{DemoCode} + +\begin{DemoCode}[] +\begin{tikzpicture} + \DiagrammeSagittalCompo*% + [E={a,b,c,d,e},F={1,2,3,4,5,6,7},G={a,b,c,d,e},% + Ensembles={E/F/E}]% + {a/1,b/2,c/4,d/5,e/6}% + {1/a,2/b,3/b,4/c,5/d,6/e,7/e}% + \draw[orange!50!black,<-,thick,dashed,>=Latex] ($(Gc)+(12pt,0)$) to[bend left=10]++ (2,-1) node[right] {\parbox{4cm}{On a donc $g\,{\small\circ\,}f(c)=c$}} ; +\end{tikzpicture} +\end{DemoCode} + +\pagebreak + +\section{Table de vérité} + +\subsection{Commande et fonctionnement global} + +\begin{cautionblock} +La commande dédiée à la création d'une table de vérité (à deux variables minimum) est \motcletex!\TableVerite!. + +La commande est accessible \textbf{uniquement} en cas d'une compilation en \hologo{LuaLaTeX} ! + +Le tableau est créé grâce au package \packagetex!nicematrix!. +\end{cautionblock} + +\begin{importantblock} +Une \textbf{double compilation} peut être nécessaire pour le placement correct des filets ! + +Les fonction \textsf{LUA} utilisées sont issues du \packagetex!luatruthtable!, elles sont légèrement modifiées pour \textit{coller} à une présentation plus classique. +\end{importantblock} + +\begin{DemoCode}[listing only] +\TableVerite[clés]{vars}{colonnes_vars}{calculs}{colonnes_calculs} +\end{DemoCode} + +\begin{DemoCode}[] +\TableVerite{P}{$P$}% + {lognot*P,P*logand*P,P*logor*P,P*iff*P,P*imp*P}% + {$\lnot P$,$P \land P$,$P \lor P$,$P \Leftrightarrow P$,$P \Rightarrow P$} +\end{DemoCode} + +\begin{DemoCode}[] +\TableVerite{P,Q}{$P$,$Q$}{lognot*P,P*logand*Q}{$\lnot P$,$P \land Q$} +\end{DemoCode} + +\subsection{Arguments et clés pour la commande} + +\begin{DemoCode}[listing only] +\TableVerite[clés]{vars}{colonnes_vars}{calculs}{colonnes_calculs} +\end{DemoCode} + +\begin{tipblock} +En ce qui concerne la création du tableau, les \Cle{clés} sont : + +\begin{itemize} + \item \Cle{VF} := pour préciser Vrai/Faux ; \hfill~défaut : \Cle{V/F} + \item \Cle{Swap} := booléen pour commencer par FFF au lieu de VVV ; \hfill~défaut : \Cle{false} + \item \Cle{LargeursColonnes} := largeur des colonnes, \Cle{auto} ou \Cle{largeurG} ou \Cle{LargeurVar/LargeurCalc} ; + + \hfill~défaut : \Cle{auto} + \item \Cle{CouleurEnonce} := couleur de fond de la première ligne ; \hfill~défaut : \Cle{vide} + \item \Cle{CodeAvant} := code \texttt{CodeBefore} (et avant l'éventuel coloriage de la première ligne) pour \motcletex!nicetabular! ; + + \hfill~défaut : \Cle{vide} + \item \Cle{CodeApres} := code \texttt{CodeAfter} pour \motcletex!nicetabular!. \hfill~défaut : \Cle{vide} +\end{itemize} + +Le deuxième argument, optionnel et entre \texttt{<...>} propose des options, en langage \packagetex!nicematrix! à passer à la commande. +\end{tipblock} + +\pagebreak + +\begin{tipblock} +Le troisième argument, obligatoire et entre \texttt{\{...\}}, permet de spécifier les calculs à effectuer, en langage \motcletex!luatruthtable!, notamment : + +\begin{itemize} + \item \texttt{lognot*} pour le \textsf{CONTRAIRE} ; + \item \texttt{*logand*} pour le \textsf{ET} ; + \item \texttt{*logor*} pour le \textsf{OU} ; + \item \texttt{*iff*} pour le \textsf{ÉQUIVALENT} ; + \item \texttt{*imp*} pour le \textsf{IMPLIQUE} ; + \item le reste est disponible dans la documentation (\url{http://mirrors.ctan.org/macros/luatex/latex/luatruthtable/luatruthtable.pdf}). +\end{itemize} + +Le dernier argument, obligatoire et entre \texttt{\{...\}}, permet de spécifier les labels des calculs, en langage \LaTeX{} cette fois-ci. +\end{tipblock} + +\subsection{Compléments pour le package luatruthtable} + +\begin{tipblock} +Le tableau suivant présente les connecteurs logiques issues du package \packagetex!luatruthtable! : + +\begin{center} + \begin{tblr}{colspec={Q[m,l]Q[m,l]Q[m,l]Q[m,l]},row{1}={fg=red!50!black,font=\sffamily},cell{2-Z}{1-2}={fg=cyan!75!black},column{3}={c}} + \toprule + Opérateur & Syntaxe & Expression & Description \\ + \toprule + \texttt{lognot*} & \texttt{lognot*P} & $\lnot P$ & Négation de P \\ + \midrule + \texttt{*logand*} & \texttt{P*logand*Q} & $P \land Q$ & Conjonction (et) de P et Q \\ + \midrule + \texttt{*logor*} & \texttt{P*logor*Q} & $P \lor Q$ & Disjonction (ou) de P et Q \\ + \midrule + \texttt{*imp*} & \texttt{P*imp*Q} & $P \Rightarrow Q$ & Implication de P vers Q \\ + \midrule + \texttt{*iff*} & \texttt{P*iff*Q} & $P \Leftrightarrow Q$ & Équivalence de P et Q \\ + \midrule + \texttt{*lognand*} & \texttt{P*lognand*Q} & $\lnot(P \land Q)$ & NAND de P et Q \\ + \midrule + \texttt{*logxor*} & \texttt{P*logxor*Q} & $(P \lor Q) \land \lnot (P \land Q)$ & XOR de P et Q \\ + \midrule + \texttt{*lognor*} & \texttt{P*lognor*Q} & $\lnot(P \lor Q)$ & NOR de P et Q \\ + \midrule + \texttt{*logxnor*} & \texttt{P*logxnor*Q} & $(P \land Q) \lor (\lnot P \land \lnot Q)$ & XNOR de P et Q \\ + \bottomrule + \end{tblr} +\end{center} +\end{tipblock} + +\subsection{Exemples} + +\begin{DemoCode}[] +\TableVerite{P,Q}{$P$,$Q$}{lognot*P,P*logand*Q}{$\lnot P$,$P \land Q$} +\end{DemoCode} + +\begin{DemoCode}[] +\TableVerite[LargeursColonnes=2cm]{P,Q}{$P$,$Q$}{lognot*P,P*logand*Q}{$\lnot P$,$P \land Q$} +\end{DemoCode} + +\begin{DemoCode}[] +\TableVerite[LargeursColonnes=1cm/2cm]{P,Q}{$P$,$Q$}{lognot*P,P*logand*Q}{$\lnot P$,$P \land Q$} +\end{DemoCode} + +\begin{DemoCode}[] +\TableVerite[CouleurEnonce=lightgray!25]{P,Q}{$P$,$Q$}{lognot*P,P*logand*Q}{$\lnot P$,$P \land Q$} +\end{DemoCode} + +\begin{DemoCode}[] +\TableVerite% + [CodeAvant={\columncolor{red!15}{1}\columncolor{teal!15}{4}}]% + {P,Q}{$P$,$Q$}{lognot*P,P*logand*Q}{$\lnot P$,$P \land Q$} +\end{DemoCode} + +\begin{DemoCode}[] +\TableVerite% + [CodeApres={\UnderBrace[yshift=4pt]{1-4}{5-4}{et}}]% + {P,Q}{$P$,$Q$}{lognot*P,P*logand*Q}{$\lnot P$,$P \land Q$} +\hspace{5mm} +\TableVerite% + [Swap,CodeApres={\UnderBrace[yshift=4pt]{1-4}{5-4}{et}}]% + {P,Q}{$P$,$Q$}{lognot*P,P*logand*Q}{$\lnot P$,$P \land Q$} +\hspace{5mm} +\TableVerite% + [VF={Vrai/Faux},CodeApres={\UnderBrace[yshift=4pt]{1-4}{5-4}{et}}]% + {P,Q}{$P$,$Q$}{lognot*P,P*logand*Q}{$\lnot P$,$P \land Q$} +\vspace*{0.75cm} +\end{DemoCode} + +\begin{DemoCode}[] +\TableVerite% + [CodeAvant={\columncolor{red!15}{5}\columncolor{red!15}{8}}]% + {P,Q,R}% + {$P$,$Q$,$R$}% + {% + Q*logand*R,P*logor*(Q*logand*R),P*logor*Q,% + Q*logor*R,(P*logor*Q)*logand*(P*logor*R) + }% + {$Q \land R$,$P \lor (Q \land R)$,$P \lor Q$,$Q \lor R$,$(P \lor Q) \land (P \lor R)$} +\end{DemoCode} + +\begin{DemoCode}[] +%Loi de De Morgan + +\TableVerite% + [CouleurEnonce=lightgray!15,LargeursColonnes=0.75cm/2cm,% + CodeAvant={\columncolor{teal!10}{6}\columncolor{teal!10}{7}}]% + {P,Q}{$P$,$Q$}% + {lognot*P,lognot*Q,P*logand*Q, + lognot*(P*logand*Q),(lognot*P)*logor*(lognot*Q)}% + {$\lnot P$,$\lnot Q$,$P\land Q$,$\lnot(P\land Q)$,$(\lnot P)\lor(\lnot Q)$} + +\TableVerite% + [CouleurEnonce=lightgray!15,LargeursColonnes=0.75cm/2cm,VF={1/0},% + CodeAvant={\columncolor{orange!10}{6}\columncolor{orange!10}{7}}]% + {P,Q}{$P$,$Q$}% + {lognot*P,lognot*Q,P*logand*Q, + lognot*(P*logand*Q),(lognot*P)*logor*(lognot*Q)}% + {$\lnot P$,$\lnot Q$,$P\land Q$,$\lnot(P\land Q)$,$(\lnot P)\lor(\lnot Q)$} +\end{DemoCode} + \end{document} \ No newline at end of file -- cgit v1.2.3