在一篇文章中,我尝试在后文(例如附录)中继续使用罗马页码,而不是从头开始。
\documentclass{article}
\usepackage{lipsum}
\def\frontmatter{%
\pagenumbering{roman}
\setcounter{page}{1}
\renewcommand{\thesection}{\Roman{section}}
}%
\def\mainmatter{%
\pagenumbering{arabic}
\setcounter{page}{1}
\setcounter{section}{0}
\renewcommand{\thesection}{\arabic{section}}
}%
\def\backmatter{%
\setcounter{section}{0}
\renewcommand{\thesection}{\Alph{section}}
}%
\begin{document}
\frontmatter
\section*{Abstract}
\clearpage
\mainmatter
\section{Main Body}
\clearpage
\backmatter
\section*{Appendix}
\end{document}
多谢:)
答案1
以下对您的 MWE 进行的肮脏的攻击和小的修改似乎可以满足您的要求。
\documentclass{article}
\usepackage{lipsum}
\newcounter{frontMatterEndPage}%new
\def\frontmatter{%
\pagenumbering{roman}
\setcounter{page}{1}
\renewcommand{\thesection}{\Roman{section}}
}%
\def\mainmatter{%
\setcounter{frontMatterEndPage}{\value{page}}%new
\pagenumbering{arabic}
\setcounter{page}{1}
\setcounter{section}{0}
\renewcommand{\thesection}{\arabic{section}}
}%
\def\backmatter{%
\setcounter{section}{0}
\renewcommand{\thesection}{\Alph{section}}
\pagenumbering{roman}%new
\setcounter{page}{\value{frontMatterEndPage}}%new
}%
\begin{document}
\frontmatter
\section*{Abstract}
\newpage{}\section{Test}
\clearpage
\mainmatter
\section{Main Body}
\newpage{}\section{Test}
\clearpage
\backmatter
\section*{Appendix}
\newpage{}\section{Test}
\end{document}
请检查您的最终结果以获取正确的页码。我从未见过这种风格,我不知道为什么这可能是一个好主意,但如果您需要它,那就这样做吧。
答案2
没有答案。book.cls 中的默认定义相当无害,但确实包含一些您错过的功能。
\newcommand\frontmatter{%
\cleardoublepage
\@mainmatterfalse
\pagenumbering{roman}}
\newcommand\mainmatter{%
\cleardoublepage
\@mainmattertrue
\pagenumbering{arabic}}
\newcommand\backmatter{%
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\@mainmatterfalse}
关键问题是将\pagenumbering
计数器重置为 1,而\renewcommand{\thepage}{\roman{page}}
没有。