我正在尝试获取这种索引:
我正在使用book
documentclass 和imakeidx
。
有谁知道如何获得这种方面吗?
我猜这与文件有关.ist
,但我真的不知道我的子项是item_x1
、item_1
还是item_01
。
headings_flag 1
delim_0 "}\\hspace{0pt},\\hspace{6pt}"
delim_1 "\\hspace{0pt},\\hspace{5pt}"
delim_2 "\\hspace{0pt},\\hspace{4pt}"
delim_t "."
item_0 " \\item { "
item_x1 "},\\subitem }"
item_1 "}\\subitem "
item_01 "}\\subitem "
谢谢大家 !
答案1
.ind
程序生成的辅助文件只是makeindex
一个theindex
环境,其内容类似于
\begin{theindex}
<heading>
\item <level 0 entry>, <page>.
\subitem <level 1 entry>, <page>.
\subitem <level 1 entry>, <page>.
\indexspace
<more entries>
\end{theindex}
因此,正是\subitem
导致了每个 1 级条目之前的换行符。由于\subitem
是文档类通常提供的 latex 宏,因此您可以重新定义它。在下面的示例中,我列出了文档类中的原始定义article
并重新定义它们以满足您的要求。
\documentclass{article}
\usepackage[nonewpage]{imakeidx}
\makeindex[options= -s inline-subitems.ist]
\makeatletter
\renewcommand\@idxitem{\par}
\renewcommand\subitem{}
% \newcommand\@idxitem{\par\hangindent 40\p@}
% \item is let to \@idxitem at \begin{theindex}
% \newcommand\subitem{\@idxitem \hspace*{20\p@}}
\makeatother
\begin{document}
First entry group%
\index{entry}\index{alpha!beta}\index{alpha!gamma}\index{alpha!eta}
Second entry group%
\index{entry!a}\index{entry!b}\index{entry!c}\index{entry!d}
\printindex
\end{document}
% inline-subitems.ist
headings_flag 1
delim_0 "}, "
delim_1 ", "
delim_2 ", "
delim_t "."
item_0 "\n \\item \\textbf{"
item_1 "\n \\subitem "
item_01 "\n \\subitem "
item_x1 "}.\n \\subitem "