平均能量损失

平均能量损失

我目前正在使用 biblatex 格式化参考书目。对于作为系列丛书的一部分出版的书籍,我希望参考书目中的结果如下:

爱因斯坦,A. (1937):一些书。乌尔姆(=爱因斯坦书籍 134)

其中“Einstein book”是系列,“134”是编号。我该如何实现这种格式?以下是 MWE:

\documentclass[oneside, a4paper,11pt]{scrartcl}
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} 
    \usepackage[
    backend=biber,  %   Stellt die backend ein, BibTeX-Engine muss auch entsprechend umgestellt werden
    style=authoryear-ibid,  %   "Author, Jahr"-Zitierweise mit "ebd."-Option
    isbn=false, % keine ISBN, ISSN o. ä. im Literaturverzeichnis
    url=false,  % keine URL im Literaturverzeichnis, außer bei Online-Quellen
    doi=false,  % keine DOI im Literaturverzeichnis
    giveninits=true,    % nur Initialen der Autoren im Literaturverzeichnis
    date=year,% keine Monatsangabe im Literaturverzeichnis
    maxbibnames=99
    ]{biblatex}
    \addbibresource{cbba_li.bib}

\begin{document}
\newgeometry{left=2.5cm}
\include{cbba_ts}
\clearpage\maketitle
\thispagestyle{empty}
\restoregeometry
\tableofcontents
\thispagestyle{empty}
\newpage

%Optional: switch on line numbering in pdf.
% \linenumbers

%\include{Content} %  \include{file} starts on a new page.
\input{cbba_el} % \input{file} does not start on a new page.
\include{cbba_od} % Hier kommen jetzt alle Kapitel als einzelne Dateien zusammen

\printbibliography

\end{document}

。围兜:

@book{einstein,
address = {Ulm},
author = {Einstein, Albert},
title = {{Some book}},
series = {Einstein books},
number = {134},
year = {1937}
}

答案1

最直接的方法是将series+number宏(从standard.bbx)重新定义为首先打印publisher+location+date,然后(=series number)publisher+location+date然后可以在其中重新定义宏,series+number以便稍后调用时它不执行任何操作。

\renewbibmacro*{series+number}{%
  \iffieldundef{series}
    {}
    {\usebibmacro{publisher+location+date}%
     \renewbibmacro*{publisher+location+date}{}%
     \setunit{\addspace}%
     \printtext[parens]{%
       \printtext{$=$}%
       \printfield{series}%
       \setunit*{\addspace}%
       \printfield{number}}%
     \newunit}}

可以通过重新定义添加标题前的冒号\nametitledelim

\DeclareDelimFormat[bib,biblist]{nametitledelim}{\addcolon\space}

平均能量损失

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{einstein,
  location = {Ulm},
  author = {Einstein, Albert},
  title = {Some book},
  series = {Einstein books},
  number = {134},
  date = {1937}
}
\end{filecontents}
\usepackage[
  style=authoryear-ibid,
  isbn=false,
  url=false,
  doi=false,
  giveninits=true,
  date=year,
  maxbibnames=99
]{biblatex}
\addbibresource{\jobname.bib}
\DeclareDelimFormat[bib,biblist]{nametitledelim}{\addcolon\space}
\renewbibmacro*{series+number}{%
  \iffieldundef{series}
    {}
    {\usebibmacro{publisher+location+date}%
     \renewbibmacro*{publisher+location+date}{}%
     \setunit{\addspace}%
     \printtext[parens]{%
       \printtext{$=$}%
       \printfield{series}%
       \setunit*{\addspace}%
       \printfield{number}}%
     \newunit}}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

MWE 输出

相关内容