请考虑以下事项平均能量损失默认情况下,有些列表(图表列表、表格列表)使用阿拉伯数字编号,scrbook
而有些则不使用(参考书目、索引)。我怎样才能让 LaTeX 对这些列表使用罗马数字而不是阿拉伯数字,并且只对各部分使用阿拉伯数字编号chapter
,section
等等。
例子
图表列表
二、表格列表
1.章节
1.1 章节
第2章
2.1 章节
三、参考书目
四、索引
电离辐射检测
我知道,对于页码,您可以从切换\pagenumbering{roman}
到\pagenumbering{arabic}
。也许有类似的方法可以解决我的问题。
平均能量损失
\documentclass[liststotocnumbered]{scrbook}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{makeidx}
\makeindex
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\chapter{First chapter}
\section{Section}
\begin{figure}[htbp]
\centering
\includegraphics{example.png}
\caption{example caption}
\label{fig:example1}
\end{figure}
\index{Figure!Example1}
\subsection{Subsection}
\begin{table}[htbp]
\centering
\begin{tabular}{@{} lcr @{}}
\toprule
\multicolumn{2}{c}{Item} \\
\cmidrule(r){1-2}
Animal & Description & Price (\$)\\
\midrule
Gnat & per gram & 13.65 \\
& each & 0.01 \\
Gnu & stuffed & 92.50 \\
Emu & stuffed & 33.33 \\
Armadillo & frozen & 8.99 \\
\bottomrule
\end{tabular}
\caption{Tab. 1}
\label{tab:booktabs1}
\end{table}
\index{Table!Example1}
\chapter{Second chapter}
\section{Section}
\begin{figure}[htbp]
\centering
\includegraphics{example.png}
\caption{example caption}
\label{fig:example2}
\end{figure}
\index{Figure!Example2}
\subsection{Subsection}
\begin{table}[htbp]
\centering
\begin{tabular}{@{} lcr @{}}
\toprule
\multicolumn{2}{c}{Item} \\
\cmidrule(r){1-2}
Animal & Description & Price (\$)\\
\midrule
Gnat & per gram & 13.65 \\
& each & 0.01 \\
Gnu & stuffed & 92.50 \\
Emu & stuffed & 33.33 \\
Armadillo & frozen & 8.99 \\
\bottomrule
\end{tabular}
\caption{Tab. 2}
\label{tab:booktabs2}
\end{table}
\index{Table!Example2}
\addcontentsline{toc}{chapter}{Bibliography}
\bibliography{BibliographyFile}
\renewcommand{\indexname}{Index}
\addcontentsline{toc}{chapter}{Index}
\printindex
\end{document}
答案1
\chapter*
您可以更改为特殊章节发布的含义:
\documentclass{scrbook}
\usepackage[demo]{graphicx}
\usepackage{booktabs}
\usepackage{imakeidx}
\makeindex
\makeatletter
\newif\ifintoc
\def\@schapter#1{%
\if@twocolumn
\if@at@twocolumn
\@makeschapterhead{#1}%
\else
\@topnewpage[\@makeschapterhead{#1}]%
\fi
\else
\@makeschapterhead{#1}\@afterheading
\fi
\ifintoc
\stepcounter{specialchapter}%
\addcontentsline{toc}{chapter}{\protect\numberline{\thespecialchapter}#1}%
\fi
}
\makeatother
\newcounter{specialchapter}
\renewcommand{\thespecialchapter}{\Roman{specialchapter}}
\begin{document}
\intocfalse
\tableofcontents
\intoctrue
\listoffigures
\listoftables
\chapter{First chapter}
\section{Section}
\begin{figure}[htbp]
\centering
\includegraphics{example.png}
\caption{example caption}
\label{fig:example1}
\end{figure}
\index{Figure!Example1}
\subsection{Subsection}
\begin{table}[htbp]
\centering
\begin{tabular}{@{} lcr @{}}
\toprule
\multicolumn{2}{c}{Item} \\
\cmidrule(r){1-2}
Animal & Description & Price (\$)\\
\midrule
Gnat & per gram & 13.65 \\
& each & 0.01 \\
Gnu & stuffed & 92.50 \\
Emu & stuffed & 33.33 \\
Armadillo & frozen & 8.99 \\
\bottomrule
\end{tabular}
\caption{Tab. 1}
\label{tab:booktabs1}
\end{table}
\index{Table!Example1}
\chapter{Second chapter}
\section{Section}
\begin{figure}[htbp]
\centering
\includegraphics{example.png}
\caption{example caption}
\label{fig:example2}
\end{figure}
\index{Figure!Example2}
\subsection{Subsection}
\begin{table}[htbp]
\centering
\begin{tabular}{@{} lcr @{}}
\toprule
\multicolumn{2}{c}{Item} \\
\cmidrule(r){1-2}
Animal & Description & Price (\$)\\
\midrule
Gnat & per gram & 13.65 \\
& each & 0.01 \\
Gnu & stuffed & 92.50 \\
Emu & stuffed & 33.33 \\
Armadillo & frozen & 8.99 \\
\bottomrule
\end{tabular}
\caption{Tab. 2}
\label{tab:booktabs2}
\end{table}
\index{Table!Example2}
\bibliography{BibliographyFile}
\begin{thebibliography}{1}
\bibitem x
\end{thebibliography}
\renewcommand{\indexname}{Index}
\printindex
\end{document}
我添加了模拟书目只是为了显示结果。
命令\listof...
和bibliography
/index
环境问题\chapter*
会影响它们的工作,并且此命令被定义为不在目录中添加条目。因此,我重新定义它(更准确地说是命令\@schapter
)以添加一个条目,形式如下
<Roman numeral> <Title> .... <page>
其中数字是从一个新的步进计数器获得的。但是,由于我们不希望目录也这样做,因此只有当条件 ( \ifintoc
) 为真时才会执行这部分代码。条件在之前设置为 false \tableofcontents
,在之后设置为 true。最后一部分可能会自动执行,但我相信这将是一个“仅一次”的应用程序,因此这应该不是问题。
如果你发现你需要疯狂编号的东西不是,只需添加一行
\addcontentsline{toc}{chapter}{\protect\numberline{\thespecialchapter}Foo}
就像您对参考书目所做的那样,将其放在合适的位置。
为了在标题中也获得数字(我甚至不太相信它的用处比将数字放在目录中),您可以修改定义如下(仅需要的部分):
\makeatletter
\newif\ifintoc
\def\@schapter#1{%
\if@twocolumn
\if@at@twocolumn
\@makeschapterhead{#1}%
\else
\@topnewpage[\@makeschapterhead{#1}]%
\fi
\else
\@makeschapterhead{#1}\@afterheading
\fi
\ifintoc
\let\@mkboth\@gobbletwo
\stepcounter{specialchapter}%
\addcontentsline{toc}{chapter}{\protect\numberline{\thespecialchapter}#1}%
\markboth{\MakeMarkcase{\thespecialchapter\ #1}}{\MakeMarkcase{\thespecialchapter\ #1}}
\fi}
\makeatother
\newcounter{specialchapter}
\renewcommand{\thespecialchapter}{\Roman{specialchapter}}
如果你还想标题承受数字,那么应该做类似下面的事情。
\makeatletter
\newif\ifintoc
\def\@schapter#1{%
\ifintoc
\stepcounter{specialchapter}%
\fi
\if@twocolumn
\if@at@twocolumn
\@makeschapterhead{\ifintoc\thespecialchapter\ \fi#1}%
\else
\@topnewpage[\@makeschapterhead{\ifintoc\thespecialchapter\ \fi#1}]%
\fi
\else
\@makeschapterhead{\ifintoc\thespecialchapter\ \fi#1}\@afterheading
\fi
\ifintoc
\let\@mkboth\@gobbletwo
\addcontentsline{toc}{chapter}{\protect\numberline{\thespecialchapter}#1}%
\markboth{\MakeMarkcase{\thespecialchapter\ #1}}{\MakeMarkcase{\thespecialchapter\ #1}}
\fi}
\makeatother
\newcounter{specialchapter}
\renewcommand{\thespecialchapter}{\Roman{specialchapter}}