diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix-code.pdf | bin | 909512 -> 911018 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf | bin | 575208 -> 581333 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex | 85 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf | bin | 592717 -> 596415 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex | 101 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx | 109 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty | 74 |
7 files changed, 239 insertions, 130 deletions
diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-code.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-code.pdf Binary files differindex 923fd4f5536..384552b056a 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-code.pdf +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-code.pdf diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf Binary files differindex d7c7d18c980..7a0776a2bb5 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex index b27ce64a4ee..688e3b032bd 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex @@ -3227,6 +3227,25 @@ $\begin{bNiceMatrix} 0 & & 1 \end{bNiceMatrix}$ +\medskip +\colorbox{yellow!50}{\textbf{Nouveau 6.20}}\enskip +Avec la clé |xdots/horizontal-labels|, les labels restent horizontaux.\par\nobreak + +\begin{BVerbatim}[baseline=c,boxwidth=10cm] +$\begin{bNiceMatrix}[xdots/horizontal-labels] +1 & \hspace*{1cm} & 0 \\[8mm] + & ~emphase#\Ddots^{n \text{ fois}}@ & \\ +0 & & 1 +\end{bNiceMatrix}$ +\end{BVerbatim} +$\begin{bNiceMatrix}[xdots/horizontal-labels] +1 & \hspace*{1cm} & 0 \\[8mm] + & \Ddots^{n \text{ fois}} & \\ +0 & & 1 +\end{bNiceMatrix}$ + + + \subsection{Personnalisation des lignes en pointillés} \label{customization} @@ -3237,6 +3256,8 @@ $\begin{bNiceMatrix} \index{shorten (clé pour les lignes pointillées)} \index{shorten-end (clé pour les lignes pointillées)} \index{shorten-start (clé pour les lignes pointillées)} +\index{horizontal-labels (clé pour les lignes pointillées)} + Les lignes pointillées tracées par |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, |\Iddots|, |\Hdotsfor| et |\Vdotsfor| (ainsi que par la commande |\line| dans le @@ -3244,6 +3265,7 @@ Les lignes pointillées tracées par |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, par les options suivantes (que l'on met entre crochets après la commande) : % \begin{itemize} +\item |horizontal-labels| ; \item |color| ; \item |radius| ; \item |shorten-start|, |shorten-end| et |shorten| ; @@ -3257,6 +3279,7 @@ niveau d'un environnement mais elles doivent alors être préfixées par |xdots| |\Vdots|, etc.), ce qui fait que leurs noms deviennent : % \begin{itemize} +\item |xdots/horizontal-labels| ; \item |xdots/color| ; \item |xdots/radius| ; \item |xdots/shorten-start|, |xdots/shorten-end| et |xdots/shorten| ; @@ -3266,46 +3289,34 @@ niveau d'un environnement mais elles doivent alors être préfixées par |xdots| % Pour la clarté, dans la suite, on utilisera ces noms-là. -\medskip -\textbf{L'option xdots/color}\par\nobreak +\bigskip +La clé \Definition{xdots/horizontal-labels} demande que les labels (introduits +par |_| et |^|) restent horizontaux. -\smallskip -L'option |xdots/color| indique bien entendu la couleur de la ligne tracée. On -remarquera néanmoins que les lignes tracées dans les rangées et colonnes -extérieures (décrites plus loin) bénéficient d'un régime spécial : cf. +\medskip +L'option \Definition{xdots/color} indique bien entendu la couleur de la ligne +tracée. On remarquera néanmoins que les lignes tracées dans les rangées et +colonnes extérieures (décrites plus loin) bénéficient d'un régime spécial : cf. p.~\pageref{exterior}. \medskip -\textbf{L'option xdots/radius}\par\nobreak - -\smallskip -L'option |radius| correspond au rayon des points circulaires qui sont tracés. La -valeur initiale est $0.53$~pt. - +L'option \Definition{radius} correspond au rayon des points circulaires qui sont +tracés. La valeur initiale est $0.53$~pt. \medskip -\textbf{L'option xdots/shorten}\par\nobreak - -\smallskip -Les clés |xdots/shorten-start| et |xdots/shorten-end| indiquent la marge qui est -laissée aux deux extrémités de la ligne. La clé |xdots/shorten| fixe les deux -clés simultanément. La valeur initiale de $0.3$~em (il est conseillé d'utiliser une -unité de mesure dépendante de la fonte courante). - -\smallskip -Les clés |xdots/shorten-start| et |xdots/shorten-end| ont été introduites dans -la version~6.10. Les versions précédentes ne proposaient que |xdots/shorten|. +Les clés \Definition{xdots/shorten-start} et \Definition{xdots/shorten-end} +indiquent la marge qui est laissée aux deux extrémités de la ligne. La clé +\Definition{xdots/shorten} fixe les deux clés simultanément. La valeur initiale +de $0.3$~em (il est conseillé d'utiliser une unité de mesure dépendante de la +fonte courante). \medskip -\textbf{L'option xdots/inter}\par\nobreak - -\smallskip -L'option |xdots/inter| indique la distance entre deux points. La valeur -initiale est $0.45$~em (il est conseillé d'utiliser une -unité de mesure dépendante de la fonte courante). +L'option \Definition{xdots/inter} indique la distance entre deux points. La +valeur initiale est $0.45$~em (il est conseillé d'utiliser une unité de mesure +dépendante de la fonte courante). \medskip -\textbf{L'option xdots/line-style}\par\nobreak +\textbf{L'option \Definition{xdots/line-style}}\par\nobreak \smallskip Il faut savoir que, par défaut, les lignes de TikZ tracées avec le paramètre @@ -3942,17 +3953,17 @@ Les commandes |\OverBrace| et |\UnderBrace| acceptent en fait un premier argument optionnel (entre crochets) pour une liste de couples \textsl{clé=valeur}. Les clés disponibles sont les suivantes : \begin{itemize} -\item |left-shorten| et |right-shorten| qui ne prennent pas de valeur ; quand +\item \Definition{left-shorten} et \Definition{right-shorten} qui ne prennent pas de valeur ; quand |left-shorten| est utilisée, l'abscisse de l'extrémité de gauche de l'accolade est calculée à partir du contenu du sous-tableau concerné alors que, sinon, c'est la position du filet vertical éventuel qui est utilisée (de même pour |right-shorten|) ; -\item |shorten|, qui est la conjonction des clés |left-shorten| et |right-shorten| ; +\item \Definition{shorten}, qui est la conjonction des clés |left-shorten| et |right-shorten| ; -\item |yshift|, qui déplace verticalement l'accolade (et son label) ; +\item \Definition{yshift}, qui déplace verticalement l'accolade (et son label) ; -\item |color| qui fixe la couleur de l'accolade et du label. +\item \Definition{color} qui fixe la couleur de l'accolade et du label. \end{itemize} \bigskip @@ -6172,7 +6183,7 @@ $\begin{pNiceArray}{*6c|c}[nullify-dots,last-col,code-for-last-col=\scriptstyle] 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. +pointillées (TikZ doit être chargé). \index{line-style (clé pour les lignes pointillées)|textit} @@ -6231,7 +6242,7 @@ On peut même tracer des lignes continues.\footnote{Dans ce document, la \begin{Verbatim} \NiceMatrixOptions {nullify-dots,code-for-first-col = \color{blue},code-for-first-row=\color{blue}} -$\begin{pNiceMatrix}[first-row,first-col] +$\begin{pNiceMatrix}[first-row,first-col,xdots/horizontal-labels] & & \Ldots[line-style={solid,<->},shorten=0pt]^{n \text{ colonnes}} \\ & 1 & 1 & 1 & \Ldots & 1 \\ & 1 & 1 & 1 & & 1 \\ @@ -6246,7 +6257,7 @@ $\begin{pNiceMatrix}[first-row,first-col] \begin{scope} \NiceMatrixOptions {nullify-dots,code-for-first-col = \color{blue},code-for-first-row=\color{blue}} -\[\begin{pNiceMatrix}[first-row,first-col] +\[\begin{pNiceMatrix}[first-row,first-col,xdots/horizontal-labels] & & \Ldots[line-style={solid,<->},shorten=0pt]^{n \text{ colonnes}} \\ & 1 & 1 & 1 & \Ldots & 1 \\ & 1 & 1 & 1 & & 1 \\ diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf Binary files differindex 9f3a9dfb70a..e754fc3aec8 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex index f09d282e102..dc565d21602 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex @@ -17,9 +17,8 @@ \usepackage{tocloft} \setlength{\cftsubsecnumwidth}{3em} % for the numbers of subsections of the TOC -% On utilise \MakeShortVerb de shortvrb et pas \DefineShortVerb de fancyvrb -% car on ne veut pas que le contenu des petits éléments en verbatim soit colorié -% en gris +% We use \MakeShortVerb of shortvrb and not \DefineShortVerb of fancyvrb +% because we don't want small elements in verbatim to be colored in gray \usepackage{shortvrb} \MakeShortVerb{\|} @@ -3151,6 +3150,26 @@ $\begin{bNiceMatrix} 0 & & 1 \end{bNiceMatrix}$ + +\bigskip +\colorbox{yellow!50}{\textbf{New 6.20}}\enskip +With the key |xdots/horizontal-labels|, the labels stay horizontal\par\nobreak +% +\medskip +\begin{BVerbatim}[baseline=c,boxwidth=10cm] +$\begin{bNiceMatrix}[xdots/horizontal-labels] +1 & \hspace*{1cm} & 0 \\[8mm] + & ~emphase#\Ddots^{n \text{ times}}@ & \\ +0 & & 1 +\end{bNiceMatrix}$ +\end{BVerbatim} +$\begin{bNiceMatrix}[xdots/horizontal-labels] +1 & \hspace*{1cm} & 0 \\[8mm] + & \Ddots^{n \text{ times}} & \\ +0 & & 1 +\end{bNiceMatrix}$ + + \subsection{Customisation of the dotted lines} \label{customisation} @@ -3161,12 +3180,14 @@ $\begin{bNiceMatrix} \index{shorten (key for the dotted rules)} \index{shorten-end (key for the dotted rules)} \index{shorten-start (key for the dotted rules)} +\index{horizontal-labels (key for the dotted rules)} The dotted lines drawn by |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, |\Iddots|, |\Hdotsfor| and |\Vdotsfor| (and by the command |\line| in the |\CodeAfter| which is described p.~\pageref{line-in-code-after}) may be customized by the following options (specified between square brackets after the command): \begin{itemize} +\item |horizontal-labels|; \item |color|; \item |radius|; \item |shorten-start|, |shorten-end| and |shorten|; @@ -3179,6 +3200,7 @@ These options may also be fixed with |\NiceMatrixOptions|, as options of must be prefixed by |xdots| (\textsl{xdots} to remind that it works for |\Cdots|, |\Ldots|, |\Vdots|, etc.), and, thus have for names: \begin{itemize} +\item |xdots/horizontal-labels|; \item |xdots/color|; \item |xdots/radius|; \item |xdots/shorten-start|, |xdots/shorten-end| and |xdots/shorten|; @@ -3188,38 +3210,33 @@ must be prefixed by |xdots| (\textsl{xdots} to remind that it works for For the clarity of the explanations, we will use those names. -\bigskip -\textbf{The option xdots/color}\par\nobreak - -\smallskip -The option |xdots/color| fixes the color or the dotted line. However, one should -remark that the dotted lines drawn in the exterior rows and columns have a -special treatment: cf. p.~\pageref{exterior}. \bigskip -\textbf{The option xdots/radius}\par\nobreak - -The option |radius| fixes the radius of the dots. The initial value is 0.53~pt. +With the key \Definition{xdots/horizontal-labels}, the labels (introduced by |_| +and |^|) stay horizontal. \bigskip -\textbf{The option xdots/shorten}\par\nobreak +The option \Definition{xdots/color} fixes the color or the dotted line. However, +one should remark that the dotted lines drawn in the exterior rows and columns +have a special treatment: cf. p.~\pageref{exterior}. -\smallskip -The keys |xdots/shorten-start| and |xdots/shorten-end| fix the margin at the -extremities of the line. The key |xdots/shorten| fixes both parameters. -The initial value is 0.3~em (it is recommanded to use a unit of length -dependent of the current font). +\bigskip +The option \Definition{radius} fixes the radius of the dots. The initial value +is 0.53~pt. \bigskip -\textbf{The option xdots/inter}\par\nobreak +The keys \Definition{xdots/shorten-start} and \Definition{xdots/shorten-end} fix +the margin at the extremities of the line. The key |xdots/shorten| fixes both +parameters. The initial value is 0.3~em (it is recommanded to use a unit of +length dependent of the current font). -\smallskip -The option |xdots/inter| fixes the length between the dots. The initial value -is 0.45~em (it is recommanded to use a unit of length dependent of the current -font). +\bigskip +The option \Definition{xdots/inter} fixes the length between the dots. The +initial value is 0.45~em (it is recommanded to use a unit of length dependent of +the current font). \bigskip -\textbf{The option xdots/line-style}\par\nobreak +\textbf{The option \Definition{xdots/line-style}}\par\nobreak \smallskip It should be pointed that, by default, the lines drawn by Tikz with the @@ -3851,18 +3868,18 @@ In fact, the commands |\OverBrace| and |\UnderBrace| take in an optional argument (in first position and between square brackets) for a list of \textsl{key=value} pairs. The available keys are: \begin{itemize} -\item |left-shorten| and |right-shorten| which do not take in value; when the -key |left-shorten| is used, the abscissa of the left extremity of the brace is -computed with the contents of the cells of the involved sub-array, otherwise, -the position of the potential vertical rule is used (idem for -|right-shorten|). +\item \Definition{left-shorten} and \Definition{right-shorten} which do not take +in value; when the key |left-shorten| is used, the abscissa of the left +extremity of the brace is computed with the contents of the cells of the +involved sub-array, otherwise, the position of the potential vertical rule is +used (idem for |right-shorten|). -\item |shorten|, which is the conjunction of the keys |left-shorten| and -|right-shorten|; +\item \Definition{shorten}, which is the conjunction of the keys |left-shorten| +and |right-shorten|; -\item |yshift|, which shifts vertically the brace (and its label); +\item \Definition{yshift}, which shifts vertically the brace (and its label); -\item |color|, which sets the color of the brace (and its label). +\item \Definition{color}, which sets the color of the brace (and its label). \end{itemize} \bigskip @@ -4077,7 +4094,7 @@ with the following code (the package \pkg{caption} has been loaded in this docum \begin{NiceTabular}{@{}llc@{} [ caption = A tabular whose caption has been specified by the key - \texttt{caption}~emphase#\tabularnote[$\star$]{It's possible to put a tabular note in the caption}! , + \texttt{caption}~emphase#\tabularnote[$\star$]{It's possible to put a tabular note in the caption.}! , label = t:tabularnote , tabularnote = Some text before the notes. , notes/bottomrule @@ -5381,7 +5398,7 @@ been created with |\SubMatrix\{{2-2}{3-3}\}|). \index{node@\textbf{Nodes of PGF/Tikz}|)} -\section{API for the developpers} +\section{API for the developers} The package \pkg{nicematrix} provides two variables which are internal but public\footnote{According to the LaTeX3 conventions, @@ -5399,7 +5416,7 @@ These variables contain the code of what we have called the ``|code-before|'' (usually specified at the beginning of the environment with the syntax using the keywords |\CodeBefore| and |\Body|) and the ``|code-after|'' (usually specified at the end of the environment after the keyword |\CodeAfter|). The -developper can use them to add code from a cell of the array (the affectation +developer can use them to add code from a cell of the array (the affectation must be global, allowing to exit the cell, which is a TeX group). \medskip @@ -6074,7 +6091,7 @@ $\begin{pNiceArray}{*6c|c}[nullify-dots,last-col,code-for-last-col=\scriptstyle] The option |line-style| controls the style of the lines drawn by |\Ldots|, |\Cdots|, etc. Thus, it's possible with these commands to draw lines which are -not longer dotted. +not longer dotted (TikZ should be loaded). \index{line-style (key for the dotted rules)|textit} @@ -6132,7 +6149,7 @@ has been loaded, which impacts the shape of the arrow tips.} \begin{Verbatim} \NiceMatrixOptions {nullify-dots,code-for-first-col = \color{blue},code-for-first-row=\color{blue}} -$\begin{pNiceMatrix}[first-row,first-col] +$\begin{pNiceMatrix}[first-row,first-col,xdots/horizontal-labels] & & \Ldots[line-style={solid,<->},shorten=0pt]^{n \text{ columns}} \\ & 1 & 1 & 1 & \Ldots & 1 \\ & 1 & 1 & 1 & & 1 \\ @@ -6146,7 +6163,7 @@ $\begin{pNiceMatrix}[first-row,first-col] \begin{scope} \NiceMatrixOptions {nullify-dots,code-for-first-col = \color{blue},code-for-first-row=\color{blue}} -\[\begin{pNiceMatrix}[first-row,first-col] +\[\begin{pNiceMatrix}[first-row,first-col,xdots/horizontal-labels] & & \Ldots[line-style={solid,<->},shorten=0pt]^{n \text{ columns}} \\ & 1 & 1 & 1 & \Ldots & 1 \\ & 1 & 1 & 1 & & 1 \\ @@ -6860,6 +6877,10 @@ The successive versions of the file |nicematrix.sty| provided by TeXLive are ava \nolinkurl{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty} } +\subsection*{Changes between version 6.19 and 6.20} + +New key |xdots/horizontal-labels|. + \subsection*{Changes between version 6.18 and 6.19} The command |\tabularnote| now supports an optional argument (between square diff --git a/Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx b/Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx index 93555aa1e51..07b6fe8513e 100644 --- a/Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx +++ b/Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx @@ -17,8 +17,8 @@ % % \fi % \iffalse -\def\myfileversion{6.19a} -\def\myfiledate{2023/05/25} +\def\myfileversion{6.20} +\def\myfiledate{2023/06/04} % % %<*batchfile> @@ -173,11 +173,11 @@ version 2005/12/01 or later. \cs_new_protected:Npn \@@_msg_new:nn { \msg_new:nnn { nicematrix } } % \end{macrocode} % -% With Overleaf, a document is compiled in non-stop mode. When there is an -% error, there is no way to the user to use the key H in order to have more -% information. That's why we decide to put that piece of information (for the -% messages with such information) in the main part of the message when the key -% |messages-for-Overleaf| is used (at load-time). +% With Overleaf, by default, a document is compiled in non-stop mode. When there +% is an error, there is no way to the user to use the key H in order to have +% more information. That's why we decide to put that piece of information (for +% the messages with such information) in the main part of the message when the +% key |messages-for-Overleaf| is used (at load-time). % \begin{macrocode} \cs_new_protected:Npn \@@_msg_new:nnn #1 #2 #3 { @@ -188,8 +188,8 @@ version 2005/12/01 or later. % \end{macrocode} % % \bigskip -% We also create a command which will genereate usually an error but only a -% warning on Overleaf. The argument is given by currification. +% We also create a command which will generate usually an error but only a +% warning on Overleaf. The argument is given by curryfication. % \begin{macrocode} \cs_new_protected:Npn \@@_error_or_warning:n { \bool_if:NTF \c_@@_messages_for_Overleaf_bool \@@_warning:n \@@_error:n } @@ -1998,6 +1998,11 @@ version 2005/12/01 or later. % \end{macrocode} % % \bigskip +% The following parameter corresponds to the key |xdots/horizontal_labels|. +% \begin{macrocode} +\bool_new:N \l_@@_xdots_h_labels_bool +% \end{macrocode} +% \bigskip % The following dimension is the distance between two dots for the dotted lines % (when |line-style| is equal to |standard|, which is the initial value). The % initial value is 0.45~em but it will be changed if the option |small| is used. @@ -2219,6 +2224,8 @@ version 2005/12/01 or later. % \begin{macrocode} \keys_define:nn { NiceMatrix / xdots } { + horizontal-labels .bool_set:N = \l_@@_xdots_h_labels_bool , + horizontal-labels .default:n = true , line-style .code:n = { \bool_lazy_or:nnTF @@ -3145,7 +3152,8 @@ version 2005/12/01 or later. % % \bigskip % The first argument is a boolean which indicates whether you must put the -% instruction on the left or on the right on the list of instructions. +% instruction on the left or on the right on the list of instructions (with +% consequences for the parallelisation of the diagonal lines). % \begin{macrocode} \cs_new_protected:Npn \@@_instruction_of_type:nnn #1 #2 #3 { @@ -6169,7 +6177,7 @@ version 2005/12/01 or later. % (with the command |\item|) . |#1| is the label (when the command % |\tabularnote| has been used with an optional argument between square % brackets) and |#2| is the text of the note. The second argument is provided by -% currification. +% curryfication. % \begin{macrocode} \cs_set_protected:Npn \@@_one_tabularnote:nn #1 { @@ -8532,8 +8540,8 @@ version 2005/12/01 or later. \pgfrememberpicturepositiononpagetrue \pgf@relevantforpicturesizefalse \bool_lazy_or:nnTF - { \tl_if_eq_p:NN \l_@@_xdots_line_style_tl \c_@@_standard_tl } - \l_@@_dotted_bool + { \tl_if_eq_p:NN \l_@@_xdots_line_style_tl \c_@@_standard_tl } + \l_@@_dotted_bool \@@_draw_standard_dotted_line: \@@_draw_unstandard_dotted_line: } @@ -8566,9 +8574,37 @@ version 2005/12/01 or later. \cs_generate_variant:Nn \@@_draw_unstandard_dotted_line:n { o } % \end{macrocode} % +% +% \bigskip +% The following Tikz styles are for both labels (set by the symbols |_| and |^|) +% of a continous line with a non-standard style. +% \begin{macrocode} +\hook_gput_code:nnn { begindocument } { . } + { + \IfPackageLoadedTF { tikz } + { + \tikzset + { + @@_node_above / .style = { sloped , above } , + @@_node_below / .style = { sloped , below } + } + } + { } + } +% \end{macrocode} +% +% \bigskip % \begin{macrocode} \cs_new_protected:Npn \@@_draw_unstandard_dotted_line:nnn #1 #2 #3 { + \bool_if:NT \l_@@_xdots_h_labels_bool + { + \tikzset + { + @@_node_above / .style = { auto = left } , + @@_node_below / .style = { auto = right } + } + } \draw [ #1 , @@ -8581,8 +8617,8 @@ version 2005/12/01 or later. % following lines because we are in the contents of Tikz nodes (and they will be % \emph{rescanned} if the Tikz library \pkg{babel} is loaded). % \begin{macrocode} - -- node [ sloped , above ] { $ \scriptstyle #2 $ } - node [ sloped , below ] { $ \scriptstyle #3 $ } + -- node [ @@_node_above ] { $ \scriptstyle #2 $ } + node [ @@_node_below ] { $ \scriptstyle #3 $ } ( \l_@@_x_final_dim , \l_@@_y_final_dim ) ; \end { scope } } @@ -8606,24 +8642,26 @@ version 2005/12/01 or later. { \pgfpoint \l_@@_x_initial_dim \l_@@_y_initial_dim } { \pgfpoint \l_@@_x_final_dim \l_@@_y_final_dim } } - \pgftransformrotate + \fp_set:Nn \l_tmpa_fp { - \fp_eval:n - { - atand - ( - \l_@@_y_final_dim - \l_@@_y_initial_dim , - \l_@@_x_final_dim - \l_@@_x_initial_dim - ) - } - } + atand + ( + \l_@@_y_final_dim - \l_@@_y_initial_dim , + \l_@@_x_final_dim - \l_@@_x_initial_dim + ) + } + \pgftransformrotate { \fp_use:N \l_tmpa_fp } + \bool_if:NF \l_@@_xdots_h_labels_bool { \fp_zero:N \l_tmpa_fp } \pgfnode { rectangle } { south } { - \c_math_toggle_token - \scriptstyle \l_@@_xdots_up_tl - \c_math_toggle_token + \rotatebox { \fp_eval:n { - \l_tmpa_fp } } + { + \c_math_toggle_token + \scriptstyle \l_@@_xdots_up_tl + \c_math_toggle_token + } } { } { \pgfusepath { } } @@ -8631,9 +8669,12 @@ version 2005/12/01 or later. { rectangle } { north } { - \c_math_toggle_token - \scriptstyle \l_@@_xdots_down_tl - \c_math_toggle_token + \rotatebox { \fp_eval:n { - \l_tmpa_fp } } + { + \c_math_toggle_token + \scriptstyle \l_@@_xdots_down_tl + \c_math_toggle_token + } } { } { \pgfusepath { } } @@ -9619,7 +9660,7 @@ version 2005/12/01 or later. % \bigskip % The command |\@@_color_opacity:w| takes in as argument only the optional % argument. One may consider that the second argument (the actual definition of -% the color) is provided by currification. +% the color) is provided by curryfication. % \begin{macrocode} \cs_new_protected:Npn \@@_color_opacity:w [ #1 ] { @@ -13851,6 +13892,9 @@ version 2005/12/01 or later. % The four following token lists correspond to the position of the |\SubMatrix|. % \begin{macrocode} \@@_compute_i_j:nn { #2 } { #3 } + % added 6.19b + \int_compare:nNnT \l_@@_first_i_tl = \l_@@_last_i_tl + { \cs_set:Npn \arraystretch { 1 } } \bool_lazy_or:nnTF { \int_compare_p:nNn \l_@@_last_i_tl > \g_@@_row_total_int } { \int_compare_p:nNn \l_@@_last_j_tl > \g_@@_col_total_int } @@ -15105,6 +15149,7 @@ version 2005/12/01 or later. { The~available~keys~are~(in~alphabetic~order):~ 'color',~ + 'horizontal-labels',~ 'inter',~ 'line-style',~ 'radius',~ diff --git a/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty b/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty index d3e036baeb9..a04f78a423b 100644 --- a/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty +++ b/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty @@ -18,8 +18,8 @@ %% and version 1.3 or later is part of all distributions of %% LaTeX version 2005/12/01 or later. %% -\def\myfileversion{6.19a} -\def\myfiledate{2023/05/25} +\def\myfileversion{6.20} +\def\myfiledate{2023/06/04} \RequirePackage{pgfcore} \usepgfmodule{shapes} \RequirePackage{l3keys2e} @@ -689,6 +689,7 @@ \bool_new:N \l__nicematrix_standard_cline_bool \dim_new:N \l__nicematrix_cell_space_top_limit_dim \dim_new:N \l__nicematrix_cell_space_bottom_limit_dim +\bool_new:N \l__nicematrix_xdots_h_labels_bool \dim_new:N \l__nicematrix_xdots_inter_dim \hook_gput_code:nnn { begindocument } { . } { \dim_set:Nn \l__nicematrix_xdots_inter_dim { 0.45 em } } @@ -734,6 +735,8 @@ \bool_new:N \l__nicematrix_delimiters_max_width_bool \keys_define:nn { NiceMatrix / xdots } { + horizontal-labels .bool_set:N = \l__nicematrix_xdots_h_labels_bool , + horizontal-labels .default:n = true , line-style .code:n = { \bool_lazy_or:nnTF @@ -4383,8 +4386,8 @@ \pgfrememberpicturepositiononpagetrue \pgf@relevantforpicturesizefalse \bool_lazy_or:nnTF - { \tl_if_eq_p:NN \l__nicematrix_xdots_line_style_tl \c__nicematrix_standard_tl } - \l__nicematrix_dotted_bool + { \tl_if_eq_p:NN \l__nicematrix_xdots_line_style_tl \c__nicematrix_standard_tl } + \l__nicematrix_dotted_bool \__nicematrix_draw_standard_dotted_line: \__nicematrix_draw_unstandard_dotted_line: } @@ -4402,8 +4405,28 @@ \l__nicematrix_xdots_down_tl } \cs_generate_variant:Nn \__nicematrix_draw_unstandard_dotted_line:n { o } +\hook_gput_code:nnn { begindocument } { . } + { + \IfPackageLoadedTF { tikz } + { + \tikzset + { + __nicematrix_node_above / .style = { sloped , above } , + __nicematrix_node_below / .style = { sloped , below } + } + } + { } + } \cs_new_protected:Npn \__nicematrix_draw_unstandard_dotted_line:nnn #1 #2 #3 { + \bool_if:NT \l__nicematrix_xdots_h_labels_bool + { + \tikzset + { + __nicematrix_node_above / .style = { auto = left } , + __nicematrix_node_below / .style = { auto = right } + } + } \draw [ #1 , @@ -4411,8 +4434,8 @@ shorten~< = \l__nicematrix_xdots_shorten_start_dim , ] ( \l__nicematrix_x_initial_dim , \l__nicematrix_y_initial_dim ) - -- node [ sloped , above ] { $ \scriptstyle #2 $ } - node [ sloped , below ] { $ \scriptstyle #3 $ } + -- node [ __nicematrix_node_above ] { $ \scriptstyle #2 $ } + node [ __nicematrix_node_below ] { $ \scriptstyle #3 $ } ( \l__nicematrix_x_final_dim , \l__nicematrix_y_final_dim ) ; \end { scope } } @@ -4430,24 +4453,26 @@ { \pgfpoint \l__nicematrix_x_initial_dim \l__nicematrix_y_initial_dim } { \pgfpoint \l__nicematrix_x_final_dim \l__nicematrix_y_final_dim } } - \pgftransformrotate + \fp_set:Nn \l_tmpa_fp { - \fp_eval:n - { - atand - ( - \l__nicematrix_y_final_dim - \l__nicematrix_y_initial_dim , - \l__nicematrix_x_final_dim - \l__nicematrix_x_initial_dim - ) - } + atand + ( + \l__nicematrix_y_final_dim - \l__nicematrix_y_initial_dim , + \l__nicematrix_x_final_dim - \l__nicematrix_x_initial_dim + ) } + \pgftransformrotate { \fp_use:N \l_tmpa_fp } + \bool_if:NF \l__nicematrix_xdots_h_labels_bool { \fp_zero:N \l_tmpa_fp } \pgfnode { rectangle } { south } { - \c_math_toggle_token - \scriptstyle \l__nicematrix_xdots_up_tl - \c_math_toggle_token + \rotatebox { \fp_eval:n { - \l_tmpa_fp } } + { + \c_math_toggle_token + \scriptstyle \l__nicematrix_xdots_up_tl + \c_math_toggle_token + } } { } { \pgfusepath { } } @@ -4455,9 +4480,12 @@ { rectangle } { north } { - \c_math_toggle_token - \scriptstyle \l__nicematrix_xdots_down_tl - \c_math_toggle_token + \rotatebox { \fp_eval:n { - \l_tmpa_fp } } + { + \c_math_toggle_token + \scriptstyle \l__nicematrix_xdots_down_tl + \c_math_toggle_token + } } { } { \pgfusepath { } } @@ -7735,6 +7763,9 @@ { \group_begin: \__nicematrix_compute_i_j:nn { #2 } { #3 } + % added 6.19b + \int_compare:nNnT \l__nicematrix_first_i_tl = \l__nicematrix_last_i_tl + { \cs_set:Npn \arraystretch { 1 } } \bool_lazy_or:nnTF { \int_compare_p:nNn \l__nicematrix_last_i_tl > \g__nicematrix_row_total_int } { \int_compare_p:nNn \l__nicematrix_last_j_tl > \g__nicematrix_col_total_int } @@ -8630,6 +8661,7 @@ { The~available~keys~are~(in~alphabetic~order):~ 'color',~ + 'horizontal-labels',~ 'inter',~ 'line-style',~ 'radius',~ |