
Это продолжениеАвтоматически добавлять точку после номера последней страницы в каждой записи указателя
Рассмотрим MWE:
\begin{filecontents*}{style.ist}
delim_t "."
\end{filecontents*}
\documentclass[12pt]{article}
\usepackage{imakeidx}
%\makeindex
\makeindex[options=-s style.ist]
\newcommand\pagedot[1]{#1.} % Adds a period to a particular entry.
\usepackage[itemlayout=singlepar]{idxlayout}
\begin{document}
This is a sentence.\index{Index entry}
This is another sentence.\index{Yet another index entry}
\newpage
This is another sentence.\index{Yet another index entry!subentry}
\idxlayout{columns=1}
\printindex
\end{document}
Это создает вывод индекса:
Поскольку записи указателя отображаются в виде абзацев, я бы хотел, чтобы только последний номер страницы каждой записи имел точку после номера страницы. (Так, в этом случае, например, «Еще одна запись указателя, 1.;» будет отображаться вместо «Еще одна запись указателя, 1;»).
Как можно изменить приведенный выше код, чтобы добиться этого?
Спасибо.
решение1
Определите новую команду \checknextchar
для проверки, если номер страницы следует за subitem
или subsubitem
, если нет, добавьте точку. Затем используйте \\checknextchar
в качестве ключевого значения дляdelim_t
\begin{filecontents*}[overwrite]{style.ist}
delim_t "\\checknextchar"
\end{filecontents*}
\documentclass[12pt]{article}
\newcommand{\checknextchar}[1]{%
\ifx\subitem#1\subitem\else\ifx\subsubitem#1\subsubitem\else.\fi\fi%
}
\usepackage{imakeidx}
\makeindex[options=-s style.ist]
\newcommand\pagedot[1]{#1.} % Adds a period to a particular entry.
\usepackage[itemlayout=singlepar]{idxlayout}
\begin{document}
This is a sentence.\index{Index entry}
This is another sentence.\index{Yet another index entry}
This is another sentence.\index{this is another index entry}
\newpage
This is another sentence.\index{this is another index entry!subentry}
This is another sentence.\index{Yet another index entry!subentry}
\newpage
This is another sentence.\index{Yet another index entry!subentry!subsubentry}
\idxlayout{columns=1}
\printindex
\end{document}