Выравнивание 3 массивов: первый слева, второй справа вверху и третий справа внизу

Aug 19 2020

У меня 3 массива с разными размерами. Я хочу разместить первый массив слева, второй - вверху справа, а третий - внизу справа. Итак, пока я могу разместить только два массива, ниже приведен код для этого:

\documentclass[12 pt, a4paper]{book}
\usepackage{multicol}
\usepackage{geometry}
\geometry{
          a4paper,
          total={170 mm,257 mm},
          left=20 mm,
          top=20 mm,
         }
\usepackage{amsmath,bm}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{soul}
\usepackage{indentfirst}
\usepackage[utf8]{inputenc}
\usepackage{palatino}
\usepackage[dvipsnames]{xcolor}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{array}
\usepackage{enumitem}
\usepackage{mathtools}
\usepackage{cancel}
\usepackage{arydshln}
\usepackage{calc}

\setlength{\parindent}{2em}

\newcommand{\wt}[2]{\underset{\substack{\textstyle\uparrow\\\hidewidth\mathstrut#2\hidewidth}}{#1}}
\definecolor{mygray}{gray}{0.6}

\begin{document}

\textbf{Solution :}
    \[
    \left.
    \hspace{1 cm}
    \arraycolsep=0.2em
    \begin{array}{rrllllll}
          &   &   &   & 1 & 2 & 5 & 5 \\
        \cline{3-8}
        5 & 2 & ) & 6 & 5 & 2 & 9 & 6 \\
          &   & - & 5 & 2 &   &   &   \\
        \cline{4-6}
          &   &   & 1 & 3 & 2 &   &   \\
          &   & - & 1 & 0 & 4 &   &   \\
        \cline{4-7}
          &   &   & 0 & 2 & 8 & 9 &   \\
          &   &   & - & 2 & 6 & 0 &   \\
        \cline{5-8}
          &   &   &   & 0 & 2 & 9 & 6 \\
          &   &   &   & - & 2 & 6 & 0 \\
        \cline{6-8}
          &   &   &   &   & 0 & 3 & 6 \\
    \end{array} 
    \right. \hspace{0.25 cm}\vline \hspace{0.1 cm}
    \arraycolsep=0.2em
    \begin{array}[b]{ccccc@{\hskip 0.5in}ccccc@{\hskip 0.5in}ccccc}
        52 & \times & 1 & = &  52 & 52 & \times & 5 & = & 260 \\
        52 & \times & 2 & = & 104 & 52 & \times & 6 & = & 312 & 52 & \times &  9 & = & 468 \\
        52 & \times & 3 & = & 156 & 52 & \times & 7 & = & 364 & 52 & \times & 10 & = & 520 \\
        52 & \times & 4 & = & 208 & 52 & \times & 8 & = & 416 \\\\
        \hdashline \\
    \end{array}
    \]

\end{document}

Результат моего кода:

Код третьего массива следующий:

\[
\begin{array}{ccccccccc}
        & & \textbf{Difference} & \textbf{Value} & & \textbf{Base} & & \textbf{Borrow} & \textbf{Prev. Bit} \\
        11 - 15 & = & -4 < 0 & 11 & + & 16 & = & 27 & \mathrm{A} \rightarrow \underline{9} \\
        \underline{9} - 14 & = & -5 < 0 & 9 & + & 16 & = & 25 & \mathrm{F} \rightarrow \underline{\mathrm{E}}  
\end{array}
\]

Желаемый результат:

Кроме того, мне нужно стандартное решение, а не временное. Итак, это сработает, если размеры массива изменятся. Кто-нибудь может мне с этим помочь?

Ответы

1 Mico Aug 19 2020 at 22:50

Я предлагаю вам встроить три arrayсреды в две вложенные tabularсреды. «Внешний», двухколоночный, tabularбудет состоять из arrayокружения в левом столбце, вертикальной линейки и «внутреннего» одностолбца tabularв правом столбце. «Внутренняя» таблица, в свою очередь, будет содержать две arrayсреды. Поначалу эта установка может показаться немного сложной, но я считаю, что она удовлетворяет ваши требования к «стандартному решению для этого, а не временному».

О, поскольку вы используете Palatino в качестве основного шрифта текста, я также хотел бы порекомендовать вам использовать математический шрифт Palatino. Этого можно достичь, запустив \usepackage{newpxtext, newpxmath}преамбулу.

\documentclass[12pt, a4paper]{book}
%% (I've pared the preamble down to the bare minimum needed
%%  to get your code to compile.)
\usepackage{geometry}
\geometry{total={170mm,257mm}, left=20mm, top=20mm}
\usepackage{amsmath,bm,amssymb}
\usepackage[utf8]{inputenc}
\usepackage{newpxtext,newpxmath}
\usepackage{arydshln}

\begin{document}
\noindent
\textbf{Solution :}
\begin{center}
\setlength\tabcolsep{1cm}
\setlength\arraycolsep{0.2em}
\begin{tabular}{@{} c | c @{}} % "outer" tabular

$\begin{array}{@{} rrllllll @{}} & & & & 1 & 2 & 5 & 5 \\ \cline{3-8} 5 & 2 & ) & 6 & 5 & 2 & 9 & 6 \\ & & - & 5 & 2 & & & \\ \cline{4-6} & & & 1 & 3 & 2 & & \\ & & - & 1 & 0 & 4 & & \\ \cline{4-7} & & & 0 & 2 & 8 & 9 & \\ & & & - & 2 & 6 & 0 & \\ \cline{5-8} & & & & 0 & 2 & 9 & 6 \\ & & & & - & 2 & 6 & 0 \\ \cline{6-8} & & & & & 0 & 3 & 6 \\ \end{array}$  & 
\begin{tabular}{@{} c @{}} % "inner" tabular
$\begin{array}{@{} *{2}{ccccc@{\hskip 0.5in}} ccccc @{}} 52 & \times & 1 & = & 52 & 52 & \times & 5 & = & 260 \\ 52 & \times & 2 & = & 104 & 52 & \times & 6 & = & 312 & 52 & \times & 9 & = & 468 \\ 52 & \times & 3 & = & 156 & 52 & \times & 7 & = & 364 & 52 & \times & 10 & = & 520 \\ 52 & \times & 4 & = & 208 & 52 & \times & 8 & = & 416 \end{array}$\\\\
\hdashline \\
$\begin{array}{@{} *{9}{c} @{}} & & \text{Diff.} & \text{Value} & & \text{Base} & & \text{Borrow} & \text{Prev.\ Bit} \\ 11 - 15 & = & -4 < 0 & 11 & + & 16 & = & 27 & \mathrm{A} \rightarrow \underline{9} \\ \underline{9} - 14 & = & -5 < 0 & 9 & + & 16 & = & 25 & \mathrm{F} \rightarrow \underline{\mathrm{E}} \end{array}$
\end{tabular} % end of inner tabular
\end{tabular} % end of outer tabular
\end{center}

\end{document}
1 egreg Aug 20 2020 at 00:51

Я все еще думаю, что tabularxэто правильный путь.

\documentclass[12 pt, a4paper]{book}
\usepackage{multicol}
\usepackage{geometry}
\geometry{
          a4paper,
          total={170 mm,257 mm},
          left=20 mm,
          top=20 mm,
         }
\usepackage{amsmath,bm}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{soul}
\usepackage{indentfirst}
\usepackage[utf8]{inputenc}
\usepackage{palatino}
\usepackage[dvipsnames]{xcolor}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{array}
\usepackage{enumitem}
\usepackage{mathtools}
\usepackage{cancel}
\usepackage{arydshln}
\usepackage{calc}
\usepackage{tabularx}

\setlength{\parindent}{2em}

\newcommand{\wt}[2]{\underset{\substack{\textstyle\uparrow\\\hidewidth\mathstrut#2\hidewidth}}{#1}}
\definecolor{mygray}{gray}{0.6}

\begin{document}

\textbf{Solution:}
\[
\setlength{\arraycolsep}{0.2em}
\begin{tabularx}{\displaywidth}{ @{\hspace{1cm}} c | X @{} }
$\begin{array}{rrllllll} & & & & 1 & 2 & 5 & 5 \\ \cline{3-8} 5 & 2 & ) & 6 & 5 & 2 & 9 & 6 \\ & & - & 5 & 2 & & & \\ \cline{4-6} & & & 1 & 3 & 2 & & \\ & & - & 1 & 0 & 4 & & \\ \cline{4-7} & & & 0 & 2 & 8 & 9 & \\ & & & - & 2 & 6 & 0 & \\ \cline{5-8} & & & & 0 & 2 & 9 & 6 \\ & & & & - & 2 & 6 & 0 \\ \cline{6-8} & & & & & 0 & 3 & 6 \\ \end{array}$
  &
   \begin{tabular}{@{}w{c}{\linewidth}@{}}
   $\begin{array}[b]{ccccc@{\hskip 0.5in}ccccc@{\hskip 0.5in}ccccc} 52 & \times & 1 & = & 52 & 52 & \times & 5 & = & 260 \\ 52 & \times & 2 & = & 104 & 52 & \times & 6 & = & 312 & 52 & \times & 9 & = & 468 \\ 52 & \times & 3 & = & 156 & 52 & \times & 7 & = & 364 & 52 & \times & 10 & = & 520 \\ 52 & \times & 4 & = & 208 & 52 & \times & 8 & = & 416 \end{array}$
   \\ \\
   \hdashline
   \\
   $\begin{array}{ccccccccc} & & \textbf{Difference} & \textbf{Value} & & \textbf{Base} & & \textbf{Borrow} & \textbf{Prev. Bit} \\ 11 - 15 & = & -4 < 0 & 11 & + & 16 & = & 27 & \mathrm{A} \rightarrow \underline{9} \\ \underline{9} - 14 & = & -5 < 0 & 9 & + & 16 & = & 25 & \mathrm{F} \rightarrow \underline{\mathrm{E}} \end{array}$
  \end{tabular}
\end{tabularx}
\]

\end{document}