使用 IEEEtran 样式和 makeidx 时缩进索引中的子条目

使用 IEEEtran 样式和 makeidx 时缩进索引中的子条目

简单问题:我正在使用 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}

在此处输入图片描述

相关内容