nicematrix:在最后一列添加 ttfamily

nicematrix:在最后一列添加 ttfamily

我怎样才能nicematrix将最后一列注释放入\footnotsize其中\ttfamily

注意:我通常在这里使用符号+, -, ·和罗马数字 ( I, II, III,...)。
因此,这里没有必要保留数学模式。

因此可能的结果可能是这样的:

在此处输入图片描述

我的 MWE:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\usepackage{nicematrix} 
\usepackage{tikz} 
\begin{document}

$\begin{bNiceArray}{c c c   |   c}[
last-col,
%code-for-last-col = ???,
]
1 & -2 & 3 & 5 & \\
0 & 3 & 2 & 2 & II + 2\mathord{\cdot} I - III  \\
0 & 1 & 1 & 3 &
\end{bNiceArray}$
\end{document}

顺便说一句:我想在这里\lgroup使用\rgroup括号(而不是括号“[ ]”);我NiceArrayWithDelims从手册中了解到这一点;但我第一次尝试其他东西时,它并不喜欢。有没有一种简单的方法可以在这里使用组括号?

答案1

更新

最新版本(v. 6.16) 提供了将分隔符和(通过和)nicematrix直接放入环境前言中的功能,例如。\lgroup\rgroup\left\lbroup\right\rgroup{NiceArray}

使用新版本,您可以编写:

\documentclass{article}
\usepackage{nicematrix} 
\usepackage{amsmath}

\begin{document}

\newcolumntype{L}{>{$\ttfamily\footnotesize}l<{$}}

$\begin{NiceArray}{\left\lgroup ccc|c\right\rgroup L}
1 & -2 & 3 & 5 & \\
0 & 3 & 2 & 2 & II + 2I - III  \\
0 & 1 & 1 & 3 & \\
0 & 1 & 1 & 5 &
\end{NiceArray}$

\end{document}

上述代码的输出


nicematrix抱歉,但当前版本(6.15)无法做到这一点。

如果您愿意,这里有一个解决方法。我不使用键last-col,但我在数组的前言中明确添加了列,并将括号放在前言中。

\documentclass{article}
\usepackage{nicematrix} 
\usepackage{amsmath}

\begin{document}

\newcolumntype{L}{>{$\ttfamily\footnotesize}l<{$}}

$\begin{NiceArray}{(ccc|c)L}
1 & -2 & 3 & 5 & \\
0 & 3 & 2 & 2 & II + 2I - III  \\
0 & 1 & 1 & 3 & \\
0 & 1 & 1 & 5 &
\end{NiceArray}$

\end{document}

第一个代码的输出

不可能在序言中放入分隔符\lgroup\rgroup但是这里有一个技巧,就是通过先前放入\{并重新定义...\}

\documentclass{article}
\usepackage{nicematrix} 
\usepackage{amsmath}

\begin{document}

\newcolumntype{L}{>{$\ttfamily\footnotesize}l<{$}}

\NewDocumentEnvironment{MyNiceArray}{}
  {%
    \let \{ \lgroup 
    \let \} \rgroup
    \begin{NiceArray}%
  }
  {\end{NiceArray}}

$\begin{MyNiceArray}{\{ccc|c\}L}
1 & -2 & 3 & 5 & \\
0 & 3 & 2 & 2 & II + 2I - III  \\
0 & 1 & 1 & 3 & \\
0 & 1 & 1 & 5 &
\end{MyNiceArray}$

\end{document}

上述代码的输出

答案2

类似这样的方法可能是一个解决方案,但由于节点的内容默认处于数学模式,因此\ttfamily无法使用,您需要将注释放在\texttt宏中:

\documentclass{article}
\usepackage{nicematrix} 
\usepackage{tikz} 

\begin{document}

$\begin{NiceArrayWithDelims}{\lgroup}{\rgroup}{ c c c | c }[
    last-col,
    code-for-last-col={\footnotesize}
]
1 & -2 & 3 & 5 & \\
0 & 3 & 2 & 2 & \texttt{II + 2\cdot I - III} \\
0 & 1 & 1 & 3 &
\end{NiceArrayWithDelims}$

\end{document}

在此处输入图片描述

据我所知, 没有nicematrix提供某种方法通过某些宏将内容括在最后一列中,您只能使用 来添加宏code-for-last-col,但这在这里没有多大帮助。此外,您不能反过来只让相关列在数学模式下排版,因为环境NiceArrayWithDelims需要完全处于数学模式。


如果您希望使分隔符稍微大一些,则可以使用嵌套的选项\SubMatrixextra-height例如,该解决方案是由软件包作者提出的这里):

\documentclass{article}
\usepackage{nicematrix} 
\usepackage{tikz} 

\NewDocumentEnvironment{ MybNiceArray } { } { 
    \NiceMatrixOptions{exterior-arraycolsep}
    \begin{NiceArray} 
} {
    \CodeAfter
        \SubMatrix\lgroup{1-1}{last-last}\rgroup[extra-height=1ex]
    \end{NiceArray}
}

\begin{document}

$\begin{MybNiceArray}{ c c c | c }[
    last-col,
    code-for-last-col={\footnotesize}
]
1 & -2 & 3 & 5 & \\
0 & 3 & 2 & 2 & \texttt{II + 2\cdot I - III} \\
0 & 1 & 1 & 3 &
\end{MybNiceArray}$

\end{document}

在此处输入图片描述

相关内容