Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Does anyone have a good idea for an alternative matrix definition with a font size between the standard size used for say pmatrix and the \scriptstyle size used by smallmatrix?

I have several vectors in manuscript that I'm editing, and I think

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

take up too much space and (requite mathtools)

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

is too small.

The contents of these medium matrices may contain numbers and most likely also x_2 types of constructions.

Any ideas?

EDIT: My bad, I was of course referring to vertical vectors. And they will only be used in displayed mode.

share|improve this question

2 Answers 2

up vote 5 down vote accepted

You could combine Werner's \colvec with a small reduction of the interline space:

\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}

enter image description here

share|improve this answer
    
interesting, though this does scale the fences which may end up looking unnatural, but you have given me some ideas. Thanks both Werner and egreg –  daleif Jun 8 '12 at 16:14
    
BTW: I don't think your image match your code ;-) –  daleif Jun 8 '12 at 16:16
    
@daleif It's easy to end up with badly delimited matrices, in this way. –  egreg Jun 8 '12 at 16:25

amsmath defines \substack for a very tight vertical stacking of elements (typically used as indices under operators like \sum. It's definition in amsmath.sty is:

\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}

Also, with \scriptsize being roughly 70% of \normalsize (in a 10pt base font), scaling at 80% is somewhere in between and might be useful. This requires graphicx. \colvec[<scale>]{<vector>} captures this (with a default <scale> of .8 or 80%):

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

Here's a small example showing some comparison, plus a modification to \substack:

enter image description here

\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}

This hasn't been extensively tested, since I'm not sure in which contexts it might fail or not.

share|improve this answer
    
The font sizes are the same, and they become too large if one use say a 3-dimensional vector or larger –  daleif Jun 8 '12 at 8:03

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.