在索引条目后添加其翻译

在索引条目后添加其翻译

我想在索引条目后面添加翻译(另一种语言)。编译以下文档后,索引如下所示

空间.................空间,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}

相关内容