% !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] \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] 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] \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] \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}]% \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}