这个问题扩展了最近在如何有选择地删除索引条目中的逗号
在上面的帖子中,回答说通过插入\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.ist
(makeindex
样式文件),并将 的默认值更改为delim_1
常规" "
空格(从", "
)。然后,要使用这个新创建的样式文件,请将选项传递-s \jobname.ist
给对 的调用\makeindex
。如果您有多个级别的页码,只需将delim_0
、delim_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}