制作索引时出现的问题

制作索引时出现的问题

我正在使用makeidx和我自己版本的来minitoc.ist在报告中创建索引。虽然这是我自己版本的文件,但它们是相同的。在排除故障时,我不想对原始文件进行任何更改。

基本上,我想要做的是:

\documentclass[paper=a4, fontsize=12pt]{report}
\usepackage{minitoc} % Using or omitting this package makes no difference.
\usepackage{makeidx}
\makeindex

\begin{document}
\section{one}
\index{one}
\section{two}
\index{two}
\printindex
\end{document}

我收到的错误是:

! Undefined control sequence. \begin{theindex}\flushcolumns
! Undefined control sequence. \makeatletter\scan@allowedfalse
! Undefined control sequence. {\lneed
! Undefined control sequence. ...skip}\large\bfseries\null\hfill\relax\xhead

对应于我的.ist文件中的这些行:

"\\\\begin{theindex}\\\\flushcolumns\\\\parindent=0pt \n \\\\makeatletter\\\\scan@allowedfalse\n"
heading_prefix   "{\\\\lneed{8.5}\\\\vspace{\\\\baselineskip}\\\\large\\\\bfseries\\\\null\\\\hfill\\\\relax\\\\xhead{"

删除命令\\\\flushcolumns\\\\scan@allowedfalse和会导致错误消失。我只是想知道它们应该做什么,为什么它们不起作用,以及删除它们(而不是解决问题)是否会产生不同的结果\\\\lneed{8.5}\\\\xhead

答案1

根据文献minitoc,第“6 行话”一章:

minitoc.ist该文件包含用于格式化英文文档中的索引的样式。它是在编译时生成的 minitoc.ins

根据描述,我得出结论,该文件是用于生成文档的辅助文件,并不属于TDS:makeindex/IMHO。

如果您想要为自己的文件添加外部文件,则需要派生依赖项,例如定义在中使用的命令的包minitoc.ist。示例:

  • \flushcolumns由包定义multicol

  • \lneed定义在minitoc.ins,一个相当不寻常的地方。

  • \xhead定义于minitoc.dtx

  • Switch\ifscan@allowed由包定义doc

相关内容