我正在使用该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
使用相关设置编写一个索引样式文件,并imakeidx
与options=-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 索引