bbx 文件中的格式定义如下:
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{\mkbibquote{#1\isdot}}
% Modify the name format
{
\DeclareNameFormat{family-given-bold}{\mkbibbold{%
\renewcommand*{\multinamedelim}{\addsemicolon\addspace}%
\renewcommand*{\finalnamedelim}{\addsemicolon\addspace}%
\printunit{\mkbibbold{\addcolon\addspace}}%
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
\usebibmacro{name:andothers}}}
\DeclareNameAlias{sortname}{family-given-bold}
\DeclareNameAlias{author}{family-given-bold}
\DeclareNameAlias{editor}{family-given-bold}
\DeclareNameAlias{translator}{family-given-bold}
% Custom field formats
\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat[report]{title}{#1}
\DeclareFieldFormat[book,collection,inproceedings]{title}{#1}
\DeclareFieldFormat{url}{\url{#1}}
\DeclareFieldFormat{journaltitle}{#1\isdot} %journal non-italic
\DeclareFieldFormat[article]{volume}{\bibstring{volume}#1}
% Simple modifications to punctuation, etc.
\renewcommand*{\begrelateddelim}{\addsemicolon\space}%
\renewcommand*{\finalnamedelim}{\addsemicolon\space}{%
\renewcommand*{\intitlepunct}{\addspace}
\renewcommand*{\labelnamepunct}{\addspace}
\renewcommand*{\newunitpunct}{\addcomma\addspace}
Declarebibliographydriver- 部分如下所示:
\DeclareBibliographyDriver{article}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\iftoggle{bbx:articletitle}
{%
\usebibmacro{title}%
\printunit{\addcomma\addspace}%
}
{}%
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{bytranslator+others}%
\newunit\newblock
\printfield{version}%
\setunit{\addspace}%
\usebibmacro{journal+issuetitle}%
\newunit
\usebibmacro{byeditor+others}%
\newunit
\usebibmacro{note+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{issn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}%
}
\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{maintitle+title}%
\setunit{\addcomma\space}%
\printfield{edition}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{byauthor}%
\setunit{\addcomma\space}%
\usebibmacro{editor+others}%
\setunit{\addcomma\space}%
\newunit\newblock
\printfield{note}%
\setunit{\addcomma\space}%
\usebibmacro{publisher+location+date}%
\setunit{\addcomma\space}
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}%
}
\DeclareBibliographyDriver{booklet}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{howpublished}%
\newunit\newblock
\printfield{type}%
\newunit\newblock
\printfield{note}%
\setunit{\addsemicolon\space}%
\usebibmacro{location+date}%
\setunit{\addsemicolon\space}%
\printfield{volume}%
\setunit{\addsemicolon\space}%
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}%
}
\DeclareBibliographyDriver{collection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{maintitle+title}%
\newunit
\printfield{edition}%
\newunit
\printfield{volumes}%
\newunit
\printlist{language}%
\setunit{\addsemicolon\space}%
\usebibmacro{editor+others}%
\newunit\newblock
\setunit{\addsemicolon\space}%
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\setunit{\addsemicolon\space}%
\usebibmacro{publisher+location+date}%
\setunit{\addsemicolon\space}%
\printfield{volume}
\setunit{\addsemicolon\space}%
\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}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}%
}
\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{byauthor}%
\newunit
\iftoggle{bbx:chaptertitle}
{\usebibmacro{title}}
{}%
\setunit{\addspace}%
\usebibmacro{in:}%
\usebibmacro{bybookauthor}%
\setunit{\addspace}%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{editor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\printfield{volumes}%
\setunit{\addsemicolon\space}%
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\setunit{\addsemicolon\space}%
\usebibmacro{publisher+location+date}%
\setunit{\addsemicolon\space}%
\printfield{colume}%
\setunit{\addsemicolon\space}%
\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}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}%
}
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{byauthor}%
\newunit
\iftoggle{bbx:chaptertitle}
{\usebibmacro{title}}
{}%
\setunit{\addspace}%
\usebibmacro{in:}%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{editor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\printfield{volumes}%
\setunit{\addsemicolon\space}%
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\setunit{\addsemicolon\space}%
\usebibmacro{publisher+location+date}%
\setunit{\addsemicolon\space}%
\printfield{volume}%
\setunit{\addsemicolon\space}%
\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}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}%
}
\DeclareBibliographyDriver{inproceedings}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{byauthor}%
\setunit{\addspace}%
\usebibmacro{in:}%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{event+venue+date}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{volumes}%
\setunit{\addsemicolon\space}%
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\setunit{\addsemicolon\space}%
\printfield{volume}%
\setunit{\addsemicolon\space}%
\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}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}%
}
\DeclareBibliographyDriver{manual}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor}%
\newunit\newblock
\printfield{edition}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{type}%
\newunit
\printfield{version}%
\newunit
\printfield{note}%
\setunit{\addsemicolon\space}%
\printlist{organization}%
\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}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}%
}
\DeclareBibliographyDriver{online}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\printunit{\addspace}%
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{version}%
\newunit
\printfield{note}%
\newunit\newblock
\printlist{organization}%
\newunit\newblock
\iftoggle{bbx:eprint}
{\usebibmacro{eprint}}
{}%
\newunit\newblock
\usebibmacro{url+urldate}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}%
}
\DeclareBibliographyDriver{patent}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\addspace}%
\usebibmacro{byholder}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\usebibmacro{byauthor}%
\setunit{\addspace}%
\printfield{type}%
\newunit
\printfield{number}%
\iflistundef{location}
{}
{\setunit*{\addspace}%
\printtext[parens]{%
\printlist[][-\value{listtotal}]{location}}}%
\newunit\newblock
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{date}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}%
}
\DeclareBibliographyDriver{report}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\usebibmacro{byauthor}%
\setunit{\addsemicolon\space}%
\printfield{type}%
\setunit*{\addspace}%
\printfield{number}%
\newunit\newblock
\printfield{version}%
\newunit
\printfield{note}%
\setunit{\addsemicolon\space}%
\usebibmacro{institution+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isrn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}%
}
所以我的参考如下:
Böckh,P.;Wetzel,T.:Wärmeübertragung,Springer Berlin Heidelberg:柏林,海德堡,2015 年。
但我想为@misc 设一个例外。@misc 应将出版商显示为作者,并在出版商名称后打印(Hrsg.)在参考文献中:
Pfeiffer Vacuum(小时): 真空技术书籍第二卷,技术诀窍书籍 2013 年
我应该向 \DeclareFieldformat 和 \DeclareBibliographyDriver 添加什么?
答案1
我设法想出了一个解决方案。这可能不是最好的解决方案,但它有效:D
感谢您的帮助。
%Exception for publisher = author
\newbibmacro*{company}{%
\printlist{publisher}
%
}
\DeclareBibliographyDriver{misc}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{company}%
\print{\mkbibbold{(Hrsg.):}}
\usebibmacro{maintitle+title}%
\setunit{\addcomma\addspace}%
\printfield{edition}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{byauthor}%
\setunit{\addcomma\space}%
\usebibmacro{editor+others}%
\setunit{\addcomma\space}%
\newunit\newblock
\printfield{note}%
\setunit{\addcomma\space}%
\usebibmacro{date}%
\setunit{\addcomma\space}
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}%
}
答案2
我不会为此重写驱动程序。
如果某个人或某个机构或公司是编辑(赫劳斯盖伯) 并且应该显示在条目的开头,只需将它们放在该editor
字段中即可。
例如,你甚至可以这样说普发真空是author
,而不是editor
作品的 。
没有规定author
s 或editor
s 必须是真人。他们很可能是公司、企业或机构。重要的是作者/编辑身份(作品的属性),而不是实体是否是人(相应实体的属性)。只需记住,非人名应该用一对额外的花括号括起来,以阻止 Biber 和 BibTeX 将它们解析为家人和名字(就像对人名所做的那样)。请参阅在书目条目的“作者”字段中使用“公司作者”(完整拼写出姓名)。
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authortitle]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{vacuum,
author = {{Pfeiffer Vacuum}},
maintitle = {The Vacuum Technology Book},
volume = {2},
part = {2},
title = {Know how book},
year = {2013},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite{sigfridsson,vacuum}
\printbibliography
\end{document}
如果您需要更多大胆的东西,您仍然可以不重新定义驱动程序。
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authortitle, punctfont]{biblatex}
\DeclareNameWrapperFormat{bold}{\mkbibbold{#1}}
\DeclareNameWrapperAlias{sortname}{bold}
\DeclareNameWrapperAlias{author}{sortname}
\DeclareNameWrapperAlias{editor}{sortname}
\DeclareNameWrapperAlias{translator}{sortnamed}
\DeclareFieldFormat{editortype}{\mkbibbold{\mkbibparens{#1}}}
\DeclareDelimFormat{editortypedelim}{\addspace}
\DeclareFieldAlias{translatortype}{editortype}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}
\begin{filecontents}{\jobname.bib}
@book{vacuum,
editor = {{Pfeiffer Vacuum}},
maintitle = {The Vacuum Technology Book},
volume = {2},
part = {2},
title = {Know how book},
year = {2013},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite{sigfridsson,vacuum}
\printbibliography
\end{document}