diff options
author | Karl Berry <karl@freefriends.org> | 2023-09-12 20:15:26 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-09-12 20:15:26 +0000 |
commit | 6f1ac555187b9d372b0427ba6928460bd32f306f (patch) | |
tree | 24c0a5e54744088c5a21e21476be4e205807ba89 /Master/texmf-dist/doc | |
parent | f9e9380455e1ef85ff3c827cbb753c331be461cf (diff) |
spreadtab (12sep23)
git-svn-id: svn://tug.org/texlive/trunk@68256 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r-- | Master/texmf-dist/doc/latex/spreadtab/README | 14 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/spreadtab/spreadtab-en.pdf | bin | 578154 -> 327599 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/spreadtab/spreadtab-en.tex | 25 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/spreadtab/spreadtab-fr.pdf | bin | 609980 -> 346204 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/spreadtab/spreadtab-fr.tex | 27 |
5 files changed, 32 insertions, 34 deletions
diff --git a/Master/texmf-dist/doc/latex/spreadtab/README b/Master/texmf-dist/doc/latex/spreadtab/README index 2f7ffaf9f78..0ffd4c6082e 100644 --- a/Master/texmf-dist/doc/latex/spreadtab/README +++ b/Master/texmf-dist/doc/latex/spreadtab/README @@ -1,9 +1,9 @@ L'extension spreadtab - v0.5 + v0.52 - 27 f\'evrier 2019 + 11 septembre 2023 Author : Christian Tellechea Email : unbonpetit@netc.fr (CT) @@ -13,14 +13,14 @@ Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt ---------------------------------------------------------------------- - R\'esum\'é + Résumé -Cette extension met \`a disposition des fonctionnalit\'es de tableur +Cette extension met à disposition des fonctionnalités de tableur dans les environnements tableaux de LaTeX. -Les cellules d'un tableau ont des coordonn\'ees repr\'esentant leur -ligne et colonne, et par cet interm\'ediaire, peuvent \^etre -ins\'er\'ees dans des formules pour g\'en\'erer des valeurs dans +Les cellules d'un tableau ont des coordonnées représentant leur +ligne et colonne, et par cet intermédiaire, peuvent être +insérées dans des formules pour générer des valeurs dans d'autres cellules. ---------------------------------------------------------------------- diff --git a/Master/texmf-dist/doc/latex/spreadtab/spreadtab-en.pdf b/Master/texmf-dist/doc/latex/spreadtab/spreadtab-en.pdf Binary files differindex 2c95a606f06..72e56b585d5 100644 --- a/Master/texmf-dist/doc/latex/spreadtab/spreadtab-en.pdf +++ b/Master/texmf-dist/doc/latex/spreadtab/spreadtab-en.pdf diff --git a/Master/texmf-dist/doc/latex/spreadtab/spreadtab-en.tex b/Master/texmf-dist/doc/latex/spreadtab/spreadtab-en.tex index 5618aa8b1fd..0852283314b 100644 --- a/Master/texmf-dist/doc/latex/spreadtab/spreadtab-en.tex +++ b/Master/texmf-dist/doc/latex/spreadtab/spreadtab-en.tex @@ -1,14 +1,13 @@ +% !TeX TS-program = lualatex % Manual of the "spreadtab" package \documentclass[english,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,listings,numprint,xspace,fancyhdr,libertine,babel,enumitem,bxtexlogo} \bxtexlogoimport{*} \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 @@ where the options "\verb|fp|" or "\verb|xfp|" select the calculation engine. If \item the functions \verbinline|rand| and \verbinline|randint| are not available with the engine \xfp when compiling with an old version of \XeLaTeX{}. \end{itemize} -The package requires \eTeX, \LaTeXe{} format and the \href{http://www.ctan.org/tex-archive/macros/latex/contrib/fp/}{\fp} or \href{https://ctan.org/pkg/xfp}{\xfp} packages, which performs arithmetic on cell values. Also, the \href{http://www.ctan.org/tex-archive/macros/latex/contrib/xstring/}{\texttt{\textbf{xstring}}} package is needed.\medskip +The package requires \eTeX, \LaTeXe{} format and the \href{https://ctan.org/pkg/fp}{\fp} or \href{https://ctan.org/pkg/xfp}{\xfp} packages, which performs arithmetic on cell values. Also, the \href{https://ctan.org/pkg/xstring}{\texttt{\textbf{xstring}}} package is needed.\medskip The package is compatible with \emph{all} tabular environments, and assumes that `\verb=&=' is used to delimit columns and `\verb-\\-' to end lines (but see page~\pageref{STeol}). This compatibility requirement led me to program \ST so that it works independently of the table environment. Thus, reading the table, processing and calculating the formulas is done \emph{before} the environment table `sees' the body of the table.\medskip @@ -183,7 +182,7 @@ After the work of \ST, we get a display as if we had written: Although having features resembling those of a spreadsheet with \LaTeX{} is appreciable, the 3 stages described above take time. The \ST environment leads to \emph{much slower compilation} than with a classical table. -Moreover, \ST \emph{cannot stand in for a spreadsheet program}. Indeed, it has very few features, and it does not provide visual assistance. This point may cause difficulty\footnote{I certify that, with use, this discomfort tends to disappear (if you do not work with huge tables, of course).} for big or complex tables. The syntax of \ST is also another difficulty. However, the advantage of this package is that it makes it possible to write \emph{in the \LaTeX{} code} tables involving calculation when these tables are usually exported\footnote{I mention the two main exportation programs: \href{http://calc2latex.sourceforge.net/}{\texttt{\textbf{cacl2latex}}} for `calc' (Open Office), and \href{http://www.ctan.org/tex-archive/support/excel2latex/}{\texttt{\textbf{excel2latex}}} for `excel' (Microsoft Office).} from a spreadsheet program to \LaTeX{} code. Consequently, it becomes possible to avoid the disadvantages of the exportation programs: fine tuning often necessary to obtain exactly what you want, exported tables containing the values only (formulas are lost when exportation is done), no compatibility with all types of environments, exportation must be started again if a single number or formula is modified in the table. +Moreover, \ST \emph{cannot stand in for a spreadsheet program}. Indeed, it has very few features, and it does not provide visual assistance. This point may cause difficulty\footnote{I certify that, with use, this discomfort tends to disappear (if you do not work with huge tables, of course).} for big or complex tables. The syntax of \ST is also another difficulty. However, the advantage of this package is that it makes it possible to write \emph{in the \LaTeX{} code} tables involving calculation when these tables are usually exported\footnote{I mention the two main exportation programs: \href{http://calc2latex.sourceforge.net/}{\texttt{\textbf{cacl2latex}}} for `calc' (Open Office), and \href{https://ctan.org/pkg/excel2latex}{\texttt{\textbf{excel2latex}}} for `excel' (Microsoft Office).} from a spreadsheet program to \LaTeX{} code. Consequently, it becomes possible to avoid the disadvantages of the exportation programs: fine tuning often necessary to obtain exactly what you want, exported tables containing the values only (formulas are lost when exportation is done), no compatibility with all types of environments, exportation must be started again if a single number or formula is modified in the table. \subsection{Motivation} A few months before I started to write this package, Derek \textsc{O'Connor} had pointed out that nothing was available in the world of \LaTeX{} packages to imitate --~even a little~-- the behaviour of spreadsheet programs. I found the challenge interesting and I started writing this package as a good programming exercise. @@ -256,7 +255,7 @@ a2 & a4+b4 & b4+c4 & c4+d4 & d4 \subsection{Relative references} To refer to a cell, it may be convenient to specify its position relative to where the formula is written. Thus, the relative coordinates of a cell are 2 relative numbers written using this syntax: \falseverb{[x,y]} where \falseverb x is the horizontal offset from the cell containing the formula and \falseverb y is the vertical offset. For example, \falseverb{[-2,3]} refers to the cell located 2 columns before (on the left) and 3 rows after (below) the cell where the formula is located. -Here is the same table as above but the references are relatives and the \verbinline-matrix- environment of the \href{http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/}{\texttt{\textbf{amsmath}}} package is used:\par\nobreak +Here is the same table as above but the references are relatives and the \verbinline-matrix- environment of the \href{https://ctan.org/pkg/amsmath}{\texttt{\textbf{amsmath}}} package is used:\par\nobreak \begin{minipage}{0.82\linewidth} \begin{lstlisting} $ @@ -508,11 +507,11 @@ When cells are in math mode, you can\footnote{It is preferable to use the \textt \end{minipage} \subsection{Number formatting and the \fp package} -With \verb|fp| option, all calculations are made by the \verb-\FPeval- macro\footnote{This macro accepts infix or postfix notation. Consequently, both can be used to write formulas in a cell. For example the infix formula `\falseverb{a1+b1}' is equivalent to the postfix ones `\falseverb{a1 b1 add}' or `\falseverb{a1 b1 +}'.} of the \href{http://www.ctan.org/tex-archive/macros/latex/contrib/fp/}{\fp} package. This package provides all necessary arithmetical functions along with various scientific and trigonometric functions. Calculations are made with 18 decimal digits of precision, and \fp displays \emph{all} the decimals! Without taking precautions, you can end up with a lot of numbers in the decimal parts of some results. This section is compiled with \verbinline|\STusefp|.\STusefp +With \verb|fp| option, all calculations are made by the \verb-\FPeval- macro\footnote{This macro accepts infix or postfix notation. Consequently, both can be used to write formulas in a cell. For example the infix formula `\falseverb{a1+b1}' is equivalent to the postfix ones `\falseverb{a1 b1 add}' or `\falseverb{a1 b1 +}'.} of the \href{https://ctan.org/pkg/fp}{\fp} package. This package provides all necessary arithmetical functions along with various scientific and trigonometric functions. Calculations are made with 18 decimal digits of precision, and \fp displays \emph{all} the decimals! Without taking precautions, you can end up with a lot of numbers in the decimal parts of some results. This section is compiled with \verbinline|\STusefp|.\STusefp The number of digits displayed can be controlled in various ways: \begin{itemize} - \item the \href{http://www.ctan.org/tex-archive/macros/latex/contrib/numprint/}{\texttt{\textbf{numprint}}} package can be used in order to properly display numbers; + \item the \href{https://ctan.org/pkg/numprint}{\texttt{\textbf{numprint}}} package can be used in order to properly display numbers; \item \fp can round or truncate numbers with \verb-round(number,integer)- or \verb-trunc(number,integer)- but the syntax makes this tedious to write if this is needed for many cells; \item \ST can round \emph{all} the numbers in the table with the macro \verbinline-\STautoround- whose argument is number of digits in the decimal part. If the argument is empty, no rounding is done. If the starred macro \verbinline-\STautoround*- is used, the decimal part is filled with 0 as necessary (only with \fp). \end{itemize} @@ -597,8 +596,8 @@ For horizontal rules, it is possible to use:\par\nobreak \begin{itemize} \item \verb-\hline-; \item \verb=\cline{x-y}= where \falseverb x and \falseverb y define the start and the end of the rule; - \item \verb=\hhline{<type>}= where \verb=<type>= is the type of rule (read the manual of the \href{http://www.ctan.org/tex-archive/macros/latex/required/tools/}{\texttt{\textbf{hhline}}} package). - \item any command of the \href{http://www.ctan.org/tex-archive/macros/latex/contrib/booktabs/}{\texttt{\textbf{booktabs}}} package: \verb-\toprule-, \verb-\midrule-, \verb-\bottomrule-, \verb-\cmidrule-, \verb-\addlinespace-, \verb-\morecmidrule- and \verb-\specialrule-. All the arguments of these macros, optional or mandatory are taken into account; + \item \verb=\hhline{<type>}= where \verb=<type>= is the type of rule (read the manual of the \href{https://ctan.org/pkg/hhline}{\texttt{\textbf{hhline}}} package). + \item any command of the \href{https://ctan.org/pkg/booktabs}{\texttt{\textbf{booktabs}}} package: \verb-\toprule-, \verb-\midrule-, \verb-\bottomrule-, \verb-\cmidrule-, \verb-\addlinespace-, \verb-\morecmidrule- and \verb-\specialrule-. All the arguments of these macros, optional or mandatory are taken into account; \item \verbinline-\noalign- and its mandatory argument can be written after \verb-\\-. \end{itemize} Example: @@ -813,7 +812,7 @@ In the following table, the sum of the binomial coefficients of Pascal's triangl \end{minipage}% \subsubsection{The \texttt{fact} macro} -The macro-function \verbinline=fact(<number>)= computes the factorial of its argument. With the engine \href{https://www.ctan.org/pkg/fp}{\fp}, the argument must be less than 19 to avoid overflows. The \falseverb{<number>} can also be a reference to a cell whose numeric field contains an integer.\medskip +The macro-function \verbinline=fact(<number>)= computes the factorial of its argument. With the engine \href{https://ctan.org/pkg/fp}{\fp}, the argument must be less than 19 to avoid overflows. The \falseverb{<number>} can also be a reference to a cell whose numeric field contains an integer.\medskip Here are the factorials from 0 to 8:\par\nobreak \begin{lstlisting} @@ -837,7 +836,7 @@ It should be used like this: \verbinline{sumprod(<range 1>;<range 2>;...;<range In this simple example, the average age of a group of children aged from 10 to 15 years old is calculated:\par\nobreak \begin{lstlisting} \begin{spreadtab}{{tabular}{r*6c}} -@\Ages & 10 & 11 & 12 & 13 & 14 & 15\\ +@Ages & 10 & 11 & 12 & 13 & 14 & 15\\ @Number & 5 & 8 & 20 & 55 & 9 & 3\\\hline @Average&\multicolumn{6}{l}{:={sumprod(b1:g1;b2:g2)/sum(b2:g2)}} \end{spreadtab} @@ -1449,7 +1448,7 @@ $Sx=:={a2+a3+a4}$ & $Sy=:={b2+b3+b4}$ & $Sx+Sy=:={}$\\\hline \end{center} These 3 debugging tables may help to better understand what happens behind the scene when \ST works. We can observe that all cells with a numeric field (see table 2) have an internal code of 1 or 2 (see table 3) and an associated numeric field marker `\verb-:=-' in table 1. This marker represents the location where (by substitution) the result of the numeric field will be inserted. So from the contents of text fields in table 1 and, once calculated, the numeric fields, by a simple substitution, the cells are reconstituted to give those of the final table. -In the debugging tables, cells containing the coordinates are grayed if the package \href{http://www.ctan.org/tex-archive/macros/latex/contrib/colortbl/}{\texttt{\textbf{colortbl}}} has been loaded; they are left white otherwise. +In the debugging tables, cells containing the coordinates are grayed if the package \href{https://ctan.org/pkg/colortbl}{\texttt{\textbf{colortbl}}} has been loaded; they are left white otherwise. \section{Examples} In the examples of this section, the numbers entered by the user are in \textcolor{black}{red} and the calculated numbers are in \textcolor{black}{black} diff --git a/Master/texmf-dist/doc/latex/spreadtab/spreadtab-fr.pdf b/Master/texmf-dist/doc/latex/spreadtab/spreadtab-fr.pdf Binary files differindex 52df68ec605..c0b3f2dbe24 100644 --- a/Master/texmf-dist/doc/latex/spreadtab/spreadtab-fr.pdf +++ b/Master/texmf-dist/doc/latex/spreadtab/spreadtab-fr.pdf diff --git a/Master/texmf-dist/doc/latex/spreadtab/spreadtab-fr.tex b/Master/texmf-dist/doc/latex/spreadtab/spreadtab-fr.tex index 1eab8cb3864..a4390e0a07d 100644 --- a/Master/texmf-dist/doc/latex/spreadtab/spreadtab-fr.tex +++ b/Master/texmf-dist/doc/latex/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 ! |