书目:删除(书)标题和系列之间的点

书目:删除(书)标题和系列之间的点

我必须再次询问才能获得论文所需的参考书目格式——不幸的是,这不会是最后一个问题:D

这是关于书名和系列之间的点的问题。我该如何删除它?

在此处输入图片描述

因此在上面的例子中它实际上应该是“符号学/符号学。 2. 泰尔班德(语言与通信学手册)”。

您可以在以下 MWE 中看到我的尝试:

\documentclass[a4paper, 12pt]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[french, ngerman]{babel}
\usepackage[T1]{fontenc}

\usepackage[autostyle]{csquotes}
\usepackage[backend=biber, style=ext-authoryear, innamebeforetitle=true, innameidem=true, maxcitenames=2, dashed=false]{biblatex}

\DefineBibliographyExtras{french}{\restorecommand\mkbibnamefamily}

\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{ineditor}{sortname}

\DeclareDelimFormat[bib]{multinamedelim}{\addspace\slash\space}
\DeclareDelimAlias*[bib]{finalnamedelim}{multinamedelim}

\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimFormat{editortypedelim}{\addspace}
\DeclareFieldAlias{translatortype}{editortype}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}

\DeclareDelimFormat[bib]{nametitledelim}{\adddot\space}

\DeclareDelimFormat{multinamedelim}{\slash}
\DeclareDelimFormat{finalnamedelim}{\slash}

\renewbibmacro*{in:}{%
  \setunit{\addcomma\space}%
  \bibstring{in}%
  \printunit{\intitlepunct}}

\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit*{\addnbthinspace}%
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}

\urlstyle{same}
\DeclareFieldFormat{url}{URL: <\url{#1}>}
\DeclareFieldFormat{urldate}{\mkbibbrackets{#1}}

\DefineBibliographyStrings{german}{
  editor  = {Hrsg\adddot},
  editors = {Hrsg\adddot},
}

\DeclareFieldFormat{superedition}{\textsuperscript{#1}}
\makeatletter
\renewbibmacro*{date+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[\blx@delimcontext labeldate]{%
       \printfield[superedition]{edition}%
       \global\clearfield{edition}%
       \iflabeldateisdate
         {\printdateextra}
         {\printlabeldateextra}}}}
\makeatother

\DeclareFieldFormat{series}{\mkbibparens{#1}}

\renewbibmacro*{booktitle+series}{%
    \printfield{booktitle}%
    \setunit{\space}%
    \printfield{series}%
}

\begin{filecontents}{literatur.bib}
@incollection{Baldinger,
author = {Baldinger, Kurt},
title = {Semasiologie und Onomasiologie},
booktitle = {2. Teilband},
publisher = {De Gruyter Mouton},
year = {2008},
editor = {Posner, Roland and Robering, Klaus and Sebeok, Thomas},
edition = 3
series = Handbücher zur Sprach- und Kommunikationswissenschaft 13/2
}
\end{filecontents}
\bibliography{literatur}

\begin{document}

\cite{Baldinger}
\printbibliography

\end{document}

肯定有什么地方出了问题renewbibmacro*{booktitle+series}{…}

答案1

没有称为 的 bibmacro booktitle+series。更一般地说,不需要为字段的每种可能组合都设置一个 bibmacro。

最终,参考书目中的呈现方式由参考书目驱动程序控制。对于你的风格(style=ext-authoryear,以及所有biblatex-ext风格),驱动程序位于ext-standard.bbx@incollection。可以在以下位置找到相关的驱动程序第 355-386 行 [v0.13]。打印该系列的位在incollection:parent第 388-405 行 [v0.13])并且它有

  \newunit\newblock
  \usebibmacro{series+number}%

影响格式的最简单方法series是修改 bibmacro。

满足您的需求

\renewbibmacro*{series+number}{%
  \setunit{\addspace}%
  \iffieldundef{series}
    {}
    {\printtext[parens]{%
       \printfield{series}%
       \setunit*{\sernumdelim}%
       \printfield{number}}}%
  \newunit}

应该做正确的事。

\documentclass[a4paper, 12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[french, ngerman]{babel}
\usepackage[T1]{fontenc}

\usepackage[autostyle]{csquotes}
\usepackage[
  backend=biber,
  style=ext-authoryear,
  innamebeforetitle=true,
  innameidem=true,
  maxcitenames=2,
  dashed=false,
]{biblatex}

\DefineBibliographyExtras{french}{\restorecommand\mkbibnamefamily}

\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{ineditor}{sortname}

\DeclareDelimFormat{multinamedelim}{\slash}
\DeclareDelimFormat[bib]{multinamedelim}{\addspace\slash\space}
\DeclareDelimAlias{finalnamedelim}{multinamedelim}

\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimFormat{editortypedelim}{\addspace}
\DeclareFieldAlias{translatortype}{editortype}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}

\DeclareDelimFormat[bib]{nametitledelim}{\adddot\space}

\renewbibmacro*{in:}{%
  \setunit{\addcomma\space}%
  \bibstring{in}%
  \printunit{\intitlepunct}}

\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit*{\addnbthinspace}%
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}

\urlstyle{same}
\DeclareFieldFormat{url}{URL: <\url{#1}>}
\DeclareFieldFormat{urldate}{\mkbibbrackets{#1}}

\DefineBibliographyStrings{german}{
  editor  = {Hrsg\adddot},
  editors = {Hrsg\adddot},
}

\DeclareFieldFormat{superedition}{\textsuperscript{#1}}
\makeatletter
\renewbibmacro*{date+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[\blx@delimcontext labeldate]{%
       \printfield[superedition]{edition}%
       \global\clearfield{edition}%
       \iflabeldateisdate
         {\printdateextra}
         {\printlabeldateextra}}}}
\makeatother

\renewbibmacro*{series+number}{%
  \setunit{\addspace}%
  \iffieldundef{series}
    {}
    {\printtext[parens]{%
       \printfield{series}%
       \setunit*{\sernumdelim}%
       \printfield{number}}}%
  \newunit}


\begin{filecontents}{\jobname.bib}
@incollection{Baldinger,
  author    = {Baldinger, Kurt},
  title     = {Semasiologie und Onomasiologie},
  maintitle = {Semiotik / Semiotics},
  booktitle = {2.~Teilband},
  publisher = {De Gruyter Mouton},
  year      = {2008},
  editor    = {Posner, Roland and Robering, Klaus and Sebeok, Thomas},
  edition   = 3,
  series    = {Handbücher zur Sprach- und Kommunikationswissenschaft},
  number    = {13/2},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\cite{Baldinger}
\printbibliography
\end{document}

Baldinger,Kurt(3 2008)。 《语义学与名称学》,收录于:波斯纳,罗兰 / 罗伯林,克劳斯 / 塞比奥克,托马斯(Hrsg.)。符号学/符号学。 2. 章节(语言和通信科学手册 13/2)。德格鲁伊特木桐(De Gruyter Mouton)。

请注意,我改变了

  series = Handbücher zur Sprach- und Kommunikationswissenschaft 13/2

.bib文件中

  series    = {Handbücher zur Sprach- und Kommunikationswissenschaft},
  number    = {13/2},

没有括号的非数字值会导致错误,系列中书籍的编号应该填入该number字段。还请注意,我添加了缺失的

  maintitle = {Semiotik / Semiotics},

相关内容