在我的论文中,有大量的阿拉伯语术语。我将这些(转录的)术语包含在索引中。我想在索引条目后、指向页面的指针之前用括号添加相应的英语术语。为此,我定义了一个与和命令\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}