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