From 1c004b8b1b82512ea320e5d1e16e364d54878e6a Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 1 Apr 2023 03:01:11 +0000 Subject: CTAN sync 202304010301 --- .../latex/contrib/nicematrix/nicematrix-french.tex | 317 ++++++++++++++------- 1 file changed, 210 insertions(+), 107 deletions(-) (limited to 'macros/latex/contrib/nicematrix/nicematrix-french.tex') diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex index e9700dd86c..4ec05bce2c 100644 --- a/macros/latex/contrib/nicematrix/nicematrix-french.tex +++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex @@ -40,6 +40,7 @@ \usepackage{booktabs} \usepackage{varwidth} \usepackage{tcolorbox} +\usepackage{adjustbox} \usepackage[auto-lang=false]{lipsum} \usepackage[hyperfootnotes = false]{hyperref} @@ -556,11 +557,11 @@ expliqué plus loin. \medskip Dans l'exemple suivant, on a dû élargir à la main les colonnes 2 et 3 (avec la -construction |wc{...}| de \pkg{array}). +construction |w{c}{...}| de \pkg{array}). \medskip \begin{BVerbatim} -\begin{NiceTabular}{cwc{2cm}wc{3cm}c} +\begin{NiceTabular}{cw{c}{2cm}w{c}{3cm}c} rose & tulipe & marguerite & dahlia \\ violette & ~emphase#\Block[draw=red,fill=[RGB]{204,204,255},rounded-corners]{2-2}@ @@ -574,7 +575,7 @@ arum & iris & jacinthe & muguet \medskip \begin{center} -\begin{NiceTabular}{cwc{2cm}wc{3cm}c} +\begin{NiceTabular}{cw{c}{2cm}w{c}{3cm}c} rose & tulipe & marguerite & dahlia \\ violette & \Block[draw=red,fill=[RGB]{204,204,255},rounded-corners]{2-2} {\LARGE De très jolies fleurs} & & souci \\ @@ -591,9 +592,9 @@ Les blocs mono-colonne ont un comportement spécial. \item La largeur naturelle du contenu de ces blocs est prise en compte pour la largeur de la colonne courante. -Dans les colonnes à largeur fixée (colonnes |w{...}{...}|, |p{...}|, |b{...}|, -|m{...}| et |X|), le contenu du bloc est mis en forme comme un paragraphe de -cette largeur. +Dans les colonnes à largeur fixée (|p{...}|, |b{...}|, |m{...}|, |w{...}{...}|, +|W{...}{...}|, |V| et |X|), le contenu du bloc est mis en forme comme un +paragraphe de cette largeur. \item La spécification d'alignement horizontal donnée par le type de colonne (|c|, |r| ou |l|) est prise en compte pour le bloc (mais le bloc peut @@ -2189,7 +2190,7 @@ de même nom (cf. p.~\pageref{cell-space}). couleur du texte.\footnote{La clé |color| utilise la commande |\color| mais insère aussi une instruction |\leavevmode| devant. Cela évite un espace vertical parasite dans les cellules qui correspondent à des colonnes de type - |p|, |b|, |m| et |X| (qui débutent en mode vertical).} + |p|, |b|, |m|, |X| et |V| (qui débutent en mode vertical).} \item La clé |bold| impose des caractères gras aux éléments de la rangée, qu'ils soient en mode texte ou bien en mode mathématique. @@ -2355,6 +2356,63 @@ $\begin{array}{c} \end{array}$ \end{NiceMatrixBlock} + +\subsection{Les colonnes X} + + +\label{colonne-X} + +L'environnement |{NiceTabular}| propose aussi des colonnes |X| similaires à +celles proposées par l'environnement |{tabularx}| de l'extension éponyme. + +La valeur requise par la largeur du tableau peut être passée en argument de la +clé |width| (dans |{NiceTabular}| ou dans |\NiceMatrixOptions|). La valeur +initiale de ce paramètre est |\linewidth| (et non |\textwidth|). + +Pour se rapprocher davantage de l'environnement |{tabularx}|, \pkg{nicematrix} +propose aussi un environnement |{NiceTabularX}| avec une syntaxe similaire à +celle de |{tabularx}|, c'est-à-dire que la largeur voulue pour le tableau est +spécifiée en premier argument (obligatoire).\footnote{Si \pkg{tabularx} est + chargé, on doit obligatoirement utiliser |{NiceTabularX}| pour utiliser les + colonnes |X| (cela est dû à un problème de conflit de définition des + spécificateurs de colonne |X|).} + + +Comme avec les extensions \pkg{tabu}\footnote{L'extension \pkg{tabu} est + maintenant considérée comme obsolète.} et \pkg{tabularray}, le spécificateur |X| +accepte entre crochets un argument optionnel qui est une liste de clés. +\begin{itemize} +\item On peut spécifier un poids pour la colonne en mettant directement un +entier positif comme argument du spécificateur |X|. Par exemple, une colonne +|X[2]| aura une largeur double de celle d'une colonne |X| (qui a un poids de +1).\footnote{Les valeurs négatives pour les poids, comme proposées par + \pkg{tabu} (maintenant obsolète), ne sont \emph{pas} prises en charge par + \pkg{nicematrix}. Si une telle valeur est utilisée, une erreur sera levée.} +\item On peut spécifier l'alignement horizontal avec une des lettres |l|, |c| et +|r| (qui insèrent respectivement |\raggedright|, |\centering| et |\raggedleft| +suivi de |\arraybackslash|). +\item On peut spécifier l'alignement vertical avec l'une des lettres |t| (alias +|p|), |m| et |b| (qui construisent respectivement des colonnes de types |p|, |m| +et |b|). La valeur par défaut est |t|. +\end{itemize} + +\begin{Verbatim} +\begin{NiceTabular}~emphase#[width=9cm]{X[2,l]X[l]}@[hvlines] +Un texte relativement long qui tient sur plusieurs lignes. & +Un texte relativement long qui tient sur plusieurs lignes. \\ +Un texte plus court. & Un texte plus court. +\end{NiceTabular} +\end{Verbatim} + + +\begin{center} +\begin{NiceTabular}[width=9cm]{X[2,l]X[l]}[hvlines] +Un texte relativement long qui tient sur plusieurs lignes. & +Un texte relativement long qui tient sur plusieurs lignes. \\ +Un texte plus court. & Un texte plus court. +\end{NiceTabular} +\end{center} + \subsection{Les colonnes V de varwidth} \label{varwidth} @@ -2437,66 +2495,17 @@ colonnes de type |p|, |m| ou |b| est que, pour les cases d'une telle colonne, le nœud PGF-TikZ créé pour le contenu d'une telle case a une largeur ajustée au contenu de la cellule en question : cf. p.~\pageref{node-V}. + +\medskip +Les colonnes |V| de \pkg{nicematrix} acceptent les clés |t|, |p|, |m|, |b|, |l|, +|c| et |r| proposées par les colonnes~|X|: voir leur description à la section~\ref{colonne-X}, +p.~\pageref{colonne-X}. + \medskip Remarquons que l'extension \pkg{varwidth} a quelques problèmes (au moins dans sa version 0.92). Par exemple, avec LuaLaTeX, elle ne fonctionne pas si le contenu commence par une instruction |\color|. -\subsection{Les colonnes X} - - -\label{colonne-X} - -L'environnement |{NiceTabular}| propose aussi des colonnes |X| similaires à -celles proposées par l'environnement |{tabularx}| de l'extension éponyme. - -La valeur requise par la largeur du tableau peut être passée en argument de la -clé |width| (dans |{NiceTabular}| ou dans |\NiceMatrixOptions|). La valeur -initiale de ce paramètre est |\linewidth| (et non |\textwidth|). - -Pour se rapprocher davantage de l'environnement |{tabularx}|, \pkg{nicematrix} -propose aussi un environnement |{NiceTabularX}| avec une syntaxe similaire à -celle de |{tabularx}|, c'est-à-dire que la largeur voulue pour le tableau est -spécifiée en premier argument (obligatoire).\footnote{Si \pkg{tabularx} est - chargé, on doit obligatoirement utiliser |{NiceTabularX}| pour utiliser les - colonnes |X| (cela est dû à un problème de conflit de définition des - spécificateurs de colonne |X|).} - - -Comme avec les extensions \pkg{tabu}\footnote{L'extension \pkg{tabu} est - maintenant considérée comme obsolète.} et \pkg{tabularray}, le spécificateur |X| -accepte entre crochets un argument optionnel qui est une liste de clés. -\begin{itemize} -\item On peut spécifier un poids pour la colonne en mettant directement un -entier positif comme argument du spécificateur |X|. Par exemple, une colonne -|X[2]| aura une largeur double de celle d'une colonne |X| (qui a un poids de -1).\footnote{Les valeurs négatives pour les poids, comme proposées par - \pkg{tabu} (maintenant obsolète), ne sont \emph{pas} prises en charge par - \pkg{nicematrix}. Si une telle valeur est utilisée, une erreur sera levée.} -\item On peut spécifier l'alignement horizontal avec une des lettres |l|, |c| et -|r| (qui insèrent respectivement |\raggedright|, |\centering| et |\raggedleft| -suivi de |\arraybackslash|). -\item On peut spécifier l'alignement vertical avec l'une des lettres |t| (alias -|p|), |m| et |b| (qui construisent respectivement des colonnes de types |p|, |m| -et |b|). La valeur par défaut est |t|. -\end{itemize} - -\begin{Verbatim} -\begin{NiceTabular}~emphase#[width=9cm]{X[2,l]X[l]}@[hvlines] -Un texte relativement long qui tient sur plusieurs lignes. & -Un texte relativement long qui tient sur plusieurs lignes. \\ -Un texte plus court. & Un texte plus court. -\end{NiceTabular} -\end{Verbatim} - - -\begin{center} -\begin{NiceTabular}[width=9cm]{X[2,l]X[l]}[hvlines] -Un texte relativement long qui tient sur plusieurs lignes. & -Un texte relativement long qui tient sur plusieurs lignes. \\ -Un texte plus court. & Un texte plus court. -\end{NiceTabular} -\end{center} \medskip \section{Les rangées et colonnes extérieures} @@ -3346,7 +3355,7 @@ autres lignes diagonales (par défaut, les lignes tracées par |\Ddots| sont \subsection{La commande \textbackslash SubMatrix dans le \textbackslash - CodeAfter (et aussi le \textbackslash CodeBefore)} + CodeAfter (et le \textbackslash CodeBefore)} \label{sub-matrix} @@ -3456,25 +3465,25 @@ $\begin{bNiceMatrix}[right-margin=1em] Les clés disponibles pour la commande |\SubMatrix| sont les suivantes : % \begin{itemize} -\item |left-xshift| et |right-xshift| déplacent horizontalement les délimiteurs -(il existe aussi la clé |xshift| qui permet de régler simultanément ces deux -clés) ; -\item |extra-height| ajoute une quantité à la hauteur totale des délimiteurs -(hauteur~|\ht| + profondeur |\dp|) ; -\item |delimiters/color| permet de fixer la couleur des délimiteurs (cette clé +\item \Definition{left-xshift} et \Definition{right-xshift} déplacent +horizontalement les délimiteurs (il existe aussi la clé \Definition{xshift} qui +permet de régler simultanément ces deux clés) ; +\item \Definition{extra-height} ajoute une quantité à la hauteur totale des +délimiteurs (hauteur~|\ht| + profondeur |\dp|) ; +\item \Definition{delimiters/color} permet de fixer la couleur des délimiteurs (cette clé est également disponible dans |\NiceMatrixOptions| et au niveau des environnements à délimiteurs ou comme option de |\CodeAfter|) ; -\item |slim| qui est une clé booléenne : lorsqu'elle est utilisée la position +\item \Definition{slim} qui est une clé booléenne : lorsqu'elle est utilisée la position horizontale des délimiteurs est calculée uniquement sur le contenu des cases de la sous-matrice alors, que, dans le cas général, elle est calculée sur le contenu des cases des colonnes mises en jeu (voir exemple ci-dessous) ; -\item |vlines| contient une liste de numéros de filets verticaux à tracer dans +\item \Definition{vlines} contient une liste de numéros de filets verticaux à tracer dans la sous-matrice (si cette clé est utilisée sans valeur, tous les filets verticaux sont tracés) ; -\item |hlines| est similaire à |vlines| mais pour les filets horizontaux ; -\item |hvlines|, qui s'utilise sans valeur, trace tous les filets dans la +\item \Definition{hlines} est similaire à |vlines| mais pour les filets horizontaux ; +\item \Definition{hvlines}, qui s'utilise sans valeur, trace tous les filets dans la sous-matrice ; -\item |code| permet d'insérer du code, en particulier du code TikZ, après la +\item \Definition{code} permet d'insérer du code, en particulier du code TikZ, après la construction de la matrice. Cette clé est décrite en détail plus loin. \end{itemize} On remarquera que tous les filets sont dessinés après la construction du tableau @@ -3598,7 +3607,8 @@ Part A & the first part \\ surtout pour vocation d'être utilisée pour insérer des instructions TikZ, sachant que, dans les instructions TikZ insérées dans cette clé, les nœuds de la forme |i-j| et \verb+i-|j+ sont interprétés avec |i| et |j| étant des numéros de -ligne et colonne \emph{relatifs à la sous-matrice}. +ligne et colonne \emph{relatifs à la sous-matrice}.\footnote{Attention : la + syntaxe \texttt{j\string|-i} n'est autorisée.} \medskip \begin{scope} @@ -4169,7 +4179,7 @@ charge par \pkg{nicematrix}. Les environnements sans préambule (|{NiceMatrix}|, |{pNiceMatrix}|, etc.) ainsi que la commande |\pAutoNiceMatrix| et ses variantes, acceptent la clé -|columns-type| qui indique le type des colonne qui sera utilisé. +|columns-type| qui indique le type de colonne qui sera utilisé. \medskip Les clés |l| et |r| sont des raccourcis pour |columns-type=l| et |columns-type=r|. @@ -4205,7 +4215,7 @@ Dans l'exemple suivant, on l'utilise dans le |code-for-first-row|.\footnote{On \medskip \begin{BVerbatim}[baseline=c,boxwidth=12cm] -\NiceMatrixOptions% +\NiceMatrixOptions {code-for-first-row = \scriptstyle ~emphase#\rotate@ \text{image de }, code-for-last-col = \scriptstyle } $A = \begin{pNiceMatrix}[first-row,last-col=4] @@ -4216,7 +4226,7 @@ e_1 & e_2 & e_3 \\ \end{pNiceMatrix}$ \end{BVerbatim} \begin{varwidth}{10cm} -\NiceMatrixOptions% +\NiceMatrixOptions {code-for-first-row = \scriptstyle\rotate \text{image de }, code-for-last-col = \scriptstyle } $ A = \begin{pNiceMatrix}[first-row,last-col=4] @@ -4233,7 +4243,7 @@ matrice), les éléments qui subissent cette rotation sont alignés vers le haut \medskip \begin{BVerbatim}[baseline=c,boxwidth=12cm] -\NiceMatrixOptions% +\NiceMatrixOptions {code-for-last-row = \scriptstyle ~emphase#\rotate@ , code-for-last-col = \scriptstyle } $A = \begin{pNiceMatrix}[last-row,last-col=4] @@ -4244,7 +4254,7 @@ $A = \begin{pNiceMatrix}[last-row,last-col=4] \end{pNiceMatrix}$ \end{BVerbatim} \begin{varwidth}{10cm} -\NiceMatrixOptions% +\NiceMatrixOptions {code-for-last-row = \scriptstyle\rotate , code-for-last-col = \scriptstyle }% $A = \begin{pNiceMatrix}[last-row,last-col=4] @@ -4491,9 +4501,13 @@ Pour un exemple d'utilisation, voir \url{tex.stackexchange.com/questions/488566} \subsection{Les nœuds correspondant aux contenus des cases} -L'extension \pkg{nicematrix} crée un nœud PGF-TikZ pour chaque case non vide -du tableau considéré. Ces nœuds sont utilisés, entre autres, pour tracer les -lignes en pointillés entre les cases du tableau. +L'extension \pkg{nicematrix} crée un nœud PGF-TikZ\footnote{On rappelle que TikZ + est une sur-couche de PGF. L'extension \pkg{nicematrix} charge PGF et ne + charge pas TikZ. On parle de «nœud PGF-TikZ» pour rappeler que, en fait, les + nœuds créés par \pkg{nicematrix} avec PGF sont en fait aussi utilisables avec + TikZ. L'utilisateur final préférera sans doute les utiliser avec TikZ qu'avec + PGF.} pour chaque case non vide du tableau considéré. Ces nœuds sont utilisés, +entre autres, pour tracer les lignes en pointillés entre les cases du tableau. \smallskip \textbf{Attention} : Par défaut, aucun nœud n'est créé dans une case vide. @@ -4576,38 +4590,67 @@ $\begin{pNiceMatrix} \tikz \draw (2-2) circle (2mm) ; \end{pNiceMatrix}$ +\medskip +Les nœuds de la dernière colonne (hors éventuelle «colonne extérieure» spécifiée +par |last-col|\footnote{Pour les colonnes extérieures, cf. + partie~\ref{exterior}, p.~\pageref{exterior}.}) peuvent aussi être désignés +par $i$-|last|. De même, les nœuds de la dernière ligne peuvent être désignés +par |last|-$j$. \medskip -Dans l'exemple suivant, nous avons surligné tous les nœuds de la matrice (on -explique plus loin la technique utilisée : cf. p. \pageref{highlight}). +Dans l'exemple suivant, nous avons surligné tous les nœuds de la matrice. -\[\begin{pNiceMatrix} -\CodeBefore [create-cell-nodes] - \begin{tikzpicture}% - [every node/.style = { inner sep = 0 pt , fill = red!15 }] - \node [fit = (1-1)] {} ; - \node [fit = (1-3)] {} ; - \node [fit = (2-2)] {} ; - \node [fit = (3-1)] {} ; - \node [fit = (3-3)] {} ; - \node [fit = (1-2)] {} ; - \node [fit = (2-1)] {} ; - \node [fit = (2-3)] {} ; - \node [fit = (3-2)] {} ; - \end{tikzpicture} -\Body +\[ +\NiceMatrixOptions + { + pgf-node-code = + { + \pgfsetfillcolor{red!15}% + \pgfusepathqfill + } + } +\begin{pNiceMatrix} a & a + b & a + b + c \\ a & a & a + b \\ a & a & a \end{pNiceMatrix}\] +\bigskip +\colorbox{yellow!50}{\textbf{Nouveau 6.17}}\enskip Puisque ces nœuds sont des +nœuds PGF, on ne sera pas étonné d'appendre qu'ils sont tracés en utilisant un +style PGF spécifique. Ce style est nommé |nicematrix/cell-node| et sa définition +dans le fichier source |nicematrix.sty| est la suivante : -Les nœuds de la dernière colonne (hors éventuelle «colonne extérieure» spécifiée -par |last-col|) peuvent aussi être désignés par $i$-|last|. De même, les nœuds -de la dernière ligne peuvent être désignés par |last|-$j$. +\begin{Verbatim} +\pgfset + { + ~emphase#nicematrix / cell-node@ /.style = + { + inner sep = 0 pt , + minimum width = 0 pt + } + } +\end{Verbatim} + +L'utilisateur peut modifier ce style en changeant les valeurs des clés |text/rotate|, +|inner xsep|, |inner ysep|, |inner sep|, |outer xsep|, |outer ysep|, |outer sep|, +|minimum width|, |minimum height| et |minimum size|. \medskip +Pour un exemple d'utilisation, voir la partie \ref{triangular}, +p.~\pageref{triangular}. + +\subsubsection{La clé pgf-node-code} + +\colorbox{yellow!50}{\textbf{Nouveau 6.17}}\enskip \textbf{Pour les utilisateurs +expérimentés}, \pkg{nicematrix} fournit la clé |pgf-node-code| qui correspond à +du code PGF qui sera exécuté à la création, par PGF, des nœuds correspondants aux +cases du tableau. Plus précisément, la valeur fournie à la clé |pgf-node-code| +sera passée en cinquième argument de la commande |\pgfnode|. Cette valeur doit +contenir au moins une instruction comme |\pgfusepath|, |\pgfusepathqstroke|, +|\pgfusepathqfill|, etc. + \subsubsection{Les colonnes V de varwidth} \label{node-V} @@ -5154,7 +5197,7 @@ mante & raie & poule \section{Remarques techniques} Première remarque : l'extension \pkg{nicematrix} doit être chargée après -l'extension \pkg{underscore}. +l'extension \pkg{underscore}. Si elle est chargée après, une erreur sera levée. \subsection{Lignes diagonales} @@ -5265,7 +5308,7 @@ si) son contenu dans le codage TeX est vide (il n'y a que des espaces entre les deux esperluettes |&|). \medskip -\item Pour les colonnes de typte |c|, |l|, |r| ou |w{...}{...}|, la case est +\item Pour les colonnes de type |c|, |l|, |r| ou |w{...}{...}|, la case est vide si (et seulement si) son rendu TeX est de largeur nulle. \medskip @@ -5288,7 +5331,7 @@ L'environnement |{array}| insère un espace horizontal égal à |\arraycolsep| avant et après chaque colonne. En particulier, il y a un espace égal à |\arraycolsep| avant et après le tableau. Cette caractéristique de l'environnement |{array}| n'était probablement pas une bonne idée\footnote{Dans - la documentation de |{amsmath}|, on peut lire : {\itshape The extra space of + la documentation de l'\pkg{amsmath}, on peut lire : {\itshape The extra space of |\arraycolsep| that \pkg{array} adds on each side is a waste so we remove it [in |{matrix}|] (perhaps we should instead remove it from array in general, but that's a harder task).}}. L'environnement |{matrix}| et ses variantes @@ -5319,7 +5362,7 @@ L'extension \pkg{nicematrix} n'est pas compatible avec la classe \cls{ieeeaccess \medskip Pour pouvoir utiliser \pkg{nicematrix} avec la classe \cls{aastex631} (de -l'\emph{American Astronomical Society}, on doit ajouter dans le préambule du +l'\emph{American Astronomical Society}), on doit ajouter dans le préambule du fichier les lignes suivantes : \begin{Verbatim} @@ -6393,6 +6436,66 @@ de parenthèses ont été rajoutées avec |\SubMatrix| dans le |\CodeBefore|. \end{Verbatim} +\subsection{Un tableau triangulaire} + +\label{triangular} + +Dans l'exemple suivant, on utilise le style PGF/Tikz |nicematrix/cell-node| pour faire +tourner le contenu des cellules (rotation que l'on compense ensuite en faisant +tourner tout le tableau avec la commande |\adjustbox| de l'extension éponyme, +qui doit donc être chargée préalablement). + +\medskip +\begin{Verbatim} +\pgfset + { + ~emphase#nicematrix/cell-node@/.append style = + { text/rotate = 45, minimum size = 6 mm } + } + +\setlength{\tabcolsep}{0pt} + +~emphase#\adjustbox@{rotate = -45, set depth = 6mm + 1.414 \arrayrulewidth} + {\begin{NiceTabular} [ hvlines, corners=SE, baseline = line-9 ] { cccccccc } + \CodeBefore + \chessboardcolors{red!15}{blue!15} + \Body + 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ + 1 & 2 & 3 & 4 & 5 & 6 & 7 \\ + 1 & 3 & 6 & 10 & 15 & 21 \\ + 1 & 4 & 10 & 20 & 35 \\ + 1 & 5 & 15 & 35 \\ + 1 & 6 & 21 \\ + 1 & 7 \\ + 1 + \end{NiceTabular}} +\end{Verbatim} + + +\begin{center} +\pgfset + { + nicematrix/cell-node/.append style = + { text/rotate = 45, minimum size = 6 mm } + }% +\setlength{\tabcolsep}{0pt}% +\adjustbox{rotate = -45, set depth = 6mm + 1.414 \arrayrulewidth} + {\begin{NiceTabular} [ hvlines, corners=SE, baseline = line-9 ] { cccccccc } + \CodeBefore + \chessboardcolors{red!15}{blue!15} + \Body + 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ + 1 & 2 & 3 & 4 & 5 & 6 & 7 \\ + 1 & 3 & 6 & 10 & 15 & 21 \\ + 1 & 4 & 10 & 20 & 35 \\ + 1 & 5 & 15 & 35 \\ + 1 & 6 & 21 \\ + 1 & 7 \\ + 1 + \end{NiceTabular}} +\end{center} + + \section*{Autre documentation} -- cgit v1.2.3