在索引条目和页面指针后添加字符串,中间不加逗号

在索引条目和页面指针后添加字符串,中间不加逗号

在我的论文中,有大量的阿拉伯语术语。我将这些(转录的)术语包含在索引中。我想在索引条目后、指向页面的指针之前用括号添加相应的英语术语。为此,我定义了一个与和命令\trans类似的命令。我将这些命令放在文档的开头,以确保它们位于索引中的页面指针之前。这很有效,但问题是它在阿拉伯语术语和翻译之间产生了一个逗号,如下所示:\see\seealso

阿拉伯语术语,(英语翻译),2,3

有没有办法去掉有翻译的条目的逗号?我想要的输出是

阿拉伯语术语(英语翻译),2,3

\documentclass{book}
\usepackage{imakeidx}
\makeindex[columns=1]
\usepackage{kantlipsum}

\AtBeginDocument{
\index{arabic term|trans{english translation}}
}

\newcommand\trans[2]{(#1)}

\begin{document}
\kant[1]
\clearpage\kant[2]
\index{arabic term} 
\clearpage
\kant[3]
\index{arabic term} 

\printindex
\end{document}

答案1

在与主 TeX 文件相同的目录中创建一个文件andreas.ist(或任何你喜欢的名字,只要扩展名是),其中包含以下内容.ist

delim_0 "\\addindexcomma"

现在将您的文档更改为阅读

\documentclass{book}
\usepackage{imakeidx}
\makeindex[columns=1,options=-s andreas.ist]
\usepackage{kantlipsum}

\AtBeginDocument{%
  \index{arabic term|trans{english translation}}%
}

\newcommand\trans[2]{(#1)}
\makeatletter
\newcommand{\addindexcomma}{%
  \@ifnextchar\trans{\space}{,\space}%
}
\makeatother

\begin{document}
\kant[1]
\clearpage\kant[2]
\index{arabic term} 
\clearpage
\kant[3]
\index{arabic term} 

\index{bar} % for testing

\printindex
\end{document}

在此处输入图片描述

相关内容