包含结束页的目录条目

包含结束页的目录条目

我想在目录中添加一个带有页码的条目,文本为“END PAGE”。目录中输入的章节也没有编号。我有两个错误。

  1. 当我使用 \pagenumbering{empty} 明确关闭最后一章的页码时,出现错误:

    Missing number, treated as zero. ...ine About the Author}{\c@page }{chapter*.7}
    
  2. 我希望目录中最后一项的页码为“结束页”。

梅威瑟:

    \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}

相关内容