我正在尝试使用bibleref
俄语书籍,我希望1 Кор. 13:1-3
在正文中有简短的参考资料,以及一个单独的圣经参考资料索引,该索引将按照圣经中的顺序排序,并将有参考资料,例如
Первое послание к Коринфянам
13:1-3 . . . . . . 100
全球计划是,我
- 已修补
bibleref.sty
- 重新定义
\setbooktitle
,\setbookindextitle
并定义了一些其他内容以适应俄语圣经书名。 - 每次运行时我都会对
.idx
文件进行一些清理
我确信第 1 点和第 3 点不是好的 LaTeX 风格,并且我将非常感激关于如何以好的方式做到这一点的建议。
好的,详细信息就在这里,抱歉,文字太多了。
但我希望它对某些人有用。
修补bibleref.sty
这个想法是从这里,并且它还帮助我处理所有其他的事情。
我把第 803 行从
\@bv@idxsort{\csname br@#1\endcsname}%
到
\@bv@idxsort{#1}%
介绍俄语书名
我写了一个包含定义的长文件。
首先我介绍一下处理圣经参考文献的命令,它被称为\Bref
,并使用一个参数。
\makeatletter
\protected\def\Bref#1{\xBref{}#1 \relax}
\def\xBref#1#2 #3{%
\ifx\relax#3%
\ibibleverse{\@nameuse{\detokenize{#1}}}(#2)% detokenize needed to deal with encoded strings
\expandafter\xthree
\fi
\xBref{#1#2}#3}
\def\xthree#1#2#3{}
\makeatother
然后我介绍了要使用的俄语简称变体(带点和不带点,以防万一):
\makeatletter
\@namedef{\detokenize{Быт}}{Genesis}
\@namedef{\detokenize{Быт.}}{Genesis}
...
\@namedef{\detokenize{Откр}}{Revelation}
\@namedef{\detokenize{Откр.}}{Revelation}
\makeatother
然后我把所有圣经书籍的简称和全名按照适当的顺序排列起来:
\setbooktitle{Genesis}{Быт\BRperiod}%
\setbooktitle{Exodus}{Исх\BRperiod}%
\setbooktitle{Leviticus}{Лев\BRperiod}%
...
\setbooktitle{IIIJohn}{\BRbooknumberstyle{3}Ин\BRperiod}%
\setbooktitle{Jude}{Иуд\BRperiod}%
\setbooktitle{Revelation}{Откр\BRperiod}%
\setindexbooktitle{Genesis}{Ветхий Завет!01@Бытие}%
\setindexbooktitle{Exodus}{Ветхий Завет!02@Исход}%
...
\setindexbooktitle{Hebrews}{Новый Завет!26@Послание к Евреям}%
\setindexbooktitle{Revelation}{Новый Завет!27@Откровение Иоанна Богослова}%
我用multind
,所以
\makeindex{bible}
\renewcommand{\biblerefindex}{\index{bible}}
清理.idx
很遗憾,我的.idx
文件有点乱:
\indexentry{John\relax \relax @\BRbooktitlestyle {Новый Завет!04@Евангелие от Иоанна}!007:024@\BRchapterstyle {7}\BRchvsep \BRversestyle {24}|textrm}{21}
\indexentry{ICorinthians\relax \relax @\BRbooktitlestyle {Новый Завет!14@Первое послание к Коринфянам}!006:019@\BRchapterstyle {6}\BRchvsep \BRversestyle {19}|textrm}{22}
我几乎不需要其中一半的东西,而且它也不能正常xindy
工作。
此外,我的工作目录路径包含俄文字母,所以我必须将.idx
文件复制到其他路径更简单的地方。因此我运行了这样一个 shell 脚本:
sed "s/|textrm//" bible.idx | sed "s/\(\\\indexentry{\).*@\\\BRbooktitlestyle {\([^}]*\)}/\1\2/" > ~/Documents/Tools/xindy/bible.idx
cd ~/Documents/Tools/xindy/
xindy -M texindy -M page-ranges -L russian -C utf8 -o bible.ind bible.idx
cd -
cp ~/Documents/Tools/xindy/bible.ind bible.ind
我得到的结果对我来说还可以,但可能还有更好的方法。我尝试使用bibleref-mouth
和bibleref-parse
,但我不明白如何让它们与俄语一起工作。
PS 如果有人需要上面(...)中省略的命令的全文,我可以分享它。