如何创建混合罗马数字-阿拉伯数字 ( <Roman numeral>.<Arabic numeral>
) 格式的页码?
- 它们以如下方式递增:“I.1”、“I.2”、“I.3”等等。
- 仅当我手动指定增加时罗马数字才会改变。
- 我可以手动增加罗马数字,而不改变阿拉伯数字:“I.30”,\stepcounter{pageroman}“II.31”,“II.32”,“II.33”,\stepcounter{pageroman},“III.34”等等。
- 阿拉伯数字的作用就像
page
计数器(每页自动增加)。 - 我可以手动更改阿拉伯数字,而不更改罗马数字:“IV.1”,“IV.2”,\setcounter{pagearabic}{20}“IV.20”,“IV.21”等。
pageref
与显示“I.30”交叉引用。
答案1
还有更多 LaTeX-y 解决方案,使用\pagenumbering
(有多少人知道这个命令?)
\documentclass{article}
\makeatletter
\newcounter{pageroman}
\stepcounter{pageroman}
\def\@pageromanarabic{\@Roman\c@pageroman.\@arabic}
\pagenumbering{pageromanarabic}
\makeatother
\begin{document}
lorem ipsum\label{first}\newpage
lorem ipsum\newpage
lorem ipsum\newpage
lorem ipsum\newpage
\stepcounter{pageroman}
lorem ipsum\newpage
lorem ipsum, go to page \pageref{first}\newpage
\end{document}
答案2
您可以简单地\thepage
使用page
计数器重新定义并在前面添加一个用罗马数字表示的新计数器:
\documentclass{article}
\usepackage{lipsum}
\newcounter{mycntr}
\stepcounter{mycntr}
\renewcommand\thepage{\Roman{mycntr}.\arabic{page}}
\begin{document}
\pageref{sec:one} \pageref{sec:two} \pageref{sec:three} \pageref{sec:four}
\section{Test}\label{sec:one}
\lipsum[1-6]
\section{Test}\label{sec:two}
\lipsum[1-6]
\stepcounter{mycntr}
\section{Test}\label{sec:three}
\lipsum[1-6]
\stepcounter{page}
\section{Test}\label{sec:four}
\lipsum[1-6]
\end{document}