我使用以下代码来创建目录、图表列表等等:
\documentclass[12pt,envcountsame,envcountchap]{svmono}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} % high quality pdf
\usepackage{ucs} % unicode for mac os x
\usepackage{geometry} % Flexible and complete interface to document dimensions.
\geometry{a4paper}
\usepackage{graphics}
\usepackage{caption}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{epstopdf} % eps to pdf
\usepackage{rotating} % rotate stuff
\usepackage{lmodern} %Type1-font for non-english texts and characters
\usepackage{graphicx} % standard LaTeX graphics tool when including figure files
\usepackage{multicol} % used for the two-column index
\usepackage[bottom]{footmisc}% places footnotes at page bottom, etc.
\usepackage{url}
\linespread{1.2}
\usepackage{color}
\usepackage{array}
\usepackage[toc,page]{appendix}
\usepackage[acronym]{glossaries}
\usepackage{glossaries}
\usepackage{listings}
\usepackage{longtable}
\usepackage{subcaption}
\captionsetup{compatibility=false}
\interfootnotelinepenalty=10000
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Use of Times New Roman font
\usefont{T1}{ptm}{m}{n}
\selectfont
\loadglsentries{001-acronyms} % Load list of acronyms
\loadglsentries{001-symbols} % Load list of frequent symbols
\makeglossaries
\glsaddall
\begin{document}
\frontmatter
\pagenumbering{roman}
\include{100-cover}
\pagestyle{plain}
\tableofcontents
\listoffigures
\addcontentsline{toc}{chapter}{List of Figures}
\listoftables
\addcontentsline{toc}{chapter}{List of Tables}
\lstlistoflistings
\end{document}
生成\tableofcontents
了两页,但页码只出现在第二页上。由于其他命令(\listoffigures
、\listoftables
、\lstlistoflistings
)只生成一页,因此页码根本不出现。我希望所有页面上都有页码。有什么方法可以实现吗?
答案1
这是一个非常常见的“问题”,通常与文档类别有关 - 并不特定于svmono
- 提供\chapter
s。这样做的原因在于这些章节首页的页眉布局通常看起来很奇怪,因此通过类似\thispagestyle{<chapter-page-style>}
(通常<chapter-page-style>
是plain
)的方式设置为不同的样式。
虽然可以发布
\chapter{<title>}
\thispagestyle{<style>}
为了将强制<chapter-page-style>
样式更新为适用于常规章节的作品,对于诸如、等<style>
List-of“章节”来说,这并不容易。原因是 List-of 章节是作为一个整体设置的,因此很难将其插入到适当的(定时)位置。\tableofcontents
\listoffigures
\thispagestyle{<style>}
您可以通过 List-of 命令的补丁来解决这个问题(使用etoolbox
):
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\tableofcontents}{\@starttoc}{\thispagestyle{plain}\@starttoc}{}{}
\patchcmd{\listoffigures}{\@starttoc}{\thispagestyle{plain}\@starttoc}{}{}
\patchcmd{\listoftables}{\@starttoc}{\thispagestyle{plain}\@starttoc}{}{}
\makeatother
或者让empty
页面样式等同于plain
页面样式:
\makeatletter
\let\ps@empty\ps@plain
\makeatother
上述任何一种,插入到序言中的某处都应该有效。
答案2
该svmono
课程不是免费的,只能用于向 Springer 提交论文。因此,要么您正在准备提交论文,并且不应篡改该课程的设置,要么您就是在滥用它。
该文件中没有任何内容svmono.zip
只能从 Springer 下载,并授予将文件用于其他目的的权限。因此必须假设没有许可。
无论如何,该类定义
\newcommand\chapter{\startnewpage
\@ifundefined{thispagecropped}{}{\thispagecropped}
\thispagestyle{bchap}%
\if@chapnum\else
\begingroup
\let\@elt\@stpelt
\csname cl@chapter\endcsname
\endgroup
\fi
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
和
\def\tableofcontents{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
\fi\chapter*{\contentsname \@mkboth{{\contentsname}}{{\contentsname}}}
\@starttoc{toc}\if@restonecol\twocolumn\fi}
(对于\listoffigure
和 也类似\listoftables
)。因为我们发现
\def\ps@bchap{%\let\@mkboth\@gobbletwo
\let\@oddhead\@empty\let\@evenhead\@empty
\def\@oddfoot{\reset@font\small\hfil\thepage}%
\let\@evenfoot\@oddfoot}
页码全部章节起始页出现在页面的右下角,这是我运行您的示例后获得的结果。