Making arrays the same width

I'm very new to Latex and am trying to write in a solution to total matrix. I have used this:

\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)$\\\\


The problem is that I have a whole bunch of these and some of the are wider than others, which does not look very nice.

Is there any way to declare a certain size for all of the arrays that I have made?

• why do you have $$=$$ in the middle and not = ? Commented Nov 24, 2017 at 21:41
• Mistake, sorry.
– bub
Commented Nov 24, 2017 at 21:47
• please always post a complete small document, you are asking how to make some arrays the same width (I assume you mean make the columns the same width, you presumably don't want a 1-column array to be as wide as a 5 column one? but it is hard to guess the context with just a fragment that doesn't even have two complete arrays. Also what is the \\\ at the end? Commented Nov 24, 2017 at 21:52
• ... @bub below your question you coud find the "edit button". To correct your little = mistake and to add compilable code, starting with \documentclass and ending with \end{document}. Commented Nov 24, 2017 at 21:58

(revised this answer completely after receiving further information from the OP)

I'm not sure if I understand that nature of your array environments. It seems they all have five columns, and that the fourth column can have entries of widely varying widths. Suppose, furthermore, that the single widest entry in any of the arrays' fourth columns is the number "28978". If that's the case, it suffices to exchange the variable-widtyh c column type with a fixed-width column type, as is done in the code shown below.

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

• Sorry but that's not what I am looking for. Say that I have to arrays and want them the same width, then what? I've updated the description.
– bub
Commented Nov 25, 2017 at 16:15
• @bub - I've updated my answer. Is the new solution close to what you are looking to achieve?
– Mico
Commented Nov 25, 2017 at 20:28
• Is it possible to do also for |c?
– bub
Commented Nov 25, 2017 at 23:57
• @bub - Yes. (Aside: If you have a specific case in mind, please provide more details. This site is not all that well-suited for general, vague conversations. It works much better to solve specific, detailed cases.)
– Mico
Commented Nov 26, 2017 at 6:30

You can use tabularx to fix the total width

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


If you accept to have both matrices in the same array, you can use {NiceArray} of 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}


You need several compilations (because nicematrix uses PGF/Tikz nodes under the hood).