使用 biblatex 时使用 bibtex 条目的关键字字段的内容来建立索引

使用 biblatex 时使用 bibtex 条目的关键字字段的内容来建立索引

我用 biblatex 创建了一个阅读清单,其中列出了很长的法院判决。

该列表是使用\nocite{*}一次构建的,然后\printbibliography(实际上\printbibliography是使用基于关键字的过滤的几次)。

在其基本形式中,去除格式后,tex 文件看起来如下所示:

\documentclass[%
a4paper,%
12pt,%
twoside%
]%
{book}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[%
citestyle=biblatex-mcgill,%       
bibstyle=biblatex-mcgill,%
bibencoding=utf8,%
backend=biber,
abstract=true,
sorting=juranote,%
datezeros=false,%
eventdate=short,%
annotation=true,%
rating=true,
hyperref=false,%
]{biblatex}%

\begin{document}

\nocite{*}

\printbibliography[type=jurisdiction]

\end{document}

Biblatex-McGill 是我尚未发布的 Biblatex 风格,但我认为,就这个问题而言,知道它将“案例”定义为“管辖权”条目类型的同义词就足够了。

380 个条目中的每一个都广泛地标注了关键词(根据精心定义的法律分类法)。总的来说,书目中应该有大约 500 个不同的关键词。

在每个条目中,关键字字段是一个以逗号分隔的列表。

我的问题是:是否有可能在将条目写入索引时以某种方式自动传递关键字字段的内容,然后打印所有关键字的索引,并引用所有页面,其中在参考书目中打印了标有相应关键字/索引条目的决策。

以下是此类条目的随机样本:

@case{BGH-2012-07-12-IX-ZB-267-11,
Crossref = {BGH},
Date = {2012-07-12},
Date-Added = {2012-11-14 13:27:04 +0200},
Date-Modified = {2012-11-14 12:23:37 +0000},
Eventdate = {2012-07-12},
Keywords = {Einwendungen gegen den Titel (internationales Vollstreckungsrecht), Vollstreckungs- und Anerkennungsrecht (internationales), BGH, IZVR, JB-gesehen, Zivilrecht},
Note = {Beschl.},
Number = {IX ZB 267/11},
Rating = {5}}

@case{BVerfG-2009-10-15-2-BvR-2438-08,
    Additionalreporter = {NJW 2010, 287, wistra 2010, 60},
    Crossref = {BVerfG},
    Date = {2009-10-15},
    Date-Added = {2012-11-11 14:32:00 +0200},
    Date-Modified = {2012-11-13 19:26:58 +0000},
    Keywords = {JB-gesehen, außerhalb von Wohnungen nichtöffentlich gesprochenes Wort, Kaiser, Examen, Strafprozessrecht, BVerfG, Strafrecht, Ermittlungsmaßnahmen},
    Note = {Beschl.},
    Number = {2 BvR 2438/08},
    Preferredreporter = {BVerfGK 16, 299},
    Rating = {5}}

@case{VGHMannheim-2008-04-30-5-S-2858-06,
    Crossref = {VGHMannheim},
    Date = {2008-04-30},
    Date-Added = {2012-11-02 12:00:00 +0000},
    Date-Modified = {2012-11-13 19:24:44 +0000},
    Eventdate = {2008-04-30},
    Keywords = {Straßen- und Wegerecht, Verwaltungsrecht, Verjährung (unvordenkliche), Verwaltungsrecht AT, VGH Mannheim, Examen, JB-gesehen},
    Note = {Urt.},
    Number = {5 S 2858/06},
    Preferredreporter = {BWGZ 2008, 950},
    Rating = {5}}

@case{OLGStuttgart-2011-11-22-10-W-47-11,
    Crossref = {OLGStuttgart},
    Date = {2011-11-22},
    Date-Added = {2012-11-12 13:10:40 +0200},
    Date-Modified = {2012-11-13 16:12:12 +0000},
    Eventdate = {2011-11-22},
    Keywords = {einstweilige Verfügung (ZPO), Sachenrecht, OLG Stuttgart, petitorische Einwendungen (gegen den Besitzschutzanspruch), Examen, Besitz (als absolutes Recht), Zivilverfahrensrecht, Störerhaftung, einstweiliger Rechtsschutz (ZPO), Zivilrecht, Besitzstörung, Kaiser, absolute Rechte, JB-gesehen, Besitz},
    Note = {Beschl.},
    Number = {10 W 47/11},
    Rating = {3}}

@case{BGH-2008-11-28-LwZR-9-08,
    Crossref = {BGH},
    Date = {2008-11-28},
    Date-Added = {2012-11-13 17:14:27 +0200},
    Date-Modified = {2012-11-13 16:10:58 +0000},
    Eventdate = {2008-11-28},
    Keywords = {Sachenrecht, Zivilrecht, Examen, BGH, Besitz, Herausgabeanspruch des früheren Besitzers},
    Note = {Urt.},
    Number = {LwZR 9/08},
    Rating = {3}}

@case{BGH-2012-10-25-VII-ZB-31-12,
    Crossref = {BGH},
    Date = {2012-10-25},
    Date-Added = {2012-11-13 16:50:35 +0200},
    Date-Modified = {2012-11-13 15:47:33 +0000},
    Eventdate = {2012-10-25},
    Keywords = {Zwangsvollstreckungsrecht, Vollstreckungsverfahren, Fahrnispfändung, Geldforderung (Vollstreckung wegen), Examen, Zivilverfahrensrecht, Forderungspfändung, Zivilrecht, BGH, Unpfändbarkeit, JB-gesehen},
    Note = {Beschl.},
    Number = {VII ZB 31/12},
    Rating = {4}}

答案1

以下是使用该包的解决方案imakeidx(它也适用于其他索引方法):

\usepackage{imakeidx}
\makeindex[name=keywords, title=List of Keywords]

BibLaTeX 有用于生成索引条目的命令:首先,我们必须定义索引的格式。BibLaTeXkeywords中有一个用逗号分隔值的字段,因此我们可以用它\forcsvfield来解析单个关键字,并将它们传递给由调用组成的处理程序\index[keywords]

\DeclareIndexFieldFormat{keywords}{\forcsvfield{\index[keywords]}{keywords}}

\indexfield{keywords}然后我们必须确保关键字插入到关键字索引中:一种可能性是在每次处理 bibitem 时添加调用。

\AtEveryBibitem{\indexfield{keywords}}

如果自定义样式有打印关键字的指令(例如\usebibmacro{keywords}),那么\indexfield{keywords}可以将其插入宏中。

最后:

\printindex[keywords]

相关内容