在 bibleref / bibleref-german 中索引单篇和多篇诗篇

在 bibleref / bibleref-german 中索引单篇和多篇诗篇

在学术研究中,对一首诗篇的引用缩写为“Ps”(代表“诗篇”),而对多首诗篇的引用则缩写为“Pss”(代表“诗篇”)。

bibleref-german软件包确实适应了这一点,当使用缩写“Ps”时,会打印“Pss”,并定义一本新书“Psalm”,为其打印缩写“Ps”。

这本书的定义如下bibleref-german.sty

\def\br@Psalm{Ps\BRperiod}%
\def\br@Psalms{Pss\BRperiod}%

我的 MWE 如下所示:

\documentclass[a4paper,10pt]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[RGG]{bibleref-german}
\usepackage{makeidx}
\makeindex

\begin{document}
Single psalm reference: \ibibleverse{Psalm}(23:1)

Multiple psalm references: \ibibleverse{Ps}(119:105); \ibiblechvs{Ps}(121:2)

\printindex
\end{document}

渲染后的文本如下所示:

Single psalm reference: Ps 23,1

Multiple psalm references: Pss 119,105; 121,2

问题在于索引中也会进行这种区分,即索引中“Ps”和“Pss”有两个不同的条目:

圣经诗篇索引

我想在文本中区分“Ps”和“Pss”,但索引中所有引用都列在“Pss”(或“Ps”)下。我如何实现在索引中同时映射对的引用Ps以及对的引用?PsalmPss

答案1

我不确定如何修复bibref(或),所以我所做的是在文件被处理之前bibref-german替换文件中的书名。*.idxmakeindex

首先,我需要指定一个映射,其中“Ps”和“Pss”具有相同的顺序:

[...]
\biblerefmap{Ps}{23} 
\biblerefmap{Pss}{23} 
[...]

然后,在编译 tex 文件之后和创建索引之前,我需要进行字符串替换(例如,使用sed在此处查看替代方案):

pdflatex file.tex
sed -i "s/BRbooktitlestyle {Pss}/BRbooktitlestyle {Ps}/g" file.idx
makeindex file.idx
pdflatex file.tex

相关内容