3つのアレイの配置:1つ目は左、2つ目は右上、3つ目は右下

Aug 19 2020

寸法の異なる3つの配列があります。最初の配列を左側に、2番目を右上に、3番目を右下に配置したいと思います。これまでのところ、2つの配列しか配置できません。以下は、そのためのコードです。

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

私のコードの出力は次のとおりです。

3番目の配列のコードは次のとおりです。

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

3つのarray環境を2つのネストされたtabular環境内に埋め込むことをお勧めします。「外側」の2列tabulararray、左側の列の環境、垂直方向のルール、およびtabular右側の列の「内側」の1列で構成されます。次に、「内側の」表には2つのarray環境が含まれます。この設定は最初は少し複雑に聞こえるかもしれませんが、「一時的なものではなく、これに対する標準的な解決策」という要件を満たしていると思います。

ああ、メインのテキストフォントとしてパラティーノを使用しているので、パラティーノの数学フォントを使用することもお勧めします。これは\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}