我编写了一个文档类,我需要更改页码。目录应使用罗马字体页码,其余部分应使用阿拉伯字体。
如果可以在类文件中解决这个问题就太好了,我正在使用tocbasic
带有 Koma Script 的包。如果用户可以\tableofcontents
像在其他所有文档中一样使用,那就太好了。
对于用户来说它应该是这样的:
\documentclass[stuff]{myclass}
\title{my title}
\author{me}
\begin{document}
\maketitle
\tableofcontents
\chapter{one}
Important text.
\section{section one}
Not so important text.
\end{document}
class-file 中的代码myclass.cls
,感谢@esdd:
\BeforeTOCHead[toc]{\frontmatter}
\AfterStartingTOC[toc]{\mainmatter}
答案1
tocbasic
有一些钩子。你可以使用
\BeforeTOCHead[toc]{\frontmatter}
\AfterStartingTOC[toc]{\mainmatter}
平均能量损失
\documentclass{scrbook}% loads tocbasic automatically
\BeforeTOCHead[toc]{\frontmatter}
\AfterStartingTOC[toc]{\mainmatter}
\begin{document}
\tableofcontents
\chapter{One}
\chapter{Two}
\end{document}
目录长度超过一页的示例:
\documentclass{scrbook}% loads tocbasic automatically
\BeforeTOCHead[toc]{\frontmatter}
\AfterStartingTOC[toc]{\mainmatter}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\Blinddocument\Blinddocument
\Blinddocument\Blinddocument
\Blinddocument\Blinddocument
\end{document}
答案2
由于您正在使用scrbook
文档类,因此您可以继续在序言中提供以下说明:
\usepackage{etoolbox}
\pretocmd{\tableofcontents}{\frontmatter}{}{}
\apptocmd{\tableofcontents}{\mainmatter}{}{}
假设您的文档有\tableofcontents
,,\listoffigures
和 \listoftables
说明(按此顺序),你应该写
\usepackage{etoolbox}
\pretocmd{\tableofcontents}{\frontmatter}{}{}
\apptocmd{\listoftables}{\mainmatter}{}{}
用罗马数字表示这三个文档单元的页码,然后用阿拉伯数字表示后续材料。
完整的 MWE:
\documentclass{scrbook}
\usepackage{tocbasic}
\usepackage{etoolbox}
\pretocmd{\tableofcontents}{\frontmatter}{}{}
\apptocmd{\tableofcontents}{\mainmatter}{}{}
\begin{document}
\tableofcontents
\chapter{Uno}
\chapter{Due}
\end{document}