使用新命令对齐文本

使用新命令对齐文本

因此,我一直在寻找在已经缩小的自定义矩阵中对齐文本的方法。请参阅下面的链接以供参考。

https://tex.stackexchange.com/a/59080/220808

在 \begin{pmatrix*} 中,我只需输入 [l] 即可将数字对齐到左侧,但在新命令中,这并不是那么简单。有人能帮我吗?

我在我的 .sty 文件中使用了它:

\newcommand{\colvec}[2][.8]{%
  \scalebox{#1}{%
    \renewcommand{\arraystretch}{.8}%
    $\begin{bmatrix}#2\end{bmatrix}$%
  }
}

在公式中我使用:

\colvec[0.9]{
      -8.6831 \times 10^{-2}&-2.4059 \times 10^{-4}&-3.7120&1.0337 \times 10^{-1}\\
      6.3872 \times 10^{-1}&4.5360 \times 10^{-3}&-2.4419 \times 10^{1}&3.7390 \times 10^{-1}\\
      -1.1624&-5.3189 \times 10^{-2}&-5.8483 \times 10^{1}&1.0665        
    }  

初始矩阵为:

\begin{pmatrix*}[l]
      -8.6831 \times 10^{-2}&-2.4059 \times 10^{-4}&-3.7120&1.0337 \times 10^{-1}\\
      6.3872 \times 10^{-1}&4.5360 \times 10^{-3}&-2.4419 \times 10^{1}&3.7390 \times 10^{-1}\\
      -1.1624&-5.3189 \times 10^{-2}&-5.8483 \times 10^{1}&1.0665        
\end{pmatrix*}  

答案1

假设您希望能够使用另一个可选参数来控制对齐,这是一种可能性

\documentclass{article}

\usepackage{mathtools}

\makeatletter

\newcommand{\colvec}[1][.8]{%
   \begingroup
   \if\relax\detokenize{#1}\relax\def\@tempa{.8}\else\def\@tempa{#1}\fi
   \@colvec}

\newcommand{\@colvec}[2][c]{%
   \scalebox{\@tempa}{%
      \renewcommand{\arraystretch}{.8}%
      $\begin{bmatrix*}[#1]#2\end{bmatrix*}$}%
      \endgroup}

\makeatother


\begin{document}

\colvec{1\\-2\\3412}
\qquad
\colvec[][l]{1\\-2\\3412}
\qquad
\colvec[.6]{1\\-2\\3412}
\qquad
\colvec[.6][r]{1\\-2\\3412}

\end{document}

在此处输入图片描述

相关内容