重新定义 \printindex 命令并将其更改为所需形式

重新定义 \printindex 命令并将其更改为所需形式

在读书课上,我想重新定义命令\printindex并将其更改为以下内容:

‎\addcontentsline{toc}{chapter}{‎Index}‎‎‎‎
‎\fancypagestyle{plain}{%‎
‎\fancyhf{}‎                        
‎\renewcommand{\headrulewidth}{0pt}‎
‎\renewcommand{\footrulewidth}{0pt}‎
}
‎\printindex‎

我该怎么做?
我的 tex 文件如下:

\documentclass{‎book‎}‎‎
‎\usepackage{fancyhdr} ‎‎
‎\usepackage{makeidx}‎
‎\makeindex‎
‎‎\begin{document}‎‎
‎\tableofcontents‎
‎\chapter{One}‎‎
‎Hi!‎
\index{‎abc‎}
\index{‎def‎}‎‎
‎\addcontentsline{toc}{chapter}{‎Index}‎‎‎‎
‎\fancypagestyle{plain}{%‎
‎\fancyhf{}‎                        
‎\renewcommand{\headrulewidth}{0pt}‎
‎\renewcommand{\footrulewidth}{0pt}‎
}
‎\printindex‎
‎\end{document}

答案1

您可以使用 保存宏\let\origmacro\macro,其中\origmacro是您可以选择的名称。然后重新定义宏并在内部调用其原始版本,通常在最后:

\let\origprintindex\printindex‎
\renewcommand*{\printindex}{%
  \addcontentsline{toc}{chapter}{‎Index}‎‎‎‎%
  ‎\fancypagestyle{plain}{%‎
  ‎  \fancyhf{}‎%
    ‎\renewcommand{\headrulewidth}{0pt}‎%
    ‎\renewcommand{\footrulewidth}{0pt}‎%
  }%
  ‎\origprintindex‎
}

您可能希望将所有这些放入一个组中。

相关内容