移动 amsart 中的日期(与其他问题相关)

移动 amsart 中的日期(与其他问题相关)

这个问题与这个问题相关这里

我想要做的是将按包放置在首页底部的日期移动amsart到作者姓名下方,即首页顶部。

链接页面中的一个答案如下

\usepackage{etoolbox}
\makeatletter
\patchcmd{\@maketitle}
  {\ifx\@empty\@dedicatory}
  {\ifx\@empty\@date \else {\vskip3ex \centering\footnotesize\@date\par\vskip1ex}\fi
   \ifx\@empty\@dedicatory}
  {}{}
\patchcmd{\@adminfootnotes}
  {\ifx\@empty\@date\else \@footnotetext{\@setdate}\fi}
  {}{}{}
\makeatother

是的,通过此代码,日期被移动到了作者姓名下的位置。但是,由amsart包生成的日期(位于首页底部)仍然存在。也就是说,我有两个日期,一个位于作者姓名下,这是我想要的,另一个位于首页底部,这是我想要删除的。(见下图)

在此处输入图片描述

有人能帮我解决这个问题吗?谢谢!

PS:这是一个最小工作示例

\documentclass[english, reqno]{amsart}
\usepackage{geometry}            % See geometry.pdf to learn the layout options. There are lots.
\usepackage{amssymb,amsmath,amsthm,amsfonts,color}
%\usepackage{graphicx}
\usepackage{mathrsfs,dsfont, comment,mathscinet}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage{mathtools}
\usepackage{babel}
\usepackage{enumerate,esint}
\usepackage{natbib}


\usepackage{indentfirst}
\usepackage{bm}
\usepackage{picinpar}
\usepackage{lipsum}


\usepackage[toc,page]{appendix}


\usepackage{etoolbox}
\usepackage{authblk}
\usepackage{amsaddr}


%\usepackage{showkeys}


%----------------------------------------------------------------------------------------%
\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhf{} %clears the header and footer, otherwise the elements of the default "plain" page style will appear.
\rhead{Section \thesubsection}
\lhead{Page \thepage}
%\cfoot{Page \thepage}
\renewcommand{\headrulewidth}{0.3pt}

% see https://www.sharelatex.com/learn/Headers_and_footers for more options
%----------------------------------------------------------------------------------------%


%----------------------------------------------------------------------------------------%
% This command moves the data from the place of footnotes to the top of front page
\makeatletter
\patchcmd{\@maketitle}
  {\ifx\@empty\@dedicatory}
  {\ifx\@empty\@date \else {\vskip3ex \centering\footnotesize\@date\par\vskip1ex}\fi
   \ifx\@empty\@dedicatory}
  {}{}
\patchcmd{\@adminfootnotes}
  {\ifx\@empty\@date\else \@footnotetext{\@setdate}\fi}
  {}{}{}
\makeatother
%----------------------------------------------------------------------------------------%




\allowdisplaybreaks

\mathtoolsset{showonlyrefs} %This command will only number the equation which is referred later.















\title{Title}
\author[1]{author}
\date{\today}        
 \address[xxx]{address}



\setlength{\parindent}{0cm}
\begin{document}
\maketitle
ssss

\end{document}

答案1

问题在于您正在加载amsaddr包,它重新定义了标题构建过程。

将第二个 patch 命令替换为 patch\@maketitle而不是\@adminfootnotes。如下所示:

\makeatletter
\patchcmd{\@maketitle}
  {\ifx\@empty\@dedicatory}
  {\ifx\@empty\@date \else {\vskip3ex \centering\footnotesize\@date\par\vskip1ex}\fi
   \ifx\@empty\@dedicatory}
  {}{}
\patchcmd{\@maketitle}   % <----- This line changed
  {\ifx\@empty\@date\else \@footnotetext{\@setdate}\fi}
  {}{}{}
\makeatother

有人可能会想,与其修补两次,为什么不直接替换线路呢?

\ifx\@empty\@date\else \@footnotetext{\@setdate}\fi

直接由

\ifx\@empty\@date \else {\vskip3ex \centering\footnotesize\@date\par\vskip1ex}\fi

并且只使用一次调用\patchcmd。如果这样做,日期将出现在页面的最顶端,而不是要求的作者姓名下方。这是由于用于构建标题的命令的发出顺序特殊造成的。

相关内容