如何减少标题中空白日期的间距(使用标题包时)

如何减少标题中空白日期的间距(使用标题包时)

我正在寻找一个宏,它可以在日期为空的情况下改变date(使用包时)的行为。titling

此 MWEA应该正常给出一个文档:

\documentclass{article}
\usepackage{titling}
\title{A date test title}
\date{13 Dec 13}

%
% Here go the tweak macros enhancing the behaviour of \date
% ...
% ...
%

\begin{document}
\maketitle
text text text text text text text text text text text text text text text text text text
\end{document}

但对于以下 MWE我希望标题和文本之间的空间较小,因为没有打印日期。

\documentclass{article}
\usepackage{titling}
\title{A date test title}
\date{} % DATE IS NOW EMPTY!

%
% Here go the tweak macros enhancing the behaviour of \date
% ...
% ...
%

\begin{document}
\maketitle
text text text text text text text text text text text text text text text text text text
\end{document}

我怎样才能实现这一目标通用的调整宏(可能改变包的内部命令titling),以便相同的调整在两种情况下都有效,适用于空日期和设置日期。

调整宏必须以某种方式测试是否\@date为空。我试过\ifdefempty(从etoolbox包中)但 \@date 似乎永远不会为空,即使没有打印日期(即\date{})。

答案1

标题包 ( titling.sty) 更新命令\maketitle。日期的打印发生在\maketitle或 中,如果没有创建自己的页面(例如文章类),则由\@maketitle调用\maketitle。因此,请确保您知道需要修补哪个宏。然后,您只需将其内容与\pathcmdfrometoolbox包交换即可。(当然,您可以使用 为这两种情况编写解决方案\if@titlepage,但我认为对于正常目的来说,这不是必要的。)

梅威瑟:

\documentclass{article}
\usepackage{titling,etoolbox}
\title{A date test title}
\date{13 Dec 13}
% \date{}

\makeatletter
\ifx\@date\empty
\patchcmd{\@maketitle}{{\@bspredate \@date \@bspostdate} \maketitlehookd \par \vskip 1.5em}{\vskip 0.5em}{}{}
% \patchcmd{\maketitle}{{\@bspredate \@date \@bspostdate} \maketitlehookd \par}{\vskip 0.5em}{}{}%for document classes with extra title pages
\fi
\makeatother

\begin{document}
\maketitle
text text text text text text text text text text text text text text text text text text
\end{document}

答案2

我使用这样的东西:

\documentclass{article}
\usepackage{titling}
\title{A date test title}
\author{Author}
\makeatletter
\predate{%
  \ifx\@empty\thedate\relax
  \else\begin{center}\large
  \fi}
\postdate{%
  \ifx\@empty\thedate\relax
  \else\par\end{center}\fi}
\makeatother
\begin{document}
\maketitle
text text text text text text text text text text text text text text text text text text
\date{} % DATE IS NOW EMPTY!
\maketitle
text text text text text text text text text text text text text text text text text text
\end{document}

有日期和无日期的比较

相关内容