如何从每个索引条目中普遍删除逗号

如何从每个索引条目中普遍删除逗号

这个问题扩展了最近在如何有选择地删除索引条目中的逗号

在上面的帖子中,回答说通过插入\newcommand\textbfnocomma[2]{\textbf{#1}}到序言中,可以使用命令删除索引条目逗号\textbfnocomma

我目前正在制作一个引文索引,其中的逗号似乎有点不合适;所以,我想看看索引是什么样子的全部删除此类逗号。

考虑一下代码,

\documentclass{book}
\usepackage{imakeidx}
\let\cleardoublepage\clearpage
\makeindex
\usepackage{idxlayout}
\usepackage{xcolor}

%\newcommand\textbfnocomma[2]{\textbf{#1}}
\begin{document}
\large
    
Some words. %\index{HEADING@\textbf{HEADING}!01@\textbfnocomma{\color{red}{\textit{So entfernen Sie das Komma?---}}}}
\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}

生成索引:

在此处输入图片描述

问题:这是否可行?如果可以,我该如何轻松地从所有索引条目中删除逗号,而不必使用上面描述的前导命令逐个删除它们?请不要这么做textindy

谢谢。

答案1

您需要delim_1调整makeindex,因为你列出的页码是第 1 级。从makeindex.hlp

delim_0 ","
                          分隔符
                          0 级密钥及其第一页
                          数字(默认值:逗号后跟
                          空 空 。

 delim_1 ", "
                          分隔符
                          1 级键及其第一页
                          数字(默认值:逗号后跟
                          空 空 。

 delim_2 ", "
                          分隔符
                          2 级密钥及其第一页
                          数字(默认值:逗号后跟
                          空 空 。

 delim_n ", "
                          分隔符插入
                          同一键的两个页码
                          在任何级别(默认:逗号后跟
                          以空白表示)。

 delim_r“--”
                          分隔符插入
                          开始和结束页面
                          一定范围内的数字。

 delim_t“”
                          末尾插入分隔符
                          页面列表的分隔符。此分隔符具有
                          对没有影响的条目
                          相关页面列表。

简而言之,在你的序言中包含/更改以下内容:

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

\makeindex[options=-s \jobname.ist]

上述代码写入一个文件\jobname.istmakeindex样式文件),并将 的默认值更改为delim_1常规" "空格(从", ")。然后,要使用这个新创建的样式文件,请将选项传递-s \jobname.ist给对 的调用\makeindex。如果您有多个级别的页码,只需将delim_0delim_2、... 添加到.ist

在此处输入图片描述

\documentclass{book}

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

\usepackage{imakeidx}
\let\cleardoublepage\clearpage
\makeindex[options=-s \jobname.ist]
\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}

相关内容