命令 `\null\vfill` 导致内容被推到页面底部

命令 `\null\vfill` 导致内容被推到页面底部

我需要帮助解决下面的代码。

如果内容占不到一页,我想将摘要放在页面中间,否则从页面顶部开始,或者可能略低于页面顶部。目前,标题和下一个环境被推到底部,而center所有其他段落从下一页开始。

\documentclass{article}
\usepackage[latin]{babel}
\usepackage{lipsum}

\begin{document}

\section{Introduction}

%%%%%%%%%% ABSTRACT %%%%%%%%%%
\clearpage

\vspace*{\fill}

\noindent {\Huge \bfseries Abstract \par}

\vspace{\baselineskip}
 
\begin{center}
    \MakeUppercase{TITLE EXAMPLE} \linebreak
    Subtitle \linebreak
    \MakeUppercase{Author} \linebreak
\end{center}

\vspace{\baselineskip}

\noindent
\lipsum[1-4]

\lipsum[5-8]

\lipsum[9-14]   % pushes abstract title down
% \lipsum[1-3]                                         % working

\vspace*{\fill}

\clearpage
长摘要 摘要
在此处输入图片描述 在此处输入图片描述

答案1

据我所知,您希望除第 2 页以外所有页面的底部都参差不齐,第 2 页应居中,因此

短的

在此处输入图片描述

长的

在此处输入图片描述

\documentclass{article}
\usepackage[latin]{babel}
\usepackage{lipsum}

\begin{document}

\section{Introduction}

%%%%%%%%%% ABSTRACT %%%%%%%%%%
\clearpage

\makeatletter
\def\@texttop{%
    \ifnum\value{page}=2 \vfill \fi}
\def\@textbottom{\vfill}
\makeatother

\noindent {\Huge \bfseries Abstract \par}

\vspace{\baselineskip}
 
\begin{center}
    \MakeUppercase{TITLE EXAMPLE} \linebreak
    Subtitle \linebreak
    \MakeUppercase{Author} \linebreak
\end{center}

\vspace{\baselineskip}

\noindent
\lipsum[1]

\lipsum[5-8]

%\lipsum[9-14]   % pushes abstract title down
%\lipsum[1-3]                                         % working



\end{document}

答案2

我可能错了(我过去也犯过错误)但我没有看到任何简单的方法可以根据文本的长度自动更改页面布局。

我建议您为长摘要和短摘要定义两个抽象环境。

% abstractprob.tex  SE 629406

\documentclass{article}
\usepackage[latin]{babel}
\usepackage{lipsum}

\newenvironment{shortabstract}{\mbox{}\vfill}{\vfill\mbox{}}
\newenvironment{longabstract}{}{}

\begin{document}

\section{Introduction}

%%%%%%%%%% ABSTRACTS %%%%%%%%%%
\clearpage

\begin{longabstract}
\noindent {\Huge \bfseries Long Abstract \par}

\vspace{\baselineskip}
 
\begin{center}
    \MakeUppercase{TITLE EXAMPLE} \linebreak
    Subtitle \linebreak
    \MakeUppercase{Author} \linebreak
\end{center}

    \vspace{\baselineskip}

\noindent
\lipsum[1-4] \par \lipsum[5-8] \par \lipsum[9-14]   % pushes abstract title down

\end{longabstract}
\clearpage

\begin{shortabstract}

\noindent {\Huge \bfseries Short Abstract \par}

\vspace{\baselineskip}
 
\begin{center}
    \MakeUppercase{TITLE EXAMPLE} \linebreak
    Subtitle \linebreak
    \MakeUppercase{Author} \linebreak
\end{center}

    \vspace{\baselineskip}

\noindent

 \lipsum[1-2] 

 \end{shortabstract}

\clearpage

\section{First section}

\end{document}

在您的最终文档中,您可以使用不同的环境轻松地在长摘要和短摘要之间进行切换。

顺便说一句。我不知道为什么,但我一直使用\mbox{}和而不是,\null但上面你可以交换它们。

相关内容