diff options
author | Norbert Preining <norbert@preining.info> | 2023-09-12 03:01:04 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-09-12 03:01:04 +0000 |
commit | becf79ac9bbdddd15ef9d66a35c6d64252a2cd46 (patch) | |
tree | 8d5a60061f6aef780c147dcc82674a5652be9b75 /macros/latex/contrib/spreadtab/spreadtab-fr.tex | |
parent | f2abd8392e16d9b51a73c3c09b322ddde8b9be9e (diff) |
CTAN sync 202309120301
Diffstat (limited to 'macros/latex/contrib/spreadtab/spreadtab-fr.tex')
-rw-r--r-- | macros/latex/contrib/spreadtab/spreadtab-fr.tex | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/macros/latex/contrib/spreadtab/spreadtab-fr.tex b/macros/latex/contrib/spreadtab/spreadtab-fr.tex index 1eab8cb386..a4390e0a07 100644 --- a/macros/latex/contrib/spreadtab/spreadtab-fr.tex +++ b/macros/latex/contrib/spreadtab/spreadtab-fr.tex @@ -1,14 +1,13 @@ +% !TeX TS-program = lualatex % Documentation de l'extension "spreadtab" \documentclass[french,a4paper,10pt]{article} -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} \usepackage[a4paper,margin=2.6cm]{geometry} \usepackage[table]{xcolor} \usepackage{amsmath,amssymb,textcomp,array,arydshln,tabularx,numprint,xspace,fancyhdr,libertine,babel,enumitem,listings,bxtexlogo} \bxtexlogoimport{*}\frenchsetup{og=«,fg=»} \usepackage[xfp,fp]{spreadtab}\STusexfp \usepackage[italic]{mathastext} -\usepackage[scaled=0.8]{luximono} +\usepackage[scaled=0.8]{GoMono} \fancyhead[L]{} \fancyhead[C]{\small\bfseries\ST} \fancyhead[R]{\scriptsize\slshape \leftmark} @@ -148,7 +147,7 @@ où les options «\verb|fp|» ou «\verb|xfp|» spécifient le moteur de calcul \item les fonctions \verbinline|rand| et \verbinline|randint| ne sont pas disponibles avec le moteur \xfp lorsqu'on compile avec une version de \XeLaTeX{} trop ancienne. \end{itemize} -Ce package nécessite le moteur \eTeX, le format \LaTeXe{} ainsi que le package \href{https://www.ctan.org/pkg/fp}{\fp} ou \href{https://ctan.org/pkg/xfp}{\xfp} à qui sont confiés les calculs. Le package \href{https://www.ctan.org/pkg/xstring}{\texttt{\textbf{xstring}}} est également requis. +Ce package nécessite le moteur \eTeX, le format \LaTeXe{} ainsi que le package \href{https://ctan.org/pkg/fp}{\fp} ou \href{https://ctan.org/pkg/xfp}{\xfp} à qui sont confiés les calculs. Le package \href{https://ctan.org/pkg/xstring}{\texttt{\textbf{xstring}}} est également requis. J'ai souhaité dès le départ de rendre ce package compatible avec \emph{tous} les environnements de tableaux, sous réserve que les séparateurs entre colonnes soient «\verb=&=» et les retours à la ligne soient «\verb=\\=». Cette contrainte forte sur la compatibilité m'a conduit à programmer \ST pour qu'il agisse d'une façon \emph{totalement indépendante} de l'environnement tableau. Ainsi, la lecture du tableau, le traitement et le calcul des formules se fait \emph{avant} que l'environnement tableau ne prenne la main et ne «voit» le corps du tableau. @@ -183,7 +182,7 @@ et après le travail de \ST, on obtient un affichage comme si l'on avait écrit Même si disposer de fonctionnalités ressemblant à celles d'un tableur avec \LaTeX{} est appréciable, il ne faut pas perdre de vue que les 3 étapes décrites ci-dessus prennent du temps. L'ensemble conduit donc à des temps de compilation \emph{beaucoup plus importants} qu'avec un tableau classique. -Il faut ajouter que \ST \emph{ne peut remplacer un tableur}. En effet, ses possibilités sont très limitées. De plus, surtout pour des tableaux complexes ou de grande taille, le manque d'aide visuelle devient gênant\footnote{Ceci dit, je certifie qu'avec l'habitude, cette gêne tend à s'estomper (si l'on s'en tient à des tableaux raisonnables, bien sûr).}, et la syntaxe de \ST constitue aussi un obstacle supplémentaire. L'avantage de cette extension est de pouvoir écrire \emph{dans le code \LaTeX} des tableaux comportant des calculs, alors que ces tableaux sont généralement exportés\footnote{On peut signaler les 2 principaux programmes d'exportation : \href{http://calc2latex.sourceforge.net/}{\texttt{\textbf{cacl2latex}}} pour «calc» de Open Office, et \href{http://www.ctan.org/tex-archive/support/excel2latex/}{\texttt{\textbf{excel2latex}}} pour «excel» de Microsoft Office.} d'une feuille de calcul d'un tableur vers le code \LaTeX. On évite ainsi les désagréments des programmes d'exportation : mise en forme souvent à retoucher pour obtenir exactement ce que l'on veut, non compatibilité avec tous les environnements de tableaux, obtention de tableaux ne contenant que les valeurs (les formules sont perdues à l'exportation), exportation à recommencer si l'on modifie un seul nombre ou formule dans le tableau. +Il faut ajouter que \ST \emph{ne peut remplacer un tableur}. En effet, ses possibilités sont très limitées. De plus, surtout pour des tableaux complexes ou de grande taille, le manque d'aide visuelle devient gênant\footnote{Ceci dit, je certifie qu'avec l'habitude, cette gêne tend à s'estomper (si l'on s'en tient à des tableaux raisonnables, bien sûr).}, et la syntaxe de \ST constitue aussi un obstacle supplémentaire. L'avantage de cette extension est de pouvoir écrire \emph{dans le code \LaTeX} des tableaux comportant des calculs, alors que ces tableaux sont généralement exportés\footnote{On peut signaler les 2 principaux programmes d'exportation : \href{http://calc2latex.sourceforge.net/}{\texttt{\textbf{cacl2latex}}} pour «calc» de Open Office, et \href{https://ctan.org/pkg/excel2latex}{\texttt{\textbf{excel2latex}}} pour «excel» de Microsoft Office.} d'une feuille de calcul d'un tableur vers le code \LaTeX. On évite ainsi les désagréments des programmes d'exportation : mise en forme souvent à retoucher pour obtenir exactement ce que l'on veut, non compatibilité avec tous les environnements de tableaux, obtention de tableaux ne contenant que les valeurs (les formules sont perdues à l'exportation), exportation à recommencer si l'on modifie un seul nombre ou formule dans le tableau. \subsection{Motivation} Quelques mois avant de commencer à m'attaquer à ce package, Derek \textsc{O'Connor} m'avait fait remarquer que rien n'était disponible dans le monde des extensions de \LaTeX{} pour imiter ---~ne serait-ce qu'un peu~--- le calcul de formules dans des tableaux, comme cela se fait couramment avec des tableurs. J'ai trouvé le défi intéressant et je me suis lancé dans l'écriture de ce package qui en fait, n'est qu'un exercice de programmation. @@ -256,7 +255,7 @@ a2 & a4+b4 & b4+c4 & c4+d4 & d4 \subsection{Références relatives} Pour faire référence à une cellule, il peut être commode de spécifier sa position par rapport à la cellule où se trouve la formule. Ainsi, les coordonnées «relatives» d'une cellule sont 2 nombres relatifs écrits selon cette syntaxe : \falseverb{[x,y]}, où \falseverb x est le décalage horizontal par rapport à la cellule contenant la formule et \falseverb y est le décalage vertical. Ainsi, \falseverb{[-2,3]} fait référence à la cellule se trouvant 2 colonnes avant (à gauche) et 3 lignes après (plus bas) la cellule où se trouve la formule. -Voici à nouveau le triangle de Pascal vu ci-dessus, mais les références sont relatives et l'environnement «\verbinline-matrix-» du package \href{http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/}{\texttt{\textbf{amsmath}}} est utilisé :\par\nobreak +Voici à nouveau le triangle de Pascal vu ci-dessus, mais les références sont relatives et l'environnement «\verbinline-matrix-» du package \href{https://ctan.org/pkg/amsmath}{\texttt{\textbf{amsmath}}} est utilisé :\par\nobreak \begin{minipage}{0.82\linewidth} \begin{lstlisting} $ @@ -508,11 +507,11 @@ Lorsque des cellules sont en mode math, on peut\footnote{Il est cependant préfà \end{minipage} \subsection{Mise en forme des nombres avec le moteur \fp} -Comme cela a été précisé avec l'option \fp, tous les calculs sont faits par le package \href{http://www.ctan.org/tex-archive/macros/latex/contrib/fp/}{\texttt{\textbf{fp}}} et sa macro \falseverb{\FPeval}\footnote{À ce propos, les notations infixe ou postfixe sont acceptées par {\ttfamily\string\FPeval} ce qui signifie que les formules dans \ST peuvent être indifféremment sous forme infixe ou postfixe. Par exemple, la formule infixe «\falseverb{a1+b1}» est équivalente aux formules postfixes «\falseverb{a1 b1 add}» ou «\falseverb{a1 b1 +}».}. Ce package fournit d'extraordinaires possibilités de calcul pour \TeX{} et dispose de toutes les fonctions arithmétiques, scientifiques et trigonométriques usuelles. Les calculs sont faits avec une précision de $10^{-18}$, et les 18 décimales sont affichées lorsqu'un calcul ne tombe pas juste ! Sans prendre des précautions, on peut se retrouver avec beaucoup de chiffres dans les parties décimales de certains résultats. Toute cette section est compilée avec \verbinline|\STusefp|.\STusefp +Comme cela a été précisé avec l'option \fp, tous les calculs sont faits par le package \href{https://ctan.org/pkg/fp}{\texttt{\textbf{fp}}} et sa macro \falseverb{\FPeval}\footnote{À ce propos, les notations infixe ou postfixe sont acceptées par {\ttfamily\string\FPeval} ce qui signifie que les formules dans \ST peuvent être indifféremment sous forme infixe ou postfixe. Par exemple, la formule infixe «\falseverb{a1+b1}» est équivalente aux formules postfixes «\falseverb{a1 b1 add}» ou «\falseverb{a1 b1 +}».}. Ce package fournit d'extraordinaires possibilités de calcul pour \TeX{} et dispose de toutes les fonctions arithmétiques, scientifiques et trigonométriques usuelles. Les calculs sont faits avec une précision de $10^{-18}$, et les 18 décimales sont affichées lorsqu'un calcul ne tombe pas juste ! Sans prendre des précautions, on peut se retrouver avec beaucoup de chiffres dans les parties décimales de certains résultats. Toute cette section est compilée avec \verbinline|\STusefp|.\STusefp Pour se prémunir de ce problème, plusieurs solutions existent : \begin{itemize} - \item on peut utiliser le package \href{http://www.ctan.org/tex-archive/macros/latex/contrib/numprint/}{\texttt{\textbf{numprint}}} qui est ce qui se fait de mieux dans l'affichage des nombres; + \item on peut utiliser le package \href{https://ctan.org/pkg/numprint}{\texttt{\textbf{numprint}}} qui est ce qui se fait de mieux dans l'affichage des nombres; \item on peut demander à \fp d'arrondir un résultat avec sa fonction \verb-round(nombre,entier)- qui arrondit \verb=nombre= avec \verb=entier= chiffres après la virgule; \item on peut également demander à \ST d'arrondir \emph{tous} les nombres placés dans le tableau à une certaine précision avec la macro \verbinline-\STautoround- dont l'argument est le nombre de chiffres demandés après la virgule. Si l'argument est vide, aucun arrondi n'est fait. Si on utilise la macro étoilée \verbinline-\STautoround*-, la partie décimale est remplie si besoin avec des 0 inutiles (uniquement avec \fp). \end{itemize} @@ -573,7 +572,7 @@ Il est possible d'arrondir tous les nombres via la commande \verbinline-\numprin Voici un autre exemple similaire où l'on teste si le nombre à afficher est négatif avec la commande \verbinline-\FPifneg- du package \fp. Si tel est le cas, le nombre est affiché en rouge. La commande \verbinline-\STautoround- a été préférée à \verbinline-\nprounddigits- du package \verb-numprint- puisque cette dernière ajoute des 0 inutiles. On a également remis le point décimal par défaut puisque \verbinline-\numprint- est en charge de l'affichage des nombres. \begin{lstlisting} \STsetdecimalsep{.} -\renewcommand\STprintnum[1]{\FPifneg{#1}\color{red}\fi\numprint{#1}} +\renewcommand\STprintnum[1]{\STifneg{#1}{\color{red}}{}\numprint{#1}} \STautoround{6} \begin{spreadtab}{{tabular}{cccccccc}} @$x$ & -1 & 2 & -3 & 4 & -5 & 6 & -7 \\\hline @@ -582,7 +581,7 @@ Voici un autre exemple similaire où l'on teste si le nombre à afficher est né \end{lstlisting} \begin{center} \STsetdecimalsep{.} -\renewcommand\STprintnum[1]{\STifneg{#1}\color{red}\fi\numprint{#1}} +\renewcommand\STprintnum[1]{\STifneg{#1}{\color{red}}{}\numprint{#1}} \STautoround{6} \begin{spreadtab}{{tabular}{cccccccc}} @$x$ & -1 & 2 & -3 & 4 & -5 & 6 & -7 \\\hline @@ -597,8 +596,8 @@ Pour les filets horizontaux, on peut utiliser autant de fois que l'on veut: \begin{itemize} \item \verb-\hline-; \item \verb=\cline{x-y}= où \falseverb x et \falseverb y sont les numéro des colonnes de départ et d'arrivée du filet; - \item \verb=\hhline{<type>}= où \verb=<type>= est le type de ligne désirée (voir la documentation du package \href{http://www.ctan.org/tex-archive/macros/latex/required/tools/}{\texttt{\textbf{hhline}}}). - \item n'importe quelle commande du package \href{http://www.ctan.org/tex-archive/macros/latex/contrib/booktabs/}{\texttt{\textbf{booktabs}}}, à savoir \verb-\toprule-, \verb-\midrule-, \verb-\bottomrule-, \verb-\cmidrule-, \verb-\addlinespace-, \verb-\morecmidrule- et \verb-\specialrule-. Tous les arguments de ces macros, optionnels ou pas sont gérés; + \item \verb=\hhline{<type>}= où \verb=<type>= est le type de ligne désirée (voir la documentation du package \href{https://ctan.org/pkg/hhline}{\texttt{\textbf{hhline}}}). + \item n'importe quelle commande du package \href{https://ctan.org/pkg/booktabs}{\texttt{\textbf{booktabs}}}, à savoir \verb-\toprule-, \verb-\midrule-, \verb-\bottomrule-, \verb-\cmidrule-, \verb-\addlinespace-, \verb-\morecmidrule- et \verb-\specialrule-. Tous les arguments de ces macros, optionnels ou pas sont gérés; \item \verbinline-\noalign- et son argument peuvent être placés après \verb-\\- et pris en compte. \end{itemize} Voici le triangle de Pascal inversé, et massacré pour l'exemple :\par\nobreak @@ -813,7 +812,7 @@ Les références relatives et absolues peuvent être utilisées conjointement, c \end{minipage}% \subsubsection{Macro-fonction \ttfamily fact} -La macro-fonction \verbinline=fact(<nombre>)= permet de calculer la factorielle de son argument. Avec le moteur de calcul \href{https://www.ctan.org/pkg/fp}{\fp} le nombre doit être un entier compris entre 0 et 18 inclus pour éviter des débordements. Le \falseverb{<nombre>} peut aussi être une référence vers une cellule contenant un nombre entier. +La macro-fonction \verbinline=fact(<nombre>)= permet de calculer la factorielle de son argument. Avec le moteur de calcul \href{https://ctan.org/pkg/fp}{\fp} le nombre doit être un entier compris entre 0 et 18 inclus pour éviter des débordements. Le \falseverb{<nombre>} peut aussi être une référence vers une cellule contenant un nombre entier. Voici les factorielles de 0 à 8 :\par\nobreak \begin{lstlisting} @@ -1449,7 +1448,7 @@ $Sx=:={a2+a3+a4}$ & $Sy=:={b2+b3+b4}$ & $Sx+Sy=:={}$\\\hline \end{center} Ces 3 tableaux de débogage peuvent aider à comprendre un peu mieux le fonctionnement interne de \ST. On peut observer dans le tableau 2 que toutes les cellules ayant un champ numérique ont un code interne de 1 ou 2 (voir tableau 3) et ont un marqueur de champ numérique "\verb-:=-" qui leur est associé (voir tableau 1). Ce marqueur représente l'endroit où sera inséré ---~par substitution~--- le résultat du calcul du champ numérique. C'est donc à partir des contenus des champs textuels du tableau 1 et par simple substitution, qu'une fois les champs numériques calculés, les cellules sont reconstituées pour donner celles du tableau final. -Dans les tableaux ci-dessus, les cellules contenant les coordonnées ne sont grisées que si le package \href{http://www.ctan.org/tex-archive/macros/latex/contrib/colortbl/}{\texttt{\textbf{colortbl}}} a été chargé. +Dans les tableaux ci-dessus, les cellules contenant les coordonnées ne sont grisées que si le package \href{https://ctan.org/pkg/colortbl}{\texttt{\textbf{colortbl}}} a été chargé. \section{Exemples} Voici quelques tableaux pour finir ! |