如何在书籍 LaTeX 文档的一页上插入多个摘要?

如何在书籍 LaTeX 文档的一页上插入多个摘要?

我知道abstract通常没有为书籍类别定义,但是您可以自行定义它作为一种解决方法。但是,它似乎总是强制自己进入新页面,即强制摘要占用一页。如果我想为不同的语言添加多个摘要(例如,一个摘要用于撰写论文的语言,另一个摘要用于英语),这就不好了。

以下是简化的代码:

% !TeX program = lualatex
% !BIB TS-program = biber
% !TeX encoding = UTF-8
% !TeX spellcheck = de_DE
\documentclass[12pt,a4paper,notitlepage,numbers=noenddot,oneside]{scrbook}

% deutsch
\usepackage[english, ngerman]{babel}
\usepackage[english, ngerman]{isodate}
\usepackage{lmodern} % font
\usepackage[autostyle, german=quotes]{csquotes} % deutsche Anführungszeichen mit \enquote

% abstract in book, https://tex.stackexchange.com/a/539606/98645
\newenvironment{abstract}{}{}
\usepackage{abstract}

\begin{document}
    \begingroup
    \setstretch{1.0}
    \hypersetup{hidelinks}
    \tableofcontents
    \endgroup
    
    \pagebreak

%   \vfill
    
    \begin{abstract}
        Dies ist ein schöner Beispieltext für einen Abstract für ein Paper darüber, wie Abstracts ohne allzu viel Abstraktion abstrahiert werden können.
    \end{abstract}
    
    \selectlanguage{english}
    \begin{abstract}
        This is a nice example text for an abstract for a paper about how abstracts can be abstracted without too much abstraction.
    \end{abstract}
    \selectlanguage{ngerman}

    % […]
\end{document]

这样一来,它就迫使新页面为了每个摘要。我曾尝试过重新定义抽象的开始和结束,但通过使用那里的代码并添加一些\vfill,我可以将其放在一页上,但之后它就不再垂直居中了。我也测试过onecolabstract而不是使用abstractenv,但没有什么区别。抽象包根据它的文档,这里似乎也没有提供任何有用的选项。

是的我见过这个问题,但它是关于具有样式的文档report,其中摘要显然从未放在单个页面上,相应地abstract包不会强制分页。因此,那里的答案只是围绕如何将标题放在同一页面上等。

顺便说一句,不,切换到另一种 LaTeX 风格不是解决方案——显然,我想要这种书的风格是出于其他原因。

基本上我的目标可以总结如下:我想两篇摘要,每页并让它们居中,就像一页中只有一个摘要一样。

答案1

abstract您可以使用from的精简版本scrartcl

% !TeX program = lualatex
% !BIB TS-program = biber
% !TeX encoding = UTF-8
% !TeX spellcheck = de_DE
\documentclass[12pt,a4paper,notitlepage,numbers=noenddot,oneside]{scrbook}

% deutsch
\usepackage[english, ngerman]{babel}
\usepackage[english, ngerman]{isodate}
\usepackage{lmodern} % font
\usepackage[autostyle, german=quotes]{csquotes} % deutsche Anführungszeichen mit \enquote

\makeatletter
\newif\if@abstractlanguage
\newenvironment{abstract}[1][]
 {%
  \par\addvspace{3\baselineskip} % adjust to suit
  \if\relax\detokenize{#1}\relax
    \else\@abstractlanguagetrue
    \begin{otherlanguage}{#1}%
  \fi
  \begin{center}
  \normalfont\sectfont
  \nobreak\abstractname\@endparpenalty\@M\end{center}
  \begin{quotation}
 }
 {%
  \end{quotation}%
  \if@abstractlanguage\end{otherlanguage}\fi
 }
\makeatother


\begin{document}

\begin{abstract}
Dies ist ein schöner Beispieltext für einen Abstract für ein Paper darüber, 
wie Abstracts ohne allzu viel Abstraktion abstrahiert werden können.
\end{abstract}
    
\begin{abstract}[english]
This is a nice example text for an abstract for a paper about how abstracts 
can be abstracted without too much abstraction.
\end{abstract}

\end{document}

在此处输入图片描述

如果您想将它们置于页面中央,您可以定义一个包装器环境:

% !TeX program = lualatex
% !BIB TS-program = biber
% !TeX encoding = UTF-8
% !TeX spellcheck = de_DE
\documentclass[12pt,a4paper,notitlepage,numbers=noenddot,oneside]{scrbook}

% deutsch
\usepackage[english, ngerman]{babel}
\usepackage[english, ngerman]{isodate}
\usepackage{lmodern} % font
\usepackage[autostyle, german=quotes]{csquotes} % deutsche Anführungszeichen mit \enquote

\makeatletter
\newif\if@abstractlanguage
\newenvironment{abstracts}{\cleardoublepage\vspace*{\fill}}{\vspace*{\fill}}
\newenvironment{abstract}[1][]
 {%
  \par\addvspace{3\baselineskip} % adjust to suit
  \if\relax\detokenize{#1}\relax
    \else\@abstractlanguagetrue
    \begin{otherlanguage}{#1}%
  \fi
  \begin{center}
  \normalfont\sectfont
  \nobreak\abstractname\@endparpenalty\@M\end{center}
  \begin{quotation}
 }
 {%
  \end{quotation}%
  \if@abstractlanguage\end{otherlanguage}\fi
 }
\makeatother


\begin{document}

\begin{abstracts}

\begin{abstract}
Dies ist ein schöner Beispieltext für einen Abstract für ein Paper darüber, 
wie Abstracts ohne allzu viel Abstraktion abstrahiert werden können.
\end{abstract}
    
\begin{abstract}[english]
This is a nice example text for an abstract for a paper about how abstracts 
can be abstracted without too much abstraction.
\end{abstract}

\end{abstracts}

\end{document}

在此处输入图片描述

相关内容