是否有人对替代矩阵定义有好的想法,其字体大小介于所使用的标准大小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>
或.8
80%):
\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}
这还没有经过广泛的测试,因为我不确定在什么情况下它会失败或不会失败。