Biblatex:定义自定义样式还是修改现有样式?

Biblatex:定义自定义样式还是修改现有样式?

我需要的引用样式似乎与提供的 Biblatex 样式相差甚远,我不确定是最好彻底修改现有样式还是编写自定义样式;而且我也不太确定具体该怎么做。完整引用应放在脚注中;没有参考书目。同上。在适当的情况下使用,但不是同上。这是我需要的:

文章:

首次提及:

艾伦·卡尔森,《自然与积极美学》,环境伦理6 (1984),5-34,第33-4页。

后续(如果没有同上。):

Carlson,《自然与积极美学》,33-4。

(注:只有卷,没有数字)

书:

首次提及:

唐纳德·沃斯特,自然经济:生态思想史(第二版,剑桥:剑桥大学出版社,1994 年),471。

随后的:

更糟糕的是,自然经济,19–38。

入账和收藏:

首次提及:

Charles Shah Pittendrigh,《适应、自然选择和行为》,载于 Anne Roe 和 George Simpson 编,行为与进化(纽黑文:耶鲁大学出版社, 1958 年),390–416,第 400 页。

随后的:

Pittendrigh,《适应、自然选择和行为》,392。

非常感谢您的建议!

编辑:

补充:

文档 MWE:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[bibstyle=verbose-ibid, citestyle=BJA,
usetranslator=true, ibidpage=true]{biblatex}
\bibliography{natural_aesthetics.bib}
\begin{document}
\footcite[37]{Godlovitch1994}
\footcite[37]{HumeSOT}
\footcite[37]{berleant2005}
\footcite[37]{Carroll1993}
\footcite[37]{Godlovitch1994}
\footcite[37]{HumeSOT}
\footcite[37]{berleant2005}
\footcite[37]{Carroll1993}
\end{document}

MWE bib 文件:

@BOOK{Berleant2005,
title = {Aesthetics and Environment},
publisher = {Ashgate},
year = {2005},
author = {Arnold Berleant},
location = {Aldershot}
}
@INCOLLECTION{Carroll1993,
author = {Noel Carroll},
title = {On Being Moved By Nature: Between Religion and Natural History},
booktitle = {Landscape, Natural Beauty and the Arts},
publisher = {Cambridge University Press},
year = {1993},
editor = {Salim Kemal and Ivan Gaskell},
pages = {244-266},
location = {Cambridge}
}
@INBOOK{HumeSOT,
pages = {134--149},
title = {Of The Standard of Taste},
publisher = {Ward, Lock and Bowden},
year = {1875},
author = {David Hume},
bookauthor = {David Hume},
booktitle = {Essays Literary, Moral, and Political},
location = {London}
}
@ARTICLE{Godlovitch1994,
author = {Stan Godlovitch},
title = {Icebreakers: Environmentalism and Natural Aesthetics},
journal = {Journal of Applied Philosophy},
year = {1994},
volume = {11},
pages = {15-30},
number = {1}
}

BJA.cbx 正在修改中:采纳建议将内容附加到 verbose-ibid.cbx 中:最后是我的补充和请求。

% $Id: BJA.cbx,v 1.0 $

\ProvidesFile{BJA.cbx}
[\abx@cbxid $Id: BJA.cbx, v 1.0 $]

\RequireCitationStyle{verbose-ibid}

\AtEveryCitekey{
  \clearfield{number}} %removes journal number for articles

\renewbibmacro{in:}{%
  \ifentrytype{article}{}{%
  \printtext{\bibstring{in}\intitlepunct}}} % removes in for articles


\DeclareFieldFormat{postnote}{at #1}% replaces p and pp with at in page refs
\DeclareFieldFormat{multipostnote}{at #1}% replaces p and pp with at
\DeclareFieldFormat{pages}{#1} %omits pp in article etc
\renewcommand*{\newunitpunct}{\addcomma\space} %comma space between units

%for book: put (edition, location: publisher, year)

%for article, inbook, incollection: single quotes round titles

% for inbook, incollection: editors names (eds), title, (edition, location: publisher, year)

% for inbook, incollection: no punctuation after in


\endinput

答案1

在这里,我认为这应该或多或少地满足您的要求(当您添加具有不同字段的新项目时,您可能会发现一些问题……总是会发生)。以下几件事您可能感兴趣:

  • 您可以加载该包autocite=footnote并添加\let\cite=\autocite到您的序言中,这样\cite就会自动将您的引用放入脚注中(除非您已经在脚注中)。

  • 我加载babelcsquotes使用british语言来获取您需要的单引号;我不知道还有什么其他正确的方法可以做到这一点。

  • 您仍需要复制并修改english.lbx和更改“版本”和“编辑”/“编辑”的简写。这些更改无法在序言中完成。

现在,将其添加到你的序言中:

\usepackage[british]{babel}
\usepackage{csquotes}

您可以将其复制到您的样式文件中:

% $Id: BJA.cbx,v 1.0 $

\ProvidesFile{BJA.cbx}
[\abx@cbxid $Id: BJA.cbx, v 1.0 $]

\RequireCitationStyle{verbose-ibid}

% Remove journal number for articles
\AtEveryCitekey{%
  \ifentrytype{article}
    {\clearfield{number}}
    {}}

% Delete pagination in postnote (p., etc.) — No idea why I had to do this for it to work
\AtEveryCitekey{%
  \ifciteseen
    {\DeclareFieldFormat{postnote}{#1}%
      \DeclareFieldFormat{multipostnote}{#1}}
    {\DeclareFieldFormat{postnote}{at #1}%
      \DeclareFieldFormat{multipostnote}{at #1}}}

% Remove "in" for articles
\renewbibmacro{in:}{%
  \ifentrytype{article}
    {}
    {\printtext{\bibstring{in}\nopunct\addspace}}}

% Don't italicise title
\DeclareFieldFormat{title}{#1}
\DeclareFieldFormat{citetitle}{#1}
\DeclareFieldFormat{booktitle}{#1}
\DeclareFieldFormat{maintitle}{#1}

% Don't italicise journal title
\DeclareFieldFormat{journaltitle}{#1}

% Cite "eds." in parentheses
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}

% Omit "p." indicator
\DeclareFieldFormat{pages}{#1}

% Use comma and space between units
\renewcommand*{\newunitpunct}{\addcomma\space}

% Book Customisation

\DeclareBibliographyDriver{book}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{maintitle+title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \space\nopunct
  \mkbibparens{%
    \setunit{\unspace}\newblock
    \iffieldundef{edition}
      {}
      {\printfield{edition}%
        \newunit}
    \usebibmacro{publisher+location+date}}
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}}

% Inbook Customisation

\DeclareBibliographyDriver{inbook}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{bybookauthor}%
  \newunit\newblock
  \ifnameundef{editor}
    {}
    {\printnames{editor}%
     \setunit{\addspace}%
     \usebibmacro{editor+othersstrg}}
  \newunit\newblock
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \space\nopunct
  \mkbibparens{%
    \setunit{\unspace}\newblock
    \iffieldundef{edition}
      {}
      {\printfield{edition}%
        \newunit}
    \usebibmacro{publisher+location+date}}
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}}

% Incollection Customisation

\DeclareBibliographyDriver{incollection}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
  \newunit\newblock
  \ifnameundef{editor}
    {}
    {\printnames{editor}%
     \setunit{\addspace}
     \usebibmacro{editor+othersstrg}}
  \newunit\newblock
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \space\nopunct
  \mkbibparens{%
    \setunit{\unspace}\newblock
    \iffieldundef{edition}
      {}
      {\printfield{edition}%
        \newunit}
    \usebibmacro{publisher+location+date}}
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}}

% For "edition"="edn", modify a copy of english.lbx
% Same goes for "eds" without a dot

\endinput

它看起来是这样的:

在此处输入图片描述

我是否遗漏了什么?

编辑:更正了以斜体显示的书籍和合集/书内标题。它们现在以罗马字体显示(但我没有重新上传图片)。

相关内容