\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
は 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}