简单问题:我正在使用 ieeetran 处理一个很长的文档,我正在使用 makeidx 为该文档准备索引。包含子项的索引条目未按预期缩进。我推测这是因为 ieeetran 对子部分有自己的样式,但我不知道如何仅为索引更改它。我的 MWE:
\documentclass[journal]{ieeetran}
\usepackage{makeidx} \makeindex
\begin{document}
This is a keyword\index{keywords}. But this one is a subkeyword.\index{keywords!subkeyword}
\index{anotherkeyword!andsubentry}
\section{Index}
\printindex
\end{document}
这会产生以下结果。请注意子条目未缩进。有没有关于如何轻松解决此问题的想法?非常感谢您的回答。谢谢!
答案1
该类IEEEtran
(顺便说一句,最好使用这个名称,而不是ieeetran
仅在 Windows 下有效)不提供theindex
环境。
这里是对 中的定义进行修改article.cls
,但省略了分页符。代码中的注释行来自原始版本,添加的两行也同样进行了标记。
% arara: pdflatex
% arara: makeindex
% arara: pdflatex
\documentclass[journal]{IEEEtran}
\usepackage{makeidx} \makeindex
\makeatletter
\newenvironment{theindex}
{%
% \if@twocolumn
% \@restonecolfalse
% \else
% \@restonecoltrue
% \fi
% \twocolumn[\section*{\indexname}]%
% \@mkboth{\MakeUppercase\indexname}%
% {\MakeUppercase\indexname}%
% \thispagestyle{plain}%
% no page break, continue the columns<-- added
\section{\indexname}% <----------------- added
\parindent\z@
\parskip\z@ \@plus .3\p@\relax
% \columnseprule \z@
% \columnsep 35\p@
\let\item\@idxitem
}
{%
% \if@restonecol\onecolumn\else\clearpage\fi
}
\newcommand\@idxitem{\par\hangindent 40\p@}
\newcommand\subitem{\@idxitem \hspace*{20\p@}}
\newcommand\subsubitem{\@idxitem \hspace*{30\p@}}
\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
\makeatother
\begin{document}
This is a keyword\index{keywords}. But this one is a subkeyword.\index{keywords!subkeyword}
\index{anotherkeyword!andsubentry}
\printindex
\end{document}