目录中的页码采用罗马数字,但文档上的页码采用阿拉伯数字

目录中的页码采用罗马数字,但文档上的页码采用阿拉伯数字

这可能看起来有点尴尬,但显然我需要这样做。

我有一个文档(类book),从简介页开始使用阿拉伯语页码。在此之前,我\tableofcontents想将页码显示为罗马数字,即使实际页码是阿拉伯数字。

所需 ToC 的示例:

  1. 第一章---我
  2. 第二章----X

但是第一章的实际页码必须是​​ 1,第二章必须是 10,等等。我只需要在目录中将数字转换为罗马数字。

我已尝试过这个:

% ...
    \pagenumbering{Roman}
    \tableofcontents
    \pagenumbering{arabic}
    \setcounter{page}{1}
    \chapter{First chapter} % Page: 1
    % ... 
    \chapter{Second chapter} % Page: 10
% ...

但这只会改变目录所在的页面,而不是目录本身,这不是我想要的。

答案1

通常,所有分段命令都\thepage使用 写入 ToC \addcontentsline。您可以更新\addcontentsline

\renewcommand{\addcontentsline}[3]{%
  \addtocontents{#1}{\protect\contentsline{#2}{#3}{\Roman{page}}}}

这会写入\Roman{page}目录,而不是默认格式\thepage(可能与 不同\Roman{page})。更好的选择可能是\addcontentsline使用etoolbox

\usepackage{etoolbox}
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\addcontentsline}{\thepage}{\Roman{page}}{}{}

在此处输入图片描述

\documentclass[openany]{book}

\usepackage{etoolbox}
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\addcontentsline}{\thepage}{\Roman{page}}{}{}

\begin{document}

\tableofcontents

\clearpage
\pagenumbering{arabic}
\chapter{A chapter} % Page: 1
\section{A section}
\subsection{A subsection}

\clearpage
\setcounter{page}{10}
\chapter{Another chapter} % Page: 10
\section{Another section}
\subsection{Another subsection}
\end{document}

相关内容