哪个数学环境用于制作表格布局?

哪个数学环境用于制作表格布局?

我想在表格布局中排版数学运算,并将其拉伸到页面宽度,例如:

\begin{flalign*}
   a)\, \lim_{n\to\infty} \frac{1000n}{n^2+1} &&
   b)\, \lim_{n\to\infty} \left( \sqrt{n+1}-\sqrt{n}\right) &&
   c)\, \lim_{n\to\infty} \frac{\sqrt[3]{n}\sin n!}{n+1}&&\\
   d)\, \lim_{n\to\infty} \frac{(-2)^n+ 3^n}{(-2)^{n+1}+3^{n+1}}&&
\end{flalign*}

这将产生每列右对齐的输出,我更喜欢左对齐:

在此处输入图片描述

此外,在行之间添加一些填充也很好。

我尝试过使用数组环境:

\[
  \begin{array}{p{0.33\textwidth}p{0.33\textwidth}p{0.33\textwidth}}
   a)\, \displaystyle\lim_{n\to\infty} \frac{1000n}{n^2+1} &
   b)\, \displaystyle\lim_{n\to\infty} \left(\sqrt{n+1} - \sqrt{n}\right)&
   c)\, \displaystyle\lim_{n\to\infty} \frac{\sqrt[3]{n}\sin n!}{n+1}\\
   d)\, \displaystyle\lim_{n\to\infty} \frac{(-2)^n+ 3^n}{(-2)^{n+1}+3^{n+1}} 
 \end{array}
\]

在此处输入图片描述

它似乎解决了对齐的问题,但是数组内的数学命令产生了太多错误,并且行之间的空间甚至更小。

知道如何解决这个问题吗?

答案1

您可以使用正常align*环境,结合spreadlines来自mathtools包。 参数 for spreadlines(此处20pt) 设置其内的行距aligngather环境。 如果您希望此更改是全局的,则可以将其添加\setlength{\jot}{20pt}到您的序言中。

\documentclass[12pt]{article}
\usepackage{mathtools}
\begin{document}
\begin{spreadlines}{20pt}
\begin{align*}
   &a)\, \lim_{n\to\infty} \frac{1000n}{n^2+1} &
   &b)\, \lim_{n\to\infty} \left( \sqrt{n+1}-\sqrt{n}\right) &
   &c)\, \lim_{n\to\infty} \frac{\sqrt[3]{n}\sin n!}{n+1}\\
   &d)\, \lim_{n\to\infty} \frac{(-2)^n+ 3^n}{(-2)^{n+1}+3^{n+1}}
\end{align*}
\end{spreadlines}
\end{document}

在此处输入图片描述

答案2

\documentclass[a4paper]{article}
\usepackage{tabularx,array}
\newcolumntype{Y}{>{$\displaystyle\exer}X<{$}}
\newenvironment{exercises}[2][1.5]
  {\par\flushleft\setcounter{exercise}{0}
   \renewcommand{\arraystretch}{#1}\tabularx\linewidth{@{}#2@{}}}
  {\endtabularx\endflushleft}
\newcounter{exercise}
\renewcommand{\theexercise}{\alph{exercise}}
\newcommand{\exer}{\stepcounter{exercise}\makebox[1.2em][r]{\theexercise)\ }}

\begin{document}
\begin{exercises}[2.5]{YYY}
\lim_{n\to\infty} \frac{1000n}{n^2+1} &
\lim_{n\to\infty} \left(\sqrt{n+1} - \sqrt{n}\right)&
\lim_{n\to\infty} \frac{\sqrt[3]{n}\sin n!}{n+1}\\
\lim_{n\to\infty} \frac{(-2)^n+ 3^n}{(-2)^{n+1}+3^{n+1}}
\end{exercises}
\end{document}

您会发现,您只需要指定所需的列数以及可能的行间拉伸量。编号是自动的。

替代定义

这里拉伸的是列间距,而不是列宽

\newcolumntype{Y}{>{$\displaystyle\exer}l<{$}}
\newenvironment{exercises}[2][1.5]
  {\par\flushleft\setcounter{exercise}{0}
   \renewcommand{\arraystretch}{#1}
   \begin{tabular*}\linewidth{@{\extracolsep{\fill}}#2@{}}}
  {\end{tabular*}\endflushleft}
\newcounter{exercise}
\renewcommand{\theexercise}{\alph{exercise}}
\newcommand{\exer}{\stepcounter{exercise}\makebox[1.2em][r]{\theexercise)\ }}

答案3

这里还有一个普通格式的版本,只是为了好玩:

\def\ealign#1{\def\amp{&}% props to Bruno
  \def\intoalpha##1{\ifcase##1 a\or b\or c\or d\or e\or f\or g\or h\or i\or
    j\or k\or l\or m\or n\or o\or p\or q\or r\or s\or t\ot u\or v\or w\or x\or
    y\or z\else##1\fi} % convert given int < 26 to letter
  \count1=0 % used by plain output for info, let's use it for column count
  \vbox{\openup1\jot % increase (base)lineskip(limit) by 3pt (default)
    \halign to\hsize{% make the horizontal alignment take up full width
      &{\rm\intoalpha{\count1})}\enspace\global\advance\count1 by1% column count
      \mathsurround0pt$\displaystyle##$\tabskip0pt&% every other column resets
      \amp##\tabskip1em plus.5\hsize\crcr#1\crcr}}}% \tabskip to zero, so there
                                                   % is no surplus skip at end

So you see,
$$\ealign{
  \lim_{n\to\infty} {1000n\over n^2+1} &
  \lim_{n\to\infty} \left(\sqrt{n+1}-\sqrt n\,\right) &
  \lim_{n\to\infty} {{\root3\of n}\sin n!\over n+1} \cr
  \lim_{n\to\infty} {(-2)^n+3^n\over(-2)^{n+1}+3^{n+1}}
}$$
and that's that. However, if you'd like to have it indented, you could
$$\tabskip\parindent\ealign{
  \lim_{n\to\infty} {1000n\over n^2+1} &
  \lim_{n\to\infty} \left(\sqrt{n+1}-\sqrt n\,\right) &
  \lim_{n\to\infty} {{\root3\of n}\sin n!\over n+1} \cr
  \lim_{n\to\infty} {(-2)^n+3^n\over(-2)^{n+1}+3^{n+1}}
}$$
is the same thing, only a second time.
\bye

好像:
在此处输入图片描述

相关内容