修改 elsarticle.cls 使用的页脚

修改 elsarticle.cls 使用的页脚

我想修改 Elsevier 使用的页脚elsarticle.cls无需直接编辑类文件。我想删除第一页的页脚,该页脚标明“预印本已提交给 Elsevier”(或您使用可选命令指定的期刊\journal{})。显然,我可以从类文件中删除它,但如果我没有提供对类文件的明确修改,此更改将不会延续到其他文件。我尝试将修改后的类文件行添加到.texdocumentclass 声明之前,但它们被忽略了:

\def\ps@pprintTitle{%
\let\@oddhead\@empty
\let\@evenhead\@empty
\def\@oddfoot{\footnotesize\itshape
% line below modified from elsarticle.cls
 \ifx\@journal\@empty Elsevier
\else\@journal\fi\hfill\today}%
\let\@evenfoot\@oddfoot}
\documentclass{elsarticle}

有什么方法可以在不编辑文件的情况下删除该页脚吗.cls

答案1

你已经给出了你的定义调用 elsarticle,所以较新的会覆盖较旧的。您需要更改定义的顺序!

这对我有用:

\documentclass{elsarticle}
\usepackage{lipsum}
\makeatletter
\def\ps@pprintTitle{%
 \let\@oddhead\@empty
 \let\@evenhead\@empty
 \def\@oddfoot{}%
 \let\@evenfoot\@oddfoot}
\makeatother
\begin{document}     
\title{Paper}
\author{A. U. Thor}
\date{\today}
\maketitle
\lipsum[1-2]
\end{document}

代码输出

答案2

或者你可以用页码替换预印本的脚注,这样第一页的脚注样式就与后面的页面一致了。要做到这一点,只需:

\documentclass[review]{elsarticle}
\makeatletter
\def\ps@pprintTitle{%
 \let\@oddhead\@empty
 \let\@evenhead\@empty
 \def\@oddfoot{\centerline{\thepage}}%
 \let\@evenfoot\@oddfoot}
\makeatother

答案3

\patchcmd您可以尝试以下代码,它使用包提供的指令etoolbox。(代码的作用是将定义的长参数替换为@oddfoot... \relax

\documentclass{elsarticle}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\ps@pprintTitle}{\footnotesize\itshape
       Preprint submitted to \ifx\@journal\@empty Elsevier
       \else\@journal\fi\hfill\today}{\relax}{}{}
\makeatother
[rest of preamble]

答案4

另一种方法是保留日期并使标题页不编号。

\makeatletter
\def\ps@pprintTitle{%
    \let\@oddhead\@empty
    \let\@evenhead\@empty
    \def\@oddfoot{\centerline{\hspace*{\fill} \raggedright \today} }%
    \let\@evenfoot\@oddfoot}
\makeatother

\journal{}

\setcounter{page}{0}

相关内容