我想为包含多种语言名称的文档构建一些索引。我从阅读中了解到,要走的路是imakeidx
使用并进行texindy
处理...因为以前的软件包在处理多个索引甚至按外语排序时都存在问题。
我已经使大部分工作正常进行,除了一个问题——在单词末尾和页码之间放置点(省略号)。
我首先尝试了man texindy
TL'20 附带的 2.5.1 版本。这会将读者带到大约 15 年前的“The LaTeX Companion(第 2 版)”...所以我明白了。但这会将读者带到网站 xindy.org,即使在那之后,我仍然无法很好地掌握如何完成这个简单的任务——用点填充行尾和页码之间的空格,如下所示:
fruit ........ 7
apple .....11
banana ....13
我已经能够一路解决这个问题:
\documentclass{article}
\usepackage{makeidx}
\makeindex
\let\lettergroup\textbf
\usepackage{filecontents}
\begin{document}
\begin{filecontents*}{mal-style.xdy}
(markup-index :open "\begin{theindex}~n"
:close "~n~n\end{theindex}~n"
:tree)
(markup-indexentry :open "~n\item " :close "" :depth 0)
(markup-indexentry :open "~n \subitem " :close "" :depth 1)
(markup-indexentry :open "~n \subsubitem " :close "" :depth 2)
(markup-locclass-list :open "\dotfill " :sep ", " :close "")
(markup-locref-list :sep ", ")
\end{filecontents*}
\index{premier niveau}
\index{niveau!1@premier}
\index{niveau!2@deuxième}
\index{niveau!1@premier!1@premier}
\index{niveau!1@premier!2@deuxième}
\index{étrangères}
\index{Ça va}
\index{À quelle}
\printindex
My first paragraph\ldots
\end{document}
这是 @Mailipivo 在此处简化的代码texindy 等同于 makeindex 设置。
它使用makeidx
并运行良好,并使用模块来产生下面的点xindy
,但我无法将它移动到,imakeidx
所以我可以将它用于多个索引。
答案1
我终于能够得到正确的组合:
\documentclass{article}
\usepackage[xindy]{imakeidx}
\makeindex[name=std, title=Remissivo]
\makeindex[name=not, title=Notações]
\let\lettergroup\textbf
\begin{document}
My first paragraph\ldots
\index[std]{premier niveau}
\index[std]{niveau!1@premier}
\index[std]{niveau!2@deuxième}
\index[std]{niveau!1@premier!1@premier}
\index[std]{niveau!1@premier!2@deuxième}
\index[std]{étrangères}
\index[std]{Ça va}
\index[std]{À quelle}
\index[not]{premier niveau}
\index[not]{niveau!1@premier}
\index[not]{niveau!2@deuxième}
\index[not]{niveau!1@premier!1@premier}
\index[not]{niveau!1@premier!2@deuxième}
\index[not]{étrangères}
\index[not]{Ça va}
\index[not]{À quelle}
\printindex[std]
\printindex[not]
\end{document}
并使用该模块:
(markup-index :open "\begin{theindex}~n"
:close "~n~n\end{theindex}~n"
:tree)
(markup-indexentry :open "~n\item " :close "" :depth 0)
(markup-indexentry :open "~n \subitem " :close "" :depth 1)
(markup-indexentry :open "~n \subsubitem " :close "" :depth 2)
(markup-locclass-list :open "\dotfill " :sep ", " :close "")
(markup-locref-list :sep ", ")
使用下列命令:
xelatex file
texindy -C utf8 -L french -M mal-style std.idx
texindy -C utf8 -L french -M mal-style not.idx
xelatex file