![Biblatex:定义自定义样式还是修改现有样式?](https://linux22.com/image/251581/Biblatex%EF%BC%9A%E5%AE%9A%E4%B9%89%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A0%B7%E5%BC%8F%E8%BF%98%E6%98%AF%E4%BF%AE%E6%94%B9%E7%8E%B0%E6%9C%89%E6%A0%B7%E5%BC%8F%EF%BC%9F.png)
我需要的引用样式似乎与提供的 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
就会自动将您的引用放入脚注中(除非您已经在脚注中)。我加载
babel
并csquotes
使用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
它看起来是这样的:
我是否遗漏了什么?
编辑:更正了以斜体显示的书籍和合集/书内标题。它们现在以罗马字体显示(但我没有重新上传图片)。