From 586739881a834da18ee485728bdf9182e02025f8 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 23 Nov 2020 22:01:33 +0000 Subject: nicematrix (23nov20) git-svn-id: svn://tug.org/texlive/trunk@56990 c570f23f-e606-0410-a88d-b1316a301751 --- .../doc/latex/nicematrix/nicematrix-french.pdf | Bin 424627 -> 429184 bytes .../doc/latex/nicematrix/nicematrix-french.tex | 187 ++++++++++++--------- .../texmf-dist/doc/latex/nicematrix/nicematrix.pdf | Bin 1061552 -> 1078185 bytes 3 files changed, 103 insertions(+), 84 deletions(-) (limited to 'Master/texmf-dist/doc/latex/nicematrix') diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf index d2425b4bb20..6ce7fd41b2e 100644 Binary files a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf and b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf differ diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex index 52949c1d76a..d634e3ff1e3 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex @@ -419,7 +419,7 @@ avec deux arguments. \item Le premier argument est la taille de ce bloc avec la syntaxe $i$-$j$ où $i$ est le nombre de rangées et $j$ le nombre de colonnes du bloc. -\colorbox{yellow!50}{\bfseries Nouveau 5.6}\enskip Si cet argument est laissé +\colorbox{yellow!30}{Nouveau 5.6}\enskip Si cet argument est laissé blanc, la valeur par défaut est |1-1|. Si le nombre de rangées n'est pas indiqué, le bloc s'étend jusqu'à la dernière rangée (idem pour les colonnes). @@ -518,7 +518,8 @@ construction |wc{...}| de \pkg{array}). \begin{BVerbatim} \begin{NiceTabular}~emphase#{cwc{2cm}wc{3cm}c}@ rose & tulipe & marguerite & dahlia \\ -violette & \Block{2-2}{\LARGE\color{blue}De très jolies fleurs} & & souci \\ +violette +& \Block[draw=red,fill=red!15]{2-2}{\LARGE De très jolies fleurs} & & souci \\ pervenche & & & lys \\ arum & iris & jacinthe & muguet \end{NiceTabular} @@ -529,12 +530,18 @@ arum & iris & jacinthe & muguet \begin{center} \begin{NiceTabular}{cwc{2cm}wc{3cm}c} rose & tulipe & marguerite & dahlia \\ -violette & \Block{2-2}{\LARGE\color{blue}De très jolies fleurs} & & souci \\ +violette & \Block[draw=red,fill=red!15]{2-2}{\LARGE De très jolies fleurs} & & souci \\ pervenche & & & lys \\ arum & iris & jacinthe & muguet \end{NiceTabular} \end{center} +\medskip +\colorbox{yellow!50}{\bfseries Nouveau 5.7}\enskip Comme on le voit sur cet +exemple, on peut fixer la couleur de fond avec la clé |fill| et la couleur du +cadre avec la clé |draw|\footnote{Si la clé |draw| est utilisée sans valeur, +c'est la couleur par défaut des filets de tableaux qui est utilisée.}. On peut +aussi fixer l'épaisseur du trait avec la clé |line-width|. @@ -590,7 +597,7 @@ Henri & 14 \\ \hline \subsection{Les blocs mono-rangée} -\colorbox{yellow!50}{\textbf{Nouveau 5.6}}\enskip Pour les blocs mono-rangée, la +\colorbox{yellow!30}{Nouveau 5.6}\enskip Pour les blocs mono-rangée, la hauteur (\emph{height}) et la profondeur (\emph{depth}) naturelles sont prises en compte pour la hauteur et la largeur de la rangée en cours (comme le fait la commande standard |\multicolumn| de LaTeX). @@ -598,20 +605,26 @@ commande standard |\multicolumn| de LaTeX). -\subsection{Les blocs mono-cellule} +\subsection{Les blocs mono-case} -Les blocs mono-cellule héritent des caractéristiques des blocs mono-colonne et +Les blocs mono-case héritent des caractéristiques des blocs mono-colonne et des blocs mono-rangée. \medskip -Il y a deux raisons à l'utilisation d'un bloc mono-cellule. +On pourrait penser que des blocs d'une seule case n'ont aucune utilité mais, en +fait, il y a plusieurs situations où leur utilisation peut présenter des avantages. \begin{itemize} -\item Un bloc mono-cellule permet d'utiliser la commande |\\| pour composer le +\item Un bloc mono-case permet d'utiliser la commande |\\| pour composer le bloc sur plusieurs lignes. \item On peut utiliser l'option d'alignement horizontal du bloc pour déroger à la consigne générale donnée dans le préambule pour cette colonne. + +\item On peut tracer un cadre autour du bloc avec la clé |draw| de la commande +|\Block|.\footnote{Pour colorier le fond d'une case, il n'est pas besoin + d'utiliser un bloc mono-case : on peut utiliser la commande |\cellcolor| si la + clé |colortbl-like| est utilisée : voir p.~\pageref{colortbl-like}.} \end{itemize} \medskip @@ -638,8 +651,8 @@ Balzac & 1799 \\ \end{NiceTabular} \medskip -On rappelle que si le premier argument obligatoire de |\Block| est laisssé -blanc, alors le bloc est mono-cellule\footnote{On peut considérer que la valeur par +On rappelle que si le premier argument obligatoire de |\Block| est laissé +blanc, alors le bloc est mono-case\footnote{On peut considérer que la valeur par défaut de ce premier argument obligatoire est |1-1|.}. @@ -908,13 +921,14 @@ $\begin{pNiceMatrix}[vlines,rules/width=0.2pt] La clé |hvlines| demande le tracé de tous les filets horizontaux et verticaux (sauf dans les blocs et dans les blocs virtuels déterminés par des -lignes en pointillés). +lignes en pointillés et sauf les filets correspondants à des clés |draw| de +commandes |\Block|, filets qui sont tracés avec leurs caractéristiques). \medskip \begin{Verbatim} \begin{NiceTabular}{cccc}[~emphase#hvlines@,rules/color=blue,rules/width=1pt] rose & tulipe & marguerite & dahlia \\ -violette & \Block{2-2}{\LARGE\color{blue} fleurs} & & souci \\ +violette & \Block[~emphase#draw=red@]{2-2}{\LARGE fleurs} & & souci \\ pervenche & & & lys \\ arum & iris & jacinthe & muguet \end{NiceTabular} @@ -923,7 +937,7 @@ arum & iris & jacinthe & muguet \begin{center} \begin{NiceTabular}{cccc}[hvlines,rules/color=blue,rules/width=1pt] rose & tulipe & marguerite & dahlia \\ -violette & \Block{2-2}{\LARGE\color{blue} fleurs} & & souci \\ +violette & \Block[draw=red]{2-2}{\LARGE fleurs} & & souci \\ pervenche & & & lys \\ arum & iris & jacinthe & muguet \end{NiceTabular} @@ -1119,10 +1133,10 @@ tracés postérieurement (conformément à l'esprit du «modèle du peintre» de PostScript et PDF). De ce point de vue, MuPDF (qui est utilisé par exemple par SumatraPDF) donne de meilleurs résultats que Adobe Reader. -\item Une fine ligne blanche semble apparaître entre deux cellules de même -couleur. Ce phénomène se produit quand chaque cellule est coloriée avec sa +\item Une fine ligne blanche semble apparaître entre deux cases de même +couleur. Ce phénomène se produit quand chaque case est coloriée avec sa propre instruction |fill| (opérateur |fill| de PostScript noté |f| en PDF). -C'est le cas avec \pkg{colortbl} avec lequel chaque cellule est coloriée +C'est le cas avec \pkg{colortbl} avec lequel chaque case est coloriée individuellement même si on utilise |\columncolor| ou |\rowcolor|. Concernant ce phénomène, Adobe Reader donne de meilleurs résultats que @@ -1409,6 +1423,8 @@ On a utilisé le type de colonne |S| de \pkg{siunitx}. \subsection{Outils de coloriage avec la syntaxe de colortbl} +\label{colortbl-like} + On peut accéder aux outils de coloriage précédents avec une syntaxe proche de celle proposée par \pkg{colortbl}. On doit pour cela utiliser la clé |colortbl-like| dans l'environnement concerné.\footnote{Pour le moment, cette @@ -2334,8 +2350,8 @@ Pour améliorer la lisibilité du code, une syntaxe alternative est proposée : peut spécifier les instructions du |code-after| à la fin de l'environnement, après le mot-clé |\CodeAfter|\footnote{Dans certaines circonstances, on doit mettre |\omit \CodeAfter|, |\omit| étant un mot-clé de TeX qui annule le motif - de la cellule courante.} (pour un exemple, voir page -\pageref{exemple-CodeAfter}). \colorbox{yellow!50}{\textbf{Nouveau 5.5}}\enskip + de la case courante.} (pour un exemple, voir page +\pageref{exemple-CodeAfter}). \colorbox{yellow!30}{Nouveau 5.5}\enskip Avant la version 5.5, il fallait parfois mettre le mot-clé |\omit| devant |\CodeAfter| dans certaines circonstances. Depuis la version 5.5, on ne doit \emph{jamais} mettre |\omit|. @@ -2457,7 +2473,7 @@ titre inséré par |\caption| dans un environnement |{table}| de LaTeX. séparés par une virgule (comme avec l'option |multiple| de \pkg{footmisc} pour les notes de pied de page). -\item Si une commande |\tabularnote{...}| se trouve exactement à la fin d'une cellule +\item Si une commande |\tabularnote{...}| se trouve exactement à la fin d'une case (sans aucun espace après), l'appel de note est composé en débordement vers la droite (cela peut permettre de mieux conserver l'alignement des contenus d'une colonne). @@ -2946,6 +2962,25 @@ d'éléments en verbatim (avec par exemple la commande environnement de LaTeX qui se contente d'insérer des commandes avant et après.} +\subsection{Couleur des délimiteurs} + +Pour les environnements avec délimiteurs (|{pNiceArray}|, |{pNiceMatrix}|, +etc.), il est possible de changer la couleur des délimiteurs avec la clé +|delimiters-color|. + +\medskip +\begin{BVerbatim}[boxwidth=12cm,baseline=c] +$\begin{bNiceMatrix}[delimiters-color=red] +1 & 2 \\ +3 & 4 +\end{bNiceMatrix}$ +\end{BVerbatim} +$\begin{bNiceMatrix}[delimiters-color=red] +1 & 2 \\ +3 & 4 +\end{bNiceMatrix}$ + + \subsection{L'environnement \{NiceArrayWithDelims\}} En fait, l'environnement |{pNiceArray}| et ses variantes sont fondés sur un @@ -2989,7 +3024,7 @@ lignes en pointillés entre les cases du tableau. \textbf{Attention} : Par défaut, aucun nœud n'est créé dans une case vide. \smallskip -\colorbox{yellow!50}{\textbf{Nouveau 5.6}}\enskip +\colorbox{yellow!30}{Nouveau 5.6}\enskip Néanmoins, on peut forcer la création d'un nœud avec la commande |\NotEmpty|.\footnote{Il faut toutefois remarquer qu'avec cette commande, la case est considérée comme non vide, ce qui a des conséquences sur le tracé des @@ -3396,9 +3431,9 @@ L'extension \pkg{nicematrix} fournit deux variables internes mais publiques\foot \medskip Ces variables constituent le code du «|code-before|» et du «|code-after|». Le -développeur peut donc les utiliser pour y ajouter du code à partir d'une cellule +développeur peut donc les utiliser pour y ajouter du code à partir d'une case du tableau (l'affectation devra être globale, ce qui permettra de sortir de la -cellule, qui est un groupe au sens de TeX). +case, qui est un groupe au sens de TeX). \medskip On remarquera que l'utilisation de |\g_nicematrix_code_before_tl| nécessite une @@ -3407,7 +3442,7 @@ compilation supplémentaire (car les instructions sont écrites dans le fichier \bigskip \emph{Example} : On souhaite écrire une commande |\hatchcell| pour hachurer la -cellule courante (avec un argument optionnel entre crochets pour la couleur des +case courante (avec un argument optionnel entre crochets pour la couleur des hachures). Il est possible de programmer une telle commande |\hatchcell| comme suit, en utilisant explicitement la variable publique |\g_nicematrix_code_before_tl| (ce code nécessite le chargement préalable de la @@ -4072,67 +4107,35 @@ $\begin{pNiceArray}{cccc:c} \end{multicols} -\subsection{Comment surligner les cases} +\subsection{Comment surligner les cases d'une matrice} \label{highlight} \medskip -Les exemples suivants nécessitent d'avoir chargé Tikz (\pkg{nicematrix} ne -charge que \textsc{pgf}) ainsi que la bibliothèque Tikz |fit|, ce qui peut se -faire avec les deux instructions suivantes dans le préambule du document : - -\begin{verbatim} -\usepackage{tikz} -\usetikzlibrary{fit} -\end{verbatim} - - - -\medskip -Pour mettre en évidence une case, il est possible de «dessiner» l'un des nœuds -(le «nœud normal», le «nœud moyen» ou le «nœud large»). Dans l'exemple suivant, -on utilise les «nœuds larges» de la diagonale de la matrice (avec la clé de Tikz -«|name suffix|», il est facile d'utiliser les «nœuds larges»). - -Nous redessinons les nœuds avec de nouveaux nœuds en utilisant la bibliothèque -\pkg{fit} de Tikz. Comme nous voulons recréer des nœuds identiques aux premiers, -nous devons fixer |inner sep = 0pt| (si on ne fait pas cela, les nouveaux nœuds -seront plus grands que les nœuds d'origine créés par \pkg{nicematrix}). +Pour mettre en évidence une case d'une matrice, il est possible de «dessiner» +cette case avec la clé |draw| de la commande |\Block| (c'est l'un des usages des +blocs mono-case\footnote{On rappelle que si le premier argument obligatoire de +la commande |\Block| est laissé vide, le bloc est considéré comme mono-case}). \label{exemple-CodeAfter} \begin{Verbatim} -$\begin{pNiceArray}{>{\strut}cccc}[create-large-nodes,margin,extra-margin = 2pt] - a_{11} & a_{12} & a_{13} & a_{14} \\ - a_{21} & a_{22} & a_{23} & a_{24} \\ - a_{31} & a_{32} & a_{33} & a_{34} \\ - a_{41} & a_{42} & a_{43} & a_{44} \\ -\CodeAfter - \begin{tikzpicture}[~emphase#name suffix = -large@, - every node/.style = {draw,~emphase#inner sep = 0 pt@}] - \node [fit = (1-1)] {} ; - \node [fit = (2-2)] {} ; - \node [fit = (3-3)] {} ; - \node [fit = (4-4)] {} ; - \end{tikzpicture} +$\begin{pNiceArray}{>{\strut}cccc}[margin,rules/color=blue] +~emphase#\Block[draw]{}{a_{11}}@ & a_{12} & a_{13} & a_{14} \\ +a_{21} & \Block[draw]{}{a_{22}} & a_{23} & a_{24} \\ +a_{31} & a_{32} & \Block[draw]{}{a_{33}} & a_{34} \\ +a_{41} & a_{42} & a_{43} & \Block[draw]{}{a_{44}} \\ \end{pNiceArray}$ \end{Verbatim} % -\[\begin{pNiceArray}{>{\strut}cccc}[create-large-nodes,margin,extra-margin = 2pt] -a_{11} & a_{12} & a_{13} & a_{14} \\ -a_{21} & a_{22} & a_{23} & a_{24} \\ -a_{31} & a_{32} & a_{33} & a_{34} \\ -a_{41} & a_{42} & a_{43} & a_{44} \\ -\CodeAfter -\begin{tikzpicture}[name suffix = -large, - every node/.style = {draw,inner sep = 0 pt}] - \node [fit = (1-1)] {} ; - \node [fit = (2-2)] {} ; - \node [fit = (3-3)] {} ; - \node [fit = (4-4)] {} ; -\end{tikzpicture} +\[\begin{pNiceArray}{>{\strut}cccc}[margin,rules/color=blue] +\Block[draw]{}{a_{11}} & a_{12} & a_{13} & a_{14} \\ +a_{21} & \Block[draw]{}{a_{22}} & a_{23} & a_{24} \\ +a_{31} & a_{32} & \Block[draw]{}{a_{33}} & a_{34} \\ +a_{41} & a_{42} & a_{43} & \Block[draw]{}{a_{44}} \\ \end{pNiceArray}\] + On remarquera que les traits que l'on vient de tracer sont dessinés \emph{après} la matrice sans modifier la position des composantes de celle-ci. En revanche, les traits tracés par |\hline|, le spécificateur «\verb+|+» ou les options @@ -4140,15 +4143,29 @@ les traits tracés par |\hline|, le spécificateur «\verb+|+» ou les options matrice.\footnote{Pour la commande |\cline|, voir la remarque p.~\pageref{remark-cline}.} -\vspace{1cm} Il est possible de colorier une rangée avec |\rowcolor| dans le -|code-before| (ou avec |\rowcolor| dans la première case de la -rangée). Les possibilités de réglages sont néanmoins limitées. C'est pourquoi -nous présentons ici une autre méthode pour surligner une rangée de la matrice. -Nous créons un nœud Tikz rectangulaire qui englobe les nœuds de la deuxième -rangée en utilisant les outils de la bibliothèque Tikz \pkg{fit}. Ce nœud est -rempli après la construction de la matrice. Pour que l'on puisse voir le texte -\emph{sous} le nœud, nous devons utiliser la transparence avec le |blend mode| -égal à |multiply|. +\vspace{1cm} +Il est possible de colorier une rangée avec |\rowcolor| dans le |code-before| +(ou avec |\rowcolor| dans la première case de la rangée si on utilise la clé +|colortbl-like|). Les possibilités de réglages sont néanmoins limitées. C'est +pourquoi nous présentons ici une autre méthode pour surligner une rangée d'une +matrice. + +\medskip +Cet exemple et les suivants nécessitent d'avoir chargé Tikz (\pkg{nicematrix} ne +charge que \textsc{pgf}) ainsi que la bibliothèque Tikz |fit|, ce qui peut se +faire avec les deux instructions suivantes dans le préambule du document : + +\begin{verbatim} +\usepackage{tikz} +\usetikzlibrary{fit} +\end{verbatim} + +\medskip +Nous créons un nœud Tikz rectangulaire qui englobe les nœuds de la +deuxième rangée en utilisant les outils de la bibliothèque Tikz \pkg{fit}. Ce +nœud est rempli après la construction de la matrice. Pour que l'on puisse voir +le texte \emph{sous} le nœud, nous devons utiliser la transparence avec le +|blend mode| égal à |multiply|. \tikzset{highlight/.style={rectangle, @@ -4167,17 +4184,19 @@ rempli après la construction de la matrice. Pour que l'on puisse voir le texte inner sep=1pt, fit=~#1}} -$\begin{bNiceMatrix}[~emphase#code-after = {\tikz \node [highlight = (2-1) (2-3)] {} ;}@] +$\begin{bNiceMatrix} 0 & \Cdots & 0 \\ 1 & \Cdots & 1 \\ -0 & \Cdots & 0 +0 & \Cdots & 0 \\ +~emphase#\CodeAfter \tikz \node [highlight = (2-1) (2-3)] {} ;@ \end{bNiceMatrix}$ \end{Verbatim} -\[\begin{bNiceMatrix}[code-after = {\tikz \node [highlight = (2-1) (2-3)] {} ;}] +\[\begin{bNiceMatrix} 0 & \Cdots & 0 \\ 1 & \Cdots & 1 \\ -0 & \Cdots & 0 +0 & \Cdots & 0 \\ +\CodeAfter \tikz \node [highlight = (2-1) (2-3)] {} ; \end{bNiceMatrix}\] diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf index c8e2b90a5cb..3f0097097d4 100644 Binary files a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf and b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf differ -- cgit v1.2.3