在学术研究中,对一首诗篇的引用缩写为“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
以及对的引用?Psalm
Pss
答案1
我不确定如何修复bibref
(或),所以我所做的是在文件被处理之前bibref-german
替换文件中的书名。*.idx
makeindex
首先,我需要指定一个映射,其中“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