我写了以下乳胶
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\renewcommand{\P}{\mathcal{P}}
\date{May 2019}
\begin{document}
\begin{align*}
&H_{n + 1}= \\
&-\sum_{x_{n + 1}} \P(x_{n + 1} | x_n) \sum_{x_1, x_2, \dots, x_{n}} \P(x_1, x_2, \dots, x_n) \log(\P(x_1, x_2, \dots, x_n)\P(x_{n + 1} | x_n)) =\\
&-\sum_{x_{n + 1}} \P(x_{n + 1} | x_n) \sum_{x_1, x_2, \dots, x_{n}} \P(x_1, x_2, \dots, x_n) (\log(\P(x_1, x_2, \dots, x_n)) + \log(\P(x_{n + 1} | x_n))) =\\
&-\sum_{x_{n + 1}} \P(x_{n + 1} | x_n) H_n - \sum_{x_1, x_2, \dots, x_{n + 1}} \P(x_1, x_2, \dots, x_{n + 1}) \log(\P(x_{n + 1} | x_n))) =
\end{align*}
\end{document}
这给了我一个水平盒子过满的警告。有没有办法自动缩小每一行,使其适合水平盒子?
注意:我愿意接受一个告诉我如何缩小对齐内容中的所有内容的解决方案,但我更喜欢一个可以自动动态缩小每一行的答案,并且我很乐意接受一个可以解释如何同时完成这两件事的答案。
答案1
最简单的解决方案是加载geometry
包,获得更合理的边距并使用命令\smashoperator
(mathtools
在这种情况下无需加载 amsmath)。如果没有几何图形,您将不得不打破第二行,例如multlined
:
\documentclass{article}
\usepackage{showframe}
\renewcommand*{\ShowFrameLinethickness}{0.3pt}
\usepackage[utf8]{inputenc}%
\usepackage{mathtools}
\renewcommand{\P}{\mathcal{P}}
\date{May 2019}
\begin{document}
\begin{align*}
&H_{n + 1}= \\
&-\sum_{x_{n + 1}} \P(x_{n + 1}\mid x_n) \smashoperator{\sum_{x_1, x_2, \dots, x_{n}}} \P(x_1, x_2, \dots, x_n) \log(\P(x_1, x_2, \dots, x_n)\P(x_{n + 1} \mid x_n)) =\\
&-\begin{multlined}\smash[b]{\sum_{x_{n + 1}}} \P(x_{n + 1}\mid x_n) \smash[b]{\smashoperator{\sum_{x_1, x_2, \dots, x_{n}}}} \P(x_1, x_2, \dots, x_n)\bigl (\log(\P(x_1, x_2, \dots, x_n)) \\+ \log(\P(x_{n + 1}\mid x_n))\bigr) =
\end{multlined}\\
&-\sum_{x_{n + 1}} \P(x_{n + 1}\mid x_n) H_n -\smashoperator{ \sum_{x_1, x_2, \dots, x_{n + 1}}} \P(x_1, x_2, \dots, x_{n + 1}) \log(\P(x_{n + 1}\mid x_n))) =
\end{align*}
\end{document}
不相关:我用|
概率替换了出现的概率,以\mid
获得更好的水平间距。