为什么此代码消除索引逗号对 \jobname.mst 有效,而对 \jobname.ist 无效

为什么此代码消除索引逗号对 \jobname.mst 有效,而对 \jobname.ist 无效

这篇文章是对如何从每个索引条目中普遍删除逗号

在链接中,我正在寻找一种通用的方法来删除每个索引条目中的逗号。

沃纳建议在序言中纳入以下内容:

\begin{filecontents*}[overwrite]{\jobname.ist}
delim_1 " "
\end{filecontents*}

\makeindex[options=-s \jobname]

然而,由于我最近安装的 TexLive 版本存在问题,我无法使用他的答案。

因此,我想我会尝试修改他的答案,希望能够利用他的优秀方法。

长话短说就是这样的——最终,我发现我可以消除[overwrite](这给我带来了问题),将改为\makeindex[options=-s \jobname]简单的\makeindex,并将jobname扩展名从ist改为mst,从而给我有效的代码:

\documentclass{book}
\begin{filecontents*}{\jobname.mst} 
delim_1 " "
\end{filecontents*}

\usepackage{imakeidx}
\let\cleardoublepage\clearpage
%\makeindex[options=-s \jobname]
\makeindex
\usepackage{idxlayout}
\usepackage{xcolor}

\begin{document}
\large

Some words.
\index{HEADING@\textbf{HEADING}!02@\textbf{\color{red}{\textit{How to universally remove the comma?}}}}
\index{HEADING@\textbf{HEADING}!03@\textbf{\color{red}{\textit{How to universally remove the comma?}}}}
\index{HEADING@\textbf{HEADING}!04@\textbf{\color{red}{\textit{How to universally remove the comma?}}}}
\index{HEADING@\textbf{HEADING}!05@\textbf{\color{red}{\textit{How to universally remove the comma?}}}}
\index{HEADING@\textbf{HEADING}!06@\textbf{\color{red}{\textit{How to universally remove the comma?}}}}
    
\idxlayout{columns=1}
\printindex
\end{document}

使用所需的索引:

在此处输入图片描述

问题:有人能解释一下,在我进行的所有消除之后,为什么当我使用\jobname.mst(Werner 没有使用)时代码似乎运行良好,但当我使用 时却异常终止\jobname.ist;更简单地说,相对于这个问题,为什么\jobname.mst有效而\jobname.ist无效?

谢谢。

答案1

makeindex 的选项-s(以及\makeindex此包中的命令)必须是包括扩展名的完整文件名,因此-s \jobname.ist尽管 makeindex 样式不依赖于特定的 tex 文件内容,但我不会每次都用 写出来filecontents。将其另存为nocomma.ist并使用-s nocomma.ist

相关内容