自定义 Incollection 风格

自定义 Incollection 风格

Incollection 样式如下所示: 在此处输入图片描述

但它应该看起来像这样:
Vader,Darth。“如何打败达斯·维达”。在:星球大战, hg. v. Skywalker, Luke 和 H. Solo。Naboo 2018,第 130-154 页。

因此需要改变以下几点:

  1. 在发布者前添加 hg. v.
  2. 用逗号代替分号
  3. 出版商的名称应先写姓氏,后写名字;第二个出版商应先写其姓名首字母,后写姓氏
  4. 出版商后面应该有一个句号,而不是逗号
  5. 地址应显示在年份之前

我怎样才能改变这些事情?

 \RequirePackage{filecontents}

    \begin{filecontents}{\jobname.bib}
    @InCollection{vader,
        author    = {Darth Vader},
        title     = {How to beat darth vader},
        booktitle = {Star Wars},
        year      = {2018},
       %  address    = {Naboo}
        publisher = {Luke Skywalker; H. Solo},
        pages = {123-134},
    }
    \end{filecontents}



    \documentclass{article}
    \usepackage[style=authortitle]{biblatex}
    \addbibresource{\jobname.bib}

    \renewbibmacro[article]{in:}{}



    \begin{document}
    Cite \footcite{vader}
    \printbibliography
    \end{document}

答案1

编辑(赫劳斯盖伯editor)是作品的publisher出版公司 (出版社and)。无论期望的输出是什么,名称列表总是用 分隔。

我以自己的biblatex-ext风格为基础,因为它可以稍微更快地解决一些问题,参见地点和日期之间只有空格

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman] {babel}
\usepackage[autostyle]{csquotes}
\usepackage[style=ext-authortitle, articlein=false]{biblatex}


\DeclareNameAlias{default}{family-given/given-family}

\DefineBibliographyStrings{german}{
  byeditor = {hg\adddotspace von},
}

\renewcommand*{\locdatedelim}{\addspace}

\renewbibmacro*{incollection:parent}{%
  \iftoggle{bbx:innamebeforetitle}
    {\usebibmacro{in:editor+others}%
     \setunit{\printdelim{innametitledelim}}\newblock}
    {}%
  \usebibmacro{maintitle+booktitle}%
  \setunit{\addcomma\space}\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \usebibmacro{edition}%
  \newunit
  \usebibmacro{barevolume+volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \usebibmacro{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{vader,
  author    = {Darth Vader},
  title     = {How to beat darth vader},
  booktitle = {Star Wars},
  year      = {2018},
  address   = {Naboo},
  editor    = {Luke Skywalker and H. Solo},
  pages     = {123-134},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Cite \footcite{vader,sigfridsson}
\printbibliography
\end{document}

Sigfridsson, Emma 和 Ulf Ryde。“从电势和力矩推导原子电荷的方法比较”。《计算化学杂志》19.4 (1998),第 377-395 页。doi:10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P.//Vader, Darth。“如何打败达斯·维达”。在:《星球大战》,Hg. von Skywalker, Luke 和 H. Solo。Naboo 2018,第 123-134 页。

答案2

我不知道如何区分出版商名称的格式,除非直接在 .bib 文件中。对于其余部分,这里有一个建议,重新定义宏publisher+location+date

\documentclass{article} 

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@InCollection{vader,
    author = {Darth Vader},
    title = {How to beat darth vader},
    booktitle = {Star Wars},
    year = {2018},
    location = {Naboo},
    publisher = {Skywalker Luke, H. Solo},
    pages = {123-134},
}
\end{filecontents}
\usepackage[style=authortitle]{biblatex}
\addbibresource{\jobname.bib}

\usepackage{xpatch} 

\renewbibmacro*{publisher+location+date}{%
  \iflistundef{publisher}
    {\setunit*{\addcomma\space}}
    {\printtext{Hg. v.}\setunit*{\addspace}}%
  \printlist{publisher}%
  \setunit*{\adddot\space}%
  \printlist{location}%
  \setunit*{\addcomma\space}%
  \usebibmacro{date}%
  \newunit}

\renewbibmacro{in:}{}%[article]

\begin{document}

Cite \footcite{vader}
\printbibliography

\end{document} 

在此处输入图片描述

相关内容