我想在目录中添加一个带有页码的条目,文本为“END PAGE”。目录中输入的章节也没有编号。我有两个错误。
当我使用 \pagenumbering{empty} 明确关闭最后一章的页码时,出现错误:
Missing number, treated as zero. ...ine About the Author}{\c@page }{chapter*.7}
我希望目录中最后一项的页码为“结束页”。
梅威瑟:
\documentclass{MWE}
\begin{document}
\frontmatter
%\begin{dedication}
\chapter*{Dedication}
\lipsum[1]
\chapter*{Acknowledgments}
\lipsum[1]
\renewcommand{\listfigurename}{LIST OF FIGURES}
\renewcommand{\listtablename}{LIST OF TABLES}
\renewcommand*{\contentsname}{TABLE OF CONTENTS}
\renewcommand\bibname{REFERENCES}
\listoftables
\listoffigures
\tableofcontents
\chapter{Abstract}
\lipsum[1]
\mainmatter
\chapter{Let's begin}
\lipsum[1]
\section{First Attempt}
\lipsum*
\lipsum[1]
\bibliographystyle{plain}
\bibliography{thesis-ref}
\backmatter
\chapter{About the Author}
\pagenumbering{empty}
\end{document}
类文件:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{MWE}[2017/03/05 My custom class]
\LoadClass[oneside,12pt]{scrbook}
\RequirePackage[utf8]{inputenc} % set input encoding (not needed with XeLaTeX)
\RequirePackage{geometry} % to change the page dimensions
\geometry{a4paper} % or letterpaper (US) or a5paper or....
\geometry{margin=1in} % for example, change the margins to 2 inches all round
\RequirePackage[english]{babel} %set language
\RequirePackage{blindtext} %used to generate random text.
\RequirePackage{lipsum} %used to generate random text.
\RequirePackage{graphicx} % support the \includegraphics command and options
\graphicspath{{figures/}}
\RequirePackage{scrhack}
\RequirePackage{amsmath}
\RequirePackage[algo2e]{algorithm2e}
\RequirePackage{booktabs} % for much better looking tables
\RequirePackage{array} % for better arrays (eg matrices) in maths
\RequirePackage{paralist} % very flexible & customisable lists (eg. enumerate/itemize, etc.)
\RequirePackage{verbatim} % adds environment for commenting out blocks of text & for better verbatim
\RequirePackage{subfig} % make it possible to include more than one captioned figure/table in a single float
% These packages are all incorporated in the memoir class to one degree or another...
\usepackage{listings}
\usepackage[english]{babel}
%%% HEADERS & FOOTERS
\RequirePackage{fancyhdr} % This should be set AFTER setting up the page geometry
\pagestyle{fancy} % options: empty , plain , fancy
\renewcommand{\headrulewidth}{0pt} % customise the layout...
\lhead{}\chead{}\rhead{}
\lfoot{}\cfoot{\thepage}\rfoot{}
%%% SECTION TITLE APPEARANCE
\RequirePackage{titlesec}
%Chapter with number headings
\titleformat{\chapter}[display]
{\normalfont\centering\bfseries} % format
{} % label none here
{0pt}% sep
{\MakeUppercase{\chaptertitlename} \thechapter: \uppercase} % before-code
[]% after-code
%Format the numberless chapter headings.
\titleformat{name=\chapter, numberless}[display]{\normalfont\centering\bfseries}{}{0pt}{\uppercase}[]
\titleformat{\section}{\normalfont}{}{0pt}{}[]
\titleformat{\subsection}{\normalfont}{}{0pt}{}[]
\titleformat{\subsubsection}{\normalfont}{}{0pt}{}[]
\titleformat{\paragraph}{\normalfont}{}{0pt}{}[]
\titleformat{\subparagraph}{\normalfont}{}{0pt}{}[]
%%% ToC (table of contents) APPEARANCE
\RequirePackage[nottoc]{tocbibind} % Put the bibliography in the ToC
\RequirePackage[titles,subfigure]{tocloft} % Alter the style of the Table of Contents
\renewcommand{\cfttoctitlefont}{\bfseries}
\renewcommand{\cftchapfont}{\rmfamily\mdseries\upshape}
\renewcommand{\cftchapdotsep}{\cftnodots}
\renewcommand{\cftchappagefont}{\rmfamily\mdseries\upshape}
\renewcommand{\cftsecfont}{\rmfamily\mdseries\upshape}
\renewcommand{\cftsecdotsep}{\cftnodots}
\renewcommand{\cftsecpagefont}{\rmfamily\mdseries\upshape} % No bold!
\renewcommand{\cftsubsecdotsep}{\cftnodots}
\renewcommand{\cftsubsubsecdotsep}{\cftnodots}
\renewcommand{\cftfigdotsep}{\cftnodots}
\renewcommand{\cftfigfont}{Figure }
\renewcommand{\cfttabdotsep}{\cftnodots}
\renewcommand{\cfttabfont}{Table }
\RequirePackage{hyperref} %I would like to be able to jump around the pdf
\RequirePackage{setspace}
\RequirePackage{indentfirst}%Indent the first paragraph of every chapter.
%Ensure all chapter entries in the table of contents are upper case.
\RequirePackage{textcase}
\makeatletter
\let\oldcontentsline\contentsline
\def\contentsline#1#2{%
\expandafter\ifx\csname l@#1\endcsname\l@chapter
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{%
\oldcontentsline{#1}{\MakeTextUppercase{#2}}%
}{%Do nothing
\oldcontentsline{#1}{#2}%
}%
}
\makeatother
编辑: 我已经改变了范式,不使用类文件,并采用了给出的解决方案埃塞克斯使用新的 KOMA 脚本。
答案1
和你的班级一起
\newcommand\EndPageInToC{%
\addtocontents{toc}{\protect\renewcommand{\protect\cftchappagefont}{END PAGE\protect\nullfont}}%
\renewcommand{\chapterpagestyle}{empty}%
}
在序言中,然后
\backmatter
\EndPageInToC
\chapter{About the Author}
\lipsum[1]
结果是
为什么目录中的章节有编号,但文档中却没有?
titlesec
这里有一个不带、tocloft
和的附加建议tocbibind
,但它需要最新的 KOMA-Script 版本。
\documentclass[
oneside,
12pt,
numbers=noenddot,
listof=entryprefix,
listof=totoc,
bibliography=totoc,
index=totoc
]{scrbook}[2017/01/03]
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{margin=1in}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{lipsum}
\usepackage{graphicx}
\graphicspath{{figures/}}
\usepackage{scrhack}
\usepackage{amsmath}
\usepackage[algo2e]{algorithm2e}
\usepackage{booktabs}
\usepackage{array}
\usepackage{paralist} % maybe better: enumitem
\usepackage{verbatim}
\usepackage{subfig} % better: subcaption
\usepackage{listings}
\usepackage[automark]{scrlayer-scrpage}
\clearpairofpagestyles
\cfoot*{\pagemark}
\RedeclareSectionCommand[
beforeskip=-5.4\baselineskip plus -\parskip,
innerskip=0pt,
afterskip=2.725\baselineskip plus .115\baselineskip minus .192\baselineskip,
font=\normalfont\bfseries
]{chapter}
\renewcommand\raggedchapter{\centering}
\renewcommand\chapterformat{\MakeUppercase{\chaptername} \thechapter:\ }
\renewcommand\chapterlinesformat[3]{#2\MakeUppercase{#3}}
\usepackage{xpatch}
\xpatchcmd{\addchaptertocentry}
{\addtocentrydefault{chapter}{#1}{#2}}
{\addtocentrydefault{chapter}{#1}{\protect\chaptertocentryformat{#2}}}
{}{\PatchFailed}
\newcommand\chaptertocentryformat[1]{#1}
\AfterTOCHead[toc]{\renewcommand\chaptertocentryformat[1]{\MakeUppercase{#1}}}
\addtokomafont{chapterentry}{\normalfont}
\newcommand\EndPageInToC{%
\addtocontents{toc}{\RedeclareSectionCommand[tocpagenumberbox=\protect\EndPageBox]{chapter}}%
\renewcommand\chapterpagestyle{empty}%
}
\newcommand\EndPageBox[1]{\makebox{END PAGE}}
\RedeclareSectionCommands[
font=\normalfont,
toclinefill=\hfill
]{section,subsection,subsubsection,paragraph,subparagraph}
\renewcommand\sectionlinesformat[4]{#4}
\renewcommand\sectioncatchphraseformat[4]{#4}
\DeclareTOCStyleEntry[
linefill=\hfill
]{tocline}{figure}
\DeclareTOCStyleEntry[
linefill=\hfill
]{tocline}{table}
\usepackage{indentfirst}
\usepackage{setspace}
\usepackage{hyperref}
\renewcaptionname{english}{\contentsname}{Table of Contents}
\renewcaptionname{english}{\bibname}{References}
\begin{document}
\frontmatter
\addchap*{Dedication}
\lipsum[1]
\addchap*{Acknowledgments}
\lipsum[1]
\listoftables
\listoffigures
\tableofcontents
\chapter{Abstract}
\lipsum[1]
\mainmatter
\chapter{Let's begin}
\lipsum[1]
\section{First Attempt}
\lipsum*
\lipsum[1]
\bibliographystyle{plain}
\bibliography{thesis-ref}
\backmatter
\EndPageInToC
\chapter{About the Author}
\lipsum[1]
\end{document}