summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex')
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex210
1 files changed, 207 insertions, 3 deletions
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
index 300a92293f..ec1fd68cac 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
@@ -38,6 +38,7 @@
\usepackage{listofitems}
\usepackage{xintexpr}
\usepackage{codehigh}
+\usepackage{scontents}
\usepackage{hyperref}
\urlstyle{same}
\hypersetup{pdfborder=0 0 0}
@@ -55,8 +56,8 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
-\def\PLversion{1.2.2}
-\def\PLdate{15 Août 2022}
+\def\PLversion{1.2.3}
+\def\PLdate{24 Août 2022}
\tcbset{vignettes/.style={%
nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,%
@@ -906,7 +907,208 @@ Pour \textit{illustrer} un peu les \Cle{clés}, un petit schéma, avec les diffÃ
\newpage
-\section{Code \& Console Python}
+\section{Code Python \og simple \fg}
+
+\subsection{Introduction}
+
+\begin{codeidee}
+Le {package} \ctex{listings} permet d'insérer et de formater du code, notamment du code Python. En \textit{partenariat} avec \ctex{tcolorbox}, on peut donc présenter \textit{joliment} du code python !
+\end{codeidee}
+
+\begin{codeinfo}
+Le package \ctex{listings} ne nécessite pas de compilation particulière, au contraire d'autres (comme \ctex{pythontex} ou \ctex{minted}) qui seront présentés à la section suivante.
+\end{codeinfo}
+
+\medskip
+
+\begin{codeinfo}
+Le style utilisé pour formater le code Python n'est pas modifiable. Il donne un rendu proche de celui des packages commes \ctex{pythontex} ou \ctex{minted}.
+
+\smallskip
+
+Donc, si plusieurs \textit{méthodes} sont utilisées pour insérer du code Python (via les sections suivantes), le rendu peut être légèrement différent.
+\end{codeinfo}
+
+\subsection{Présentation de code Python grâce à listings}
+
+\begin{codeidee}
+L'environnement \ctex{\textbackslash envcodepython} (chargé par \ctex{ProfLycee} permet de présenter du code python, dans une \ctex{tcolorbox} avec un style particulier.
+\end{codeidee}
+
+\smallskip
+
+\begin{codetex}[listing only]
+\begin{envcodepython}(*)[largeur]{commandes tcbox}
+...
+\end{envcodepython}
+\end{codetex}
+
+\smallskip
+
+\begin{codecles}
+Plusieurs \Cle{arguments} sont disponibles :
+
+\begin{itemize}
+ \item la version \textit{étoilée} qui permet de ne pas afficher les numéros de lignes ;
+ \item le premier argument (optionnel), concerne la \Cle{largeur} de la \ctex{tcbox} ;\hfill{}défaut \Cle{\textbackslash linewidth}
+ \item le second argument (mandataire), concerne des \Cle{options} de la \ctex{tcbox} en \textit{langage tcolorbox}, comme l'alignement.
+\end{itemize}
+\end{codecles}
+
+\smallskip
+
+\begin{codeinfo}
+Les environnements \ctex{DeclareTCBListing} créés par \ctex{tcolorbox} et \ctex{listings} ne sont pas compatibles avec les options \Cle{gobble} (pour supprimer les tabulations d'environnement), donc il faut bien penser à \og aligner \fg{} le code à gauche, pour éviter des tabulations non esthétiques !
+\end{codeinfo}
+
+\subsection{Insertion via un fichier \og externe \fg}
+
+\begin{codeidee}
+Pour des raison pratiques, il est parfois intéressant d'avoir le code Python dans un fichier externe au ficher \ctex{tex}, ou bien créé directement par le fichier \ctex{tex} (via \ctex{scontents}, notamment, mais non chargé par \ctex{ProfLycee}).
+
+Dans ce cas, il n'est pas nécessaire d'aligner le code \og à gauche \fg, en utilisant une commande alternative.
+
+\smallskip
+
+Si cette méthode est utilisée, il ne faut oublier de charger le package \ctex{scontents}.
+\end{codeidee}
+
+\begin{codetex}[listing only]
+\usepackage{scontents} %si script déclaré dans le fichier tex
+...
+\envcodepythonfichier(*)[largeur]{commandes tcbox}{<script>}
+\end{codetex}
+
+\subsection{Exemples}
+
+\begin{codetex}[listing only]
+\begin{envcodepython}{} %les {}, même vides, sont nécessaires (bug avec # sinon !)
+#environnement par défaut
+nb = int(input("Saisir un entier Python positif"))
+if (nb %7 == 0) :
+ print(f"{nb} est bien divisible par 7")
+#endif
+
+def f(x) :
+ return x**2
+\end{envcodepython}
+\end{codetex}
+
+\smallskip
+
+\begin{codesortie}
+\begin{envcodepython}{}
+#environnement par défaut
+nb = int(input("Saisir un entier Python positif"))
+if (nb %7 == 0) :
+ print(f"{nb} est bien divisible par 7")
+#endif
+
+def f(x) :
+ return x**2
+\end{envcodepython}
+\end{codesortie}
+
+\smallskip
+
+\begin{codetex}[listing only]
+\begin{envcodepython}*[0.5\linewidth]{flush right}
+#largeur de 50%, sans numéro, et aligné à droite
+nb = int(input("Saisir un entier Python positif"))
+if (nb %7 == 0) :
+ print(f"{nb} est bien divisible par 7")
+#endif
+
+def f(x) :
+ return x**2
+\end{envcodepython}
+\end{codetex}
+
+\smallskip
+
+\begin{codesortie}
+\begin{envcodepython}*[0.5\linewidth]{flush right}
+#largeur de 50%, sans numéro, et aligné à droite
+nb = int(input("Saisir un entier Python positif"))
+if (nb %7 == 0) :
+ print(f"{nb} est bien divisible par 7")
+#endif
+
+def f(x) :
+ return x**2
+\end{envcodepython}
+\end{codesortie}
+
+\smallskip
+
+\begin{codetex}[listing only]
+\begin{scontents}[overwrite,write-out=testscript.py]
+# Calcul de la factorielle en langage Python
+def factorielle(x):
+ if x < 2:
+ return 1
+ else:
+ return x * factorielle(x-1)
+
+# rapidité de tracé
+import matplotlib.pyplot as plt
+import time
+def trace_parabole_tableaux():
+ depart=time.clock()
+ X = [] # Initialisation des listes
+ Y = []
+ a = -2
+ h = 0.001
+ while a<2:
+ X.append(a) # Ajout des valeurs
+ Y.append(a*a) # au "bout" de X et Y
+ a = a+h
+ # Tracé de l'ensemble du tableau de valeurs
+ plt.plot(X,Y,".b")
+ fin=time.clock()
+ return "Temps : " + str(fin-depart) + " s."
+\end{scontents}
+
+%environnement centré, avec numéros, largeur 9cm
+\envcodepythonfichier[9cm]{center}{testscript.py}
+\end{codetex}
+
+\smallskip
+
+\begin{codesortie}
+\begin{scontents}[overwrite,write-out=testscript.py]
+# Calcul de la factorielle en langage Python
+def factorielle(x):
+ if x < 2:
+ return 1
+ else:
+ return x * factorielle(x-1)
+
+# rapidité de tracé
+import matplotlib.pyplot as plt
+import time
+def trace_parabole_tableaux():
+ depart=time.clock()
+ X = [] # Initialisation des listes
+ Y = []
+ a = -2
+ h = 0.001
+ while a<2:
+ X.append(a) # Ajout des valeurs
+ Y.append(a*a) # au "bout" de X et Y
+ a = a+h
+ # Tracé de l'ensemble du tableau de valeurs
+ plt.plot(X,Y,".b")
+ fin=time.clock()
+ return "Temps : " + str(fin-depart) + " s."
+\end{scontents}
+
+\envcodepythonfichier[9cm]{center}{testscript.py}
+\end{codesortie}
+
+\newpage
+
+\section{Code \& Console Python, version Pythontex ou Minted}
\subsection{Introduction}
@@ -3747,6 +3949,8 @@ D,-,-,D,-,D,D,F,F,F,F,F,F,D,D,-,-,-,-,D,-,-
\section{Historique}
+{\small \bverb|v1.2.3|~:~~~~Commandes pour du code python "simple", sans compilation particulière
+
{\small \bverb|v1.2.2|~:~~~~Commandes pour travailler sur des stats à 2 variables
{\small \bverb|v1.2.1|~:~~~~Amélioration de la gestion du csv pour Pixelart