我希望主要内容和目录中的章节编号有所不同。
在目录中我希望看到:
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
要重新定义章节条目的格式,您可以使用或tocloft
包titletoc
;下面有一个示例,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}