![如何避免在对齐方程式时出现空白/避免因填满页面而浪费纸张?](https://linux22.com/image/416429/%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E5%9C%A8%E5%AF%B9%E9%BD%90%E6%96%B9%E7%A8%8B%E5%BC%8F%E6%97%B6%E5%87%BA%E7%8E%B0%E7%A9%BA%E7%99%BD%2F%E9%81%BF%E5%85%8D%E5%9B%A0%E5%A1%AB%E6%BB%A1%E9%A1%B5%E9%9D%A2%E8%80%8C%E6%B5%AA%E8%B4%B9%E7%BA%B8%E5%BC%A0%EF%BC%9F.png)
我经常在 LaTeX 上编写代码,但我不太了解如何在数学模式下正确安排工作空间。虽然后者听起来很模糊,但我指的是这样的:
Find the value of
\begin{align*}
\mathbb{L} = \int_0^1 \sum_{k\geq1}\psi^{(1)}(n)x^n\ \mathrm{d}x.
\end{align*}
Solution. It is known that $\sum_{k\geq1}\psi^{(1)}(n)x^n := \frac{x}{1-x}\left(\zeta(2)-\operatorname{Li}_2(x)\right)$ which implies
\begin{align*}
\mathbb{L} &= \int_0^1 \frac{x}{1-x}\left(\zeta(2)-\operatorname{Li}_2(x)\right)\ \mathrm{d}x, \\
&= -\int_0^1 \left(\zeta(2)-\operatorname{Li}_2(x)\right)\ \mathrm{d}x-\int_0^1 \frac{\zeta(2)-\operatorname{Li}_2(x)}{x}\ \mathrm{d}x, \\
&\stackrel{\text{IBP}}{=} -1+\int_0^1 \frac{\log^2\left(1-x\right)}{x}\ \mathrm{d}x= 2\zeta(3)-1.
\end{align*}
我如何才能将一些方程式(例如 \mathbb{L} 后面的第二行)放在页面中央?有没有更好的方法可以“用数学填满一页”,而不是出现对齐不良和浪费纸张的情况?如果有,我该怎么做?如果有意义的话,我会使用 Overleaf。提前谢谢您!
这里是一个有些相关的问题。
答案1
你问,
有没有更好的方法来用数学“填满一页”,而不是产生糟糕的对齐和浪费纸张?
我不太明白你说的用数学填满一页(没必要?肆意?)是什么意思。以下对代码的修饰可能会提供更精简的外观——以及更易于维护和调试的代码:
不要过度使用
align
和align*
环境。仅将它们用于多行方程式。通过将第一个显示的方程式使用\[...\]
,您实际上会获得更紧凑的排版结果。了解
amsmath
的\DeclareMathOperator
指令。例如,通过\DeclareMathOperator{\Li}{Li}
在序言中运行 ,您可以\operatorname{Li}
将的所有后续实例替换为\Li
。不要过度使用
\left
;\right
通常情况下,他们会不是达到预期目的。例如,在\left(\zeta(2)-\operatorname{Li}_2(x)\right)
、\left
和中\right
,无法增加括号的大小。我要么直接省略它们,要么用\bigl(
和替换它们\bigr)
。如果你写
\stackrel{\text{IBP}}{=}
,=
符号将不是=
与前面几行的符号对齐。我建议您改用\stackrel{\mathclap{\textup{\tiny IBP}}}{=}
。(\mathclap
是包提供的宏mathtools
,是amsmath
包的超集。)使用专用的宏 -- 通过
\newcommand{\diff}{\mathop{}\!\mathrm{d}}
-- 定义来排版微分算子。\dfrac
在材料中使用Solution.
同样,使用\coloneqq
代替:=
。 (后者不会自动定义为具有状态mathrel
。)最后但并非最不重要的一点是,我会
2\zeta(3)-1
单独放一条线。视觉清晰度的提高肯定超过因环境占用空间的微小增加而导致的成本align*
。
\documentclass{article}
\usepackage{mathtools,amssymb} % for \mathclap and \coloneqq macros
\DeclareMathOperator{\Li}{Li}
\newcommand{\diff}{\mathop{}\!\mathrm{d}} % "differential" operator
\begin{document}
\noindent
Find the value of
\[
\mathbb{L} = \int_0^1 \sum_{k\geq1} \psi^{(1)}(n) x^n\diff x.
\]
Solution. It is known that
$\sum_{k\geq1} \psi^{(1)}(n) x^n \coloneqq
\dfrac{x}{1-x}\bigl(\zeta(2)-\Li_2(x)\bigr)$.
This implies
\begin{align*}
\mathbb{L}
&= \int_0^1 \frac{x}{1-x}\bigl(\zeta(2)-\Li_2(x)\bigr)\diff x \\
&= -\int_0^1 \bigl(\zeta(2)-\Li_2(x)\bigr)\diff x
-\int_0^1 \frac{\zeta(2)-\Li_2(x)}{x}\diff x, \\
&\stackrel{\mathclap{\textup{\tiny IBP}}}{=}
-1+\int_0^1 \frac{\log^2(1-x)}{x}\diff x\\
&= 2\zeta(3)-1\,.
\end{align*}
\end{document}