![在索引条目和页面指针后添加字符串,中间不加逗号](https://linux22.com/image/319351/%E5%9C%A8%E7%B4%A2%E5%BC%95%E6%9D%A1%E7%9B%AE%E5%92%8C%E9%A1%B5%E9%9D%A2%E6%8C%87%E9%92%88%E5%90%8E%E6%B7%BB%E5%8A%A0%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%8C%E4%B8%AD%E9%97%B4%E4%B8%8D%E5%8A%A0%E9%80%97%E5%8F%B7.png)
在我的论文中,有大量的阿拉伯语术语。我将这些(转录的)术语包含在索引中。我想在索引条目后、指向页面的指针之前用括号添加相应的英语术语。为此,我定义了一个与和命令\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}