数组环境中两列等号处的对齐

数组环境中两列等号处的对齐

我想制作一个包含所有数字的平方的两列表格。使用以下代码,第一列中的等号和数字之间没有适当的间距,第二列中的等号未排版。

\documentclass{amsart}
\usepackage{amsmath}

\begin{document}

$$
\begin{array}{r@{${}={}$}lc@{\qquad\qquad}cr@{${}={}$}l}
0^2&0, & 5^2&25, \\
1^2&1, & 6^2&36, \\
2^2&4, & 7^2&49, \\
3^2&9, & 8^2&64, \\
4^2&16, & 9^2&81.
\end{array}
$$

\end{document}

我希望得到有关如何仅使用数组环境来执行此操作的提示。

答案1

您在两组之间声明了第五列。在我看来,这是不必要的。这是一个更简单的代码:

\documentclass{amsart}
\usepackage{amsmath}
\usepackage{array}

\begin{document}

\[
\begin{array}{r@{{}²={}}l!{\qquad}r@{{}²={}}l}
0&0, & 5&25, \\
1&1, & 6&36, \\
2&4, & 7&49, \\
3&9, & 8&64, \\
4&16, &9&81.
\end{array}
\]

\end{document} 

在此处输入图片描述

答案2

您可以要求 TeX 以您喜欢的任意基数(最多 36)自行进行计算。

\documentclass{article}
\usepackage{xparse,array,booktabs}

\ExplSyntaxOn

\NewDocumentCommand{\digitsquares}{sO{c}m}
 {% #1 * option for the header, #2 = alignment, #3 = radix
  \IfBooleanTF { #1 }
   {
    \tl_set:Nn \l_tmpa_tl { \multicolumn{6}{c}{\mbox{Base ~ $#3$}} \\ \midrule }
   }
   {
    \tl_clear:N \l_tmpa_tl
   }
  \int_step_inline:nnn { 0 } { \int_div_round:nn { #3 } { 2 } - 1 }
   {
    \tl_put_right:Nx \l_tmpa_tl
     {
      \int_to_Base:nn { ##1 } { #3 } ^2 & = & \int_to_Base:nn { (##1)*(##1) } { #3 } &
      \int_compare:nT { ##1 + \int_div_round:nn { #3 } { 2 } < #3 }
       {
        \int_to_Base:nn { ##1 + \int_div_round:nn { #3 } { 2 } } { #3 }^2 & = &
        \int_to_Base:nn
         {
          (##1 + \int_div_round:nn { #3 } { 2 })*
          (##1 + \int_div_round:nn { #3 } { 2 })
         } { #3 }
        \exp_not:N \\
       }
     }
   }
  \begin{array}[#2]{@{} r @{} >{{}}c<{{}} @{} l @{\qquad} r @{} >{{}}c<{{}} @{} l @{}}
  \l_tmpa_tl
  \end{array}
 }

\ExplSyntaxOff

\begin{document}

\[
\digitsquares*[t]{10} \qquad \digitsquares*[t]{7}
\]
\[
\digitsquares{16}
\]

\end{document}

在此处输入图片描述

表示*我们需要标题;可选参数用于将对齐选项传递给array。强制参数是基数。

序言array由两部分组成

r @{} >{{}}c<{{}} @{} l

即:右对齐列,无空格,居中列,{}项目两侧(这将是符号=),左对齐列;中间有\qquad分隔符。前导和尾随@{}使数组两侧的填充无效。

答案3

我使用的平台显然不允许数组环境的所有选项。它可能只允许、、l和。我修改了代码,以便它能准确地满足我的要求。rc@{\qquad}

\documentclass{amsart}
\usepackage{amsmath}

\begin{document}

$$\begin{array}{r@{}l @{\qquad\qquad} r@{}l}
0^2 &{}={} 0, & 5^2 &{}={} 25, \\
1^2 &{}={} 1, & 6^2 &{}={} 36, \\
2^2 &{}={} 4, & 7^2 &{}={} 49, \\
3^2 &{}={} 9, & 8^2 &{}={} 64, \\
4^2 &{}={} 16, & 9^2 &{}={} 81.
\end{array}$$

\end{document}

相关内容