我刚刚从 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
以下内容使用biblatex
v1.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}