From bf27672804b8dfb033345715f25e6570db144c75 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 22 Feb 2021 21:53:07 +0000 Subject: nicematrix (22feb21) git-svn-id: svn://tug.org/texlive/trunk@57845 c570f23f-e606-0410-a88d-b1316a301751 --- .../doc/latex/nicematrix/nicematrix-french.pdf | Bin 439492 -> 420606 bytes .../doc/latex/nicematrix/nicematrix-french.tex | 526 ++++++++++----------- .../texmf-dist/doc/latex/nicematrix/nicematrix.pdf | Bin 1131373 -> 1133328 bytes 3 files changed, 237 insertions(+), 289 deletions(-) (limited to 'Master/texmf-dist/doc/latex') diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf index b5ce89cab3e..7c58a0449ce 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 ef0cd4123bd..75a1954df9b 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex @@ -117,9 +117,18 @@ dans le répertoire courant ou dans une arborescence |texmf|. Le mieux reste né avec une distribution TeX comme MiKTeX ou TeXlive. \bigskip -Cette extension peut être utilisée avec |xelatex|, |lualatex| et |pdflatex| mais aussi avec le cheminement -classique |latex|-|dvips|-|ps2pdf| (ou Adobe Distiller). \textsl{Néanmoins, le fichier nicematrix-french.tex de la présente documentation -ne peut être compilé qu'avec XeLaTeX.} +\emph{Remarque} : Si vous utilisez un service LaTeX via Internet (ex. : +Overleaf) vous pouvez télécharger le fichier |nicematrix.sty| dans le dossier de +votre projet pour bénéficier de la dernière version de +\pkg{nicematrix}.\footnote{La dernière version de \verb|nicematrix.sty| peut + être téléchargée sur le serveur \textsc{svn} de TeXLive : \newline \small + \url{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty}} + +\bigskip +Cette extension peut être utilisée avec |xelatex|, |lualatex| et |pdflatex| mais +aussi avec le cheminement classique |latex|-|dvips|-|ps2pdf| (ou Adobe +Distiller). \textsl{Néanmoins, le fichier nicematrix-french.tex de la présente + documentation ne peut être compilé qu'avec XeLaTeX.} \bigskip Cette extension nécessite et charge les extensions \pkg{l3keys2e}, \pkg{array}, @@ -145,21 +154,6 @@ Une commande|\NiceMatrixOptions| est fournie pour régler les options (la porté commande est le groupe TeX courant : elles sont semi-globales). -\bigskip -{\bfseries \color{red} Important - -Depuis la version 5.0 de \pkg{nicematrix}, on doit utiliser les lettres |l|, |c| et -|r| dans les préambules des environnements et non plus les lettres |L|, |C| et -|R|. - -Pour assurer la compatibilité avec les versions précédentes, \pkg{nicematrix} -doit être chargée avec l'option |define-L-C-R|. -\begin{Verbatim} -\usepackage[define-L-C-R]{nicematrix} -\end{Verbatim} -} - - \newpage \section{Les environnements de cette extension} @@ -238,7 +232,7 @@ l'extension \pkg{nicematrix} propose deux clés |cell-space-top-limit| et |cell-space-bottom-limit| qui sont similaires aux deux paramètres |\cellspacetoplimit| et |\cellspacebottomlimit| proposés par \pkg{cellspace}. -\colorbox{yellow!50}{\textbf{Nouveau 5.9}}\enskip Il existe aussi une clé +\colorbox{yellow!30}{Nouveau 5.9}\enskip Il existe aussi une clé |cell-space-limits| pour régler simultanément les deux paramètres. La valeur initiale de ces paramètres est $0$~pt pour que les environnements de @@ -716,9 +710,7 @@ classiques. Dans les environnements de \pkg{nicematrix}, les filets verticaux spécifiés par \verb+|+ dans le préambule des environnements ne sont jamais coupés, même en cas de ligne incomplète ou de double filet horizontal spécifié par |\hline\hline| -(il n'y a pas besoin d'utiliser \pkg{hhline}).\footnote{Il s'agit là du comportement depuis la version 5.1 de - \pkg{nicematrix}. Dans les versions précédentes, le comportement était - le comportement par défaut de \pkg{array}.} +(il n'y a pas besoin d'utiliser \pkg{hhline}). \bigskip \begin{BVerbatim}[baseline=c,boxwidth=10cm] @@ -845,7 +837,7 @@ A&B&C&D \\ Les environnements de \pkg{nicematrix} proposent une clé |rules/width| pour fixer la largeur (en fait l'épaisseur) des filets dans l'environnement. En fait, -cette clé ne fait que fixer la valeur de |\arrayrulewidth|. +cette clé ne fait que fixer la valeur du paramètre dimensionnel |\arrayrulewidth|. \smallskip On sait que \pkg{colortbl} propose la commande |\arrayrulecolor| pour spécifier @@ -1162,7 +1154,9 @@ compilations successives. L'extension \pkg{nicematrix} fournit une clé |code-before| pour du code qui sera exécuté avant le tracé du tableau. De nouvelles commandes y sont disponibles : |\cellcolor|, |\rectanglecolor|, |\rowcolor|, |\columncolor|, |\rowcolors| et -|\chessboardcolors|. +|\chessboardcolors|.\footnote{On pourra remarquer que, dans le + \verb|code-before|, des nœuds PGF/Tikz correspondant à la position des filets + éventuels sont également accessibles : cf. p.~\pageref{noeuds-i}.} \label{code-before} \medskip @@ -1274,13 +1268,12 @@ a_{10} & b_{10} & c_{10} \\ \bigskip \item La commande |\rowcolors| (avec un \emph{s}) doit son nom à la commande |\rowcolors| de \pkg{xcolor}\footnote{La commande |\rowcolors| de \pkg{xcolor} - est disponible quand \pkg{xcolor} est chargé avec l'option |table|.}. Le -\emph{s} rappelle qu'il y a deux couleurs. Elle colorie alternativement les -rangées avec les deux couleurs à partir de la rangée dont le numéro est donné en -premier argument (obligatoire), comme le fait la commande |\rowcolors| de -\pkg{xcolor}. + est disponible quand \pkg{xcolor} est chargé avec l'option |table|. Cett + option charge également l'extension \pkg{colortbl}.}. Le \emph{s} rappelle +qu'il y a deux couleurs. Elle colorie alternativement les rangées avec les deux +couleurs à partir de la rangée dont le numéro est donné en premier argument +(obligatoire), comme le fait la commande |\rowcolors| de \pkg{xcolor}. -\colorbox{yellow!30}{Nouveau 5.8}\enskip En fait, le premier argument (obligatoire) peut, plus généralement, contenir une liste d'intervalles correspondant à l'ensemble des rangées sur lesquelles portera l'effet de |\rowcolors| (un intervalle de la forme $i$ désigne en fait @@ -1293,20 +1286,19 @@ optionnel en dernière position (l'argument optionel en première position correspond à l'espace colorimétrique). Les clés disponibles sont |cols|, |restart| et |respect-blocks|. \begin{itemize} -\item \colorbox{yellow!30}{Nouveau 5.8}\enskip -La clé |cols| décrit un ensemble de colonnes sur lesquelles portera +\item La clé |cols| décrit un ensemble de colonnes sur lesquelles portera l'effet de |\rowcolors|. Cet ensemble de colonnes est une liste d'intervalles de la forme $i$|-|$j$. -\item \colorbox{yellow!30}{Nouveau 5.8}\enskip Avec la clé |restart|, chacun -des intervalles de rangées spécifié par le premier argument de |\rowcolors| -recommence avec la même couleur.\footnote{Autrement, la couleur d'une rangée ne - dépend que de la partié de son numéro.} +\item Avec la clé |restart|, chacun des intervalles de rangées spécifié par le +premier argument de |\rowcolors| recommence avec la même +couleur.\footnote{Autrement, la couleur d'une rangée ne dépend que de la parité + de son numéro.} \item Avec la clé |respect-blocks|, qui est de type booléen, les ``rangées'' colorées alternativement peuvent s'étendre sur plusieurs rangées réelles du -tableau pour englober les blocs (créés par la commande |\Block|). +tableau pour englober les blocs (créés par la commande |\Block| : cf.~p.~\pageref{Block}). \end{itemize} @@ -1405,7 +1397,8 @@ droite (cf. p.~\pageref{key-R}). \bigskip On remarquera que ces commandes sont compatibles avec les commandes de -\pkg{booktabs} (|\toprule|, |\midrule|, |\bottomrule|, etc). +\pkg{booktabs} (|\toprule|, |\midrule|, |\bottomrule|, etc). Néanmoins, +l'extension \pkg{booktabs} n'est pas chargée par \pkg{nicematrix}. \medskip \begin{scope} @@ -1455,19 +1448,21 @@ On a utilisé le type de colonne |S| de \pkg{siunitx}. \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 - clé n'est pas disponible dans |\NiceMatrixOptions|.} +celle proposée par \pkg{colortbl} (même si \pkg{colortbl} n'est pas chargé). On +doit pour cela utiliser la clé |colortbl-like| dans l'environnement +concerné.\footnote{Pour le moment, cette clé n'est \emph{pas} disponible dans + |\NiceMatrixOptions|.} On a alors accès aux trois commandes suivantes : \begin{itemize} \item |\cellcolor| qui colorie la case courante ; \item |\rowcolor| à utiliser dans une case et qui colorie le reste de la rangée ; -\item |\columncolor| à utiliser dans le préambule de la même manière que la -commande éponyme de \pkg{colortbl} (néanmoins, contrairement à la commande -|\columncolor| de \pkg{colortbl}, celle-ci peut apparaître à l'intérieur d'une -autre commande, elle-même utilisée dans le préambule). +\item |\columncolor| à utiliser dans le préambule du tableau de la même manière +que la commande éponyme de \pkg{colortbl} (néanmoins, contrairement à la +commande |\columncolor| de \pkg{colortbl}, celle de \pkg{nicematrix} peut +apparaître à l'intérieur d'une autre commande, elle-même utilisée dans le +préambule). \end{itemize} \medskip @@ -1673,18 +1668,21 @@ L_4 & a_{41} & a_{42} & a_{43} & a_{44} & L_4 \\ \end{pNiceMatrix}\] \medskip -Les lignes pointillées ont été tracées avec les outils présentés p.~\pageref{Cdots}. +Les lignes pointillées ont été tracées avec les outils qui seront présentés p.~\pageref{Cdots}. \bigskip Il y a plusieurs remarques à formuler. % \begin{itemize}[beginpenalty=10000] -\item Si on utilise un environnement avec préambule explicite (c'est-à-dire +\item Si on utilise un environnement avec préambule explicite (|{NiceTabular}|, |{NiceArray}| ou l'une de ses variantes), on ne doit pas mettre dans ce préambule de spécification de colonne pour les éventuelles première et dernière -colonne : ce sera automatiquement (et nécessairement) une colonne |R| pour la -première colonne et une colonne |L| pour la dernière. +colonne : ce sera automatiquement (et nécessairement) une colonne |r| pour la +première colonne et une colonne |l| pour la dernière.\footnote{Si on souhaite + une colonne extérieure avec un autre type d'alignement, on aura intérêt à + considérer la commande \verb|\SubMatrix| disponible dans le \verb|\CodeAfter| + (cf. p.~\pageref{sub-matrix}).} \item On peut se demander comment \pkg{nicematrix} détermine le nombre de rangées et de colonnes nécessaires à la composition de la «dernière rangée» et de la «dernière colonne». @@ -1725,7 +1723,7 @@ au début de chaque case de la rangée ou de la colonne considérée. ~emphase#code-for-first-col@ = \color{blue}, ~emphase#code-for-last-row@ = \color{green}, ~emphase#code-for-last-col@ = \color{magenta}} -$\begin{pNiceArray}{cc|cc}[first-row,last-row=6,first-col,last-col,nullify-dots] +$\begin{pNiceArray}{cc|cc}[first-row,last-row=5,first-col,last-col,nullify-dots] & C_1 & \Cdots & & C_4 & \\ L_1 & a_{11} & a_{12} & a_{13} & a_{14} & L_1 \\ \Vdots & a_{21} & a_{22} & a_{23} & a_{24} & \Vdots \\ @@ -1771,8 +1769,10 @@ commande |\OnlyMainNiceMatrix| décrite p.~\pageref{OnlyMainNiceMatrix}. p.~\pageref{width}) ne s'applique pas à la «première colonne» ni à la «dernière colonne». \item Pour des raisons techniques, il n'est pas possible d'utiliser l'option de -la commande |\\| après la «première rangée» ou avant la «dernière rangée» (le -placement des délimiteurs serait erroné). +la commande |\\| après la «première rangée» ou avant la «dernière rangée». Le +placement des délimiteurs serait erroné. Pour contourner cette restriction, on +pourra envisager d'utiliser la commande |\SubMatrix| dans le |\CodeAfter| (cf. +p.~\pageref{sub-matrix}). \end{itemize} @@ -1785,7 +1785,7 @@ placement des délimiteurs serait erroné). À l'intérieur des environnements de l'extension \pkg{nicematrix}, de nouvelles commandes sont définies : |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, et |\Iddots|. Ces commandes sont conçues pour être utilisées à la place de |\dots|, |\cdots|, -|\vdots|, |\ddots| et |\iddots|.\footnote{La commande |\iddots|, définie dans +|\vdots|, |\ddots| et |\iddots|.\footnote{La commande |\iddots|, définie par \pkg{nicematrix}, est une variante de |\ddots| avec les points allant vers le haut. Si \pkg{mathdots} est chargée, la version de \pkg{mathdots} est utilisée. Elle correspond à la commande |\adots| de \pkg{unicode-math}.} @@ -2040,10 +2040,12 @@ $\begin{pNiceMatrix} \end{pNiceMatrix}$ \medskip -Remarque : Contrairement à la commande |\hdotsfor| de \pkg{amsmath}, la commande -|\Hdotsfor| est utilisable lorsque l'extension \pkg{colortbl} est chargée (mais -vous risquez d'avoir des problèmes si vous utilisez |\rowcolor| sur la même -rangée que |\Hdotsfor|). +\emph{Remarque} : Contrairement à la commande |\hdotsfor| de \pkg{amsmath}, la +commande |\Hdotsfor| est utilisable même lorsque l'extension +\pkg{colortbl}\footnote{On rappelle que lorsque l'extension \pkg{xcolor} est + chargée avec l'option \verb|table|, l'extension \pkg{colortbl} est chargée.} +est chargée (mais vous risquez d'avoir des problèmes si vous utilisez +|\rowcolor| sur la même rangée que |\Hdotsfor|). \bigskip L'extension \pkg{nicematrix} propose aussi une commande |\Vdotsfor| similaire à @@ -2175,9 +2177,9 @@ options (que l'on met entre crochets après la commande) : \item |line-style|. \end{itemize} -Ces options peuvent aussi être fixées avec |\NiceMatrixOptions| ou bien au -niveau d'un environnement mais elles doivent alors être préfixées par |xdots|, -ce qui fait que leurs noms deviennent : +Ces options peuvent aussi être fixées avec |\NiceMatrixOptions|, comme options +de |\CodeAfter|, ou bien au niveau d'un environnement mais elles doivent alors +être préfixées par |xdots|, ce qui fait que leurs noms deviennent : % \begin{itemize} \item |xdots/color| ; @@ -2303,11 +2305,18 @@ sera exécuté après la construction du tableau. \medskip Pour améliorer la lisibilité du code, une syntaxe alternative est proposée : on peut spécifier les instructions du |code-after| à la fin de l'environnement, -après le mot-clé |\CodeAfter|. +après le mot-clé |\CodeAfter|. Bien que ce soit un mot-clé, |\CodeAfter| accepte +quand même un argument optionnel (entre crochets). Les clés autorisées forment +un sous-ensemble des clés acceptées par |\NiceMatrixOptions|. + +\medskip +Les utilisateurs expérimentés peuvent, en particulier, utiliser les nœuds +PGF/Tikz créés par \pkg{nicematrix} dans le |\CodeAfter|. Ces nœuds sont décrits +à partir de la page \pageref{PGF-nodes}. \medskip -Deux commandes spéciales sont disponibles dans le |\CodeAfter| : |\line| et -|\SubMatrix|. +Par ailleurs, deux commandes spéciales sont disponibles dans le |\CodeAfter| : +|\line| et |\SubMatrix|. \subsection{La commande \textbackslash line dans le \textbackslash CodeAfter} @@ -2341,14 +2350,19 @@ I & 0 & \Cdots &0 \\ \end{pNiceMatrix}$ \end{scope} +\medskip +Les options disponibles pour personnaliser les lignes pointillées créées par +|\Cdots|, |\Vdots|, etc. peuvent aussi être passées à cette commande (cf. +p.~\pageref{customization}). + \subsection{La commande \textbackslash SubMatrix dans le \textbackslash CodeAfter} \label{sub-matrix} \colorbox{yellow!50}{\textbf{Nouveau 5.10}}\enskip La commande |\SubMatrix| permet de positionner des délimiteurs sur une partie du -tableau considérée comme une sous-matrice. La commande |\SubMatrix| prend cinq -arguments : +tableau, partie qui est considérée comme une sous-matrice. La commande +|\SubMatrix| prend cinq arguments : \begin{itemize} \item le premier argument est le délimiteur gauche qui peut être n'importe quel délimiteur extensible de LaTeX : |(|, |[|, |\{|, |\langle|, |\lgroup|, @@ -2370,10 +2384,10 @@ colonne avec |@{\hspace{1.5em}}| dans le préambule du tableau. \medskip \begin{scope} +\hfuzz=15cm \fvset{commandchars=\~\#\+}% \begin{BVerbatim}[boxwidth=11cm,baseline=c] -\[\begin{NiceArray}{ccc~emphase#@{\hspace{1.5em}}+c}% - [cell-space-limits=2pt,~emphase#margin+] +\[\begin{NiceArray}{ccc~emphase#@{\hspace{1.5em}}+c}[cell-space-limits=2pt,~emphase#margin+] 1 & 1 & 1 & x \\ \dfrac{1}{4} & \dfrac{1}{2} & \dfrac{1}{4} & y \\ 1 & 2 & 3 & z @@ -2401,7 +2415,7 @@ Les options de la commande |\SubMatrix| sont les suivantes : 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 |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 @@ -2417,6 +2431,7 @@ préfixe |sub-matrix|, c'est-à-dire qu'elles sont alors nommées \bigskip \begin{scope} +\hfuzz=12cm \fvset{commandchars=\~\#\!}% \begin{BVerbatim}[baseline=c,boxwidth=11cm] $\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt] @@ -2431,8 +2446,7 @@ c & d & \frac12c+\frac14d \\ \end{NiceArray}$ \end{BVerbatim} \end{scope} -$\begin{NiceArray}{cc@{\hspace{5mm}}l}% - [cell-space-limits=2pt] +$\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt] & & \frac12 \\ & & \frac14 \\[1mm] a & b & \frac12a+\frac14b \\ @@ -2448,10 +2462,10 @@ Voici le même exemple avec la clé |slim| pour l'une des sous-matrices. \medskip \begin{scope} +\hfuzz=12cm \fvset{commandchars=\~\#\!}% \begin{BVerbatim}[baseline=c,boxwidth=11cm] -$\begin{NiceArray}{cc@{\hspace{5mm}}l}% - [cell-space-limits=2pt] +$\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt] & & \frac12 \\ & & \frac14 \\[1mm] a & b & \frac12a+\frac14b \\ @@ -2564,28 +2578,6 @@ Dupont & Chantal & 15 janvier 1998 \\ \end{center} -\begin{table} -\setlength{\belowcaptionskip}{1ex} -\centering -\caption{Utilisation de \texttt{\textbackslash tabularnote}\tabularnote{On peut - mettre une note dans le titre.}} -\label{t:tabularnote} -\begin{NiceTabular}{@{}llc@{}}% - [notes/bottomrule, tabularnote = Un peu de texte avant les notes.] -\toprule -Nom & Prénom & Durée de vie \\ -\midrule -Barrère & Bertrand & 86\\ -Nightingale\tabularnote{Souvent considérée comme la première - infirmière.}\tabularnote{Surnommée «la Dame à la Lampe».} -& Florence & 90 \\ -Schœlcher & Victor & 89\tabularnote{L'appel de note déborde à droite.}\\ -Touchet & Marie & 89 \\ -Wallis & John & 87 \\ -\bottomrule -\end{NiceTabular} -\end{table} - \bigskip \begin{itemize} @@ -2622,7 +2614,7 @@ remarques illustrées. Cette table a été composée avec le code suivant. \begin{center} \fvset{commandchars=\~\#\!} -\begin{BVerbatim}[formatcom=\small\color{gray}] +\begin{Verbatim}[formatcom=\small\color{gray}] \begin{table} \setlength{\belowcaptionskip}{1ex} \centering @@ -2645,9 +2637,33 @@ Wallis & John & 87 \\ \bottomrule \end{NiceTabular} \end{table} -\end{BVerbatim} +\end{Verbatim} \end{center} +\begin{table}[hb] +\setlength{\belowcaptionskip}{1ex} +\centering +\caption{Utilisation de \texttt{\textbackslash tabularnote}\tabularnote{On peut + mettre une note dans le titre.}} +\label{t:tabularnote} +\begin{NiceTabular}{@{}llc@{}}% + [notes/bottomrule, tabularnote = Un peu de texte avant les notes.] +\toprule +Nom & Prénom & Durée de vie \\ +\midrule +Barrère & Bertrand & 86\\ +Nightingale\tabularnote{Souvent considérée comme la première + infirmière.}\tabularnote{Surnommée «la Dame à la Lampe».} +& Florence & 90 \\ +Schœlcher & Victor & 89\tabularnote{L'appel de note déborde à droite.}\\ +Touchet & Marie & 89 \\ +Wallis & John & 87 \\ +\bottomrule +\end{NiceTabular} +\end{table} + + + \subsection{Personnalisation des notes de tableau} @@ -2690,6 +2706,9 @@ paires \textsl{clé=valeur} où le nom des clés n'a plus à être préfixé par \end{center} + + + \bigskip On détaille maintenant ces clés. @@ -3090,16 +3109,16 @@ d'éléments en verbatim (avec par exemple la commande Pour les environnements avec délimiteurs (|{pNiceArray}|, |{pNiceMatrix}|, etc.), il est possible de changer la couleur des délimiteurs avec la clé -|delimiters-color|. +|delimiters/color|. \medskip \begin{BVerbatim}[boxwidth=12cm,baseline=c] -$\begin{bNiceMatrix}[delimiters-color=red] +$\begin{bNiceMatrix}[delimiters/color=red] 1 & 2 \\ 3 & 4 \end{bNiceMatrix}$ \end{BVerbatim} -$\begin{bNiceMatrix}[delimiters-color=red] +$\begin{bNiceMatrix}[delimiters/color=red] 1 & 2 \\ 3 & 4 \end{bNiceMatrix}$ @@ -3136,7 +3155,8 @@ $\begin{NiceArrayWithDelims} \section{Utilisation de Tikz avec nicematrix} -\label{name} +\label{name}\label{PGF-nodes} + \subsection{Les nœuds correspondant aux contenus des cases} @@ -3464,14 +3484,18 @@ noix & noisette & brugnon -\subsection{Les nœuds «row» et «col»} +\subsection{Les nœuds indiquant la position des filets} + +\label{noeuds-i} -L'extension \pkg{nicematrix} crée un nœud PGF-Tikz indiquant la position -potentielle de chaque filet horizontal (avec les noms |row-|$i$) et de chaque -filet vertical (avec les noms |col-|$j$), comme décrit sur la figure ci-dessous. -Ces nœuds sont accessibles dans le |code-before| et dans le |\CodeAfter|. +\colorbox{yellow!50}{\textbf{Nouveau 5.11}}\enskip L'extension \pkg{nicematrix} +crée un nœud PGF-Tikz nommé simplement $i$ (précédé du préfixe habituel) à +l'intersection du filet horizontal de numéro $i$ et du filet vertical de +numéro~$j$ (ou plutôt la position potentielle de ces filets car ils ne sont +peut-être pas tracés). Ces nœuds sont accessibles dans le |\CodeAfter| mais +aussi dans le |code-before|. \begin{center} -\begin{NiceTabular}{ccc}[hvlines,rules/width=1pt,rules/color=gray] +\begin{NiceTabular}{ccc}[hvlines,rules={width=1pt,color=gray}] rose & tulipe & lys \\ arum & iris & violette \\ muguet & dahlia & souci @@ -3480,13 +3504,8 @@ muguet & dahlia & souci \begin{tikzpicture} \foreach \i in {1,2,3,4} { - \fill [red] (row-\i) circle (0.5mm) ; - \node [red,anchor=east] at (row-\i) {row-\i} ; - } -\foreach \j in {1,2,3,4} - { - \fill [blue] (col-\j) circle (0.5mm) ; - \node [blue,anchor=north] at (col-\j) {col-\j} ; + \fill [red] (\i) circle (0.5mm) ; + \node [red,above right] at (\i) {\i} ; } \end{tikzpicture} \end{NiceTabular} @@ -3494,10 +3513,10 @@ muguet & dahlia & souci \bigskip -Si on utilise Tikz (on rappelle que \pkg{nicematrix} ne charge pas Tikz par -défaut), on peut donc accéder (dans le |code-before| et le |\CodeAfter|) à -l'intersection du filet horizontal~$i$ et du filet vertical~$j$ avec la syntaxe -|(row-|$i$\verb+-|col-+$j$|)|. +Si on utilise Tikz (on rappelle que \pkg{nicematrix} ne charge pas Tikz mais +uniquement \textsc{pgf} qui est une sous-couche de Tikz), on peut donc accéder +(dans le |\CodeAfter| mais aussi dans le |code-before|) à l'intersection du filet +horizontal~$i$ et du filet vertical~$j$ avec la syntaxe |(|$i$\verb+-|+$j$|)|. \medskip @@ -3506,8 +3525,7 @@ l'intersection du filet horizontal~$i$ et du filet vertical~$j$ avec la syntaxe code-before = { ~emphase# \tikz \draw [fill = red!15] @ -~emphase# (row-7-|col-4) -- (row-8-|col-4) -- (row-8-|col-5) -- @ -~emphase# (row-9-|col-5) -- (row-9-|col-6) |- cycle ; @ +~emphase# (7-|4) -- (8-|4) -- (8-|5) -- (9-|5) -- (9-|6) |- cycle ; @ } ] 1 \\ @@ -3526,8 +3544,7 @@ l'intersection du filet horizontal~$i$ et du filet vertical~$j$ avec la syntaxe code-before = { \tikz \draw [fill = red!15] - (row-7-|col-4) -- (row-8-|col-4) -- (row-8-|col-5) -- - (row-9-|col-5) -- (row-9-|col-6) |- cycle ; + (7-|4) -- (8-|4) -- (8-|5) -- (9-|5) -- (9-|6) |- cycle ; } ] 1 \\ @@ -3546,6 +3563,7 @@ l'intersection du filet horizontal~$i$ et du filet vertical~$j$ avec la syntaxe \label{node-sub-matrix} +\colorbox{yellow!50}{\textbf{Nouveau 5.10}}\enskip La commande |\SubMatrix| disponible dans le |\CodeAfter| a été présentée p.~\pageref{sub-matrix}. @@ -3616,70 +3634,56 @@ bibliothèque Tikz \pkg{patterns} : |\usetikzlibrary{patterns}|). \fvset{commandchars=\§\¤\μ} \begin{Verbatim} \ExplSyntaxOn -\cs_new_protected:Nn \__pantigny_hatchcell:nnn +\cs_new_protected:Nn \__pantigny_hatch:nnn { \begin { tikzpicture } \fill [ pattern = north~west~lines , pattern~color = #3 ] - ( row - #1 -| col - #2) - rectangle - ( row - \int_eval:n { #1 + 1 } -| col - \int_eval:n { #2 + 1 } ) ; + ( #1 -| #2) rectangle ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ; \end { tikzpicture } } \NewDocumentCommand \hatchcell { ! O { black } } { \tl_gput_right:Nx §emphase¤\g_nicematrix_code_before_tlμ - { - \__pantigny_hatchcell:nnn - { \int_use:c { c@iRow } } - { \int_use:c { c@jCol } } - { #1 } - } + { \__pantigny_hatch:nnn { \arabic { iRow } } { \arabic { jCol } } { #1 } } } \ExplSyntaxOff \end{Verbatim} \end{scope} - \ExplSyntaxOn -\cs_new_protected:Nn \__pantigny_hatchcell:nnn +\cs_new_protected:Nn \__pantigny_hatch:nnn { \begin { tikzpicture } \fill [ pattern = north~west~lines , pattern~color = #3 ] - ( row - #1 -| col - #2) - rectangle - ( row - \int_eval:n { #1 + 1 } -| col - \int_eval:n { #2 + 1 } ) ; + ( #1 -| #2 ) rectangle ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ; \end { tikzpicture } } \NewDocumentCommand \hatchcell { ! O { black } } { \tl_gput_right:Nx \g_nicematrix_code_before_tl - { - \__pantigny_hatchcell:nnn - { \int_use:c { c@iRow } } - { \int_use:c { c@jCol } } - { #1 } - } + { \__pantigny_hatch:nnn { \arabic { iRow } } { \arabic { jCol } } { #1 } } } \ExplSyntaxOff + \bigskip Voici un exemple d'utilisation. \medskip \begin{BVerbatim}[baseline=c,boxwidth=9cm] \begin{NiceTabular}{ccc}[hvlines] -Tokyo & Paris & London \\ -Roma & ~emphase#\hatchcell[blue!30]@Oslo & Miami \\ -Los Angeles & Madrid & Roma +Tokyo & Paris & Londres \\ +Lima & ~emphase#\hatchcell[blue!30]@Oslo & Miami \\ +Los Angeles & Madrid & Rome \end{NiceTabular} \end{BVerbatim} \begin{NiceTabular}{ccc}[hvlines] -Tokyo & Paris & London \\ +Tokyo & Paris & Londres \\ Lima & \hatchcell[blue!30]Oslo & Miami \\ -Los Angeles & Madrid & Roma +Los Angeles & Madrid & Rome \end{NiceTabular} @@ -4001,101 +4005,6 @@ Dupont & Chantal & 15 janvier 1998 \\ \subsection{Lignes en pointillés} - -Une matrice de permutation.\par\nobreak - -À titre d'exemple, on a augmenté la valeur du paramètre -|xdots/shorten|.\par\nobreak - - -\bigskip -\begin{BVerbatim}[baseline=c] -$\begin{pNiceMatrix}[~emphase#xdots/shorten=6em@] -0 & 1 & 0 & & \Cdots & 0 \\ -\Vdots & & & \Ddots & & \Vdots \\ - & & & \Ddots & & \\ - & & & \Ddots & & 0 \\ -0 & 0 & & & & 1 \\ -1 & 0 & & \Cdots & & 0 -\end{pNiceMatrix}$ -\end{BVerbatim} -\hspace{2.5cm} -$\begin{pNiceMatrix}[xdots/shorten=0.6em] -0 & 1 & 0 & & \Cdots & 0 \\ -\Vdots & & & \Ddots & & \Vdots \\ - & & & \Ddots & & \\ - & & & \Ddots & & 0 \\ -0 & 0 & & & & 1 \\ -1 & 0 & & \Cdots & & 0 -\end{pNiceMatrix}$ - -\vspace{2cm} - -Un exemple avec |\Iddots|. On a augmenté encore davantage la valeur de |xdots/shorten|.\par\nobreak -\bigskip -\begin{BVerbatim}[baseline=c] -$\begin{pNiceMatrix}[~emphase#xdots/shorten = 0.9em@] -1 & \Cdots & & 1 \\ -\Vdots & & & 0 \\ - & ~emphase#\Iddots@ & ~emphase#\Iddots@ & \Vdots \\ -1 & 0 & \Cdots & 0 -\end{pNiceMatrix}$ -\end{BVerbatim} -\hspace{4cm} -$\begin{pNiceMatrix}[xdots/shorten = 0.9em] -1 & \Cdots & & 1 \\ -\Vdots & & & 0 \\ - & \Iddots & \Iddots & \Vdots \\ -1 & 0 & \Cdots & 0 -\end{pNiceMatrix}$ - - -\vspace{2cm} -Un exemple avec |\multicolumn|:\par\nobreak -\bigskip -\begin{BVerbatim} -\begin{BNiceMatrix}[nullify-dots] -1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\\ -1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\\ -\Cdots & & ~emphase#\multicolumn{6}{c}{10 \text{ autres lignes}}@ & \Cdots \\ -1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 -\end{BNiceMatrix} -\end{BVerbatim} - -\bigskip -\[\begin{BNiceMatrix}[nullify-dots] -1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\\ -1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\\ -\Cdots & & \multicolumn{6}{c}{10 \text{ autres lignes}} & \Cdots \\ -1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 -\end{BNiceMatrix}\] - -\vspace{2cm} -Un exemple avec |\Hdotsfor|:\par\nobreak - -\bigskip -\begin{BVerbatim}[baseline=c,boxwidth=11cm] -\begin{pNiceMatrix}[nullify-dots] -0 & 1 & 1 & 1 & 1 & 0 \\ -0 & 1 & 1 & 1 & 1 & 0 \\ -\Vdots & ~emphase#\Hdotsfor{4}@ & \Vdots \\ - & ~emphase#\Hdotsfor{4}@ & \\ - & ~emphase#\Hdotsfor{4}@ & \\ - & ~emphase#\Hdotsfor{4}@ & \\ -0 & 1 & 1 & 1 & 1 & 0 -\end{pNiceMatrix} -\end{BVerbatim} -$\begin{pNiceMatrix}[nullify-dots] -0 & 1 & 1 & 1 & 1 & 0 \\ -0 & 1 & 1 & 1 & 1 & 0 \\ -\Vdots & \Hdotsfor{4} & \Vdots \\ - & \Hdotsfor{4} & \\ - & \Hdotsfor{4} & \\ - & \Hdotsfor{4} & \\ -0 & 1 & 1 & 1 & 1 & 0 -\end{pNiceMatrix}$ - -\vspace{2cm} Un exemple pour le résultant de deux polynômes : \par\nobreak \bigskip @@ -4160,6 +4069,57 @@ L'option |line-style| permet de changer le style des lignes tracées par |\Ldots|, |\Cdots|, etc. On peut de ce fait tracer des lignes qui ne sont plus pointillées. + + + +\begin{Verbatim}[formatcom=\small\color{gray}] +\NiceMatrixOptions{code-for-first-row = \scriptstyle,code-for-first-col = \scriptstyle } +\setcounter{MaxMatrixCols}{12} +\newcommand{\blue}{\color{blue}} +\[\begin{pNiceMatrix}[last-row,last-col,nullify-dots,xdots/line-style={dashed,blue}] +1& & & \Vdots & & & & \Vdots \\ +& \Ddots[line-style=standard] \\ +& & 1 \\ +\Cdots[color=blue,line-style=dashed]& & & \blue 0 & +\Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\ +& & & & 1 \\ +& & &\Vdots & & \Ddots[line-style=standard] & & \Vdots \\ +& & & & & & 1 \\ +\Cdots & & & \blue 1 & \Cdots & & \Cdots & \blue 0 & & & \Cdots & \blue \leftarrow j \\ +& & & & & & & & 1 \\ +& & & & & & & & & \Ddots[line-style=standard] \\ +& & & \Vdots & & & & \Vdots & & & 1 \\ +& & & \blue \overset{\uparrow}{i} & & & & \blue \overset{\uparrow}{j} \\ +\end{pNiceMatrix}\] +\end{Verbatim} + + +\begin{scope} +\NiceMatrixOptions{code-for-first-row = \scriptstyle,code-for-first-col = \scriptstyle } +\setcounter{MaxMatrixCols}{12} +\newcommand{\blue}{\color{blue}} +\[\begin{pNiceMatrix}[last-row,last-col,nullify-dots,xdots/line-style={dashed,blue}] +1& & & \Vdots & & & & \Vdots \\ +& \Ddots[line-style=standard] \\ +& & 1 \\ +\Cdots[color=blue,line-style=dashed]& & & \blue 0 & +\Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\ +& & & & 1 \\ +& & &\Vdots & & \Ddots[line-style=standard] & & \Vdots \\ +& & & & & & 1 \\ +\Cdots & & & \blue 1 & \Cdots & & \Cdots & \blue 0 & & & \Cdots & \blue \leftarrow j \\ +& & & & & & & & 1 \\ +& & & & & & & & & \Ddots[line-style=standard] \\ +& & & \Vdots & & & & \Vdots & & & 1 \\ +& & & \blue \overset{\uparrow}{i} & & & & \blue \overset{\uparrow}{j} \\ +\end{pNiceMatrix}\] +\end{scope} + + + +\interitem +On peut même tracer des lignes continues. + \begin{Verbatim} \NiceMatrixOptions {nullify-dots,code-for-first-col = \color{blue},code-for-first-col=\color{blue}} @@ -4321,14 +4281,38 @@ matrice.\footnote{Pour la commande |\cline|, voir la remarque \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 +|colortbl-like| − même si \pkg{colortbl} n'est pas chargé). + + +\begin{Verbatim} +\begin{pNiceArray}{>{\strut}cccc}[margin, extra-margin=2pt,colortbl-like] + ~emphase#\rowcolor{red!15}@A_{11} & A_{12} & A_{13} & A_{14} \\ + A_{21} & ~emphase#\rowcolor{red!15}@A_{22} & A_{23} & A_{24} \\ + A_{31} & A_{32} & ~emphase#\rowcolor{red!15}@A_{33} & A_{34} \\ + A_{41} & A_{42} & A_{43} & ~emphase#\rowcolor{red!15}@A_{44} +\end{pNiceArray} +\end{Verbatim} + + + +\[\begin{pNiceArray}{>{\strut}cccc}[margin, extra-margin=2pt,colortbl-like] + \rowcolor{red!15}A_{11} & A_{12} & A_{13} & A_{14} \\ + A_{21} & \rowcolor{red!15}A_{22} & A_{23} & A_{24} \\ + A_{31} & A_{32} & \rowcolor{red!15}A_{33} & A_{34} \\ + A_{41} & A_{42} & A_{43} & \rowcolor{red!15}A_{44} +\end{pNiceArray}\] + + +\medskip +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 : +charge que \textsc{pgf}, qui est une sous-couche de Tikz) 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} @@ -4336,12 +4320,14 @@ faire avec les deux instructions suivantes dans le préambule du document : \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|. - +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|. \textbf{Attention} : Certains lecteurs de \textsc{pdf} +n'affichent pas la transparence.\footnote{Dans Overleaf, the lecteur de + \textsc{PDF} «intégré» n'affiche pas la transparence. On peut sélectionner le + lecteur «natif» dans ce cas-là.} \tikzset{highlight/.style={rectangle, fill=red!15, @@ -4504,43 +4490,6 @@ a & a & a & L_3 \\ \end{pNiceArray}\] -\vspace{1cm} - -Dans l'exemple suivant, on utilise les «nœuds larges» pour surligner une zone de -la matrice.\par\nobreak -\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 - \tikz \path [~emphase#name suffix = -large@,fill = red!15, blend mode = multiply] - (1-1.north west) - |- (2-2.north west) - |- (3-3.north west) - |- (4-4.north west) - |- (4-4.south east) - |- (1-1.north west) ; -\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 - \tikz \path [name suffix = -large,fill = red!15, blend mode = multiply] - (1-1.north west) - |- (2-2.north west) - |- (3-3.north west) - |- (4-4.north west) - |- (4-4.south east) - |- (1-1.north west) ; -\end{pNiceArray}\] - \subsection{Utilisation directe des nœuds Tikz} @@ -4671,7 +4620,6 @@ TeXLive sont disponibles sur le serveur \textsc{svn} de TeXLive : % Local Variables: % TeX-fold-mode: t % TeX-fold-preserve-comments: nil -% flyspell-mode: true % fill-column: 80 % End: diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf index 12843620c06..a8e3ae524ee 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