summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-08-02 00:10:52 +0000
committerKarl Berry <karl@freefriends.org>2011-08-02 00:10:52 +0000
commit82f210a578a1a169eaa26b02efc025bd1e8ea5d2 (patch)
treefc9cebe5bfc7c1755f93cc8374df582d911dcbf2 /Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex
parent6189f60645741ffcb1b6e730325243882d7e5526 (diff)
spreadtab 0.4 (5jul11)
git-svn-id: svn://tug.org/texlive/trunk@23309 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex')
-rw-r--r--Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex140
1 files changed, 119 insertions, 21 deletions
diff --git a/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex b/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex
index 7436cc0a385..efd1f6dcc20 100644
--- a/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex
+++ b/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex
@@ -1,16 +1,16 @@
% ____________________________________________________________________________
% | |
% | |
-% | spreadtab v0.3c |
+% | spreadtab v0.4 |
% | |
-% | 8 avril 2011 |
+% | 4 juillet 2011 |
% | |
% |___________________________________________________________________________|
%
% Ce fichier est spreadtab_doc_fr.tex, le code source de la documentation en
% français du package spreadtab.
%
-% Copyright Christian Tellechea 2009-2010
+% Copyright Christian Tellechea 2009-2011
% email : unbonpetit@gmail.com
%
% -------------------------------------------------------------------
@@ -53,7 +53,6 @@
\fancyfoot[r]{\thepage}
\usepackage[frenchb]{babel}
\frenchbsetup{StandardLists=true}
-
\usepackage{enumitem}
\makeatletter
\definecolor{ST@bckgcolor}{rgb}{0.87,0.9,1}
@@ -71,11 +70,11 @@
captionpos=t,xleftmargin=1em,xrightmargin=1em,lineskip=0pt,%
numbersep=1em,classoffset=1,%
morekeywords={% les macros et commandes de spreadtab
- spreadtab,SThiderow,SThidecol,STsavecell,STautoround,STmessage,STsetdecimalsep,STtransposecar,STdebug,STdisplaytab,STsetdisplaymarks,%
- STnumericfieldmarker,STprintnum,STtextcell,STcopy,fact,id,ifeq,ifgt,iflt,numtofrshortdate,%
+ spreadtab,endspreadtab,SThiderow,SThidecol,STsavecell,STautoround,STmessage,STsetdecimalsep,STtransposecar,STdebug,STdisplaytab,STsetdisplaymarks,%
+ STnumericfieldmarker,STprintnum,STtextcell,STcopy,STtag,STmakegtag,STeol,fact,id,ifeq,ifgt,iflt,numtofrshortdate,%
numtoengshortdate,numtofrlongdate,numtoenglongdate,numtofrmonth,%
numtoengmonth,numtofrday,numtoengday,sum,rand,randint,sumprod,%
- frshortdatetonum,engshortdatetonum,englongdatetonum,frlongdatetonum,gcd,lcm},%
+ frshortdatetonum,engshortdatetonum,englongdatetonum,frlongdatetonum,gcd,lcm,tag,cell,row,col},%
keywordstyle=\color{ST@keywordstc},classoffset=0}
%%%%%%%%%%% environnement OOcalc
@@ -167,6 +166,15 @@
\tableofcontents\newpage
\parskip\medskipamount
\section{Introduction}
+\subsection{Nouveau dans la version \csname ST@ver\endcsname}
+Voici les nouveautés de cette version :
+\begin{itemize}
+ \item avant de passer la main à l'environnement demandé par l'utilisateur, \ST ne travaille pas à l'intérieur d'un groupe de telle sorte que les calculs ne provoquent plus de ``save-stack error'' dans les tableaux de grande taille avec de nombreux calculs;
+ \item les commandes \verbinline-\spreadtab- et \verbinline-\endspreadtab- peuvent délimiter un tableau;
+ \item implémentation des macros fonctions ``\verbinline-tag-'', ``\verbinline-cell-'', ``\verbinline-row-'', ``\verbinline-col-'' et de la commande \verbinline-\STtag- (voir page~\pageref{tag});
+ \item la commande \verbinline-\STeol{<macro>}- permet de choisir quelle séquence de contrôle marquera les fins de lignes dans les tableaux de \ST (voir page~\pageref{STeol}).
+\end{itemize}
+
\subsection{Présentation}
Cette extension permet de construire des tableaux similaire à des feuilles de calculs. Les cellules du tableau ont des coordonnées (colonne et ligne) qui peuvent être utilisées dans des formules pour calculer des valeurs dans d'autres cellules.
@@ -180,18 +188,29 @@ Par conséquent, \ST procède en 3 étapes :
\item ensuite, il procède au calcul des formules contenues dans les cellules, en ayant pris soin pour chacune de calculer auparavant les cellules dépendantes. L'ordre dans lequel les cellules doivent être calculées est déterminé par \ST. Les calculs sont faits par le package \href{http://www.ctan.org/tex-archive/macros/latex/contrib/fp/}{\texttt{\textbf{fp}}};
\item enfin, il faut reconstruire le tableau en ayant remplacé chaque formule par la valeur numérique préalablement calculée et passer la main à l'environnement tableau spécifié par l'utilisateur.
\end{itemize}
-La syntaxe est la suivante :\par\nobreak
+Les deux syntaxes possibles (et équivalentes) sont les suivantes, où \verb-<nom>- représente le nom de n'importe quel environnement de type tableau disponible avec \LaTeX{} ou avec une extension :\par\nobreak
+\begin{minipage}{0.48\linewidth}
\begin{lstlisting}[backgroundcolor=\color{ST@codebckgcolor}]
-\begin{spreadtab}{{<nom de l'environnement>}<parametres de l'environnement>}
+\begin{spreadtab}{{<nom>}{<parametres>}}
tableau avec formules et nombres
\end{spreadtab}
\end{lstlisting}
+\end{minipage}\hfill ou\hfill
+\begin{minipage}{0.48\linewidth}
+\begin{lstlisting}[backgroundcolor=\color{ST@codebckgcolor}]
+\spreadtab{{<nom>}{<parametres>}}
+ tableau avec formules et nombres
+\endspreadtab
+\end{lstlisting}
+\end{minipage}
+
et après le travail de \ST, on obtient un affichage comme si l'on avait écrit :\par\nobreak
\begin{lstlisting}[backgroundcolor=\color{ST@codebckgcolor}]
-\begin{<nom de l'environnement>}<parametres de l'environnement>
+\begin{<nom>}{<parametres>}
tableau avec nombres
-\end{<nom de l'environnement>}
+\end{<nom>}
\end{lstlisting}
+
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 et surtout que \falseverb{fp} est lent dans ses calculs. 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 \og calc\fg{} de Open Office, et \href{http://www.ctan.org/tex-archive/support/excel2latex/}{\texttt{\textbf{excel2latex}}} pour \og excel\fg{} 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.
@@ -199,11 +218,13 @@ Il faut ajouter que \ST \emph{ne peut remplacer un tableur}. En effet, ses possi
\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.
-La route a été longue avant d'arriver à cette version et je tiens à remercier tout particulièrement Christophe \textsc{Casseau} pour l'intérêt qu'il a porté dès le début à ce travail et les suggestions qu'il m'a faites, ainsi que plus récemment Derek \textsc{O'Connor} pour ses conseils et pour les échanges constructifs que nous avons eus. J'adresse également mes remerciements à Huu~Dien~Khue \textsc{Le} pour la traduction de ce manuel en viet-namien.
+La route a été longue avant d'arriver à cette version et je tiens à remercier tout particulièrement Christophe \textsc{Casseau} pour l'intérêt qu'il a porté dès le début à ce travail et les suggestions qu'il m'a faites, ainsi que plus récemment Derek \textsc{O'Connor} pour ses conseils et pour les échanges constructifs que nous avons eus. J'adresse également mes remerciements à Andrew \textsc{Parsloe} pour la relecture et les corrections apportées à la traduction de ce manuel en anglais.
\section{Fonctionnalités courantes}
Il faut noter tout d'abord qu'à l'intérieur d'un tableau sous environnement \ST, les caractères \og\verb=:=\fg{} et \og\verb=;=\fg{} perdent leur code de catégorie actif qui leur a été attribué si vous utilisez l'option \falseverb{frenchb} du package \falseverb{babel}. Par conséquent, l'espace automatique inséré avant ces caractères sera désactivé dans un tableau.
+\label{STeol}Par défaut, \ST considère qu'une ligne se termine avec ``\verb-\\-'' qui est habituel dans les tableaux. Ce marqueur de fin de ligne peut être modifié via la commande \verbinline-\STeol{<macro>}-. On peut par exemple écrire \verbinline-\STeol{\tabularnewline}-. Il faut bien comprendre que les fins de lignes qui seront insérées dans le tableau final seront toujours ``\verb-\\-'', même si le marqueur de fin de ligne lorsque \ST \emph{lit} le tableau a été modifié.
+
\subsection{Références absolues}
Dans le tableau, les cellules sont repérées par leur références absolues de cette façon :
\begin{itemize}
@@ -314,7 +335,7 @@ Voici un exemple :\par\nobreak
@ $f(x)=2x$ & 2*[0,-1] & 2*[0,-1] & 2*[0,-1] \\\hline
\end{spreadtab}
\end{center}
-Le caractère \og\falseverb @\fg{} est le développement de la séquence de contrôle \verbinline=\STtextcell=. On peut donc redéfinir cette séquence de contrôle en ce que l'on veut et par exemple, \verbinline-\renewcommand\STtextcell{\celltext}- fera qu'une cellule contenant \verb=\celltext= sera comprise comme étant une cellule de texte.
+Le caractère \og\falseverb @\fg{} est le développement de la séquence de contrôle \verbinline=\STtextcell=. On peut donc redéfinir cette séquence de contrôle en ce que l'on veut et par exemple, \verbinline-\renewcommand\STtextcell{`}- fera qu'une cellule contenant le caractère ``\verb=`='' sera comprise comme étant une cellule de texte.
De plus, si une cellule est vide ou entièrement constituée d'espaces, alors \ST la considérera comme une cellule de texte.
@@ -867,7 +888,7 @@ Les macro-fonctions \verbinline-randint- et \verbinline-rand- renvoient un nombr
\begin{lstlisting}[backgroundcolor=\color{ST@codebckgcolor}]
\makeatletter
\renewcommand\ST@seed{}% redefinit la macro interne
-\makeatletter
+\makeatother
\FPseed=27% donne une graine (n'importe quel entier) a fp
\end{lstlisting}
La macro fonction \verbinline-randint- renvoie une nombre \emph{entier} qui dépend des paramètres. La syntaxe est la suivante : \verbinline=randint([<nombre1>,]<nombre2>)=, où \verb=<nombre1>= est un entier optionnel qui vaut 0 par défaut. L'entier aléatoire renvoyé est compris dans l'intervalle \verb=[<nombre1>;<nombre2>]=.
@@ -1050,7 +1071,7 @@ frlongdatetonum(\today) & frlongdatetonum(25 décembre 2009)\\
\end{center}
\subsubsection{Passer d'un nombre à une date}
-Plusieurs macro-fonctions permettent de traduire un nombre en une donnée de date. Toutes ces macro-fonctions ont en commun que leur résultat est du \emph{texte}. Par conséquent, \emph{la cellule les contenant deviendra une cellule textuelle} dont le texte sera le résultat de cette fonction : si un texte cohabitait avec la formule dans cette cellule, il sera écrasé par le résultat. Il en résulte que la cellule ne peut plus faire l'objet d'aucun traitement mathématique ensuite.
+Plusieurs macro-fonctions permettent de traduire un nombre en une donnée de date. Toutes ces macro-fonctions ont en commun que leur résultat est du \emph{texte}. Par conséquent, \emph{la cellule les contenant deviendra une cellule textuelle} dont le texte sera le résultat de cette fonction. Si un texte cohabitait avec la formule dans cette cellule, le résultat de la formule sera inséré à la place de \verb-:={<formule>}-. Il en résulte que la cellule ne peut plus faire l'objet d'aucun traitement mathématique ensuite.
Voici ces fonctions :
\begin{itemize}
@@ -1087,6 +1108,84 @@ Voici un exemple où l'on se place 1000 jours avant puis 1000 jours après le 1
\end{spreadtab}
\end{center}
+\subsection{Macro fonctions de coordonnées}\label{tag}
+Plutôt que de faire référence à une cellule par ses coordonnées qui sont difficiles à mémoriser et qui changent si on insère une ligne ou une colonne, il est parfois bien plus pratique de donner un nom à une cellule et d'y faire référence plus loin par ce nom.
+
+La macro fonction ``\verbinline-tag(<nom>)-'' a pour effet de nommer la cellule dans laquelle elle se trouve. Il ne s'agit pas vraiment d'une macro fonction comme les autres puisque ce qu'elle retourne rien lorsqu'elle est mise dans une formule : elle disparait sans provoquer aucun effet sur le résultat mathématique. On peut donc écrire ``\verbinline-tag(<nom>)-'' \emph{n'importe où} dans le champ numérique d'une cellule. Le \verb-<nom>- peut être n'importe quelle suite de caractères alphanumériques, mais il est déconseillé de mettre une lettre et un nombre, qui pourraient être compris comme une référence à une cellule, et serait donc modifié lors d'une opération de copie avec \verbinline-\STcopy-. Cette macro fonction a une action supplémentaire, elle sauvegarde via un \verbinline-\def- la valeur numérique de la cellule dans laquelle elle se trouve de façon à pouvoir y faire appel plus tard \emph{en dehors du tableau} via la commande purement développable \verbinline-\STtag{<nom>}-.
+
+Par la suite dans le tableau, au lieu de mettre les coordonnées de la cellule \verb-<nom>-, on peut écrire ``\verbinline-cell(<nom>)-'' qui est une macro fonction qui renvoit les coordonnées de la cellule précédemment nommée. Par exemple si ``\verbinline-tag(<nom>)-'' a été écrit dans la cellule ``\verb-B3-'' si on a écrit plus loin ``cell(<nom>)'', cette macro fonction renvoit \verb-B3-.
+
+Voici un exemple où l'on fait la somme de cellules et l'on donne le nom ``\verb-foo-'' au premier nombre et le nom ``\verb-bar-'' au dernier. On peut observer que \verbinline-tag(foo)- se trouve entre ``1'' et ``9'' et qu'au final, puisque cette macro fonction disparait, le champ numérique de la cellule contiendra ``19'' :
+\begin{lstlisting}
+\begin{spreadtab}{{tabular}{r@{}r}}
+ & 15tag(foo) \\
+@+ & 37 \\
+@+ & 13 \\
+@+ & 48 \\
+@+ & 1tag(bar)9 \\\cline{2-2}
+ & sum(cell(foo):cell(bar))tag(baz)
+\end{spreadtab}
+
+foo=\STtag{foo}, bar=\STtag{bar}, baz=\STtag{baz}
+\end{lstlisting}
+\begin{center}
+\begin{spreadtab}{{tabular}{r@{}r}}
+ & 15tag(foo) \\
+@+ & 37 \\
+@+ & 13 \\
+@+ & 48 \\
+@+ & 1tag(bar)9 \\\cline{2-2}
+ & sum(cell(foo):cell(bar))tag(baz)
+\end{spreadtab}
+
+foo=\STtag{foo}, bar=\STtag{bar}, baz=\STtag{baz}
+\end{center}
+Lorsque l'environnement \ST se trouve inclus dans un autre environnement, les affectations faites par la macro fonction \verb-tag- restent \emph{locales} à cet environnement et ne pourraient pas être accessibles en dehors de cet environnement via \verbinline-\STtag-. Dans l'exemple ci-dessous, le tableau fait par \ST est dans un environnement \verb-center- et l'on doit donc utiliser \verbinline-\STmakegtag{<nom>}- pour rendre global la sauvegarde de la valeur numérique contenus dans la cellule marquée par ``tag{<nom>}'' :
+
+\begin{minipage}{.6\linewidth}
+\begin{lstlisting}
+\begin{center}
+ \begin{spreadtab}{{tabular}{cccc}}\hline
+ 6&9&17&21\\\hline
+ \multicolumn{4}{c}{moyenne = :={sum(a1:d1)/4tag(moy)}}
+ \end{spreadtab}
+ \STmakegtag{moy}
+\end{center}
+La moyenne est de \STtag{moy}.
+\end{lstlisting}
+\end{minipage}\kern6pt
+\begin{minipage}{.3\linewidth}
+\begin{center}
+ \begin{spreadtab}{{tabular}{cccc}}\hline
+ 6&9&17&21\\\hline
+ \multicolumn{4}{c}{moyenne = :={sum(a1:d1)/4tag(moy)}}
+ \end{spreadtab}
+ \STmakegtag{moy}
+\end{center}
+La moyenne est de \STtag{moy}.
+\end{minipage}
+
+L'argument de \verbinline-\STmakegtag- peut êre constitué de plusieurs noms séparés par des virgules.
+
+Bien qu'elles soient à première vue moins utiles, \ST fournit également les macros fonctions ``\verbinline-row(<nom>)-'' et ``\verbinline-col(<nom>)-'' qui renvoient le numéro de la ligne ou de la colonne où se trouvait \verbinline-tag(<nom>)-. Voici par exemple une façon de dénombrer des valeurs pour en calculer la moyenne : on nomme ``un'' la première valeur et ``der'' la dernière, et le nombre de valeurs est donc row(der)-row(un)+1 :
+
+\begin{minipage}{0.6\linewidth}
+\begin{lstlisting}
+moyenne = \begin{spreadtab}{{tabular}[b]{r}}
+7tag(un)\\9\\15\\6\\20\\13\\11\\55tag(der)\\
+\hline
+sum(cell(un):cell(der))/(row(der)-row(un)+1)
+\end{spreadtab}
+\end{lstlisting}
+\end{minipage}\hfill
+\begin{minipage}{0.35\linewidth}
+moyenne = \begin{spreadtab}{{tabular}[b]{r}}
+7tag(un)\\9\\15\\6\\20\\13\\11\\55tag(der)\\
+\hline
+sum(cell(un):cell(der))/(row(der)-row(un)+1)
+\end{spreadtab}
+\end{minipage}
+
\section{Précautions particulières}
\subsection{Redéfinition des commandes de filets horizontaux}
On peut être tenté de définir une commande pour produire ---~par exemple~--- une double ligne horizontale :\par\nobreak
@@ -1151,14 +1250,14 @@ Prenons un exemple, et mettons que dans le tableau suivant, on fusionne les cell
\end{center}
Il y a 4 cellules \emph{visibles} fusionnées, on écrira donc \verbinline-\multicolumn{4}- car on ne tient \emph{jamais} compte des colonnes masquées dans le décompte du nombre de cellules à fusionner.
-Maintenant, on compte 4 lettres à partir de la lettre \falseverb{b} en l'incluant dans le décompte. On arrive à la lettre \falseverb{e} : cela détermine un intervalle de colonnes \og\falseverb{b-e}\fg. Dans cet intervalle, 2 colonnes masquées sont incluses (\falseverb c et \falseverb d) et 1 colonne masquée n'est pas comprise (\falseverb f). Ces 2 nombres sont importants pour comprendre la suite, aussi, notons-les $a$ et $b$ dans le cas général.
+Maintenant, on compte 4 lettres à partir de la lettre \falseverb{b} en l'incluant dans le décompte. On arrive à la lettre \falseverb{e} : cela détermine un intervalle de colonnes \og\falseverb{b-e}\fg. Dans cet intervalle, 2 colonnes masquées sont incluses (\falseverb c et \falseverb d) et 1 colonne masquée n'est pas comprise (\falseverb f). Ces 2 nombres sont importants pour comprendre la suite, aussi, notons-les $x$ et $y$ dans le cas général.
La règle est la suivante :
\begin{itemize}
- \item il faut rajouter $b$ signes \og\verb-&-\fg{} après le \verbinline-\multicolumn- (pour l'exemple, il en faudrait 1).
- \item les références des colonnes des cellules qui suivent le \verbinline-\multicolumn- seront décalées de $a$ lettres vers le début de l'alphabet. Pour l'exemple donnée, si on veut faire référence à la cellule marquée \og \falseverb{i2}\fg{}, il faudra écrire \falseverb{g2} (au lieu de \falseverb{i2}).
+ \item il faut rajouter $y$ signes \og\verb-&-\fg{} après le \verbinline-\multicolumn- (pour l'exemple, il en faudrait 1).
+ \item les références des colonnes des cellules qui suivent le \verbinline-\multicolumn- seront décalées de $x$ lettres vers le début de l'alphabet. Pour l'exemple donnée, si on veut faire référence à la cellule marquée \og \falseverb{i2}\fg{}, il faudra écrire \falseverb{g2} (au lieu de \falseverb{i2}).
\end{itemize}
-Voici un vrai exemple dont la structure est similaire au précédent : $a=2$ et $b=1$. Dans le code, remarquer le \og\textcolor{red}{\texttt{\&}}\fg{} qui a été ajouté puisque $b=1$. Par ailleurs, on reste simple avec les formules, on ajoute 1 au nombre du dessus :\par\nobreak
+Voici un vrai exemple dont la structure est similaire au précédent : $x=2$ et $y=1$. Dans le code, remarquer le \og\textcolor{red}{\texttt{\&}}\fg{} qui a été ajouté puisque $y=1$. Par ailleurs, on reste simple avec les formules, on ajoute 1 au nombre du dessus :\par\nobreak
\begin{lstlisting}[escapechar=Z]
\begin{spreadtab}{{tabular}{|*{7}{c|}}}
\hline
@@ -1175,7 +1274,7 @@ a1+1& \multicolumn4{l|}{:={b1+1}}& & i1+1 & j1+1\\\hl
a2+1& b2+1 & & & & & & & g2+1 & h2+1\\\hline
\end{spreadtab}
\end{center}
-Voici encore un exemple similaire où une seule colonne est masquée (la colonne \falseverb d), et où $a=1$ et $b=0$ :\par\nobreak
+Voici encore un exemple similaire où une seule colonne est masquée (la colonne \falseverb d), et où $x=1$ et $y=0$ :\par\nobreak
\begin{lstlisting}
\begin{spreadtab}{{tabular}{|*{9}{c|}}}
\hline
@@ -1453,7 +1552,6 @@ Ce tableau est généré par l'environnement \verb=tabularx= de façon à occupe
\cline{4-6}
\end{spreadtab}
\end{center}
-\bigskip
\subsection{Carré magique}
\begin{lstlisting}