如何使用 \ref 显示阿拉伯数字,否则显示罗马数字?

如何使用 \ref 显示阿拉伯数字,否则显示罗马数字?

为了将所有章节编号显示为罗马数字,我使用

\renewcommand\thechapter{\Roman{chapter}}

因此,例如第四章,到处都是“第四章”。

是否可以将数字显示为阿拉伯数字仅有的引用章节时使用\ref{...}

使用上面的例子,\ref{chapter-four}结果是“第 4 章”而不是“第 IV 章”。

答案1

修补\@makechapterhead打印\Roman{chapter}而不是\thechapter允许您使用罗马数字格式化章节标题,但文本内的引用仍然是阿拉伯语:

在此处输入图片描述

\documentclass{book}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\patchcmd{\@makechapterhead}% <cmd>
  {\thechapter}% <search>
  {\Roman{chapter}}% <replace>
  {}{}% <success><failure>
\makeatother
\begin{document}
%\tableofcontents
\chapter{A chapter}\label{chap-label}
See Chapter~\ref{chap-label}.
\end{document}

\@chapter请注意,目录内的编号也将是阿拉伯数字。要更改此设置,需要对进行修补(也包含在\makeatletter-\makeatother对中):

\patchcmd{\@chapter}% <cmd>
  {\numberline{\thechapter}}% <search>
  {\numberline{\Roman{chapter}}}% <replace>
  {}{}% <success><failure>

相关内容