我想弄清楚为什么\newenvironment
当环境内容超过 1 页时,环境标题会下移到页面底部。以下是示例。我希望环境中的标题longabstract
表现得像shortabstract
(即标题和内容保持在同一页面上)。
\documentclass[12pt]{book}
\usepackage{setspace}
\usepackage{lipsum}
\begin{document}
\clearpage
\newenvironment{shortabstract}%
{\cleardoublepage\thispagestyle{empty}\null\vfill\begin{center}%
\bfseries \LARGE Short Abstract \end{center}}%
{\vfill\null}
\setstretch{1.5}
\begin{shortabstract}
\lipsum[1]
\end{shortabstract}
\newenvironment{longabstract}%
{\cleardoublepage\null\vfill\begin{center}%
\bfseries \LARGE Long Abstract\end{center}}%
{\vfill\null}
\begin{longabstract}
\lipsum[2-5]
\end{longabstract}
\end{document}
任何帮助深表感谢。
长的
答案1
我猜测它的longabstract
长度应该超过一页,因此将其放在页面中央是没有意义的。
环境的定义应该放在前言中。避免使用您不了解的命令(例如),\null
而应使用标准 LaTeX 命令。
此处的简短摘要垂直居中;\vspace*{\fill}
如果希望它与顶部边距齐平,请删除前导。
\documentclass[12pt]{book}
\usepackage{setspace}
\usepackage{lipsum}
\newenvironment{shortabstract}
{\cleardoublepage\thispagestyle{empty}\vspace*{\fill}\begin{center}%
\bfseries \LARGE Short Abstract\end{center}}%
{\vspace*{\fill}\cleardoublepage}
\newenvironment{longabstract}
{\cleardoublepage\begin{center}%
\bfseries \LARGE Long Abstract\end{center}}%
{\cleardoublepage}
\setstretch{1.5}
\begin{document}
\begin{shortabstract}
\lipsum[1]
\end{shortabstract}
\begin{longabstract}
\lipsum[2-5]
\end{longabstract}
\end{document}
答案2
感谢@UlrikeFischer 的评论,我现在找到了答案:只需在这些环境中删除开头的 \vfill 即可。
\documentclass[12pt]{book}
\usepackage{setspace}
\usepackage{lipsum}
\begin{document}
\clearpage
\newenvironment{shortabstract}%
{\cleardoublepage\thispagestyle{empty}\null\begin{center}%
\bfseries \LARGE Short Abstract \end{center}}%
{\vfill\null}
\setstretch{1.5}
\begin{shortabstract}
\lipsum[1]
\end{shortabstract}
\newenvironment{longabstract}%
{\cleardoublepage\null\begin{center}%
\bfseries \LARGE Long Abstract\end{center}}%
{\vfill\null}
\begin{longabstract}
\lipsum[2-5]
\end{longabstract}
\end{document}