利用 Setcounter 修改 Makeindex 页码

利用 Setcounter 修改 Makeindex 页码

我正在编写一份文档,其中每个章节的意义都超越了章节本身的数值。

不管怎样,我都尝试利用\setcounter{section}{}每一章中的命令来将其融入其中。

在以下 MWE 中,我有三个章节,分别标记为 1、2 和 3;计数器分别设置为 15、30 和 45:

\documentclass[openany]{book}
\usepackage{lipsum}
\usepackage{imakeidx}
\makeindex
\usepackage{idxlayout}
\usepackage{xcolor}

\begin{document}
\large


\setcounter{section}{15}

\chapter*{1}

\begin{center}
\begin{LARGE}
\begin{minipage}{5.75in}
\textbf{\color{red}{Title for First Chapter}}\index{I would like \textbf{15} for the page number here instead of 1.}
\end{minipage}
\end{LARGE}
\end{center}

\lipsum[1]



\newpage

\setcounter{section}{30}

\chapter*{2}

\begin{center}
\begin{LARGE}
\begin{minipage}{5.75in}
\textbf{\color{red}{Title for Second Chapter}}\index{I would like \textbf{30} for the page number here instead of 2.}
\end{minipage}
\end{LARGE}
\end{center}

\lipsum[2]



\newpage

\setcounter{section}{45}

\chapter*{3}

\begin{center}
\begin{LARGE}
\begin{minipage}{5.75in}
\textbf{\color{red}{Title for Third Chapter}}\index{I would like \textbf{45} for the page number here instead of 3; etc.}
\end{minipage}
\end{LARGE}
\end{center}

\lipsum[3]

\idxlayout{columns=1}
\printindex
\end{document}

得出以下索引:

在此处输入图片描述

问题:我希望显示的不是反映章节所在页码的页码,而是这些页面上的计数器值,在本例中为 15、30 和 45。这可能吗?如果可以,如何修改 MWE 以使用 Pdflatex 实现这一点?我过去在更改索引页默认值方面并不太成功。

谢谢。

答案1

您只需复制正在使用的索引的定义并替换\thepage(由于未使用的章节计数器,\arabic{section}您不能使用以 0 为前缀的所有内容。)\thesection

在此处输入图片描述

\documentclass[openany]{book}
\usepackage{lipsum}
\usepackage{imakeidx}
\makeindex
\usepackage{idxlayout}
\usepackage{xcolor}

\makeatletter
\def\@wrindex#1#2{%
\imki@wrindexentrysplit {#1}{#2}{\arabic{section}}\endgroup \imki@showidxentry
{#1}{#2}\@esphack}
\makeatother

\begin{document}
\large


\setcounter{section}{15}

\chapter*{1}

\begin{center}
\begin{LARGE}
\begin{minipage}{5.75in}
\textbf{\color{red}{Title for First Chapter}}\index{I would like \textbf{15} for the page number here instead of 1.}
\end{minipage}
\end{LARGE}
\end{center}

\lipsum[1]



\newpage

\setcounter{section}{30}

\chapter*{2}

\begin{center}
\begin{LARGE}
\begin{minipage}{5.75in}
\textbf{\color{red}{Title for Second Chapter}}\index{I would like \textbf{30} for the page number here instead of 2.}
\end{minipage}
\end{LARGE}
\end{center}

\lipsum[2]



\newpage

\setcounter{section}{45}

\chapter*{3}

\begin{center}
\begin{LARGE}
\begin{minipage}{5.75in}
\textbf{\color{red}{Title for Third Chapter}}\index{I would like \textbf{45} for the page number here instead of 3; etc.}
\end{minipage}
\end{LARGE}
\end{center}

\lipsum[3]

\idxlayout{columns=1}
\printindex
\end{document}

相关内容