diff options
author | Karl Berry <karl@freefriends.org> | 2022-02-27 22:26:58 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-02-27 22:26:58 +0000 |
commit | b55858f82e22d625ab6e3094defeaa696aa08dfc (patch) | |
tree | bcdf924be14d84af35a3c67a34ee0a36d34c3ed1 /Master | |
parent | fd8ff11f705db23ee18d65a10dc6d39d28bf22b0 (diff) |
proflycee
git-svn-id: svn://tug.org/texlive/trunk@62259 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf | bin | 408204 -> 470786 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex | 739 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty | 24 |
3 files changed, 466 insertions, 297 deletions
diff --git a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf Binary files differindex 09ebf25b67c..44f495b110d 100644 --- a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf +++ b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf diff --git a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex index 9e58664e9d6..9ba28f0b311 100644 --- a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex +++ b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex @@ -8,7 +8,7 @@ \usepackage[scaled=0.875]{helvet} \renewcommand\ttdefault{lmtt} \usepackage[scaled=0.875]{cabin} -\usepackage{ProfLycee} +\usepackage[build]{ProfLycee} \usetikzlibrary{hobby} \usepackage{siunitx} \usepackage{graphics} @@ -20,7 +20,6 @@ \usepackage{hyperref} \hypersetup{pdfborder=0 0 0} -\usepackage{minted} \sisetup{locale=FR} \usepackage{geometry} \geometry{margin=1.5cm} @@ -37,7 +36,6 @@ \tcbset{vignettes/.style={% nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,% boxrule=0.75pt,left=7pt,right=1pt,top=0pt,bottom=0.25pt,% - %before upper={{\normalsize \vphantom{pf}}} } } \tcbset{vignettelatex/.style={% @@ -49,6 +47,23 @@ \end{tcbclipinterior}} } } + +\newtcblisting{codetex}[1][]{% + colback=white,colframe=red!75!black,title={\small \faCode} Code \LaTeX,fonttitle=\sffamily\bfseries,left=3pt,right=3pt,top=2pt,bottom=2pt,#1} + +\newtcolorbox{codesortie}[1][]{% + colback=white,colframe=red!75!black,title={\small \faArrowAltCircleRight[regular]} Sortie \LaTeX,fonttitle=\sffamily\bfseries,left=3pt,right=3pt,top=2pt,bottom=2pt,#1} + +\newtcolorbox{codeidee}[1][]{% + colback=white,colframe=PeachPuff!75!black,title={\small \faLightbulb[regular]} Idée(s),fonttitle=\sffamily\bfseries,left=3pt,right=3pt,top=2pt,bottom=2pt,#1} + +\newtcolorbox{codeinfo}[1][]{% + colback=white,colframe=SteelBlue,title={\small \faPuzzlePiece} Information(s),fonttitle=\sffamily\bfseries,left=3pt,right=3pt,top=2pt,bottom=2pt,#1} + +\newtcolorbox{codecles}[1][]{% + colback=white,colframe=ForestGreen!75,title={\small \faPaperclip} Clés et options,fonttitle=\sffamily\bfseries,left=3pt,right=3pt,top=2pt,bottom=2pt,#1} + +%petite vignette tex \newcommand\ctex[1]{\tcbox[vignettelatex]{#1}} %gestion de la fenêtre v2 directement dans le tikzpicture @@ -137,7 +152,7 @@ {\ttfamily c pierquet -- at -- outlook . fr} \end{tabular} } -\date{Version 1.0.6 -- 18 Février 2022} +\date{Version 1.0.7 -- 21 Février 2022} \newcommand\Cle[1]{{\bfseries\sffamily\textlangle #1\textrangle}} @@ -168,7 +183,7 @@ Quelques environnements (\textsf{tcbox}) pour présenter des commandes dans un t \medskip -\begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]}} +\begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}} {\huge \LaTeX} & & & & &\\ & {\huge \pdfLaTeX} & & & & \\ & & {\huge \LuaLaTeX} & & & \\ @@ -181,8 +196,6 @@ Quelques environnements (\textsf{tcbox}) pour présenter des commandes dans un t \hrule - - \vfill ~ @@ -197,36 +210,94 @@ Quelques environnements (\textsf{tcbox}) pour présenter des commandes dans un t \subsection{\og Philosophie \fg{} du package} +\begin{codeidee} Ce \ctex{package}, très largement inspiré (et beaucoup moins abouti !) de l'excellent \ctex{ProfCollege} de C. Poulain et des excellents \ctex{tkz-*} d'A. Matthes, va définir quelques outils pour des situations particulières qui ne sont pas encore dans \ctex{ProfCollege}. On peut le voir comme un (maigre) complément à \ctex{ProfCollege}, et je précise que la syntaxe est très proche (car pertinente de base) et donc pas de raison de changer une équipe qui gagne ! \medskip -Il se charge, dans le préambule, par \ctex{\textbackslash usepackage\{ProfLycee\}}. +Il se charge, dans le préambule, par \ctex{\textbackslash usepackage\{ProfLycee\}}. Il charge quelques \textsf{packages} utiles, mais j'ai fait le choix de laisser l'utilisateur gérer ses autres \textsf{packages}, comment notamment \ctex{amssymb} qui peut poser souci en fonction de la \textit{position} de son chargement. + +L'utlisateur est libre de charger ses autres \textsf{packages} utiles et habituels, ainsi que ses \textsf{polices} et \textsf{encodages} habituels. +\end{codeidee} + +\smallskip + +\begin{codeinfo} +Le \textsf{package} \ctex{ProfLycee} charge les \textsf{packages} : + +\begin{itemize} + \item \ctex{xcolor} avec les options \textsf{[table,svgnames]} ; + \item \ctex{tikz}, \ctex{pgf}, \ctex{xfp} ; + \item \ctex{xparse}, \ctex{xkeyval}, \ctex{xstring}, \ctex{simplekv} ; + \item \ctex{listofitems}, \ctex{xintexpr} ; + \item \ctex{tabularray}, \ctex{fontawesome5}, \ctex{tcolorbox}. +\end{itemize} +\end{codeinfo} + +\smallskip + +\begin{codeidee} +J'ai utilisé les \ctex{packages} du phénoménal C. Tellechea, je vous conseille d'aller jeter un œil sur ce qu'il est possible de faire en \LaTeX{} avec \ctex{listofitems}, \ctex{randomlist}, \ctex{simplekv} et \ctex{xstring} ! +\end{codeidee} -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=2]{tex} +\smallskip + +\begin{codetex}[listing only] \documentclass{article} \usepackage[french]{babel} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{ProfLycee} ... -\end{minted} +\end{codetex} -\medskip +\subsection{Options du package} -Par défaut, \ctex{minted} est chargé est donc la compilation nécessite d'utiliser \textsf{shell-escape}. Cependant, si vous ne souhaitez pas utiliser les commandes nécessitant \ctex{minted} vous pouvez charger le package \ctex{ProfLycee} avec l'option \Cle{nominted}. +\begin{codeinfo} +Par défaut, \ctex{minted} est chargé et donc la compilation nécessite d'utiliser \textsf{shell-escape}. Cependant, si vous ne souhaitez pas utiliser les commandes nécessitant \ctex{minted} vous pouvez charger le package \ctex{ProfLycee} avec l'option \Cle{nominted}. +\end{codeinfo} + +\smallskip -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=2]{tex} +\begin{codetex}[listing only] ... \usepackage[nominted]{ProfLycee} ... -\end{minted} +\end{codetex} + +\medskip + +\begin{codeinfo} +En compilant (notamment avec les packages \ctex{minted} et \ctex{pythontex}) on peut spécifier des répertoires particuliers pour les (ou des) fichiers auxiliaires. + +Avec l'option \Cle{build}, l'utilisateur a la possibilité de placer les fichiers temporaires de \ctex{minted} et \ctex{pythontex} dans un répertoire \textsf{build} du répertoire courant. +\end{codeinfo} + +\smallskip + +\begin{codetex}[listing only] +... +\usepackage[build]{ProfLycee} +... +\end{codetex} + +\smallskip + +\begin{codeinfo} +Les options précédentes sont cumulables, et, pour info, elles conditionnent le chargement des \textsf{packages} avec les options : + +\begin{itemize} + \item \ctex{\textbackslash setpythontexoutputdir\{./build/pythontex-files-\textbackslash jobname\}} + \item \ctex{\textbackslash RequirePackage[outputdir=build]\{minted\}} +\end{itemize} +\end{codeinfo} \subsection{Le système de \og clés/options \fg} -L'idée est de conserver l'idée de \Cle{Clés} qui sont : +\begin{codeidee} +L'idée est de conserver -- autant que faire se peut -- l'idée de \Cle{Clés} qui sont : % \begin{itemize} \item modifiables ; @@ -234,13 +305,25 @@ L'idée est de conserver l'idée de \Cle{Clés} qui sont : \end{itemize} Pour certaines commandes, le système de \Cle{Clés} pose quelques soucis, de ce fait le fonctionnement est plus \textit{basique} avec un système d'\textsf{arguments} optionnels (entre \textsf{[\ldots]}) ou mandataires (entre \textsf{\{\ldots\}}). +\end{codeidee} -\medskip +\smallskip + +\begin{codeinfo} +Les \textsf{commandes} et \textsf{environnements} présentés seront explicités via leur \textsf{syntaxe} avec les \textsf{options} ou \textsf{arguments}. + +Autant que faire se peut, des exemples/illustrations/remarques seront proposés à chaque fois. + +\smallskip + +Les \textsf{codes} seront présentés dans des \textsf{boîtes} \textcolor{red!75!black}{{\small \faCode} Code \LaTeX}, si possible avec la \textsf{sortie} dans la même boîte, et sinon la \textsf{sortie} sera visible dans des \textsf{boîtes} \textcolor{red!75!black}{{\small \faArrowAltCircleRight[regular]} Sortie \LaTeX}. -J'ai utilisé également les \ctex{packages} du phénoménal C. Tellechea, je vous conseille d'aller jeter un œil sur ce qu'il est possible de faire en \LaTeX{} avec \ctex{listofitems}, \ctex{randomlist}, \ctex{simplekv} et \ctex{xstring} ! +Les \textsf{clés} ou \textsf{options} seront présentées dans des \textsf{boîtes} \textcolor{ForestGreen}{{\small \faPaperclip} Clés}. +\end{codeinfo} \subsection{Outils disponibles} +\begin{codeidee} Le \ctex{package}, qui s'enrichira peut-être au fil du temps permet -- pour le moment -- de : \begin{itemize} @@ -250,14 +333,18 @@ Le \ctex{package}, qui s'enrichira peut-être au fil du temps permet -- pour le \item mettre en forme du code \textsf{python} ou \textsf{pseudocode} ; \item simuler une fenêtre de terminal (win/unix/osx). \end{itemize} +\end{codeidee} -\medskip +\smallskip +\begin{codeinfo} À noter que certaines commandes disponibles sont liées à un environnement \ctex{tikzpicture}, elles ne sont pas autonomes mais permettent de conserver -- en parallèle -- toute commande liée à \TikZ{} ! +\end{codeinfo} \subsection{Compilateur(s)} -Le package\ctex{ProfLycee} est compatible avec les compilateurs classiques : \textsf{latex}, \textsf{pdflatex} ou encore \textsf{lualatex}. +\begin{codeinfo} +Le package \ctex{ProfLycee} est compatible avec les compilateurs classiques : \textsf{latex}, \textsf{pdflatex} ou encore \textsf{lualatex}. \smallskip @@ -267,43 +354,9 @@ En ce qui concerne les codes \textsf{python} et/ou \textsf{pseudocode}, il faudr \item compiler en chaîne \textsf{pdflatex + pythontex + pdflatex} pour les environnements avec \ctex{pythontex} ; \item compiler avec \textsf{shell-escape} (ou \textsf{write18}) pour les environnements avec \ctex{minted}. \end{itemize} +\end{codeinfo} + -%\bigskip -% -%\begin{center} -% \begin{tikzpicture}[x=0.9cm,y=0.9cm,xmin=-1,xmax=11,xgrille=1,xgrilles=0.5,ymin=-1,ymax=5,ygrille=1,ygrilles=0.5] -% %axes et grilles -% \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.3pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax); -% \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.6pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax); -% \draw[line width=1.5pt,->,gray] (\xmin,0)--(\xmax,0) ; -% \draw[line width=1.5pt,->,gray] (0,\ymin)--(0,\ymax) ; -% \foreach \x in {0,1,...,10} {\draw[gray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;} -% \foreach \y in {0,1,...,4} {\draw[gray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;} -% \draw[darkgray] (1,-4pt) node[below,font=\sffamily] {1} ; -% \draw[darkgray] (-4pt,1) node[left,font=\sffamily] {1} ; -% %splines -% \def\LISTE{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10} -% \splinetikz[liste=\LISTE,affpoints=true,coeffs=3,couleur=red] -% %tangentes -% \tangentetikz[liste=\LISTE,xl=0,xr=1,couleur=ForestGreen,style=dashed] -% \tangentetikz[liste=\LISTE,xl=1,xr=1,couleur=ForestGreen,style=dashed,point=2] -% \tangentetikz[liste=\LISTE,xl=1,xr=1,couleur=ForestGreen,style=dashed,point=3] -% \tangentetikz[liste=\LISTE,xl=1,xr=1,couleur=ForestGreen,style=dashed,point=4] -% \tangentetikz[liste=\LISTE,xl=0.5,xr=0,couleur=ForestGreen,style=dashed,point=5] -% -% \end{tikzpicture} -%\end{center} -% -%\medskip -% -%\begin{center} -% \begin{tikzpicture}[x=1cm,y=1cm,line width=1pt] -% \paramCF[titre=true] -% \ligneCF{\textsf{(x+1)\CFchap2}}{$\mathsf{x^2+2x+1}$} -% \ligneCF{\texttt{(x+1)\CFchap2}}{$\mathtt{x^2+2x+1}$} -% \ligneCF{\textsf{Dérivée[(x+5)*exp(-0.1*x)]}}{$\mathsf{\rightarrow (0.5-0.1*x)*exp(-0.1*x)}$} -% \end{tikzpicture} -%\end{center} \newpage @@ -311,12 +364,13 @@ En ce qui concerne les codes \textsf{python} et/ou \textsf{pseudocode}, il faudr \subsection{Courbe d'interpolation} +\begin{codeinfo} On va utiliser les notions suivantes pour paramétrer le tracé \og automatique \fg{} grâce à \ctex{..controls} : % \begin{itemize} \item il faut rentrer les \textcolor{purple}{\textsf{points de contrôle}} ; \item il faut préciser les \textcolor{ForestGreen}{\textsf{pentes des tangentes}} (pour le moment on travaille avec les mêmes à gauche et à droite\ldots) ; - \item on peut paramétrer les \textcolor{Aquamarine}{\textsf{coefficients}} pour \og affiner \fg{} les portions. + \item on peut paramétrer les \textcolor{CadetBlue}{\textsf{coefficients}} pour \og affiner \fg{} les portions. \end{itemize} \medskip @@ -337,74 +391,80 @@ Pour déclarer les paramètres : \item on peut mixer avec \averb|coeffs=C1§C2G/C2D§...|. \end{itemize} \end{itemize} +\end{codeinfo} -\subsection{Clés et options} - -La commande \ctex{\textbackslash splinetikz} se présente sous la forme : +\subsection{Code, clés et options} -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=2]{tex} +\begin{codetex}[listing only] \begin{tikzpicture} ... - \splinetikz[liste=...,coeffs=...,affpoints=...,couleur=...,epaisseur=...,taillepoints=...,couleurpoints=...,style=...] + \splinetikz[liste=...,coeffs=...,affpoints=...,couleur=...,epaisseur=...,% + taillepoints=...,couleurpoints=...,style=...] ... \end{tikzpicture} -\end{minted} +\end{codetex} -Certains paramètres peuvent être gérés directement dans la commande \ctex{\textbackslash splinetikz} : +\smallskip +\begin{codecles} +Certains paramètres peuvent être gérés directement dans la commande \ctex{\textbackslash splinetikz} : +% \begin{itemize} - \item la couleur de la courbe est \textcolor{red}{rouge}, gérée par la \textsf{clé} \Cle{couleur=...} ; - \item l'épaisseur de la courbe est de \textcolor{red}{1.25pt}, gérée par la \textsf{clé} \Cle{epaisseur=...} ; - \item du style supplémentaire pour la courbe peut être rajouté, grâce à la \textsf{clé} \Cle{style=...} ; - \item les coefficients de \textit{compensation} sont par défaut à 3, gérés par la \textsf{clé} \Cle{coeffs=...} - \item les points de contrôle ne sont pas affichés par défaut, mais \textsf{clé booléenne} \Cle{affpoints=true} permet de les afficher ; - \item la taille des points de contrôle est géré par la \textsf{clé} \Cle{taillepoints=...}. + \item la couleur de la courbe par la \textsf{clé} \Cle{couleur} ;\hfill{}défaut \Cle{red} + \item l'épaisseur de la courbe par la \textsf{clé} \Cle{epaisseur} ;\hfill{}défaut \Cle{1.25pt} + \item du style supplémentaire pour la courbe peut être rajouté, grâce à la \textsf{clé} \Cle{style=} ;\hfill{}défaut \Cle{vide} + \item les coefficients de \textit{compensation} gérés par la \textsf{clé} \Cle{coeffs} ;\hfill{}défaut \Cle{3} + \item les points de contrôle ne sont pas affichés par défaut, mais \textsf{clé booléenne} \Cle{affpoints} permet de les afficher ;\hfill{}défaut \Cle{true} + \item la taille des points de contrôle est géré par la \textsf{clé} \Cle{taillepoints}.\hfill{}défaut \Cle{2pt} \end{itemize} +\end{codecles} -\newpage +\subsection{Compléments sur les coefficients de \og compensation \fg} -\subsection{Exemples} +\begin{codeidee} +Le choix a été fait ici, pour \textit{simplifier} le code, le travailler sur des courbes de Bézier. -La commande : +Pour \textit{simplifier} la gestion des nombres dérivés, les points de contrôle sont gérés par leurs coordonnées \textit{polaires}, les \textsf{coefficients de compensation} servent donc -- grosso modo -- à gérer la position radiale. -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=2]{tex} -\begin{center} - \begin{tikzpicture}[x=0.9cm,y=0.9cm,xmin=-1,xmax=11,xgrille=1,xgrilles=0.5,ymin=-1,ymax=5,ygrille=1,ygrilles=0.5] - %axes et grilles - \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.3pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax); - \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.6pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax); - \draw[line width=1.5pt,->,gray] (\xmin,0)--(\xmax,0) ; - \draw[line width=1.5pt,->,gray] (0,\ymin)--(0,\ymax) ; - \foreach \x in {0,1,...,10} {\draw[gray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;} - \foreach \y in {0,1,...,4} {\draw[gray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;} - \draw[darkgray] (1,-4pt) node[below,font=\sffamily] {1} ; - \draw[darkgray] (-4pt,1) node[left,font=\sffamily] {1} ; - %splines - \def\LISTE{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10} - \splinetikz[liste=\LISTE,affpoints=true,coeffs=3,couleur=red] - \end{tikzpicture} -\end{center} -\end{minted} +\smallskip -produit la figure suivante : +Le coefficient \Cle{3} signifie que, pour une courbe de Bézier entre $x=a$ et $x=b$, les points de contrôles seront situés à une distance radiale de $\frac{b-a}{3}$. -\begin{center} - \begin{tikzpicture}[x=0.9cm,y=0.9cm,xmin=-1,xmax=11,xgrille=1,xgrilles=0.5,ymin=-1,ymax=5,ygrille=1,ygrilles=0.5] - %axes et grilles - \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.3pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax); - \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.6pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax); - \draw[line width=1.5pt,->,gray] (\xmin,0)--(\xmax,0) ; - \draw[line width=1.5pt,->,gray] (0,\ymin)--(0,\ymax) ; - \foreach \x in {0,1,...,10} {\draw[gray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;} - \foreach \y in {0,1,...,4} {\draw[gray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;} - \draw[darkgray] (1,-4pt) node[below,font=\sffamily] {1} ; - \draw[darkgray] (-4pt,1) node[left,font=\sffamily] {1} ; - %splines - \def\LISTE{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10} - \splinetikz[liste=\LISTE,affpoints=true] - \end{tikzpicture} -\end{center} +Pour \textit{écarter} les points de contrôle, on peut du coup \textsf{réduire} le coefficient de compensation ! +\medskip + +Pour des intervalles \textit{étroits}, la \textit{pente} peut paraître abrupte, et donc le(s) coefficient(s) peuvent être modifiés, de manière fine. + +\medskip + +Si jamais il existe ou ou des points \textit{anguleux}, le plus simple est de créer les splines en plusieurs fois. +\end{codeidee} + +\subsection{Exemples} + +\begin{codetex}[tikz lower] +%code tikz +\def\x{0.9cm}\def\y{0.9cm} +\def\xmin{-1}\def\xmax{11}\def\xgrille{1}\def\xgrilles{0.5} +\def\ymin{-1}\def\ymax{5}\def\ygrille{1}\def\ygrilles{0.5} +%axes et grilles +\draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.3pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax); +\draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.6pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax); +\draw[line width=1.5pt,->,gray] (\xmin,0)--(\xmax,0) ; +\draw[line width=1.5pt,->,gray] (0,\ymin)--(0,\ymax) ; +\foreach \x in {0,1,...,10} {\draw[gray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;} +\foreach \y in {0,1,...,4} {\draw[gray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;} +\draw[darkgray] (1,-4pt) node[below,font=\sffamily] {1} ; +\draw[darkgray] (-4pt,1) node[left,font=\sffamily] {1} ; +%splines +\def\LISTE{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10} +\splinetikz[liste=\LISTE,affpoints=true,coeffs=3,couleur=red] +\end{codetex} + +\smallskip + +\begin{codeinfo} Avec des explications utiles à la compréhension : \begin{center} @@ -416,23 +476,24 @@ Avec des explications utiles à la compréhension : \listecoeffs{3}{3}{3}{3} \end{tikzpicture} \end{center} +\end{codeinfo} \newpage \subsection{Avec une gestion plus fine des \og coefficients \fg} +\begin{codeinfo} Dans la majorité des cas, le \textit{coefficient} \textcircled{3} permet d'obtenir une courbe (ou une portion) très satisfaisante ! -Dans certains cas, notamment si l'une des pentes est relativement \og forte \fg{} et/ou si l'intervalle horizontal de la portion est relativement \og étroit \fg, il se peut que la portion paraisse un peu trop \og abrupte \fg{}. +Dans certains cas, il se peut que la portion paraisse un peu trop \og abrupte \fg{}. -On peut dans ce cas \textit{jouer} sur les coefficients de cette portion pour \textit{arrondir} un peu tout cela ! +On peut dans ce cas \textit{jouer} sur les coefficients de cette portion pour \textit{arrondir} un peu tout cela (\textit{ie} diminuer le \textsf{coeff}\ldots)! -Ces fameux \textit{coefficients} peuvent : -\begin{itemize} - \item être donnés (pour utiliser le même partout) sous la forme \Cle{coeffs=C} ; - \item être donnés portion par portion, sous la forme \Cle{coeffs=C1§C2§...} ; - \item être donné de manière très fine, portion par portion et côté par côté, sous la forme \Cle{coeffs=C1G/C1D§C2G/C2D§...}. -\end{itemize} +%\begin{itemize} +% \item être donnés (pour utiliser le même partout) sous la forme \Cle{coeffs=C} ; +% \item être donnés portion par portion, sous la forme \Cle{coeffs=C1§C2§...} ; +% \item être donné de manière très fine, portion par portion et côté par côté, sous la forme \Cle{coeffs=C1G/C1D§C2G/C2D§...}. +%\end{itemize} \begin{center} \begin{tikzpicture}[x=0.9cm,y=0.9cm,xmin=-1,xmax=11,xgrille=1,xgrilles=0.5,ymin=-1,ymax=7,ygrille=1,ygrilles=0.5] @@ -445,17 +506,19 @@ Ces fameux \textit{coefficients} peuvent : \listecoeffs{3/3}{3/3}{3/3}{2/1} \end{tikzpicture} \end{center} +\end{codeinfo} -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=2]{tex} -\begin{center} +\smallskip + +\begin{codetex}[listing only] ... %splines \def\LISTE{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10} \splinetikz[liste=\LISTE,affpoints=true,coeffs=3§3§3§2/1] ... -\end{center} -\end{minted} +\end{codetex} +\begin{codesortie} \begin{center} \begin{tikzpicture}[x=0.9cm,y=0.9cm,xmin=-1,xmax=11,xgrille=1,xgrilles=0.5,ymin=-1,ymax=5,ygrille=1,ygrilles=0.5] %axes et grilles @@ -467,15 +530,17 @@ Ces fameux \textit{coefficients} peuvent : \foreach \y in {0,1,...,4} {\draw[gray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;} \draw[darkgray] (1,-4pt) node[below,font=\sffamily] {1} ; \draw[darkgray] (-4pt,1) node[left,font=\sffamily] {1} ; - \draw (1,-4pt) node[below,font=\sffamily] {1} ; - \draw (-4pt,1) node[left,font=\sffamily] {1} ; +% \draw (1,-4pt) node[below,font=\sffamily] {1} ; +% \draw (-4pt,1) node[left,font=\sffamily] {1} ; \def\LISTE{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10} \splinetikz[liste=\LISTE,affpoints=true,coeffs=3§3§3§2/1] \end{tikzpicture} \end{center} +\end{codesortie} \subsection{Conclusion} +\begin{codeinfo} Le plus \og simple \fg{} est donc: % \begin{itemize} @@ -483,10 +548,7 @@ Le plus \og simple \fg{} est donc: \item de saisir la commande \ctex{\textbackslash splinetikz[liste=\textbackslash LISTE]} ; \item d'ajuster les options et coefficients en fonction du rendu ! \end{itemize} - -\medskip - -Si jamais il existe ou ou des points \textit{anguleux}, le plus simple est de créer les splines en plusieurs fois. +\end{codeinfo} \newpage @@ -494,24 +556,27 @@ Si jamais il existe ou ou des points \textit{anguleux}, le plus simple est de cr \subsection{Définitions} +\begin{codeidee} En parallèle de l'outil \ctex{\textbackslash splinetikz}, il existe l'outil \ctex{\textbackslash tangentetikz} qui va permettre de tracer des tangentes à l'aide de la liste de points précédemment définie pour l'outil \ctex{\textbackslash splinetikz}. \smallskip NB : il peut fonctionner indépendamment de l'outil \ctex{\textbackslash splinetikz} puisque la liste des points de travail est gérée de manière autonome ! +\end{codeidee} -\medskip - -La commande \ctex{\textbackslash tangentetikz} se présente sous la forme : +\smallskip -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=2]{tex} +\begin{codetex}[listing only] \begin{tikzpicture} ... \tangentetikz[liste=...,couleur=...,epaisseur=...,xl=...,xr=...,style=...,point=...] ... \end{tikzpicture} -\end{minted} +\end{codetex} + +\smallskip +\begin{codecles} Cela permet de tracer la tangente : % \begin{itemize} @@ -519,11 +584,29 @@ Cela permet de tracer la tangente : \item avec une épaisseur de \Cle{epaisseur}, une couleur \Cle{couleur} et un style additionnel \Cle{style} ; \item en la traçant à partir de \Cle{xl} avant \textsf{xi} et jusqu'à \Cle{xr} après \textsf{xi}. \end{itemize} +\end{codecles} \subsection{Exemple et illustration} +\begin{codetex}[listing only] +\begin{tikzpicture} + ... + \def\LISTE{0/1.5/0§1/2/-0.333§2/0/-5} + %spline + \splinetikz[liste=\LISTE,affpoints=true,coeffs=3§2,couleur=red] + %tangente + \tangentetikz[liste=\LISTE,xl=0,xr=0.5,couleur=ForestGreen,style=dashed] + \tangentetikz[liste=\LISTE,xl=0.5,xr=0.75,couleur=orange,style=dotted,point=2] + \tangentetikz[liste=\LISTE,xl=0.33,xr=0,couleur=blue,style=densely dashed,point=3] + ... +\end{tikzpicture} +\end{codetex} + +\begin{codesortie} +On obtient le résultat suivant (avec les éléments rajoutés utiles à la compréhension) : + \begin{center} - \begin{tikzpicture}[x=3cm,y=3cm,xmin=0,xmax=2,xgrilles=0.25,ymin=0,ymax=2.25,ygrilles=0.25] + \begin{tikzpicture}[x=3cm,y=2cm,xmin=0,xmax=2,xgrilles=0.25,ymin=0,ymax=2.25,ygrilles=0.25] \tikzset{noeudexpl/.style={purple,font=\sffamily\small}} \tgrilles \draw[line width=1.5pt,->,darkgray] (\xmin,0)--(\xmax,0) ; @@ -540,47 +623,15 @@ Cela permet de tracer la tangente : %explications \draw[<->,very thick,darkgray] (0.5,2.2)--(1,2.2) node[midway,above,font=\sffamily] {xl} ; \draw[<->,very thick,darkgray] (1,2.2)--(1.75,2.2) node[midway,above,font=\sffamily] {xr}; + \draw[thick,darkgray] (1,4pt)--(1,-4pt) node[below,font=\sffamily] {1} ; + \draw[thick,darkgray] (4pt,1)--(-4pt,1) node[left,font=\sffamily] {1} ; \end{tikzpicture} \end{center} - -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=2]{tex} -\begin{tikzpicture} - ... - \def\LISTE{0/1.5/0§1/2/-0.333§2/0/-5} - %spline - \splinetikz[liste=\LISTE,affpoints=true,coeffs=3§2,couleur=red] - %tangente - \tangentetikz[liste=\LISTE,xl=0,xr=0.5,couleur=ForestGreen,style=dashed] - \tangentetikz[liste=\LISTE,xl=0.5,xr=0.75,couleur=orange,style=dotted,point=2] - \tangentetikz[liste=\LISTE,xl=0.33,xr=0,couleur=blue,style=densely dashed,point=3] - ... -\end{tikzpicture} -\end{minted} +\end{codesortie} \subsection{Exemple avec les deux outils, et \og personnalisation \fg} -\begin{center} -\begin{tikzpicture}[x=0.5cm,y=0.5cm,xmin=0,xmax=16,xgrilles=1,ymin=0,ymax=16,ygrilles=1] - \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.3pt,lightgray] (\xmin,\ymin) grid (\xmax,\ymax) ; - \draw[line width=1.5pt,->,darkgray] (\xmin,0)--(\xmax,0) ; - \draw[line width=1.5pt,->,darkgray] (0,\ymin)--(0,\ymax) ; - \foreach \x in {0,2,...,14} {\draw[gray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;} - \foreach \y in {0,2,...,14} {\draw[gray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;} - \draw[darkgray] (1,-4pt) node[below,font=\sffamily] {1} ; - \draw[darkgray] (-4pt,1) node[left,font=\sffamily] {1} ; - %la liste pour la courbe d'interpolation - \def\liste{0/6/3§3/11/0§7/3/0§10/0/0§14/14/6} - %les tangentes "stylisées" - \tangentetikz[liste=\liste,xl=0,xr=1,couleur=blue,style=dashed] - \tangentetikz[liste=\liste,xl=2,xr=2,couleur=purple,style=dotted,point=2] - \tangentetikz[liste=\liste,xl=2,xr=2,couleur=orange,style=<->,point=3] - \tangentetikz[liste=\liste,xl=2,xr=0,couleur=ForestGreen,point=5] - %la courbe en elle-même - \splinetikz[liste=\liste,affpoints=true,coeffs=3,couleur=cyan,style=densely dotted] - \end{tikzpicture} -\end{center} - -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=4,breaklines]{tex} +\begin{codetex}[listing only] \tikzset{% xmin/.store in=\xmin,xmin/.default=-5,xmin=-5, xmax/.store in=\xmax,xmax/.default=5,xmax=5, @@ -598,8 +649,8 @@ Cela permet de tracer la tangente : \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.3pt,lightgray] (\xmin,\ymin) grid (\xmax,\ymax) ; \draw[line width=1.5pt,->,darkgray] (\xmin,0)--(\xmax,0) ; \draw[line width=1.5pt,->,darkgray] (0,\ymin)--(0,\ymax) ; - \foreach \x in {0,2,...,14} {\draw[gray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;} - \foreach \y in {0,2,...,14} {\draw[gray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;} + \foreach \x in {0,2,...,14} {\draw[darkgray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;} + \foreach \y in {0,2,...,14} {\draw[darkgray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;} %la liste pour la courbe d'interpolation \def\liste{0/6/3§3/11/0§7/3/0§10/0/0§14/14/6} %les tangentes "stylisées" @@ -610,7 +661,30 @@ Cela permet de tracer la tangente : %la courbe en elle-même \splinetikz[liste=\liste,affpoints=true,coeffs=3,couleur=cyan,style=densely dotted] \end{tikzpicture} -\end{minted} +\end{codetex} + +\begin{codesortie} +\begin{center} +\begin{tikzpicture}[x=0.5cm,y=0.5cm,xmin=0,xmax=16,xgrilles=1,ymin=0,ymax=16,ygrilles=1] + \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.3pt,lightgray] (\xmin,\ymin) grid (\xmax,\ymax) ; + \draw[line width=1.5pt,->,darkgray] (\xmin,0)--(\xmax,0) ; + \draw[line width=1.5pt,->,darkgray] (0,\ymin)--(0,\ymax) ; + \foreach \x in {0,2,...,14} {\draw[darkgray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;} + \foreach \y in {0,2,...,14} {\draw[darkgray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;} + \draw[darkgray] (2,-4pt) node[below,font=\sffamily] {2} ; + \draw[darkgray] (-4pt,2) node[left,font=\sffamily] {2} ; + %la liste pour la courbe d'interpolation + \def\liste{0/6/3§3/11/0§7/3/0§10/0/0§14/14/6} + %les tangentes "stylisées" + \tangentetikz[liste=\liste,xl=0,xr=1,couleur=blue,style=dashed] + \tangentetikz[liste=\liste,xl=2,xr=2,couleur=purple,style=dotted,point=2] + \tangentetikz[liste=\liste,xl=2,xr=2,couleur=orange,style=<->,point=3] + \tangentetikz[liste=\liste,xl=2,xr=0,couleur=ForestGreen,point=5] + %la courbe en elle-même + \splinetikz[liste=\liste,affpoints=true,coeffs=3,couleur=cyan,style=densely dotted] + \end{tikzpicture} +\end{center} +\end{codesortie} \newpage @@ -618,6 +692,7 @@ Cela permet de tracer la tangente : \subsection{Introduction} +\begin{codeidee} L'idée des commandes suivantes est de définir, dans un environnement \TikZ, une présentation proche de celle d'un logiciel de calcul formel comme \textsf{XCas} ou \textsf{Geogebra}. \smallskip @@ -627,18 +702,32 @@ Les sujets d'examens, depuis quelques années, peuvent comporter des \textit{cap \smallskip À la manière du \textsf{package} \ctex{tkz-tab}, l'environnement de référence est un environnement \TikZ, dans lequel les lignes dont créées petit à petit, à l'aide de nœuds qui peuvent être réutilisés à loisir ultérieurement. +\end{codeidee} \subsection{La commande \og paramCF \fg} +\begin{codeinfo} La première chose à définir est l'ensemble des paramètres \textit{globaux} de la fenêtre de calcul formel, à l'aide de \Cle{Clés}. +\end{codeinfo} -C'est la commande \ctex{\textbackslash paramCF} qui s'y colle, avec : +\smallskip +\begin{codetex}[listing only] +... +\begin{tikzpicture}[...] + \paramCF[.......] + ... +\end{tikzpicture} +\end{codetex} + +\smallskip + +\begin{codecles} +Les \Cle{Clés} disponibles sont : \begin{itemize} \item \Cle{larg} : largeur de l'environnement ; \hfill{}défaut \Cle{16} \item \Cle{esplg} : espacement vertical entre les lignes ;\hfill{}défaut \Cle{2pt} - \item \Cle{premcol} : largeur de la case du \textit{petit numéro} ;\hfill{}défaut \Cle{0.3} - \item \Cle{hpremcol} : hauteur de la case du \textit{petit numéro} ;\hfill{}défaut \Cle{0.4} + \item \Cle{premcol} \& \Cle{hpremcol} : largeur et hauteur de la case du \textit{petit numéro} ;\hfill{}défaut \Cle{0.3} \& \Cle{0.4} \item \Cle{taille} : taille du texte ;\hfill{}défaut \Cle{\textbackslash normalsize} \item \Cle{couleur} : couleur des traits de l'environnement ;\hfill{}défaut \Cle{darkgray} \item \Cle{titre} : booléen pour l'affichage d'un bandeau de titre ;\hfill{}défaut \Cle{false} @@ -651,47 +740,52 @@ C'est la commande \ctex{\textbackslash paramCF} qui s'y colle, avec : \item \Cle{menu} : booléen pour l'affichage du \textit{bouton} MENU ;\hfill{}défaut \Cle{true} \item \Cle{labeltitre} : libellé du titre.\hfill{}défaut \Cle{Résultats obtenus avec un logiciel de Calcul Formel} \end{itemize} +\end{codecles} \subsection{La commande \og ligneCF \fg} -Une fois les paramètres déclarés, il faut créer les différentes lignes, grâce à la \ctex{\textbackslash ligneCF} : +\begin{codeinfo} +Une fois les paramètres déclarés, il faut créer les différentes lignes, grâce à la \ctex{\textbackslash ligneCF}. +\end{codeinfo} + +\smallskip + +\begin{codetex}[listing only] +\begin{tikzpicture}[...] + \paramCF[.......] + \ligneCF[...] + ... +\end{tikzpicture} +\end{codetex} + +\smallskip + +\begin{codecles} +Les (quelques) \Cle{Clés} disponibles sont : \begin{itemize} \item \Cle{hc} : hauteur de la ligne de commande d'entrée ;\hfill{}défaut \Cle{0.75} \item \Cle{hr} : hauteur de la ligne de commande de sortie ;\hfill{}défaut \Cle{0.75} \item deux \textsf{arguments}, celui de la commande d'entrée et celui de la commande de sortie. \end{itemize} +% +Chaque argument \textsf{COMMANDE} \& \textsf{RÉSULTAT} peut être formaté (niveau police) de manière indépendante. +\end{codecles} -\medskip - -Ainsi, le code : - -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=4,breaklines]{tex} -\begin{tikzpicture}[x=1cm,y=1cm,line width=1pt] - \paramCF[titre=true,couleurcmd=olive,couleurres=orange] - \ligneCF{COMMANDE 1}{RÉSULTAT 1} - \ligneCF[hc=1,hr=1.25]{\texttt{(x+1)\CFchap2}}{$\mathtt{x^2+2x+1}$} -\end{tikzpicture} -\end{minted} - -produira le résultat suivant : - -\begin{center} - \begin{tikzpicture}[x=1cm,y=1cm,line width=1pt] - \paramCF[titre=true,couleurcmd=olive,couleurres=orange] - \ligneCF{COMMANDE 1}{RÉSULTAT 1} - \ligneCF[hc=1,hr=1.25]{\texttt{(x+1)\CFchap2}}{$\mathtt{x^2+2x+1}$} - \end{tikzpicture} -\end{center} +\smallskip -\newpage +\begin{codetex}[tikz lower] +%code tikz +\paramCF[titre=true,couleurcmd=olive,couleurres=orange] +\ligneCF{COMMANDE 1}{RÉSULTAT 1} +\ligneCF[hc=0.75,hr=1]{\texttt{(x+1)\CFchap2}}{$\mathtt{x^2+2x+1}$} %\CFchap := ^ en mathtt +\end{codetex} \subsection{Visualisation des paramètres} +\begin{codeinfo} Pour \textit{illustrer} un peur les \Cle{clés}, un petit schéma, avec les différents nœuds crées par les \textsf{macros}. -\medskip - \begin{center} \begin{tikzpicture}[x=1cm,y=1cm,line width=1pt] \paramCF[larg=12cm,couleur=lightgray,esplg=12pt,menu=false] @@ -703,13 +797,11 @@ Pour \textit{illustrer} un peur les \Cle{clés}, un petit schéma, avec les diff \end{tikzpicture} \end{center} -\medskip - \begin{center} \begin{tikzpicture}[x=1cm,y=1cm,line width=1pt] \paramCF[titre=true,larg=12cm,esplg=10pt,premcol=0.5,hpremcol=0.7,couleur=lightgray] \ligneCF{COMMANDE 1}{RÉSULTAT 1} - \ligneCF[hc=1.25,hr=1.5]{COMMANDE 2}{RÉSULTAT 2} + \ligneCF[hc=0.85,hr=1.05]{COMMANDE 2}{RÉSULTAT 2} %explications \draw[CadetBlue,<->] ($(A22) + (0,-12pt)$) -- ($(A52) + (0,-12pt)$) node[midway,below,font=\sffamily] {\Cle{larg}} ; \draw[CadetBlue,<->] ($(A51) + (12pt,0)$) -- ($(A32) + (12pt,0)$) node[midway,right,font=\sffamily] {\Cle{esplg}} ; @@ -725,8 +817,7 @@ Pour \textit{illustrer} un peur les \Cle{clés}, un petit schéma, avec les diff \draw[CadetBlue,->] ($(A01) + (8pt,2pt) + (0,1em)$) to[bend left=10] ($(A01) + (8pt,2pt) + (0,1em) + (-18pt,12pt)$) node[inner sep=0pt,above=1pt,font=\sffamily] {\Cle{titre} \& \Cle{tailletitre} \& \Cle{labeltitre}} ; \end{tikzpicture} \end{center} - -Chaque argument COMMANDE \& RÉSULTAT peut être formaté (niveau police) de manière indépendante. +\end{codeinfo} \newpage @@ -734,6 +825,7 @@ Chaque argument COMMANDE \& RÉSULTAT peut être formaté (niveau police) de man \subsection{Introduction} +\begin{codeidee} Le \textsf{package} \ctex{pythontex} permet d'insérer et d'exécuter du code Python. On peut : \begin{itemize} @@ -741,23 +833,41 @@ Le \textsf{package} \ctex{pythontex} permet d'insérer et d'exécuter du code Py \item exécuter du code python dans un environnement type \og console \fg{} ; \item charger du code python, et éventuellement l'utiliser dans la console. \end{itemize} +\end{codeidee} -\medskip +\smallskip -\textbf{Attention : }il faut dans ce cas une compilation en plusieurs parties, comme par exemple \textsf{pdflatex puis pythontex puis pdflatex} ! +\begin{codeinfo} +\textbf{Attention : }il faut dans ce cas une compilation en plusieurs étapes, comme par exemple \textsf{pdflatex puis pythontex puis pdflatex} ! Voir par exemple \url{http://lesmathsduyeti.fr/fr/informatique/latex/pythontex/} ! +\end{codeinfo} + +\smallskip + +\begin{codeinfo} +Compte tenu de la \textit{relative complexité} de gérer les options (par paramètres/clés\ldots) des \textit{tcbox} et des \textit{fancyvrb}, le style est \og fixé \fg{} tel quel, et seules la taille et la position de la \textit{tcbox} sont modifiables. Si toutefois vous souhaitez personnaliser davantage, il faudra prendre le code correspondant et appliquer vos modifications ! + +Cela peut donner -- en tout cas -- des idées de personnalisation en ayant une base \textit{pré}existante ! +\end{codeinfo} \subsection{Présentation de code Python via pythontex} -L'environnement \ctex{\textbackslash envcodepythontex} (chargé par \ctex{ProfLycee}, avec l'option \textit{autogobble}) permet de présenter du code python, dans une \ctex{colorbox} avec un style particulier. +\begin{codeidee} +L'environnement \ctex{\textbackslash envcodepythontex} (chargé par \ctex{ProfLycee}, avec l'option \textit{autogobble}) permet de présenter du code python, dans une \ctex{colorbox} avec un style particulier. +\end{codeidee} + +\smallskip -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=2]{tex} +\begin{codetex}[listing only] \begin{envcodepythontex}[largeur=...,centre=...,lignes=...] ... \end{envcodepythontex} -\end{minted} +\end{codetex} +\smallskip + +\begin{codecles} Comme précédemment, des \Cle{Clés} qui permettent de \textit{légèrement} modifier le style : \begin{itemize} @@ -765,61 +875,73 @@ Comme précédemment, des \Cle{Clés} qui permettent de \textit{légèrement} mo \item \Cle{centre} : booléen pour centrer ou non la \textit{tcbox} ;\hfill{}défaut \Cle{true} \item \Cle{lignes} : booléen pour afficher ou non les numéros de ligne.\hfill{}défaut \Cle{true} \end{itemize} +\end{codecles} -\medskip - -Ainsi, le code : +\smallskip -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=4,breaklines]{tex} +\begin{codetex}[listing only] \begin{envcodepythontex}[largeur=12cm] #environnement Python(tex) centré avec numéros de ligne def f(x) : return x**2 \end{envcodepythontex} -\end{minted} +\end{codetex} -produira +\smallskip +\begin{codesortie} \begin{envcodepythontex}[largeur=12cm] #environnement Python(tex) centré avec numéros de ligne def f(x) : return x**2 \end{envcodepythontex} +\end{codesortie} -Le code : +\medskip -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=4]{tex} +\begin{codetex}[listing only] \begin{envcodepythontex}[largeur=12cm,lignes=false,centre=false] #environnement Python(tex) non centré sans numéro de ligne def f(x) : return x**2 \end{envcodepythontex} -\end{minted} +\end{codetex} -produira : +\smallskip +\begin{codesortie} \begin{envcodepythontex}[largeur=12cm,lignes=false,centre=false] #environnement Python(tex) non centré sans numéro de ligne def f(x) : return x**2 \end{envcodepythontex} +\end{codesortie} \newpage \subsection{Présentation de code Python via minted} +\begin{codeinfo} Pour celles et ceux qui ne sont pas à l'aise avec le \textsf{package} \ctex{pythontex} et notamment sa spécificité pour compiler, il existe le \textsf{package} \ctex{minted} qui permet de présenter du code, et notamment python (il nécessite quand même une compilation avec l'option \ctex{--shell-escape} ou \ctex{-write18}). +\end{codeinfo} -\medskip +\smallskip +\begin{codeidee} L'environnement \ctex{\textbackslash envcodepythonminted} permet de présenter du code python, dans une \ctex{colorbox} avec un style (\textit{minted}) particulier. +\end{codeidee} + +\smallskip -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=2]{tex} +\begin{codetex}[listing only] \begin{envcodepythonminted}(*)[largeur][options] ... \end{envcodepythonminted} -\end{minted} +\end{codetex} + +\smallskip +\begin{codecles} Plusieurs \Cle{arguments} (optionnels) sont disponibles : \begin{itemize} @@ -827,61 +949,67 @@ Plusieurs \Cle{arguments} (optionnels) sont disponibles : \item le premier argument optionnel concerne la \Cle{largeur} de la \ctex{tcbox} ;\hfill{}défaut \Cle{12cm} \item le second argument optionnel concerne les \Cle{options} de la \ctex{tcbox} en \textit{langage tcolorbox}.\hfill{}défaut \Cle{vide} \end{itemize} +\end{codecles} \medskip -Ainsi le code : - -\begin{minted}[frame=lines,framesep=2mm,bgcolor=lightgray!5,fontsize=\footnotesize,tabsize=4]{tex} +\begin{codetex}[listing only] \begin{envcodepythonminted}[12cm][center] #environnement Python(minted) centré avec numéros, de largeur 12cm def f(x) : return x**2 \end{envcodepythonminted} -\end{minted} +\end{codetex} -produira : +\smallskip +\begin{codesortie} \begin{envcodepythonminted}[12cm][center] #environnement Python(minted) centré avec numéros def f(x) : return x**2 \end{envcodepythonminted} +\end{codesortie} \medskip -Et le code : - -\begin{minted}[frame=lines,framesep=2mm,bgcolor=lightgray!5,fontsize=\footnotesize,tabsize=4]{tex} +\begin{codetex}[listing only] \begin{envcodepythonminted}*[0.8\linewidth][] #environnement Python(minted) sans numéro, de largeur 0.8\linewidth def f(x) : return x**2 \end{envcodepythonminted} -\end{minted} +\end{codetex} -produira : +\smallskip +\begin{codesortie} \begin{envcodepythonminted}*[0.8\linewidth][] #environnement Python(minted) sans numéro, de largeur 0.8\linewidth def f(x) : return x**2 \end{envcodepythonminted} - -\newpage +\end{codesortie} \subsection{Console d'exécution Python} +\begin{codeidee} \ctex{pythontex} permet également de \textit{simuler} (en exécutant également !) du code python dans une \textit{console}. C'est l'environnement \ctex{\textbackslash envconsolepythontex} qui permet de le faire. +\end{codeidee} + +\smallskip -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=2]{tex} +\begin{codetex}[listing only] \begin{envconsolepythontex}[largeur=...,centre=...,label=...] ... \end{envconsolepythontex} -\end{minted} +\end{codetex} +\smallskip + +\begin{codecles} Les \Cle{Clés} disponibles sont : \begin{itemize} @@ -889,54 +1017,51 @@ Les \Cle{Clés} disponibles sont : \item \Cle{centre} : booléen pour centrer ou non la \textit{console} ;\hfill{}défaut \Cle{true} \item \Cle{label} : booléen pour afficher ou non le titre.\hfill{}défaut \Cle{true} \end{itemize} +\end{codecles} \medskip -Ainsi, le code : - -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=4,breaklines]{tex} +\begin{codetex}[listing only] \begin{envconsolepythontex}[largeur=14cm,centre=false] #console Python(tex) non centrée avec label from math import sqrt 1+1 sqrt(12) \end{envconsolepythontex} -\end{minted} +\end{codetex} -produira +\smallskip +\begin{codesortie} +\smallskip \begin{envconsolepythontex}[largeur=14cm,centre=false] #console Python(tex) non centrée avec label from math import sqrt 1+1 sqrt(12) \end{envconsolepythontex} +\end{codesortie} -Le code : +\medskip -\begin{minted}[frame=lines,framesep=2mm,bgcolor=lightgray!5,fontsize=\footnotesize,tabsize=4]{tex} +\begin{codetex}[listing only] \begin{envconsolepythontex}[largeur=14cm,label=false] #console Python(tex) centrée sans label table = [[1,2],[3,4]] table[0][0] \end{envconsolepythontex} -\end{minted} +\end{codetex} -produira : +\smallskip +\begin{codesortie} +\smallskip \begin{envconsolepythontex}[largeur=14cm,label=false] #console Python(tex) centrée sans label table = [[1,2],[3,4]] table[0][0] \end{envconsolepythontex} - -\subsection{Personnalisation} - -\textbf{NB : } compte tenu de la \textit{relative complexité} de gérer les options (par paramètres\ldots) des \textit{tcbox} et des \textit{fancyvrb}, le style est \og fixé \fg{} tel quel, et seules la taille et la position de la \textit{tcbox} sont modifiables. Si toutefois vous souhaitez personnaliser davantage, il faudra prendre le code correspondant et appliquer vos modifications ! - -\medskip - -Cela peut donner -- en tout cas -- des idées de personnalisation en ayant une base \textit{pré}existante ! +\end{codesortie} \newpage @@ -944,24 +1069,34 @@ Cela peut donner -- en tout cas -- des idées de personnalisation en ayant une b \subsection{Introduction} -Le \textsf{package} \ctex{listings} permet d'insérer et de présenter du code, et avec \ctex{tclorobx} on peut obtenir une présentation similaire à celle du code Python. Pour le moment la \textit{philosophie} de la commande est un peu différente de celle du code python, avec son système de \Cle{Clés}, car l'environnement \ctex{tcblisting} est un peu différente\ldots +\begin{codeinfo} +Le \textsf{package} \ctex{listings} permet d'insérer et de présenter du code, et avec \ctex{tclorobox} on peut obtenir une présentation similaire à celle du code Python. Pour le moment la \textit{philosophie} de la commande est un peu différente de celle du code python, avec son système de \Cle{Clés}, car l'environnement \ctex{tcblisting} est un peu différent\ldots +\end{codeinfo} \subsection{Présentation de Pseudo-Code} -L'environnement \ctex{\textbackslash envpseudocode} (chargé par \ctex{ProfLycee} permet de présenter du (pseudo-code) dans une \ctex{tcolorbox}. +\begin{codeidee} +L'environnement \ctex{\textbackslash envpseudocode} permet de présenter du (pseudo-code) dans une \ctex{tcolorbox}. +\end{codeidee} \smallskip +\begin{codeinfo} De plus, le package \ctex{listings} avec \ctex{tcolorbox} ne permet pas de gérer le paramètre \textit{autogobble}, donc il faudra être vigilant quant à la position du code (pas de tabulation en fait\ldots) +\end{codeinfo} +\smallskip -\begin{minted}[frame=lines,framesep=2mm,bgcolor=LightGray,fontsize=\footnotesize,tabsize=2]{tex} +\begin{codetex}[listing only] \begin{envpseudocode}(*)[largeur][options] %attention à l'indentation, gobble ne fonctionne pas... ... \end{envpseudocode} -\end{minted} +\end{codetex} + +\smallskip +\begin{codecles} Plusieurs \Cle{arguments} (optionnels) sont disponibles : \begin{itemize} @@ -969,24 +1104,23 @@ Plusieurs \Cle{arguments} (optionnels) sont disponibles : \item le premier argument optionnel concerne la \Cle{largeur} de la \ctex{tcbox} ;\hfill{}défaut \Cle{12cm} \item le second argument optionnel concerne les \Cle{options} de la \ctex{tcbox} en \textit{langage tcolorbox}.\hfill{}défaut \Cle{vide} \end{itemize} +\end{codecles} \medskip -Ainsi le code : - -\begin{minted}[frame=lines,framesep=2mm,bgcolor=lightgray!5,fontsize=\footnotesize,tabsize=4]{tex} -\begin{envpseudocode} -%non centré, de largeur par défaut (12cm) avec lignes +\begin{codetex}[listing only] +\begin{envpseudocode} %non centré, de largeur par défaut (12cm) avec lignes List = [...] # à déclarer au préalable n = longueur(List) Pour i allant de 0 à n-1 Faire Afficher(List[i]) FinPour \end{envpseudocode} -\end{minted} +\end{codetex} -produira : +\smallskip +\begin{codesortie} \begin{envpseudocode} List = [...] # à déclarer au préalable n = longueur(List) @@ -994,24 +1128,23 @@ Pour i allant de 0 à n-1 Faire Afficher(List[i]) FinPour \end{envpseudocode} +\end{codesortie} \medskip -Et le code : - -\begin{minted}[frame=lines,framesep=2mm,bgcolor=lightgray!5,fontsize=\footnotesize,tabsize=4]{tex} -\begin{envpseudocode}*[15cm][center] -%centré, de largeur 15cm sans ligne +\begin{codetex}[listing only] +\begin{envpseudocode}*[15cm][center] %centré, de largeur 15cm sans ligne List = [...] # à déclarer au préalable n = longueur(List) Pour i allant de 0 à n-1 Faire Afficher(List[i]) FinPour \end{envpseudocode} -\end{minted} +\end{codetex} -produira : +\smallskip +\begin{codesortie} \begin{envpseudocode}*[15cm][center] List = [...] # à déclarer au préalable n = longueur(List) @@ -1019,6 +1152,27 @@ Pour i allant de 0 à n-1 Faire Afficher(List[i]) FinPour \end{envpseudocode} +\end{codesortie} + +\subsection{Compléments} + +\begin{codeinfo} +À l'instar de \textsf{packages} existants, la \textit{philosophie} ici est de laisser l'utilisateur gérer \textit{son} langage pseudo-code. + +J'ai fait le choix de ne pas définir des \textsf{mots clés} à mettre en valeur car cela reviendrait à \textit{imposer} des choix ! Donc ici, pas de coloration syntaxique ou de mise en évidence de mots clés, uniquement un formatage libre de code pseudo-code. +\end{codeinfo} + +\smallskip + +\begin{codeidee} +Évidemment, le code source est récupérable et adaptable à volonté, en utilisant les possibilités du package \ctex{listings}. + +\smallskip + +Celles et ceux qui sont déjà à l'aise avec les \textsf{packages} \ctex{listings} ou \ctex{minted} doivent déj avoir leur environnement personnel prêt ! + +Il s'agit ici de présenter une version \og clé en main \fg{}. +\end{codeidee} \newpage @@ -1026,31 +1180,39 @@ FinPour \subsection{Introduction} +\begin{codeidee} L'idée des \textsf{commandes} suivantes est de permettre de simuler des fenêtres de \textsf{Terminal}, que ce soit pour Windows, Ubuntu ou OSX. \smallskip +L'idée de base vient du \textsf{package} \ctex{termsim}, mais ici la gestion du \textsf{code} et des \textsf{fenêtres} est légèrement différente. + +\smallskip + Le \textsf{contenu} est géré par le package \ctex{listings}, sans langage particulier, et donc sans coloration syntaxique particulière. \smallskip Comme pour le pseudo-code, pas d'\textsf{autogobble}, donc commandes à aligner à gauche ! +\end{codeidee} \subsection{Commandes} -Les (trois) environnements disponibles sont : - -\begin{minted}[frame=lines,framesep=2mm,bgcolor=lightgray!5,fontsize=\footnotesize,tabsize=4]{tex} +\begin{codetex}[listing only] \begin{PLtermwin}[largeur]{titre=...}[options] ... +\end{PLtermwin} \begin{PLtermunix}[largeur]{titre=...}[options] ... +\end{PLtermunix} \begin{PLtermosx}[largeur]{titre=...}[options] ... -\end{minted} +\end{PLtermosx} +\end{codetex} +\begin{codecles} Peu d'options pour ces commandes : \begin{itemize} @@ -1058,16 +1220,14 @@ Peu d'options pour ces commandes : \item le deuxième, mandataire, permet de spécifier le titre par la clé \Cle{titre}.\hfill{}défaut \Cle{Terminal Windows/UNiX/OSX} \item le troisième, optionnel, concerne les \Cle{options} de la \ctex{tcbox} en \textit{langage tcolorbox}.\hfill{}défaut \Cle{vide} \end{itemize} +\end{codecles} \medskip -Ainsi le code : - -\begin{minted}[frame=lines,framesep=2mm,bgcolor=lightgray!5,fontsize=\footnotesize,tabsize=4]{tex} +\begin{codetex}[listing only] \begin{PLtermwin}[15cm]{} %largeur 15cm avec titre par défaut Microsoft Windows [version 10.0.22000.493] (c) Microsoft Corporation. Tous droits réservés. - C:\Users\test>ping -c 2ctan.org Envoi d'une requête 'ping' sur ctan.org [5.35.249.60] avec 32 octets de données : \end{PLtermwin} @@ -1081,14 +1241,12 @@ PING ctan.org (5.35.249.60) 56(84) bytes of data. [test@server]$ ping -c 2 ctan.org PING ctan.org (5.35.249.60) 56(84) bytes of data. \end{PLtermosx} -\end{minted} - -produira : +\end{codetex} +\begin{codesortie} \begin{PLtermwin}[15cm]{} Microsoft Windows [version 10.0.22000.493] (c) Microsoft Corporation. Tous droits réservés. - C:\Users\test>ping -c 2ctan.org Envoi d'une requête 'ping' sur ctan.org [5.35.249.60] avec 32 octets de données : \end{PLtermwin} @@ -1102,23 +1260,26 @@ PING ctan.org (5.35.249.60) 56(84) bytes of data. [test@server]$ ping -c 2 ctan.org PING ctan.org (5.35.249.60) 56(84) bytes of data. \end{PLtermosx} +\end{codesortie} \newpage \section{Historique} -{\small \bverb|v1.0.6| : Ajout d'une option \textsf{nominted} pour ne pas charger \ctex{minted} (pas besoin de compiler avec \textsf{shell-escape}) +{\small \bverb|v1.0.7| :~~~~Ajout d'une option \textsf{build} pour placer certains fichiers auxiliaires dans un répertoire \textsf{./build} + +{\small \bverb|v1.0.6| :~~~~Ajout d'une option \textsf{nominted} pour ne pas charger \ctex{minted} (pas besoin de compiler avec \textsf{shell-escape}) -{\small \bverb|v1.0.5| : Ajout d'un environnement pour Python (minted) +{\small \bverb|v1.0.5| :~~~~Ajout d'un environnement pour Python (minted) -{\small \bverb|v1.0.4| : Ajout des environnements pour Terminal (win, osx, unix) +{\small \bverb|v1.0.4| :~~~~Ajout des environnements pour Terminal (win, osx, unix) -{\small \bverb|v1.0.3| : Ajout des environnements pour PseudoCode +{\small \bverb|v1.0.3| :~~~~Ajout des environnements pour PseudoCode -{\small \bverb|v1.0.2| : Ajout des environnements pour Python (pythontex) +{\small \bverb|v1.0.2| :~~~~Ajout des environnements pour Python (pythontex) -{\small \bverb|v1.0.1| : Modification mineure liée au chargement de \ctex{xcolor} +{\small \bverb|v1.0.1| :~~~~Modification mineure liée au chargement de \ctex{xcolor} -{\small \bverb|v1.0 | : Version initiale} +{\small \bverb|v1.0 | :~~~~Version initiale} \end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty b/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty index a8316dddf8f..682868f62fa 100644 --- a/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty +++ b/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty @@ -3,10 +3,11 @@ % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ProfLycee}[2022/02/18 - v1.0.6 - Aide pour l'utilisation de LaTeX en lycée] -% 1.0.6 Option [nominted] pour éviter de charger minted & nettoyage amssymb (pour éviter bug de chargement...) -% 1.0.5 Environnement code python avec minted -% 1.0.4 Environnement pour simuler terminal windows & linux +\ProvidesPackage{ProfLycee}[2022/02/21 - v1.0.7 - Aide pour l'utilisation de LaTeX en lycée] +% 1.0.7 Option [build] pour placer les fichiers temporaires dans un répertoire build (désactivée par défaut) +% 1.0.6 Option [nominted] pour éviter de charger minted & nettoyage amssymb +% 1.0.5 Environnement code python avec minted +% 1.0.4 Environnement pour simuler terminal windows & linux % 1.0.3 Environnement pour présenter du pseudocode % 1.0.2 Environnement pour présenter du code python (avec pythontex) % 1.0.1 Modif mineure du chargement de xcolor (compatibilité avec d'autres packages notamment...) @@ -15,16 +16,16 @@ %------Option(s) \newif\if@nominted \@nomintedfalse \DeclareOption{nominted}{\@nomintedtrue} +\newif\if@build \@buildfalse +\DeclareOption{build}{\@buildtrue} \DeclareOption*{} \ProcessOptions\relax %------Packages utiles \RequirePackage[table,svgnames]{xcolor}%Gestion des couleurs -%\RequirePackage{amssymb} \RequirePackage{tikz} \RequirePackage{pgf,pgffor} \RequirePackage{ifthen} -\RequirePackage{environ} \RequirePackage{xparse} \RequirePackage{xkeyval} \RequirePackage{xfp} @@ -46,7 +47,10 @@ %python \RequirePackage{fancyvrb} \RequirePackage[gobble=auto]{pythontex} -\setpythontexlistingenv{pythont} +\setpythontexlistingenv{pythont} %pour ne pas télescoper lstlistings (?) +\if@build + \setpythontexoutputdir{./build/pythontex-files-\jobname} %essai de modif pythontex répertoire build +\fi %---------------SPLINES---------------------- %------commande utile pour extraire des infos d'une liste @@ -375,7 +379,11 @@ \if@nominted %on ne charge pas minted et la librairie tcbox \else - %on charge minted et la librairie tcbox + \if@build + %on charge minted avec le répertoire build + \RequirePackage[outputdir=build]{minted} + \fi + %on charge minted via la librairie tcbox \tcbuselibrary{minted} \fi |