我想在索引条目后面添加翻译(另一种语言)。编译以下文档后,索引如下所示
空间.................空间,1
我更希望采用以下形式:
espace, 1 ........................空间
如何修改索引命令来实现这一点?这种风格的一个动机是合并索引和词汇表/词典。
\documentclass{article}
\usepackage{makeidx}
\makeindex
\begin{document}
espace \index{espace\dotfill space}
\printindex
\end{document}
答案1
在我的解决方案中,您通常编写索引条目\index{entry}
,并且可以按照以下形式编写字典:
\tr {espace} {space}
\tr {monde} {world}
% ... etc.
完整示例如下:
\documentclass{article}
\usepackage{makeidx}
\makeindex
\long\def\addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
\addto\theindex{\catcode`\^^X=13 \endlinechar=`\^^X}
{\catcode`\^^X=13
\gdef^^X{}
\expandafter\gdef\csname @idxitem\endcsname#1, #2^^X{\par #1, #2%
\leaders\hbox{\kern1pt.\kern1pt}\hfill \csname tr:#1\endcsname\par}
}
\def\indexspace{}
\catcode`\^^X=9
\def\tr #1#2{\expandafter\def\csname tr:#1\endcsname{#2}}
\tr {espace} {space}
\tr {monde} {world}
\begin{document}
espace \index{espace}
mode \index{monde}
\printindex
\end{document}
答案2
这是一个解决方案
\documentclass{article}
\usepackage{makeidx}
\makeindex
\let\mtindex\theindex
\renewcommand{\theindex}{%
\mtindex%
\let\par\empty%
\def\item##1##2{%
\ifx\mtitem\undefined\else
\dotfill\mbox{\mtitem}\endgraf
\fi
\gdef\mtitem{##2}%
\hangindent 40pt ##1}}
\let\mtendindex\endtheindex
\renewcommand{\endtheindex}{%
\dotfill\mbox{\mtitem}%
\let\par\endgraf%
\mtendindex}
\begin{document}
espace \index{{espace}{space}}
mode \index{{monde}{world}}
\newpage
espace \index{{espace}{space}}
\printindex
\end{document}