修改参考书目驱动程序 biblatex oscola

修改参考书目驱动程序 biblatex oscola

在我之前想要修改参考书目驱动程序时,我在这里得到了很大的帮助@incollection强制将信息(页面)打印到参考书目中;更改引用样式) 事实证明,还有最后两个修改我想了解:它们涉及@articleOscola 中参考书目的呈现方式,不幸的是,它只显示第一页而不是页码范围,以及参考书目中引用作者姓名的方式,不幸的是,它使用了缩写的名字。

我不明白我需要做哪些更改才能将整个页面范围打印在参考书目中。Oscola BBX 代码可在此处找到:https://github.com/PaulStanley/oscola-biblatex/blob/1.6/oscola.bbx

我怀疑只打印第一页的原因在第413行(?):

\DeclareFieldFormat[article]{pages}{%
  \mkfirstpage*{#1}}

有人能告诉我需要做哪些修改,以便参考书目中的条目显示为 Fauchald OK,“ICSID 法庭的法律推理 - 实证分析”(2008)19(2)欧洲国际法杂志 301-364

此外,我希望参考书目中的作者姓名不要显示为“Fauchald OK”,而是“Fauchald, Ole Kristian”。 和@book的作者也应如此@incollection

很感谢任何形式的帮助!

下面是我的最小示例,其中包括确保@incollection项目以整个页面范围打印在参考书目中的行(感谢 moewe,请参阅上面的第一个链接):

\documentclass{article}

\usepackage[british]{babel}
\usepackage[style=british]{csquotes}\usepackage[T1]{fontenc}
\usepackage[style=oscola,
  indexing=cite,
  backend=biber,
  citepages=suppress,
  ecli=yes,
  citereset=chapter,
  babel=hyphen]{biblatex}

\makeatletter
\newbibmacro*{chapter+pages}{%
  \printfield{chapter}%
  \setunit{\bibpagespunct}%
  \printfield{pages}%
  \ifboolexpr{
      not test {\iffieldundef{pages}}
      or not test {\iffieldundef{chapter}}}
    {\bbx@resetpostnotedelim}
    {}%
  \newunit}
\makeatother

\DeclareBibliographyDriver{inbook}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\addcomma\space}\newblock
  \usebibmacro{title}%
  \usebibmacro{byauthor}%
  \usebibmacro{in:}%
  \newunit\newblock%
  \usebibmacro{bybookauthor/editor/translator}%
  \newblock%
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \newunit\newblock
  \usebibmacro{publicationinfo}%
  \newunit\newblock
  \usebibmacro{revisedbookvolume}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{inreference}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \clearlist{publisher}%
  \newunit\newblock
  \usebibmacro{title}%
  \usebibmacro{byauthor}%
  \setunit{\addcomma\space}%
  \setunit{\addcomma\space}%
  \usebibmacro{maintitle+booktitle}%
  \newunit
  \usebibmacro{publicationinfo:short}%
  \usebibmacro{revisedbookvolume}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}}

\addbibresource{fauchald.bib}

\begin{document}
Lorem \autocite[303]{fauchald_legal_2008}
Lorem \autocite[50]{koskenniemi_apology_2007}
Lorem \autocite[280]{rasulov_doctrine_2013}

\printbibliography
\end{document}

Fauchald.bib 包含:

@article{fauchald_legal_2008,
  title = {The {Legal} {Reasoning} of {ICSID} {Tribunals} - {An} {Empirical} {Analysis}},
  volume = {19},
  number = {2},
  journal = {European Journal of International Law},
  author = {Fauchald, Ole Kristian},
  year = {2008},
  pages = {301--364}
}

@incollection{rasulov_doctrine_2013,
  address = {Leiden},
  title = {The {Doctrine} of {Sources} in the {Discourse} of the {Permanent} {Court} of {International} {Justice}},
  booktitle = {Legacies of the {Permanent} {Court} of {International} {Justice}},
  publisher = {Brill},
  author = {Rasulov, Akbar},
  editor = {Tams, Christian J. and Fitzmaurice, Malgosia},
  year = {2013},
  pages = {271--317}
}

@book{koskenniemi_apology_2007,
  address = {Cambridge},
  edition = {2},
  title = {From {Apology} to {Utopia}: {The} {Structure} of {International} {Legal} {Argument} - {Reissue} {With} {New} {Epologue}},
  publisher = {Cambridge University Press},
  author = {Koskenniemi, Martti},
  year = {2007}
}

答案1

您对为什么只打印参考书目中的文章的第一页的猜测是正确的。您可以通过在序言中添加以下内容来修复此问题:

\DeclareFieldFormat[article]{pages}{\mknormrange{#1}}

giveninits通常,使用选项来控制名字的首字母打印biblatex,但biblatex-oscola对其进行了硬编码。您可以通过在序言中添加以下内容来修复此问题:

\AtBeginBibliography{%
  \togglefalse{abx@bool@giveninits}}

我们还需要在姓氏和名字之间添加逗号,这可以通过将其添加到序言中来完成:

\renewcommand*{\revsdnamepunct}{\addcomma\space}

您的示例(经过一些修改以使其与的当前版本兼容biblatex)给我:

输出

相关内容