使用 bibtex+babelbib 对俄语西里尔文书目条目进行排序和构建标签

使用 bibtex+babelbib 对俄语西里尔文书目条目进行排序和构建标签

我选择了babelbib包裹与 合作babel,生成一个bibtex包含用英语和俄语西里尔字母书写的项目的单一书目。

我使用的是参考书目样式babalphababelbib相当于标准alphaBibTeX 样式:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T2A,T1]{fontenc} % russian requires T2A
\usepackage[russian,main=english]{babel}
   \usepackage{babelbib}

\bibliographystyle{babalpha}

\begin{document}
\nocite{*}
\bibliography{master}
\end{document}

文件中需要附加字段master.bib的条目包括:babelbiblanguage

@book{ponomarenko86,
      author = "Пономаренко, Л. А. and Адамович, Л. В. 
            and Музычук,     В. Т. and Гридасов, А. Е.",
      title = {{Основы создания гибких атоматизированных производств}},
      publisher = "Технiка",
      year = "1986",
      language = "russian"
      }

@book{biblarz01,
      author = "Biblarz, Oscar and Sutton, George P. and Schroeder, Matt and King, Benjamin",
      title = {{Rocket Propulsion Elements}},
      publisher = "John Wiley \&{} Sons, Inc.",
      year = "2001",
      language = "english"
      }

@manual{encyclopediavolI-60,
        organization = {{U.S. Army RDECOM-ARDEC}},
        title = {{Encyclopedia of Explosives And Related Items, volume 1}},
        year = "1960",
        key = "US",
        language = "english"
        }

@manual{instr86,
        organization = {{Министерство обороны СССР, Орден Трудового Красного Знамени}},
        title = {{Типовая инструкция по эксплуатации топливоподачи
                  тепловых электростанций: ТИ 34-70-044-85}},
        year = "1986",
        key = "USS",
        language = "russian"
        }

得出的结果为: 在此处输入图片描述

第一个条目(关键词:)中的姓氏ponomarenko86可以音译为奥诺马连科,A达莫维奇,乌兹丘克和G里达索夫。

我希望第一个条目按原样打印,但将其归类到“Ponomarenko”下,并生成标签 [PAMG86]。(仅为具有 5 个或更多作者的条目babalpha.bst生成标签。)+

这些事情有可能实现吗babelbib?我应该迁移到吗biblatex


到目前为止我已经尝试过:

  • 放在@preamble{"\newcommand{\noopsort}[1]{}"}我的文件开头.bib,然后使用author = "{\noopsort{Ponomarenko}}Пономаренко, Л. А. ..."。这种方法对“Ponomarenko”下的条目进行排序,但无法生成正确的标签,并且似乎摆弄了每个参考书目项目的缩进。在此处输入图片描述
  • author使用没有必填或字段的条目类型editor(如manualmisc),允许我指定自己的key字段。问题是这些会产生略有不同的结果。

答案1

最近开发的嗜酒包,用易于构造的模板替换 BibTeX 的样式文件,可以轻松处理多种语言,并可以提供 OOP 所请求的行为。使用以下.tex文件

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc} % russian requires T2A
\usepackage[russian,main=english]{babel}

\begin{document}
\nocite{*}
\bibliographystyle{example}
\bibliography{master}
\end{document}

无需更改.bib文件,我们可以编写如下所示的样式模板文件

TEMPLATES:
book = [<au>|<ed>|<organization>|<institution>|], \textit{<title>} (<publisher>, <year>).[ <note>]
manual = [<au>|<ed>|<organization>|<institution>|], \textit{<title>}, (<organization>, <year>).[ <note>]

SPECIAL-TEMPLATES:
citelabel = [<key><year.-2:-1>|<citealpha>|]
sortkey = <citelabel>

如果数据库条目中定义了变量,则可以使用该key变量,并添加变量的最后两位数字year,或者使用citealpha模拟 BiBTeX 中使用的样式的本机变量alpha。有了这些输入,格式化的输出如下所示

在此处输入图片描述

相关内容