我試圖弄清楚為什麼\newenvironment
每當環境內容長於一頁時就會將環境標題推到頁面底部。下面是一個例子。我希望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}