![宽公式上方的垂直空间过多](https://linux22.com/image/474422/%E5%AE%BD%E5%85%AC%E5%BC%8F%E4%B8%8A%E6%96%B9%E7%9A%84%E5%9E%82%E7%9B%B4%E7%A9%BA%E9%97%B4%E8%BF%87%E5%A4%9A.png)
这个问题与如何防止宽方程式有太大的垂直空间?,但那里的答案并未解决我的情况:
\documentclass[9pt]{beamer}
\usepackage[utf8]{inputenc}
\usefonttheme{serif}
\usepackage{tcolorbox}
\tcbuselibrary{magazine}
\tcbuselibrary{theorems}
\colorlet{greendark}{green!60!black}
\colorlet{bluelight}{blue!35!white}
\newtcbtheorem[number within=section]{mycomp}{Computation}%
{colframe=bluelight!60!greendark,enlarge top by=0.15cm,before
skip=3pt,after skip=6.5pt,fonttitle=\slshape,breakable}{comp}
\begin{document}
\begin{mycomp}{Mobius cancellation $G=\log \implies g = \frac 1t$}{mobiuscancellog}
$$\frac{1}{1/x} = x\sum_{d\leq x} \mu(d) \frac {-\log(\frac dx)}d + O\left(\sum_{d\leq x} \mu(d) (\tfrac{1}{d/x}+1))\right).$$
\end{mycomp}
\begin{mycomp}{Mobius cancellation $G=\log^2 \implies g = \frac {2\log t}{t}$}{mobiuscancellog2}
$$\frac{2 \log(\frac 1x)}{1/x} = x\sum_{d\leq x} \mu(d) \frac {-\log^2(\frac dx)}d + O\Big(\sum_{d\leq x} \mu(d) \left[\tfrac{\log(\frac dx)}{d/x}+1\right]\Big)$$
\end{mycomp}
\end{document}
请注意,第二个方程上方的垂直空间比下方更大(比较两张图片中从框顶部到求和符号顶部的距离,以及从求和符号底部到框底部的距离)。
我已确定它必须完全基于宽度:通过删除足够多的第二个方程,它变得更短,它突然看起来又正确了。
有人能提出解决办法吗?
答案1
等式前的垂直空间取决于其长度和前一行的长度。相应的跳过是\abovedisplayskip
和\abovedisplayshortskip
。
在你的情况下,设置
\setlength\abovedisplayshortskip{\abovedisplayskip}
为两个方程提供相同的间距。
出现问题的原因是,您用公式(框中的第一个材料)开始一个段落,而 LaTeX 不支持它。您可以在\noindent
方程式之前解决它。
\documentclass[9pt]{beamer}
\usepackage[utf8]{inputenc}
\usefonttheme{serif}
\usepackage{tcolorbox}
\tcbuselibrary{magazine}
\tcbuselibrary{theorems}
\colorlet{greendark}{green!60!black}
\colorlet{bluelight}{blue!35!white}
\newtcbtheorem[number within=section]{mycomp}{Computation}%
{colframe=bluelight!60!greendark,enlarge top by=0.15cm,before
skip=3pt,after skip=6.5pt,fonttitle=\slshape,breakable}{comp}
\begin{document}
\begin{mycomp}{Mobius cancellation $G=\log \implies g = \frac 1t$}{mobiuscancellog}
\noindent
\[\frac{1}{1/x} = x\sum_{d\leq x} \mu(d) \frac {-\log(\frac dx)}d + O\left(\sum_{d\leq x} \mu(d) (\tfrac{1}{d/x}+1))\right).\]
\end{mycomp}
\begin{mycomp}{Mobius cancellation $G=\log^2 \implies g = \frac {2\log t}{t}$}{mobiuscancellog2}
\noindent
\[\frac{2 \log(\frac 1x)}{1/x} = x\sum_{d\leq x} \mu(d) \frac {-\log^2(\frac dx)}d + O\Big(\sum_{d\leq x} \mu(d) \left[\tfrac{\log(\frac dx)}{d/x}+1\right]\Big)\]
\end{mycomp}
\end{document}
我$$
按照\[...\]
Mico 的建议进行了替换。
答案2
当需要显示脱离上下文的单个方程式时,(La)TeX 确实不太方便。
我建议为这种情况定义一个特定的环境,这样您就可以通过设置强制“显示前的行”(实际上并不存在)变短\predisplaysize=0pt
。
\documentclass[9pt]{beamer}
\usefonttheme{serif}
\usepackage{tcolorbox}
\tcbuselibrary{magazine}
\tcbuselibrary{theorems}
\colorlet{greendark}{green!60!black}
\colorlet{bluelight}{blue!35!white}
\newtcbtheorem[number within=section]{mycomp}{Computation}{
colframe=bluelight!60!greendark,
enlarge top by=0.15cm,
before skip=3pt,
after skip=6.5pt,
fonttitle=\slshape,
breakable
}{comp}
\newenvironment{equation-}{\[}{\predisplaysize=0pt\]}
\begin{document}
\begin{mycomp}{Mobius cancellation $G=\log \implies g = \frac 1t$}{mobiuscancellog}
\begin{equation-}
\frac{1}{1/x} = x\sum_{d\leq x} \mu(d) \frac {-\log(\frac dx)}d
+ O\biggl(\,\sum_{d\leq x} \mu(d) (\tfrac{1}{d/x}+1))\biggr).
\end{equation-}
\end{mycomp}
\begin{mycomp}{Mobius cancellation $G=\log^2 \implies g = \frac {2\log t}{t}$}{mobiuscancellog2}
\begin{equation-}
\frac{2 \log(\frac 1x)}{1/x} = x\sum_{d\leq x} \mu(d) \frac {-\log^2(\frac dx)}d
+ O\biggl(\,\sum_{d\leq x} \mu(d) \Bigl[\tfrac{\log(\frac dx)}{d/x}+1\Bigr]\biggr)
\end{equation-}
\end{mycomp}
\end{document}
请注意我为了避免分隔符尺寸不当和冲突而做出的细微改动(就顶部和底部间距而言,它们并不相关)。
如果需要进行对齐以作为脱离上下文的显示,请使用aligned
inside equation-
。