我正在使用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
。