TL;DR;
代替
\def\cstoidx#1\par{\index{#1@\cs{#1}@}}
和
\def\cstoidx#1\par{\index{#1@\cs{#1}}}
长答案
问题出现是因为
\def\cstoidx#1\par{\index{#1@\cs{#1}@}}
在文件中产生无效条目.idx
。
如果我把代码改成
\def\cstoidx#1\par{\index{#1@\cs{#1}}}
然后索引就生成了,没有错误。这是我获得的索引的开头
让我们将其与 TeX Live 附带的书籍版本中的索引进行比较,其中所有控制序列均缺失。