俄语中的 Bibleref

俄语中的 Bibleref

我正在尝试使用bibleref俄语书籍,我希望1 Кор. 13:1-3在正文中有简短的参考资料,以及一个单独的圣经参考资料索引,该索引将按照圣经中的顺序排序,并将有参考资料,例如

Первое послание к Коринфянам
    13:1-3  . . . . . .  100

全球计划是,我

  1. 已修补bibleref.sty
  2. 重新定义\setbooktitle\setbookindextitle 并定义了一些其他内容以适应俄语圣经书名。
  3. 每次运行时我都会对.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-mouthbibleref-parse,但我不明白如何让它们与俄语一起工作。

PS 如果有人需要上面(...)中省略的命令的全文,我可以分享它。

相关内容