我正在使用该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
定义了一个辅助命令;可选参数(此处未使用,默认)用于构造框内的对齐;第一个强制参数是每个应用程序必须唯一的标签;第二个强制参数是框内容。\matheqbox
c
\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 节点)。