如果幻灯片以方程式开头,则从幻灯片标题下方开始

如果幻灯片以方程式开头,则从幻灯片标题下方开始

在 beamer 中,当我用公式开始一张幻灯片时,当幻灯片写满时,幻灯片将从幻灯片标题下方开始。

在此处输入图片描述

当我用文本开始幻灯片时,当幻灯片写满时,文本会从幻灯片标题下方开始,非常少。我希望即使是方程式也能这样。

在此处输入图片描述

本示例的完整源代码:

% Preview source code
%% LyX 2.3.3 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[english]{beamer}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}

\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
% this default might be overridden by plain title style
\newcommand\makebeamertitle{\frame{\maketitle}}%
% (ERT) argument for the TOC
\AtBeginDocument{%
  \let\origtableofcontents=\tableofcontents
  \def\tableofcontents{\@ifnextchar[{\origtableofcontents}{\gobbletableofcontents}}
  \def\gobbletableofcontents#1{\origtableofcontents}
}

\makeatother

\usepackage{babel}
\begin{document}
\begin{frame}{A}

\[
1
\]

\begin{itemize}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\end{itemize}
\end{frame}

\begin{frame}{B}

1
\begin{itemize}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\end{itemize}
\end{frame}
\end{document}

这个问题可能听起来类似如果我输入方程式而不是文本,框内会出现奇怪的间隙但这个问题是一个盒子内的空白。

答案1

LaTeX 及其 documentclass 作者为几乎所有内容添加了默认间距。公式周围的默认间距与普通文本周围的间距不同。每当您遇到这样的间距问题时,最好的办法就是搜索(我使用谷歌)如何撤消该特定间距。对于您的情况,我们需要通过执行以下两个步骤来撤消/删除两种间距:

(1)删除方程式周围的多余垂直间距:在序言中添加以下几行应该可以删除方程式上方和下方的多余垂直间距。

\makeatletter
\g@addto@macro\normalsize{%
  \setlength\abovedisplayskip{-8pt}
  \setlength\belowdisplayskip{-8pt}
  \setlength\abovedisplayshortskip{-8pt}
  \setlength\belowdisplayshortskip{-8pt}
}
\makeatother

注意:此处选择的数量-8pt取决于字体大小。因此,如果您更改字体大小,则也必须更新它。要获得有关此内容的进一步说明,请查看此链接关于删除方程式周围的垂直空间

(2)将方程式刷新到文本左边距:为此,您需要在aligned环境中写下所有方程式,如下所示:

$\begin{aligned}
1
\end{aligned}$

而不是像这样:

\[
1
\]

如需进一步解释,请查看此链接关于左对齐方程式

在调试时,如果你想要可视化空间,可以使用一个名为 lua-visual-debug 的优秀 lualatex 包这里。以下是使用 lualatex 可视化空间的完整代码。注意:上述解决方案适用于所有引擎(不仅仅是 lualatex),以下代码仅供进一步学习,以防您想可视化空间并亲自查看。

从命令行运行命令:>> lualatex <filename>.tex或检查是否可以在 LyX 中选择 lualatex 作为 latex 引擎。首先按原样运行它,然后通过注释/删除我建议添加的行来运行它并比较 pdf 输出。要了解标记,请查看lua-visual-调试

% Edited LyX code only for visualization of spaces with lua-visual-debug.

\documentclass[english]{beamer}
%\usepackage[T1]{fontenc}
%\usepackage[latin9]{inputenc}
\usepackage{lua-visual-debug}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}

\makeatletter
\g@addto@macro\normalsize{%
  \setlength\abovedisplayskip{-8pt}
  \setlength\belowdisplayskip{-8pt}
  \setlength\abovedisplayshortskip{-8pt}
  \setlength\belowdisplayshortskip{-8pt}
}
\makeatother



\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
% this default might be overridden by plain title style
\newcommand\makebeamertitle{\frame{\maketitle}}%
% (ERT) argument for the TOC
\AtBeginDocument{%
  \let\origtableofcontents=\tableofcontents
  \def\tableofcontents{\@ifnextchar[{\origtableofcontents}{\gobbletableofcontents}}
  \def\gobbletableofcontents#1{\origtableofcontents}
}

\makeatother

\usepackage{babel}
\begin{document}
\begin{frame}{A}

$\begin{aligned}
1
\end{aligned}$

\begin{itemize}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\end{itemize}
\end{frame}

\begin{frame}{B}

1
\begin{itemize}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\item {\Huge{}dd}{\Huge\par}
\end{itemize}
\end{frame}
\end{document}

相关内容