% !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)')
\documentclass[french,a4paper,11pt]{article}
\def\TPversion{0.1.4}
\def\TPdate{5 novembre 2023}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
\usepackage{FenetreCas}
\usepackage{awesomebox}
\usepackage{fontawesome5}
\usepackage{enumitem}
\usepackage{tabularray}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\lfoot{\sffamily\small [FenetreCas]}
\cfoot{\sffamily\small - \thepage{} -}
\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
%\usepackage{hvlogos}
\usepackage{hologo}
\providecommand\tikzlogo{Ti\textit{k}Z}
\providecommand\TeXLive{\TeX{}Live\xspace}
\providecommand\PSTricks{\textsf{PSTricks}\xspace}
\let\pstricks\PSTricks
\let\TikZ\tikzlogo
\newcommand\TableauDocumentation{%
\begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}}
{\LARGE \LaTeX} & & & & &\\
& {\LARGE \hologo{pdfLaTeX}} & & & & \\
& & {\LARGE \hologo{LuaLaTeX}} & & & \\
& & & {\LARGE \TikZ} & & \\
& & & & {\LARGE \TeXLive} & \\
& & & & & {\LARGE \hologo{MiKTeX}} \\
\end{tblr}
}
\usepackage{hyperref}
\urlstyle{same}
\hypersetup{pdfborder=0 0 0}
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
\usepackage[french]{babel}
\usepackage[most]{tcolorbox}
\usetikzlibrary{calc}
\tcbuselibrary{minted}
\NewTCBListing{PresentationCode}{ O{blue} m }{%
sharp corners=downhill,enhanced,arc=12pt,skin=bicolor,%
colback=#1!1!white,colframe=#1!75!black,colbacklower=white,%
attach boxed title to top right={yshift=-\tcboxedtitleheight},title=Code \LaTeX,%
boxed title style={%
colframe=#1!75!black,colback=#1!15!white,%
,sharp corners=downhill,arc=12pt,%
},%
top=\baselineskip,%
fonttitle=\color{#1!90!black}\itshape\ttfamily\footnotesize,%
listing engine=minted,minted style=colorful,
minted language=tex,minted options={tabsize=4,fontsize=\small,autogobble},
#2
}
\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,%
}
}
\tcbset{vignetteMaJ/.style={%
fontupper={\vphantom{pf}\footnotesize\ttfamily},
vignettes,colframe=green!50!black,coltitle=white,colback=purple!25,%
overlay={\begin{tcbclipinterior}%
\fill[fill=purple!75]($(interior.south west)$) rectangle node[rotate=90]{\tiny \sffamily{\textcolor{black}{\scalebox{0.85}[0.75]{\textbf{MàJ}}}}} ($(interior.north west)+(5pt,0pt)$);%
\end{tcbclipinterior}}
}
}
\newcommand\Cle[1]{{\bfseries\sffamily\textlangle #1\textrangle}}
\newcommand\cmaj[1]{\tcbox[vignetteMaJ]{#1}\xspace}
\begin{document}
\setlength{\aweboxleftmargin}{0.07\linewidth}
\setlength{\aweboxcontentwidth}{0.93\linewidth}
\setlength{\aweboxvskip}{8pt}
\pagestyle{fancy}
\thispagestyle{empty}
\vspace{2cm}
\begin{center}
\begin{minipage}{0.75\linewidth}
\begin{tcolorbox}[colframe=yellow,colback=yellow!15]
\begin{center}
\begin{tabular}{c}
{\Huge \texttt{FenetreCas [fr]}}\\
\\
{\LARGE Des fenêtres CAS à la manière} \\
\\
{\LARGE de Xcas ou Geogebra.} \\
\end{tabular}
\bigskip
{\small \texttt{Version \TPversion{} -- \TPdate}}
\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/FenetreCas}}
\end{tabular}
\end{center}
\vspace{0.25cm}
{$\blacktriangleright$~~Une commande pour afficher une fenêtre CAS à la manière de \textsf{Xcas}.}
\smallskip
{$\blacktriangleright$~~Une commande pour afficher une fenêtre CAS à la manière de \textsf{Geogebra}.}
\smallskip
{$\blacktriangleright$~~Utilisation de \TikZ{} avec calcul automatique des hauteurs de lignes.}
\smallskip
{$\blacktriangleright$~~Personnalisation de certains éléments (couleurs, etc).}
\smallskip
{$\blacktriangleright$~~Saisie libre des commandes et des résultats.}
\vspace{1cm}
\begin{center}
\begin{tcolorbox}[enhanced,colframe=cyan,colback=cyan!2,center,width=0.95\linewidth,drop fuzzy shadow=lightgray]
À la manière de GeoGebra :
\smallskip
\begin{CalculFormelGeogebra}[Largeur=10]
\LigneCalculsGeogebra%
{\sffamily g(x)=4/(1+e\textasciicircum(-k x))}
{$\rightarrow$ \: $\mathsf{g(x)=\dfrac{4}{e^{-kx}+1}}$}
\end{CalculFormelGeogebra}
\medskip
\hfill~À la manière de Xcas :
\smallskip
\hfill
\begin{CalculFormelXcas}[Entete=true,Largeur=12]
\LigneCalculsXcas%
{\sffamily g(x):=4/(1+e\textasciicircum(-k x))}
{$\mathsf{x \rightarrow \dfrac{4}{e^{-kx}+1}}$}
\end{CalculFormelXcas}
\end{tcolorbox}
\end{center}
\vspace{0.5cm}
\hfill{}\textit{Merci à Christophe Bal pour ses retours !}
\smallskip
\vfill
\hrule
\medskip
\TableauDocumentation
\medskip
\hrule
\medskip
\newpage
\phantomsection
\hypertarget{matoc}{}
\tableofcontents
\newpage
\part{Introduction}
\section{Le package FenetreCas}
\subsection{Introduction}
\begin{noteblock}
La package \textit{propose} des outils pour afficher des fenêtres de logiciel de Calcul Formel :
\begin{itemize}
\item à la manière de \textsf{Xcas} ;
\item à la manière de \textsf{GeoGebra}.
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{noteblock}
\begin{importantblock}
Les environnements créés sont liés à des environnements \TikZ, et les hauteurs des lignes sont calculées automatiquement -- en interne -- par le package.
\smallskip
L'utilisateur pourra cependant paramétrer \textit{plus finement} le rendu s'il le souhaite.
\end{importantblock}
\subsection{Chargement du package, packages utilisés}
\begin{importantblock}
Le package se charge, de manière classique, dans le préambule.
Il n'existe pas d'option pour le package, et \texttt{xcolor} n'est pas chargé avec des options spécifiques.
\end{importantblock}
\begin{PresentationCode}{listing only}
\usepackage{FenetreCas}
\end{PresentationCode}
\begin{noteblock}
\textsf{FenetreCas} charge les packages suivantes :
\begin{itemize}
\item \texttt{tikz}, \texttt{xstring}, \texttt{xintexpr}, \texttt{simplekv} et \texttt{settobox} ;
\item les librairies \texttt{\textit{tikz}.calc} et \texttt{\textit{tikz}.positioning}..
\end{itemize}
Il est compatible avec les compilations usuelles en \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} ou \textsf{xelatex}.
\end{noteblock}
\subsection{Fonctionnement global}
\begin{importantblock}
Le fonctionnement global est :
\begin{itemize}
\item de créer l'\textbf{environnement}, avec ses options \textit{globales} ;
\item de créer les \textbf{lignes}, une par une, avec leurs options \textit{locales}.
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{importantblock}
\vfill
\section{Historique}
\verb|v0.1.4|~:~~~~Migration de \textsf{\textbackslash tikzstyle} à \textsf{\textbackslash tikzset}.
\verb|v0.1.3|~:~~~~Clé \textsf{[PosRes]} pour la réponse (gauche/centre/droite) + correction de bugs mineurs.
\verb|v0.1.2|~:~~~~Clé \textsf{[Select]} pour le \textit{rond} de sélection sur Geogebra.
\verb|v0.1.1|~:~~~~Clés \textsf{[Fond]} et \textsf{[FondCouleur]} pour le fond des lignes.
\verb|v0.1.0|~:~~~~Version initiale.
\hspace*{1cm}
\pagebreak
\part{Fenêtre à la manière de Geogebra}
\section{Création de l'environnement}
\subsection{Commande}
\begin{cautionblock}
L'environnement dédié à l'affichage d'une fenêtre \textit{à la Geogebra} est \texttt{CalculFormelGeogebra}.
Par défaut, il va donc créer la ligne d'\textit{entête} avec le titre.
\end{cautionblock}
\begin{PresentationCode}{listing only}
\begin{CalculFormelGeogebra}[clés et options]<options tikz>
\end{CalculFormelGeogebra}
\end{PresentationCode}
\begin{PresentationCode}{}
\begin{CalculFormelGeogebra}
\end{CalculFormelGeogebra}
\end{PresentationCode}
\subsection{Clés et options}
\begin{tipblock}
Le premier argument, optionnel et entre \texttt{[...]} propose les \Cle{clés} suivantes :
\begin{itemize}
\item \Cle{Largeur} qui est la largeur de la fenêtre, en cm ; \hfill~défaut : \Cle{10}
\item \Cle{CouleurEntete} qui est la couleur du fond de l'entête ; \hfill~défaut : \Cle{lightgray!25}
\item \Cle{LargeurNumero} qui est la largeur de la colonne du numéro ; \hfill~défaut : \Cle{1}
\item \Cle{CouleurNumero} qui est la couleur du fond du numéro ; \hfill~défaut : \Cle{cyan!5}
\item \Cle{PoliceEntete} qui paramètre la police du texte de l'entête ;
\hfill~défaut : \Cle{\textbackslash bfseries\textbackslash large\textbackslash sffamily}
\item \Cle{PoliceNumero} qui paramètre la police du numéro ; \hfill~défaut : \Cle{\textbackslash large\textbackslash sffamily}
\item \Cle{Titre} qui permet de personnaliser le label de l'entête ;
\hfill~défaut : \Cle{\$\textbackslash triangleright\$ Calcul formel}
\item le booléen \Cle{Entete} qui permet d'afficher ou non l'entête. \hfill~défaut : \Cle{true}
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{tipblock}
\begin{tipblock}
Le second argument, optionnel et entre \texttt{<...>} est quant à lui relatif à des arguments à passer à l'environnement \TikZ{} créé, comme par exemple un alignement vertical, etc
\end{tipblock}
\begin{PresentationCode}{}
%\usepackage{amssymb}
\begin{CalculFormelGeogebra}
[CouleurEntete=green!25,PoliceEntete=\LARGE\ttfamily,
Titre={$\blacktriangleright$ Illustration via GeoGebra},Largeur=13]
\end{CalculFormelGeogebra}
\end{PresentationCode}
\pagebreak
\section{Création des lignes}
\subsection{Commande}
\begin{cautionblock}
La commande dédiée à l'affichage des lignes est \texttt{\textbackslash LigneCalculsGeogebra}.
Les lignes sont construites l'une après l'une, avec un système de nœuds pour délimiter les \og coins \fg.
\end{cautionblock}
\begin{PresentationCode}{listing only}
\begin{CalculFormelGeogebra}[clés et options]<options tikz>
LigneCalculsGeogebra[options]{commande}{resultat}
\end{CalculFormelGeogebra}
\end{PresentationCode}
\begin{PresentationCode}{}
\begin{CalculFormelGeogebra}
\LigneCalculsGeogebra{commande1}{résultat1}
\LigneCalculsGeogebra{commande2}{résultat2}
\end{CalculFormelGeogebra}
\end{PresentationCode}
\subsection{Clés et arguments}
\begin{tipblock}
Le premier argument, optionnel et entre \texttt{[...]} propose les \Cle{clés} suivantes :
\begin{itemize}
\item le booléen \Cle{HauteurAuto} qui permet un ajustement automatique de la hauteur ;
\hfill~défaut : \Cle{true}
\item \Cle{TailleCommande} pour la taille de la commande ; \hfill~défaut : \Cle{\textbackslash normalsize}
\item \Cle{TailleResultat} pour la taille du résultat ; \hfill~défaut : \Cle{\textbackslash large}
\item \cmaj{0.1.3} \Cle{PosRes} pour la position du résultat parmi \Cle{gauche/centre/droite} ;
\hfill~défaut : \Cle{gauche}
\item le booléen \Cle{Fond} pour activer la coloration de fond de la ligne ; \hfill~défaut : \Cle{false}
\item \Cle{CouleurFond} pour spécifier une couleur de fond si \Cle{Fond=true} ; \hfill~défaut : \Cle{white}
\item le booléen \Cle{Select} pour (dés)activer le \textit{rond} de sélection ; \hfill~défaut : \Cle{true}
\item \Cle{CouleurSelect} pour spécifier une couleur de fond du \textit{rond} si \Cle{Select=true} ;
\hfill~défaut : \Cle{white}
\item \Cle{MargeH} pour spécifier l'espacement horizontal entre les calculs et les bords verticaux ;
\hfill~défaut : \Cle{0.2}
\item \Cle{MargeV} pour spécifier l'espacement vertical entre les calculs et les traits.
\hfill~défaut : \Cle{6pt}
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{tipblock}
\begin{tipblock}
Les arguments obligatoires, et entre \texttt{\{...\}}, correspondent à la commande et au résultat à afficher dans la ligne :
\begin{itemize}
\item les tailles des caractères sont fixées par les \Cle{clés} précédemment explicitées ;
\item la saisie est libre au niveau du contenu, de la police et des couleurs.
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{tipblock}
\begin{PresentationCode}{}
\begin{CalculFormelGeogebra}[CouleurEntete=pink!25,CouleurNumero=yellow!25,Largeur=15]
\LigneCalculsGeogebra%
{\sffamily g(x)=4/(1+e\textasciicircum(-k x))}
{$\rightarrow$ \: $\mathsf{g(x)=\dfrac{4}{e^{-kx}+1}}$}
\LigneCalculsGeogebra[Select=false]
{f(x)=1+sqrt(x+3)}
{$\rightarrow$ \: $f(x)=1+\sqrt{x+3}$}
\LigneCalculsGeogebra
{\texttt{Dériver[exp(0.1*x)]}}
{$\rightarrow$ \: \texttt{x $\mapsto$ 0.1*exp(0.1*x)}}
\LigneCalculsGeogebra[TailleCommande=\LARGE,TailleResultat=\huge,CouleurSelect=violet]
{(1/4+1/3)/(1/5+2/7)}
{$\rightarrow$ \: $\dfrac{\dfrac14+\dfrac13}{\dfrac15+\dfrac27}=
\fpeval{(1/4+1/3)/(1/5+2/7)}$}
\LigneCalculsGeogebra[HauteurAuto=false,HauteurLigne=5,Fond,CouleurFond=cyan!10, PosRes=droite]
{(1+i)\textasciicircum{}2}
{$2\text{i}$}
\end{CalculFormelGeogebra}
\end{PresentationCode}
\pagebreak
\part{Fenêtre à la manière de Xcas}
\section{Création de l'environnement}
\subsection{Commande}
\begin{cautionblock}
L'environnement dédié à l'affichage d'une fenêtre \textit{à la Xcas} est \texttt{CalculFormelXcas}.
Par défaut, il va donc créer la ligne d'\textit{entête} avec les infos classiques.
\end{cautionblock}
\begin{PresentationCode}{listing only}
\begin{CalculFormelXcas}[clés et options]<options tikz>
\end{CalculFormelXcas}
\end{PresentationCode}
\begin{PresentationCode}{}
\begin{CalculFormelXcas}
\end{CalculFormelXcas}
\end{PresentationCode}
\subsection{Clés et options}
\begin{tipblock}
Le premier argument, optionnel et entre \texttt{[...]} propose les \Cle{clés} suivantes :
\begin{itemize}
\item \Cle{Largeur} qui est la largeur de la fenêtre, en cm ; \hfill~défaut : \Cle{10}
\item \Cle{EspaceLg} qui est l'espacement vertical entre les lignes ; \hfill~défaut : \Cle{2pt}
\item \Cle{Couleur} qui est la couleur des tracés ; \hfill~défaut : \Cle{darkgray}
\item \Cle{PoliceEntete} qui est la taille de la police de l'entête ; \hfill~défaut : \Cle{\textbackslash scriptsize}
\item le booléen \Cle{Entete} qui permet d'afficher ou non l'entête. \hfill~défaut : \Cle{true}
\item le booléen \Cle{Menu} qui permet d'afficher ou non le bouton \textit{MENU} dans les lignes ;
\hfill~défaut : \Cle{true}
\item le booléen \Cle{NoirBlanc} qui permet de forcer tout en niveaux de gris ; \hfill~défaut : \Cle{false}
\item \Cle{TexteOptions} qui est le texte des \textit{options} à afficher ;
\hfill~défaut : \Cle{Config : exact real RAD 12 xcas}
\item le booléen \Cle{Sep} qui permet d'afficher le trait de séparation commande/résultat.
\hfill~défaut : \Cle{true}
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{tipblock}
\begin{tipblock}
Le second argument, optionnel et entre \texttt{<...>} est quant à lui relatif à des arguments à passer à l'environnement \TikZ{} créé, comme par exemple un alignement vertical, etc
\end{tipblock}
\begin{PresentationCode}{}
\begin{CalculFormelXcas}[PoliceEntete=\large,Largeur=13,NoirBlanc]
\end{CalculFormelXcas}
\end{PresentationCode}
\pagebreak
\section{Création des lignes}
\subsection{Commande}
\begin{cautionblock}
La commande dédiée à l'affichage des lignes est \texttt{\textbackslash LigneCalculsXcas}.
Les lignes sont construites l'une après l'une, avec un système de nœuds pour délimiter les \og coins \fg.
\end{cautionblock}
\begin{PresentationCode}{listing only}
\begin{CalculFormelXcas}[clés et options]<options tikz>
\LigneCalculsXcas[options]{commande}{resultat}
\end{CalculFormelXcas}
\end{PresentationCode}
\begin{PresentationCode}{}
\begin{CalculFormelXcas}
\LigneCalculsXcas{commande1}{résultat1}
\LigneCalculsXcas{commande2}{résultat2}
\end{CalculFormelXcas}
\end{PresentationCode}
\subsection{Clés et arguments}
\begin{tipblock}
Le premier argument, optionnel et entre \texttt{[...]} propose les \Cle{clés} suivantes :
\begin{itemize}
\item \Cle{CouleurCmd} pour la couleur de la commande ; \hfill~défaut : \Cle{red}
\item \Cle{CouleurRes} pour la couleur du résultat ; \hfill~défaut : \Cle{blue}
\item \cmaj{0.1.3} \Cle{PosRes} pour la position du résultat parmi \Cle{gauche/centre/droite} ;
\hfill~défaut : \Cle{centre}
\item \Cle{TailleCommande} pour la taille de la commande ; \hfill~défaut : \Cle{\textbackslash normalsize}
\item \Cle{TailleResultat} pour la taille du résultat ; \hfill~défaut : \Cle{\textbackslash large}
\item le booléen \Cle{Fond} activer la coloration de fond de la ligne ; \hfill~défaut : \Cle{false}
\item \Cle{CouleurFond} pour spécifier une couleur (sous la forme \Cle{Couleur} ou \Cle{CouleurCmd/CouleurRes}) de fond si \Cle{Fond=true} ;
\hfill~défaut : \Cle{white}
\item \Cle{MargeH} pour spécifier l'espacement horizontal entre les calculs et les bords verticaux ;
\hfill~défaut : \Cle{0.15}
\item \Cle{MargeV} pour spécifier l'espacement vertical entre les calculs et les traits.
\hfill~défaut : \Cle{6pt}
\end{itemize}
\vspace*{-\baselineskip}\leavevmode
\end{tipblock}
\begin{tipblock}
Les arguments obligatoires, et entre \texttt{\{...\}}, correspondent à la commande et au résultat à afficher dans la ligne :
\begin{itemize}
\item les tailles des caractères sont fixées par les \Cle{clés} précédemment explicitées ;
\item la saisie est libre au niveau du contenu, de la police et des couleurs.
\end{itemize}
\end{tipblock}
\begin{PresentationCode}{}
Un exemple en ligne :~
\begin{CalculFormelXcas}%
[Largeur=10,TexteOptions={Config : exact cpxl RAD 12 xcas}]%
<baseline=(current bounding box.center)>
\LigneCalculsXcas%
{\sffamily g(x):=4/(1+e\textasciicircum(-k x))}
{$\mathsf{x \rightarrow \dfrac{4}{e^{-kx}+1}}$}
\LigneCalculsXcas[TailleCommande=\Large,TailleResultat=\LARGE,PosRes=droite]%
{\sffamily g(x):=4/(1+e\textasciicircum(-k x))}
{$\mathsf{x \rightarrow \dfrac{4}{e^{-kx}+1}}$}
\LigneCalculsXcas
{f(x):=1+sqrt(x+3)}
{$x \rightarrow 1+\sqrt{x+3}$}
\LigneCalculsXcas[,Fond,CouleurFond=yellow!10]
{\texttt{Dériver[exp(0.1*x)]}}
{\texttt{x $\rightarrow$ 0.1*exp(0.1*x)}}
\LigneCalculsXcas[TailleResultat=\Huge,Fond,CouleurFond=orange!5/cyan!5, PosRes=gauche]
{(1/4+1/3)/(1/5+2/7)}
{$\rightarrow$ \: $\dfrac{\dfrac14+\dfrac13}{\dfrac15+\dfrac27}$}
\end{CalculFormelXcas}
\end{PresentationCode}
\end{document}