如何在 smallmatrix 环境中更改列间空间的宽度?我找不到任何有关 smallmatrix 的详细文档。
数组环境有 setcolsep{..} 命令,但我找不到与 smallmatrix 类似的任何命令。
答案1
列间距是\thickspace
;你可以做一个技巧
\newenvironment{xsmallmatrix}[1]
{\renewcommand\thickspace{\kern#1}\smallmatrix}
{\endsmallmatrix}
现在您可以自己决定分隔符是什么(默认为 .2777em):
\begin{xsmallmatrix}{.5em}
a & b\\
c & d
\end{smallmatrix}
如果你想要一个固定的不同空间,比如 .5em,定义
\newenvironment{xsmallmatrix}
{\renewcommand\thickspace{\kern.5em}\smallmatrix}
{\endsmallmatrix}
请注意,\thickspace
在其他地方使用时,它可能发生在矩阵的一个小条目中(虽然可能性不大)。更强大的补丁可能是
\usepackage{etoolbox}
\patchcmd{\smallmatrix}{\thickspace}{\kern.5em}{}{}
从现在开始所有smallmatrix
环境都将使用 .5em 作为列间距。
答案2
这是一份小文档,其中展示了 fur 的重新定义smallmatrix
,支持分离的可选参数。该定义取自amsmath.sty
,只是通过使用此参数而不是 进行了扩展\thickspace
。
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\renewenvironment{smallmatrix}[1][.2777em]{\null\,\vcenter\bgroup
\Let@\restore@math@cr\default@tag
\baselineskip6\ex@ \lineskip1.5\ex@ \lineskiplimit\lineskip
\ialign\bgroup\hfil$\m@th\scriptstyle##$\hfil&&\kern#1\hfil
$\m@th\scriptstyle##$\hfil\crcr
}{%
\crcr\egroup\egroup\,%
}
\makeatother
\begin{document}
\[
\begin{smallmatrix}
a & b\\
c & d
\end{smallmatrix}
\quad
\begin{smallmatrix}[8pt]
a & b\\
c & d
\end{smallmatrix}
\]
\end{document}
它使用内部宏,就像原始定义一样,这可能会改变。虽然 egreg 展示了一种解决方法和补丁,但这应该展示从原始源代码开始的直接重新定义。