多行内有 pmatrix 的表格的对齐问题

多行内有 pmatrix 的表格的对齐问题

以下是简单的代码

\begin{tabular}{cccl}
a            & b            & c           &       \\
\multicolumn{3}{c}{\multirow{3}{*}{$\begin{pmatrix}
 1 &0&0,25 \\ 0&1&0 \\ 0,25&0&1 \end{pmatrix}$}} & dgf   \\
\multicolumn{3}{c}{}                      & dgfhb \\
\multicolumn{3}{c}{}                      & dghb 
\end{tabular}

如您所见,“a”、“b”和“c”未居中对齐。但如果我删除里面的pmatrixmultirow一切正常。您能解释一下吗?您知道如何解决这个问题吗?也就是说,我希望“a”位于矩阵第一列上方,依此类推。

答案1

blkarray就是你想要的。除了pmatrix,您还可以使用block带有()分隔符的 a 。根据@Bernard的评论,您可以添加两个\bigstruts 来稍微扩大括号。请参见以下内容blkarray以及它与 的pmatrix比较amsmath

\documentclass[12pt,a4paper]{article}
\usepackage{blkarray,bigstrut}
\usepackage{amsmath}    
\begin{document}

\[
\begin{blockarray}{cccl}
a & b & c & \\
\begin{block}{(ccc)l}
  1    & 0 & 0.25 & \text{dgf}   \bigstrut[t]\\
  0    & 1 & 0    & \text{dgfhb}             \\
  0.25 & 0 & 1    & \text{dghb}  \bigstrut[b]\\
\end{block}
\end{blockarray}
\]
% Compared to amsmath's pmatrix:
\[
\begin{pmatrix}
 1 &0&0,25 \\ 0&1&0 \\ 0,25&0&1 \end{pmatrix}\text{dgfhb}
\]

\end{document}

在此处输入图片描述

答案2

如果您更喜欢使用 amsmath环境,则可以使用和包*matrix 来实现 。我将其扭曲为定义 (“带注释的矩阵”)环境。它接受分隔符的可选参数,例如from 。gausspgfforannotmatrixgmatrixgauss

列的注释必须在指令之后的环境内使用命令进行编码\colops。类似地,行的注释也使用相同的命令\matlab{column index}{label}引入和编码。请注意,行和列的索引从 0 开始。\rowops\matlab{row index}{label}

\documentclass{article}
\usepackage{mathtools}
\usepackage{gauss, pgffor}

\def\matlab{\mult}
\newenvironment{annotmatrix}[1][]{%
\let\rowmultlabel\text \let\colmultlabel\text\setlength{\rowarrowsep}{2pt}\setlength{\colarrowsep}{1.5ex}%
\gmatrix[#1]}
{\endgmatrix}

\begin{document}

\[
  \begin{annotmatrix}[p]
    1 &0&0{,}25 \\ 0&1&0 \\ 0{,}25&0&1
     \colops
     \foreach \i/\lab in {0/a, 1/b, 2/c}{\matlab{\i}{\footnotesize\lab}}
     \rowops
     \foreach \i/\lab in {0/dgf, 1/dgfhb, 2/dghb}{\matlab{\i}{\footnotesize\lab}}
  \end{annotmatrix}
\]

\end{document} 

在此处输入图片描述

相关内容