我发现 LaTeX 在单页文档中添加页码的做法在风格上很奇怪,所以我想禁止这种行为。我以前这样做过手动,但最好不需要自己跟踪文档的长度。
问题已提出前,但 OP 首选的解决方案是\maketitle
,这与我无关。接受的回答创建一个需要在之后进行的宏\begin{doucument}
,但最好将一些内容放在我的序言或.sty
文件中,这样我就不需要记住在编写的每个文档中都放入一些自定义宏。
梅威瑟:
\documentclass{article}
\usepackage{lipsum,fancyhdr}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\begin{document}
\lipsum[1] % automatically remove page number in a document with this line
\lipsum[1-6] % automatically keep page numbers in a document with this line
\end{document}
答案1
有一些包可以或多或少地计算页数(,,,totpages
... )。示例使用包:count1to
lastpage
zref-totpages
\documentclass{article}
\usepackage{zref-totpages}
\usepackage{lipsum,fancyhdr}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\fancyfoot[C]{%
\ifnum\ztotpages=1 \else\thepage\fi
}
\begin{document}
\lipsum[1] % automatically remove page number in a document with this line
%\lipsum[1-6] % automatically keep page numbers in a document with this line
\end{document}
需要运行两次 LaTeX,因为当时,当第一页发出时,通常不知道接下来会有多少页。
\ztotpages
当文件中没有记录zref
标签时,第一次运行 LaTeX 时为零。LastPage
.aux
答案2
如果我理解正确的话,您想要删除第一页的页码,但保留页眉。这可以通过定义与默认样式相同fancy
但没有页码的自定义 fancyhdr 样式来实现,并且仅将其用于第一页。完整的 MWE:
\documentclass{article}
\usepackage{lipsum,fancyhdr}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\fancypagestyle{mystyle}{
\fancyhf{}
\fancyhead[C]{Don't ever remove this header}
\fancyfoot[C]{}
}
\begin{document}
\thispagestyle{mystyle}
\lipsum[1] % automatically remove page number in a document with this line
\pagestyle{fancy}
\lipsum[1-6] % automatically keep page numbers in a document with this line
\end{document}
lastpage
成功了!使用和使自动化部分工作正常ifthen
。简而言之,它检查文档长度(由 确定lastpage
)是否超过 1 页。如果文档为 1 页,则mystyle
在有页码的地方使用该样式。但是,如果文档长度超过 1 页,则第一页使用该样式mystyle
,而后面的页面将使用该fancy
样式。
\documentclass{article}
\usepackage{lipsum,fancyhdr,ifthen,lastpage}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\fancypagestyle{mystyle}{
\fancyhf{}
\fancyhead[C]{Don't ever remove this header}
\fancyfoot[C]{}
}
\begin{document}
\ifthenelse{\pageref{LastPage}=1}
{
\pagestyle{mystyle}
}
{
\thispagestyle{mystyle}
}
\lipsum[1] % automatically remove page number in a document with this line
\lipsum[1-6] % automatically keep page numbers in a document with this line
\end{document}
现在唯一的问题是它不能在序言中使用......
答案3
带包的示例lastpage
:
\documentclass{article}
\usepackage{lastpage}
\usepackage{refcount}
\usepackage{etoolbox}
\usepackage{lipsum,fancyhdr}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\begin{document}
\ifnumcomp{\getpagerefnumber{LastPage}}{>}{2}{}{\fancyfoot{}}
% If document is longer than 2 pages there will be page numeration, if not there will not be.
\lipsum[1] % automatically remove page number in a document with this line
\end{document}
答案4
晚上好,我们可以测试文档末尾的页码。如果只有一页,它将清除中间的页脚,否则它会继续而不更改默认值,页码保持不变。
\documentclass{article}
\usepackage{lipsum,fancyhdr}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\begin{document}
\lipsum[1]
%\lipsum[1-6] % Turn on/off this line...
\ifnum\thepage=1\fancyfoot[C]{}\fi
\end{document}