让主要内容和目录中的章节编号有所不同

让主要内容和目录中的章节编号有所不同

我希望主要内容和目录中的章节编号有所不同。

在目录中我希望看到:

chapter 1 ...
    bla bla bla


chapter 2 ...
    bla bla bla

但如果我这么做了:

\renewcommand{\thechapter}{chapter \arabic{chapter}}

例如,在文本中,当我对某个图进行交叉引用时,图号是chapter 1.3针对图 3 的。我不喜欢这样。

我尝试使用titletoc包,但没有成功。

以下是一个简短的例子:

\documentclass{book}
\renewcommand{\thechapter}{Serie \arabic{chapter}}
\renewcommand{\thesection}{\textrm{\Roman{section}}}

\title{titre}

\usepackage{titlesec}
\titleformat{\chapter}[display]{\filcenter\sffamily} 
{\textit{\LARGE\@title}\\
\vspace{5mm}
{\Large\thechapter}
}%
{1pc}%
{\titlerule\vspace{1pc}\Huge}%
[\vspace{1pc}\titlerule\thispagestyle{plain}]

\RequirePackage{titletoc}
\titlecontents{chapter}[1cm]{\vspace*{2ex}}{\bfseries\contentslabel{3em} : }{}    {\hfill\bfseries\contentspage}

\begin{document}

\tableofcontents

\chapter{Rappels}
\section{Section}
\begin{figure}[h]
\centering\fbox{A figure}
\caption{A caption} 
\end{figure}

\begin{table}[h]
\centering
\begin{tabular}{ccc}
\hline
aaa & bbb & ccc \\
\hline
\end{tabular}
\caption{A caption} 
\end{table}

\end{document}

我想保留目录中的“系列”,但不保留图表和表格编号中的“系列”。

以下是 gonzalo medina 的回答,这是一个无需 babel 包即可工作的解决方案。我重新定义了\chaptername“serie”,而不是手动添加,因为所有这些都在类文件中,如果从变量定义“serie”,则更容易更改其名称。

\documentclass{book}

\renewcommand{\chaptername}{Serie}

\usepackage[titles]{tocloft}

\newlength\mylen
\renewcommand\cftchappresnum{\bfseries \chaptername~}
\settowidth\mylen{\bfseries\cftchappresnum\cftchapaftersnum}
\addtolength\cftchapnumwidth{\mylen}
\renewcommand\cftchapaftersnum{:}
\renewcommand{\thesection}{\textrm{\Roman{section}}}

\usepackage{titlesec}
\titleformat{\chapter}[display]{\filcenter\sffamily} 
{\textit{\LARGE\@title}\\\vspace{5mm}
{\Large\chaptername~\thechapter}}%
{1pc}{\titlerule\vspace{1pc}\Huge}%
[\vspace{1pc}\titlerule\thispagestyle{plain}]

\begin{document}

\tableofcontents

\chapter{Rappels}
\section{Section}
\begin{figure}[h]
\centering\fbox{A figure}
\caption{A caption} 
\end{figure}

\begin{table}[h]
\centering
\begin{tabular}{ccc}
\hline
aaa & bbb & ccc \\
\hline
\end{tabular}
\caption{A caption} 
\end{table}

\end{document}

如果我使用\babel带有francais选项的包,\chaptername则由 babel 在文档开头定义。因此我必须在序言中添加以下内容:

\usepackage[francais]{babel}

\AtBeginDocument{\renewcommand{\chaptername}{Serie}}

但它不适用于目录。目录中仍然有章节而不是“系列”。因此我定义了一个新变量,并用它来代替章节名称。

\documentclass{book}

\usepackage[francais]{babel}

\newcommand{\seriename}{Serie}

\usepackage[titles]{tocloft}

\newlength\mylen
\renewcommand\cftchappresnum{\bfseries \seriename~}
\settowidth\mylen{\bfseries\cftchappresnum\cftchapaftersnum}
\addtolength\cftchapnumwidth{\mylen}
\renewcommand\cftchapaftersnum{:}
\renewcommand{\thesection}{\textrm{\Roman{section}}}

\usepackage{titlesec}
\titleformat{\chapter}[display]{\filcenter\sffamily} 
{\textit{\LARGE\@title}\\\vspace{5mm}
{\Large\seriename~\thechapter}}%
{1pc}{\titlerule\vspace{1pc}\Huge}%
[\vspace{1pc}\titlerule\thispagestyle{plain}]

\begin{document}

\tableofcontents

\chapter{Rappels}
\section{Section}
\begin{figure}[h]
\centering\fbox{A figure}
\caption{A caption} 
\end{figure}

\begin{table}[h]
\centering
\begin{tabular}{ccc}
\hline
aaa & bbb & ccc \\
\hline
\end{tabular}
\caption{A caption} 
\end{table}

\end{document}

答案1

要重新定义章节条目的格式,您可以使用或toclofttitletoc;下面有一个示例,tocloft显示在章节号前包含“Serie”和在章节号后立即包含冒号所需的修改:

\documentclass{book}
\usepackage[titles]{tocloft}

\newlength\mylen
\renewcommand\cftchappresnum{\bfseries Serie~}
\settowidth\mylen{\bfseries\cftchappresnum\cftchapaftersnum}
\addtolength\cftchapnumwidth{\mylen}
\renewcommand\cftchapaftersnum{:}
\renewcommand{\thesection}{\textrm{\Roman{section}}}

\usepackage{titlesec}
\titleformat{\chapter}[display]{\filcenter\sffamily} 
{\textit{\LARGE\@title}\\\vspace{5mm}
{\Large\thechapter}}%
{1pc}{\titlerule\vspace{1pc}\Huge}%
[\vspace{1pc}\titlerule\thispagestyle{plain}]

\begin{document}
\tableofcontents

\chapter{Test Chapter One}
\section{Test Section One One}
\section{Test Section One Two}
\chapter{Test Chapter Two}
\section{Test Section Two One}
\section{Test Section Two Two}

\end{document}

在此处输入图片描述

对原始问题进行编辑后,这里有一些我在序言中\addto\captionsfrancais更改的代码:\chaptername

\documentclass{book}
\usepackage[francais]{babel}
\usepackage[titles]{tocloft}
\usepackage{titlesec}

\newlength\mylen
\renewcommand\cftchappresnum{\bfseries\chaptername~}
\settowidth\mylen{\bfseries\cftchappresnum\cftchapaftersnum}
\addtolength\cftchapnumwidth{\mylen}
\renewcommand\cftchapaftersnum{:}
\renewcommand{\thesection}{\textrm{\Roman{section}}}

\titleformat{\chapter}[display]{\filcenter\sffamily} 
{\textit{\LARGE\@title}\\\vspace{5mm}
{\Large\chaptername~\thechapter}}%
{1pc}{\titlerule\vspace{1pc}\Huge}%
[\vspace{1pc}\titlerule\thispagestyle{plain}]

\addto\captionsfrancais{\renewcommand{\chaptername}{Serie}}

\begin{document}

\tableofcontents

\chapter{Rappels}
\section{Section}
\begin{figure}[h]
\centering\fbox{A figure}
\caption{A caption} 
\end{figure}

\begin{table}[h]
\centering
\begin{tabular}{ccc}
\hline
aaa & bbb & ccc \\
\hline
\end{tabular}
\caption{A caption} 
\end{table}

\end{document}

答案2

\l@chapter目录设置由书中的哪个部分定义

\newcommand*\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \vskip 1.0em \@plus\p@
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
      \penalty\@highpenalty
    \endgroup
  \fi}

因此,您可以重新定义它并Chapter在合适的位置添加(例如之前#1

答案3

我不明白您是否对目录有疑问,但如果您想要的是对文档类类型中的表格和图形进行简单编号book(整个文档相同),那么这个例子是不言自明的:

\documentclass{book}
\usepackage{chngcntr}
\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
\begin{document}

\chapter{Chapter}
\section{Section}
\begin{figure}[h]
\centering\fbox{A figure}
\caption{A caption} 
\end{figure}

\begin{table}[h]
\centering
\begin{tabular}{ccc}
\hline
aaa & bbb & ccc \\
\hline
\end{tabular}
\caption{A caption} 
\end{table}

\end{document}

相关内容