我在报告类中使用 biblatex-biber,需要修改我的期刊脚注:
JOUR 24,无2(1998年)
更改为:
《杂志》24.2 (1998)
我使用的文档样式不是我创建的,我需要知道将宏放在何处,无论是在cbx
还是其他任何文件中。更改包括 1) 用句号替换逗号,2) 删除“no.”和空格。如果没有发行号,则应省略句号。
答案1
您的样式文件包含以下行
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit{\addcomma\space}%
\printfield[no]{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
其中no
定义为\DeclareFieldFormat{no}{\bibsstring{number}~#1}
。
但我们不想在后面有逗号和空格volume
,也不关心数字前缀,所以我们去掉了它
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit*{\adddot}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
biblatex-chicago
由于您使用从的样式派生的样式notes
,因此我们必须重新定义其宏。(实际上,您要实现的行为是biblatex
的标准样式中的默认行为。)
由于是biblatex-chicago
专门设计来精确反映 CMS 的,所以有时修改可能会相当尴尬,正如我们将在此看到的。
相关宏cjournal+ser+vol+num
均cperiodical+ser+vol+num
包含以下行
\printfield[jourvol]{volume}%
\setunit*{\adddot}%
\printfield[journum]{number}%
这对于我们的目的来说需要
\printfield[jourvol]{volume}%
\setunit*{\adddot}%
\printfield{number}%
模仿标准定义(见于standard.bbx
)
\newbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit*{\adddot}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
所以我们需要
\renewbibmacro*{cjournal+ser+vol+num}{%
\usebibmacro{journal+sub}%
\setunit*{\addspace}%
\printlist[periodplace]{location}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newcunit
\printfield[jourser]{series}%
\newcunit}%\setunit*{\addspace}?
\printfield[jourvol]{volume}%
\setunit*{\adddot}%
\printfield{number}%
\setunit{\addcomma\addspace}%
\printfield{eid}%
\newunit}
\renewbibmacro*{cperiodical+ser+vol+num}{% For periodical entries,
\printtext[title]{% article subtype
\printfield[noformat]{title}%
\setunit{\addcolon\addspace}%
\printfield[noformat]{subtitle}}%
\setunit*{\addspace}%
\printlist[periodplace]{location}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newcunit
\printfield[jourser]{series}%
\newcunit}%\setunit*{\addspace}?
\printfield[jourvol]{volume}%
\setunit*{\adddot}%
\printfield{number}%
\setunit{\addcomma\addspace}%
\printfield{eid}%
\newunit}
平均能量损失
\documentclass{article}
\usepackage[notes,backend=biber]{biblatex-chicago}
\addbibresource{biblatex-examples.bib}
\renewbibmacro*{cjournal+ser+vol+num}{%
\usebibmacro{journal+sub}%
\setunit*{\addspace}%
\printlist[periodplace]{location}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newcunit
\printfield[jourser]{series}%
\newcunit}%\setunit*{\addspace}?
\printfield[jourvol]{volume}%
\setunit*{\adddot}%
\printfield{number}%
\setunit{\addcomma\addspace}%
\printfield{eid}%
\newunit}
\renewbibmacro*{cperiodical+ser+vol+num}{% For periodical entries,
\printtext[title]{% article subtype
\printfield[noformat]{title}%
\setunit{\addcolon\addspace}%
\printfield[noformat]{subtitle}}%
\setunit*{\addspace}%
\printlist[periodplace]{location}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newcunit
\printfield[jourser]{series}%
\newcunit}%\setunit*{\addspace}?
\printfield[jourvol]{volume}%
\setunit*{\adddot}%
\printfield{number}%
\setunit{\addcomma\addspace}%
\printfield{eid}%
\newunit}
\begin{document}
\cite{baez/article,bertram,doody}
\printbibliography
\end{document}