小尺寸矩阵

小尺寸矩阵

是否有人对替代矩阵定义有好的想法,其字体大小介于所使用的标准大小pmatrix\scriptstyle所使用的大小之间smallmatrix

我正在编辑手稿中的几个载体,我认为

\begin{pmatrix}
1 \\ 2 
\end{pmatrix}

占用太多空间并且(requite mathtools

\begin{psmallmatrix}
1 \\ 2
\end{psmallmatrix}

太小。

这些内容中等的矩阵可能包含数字,并且很可能还包含x_2构造类型。

有任何想法吗?

编辑:我的错,我当然指的是垂直向量。它们只会在显示模式下使用。

答案1

您可以将 Werner 的方法\colvec与稍微减少的行间空间结合起来:

\documentclass{article}
\usepackage{graphicx,amsmath}
\newcommand{\colvec}[2][.8]{%
  \scalebox{#1}{%
    \renewcommand{\arraystretch}{.8}%
    $\begin{bmatrix}#2\end{bmatrix}$%
  }
}

\begin{document}
\[
\mathbf{a}+\colvec{x\\y\\z}+\begin{bmatrix}x\\y\\z\end{bmatrix}+\colvec[.7]{x\\y\\z}
\]
\end{document}

在此处输入图片描述

答案2

amsmath定义\substack为元素的非常紧密的垂直堆叠(通常用作诸如 之类的运算符下的索引\sum。它的定义amsmath.sty是:

\newenvironment{subarray}[1]{%
  \vcenter\bgroup
  \Let@ \restore@math@cr \default@tag
  \baselineskip\fontdimen10 \scriptfont\tw@
  \advance\baselineskip\fontdimen12 \scriptfont\tw@
  \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
  \lineskiplimit\lineskip
  \ialign\bgroup\ifx c#1\hfil\fi
    $\m@th\scriptstyle##$\hfil\crcr
}{%
  \crcr\egroup\egroup
}
\newcommand{\substack}[1]{\subarray{c}#1\endsubarray}

此外,由于\scriptsize大约为 70% \normalsize(在10pt基础字体中),因此缩放到 80% 介于两者之间,可能有用。这需要graphicx.\colvec[<scale>]{<vector>}捕获此内容(默认值为<scale>.880%):

\newcommand{\colvec}[2][.8]{%
  \scalebox{#1}{$\begin{array}{@{}c@{}}#2\end{array}$}}%

这是一个显示一些比较的小例子,加上对的修改\substack

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\setlength{\parindent}{0pt}% Just for this example
\begin{document}
\verb|pmatrix|:
\[
  \begin{pmatrix}1\\2\end{pmatrix} \quad
  \begin{pmatrix}x_11\\2\end{pmatrix}
\]

\verb|smallmatrix|:
\[
  \left(\begin{smallmatrix}1\\2\end{smallmatrix}\right) \quad
  \left(\begin{smallmatrix}x_1\\2\end{smallmatrix}\right)
\]

\verb|\substack|:
\[
  \left(\substack{1\\2}\right) \quad
  \left(\substack{x_1\\2}\right)
\]

\makeatletter
\renewenvironment{subarray}[1]{%
  \vcenter\bgroup
  \Let@ \restore@math@cr \default@tag
  \baselineskip\fontdimen10 \scriptfont\tw@
  \advance\baselineskip\fontdimen12 \scriptfont\tw@
  \lineskip7\fontdimen8 \scriptfont\thr@@
  \lineskiplimit\lineskip
  \ialign\bgroup\ifx c#1\hfil\fi
    $\m@th##$\hfil\crcr
}{%
  \crcr\egroup\egroup
}
\makeatother
Updated \verb|\substack|:
\[
  \left(\substack{1\\2}\right) \quad
  \left(\substack{x_1\\2}\right)
\]

\newcommand{\colvec}[2][.8]{%
  \scalebox{#1}{$\begin{array}{@{}c@{}}#2\end{array}$}}%

\verb|\colvec|:
\[
  \Big(\colvec{1\\2}\Big) \quad
  \Big(\colvec{x_1\\2}\Big) \quad
  \bigg(\colvec{a\\b\\c}\bigg) \quad
  \bigg(\colvec[.7]{x_1\\x_2\\x_3}\bigg)
\]

\end{document}

这还没有经过广泛的测试,因为我不确定在什么情况下它会失败或不会失败。

相关内容