使用 biblatex 自定义参考书目样式(类似 natbib)

使用 biblatex 自定义参考书目样式(类似 natbib)

我刚刚从 natbib 切换到 biblatex,我正在尝试恢复一些以前的布局。我现在有这个导入:

\usepackage[natbib=true,style=verbose-ibid,isbn=false]{biblatex}

这给了我想要的引用样式。然而,对于期刊来说,参考书目样式发生了不幸的变化。以前它看起来像这样:

Charles, D. (1965),《幕间曲:“正式”还是“非正式”音乐?》,音乐季刊 51(1), 144–165。

现在看起来像这样(我设法摆脱了“In:”):

Charles, Daniel. “幕间曲:“正式”还是“非正式”音乐?”,音乐季刊51.1,第 144-165 页。

我想保留新样式中的一些内容,例如完整名字,但其他方面则恢复为 natbib 样式,日期在前面,标题用单引号括起来,卷数用粗体表示,数字用括号括起来。像这样:

查尔斯·丹尼尔 (1965),《幕间曲:“正式”还是“非正式”音乐?》, 音乐季刊 51(1),第 144-165 页。

我该如何实现这个目标?


编辑

我设法通过使用不同的引用和参考书目样式在一开始就获得了年份:

\usepackage[natbib=true,citestyle=verbose-ibid,isbn=false,bibstyle=authoryear]{biblatex}

我按照答案这个问题。 我可以用

\DeclareFieldFormat[article]{volume}{\textbf{#1}}
\DeclareFieldFormat[article]{number}{(#1)}

将音量设为粗体,并将数字放在括号中。但这里没有几个宏。我不得不使用(未知宏)\textbf代替。\mkbibbold

此外,我无法消除体积和数量之间的点,现在是

查尔斯·丹尼尔 (1965),《幕间休息:“正式”音乐还是“非正式”音乐?》 音乐季刊 51.(1),第 144-165页。

如果我尝试

\renewbibmacro*{volume+number+eid}{%
  \setunit*{\addcomma\space}% NEW
  \printfield{volume}%
%  \setunit*{\adddot}% DELETED
  \setunit*{\addcomma\space}% NEW
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}

我收到此错误:

LaTeX error: \abx@macro@cite:labelyear+extrayear undefined.

答案1

以下内容使用biblatexv1.7 和 biber v0.9 进行测试:

\documentclass{article}

\usepackage[utf8]{inputenc}

\usepackage[citestyle=verbose-ibid,bibstyle=authoryear,isbn=false,natbib=true]{biblatex}

\renewcommand*{\newunitpunct}{\addcomma\space}

\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{`#1'}

\renewbibmacro{in:}{%
  \ifentrytype{article}{%
  }{%
    \printtext{\bibstring{in}\intitlepunct}%
  }%
}

\DeclareFieldFormat[article]{volume}{\mkbibbold{#1}}
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}

\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
%  \setunit*{\adddot}% DELETED
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{Cha65,
  author = {Charles, Daniel},
  year = {1965},
  title = {Entr’acte: “Formal” or “Informal” Music?},
  journaltitle = {The Musical Quarterly},
  volume = {51},
  number = {1},
  pages = {144--165},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\nocite{*}

\begin{document}

\printbibliography

\end{document}

在此处输入图片描述

相关内容