我正在写一篇文本,可以将其分为两组:文本前元素和文本元素。文本前元素包含目录、图表、缩写列表等;文本元素是文本的章节。
我想要做的是从文本前元素中删除页码。
我使用的第一个方法是thispagestyle{empty}
在每个文本前元素下使用。这种方法有效,但是当目录或列表包含两页或更多页时,只有该元素的最后一页的页码会被删除。
第二种方法,我尝试\pagenumbering{gobble}
在文档开头使用,当我想要显示数字时,我将其改为\pagenumbering{arabic}
。这种方法的问题在于,数字将从我放置最后一条命令的位置的 1 开始,而我并不想这样。我希望计算文本前的页面,只是不显示。我知道我可以将页码设置为从某个数字开始,但我需要手动执行此操作,并且始终自己计算之前的页数。
第三种方法是使用我发现的方法这里。这个方法很好用,直到我注意到我的章节开始的页面没有编号。没问题,我在\thispagestyle{headings}
每个页面之后使用了编号\chapter
,一切正常。但当我最后添加参考资料时,第一页没有样式。
我的问题是:有没有最简单的方法可以从某一组页面中删除页码,并且只删除那里的页码,而不会遇到这些问题?
提前致谢。
答案1
这是一个解决方案
\documentclass{book}
\usepackage{blindtext} % just for dummy text
\makeatletter
\newcommand*{\emptystyles}{%
\let\oldplain\ps@plain
\let\ps@plain\ps@empty
\pagestyle{empty}}
\newcommand*{\restorestyles}{%
\clearpage\thispagestyle{empty}
\let\ps@plain\oldplain
\pagestyle{headings}}
\makeatother
\begin{document}
\emptystyles
\tableofcontents
\listoffigures
\listoftables
\restorestyles
\blinddocument % chapters of dummy text
\blinddocument
\blinddocument
\end{document}
答案2
book
如果您使用我们可以修改的类及其\frontmatter
功能,那么事情会变得更容易\mainmatter
。因此,如果您改变主意,您的文档不会被奇怪的命令所困扰。
\documentclass{book}
% access at the internals of the class, with care
\makeatletter
\renewcommand\frontmatter{%
\cleardoublepage
\@mainmatterfalse
\let\ps@plain\ps@empty
\pagestyle{empty}%
}
\renewcommand{\mainmatter}{%
\cleardoublepage
\@mainmattertrue
\let\ps@plain\bookps@plain
\pagestyle{headings}%
}
\let\bookps@plain\ps@plain
\makeatother
\begin{document}
\frontmatter
\tableofcontents
\listoffigures
\mainmatter
\newcommand{\fakechapter}{% just for filling up
\chapter{Title}
\section{A}
x
\begin{figure}
\caption{Caption}
\end{figure}
\section{A}
x
\begin{figure}
\caption{Caption}
\end{figure}
\section{A}
x
\begin{figure}
\caption{Caption}
\end{figure}
\section{A}
x
\begin{figure}
\caption{Caption}
\end{figure}
}
\fakechapter
\fakechapter
\fakechapter
\fakechapter
\fakechapter
\fakechapter
\fakechapter
\fakechapter
\fakechapter
\fakechapter
\fakechapter
\fakechapter
\end{document}
页面样式与前言(您的“借口材料”)plain
的样式相同,但其副本保存在安全的地方,以便在处理时恢复。empty
\mainmatter
如果使用fancyhdr
页眉和页脚,也可以进行类似的更改。