将部门编号改为罗马数字

将部门编号改为罗马数字

请考虑以下事项平均能量损失默认情况下,有些列表(图表列表、表格列表)使用阿拉伯数字编号,scrbook而有些则不使用(参考书目、索引)。我怎样才能让 LaTeX 对这些列表使用罗马数字而不是阿拉伯数字,并且只对各部分使用阿拉伯数字编号chaptersection等等。

例子

图表列表

二、表格列表

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

相关内容