带有 setspace 的脚本中存在较大间隙的问题

带有 setspace 的脚本中存在较大间隙的问题

scrreprt我使用带有选项的documentclass twoside。因此,LaTeX 会尝试拉伸整个页面上的内容,而不是在页面底部留下间隙。这有时会产生很大的间隙。这是我能够产生的最极端的情况(请注意校样顶部和下方的间隙):

在此处输入图片描述

我发现这些差距完全可以接受。然而,当我包含包时setspace,我经常不得不处理更大的差距,正如我在以下示例中能够产生的:

在此处输入图片描述

是否有可能避免这些差距并仍然使用scrreprtsetspace?这是产生巨大差距的代码。

\documentclass[twoside=true]{scrreprt}

\usepackage{setspace}
\usepackage{amsthm}
\newtheorem{prop}{Proposition}[section]
\usepackage{amsmath}
\usepackage{blindtext}

\begin{document}

    \begin{prop}
        \label{itExists2}
        This is a non-sense proof to show that I have 
        serious problems with the geometry and setspace package!
    \end{prop} 
    \begin{proof}
        \begin{align*}
        1 \\    2\\ 3\\ 4\\ 5\\6\\
        \end{align*}
        Hi
        \[ 1+ 1 =2\]
    \end{proof} 

    \blindtext\blindtext

    Some nice equations:
    \begin{align*}      
        1 +1 = 2 \\1+1 =3 \\    1+1 =3 \\1+1 =3 \\  1+1 =3 \\1+1 =3 
    \end{align*}
\end{document}

如果所有内容都适合页面,则看起来如下: 在此处输入图片描述

答案1

根据你问题的评论,似乎只有一种可能性:

更改两个方程块之间的文本长度。我使用包blindtext将一些(更多)虚拟文本放入您的 MWE。我使用包showframe来可视化生成的打字区域和边距。

在@cfr 的评论之后,我查看了 KOMA-Script 手册并在那里找到了 KOMA-Script 作者 Markus Kohm 提供的完整示例(德文版第 2 章第 40 页),用于最佳地使用setspaceKOMA-Script 和一些使用包的提示scrhack(德文版第 16 章第 333 页)。

所有这些导致了以下编辑的 MWE(相关行标有<=========,请参阅 MWE 中的注释):

\documentclass[%
  twoside=true, % 
  DIV=calc,     % KOMA-Script calculated best values <==================
  paper=a4,     % papersize
]{scrreprt}     % scrbook scrreprt

\usepackage[%  <========================================================
% setspace=false, % no correction for setspace, uncomment, if wanted
]{scrhack} % see KOMA-Script guide, chapter 16.4
% see chapter 2, page 40 (German version) for example by M. Kohm
\usepackage[onehalfspacing]{setspace}% load package <===================
\AfterTOCHead{\singlespacing} % header with singlespace <===============
\KOMAoptions{DIV=last}% <================= recalculate, knowing setspace

\usepackage{amsthm}
\newtheorem{prop}{Proposition}[section]
\usepackage{amsmath}

\usepackage{blindtext} % creates dummy text, dummy document
\usepackage{showframe} % <=====================================
%\raggedbottom         % <=====================================


\begin{document}

\begin{prop}
  \label{itExists2}
  This is a non-sense proof to show that I have 
  serious problems with the geometry and setspace package!
\end{prop} 
\begin{proof}
  \begin{align*}
    1\\
    2\\
    3\\
    4\\
    5\\
    6\\
  \end{align*}
  Hi
  \[ 1+ 1 =2 \]%\qedhere
\end{proof} 

\blindtext\blindtext%\blindtext %=====================================

Some nice equations:
\begin{align*}      
  1 +1 = 2 \\
  1+1 =3 \\    
  1+1 =3 \\
  1+1 =3 \\  
  1+1 =3 \\
  1+1 =3 
\end{align*}
\Blindtext %=====================================
\end{document}

结果第一页如下:

生成第一页

答案2

您需要注意 KOMA 类的工作方式。这些类用于typearea布局页面,它们依靠所掌握的信息来做出有关该布局的正确决策。

setspace以 KOMA 需要知道的方式更改事物。如手册中所述,您需要在加载包并更改间距(如果适用)后重新计算布局。您还应该以特定方式更改文档特定部分的间距,并在任何更改后再次重新计算。有关详细信息,请参阅文档。

以下是一个让 KOMA 适当布局页面的示例。如果您希望使用其他布局,请参阅文档以了解各种可能性的详细信息。

\documentclass[twoside=true,DIV=calc,a4paper]{scrreprt}% tell KOMA to calculate the page layout based on its default algorithm
\usepackage{setspace}% load package
% any changes to line spacing go here e.g. \doublespacing or whatever
\KOMAoptions{DIV=last}% recalculate the layout in light of the changes just made
\usepackage{amsthm}
\newtheorem{prop}{Proposition}[section]
\usepackage{amsmath}
\usepackage{blindtext}

\begin{document}
  hi\newpage% this is just so that we can see a double-page spread
\begin{prop}
  \label{itExists2}
  This is a nonsense proof to show that I have
  no problems at all with typearea and the setspace package!
\end{prop}
\begin{proof}
  \begin{align*}
    1 \\    2\\ 3\\ 4\\ 5\\6\\
  \end{align*}
  Hi
  \[ 1+ 1 =2\]
\end{proof}

\blindtext\blindtext

Some nice equations:
\begin{align*}
  1 +1 = 2 \\1+1 =3 \\    1+1 =3 \\1+1 =3 \\  1+1 =3 \\1+1 =3
\end{align*}
\end{document}

结果:

让 KOMA 做正确的事情

这里的诀窍是让 KOMA 按照设计完成任务,方法是向它提供足够的信息,以便它对布局做出合理的决定。KOMA 套件的一个关键特性就是它typearea被设计成可以很好地完成这一任务。

相关内容