重新定义索引中的顺序

重新定义索引中的顺序

我正在生成圣经参考文献索引(使用bibleref)包。圣经参考文献通常不按书本字母顺序排序,而是按圣经中出现的顺序排序(《创世纪》、《申命记》等)。每章中的经文应按数字排序。

目前,我的索引看起来像(法语):

Actes
   1, 20
   1.4, 20
Apocalypse
   3.20, 56
   5, 62
1 Corinthiens
   2.9, 69
Daniel
   12.4, 29

相反,我想要的是:

Daniel
   12.4, 29
Actes
   1, 20
   1.4, 20
1 Corinthiens
   2.9, 69
Apocalypse
   3.20, 56
   5, 62

按圣经中出现的圣经书目排序。我认为xindy可以这样做(并且imakeidx可以使用xindy)。我该怎么做?

编辑:

bibleref软件包提供了一个\biblerefmap命令来修复索引。这通常可以正常工作,但法语圣经书名带有重音符号,并将\biblerefmap索引中找到的书名连接起来以创建宏名称,例如:

\newcommand*{\biblerefmap}[2]{%
   \expandafter\def\csname @bibleref@map@#1\endcsname{#2}%
} 

因此,由于重音,这失败了:

\biblerefmap{Genèse}{1@Ancien Testament!01}
\biblerefmap{Exode}{1@Ancien Testament!02}
\biblerefmap{Lévitique}{1@Ancien Testament!03}

生成索引时,bibleref会考虑\@bibleref@map@bookname宏,如果存在,则用内容替换书名。由于关键条目是索引中的完整书名,因此我不知道如何在法语中不使用重音字符。

有什么方法可以解决口音问题吗?

答案1

bibleref在本地修补了该模块:

--- a/bibleref/bibleref.sty
+++ b/bibleref/bibleref.sty
@@ -800,7 +800,7 @@ defined}{}}}
     \PackageError{bibleref}{Unknown book '#1'}{}%
   }%
   {%
-    \@bv@idxsort{\csname br@#1\endcsname}%
+    \@bv@idxsort{#1}%
     \def\@bv@chidxsort{}%
     \BRbooktitlestyle{\csname br@#1\endcsname}%
     \let\@bv@org@bookof\BRbookof

这样,它就是用于键的缩写形式,然后我可以使用\biblerefmap

\biblerefmap{Gn}{1@Ancien Testament!01}
\biblerefmap{Ex}{1@Ancien Testament!02}
\biblerefmap{Lv}{1@Ancien Testament!03}
etc.

这解决了我的问题。

相关内容