罗马和阿拉伯页码

罗马和阿拉伯页码

在一篇文章中,我尝试在后文(例如附录)中继续使用罗马页码,而不是从头开始。

\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}}没有。

相关内容