使用 imakeidx 进行自定义页码编号

使用 imakeidx 进行自定义页码编号

我正在使用该imakeidx包为一些课程笔记生成索引。问题是文档使用不同的页码系统:它分为“讲座”,并对讲座内的页面进行编号

\numberwithin{page}{lecture}

这会导致imakeidx(和普通的makeidx) 停止工作。有什么想法可以解决这个问题吗?

编辑:这是一个最小的例子:

\documentclass{article}
\usepackage{amsmath}
\usepackage{imakeidx}
\makeindex
\numberwithin{page}{section}
\begin{document}
Test\index{Test1}
\printindex
\end{document}

编译此代码不会产生错误,但不会生成索引。注释掉第 5 行 ( \numberwithin{page}{section}) 会生成索引。

答案1

可以为不仅仅是普通数字的页码提供一些排序支持,而是在文件page_compositor "."中设置标签makeindex .ist,假设输出中出现的点不超过一个。

该文档pagesection.ist使用相关设置编写一个索引样式文件,并imakeidxoptions=-s pagesection.ist密钥一起使用将此文件应用于运行makeindex

\documentclass{article}
\usepackage{amsmath}
\usepackage{imakeidx}
\usepackage{blindtext}


\makeindex[name=pagesection,title={List of something},options=-s pagesection.ist]

\begin{filecontents}{pagesection.ist}
page_precedence "nrRAa"
page_compositor "."
\end{filecontents}

\numberwithin{page}{section}
\begin{document}

\section{Foo section}
Test\index[pagesection]{Test1}
\index[pagesection]{Test2}
\index[pagesection]{foo!bar}


\blindtext[5]
\index[pagesection]{Test2}

\blindtext[10]

\index[pagesection]{foo!bar}

\printindex[pagesection]
\end{document}

在此处输入图片描述

一个相关的问题是按 section.subsection 索引

相关内容