为什么blockarray在数组中使用时不对齐?

为什么blockarray在数组中使用时不对齐?

在以下示例中

\documentclass{article}

\usepackage{blkarray}

\begin{document}

\begin{displaymath}
  \begin{array}{r@{\;=\;}l}
    c & \begin{blockarray}{[c]c}
          0 & \scriptstyle m_1
        \end{blockarray}
  \end{array}
\end{displaymath}

\end{document}

结果是

在此处输入图片描述

为什么blkarrayC

答案1

恐怕这并不奇怪:blkarray使用了一些技巧,但最终使用的边界框不一定是预期的。

\documentclass{article}
\usepackage{blkarray}

\begin{document}

\setlength{\fboxsep}{0pt}\setlength{\fboxrule}{0.1pt}

X$\begin{blockarray}{[c]c} 0 & \scriptstyle m_1 \end{blockarray}$X

X\fbox{$\begin{blockarray}{[c]c} 0 & \scriptstyle m_1 \end{blockarray}$}X

\end{document}

在此处输入图片描述

这一具体案例,没有在不同情况下测试过,你可以通过移动盒子来完成。

\documentclass{article}
\usepackage{blkarray}

\newenvironment{adjblockarray}
 {\begin{lrbox}{\adjblockarraybox}$\begin{blockarray}}
 {\end{blockarray}$\end{lrbox}%
  \raisebox{-1ex}[\dimexpr\height-1ex][\dimexpr\depth-1ex]{\usebox{\adjblockarraybox}}}
\newsavebox{\adjblockarraybox}

\begin{document}

\setlength{\fboxsep}{0pt}\setlength{\fboxrule}{0.1pt}

X$\begin{blockarray}{[c]c} 0 & \scriptstyle m_1 \end{blockarray}$X

X$\begin{adjblockarray}{[c]c} 0 & \scriptstyle m_1 \end{adjblockarray}$X

X\fbox{$\begin{adjblockarray}{[c]c} 0 & \scriptstyle m_1 \end{adjblockarray}$}X

\[
\begin{array}{r@{\;=\;}l}
c & \begin{adjblockarray}{[c]c}
    0 & \scriptstyle m_1
   \end{adjblockarray}
\end{array}
\]

\end{document}

在此处输入图片描述

相关内容