我想生成一个 LaTeX 文档,生成伸缩级数 sum(1/k-1/(1+k)) 的前 N 项,其中 k=1,2,3...,N,以便至少显示前 10 项。我希望输出格式为 (1-1/2)+(1/2-1/3)+.....+(1/10-1/11)
我怎样才能实现这个目标?
答案1
困难不在于生产它,而在于印刷它。
这里有一种方法;为了打印十个项,我们需要两行,我决定让 TeX 来处理拆分。该\telescope
命令是通用的,通过重新定义,\Term
您可以打印其他类似的系列。
\documentclass{article}
\usepackage{xparse,amsmath}
\ExplSyntaxOn
\NewDocumentCommand{\telescope}{m}
{
\Term{1}
\int_step_inline:nnnn { 2 } { 1 } { #1 }
{
+\Term{##1}
}
}
\ExplSyntaxOff
\newcommand{\Term}[1]{%
{\biggl(
\ifnum#1=1
1
\else
\dfrac{1}{#1}
\fi
-
\dfrac{1}{\number\numexpr#1+1}
\biggr)}
}
\begin{document}
Here are ten terms
\[
\begin{minipage}{.9\displaywidth}
\linespread{2.5}\selectfont
\raggedright
\leftskip=2em\hspace*{-2em}
$
\telescope{10}
$
\end{minipage}
\]
and here are twenty-five
\[
\begin{minipage}{.9\displaywidth}
\linespread{2.5}\selectfont
\raggedright
\leftskip=2em\hspace*{-2em}
$
\telescope{25}
$
\end{minipage}
\]
\end{document}
答案2
egreg 先到了那里,但是:
\documentclass{article}
\newcommand\term[1]{%
{(\ifnum#1=1 1 \else\frac{1}{#1}\fi
-
\frac{1}{\the\numexpr#1+1\relax})}}
\newcommand\xsum[1]{%
\term{#1}%
\ifnum#1<10
+
\expandafter\xsum\expandafter{\the\numexpr#1+1\relax}%
\fi}
\begin{document}
$
\xsum{1}
$
\end{document}
答案3
这是另一个答案,提出了一个替代非常好的 egreg 答案的替代方案:
\documentclass{article}
\newcounter{temp}
\usepackage{pgffor}
\begin{document}
$\sum_{k=1}^N \left(\frac{1}{k}-\frac{1}{k+1} \right) = \left(1-\frac{1}{2}\right)
\foreach \n in {2,...,10}
{\setcounter{temp}{\n}\stepcounter{temp} +\left(\frac{1}{\n}-\frac{1}{\arabic{temp}} \right)}
+\dots+\left(\frac{1}{N}-\frac{1}{N+1}\right)$
\end{document}
它基于包\foreach
中的一个循环pgffor
。
下面是它的输出
编辑使用 Tobi 的提示,MWE 的更好版本将是:
\documentclass{article}
\usepackage{pgffor}
\begin{document}
$\sum_{k=1}^N \left(\frac{1}{k}-\frac{1}{k+1} \right) = \left(1-\frac{1}{2}\right)
\foreach \n [remember=\n as \lastn (initially 2)] in {3,...,11}
{+\left(\frac{1}{\lastn}-\frac{1}{\n} \right)}
+\dots+\left(\frac{1}{N}-\frac{1}{N+1}\right)$
\end{document}