@misc 与其他参考书目风格不同

@misc 与其他参考书目风格不同

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作品的 。

没有规定authors 或editors 必须是真人。他们很可能是公司、企业或机构。重要的是作者/编辑身份(作品的属性),而不是实体是否是人(相应实体的属性)。只需记住,非人名应该用一对额外的花括号括起来,以阻止 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}

普发真空。真空技术手册。Bd. 2.2:技术手册。2013 年。

如果您需要更多大胆的东西,您仍然可以不重新定义驱动程序。

\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}

相关内容