我用罗马数字给章节编号,用阿拉伯数字给章节编号(每个新章节从 1 开始,IE第 I.3 节、第 II.3 节、第 III.3 节等等都显示为“第 3 节”。
我必须以这种方式格式化我的论文以符合学院的指导方针,并且我在序言中加入了这些行:
\renewcommand{\chaptername}{Capitolo}
\renewcommand{\thechapter}{\Roman{chapter}}
\renewcommand*\thesection{\arabic{section}}
但是,鉴于 - 例如 - 第 II.3 节被标记为\label{sec:chap2sec3}
,当我在代码中写“参见节”(而不是仅仅“参见第 3 节”)时,我希望在文本中包含类似“参见第 II.3 节”的内容\ref{sec:chap2sec3}
,就像我现在得到的一样。
实现这一目标最简单的方法是什么?提前致谢!
答案1
这是一种快速而简单的方法,通过更改\p@section
要添加到前面的参考格式宏并将\thechapter.
其与 相结合cleveref
。
注意:\setcounter{section}{100}
仅用于测试目的。
\documentclass{book}
\renewcommand{\chaptername}{Capitolo}
\renewcommand{\thechapter}{\Roman{chapter}}
\renewcommand*\thesection{\arabic{section}}
\makeatletter
\renewcommand{\p@section}{\thechapter.}
\makeatother
\usepackage{cleveref}
\begin{document}
See \cref{Foosection} for more information
\chapter{Other chapter}
\chapter{Foo}
\setcounter{section}{100}
\section{Foo section} \label{Foosection}
\end{document}
更新不含cref
\documentclass{book}
\renewcommand{\chaptername}{Capitolo}
\renewcommand{\thechapter}{\Roman{chapter}}
\renewcommand*\thesection{\arabic{section}}
\makeatletter
\renewcommand{\p@section}{\thechapter.}
\makeatother
\begin{document}
See \ref{Foosection} for more information
\chapter{Other chapter}
\chapter{Foo}
\setcounter{section}{100}
\section{Foo section} \label{Foosection}
\end{document}