使用 nicematrix 对外部列条目进行对齐

使用 nicematrix 对外部列条目进行对齐

我正在使用该nicematrix包排版带有边框(外部)条目的矩阵。目前我的代码如下:

\documentclass[preview]{standalone}
\usepackage{nicematrix}

\begin{document}
$\begin{pNiceMatrix}[first-row,last-row=5,first-col,last-col=5]
& C_1 & C_2 & C_3 & C_4 & \\
L_1 & a_{11} & a_{12} & a_{13} & a_{14} & L_1 \\
L_2 & a_{21} & a_{22} & a_{23} & a_{24} & ---L_2--- \\
L_3 & a_{31} & a_{32} & a_{33} & a_{34} & L_3 \\
L_4 & a_{41} & a_{42} & a_{43} & a_{44} & L_4 \\
& C_1 & C_2 & C_3 & C_4 &
\end{pNiceMatrix}$

\end{document}

在此处输入图片描述

但是,我无法让最后一列(边框)的条目居中对齐:在右侧外部列中,L_2 与同一列中的其他条目不对齐。有办法吗?

答案1

最后的外列是左对齐的;这个行为是包中硬连线的,因此不能被覆盖。

但是,有些命令可以提供帮助。我为此eqparbox定义了一个辅助命令;可选参数(此处未使用,默认)用于构造框内的对齐;第一个强制参数是每个应用程序必须唯一的标签;第二个强制参数是框内容。\matheqboxc

\documentclass{article}
\usepackage{nicematrix}
\usepackage{eqparbox}

\newcommand{\matheqbox}[3][c]{\eqmakebox[#2][#1]{$#3$}}

\begin{document}
\[
\begin{pNiceMatrix}[
  first-row,
  last-row=5,
  first-col,
  last-col=5,
]
& C_1 & C_2 & C_3 & C_4 & \\
L_1 & a_{11} & a_{12} & a_{13} & a_{14} & \matheqbox{a}{L_1} \\
L_2 & a_{21} & a_{22} & a_{23} & a_{24} & \matheqbox{a}{L_2+L_2+L_2} \\
L_3 & a_{31} & a_{32} & a_{33} & a_{34} & \matheqbox{a}{L_3} \\
L_4 & a_{41} & a_{42} & a_{43} & a_{44} & \matheqbox{a}{L_4} \\
& C_1 & C_2 & C_3 & C_4 &
\end{pNiceMatrix}
\]

\end{document}

在此处输入图片描述

答案2

这里有一种方法,通过将括号放在环境的前言中来获得这样的矩阵{NiceArray}

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

$\begin{NiceArray}[first-row,last-row]{c(cccc)c}
& C_1 & C_2 & C_3 & C_4 & \\
L_1 & a_{11} & a_{12} & a_{13} & a_{14} & L_1 \\
L_2 & a_{21} & a_{22} & a_{23} & a_{24} & ---L_2--- \\
L_3 & a_{31} & a_{32} & a_{33} & a_{34} & L_3 \\
L_4 & a_{41} & a_{42} & a_{43} & a_{44} & L_4 \\
& C_1 & C_2 & C_3 & C_4 
\end{NiceArray}$

\end{document}

第一个代码的输出


\SubMatrix以下是使用 中的命令的另一种方法\CodeAfter

\documentclass{standalone}
\usepackage{nicematrix}

\begin{document}
$\begin{NiceMatrix}
& C_1 & C_2 & C_3 & C_4 & \\
L_1 & a_{11} & a_{12} & a_{13} & a_{14} & L_1 \\
L_2 & a_{21} & a_{22} & a_{23} & a_{24} & ---L_2--- \\
L_3 & a_{31} & a_{32} & a_{33} & a_{34} & L_3 \\
L_4 & a_{41} & a_{42} & a_{43} & a_{44} & L_4 \\
& C_1 & C_2 & C_3 & C_4 
\CodeAfter \SubMatrix({2-2}{5-5})
\end{NiceMatrix}$

\end{document}

您需要多次编译(因为nicematrix使用 PGF/Tikz 节点)。

第二段代码的输出

相关内容