写出序列项的最佳方式是什么,以某种方式像这样,但最好是对齐的?
有没有办法自动根据方程生成项,即序列 (3) 中的 n²?
如果是这样,那么如何才能写出术语和它们的索引之间的关系,如下所示:
答案1
以下是自动生成。“对齐”的含义不清楚。因此我采用了各种方法。
\documentclass[a4paper]{article}
\usepackage[hscale=0.8]{geometry}
\usepackage{amsmath}
\usepackage{xintexpr}
\usepackage{array}
\makeatletter
\let\gobble\@gobble
\makeatother
\begin{document}
\begin{align}
\xinttheexpr seq(2^n, n=0..15)\relax, \dots\\
%
\xinttheexpr seq(2n+1, n=2..17)\relax, \dots\\
%
\xinttheexpr seq(n^2, n=1..16)\relax, \dots\\
%
\edef\L{\xinttheiiexpr seq(subs((n=m^2)?{m}{-n}, m=sqrt(n)), n=1..16)\relax}%
\xintFor #1 in \L\do{\ifnum #1<0 \sqrt{\gobble #1}\else #1\fi, }\dots\\
%
\edef\L{\xinttheexpr seq(n/(n+1), n=1..16)\relax}%
\xintFor #1 in \L\do{\xintFrac {#1}, }\dots\\
%
\xinttheexpr rseq(2; @-2, i=1..15)\relax, \dots\\
1%
\edef\L{\xinttheexpr seq(1/n, n=1..16)\relax}%
\xintFor #1 in \L\do {\xintFrac{#1}, }\dots\\
%
\edef\L{\xinttheexpr seq(n, n=1..16)\relax}%
\xintFor #1 in \L\do{\ifodd #1 #1\else\xintFrac{1/#1}\fi, }\dots\\
%
\edef\L{\xinttheexpr seq((1/n,-1/n),n=1..[2]..16)\relax}%
\xintFor #1 in \L\do{\xintSignedFrac{#1}, }\dots\\
%
\edef\L{\xinttheexpr seq((1/n,(n+1)/(n+2)), n=1..[2]..16)\relax}%
\xintFor #1 in \L\do{\xintFrac{#1}, }\dots\\
%
\edef\L{\xinttheexpr seq(x, x=1..12)\relax}%
\xintFor #1 in \L\do
{\begin{smallmatrix}
\xinttheexpr 2^(#1-1)\relax\\\uparrow\\ #1
\end{smallmatrix}\;}%
\begin{smallmatrix}
\dots\\ \\\dots
\end{smallmatrix}\;%
\begin{smallmatrix}
2^{n-1}&\dots&\text{ (terms of the sequence)}\hfill\\
\uparrow &&\\
n&\dots&\text{ (position numbers of the terms)}
\end{smallmatrix}\\
%
\edef\L{\xinttheexpr rseq(1; @+i^2, i=2..16)\relax}%
\edef\M{\xinttheexpr seq(reduce(n(n+1)(2n+1)/6), n=1..16)\relax}%
\edef\N{\xinttheexpr seq(n, n=1..16)\relax}%
\def\arraystretch{1.5}%
\begin{array}{*{17}c}
\xintFor #1 in \L\do{#1&}\sum_{i=1}^n i^2\\
\xintFor #1 in \M\do{#1&}\frac{n(n+1)(2n+1)}{6}\\
\xintFor #1 in \N\do{#1&}n\\
\end{array}
\end{align}
\end{document}
仅在需要进行某些格式化时才使用\xintFor
,例如,当打印分数A/B
不够时\frac{A}{B}
,或者当想要用制表位替换逗号以便对齐时。
技术说明:\xintFor
使用逗号分隔值;列表可以封装在宏中,但此宏仅扩展一次。因此,为简单起见,我们首先通过\edef
(我们可以使用\romannumeral-`0
前缀)构造列表。
第二个技术提示:如果发现平方根列表 (4) 不是完全平方数,则使用技巧在数字前加上一个符号。然后格式化检查这个符号。
OP 中编号为 (10) 的列表似乎有问题。我不明白4/4
。不过,A4/5
与其他列表很契合。
答案2
使用align
amsmath 包提供的环境:
编号:
\begin{align} % or \[\begin{aligned}
1, && 2, && 4, && 8, && 16, && 32, && 64, && 128, && \ldots \\
1, && \sqrt2, && \sqrt3, && 2, && \sqrt5, && \sqrt6, && \sqrt7, && 2\sqrt2, && \ldots
\end{align} % or \end{aligned}\]
未编号:
\begin{align*} % or \[\begin{aligned}
1, && 2, && 4, && 8, && 16, && 32, && 64, && 128, && \ldots \\
1, && \sqrt2, && \sqrt3, && 2, && \sqrt5, && \sqrt6, && \sqrt7, && 2\sqrt2, && \ldots
\end{align*} % or \end{aligned}\]
该align
环境替代了\[ ... \]
和 等效环境。如果您仍需要\[ ... \]
,可以使用aligned
其中的环境。
双&
s 是实现良好对齐的必要条件。实际上,每个数字之间都有一个空白列(列交替使用右对齐和左对齐,我们跳过一种对齐方式。)如果您愿意,可以将逗号放在空白列中,而不是放在数字后面。
如果您想要箭头,只需像数字一样直接添加它们:
\begin{align*} % or \[\begin{aligned}
1 &,& 2 &,& 4 &,& 8 &,& 16 &,& 32 &,& \ldots && 2^{n-1} && \ldots & \quad\text{(terms of the sequence)} \\
\uparrow && \uparrow && \uparrow && \uparrow && \uparrow && \uparrow && && \uparrow \\
1 &,& 2 &,& 3 &,& 4 &,& 5 &,& 6 &,& \ldots && n && \ldots & \quad\text{(position numbers of the terms)}
\end{align*} % or \end{aligned}\]
请随意查看 amsmath 文档以了解有关align
环境的更多信息。
以下是这三段代码的运行结果:
答案3
(当我提出不同的方法时,我会写一个新的答案。)
可以将示例视为表格,或者更准确地说,在数学模式下,视为数组。我认为尤其是最后一个:
因此,使用array
环境,您可以更精确、更轻松地控制每列的对齐方式。以下是如何重现术语与其索引之间的关系:
\[\begin{array}{cccccccccl}
1 & 2 & 4 & 8 & 16 & 32 & \ldots & 2^{n-1} & \ldots & \text{...} \\
\uparrow & \uparrow & \uparrow & \uparrow & \uparrow & \uparrow & & \uparrow & & \\
1 & 2 & 3 & 4 & 5 & 6 & \ldots & n & \ldots & \text{...}
\end{array}\]
这里我使用了c
-type 列,但要复制上面的图片,您将需要l
-type 列。