Я пытаюсь выяснить, почему \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}