summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/nicematrix/nicematrix-french.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-08-20 03:01:54 +0000
committerNorbert Preining <norbert@preining.info>2020-08-20 03:01:54 +0000
commite2dfc4cc8dc03d323073de46903005e3a9d12255 (patch)
tree283bcf119eff28b9f992e1005d38353626efcd2e /macros/latex/contrib/nicematrix/nicematrix-french.tex
parent75955a0dece2b1996d51d4f43ad5778cd6d5b4cc (diff)
CTAN sync 202008200301
Diffstat (limited to 'macros/latex/contrib/nicematrix/nicematrix-french.tex')
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex304
1 files changed, 231 insertions, 73 deletions
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index bd13654d0d..7ea4ab69f8 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -10,7 +10,7 @@
\usepackage{nicematrix}
\usepackage{tikz}
-\usetikzlibrary{fit}
+\usetikzlibrary{fit,patterns}
\usepackage{enumitem}
@@ -300,7 +300,7 @@ Dans l'exemple suivant, on utilise l'option |t| (synonyme de |baseline=t|)
immédiatement après un |\item| de liste. On remarquera que la présence d'un
|\hline| initial n'empêche pas l'alignement sur la ligne de base de la première
rangée (avec |{tabular}| ou |{array}| de \pkg{array}, il faut utiliser
-|\firsthline|.
+|\firsthline|).
\smallskip
\begin{BVerbatim}[baseline=c,boxwidth=9cm]
@@ -367,6 +367,39 @@ u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
\end{minipage}
+\bigskip
+\colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip On peut aussi utiliser la clé
+|baseline| pour aligner une matrice sur un filet horizontal (tracé par
+|\hline|). On doit pour cela donner la valeur |line-|\textsl{i} où \textsl{i}
+est le numéro de la rangée qui suit ce filet horizontal.
+
+\smallskip
+\begin{Verbatim}
+\NiceMatrixOptions{cell-space-top-limit=1pt,cell-space-bottom-limit=1pt}
+\end{Verbatim}
+
+\smallskip
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+$A=\begin{pNiceArray}{cc|cc}[baseline=line-3]
+\dfrac1A & \dfrac1B & 0 & 0 \\
+\dfrac1C & \dfrac1D & 0 & 0 \\
+\hline
+0 & 0 & A & B \\
+0 & 0 & D & D \\
+\end{pNiceArray}$
+\end{BVerbatim}
+\begin{scope}
+\NiceMatrixOptions{cell-space-top-limit=1pt,cell-space-bottom-limit=1pt}
+\raisebox{-5mm}{$A=\begin{pNiceArray}{cc|cc}[baseline=line-3]
+\dfrac1A & \dfrac1B & 0 & 0 \\
+\dfrac1C & \dfrac1D & 0 & 0 \\
+\hline
+0 & 0 & A & B \\
+0 & 0 & D & D \\
+\end{pNiceArray}$}
+\end{scope}
+
+
\section{Les blocs}
@@ -528,6 +561,11 @@ Marie & Pauline \\ \hline
\bigskip
+\colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip En revanche, les filets
+verticaux ne sont pas tracés à l'intérieur des blocs.
+
+
+\bigskip
Si vous utilisez \pkg{booktabs} (qui fournit |\toprule|, |\midrule|,
|\bottomrule|, etc.) et que vous tenez absolument à mettre des filets verticaux
(ce qui est contraire à l'esprit à \pkg{booktabs}), vous constaterez que les
@@ -680,7 +718,8 @@ p.~\pageref{OnlyMainNiceMatrix}.
\subsection{Les clés hlines et vlines}
La clé |hlines| demande un tracé de tous les filets horizontaux et la clé
-|vlines| demande un tracé de tous les filets verticaux. En fait, dans les
+|vlines| demande un tracé de tous les filets verticaux (sauf dans les blocs et
+dans les blocs virtuels déterminés par des lignes en pointillés). En fait, dans les
environnements avec délimiteurs (comme |{pNiceMatrix}| ou |{bNiceArray}|), les
filets extérieurs ne sont pas tracés (ce qui est le comportement certainement
attendu).
@@ -706,10 +745,8 @@ $\begin{pNiceMatrix}[vlines,rules/width=0.2pt]
\label{hvlines}
La clé |hvlines| demande le tracé de tous les filets horizontaux et verticaux
-\emph{sauf dans les blocs}.\footnote{En fait, quand la clé |hvlines| (ou la clé
- |hvlines-except-corners| décrite juste après) est utilisée, les filets ne sont
- pas non plus tracés dans les blocs virtuels délimités par des cases reliées
- par des lignes pointillées (cf. p. \pageref{dotted-and-hvlines}).}
+(sauf dans les blocs et dans les blocks virtuels déterminés par des
+lignes en pointillés).
\medskip
\begin{Verbatim}
@@ -734,7 +771,8 @@ arum & iris & jacinthe & muguet
\subsection{La clé hvlines-except-corners}
La clé |hvlines-except-corners| demande le tracé de tous les filets horizontaux
-et verticaux \emph{sauf dans les blocs} et sauf dans les coins vides.
+et verticaux sauf dans les blocs (y compris dans les blocks virtuels déterminés par des
+lignes en pointillés) et sauf dans les coins vides.
\medskip
\begin{Verbatim}
@@ -769,9 +807,15 @@ Comme on le voit, un «coin vide» est constitué de la réunion de tous les
rectangles vides partant de la case située exactement dans le coin.
\bigskip
+\colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip On peut passer en argument de
+|\hvlines-except-corners| une liste de coins à prendre en considération. Les
+coins étant désignés par |NW|, |SW|, |NE| et |SE| (\emph{north west},
+\emph{south west}, \emph{north east} et \emph{south east}).
+
+\medskip
\begin{BVerbatim}[boxwidth=11cm,baseline=c]
\begin{NiceTabular}{*{6}{c}}%
- [~emphase#hvlines-except-corners@,cell-space-top-limit=3pt]
+ [~emphase#hvlines-except-corners=NE@,cell-space-top-limit=3pt]
1\\
1&1\\
1&2&1\\
@@ -781,7 +825,7 @@ rectangles vides partant de la case située exactement dans le coin.
\end{NiceTabular}
\end{BVerbatim}
\begin{NiceTabular}{*{6}{c}}%
- [c,hvlines-except-corners,cell-space-top-limit=3pt]
+ [c,hvlines-except-corners=NE,cell-space-top-limit=3pt]
1\\
1&1\\
1&2&1\\
@@ -904,10 +948,28 @@ incompatibilités (par exemple avec la commande |\hdotsfor|).
\item L'extension \pkg{colortbl} construit le tableau ligne par ligne, en
alternant rectangles colorés, filets et contenu des cases. Le \textsc{pdf}
-résultant déroute certains lecteurs de \textsc{pdf} et on a des artefacts
-d'affichage : des filets verticaux semblent disparaître ; au contraire, de fines
-lignes blanches peuvent apparaître. L'extension \pkg{nicematrix} proposent des
-outils qui évitent ces inconvénients.
+résultant déroute certains lecteurs de \textsc{pdf} et on a parfois des artefacts
+d'affichage.
+
+\begin{itemize}
+\item Certains filets semblent disparaître. Ce phénomène est dû au fait que les
+lecteurs de PDF donnent souvent la priorité aux éléments graphiques qui ont été
+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
+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
+individuellement même si on utilise |\columncolor| ou |\rowcolor|.
+
+Concernant ce phénomène, Adobe Reader donne de meilleurs résultats que
+MuPDF.
+\end{itemize}
+
+L'extension \pkg{nicematrix} proposent des outils qui permettent d'éviter ces
+inconvénients.
\end{itemize}
\subsection{Les outils de nicematrix dans le code-before}
@@ -958,6 +1020,10 @@ h & i & j \\ \hline
\end{NiceTabular}
\end{scope}
+\medskip
+Une commande |\cellcolor| ne produit qu'une instruction |fill| (codée |f|) dans
+le \textsc{pdf}.
+
\bigskip
\item La commande |\rectanglecolor| prend trois arguments obligatoires. Le
premier est la couleur, les deux suivants fournissent la case en haut à gauche
@@ -1025,6 +1091,10 @@ a_{10} & b_{10} & c_{10} \\
\end{NiceArray}$
\end{scope}
+\medskip
+Une commande |\rowcolor| ne produit qu'une instruction |fill| (codée |f|) dans
+le \textsc{pdf}.
+
\bigskip
\item La commande |\columncolor| doit son nom à la commande |\columncolor| de
@@ -1061,6 +1131,45 @@ Estelle & 15
\end{NiceTabular}
\end{scope}
+\bigskip
+\colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip Il existe une option |respect-blocks|
+pour la commande |\rowcolor|. Avec cette option, les ``rangées'' colorées
+alternativement peuvent s'étendre sur plusieurs rangées réelles du tableau pour
+englober les blocs.
+
+\medskip
+\begin{scope}
+\hfuzz=10cm
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+\begin{NiceTabular}{cr}[hvlines,code-before =
+~emphase#\rowcolors{1}{blue!10}{}[respect-blocks]@]
+\Block{2-1}{Pierre} & 12 \\
+ & 13 \\
+Jacques & 8 \\
+\Block{3-1}{Stéphanie} & 18 \\
+ & 17 \\
+ & 15 \\
+Amélie & 20 \\
+Henri & 14 \\
+\Block{2-1}{Estelle} & 15 \\
+ & 19
+\end{NiceTabular}
+\end{BVerbatim}
+\begin{NiceTabular}{cr}[hvlines,code-before = \rowcolors{1}{blue!10}{}[respect-blocks],baseline=c]
+\Block{2-1}{Pierre} & 12 \\
+ & 13 \\
+Jacques & 8 \\
+\Block{3-1}{Stéphanie} & 18 \\
+ & 17 \\
+ & 15 \\
+Amélie & 20 \\
+Henri & 14 \\
+\Block{2-1}{Estelle} & 15 \\
+ & 19
+\end{NiceTabular}
+\end{scope}
+
+
\bigskip
@@ -1142,7 +1251,7 @@ On a utilisé le type de colonne |S| de \pkg{siunitx}.
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 disponible dans |\NiceMatrixOptions|.}
+ clé n'est pas disponible dans |\NiceMatrixOptions|.}
On a alors accès aux trois commandes suivantes :
\begin{itemize}
@@ -1157,7 +1266,7 @@ autre commande, elle-même utilisée dans le préambule.}.
\medskip
\begin{Verbatim}
-\begin{NiceTabular}[colortbl-like]{>{~emphase#\columncolor{blue!15}}@ccc}
+\begin{NiceTabular}[colortbl-like]{*{2}{>{~emphase#\columncolor{blue!15}@}c}c}
\toprule
~emphase#\rowcolor{red!15}@
Nom & Prénom & Année de naissance \\
@@ -1172,7 +1281,7 @@ Dupont & Chantal & 15 janvier 1998 \\
\begin{center}
-\begin{NiceTabular}[colortbl-like]{>{\columncolor{blue!15}}ccc}
+\begin{NiceTabular}[colortbl-like]{*{2}{>{\columncolor{blue!15}}c}c}
\toprule
\rowcolor{red!15}
Nom & Prénom & Année de naissance \\
@@ -1185,6 +1294,53 @@ Dupont & Chantal & 15 janvier 1998 \\
\end{NiceTabular}
\end{center}
+\medskip
+\emph{Remarque}\par\nobreak
+
+Chacune de ces instructions |\cellcolor|, |\rowcolor| ou |\columncolor|
+(utilisée hors du |code-before|) produit une instruction |fill| (codée |f|) dans
+le \textsc{pdf} final. En cas de juxtaposition de rectangles de même couleur,
+une fine ligne blanche peut donc apparaître dans certains lecteurs de
+\textsc{pdf}\footnote{Par exemple SumatraPDF v3.1.2, qui utilise MuPDF de Artifex
+ Software, dont le moteur de rendu \textsc{pdf} est appelé Fitz.} (entre les
+deux premières colonnes dans l'exemple ci-dessus). Pour éviter cela, il convient
+d'utiliser les outils proposés dans le |code-before|. C'est ce que l'on fait
+dans le codage qui suit.
+
+
+\medskip
+\begin{Verbatim}
+\begin{NiceTabular}[colortbl-like]{ccc}%
+ [code-before = ~emphase#\columncolor{blue!15}{1,2}@]
+\toprule
+\rowcolor{red!15}
+Nom & Prénom & Année de naissance \\
+\midrule
+Achard & Jacques & 5 juin 1962 \\
+Lefebvre & Mathilde & 23 mai 1988 \\
+Vanesse & Stéphanie & 30 octobre 1994 \\
+Dupont & Chantal & 15 janvier 1998 \\
+\bottomrule
+\end{NiceTabular}
+\end{Verbatim}
+
+
+\begin{center}
+\begin{NiceTabular}[colortbl-like]{ccc}%
+ [code-before = \columncolor{blue!15}{1,2}]
+\toprule
+\rowcolor{red!15}
+Nom & Prénom & Année de naissance \\
+\midrule
+Achard & Jacques & 5 juin 1962 \\
+Lefebvre & Mathilde & 23 mai 1988 \\
+Vanesse & Stéphanie & 30 octobre 1994 \\
+Dupont & Chantal & 15 janvier 1998 \\
+\bottomrule
+\end{NiceTabular}
+\end{center}
+
+
\section{La largeur des colonnes}
\label{width}
@@ -1946,14 +2102,16 @@ b & a & b & \Ddots & & \Vdots \\
\end{pNiceMatrix}\]
-\subsection{Les lignes pointillées et la clé hvlines}
+\subsection{Les lignes pointillées et les filets}
+
+\label{dotted-and-rules}
-\label{dotted-and-hvlines}
+Les lignes pointillées délimitent des blocs virtuels qui ont le même
+comportement vis à vis des filets que les blocs créés par |\Block| (les filets
+spécifiés par le spécificateur \verb+|+ dans le préambule et par les clés
+|vlines|, |hlines|, |hvlines| et |hvlines-except-corners| ne sont pas tracés
+dans les blocs).
-On a dit (cf. p. \pageref{hvlines}) que la clé |hvlines| trace tous les filets
-horizontaux et verticaux, exceptés dans les blocs. En fait, avec cette clé, les
-filets ne sont pas non plus tracés dans les blocs virtuels délimités par des
-cases reliées par des lignes pointillées.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
@@ -2397,11 +2555,6 @@ $\begin{bNiceMatrix}[r]
\sin x & \cos x
\end{bNiceMatrix}$
-\medskip
-Il existe aussi l'option |S| qui impose que toutes les colonnes soient des
-colonnes |S| de \pkg{siunitx} (si cette extension est chargée).\footnote{Cela
- reprend une partie des fonctionnalités proposées par les environnements
- |{pmatrix*}|, |{bmatrix*}|, etc. de \pkg{mathtools}.}
\subsection{La commande \textbackslash rotate}
@@ -3044,54 +3197,59 @@ l'intersection du filet horizontal~$i$ et du filet vertical~$j$ avec la syntaxe
\end{NiceMatrix}\]
-\section{Outils pour les développeurs}
+\section{API pour les développeurs}
-Comme son nom l'indique, la liste de tokens |\g_nicematrix_code_after_tl| est
-publique (conformément aux conventions de LaTeX3, toute variable dont le nom
-débute par |\g_nicematrix| ou |\l_nicematrix| est publique alors que toute variable
-dont le nom débute par |\g__nicematrix| ou par |\l__nicematrix| est privée).
+L'extension \pkg{nicematrix} fournit deux variables internes mais publiques\footnote{Conformément aux conventions de LaTeX3,
+ toute variable dont le nom commence par |\g_nicematrix| ou |\l_nicematrix| est
+ publique alors que toute variable dont le nom débute par |\g__nicematrix| ou
+ par |\l__nicematrix| est privée.} :
+\begin{itemize}
+\item \colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip |\g_nicematrix_code_before_tl| ;
+\item |\g_nicematrix_code_after_tl|.
+\end{itemize}
\medskip
-Cette variable contient le code qui constitue le «|code-after|». Le développeur
-peut donc l'utiliser pour y ajouter du code à partir d'une cellule du tableau
-(l'affectation devra être globale, ce qui permettra de sortir de la cellule, qui
-est un groupe au sens de TeX).
+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
+du tableau (l'affectation devra être globale, ce qui permettra de sortir de la
+cellule, qui est un groupe au sens de TeX).
\medskip
-\emph{Exemple} : On souhaite écrire une commande |\crossbox| qui barre en croix
-la cellule courante. Cette commande prendra en argument optionnel une liste de
-couples \textsl{clé}-\textsl{valeur} qui sera passée à Tikz avant que la croix
-ne soit tracée.
-
+On remarquera que l'utilisation de |\g_nicematrix_code_before_tl| nécessite une
+compilation supplémentaire (car les instructions sont écrites dans le fichier
+|aux| pour être utilisées à la compilation suivante).
-On peut alors programmer cette commande |\crossbox| de la manière suivante, qui
-utilise explicitement la variable publique |\g_nicematrix_code_after_tl|.
+\bigskip
+\emph{Example} : On souhaite écrire une commande |\hatchcell| pour hachurer la
+cellule 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
+bibliothèque Tikz \pkg{patterns}).
\begin{scope}
\fvset{commandchars=\§\¤\μ}
\begin{Verbatim}
\ExplSyntaxOn
-\cs_new_protected:Nn \__pantigny_crossbox:nnn
+\cs_new_protected:Nn \__pantigny_hatchcell:nnn
{
\begin { tikzpicture }
- \draw [ #3 ]
- ( row-#1 -| col-\int_eval:n { #2 + 1 } )
- -- ( row-\int_eval:n { #1 + 1 } -| col-#2 )
- ( row-#1 -| col-\int_eval:n #2 )
- -- ( row-\int_eval:n { #1 + 1 } -| col-\int_eval:n { #2 + 1 } ) ;
+ \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 } ) ;
\end { tikzpicture }
}
-
-\NewDocumentCommand \crossbox { ! O { } }
+\NewDocumentCommand \hatchcell { ! O { black } }
{
- \tl_gput_right:Nx §emphase¤\g_nicematrix_code_after_tlμ
+ \tl_gput_right:Nx §emphase¤\g_nicematrix_code_before_tlμ
{
- \__pantigny_crossbox:nnn
+ \__pantigny_hatchcell:nnn
{ \int_use:c { c@iRow } }
{ \int_use:c { c@jCol } }
- { \exp_not:n { #1 } }
+ { #1 }
}
}
\ExplSyntaxOff
@@ -3100,47 +3258,47 @@ utilise explicitement la variable publique |\g_nicematrix_code_after_tl|.
\ExplSyntaxOn
-\cs_new_protected:Nn \__pantigny_crossbox:nnn
+\cs_new_protected:Nn \__pantigny_hatchcell:nnn
{
\begin { tikzpicture }
- \draw [ #3 ]
- ( row-#1 -| col-\int_eval:n { #2 + 1 } )
- -- ( row-\int_eval:n { #1 + 1 } -| col-#2 )
- ( row-#1 -| col-\int_eval:n #2 )
- -- ( row-\int_eval:n { #1 + 1 } -| col-\int_eval:n { #2 + 1 } ) ;
+ \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 } ) ;
\end { tikzpicture }
}
-
-\NewDocumentCommand \crossbox { ! O { } }
+\NewDocumentCommand \hatchcell { ! O { black } }
{
- \tl_gput_right:Nx \g_nicematrix_code_after_tl
+ \tl_gput_right:Nx \g_nicematrix_code_before_tl
{
- \__pantigny_crossbox:nnn
+ \__pantigny_hatchcell:nnn
{ \int_use:c { c@iRow } }
{ \int_use:c { c@jCol } }
- { \exp_not:n { #1 } }
+ { #1 }
}
}
\ExplSyntaxOff
+
\bigskip
-Voici un exemple d'utilisation :
+Voici un exemple d'utilisation.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=9cm]
\begin{NiceTabular}{ccc}[hvlines]
-merlan & requin & cabillaud \\
-baleine & ~emphase#\crossbox[red]@ & morue \\
-mante & raie & poule
+Tokyo & Paris & London \\
+Roma & ~emphase#\hatchcell[blue!30]@Oslo & Miami \\
+Los Angeles & Madrid & Roma
\end{NiceTabular}
\end{BVerbatim}
\begin{NiceTabular}{ccc}[hvlines]
-merlan & requin & cabillaud \\
-baleine & \crossbox[red] & morue \\
-mante & raie & poule
+Tokyo & Paris & London \\
+Lima & \hatchcell[blue!30]Oslo & Miami \\
+Los Angeles & Madrid & Roma
\end{NiceTabular}
+
\section{Remarques techniques}
Première remarque : l'extension \pkg{nicematrix} doit être chargée après