更改目录条目的顺序

更改目录条目的顺序

我正在排版讲义,希望它们按时间顺序排列,但我遇到的问题是,第 3 章之后有一些属于第 2 章的内容。

我希望第 2 章的目录条目具有连贯性,但现在它看起来像

TOC-旧

我希望它看起来像

TOC-新

内联代码如下:

\documentclass{book}
\renewcommand{\thesection}{\arabic{section}}
\begin{document}
\tableofcontents

\chapter{Lorem 1}         % first chapter

\null\clearpage
\setcounter{page}{38}
\chapter{Lorem 2}         % second chapter
\section{Dolor sit}
\section{Amet consetetur}
\section{Adipisci elit}
\section{Sed eiusmod}     % fourth section

\null\clearpage
\setcounter{page}{52}
\chapter{Lorem 3}         % third chapter
\section{Dolor sit}
\section{Amet consetetur}
\section{Adipisci elit}
\section{Sed eiusmod}     
\section{Tempor incidunt} 
\section{Ut labore}

\null\clearpage
\setcounter{page}{74}
\setcounter{chapter}{1}
\chapter{Lorem 2 Encore}  % second chapter again
\setcounter{section}{4}
\section{Tempor incidunt} % fifth section

\null\clearpage
\setcounter{chapter}{3}
\chapter{Lorem 4}         % fourth chapter
\section{Dolor sit}
\end{document}

如果您能提供有关如何改变条目顺序的任何想法,我们将不胜感激。

答案1

从长远来看,以下做法可能更易于管理:

在此处输入图片描述

\documentclass{book}
\usepackage{refcount}% http://ctan.org/pkg/refcount
\renewcommand{\thesection}{\arabic{section}}
\begin{document}
\tableofcontents

\chapter{Lorem 1}         % first chapter

\null\clearpage
\setcounter{page}{38}
\chapter{Lorem 2}         % second chapter
\section{Dolor sit}
\section{Amet consetetur}
\section{Adipisci elit}
\section{Sed eiusmod}     % fourth section
\addtocontents{toc}{%
  \protect\contentsline {section}{%
    \protect\numberline {\getrefnumber{sec:tempor-incidunt}}\protect\ignorespaces Tempor incidunt}{\getpagerefnumber{sec:tempor-incidunt}}}

\null\clearpage
\setcounter{page}{52}
\chapter{Lorem 3}         % third chapter
\section{Dolor sit}
\section{Amet consetetur}
\section{Adipisci elit}
\section{Sed eiusmod}
\section{Tempor incidunt}
\section{Ut labore}

\null\clearpage
\setcounter{page}{74}
\setcounter{chapter}{1}

\begingroup
\renewcommand{\addcontentsline}[3]{}
\chapter{Lorem 2 Encore}  % second chapter again
\setcounter{section}{4}
\section{Tempor incidunt} % fifth section
\label{sec:tempor-incidunt}
\endgroup

\null\clearpage
\setcounter{chapter}{3}
\chapter{Lorem 4}         % fourth chapter
\section{Dolor sit}
\end{document}

这个想法是将内容条目写入文档中与您希望它出现在目录中的位置相似的位置。它使用refcount提取与参考到文档中位置靠后的章节。调整到的\addcontentsline目的是为了局部移除位置奇怪的章节/章节的 ToC 编写功能。

答案2

明白了,但无论如何我都会发布它以防有一天有人需要它。

\tableofcontents我查找了文档类文件中的定义scrreprt.cls

\newcommand*\tableofcontents{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\contentsname
        \@mkboth{\contentsname}{\contentsname}}%
    \@starttoc{toc}%
    \if@restonecol\twocolumn\fi
    }

并发现这\@starttoc{toc}是生成 ToC 内容的 TeX 宏。

因此我\tableofcontents像往常一样运行,手动编辑相应的.toc 文件并按以下方式包含它:

\makeatletter
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\contentsname
        \@mkboth{\contentsname}{\contentsname}}%
%    \@starttoc{toc}%
    \if@restonecol\twocolumn\fi
\makeatother
\input{script.toc}

现在它看起来正如我预期的那样:

知道了

相关内容