使数组具有相同的宽度

使数组具有相同的宽度

我对 Latex 还很陌生,正在尝试编写一个总矩阵的解决方案。我使用过这个:

\end{array}\right)$$=$$\left(\begin{array}{cccc|c}  
1 & 0 & 0 & -\frac{1}{2}t & 0\\  
0 & 0 & 0 & -\frac{1}{4}t & 0\\
0 & 0 & 1 & \frac{1}{4}t & 0\\ 
0 & 0 & 0 & 0 & 0 
\end{array}\right)$\\\\

\end{array}\right)$$=$$\left(\begin{array}{cccc|c}  
1 & 0 & 0 & -\frac{1}{2}t & 0\\  
0 & 0 & 0 & -\frac{1}{4}t & 0\\
0 & 0 & 1 & 28978 & 0\\ 
0 & 0 & 0 & 0 & 0 
\end{array}\right)$\\\\

问题是我有一大堆这样的,有些比其他的宽,看起来不太好看。

有什么方法可以声明我创建的所有数组的特定大小吗?

答案1

(在收到 OP 的进一步信息后彻底修改了这个答案)

我不确定我是否理解了您的array环境的性质。它们似乎都有五列,并且第四列可以包含宽度相差很大的条目。此外,假设任何数组的第四列中最宽的单个条目是数字“28978”。如果是这样,只需将可变宽度的c列类型替换为固定宽度的列类型即可,如下面的代码所示。

在此处输入图片描述

\documentclass{article}
\newlength\mylen
\settowidth{\mylen}{$28978$} % calculate width of widest element
\usepackage{array} % for "\newcolumntype" macro
\newcolumntype{Q}{>{\centering$}p{\mylen}<{$}}

\begin{document}
\renewcommand\arraystretch{1.33}
\[
\left(\begin{array}{cccQ|c}  
1 & 0 & 0 & -\frac{1}{2}t & 0\\  
0 & 0 & 0 & -\frac{1}{4}t & 0\\
0 & 0 & 1 & \frac{1}{4}t & 0\\ 
0 & 0 & 0 & 0 & 0 
\end{array}\right)
\]

\[
\left(\begin{array}{cccQ|c}  
1 & 0 & 0 & -\frac{1}{2}t & 0\\  
0 & 0 & 0 & -\frac{1}{4}t & 0\\
0 & 0 & 1 & 28978 & 0\\ 
0 & 0 & 0 & 0 & 0 
\end{array}\right)
\]
\end{document}

答案2

您可以使用tabularx来修复总宽度

\begin{tabularx}{8cm}{|l|X|l|X|}  
\hline A&B&C&D\\  
\hline  
\end{tabularx}

答案3

如果您接受将两个矩阵放在同一个数组中,则可以{NiceArray}使用nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\NiceMatrixOptions{cell-space-limits=2pt,vlines-in-sub-matrix=I}

$\begin{NiceArray}{ccccIc}
1 & 0 & 0 & -\frac{1}{2}t & 0 \\
0 & 0 & 0 & -\frac{1}{4}t & 0 \\
0 & 0 & 1 & \frac{1}{4}t  & 0 \\
0 & 0 & 0 & 0             & 0 \\[5mm]
1 & 0 & 0 & -\frac{1}{2}t & 0 \\
0 & 0 & 0 & -\frac{1}{4}t & 0 \\
0 & 0 & 1 & 28978         & 0 \\
0 & 0 & 0 & 0             & 0 \\
\CodeAfter
\SubMatrix({1-1}{4-5})
\SubMatrix({5-1}{8-5})
\end{NiceArray}$

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容