我的代码:
\documentclass{article}
\usepackage[british]{babel}
\usepackage[style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
Read \textcite{sarfraz}.
Read \textcite{shore}.
\printbibliography
\end{document}
我得到了这个参考列表:
Sarfraz, M. 和 MFA Razzak (2002)。“技术部分:一种自动捕捉字体轮廓的算法”。在:计算机与图形26.5,第 795-804 页。issn:0097-8493。
Shore, Bradd (1991 年 3 月)。“两次出生,一次受孕。意义建构与文化认知”。在:美国人类学家。新系列 93.1,第 9-27 页。
但为了满足我的风格指南的要求,我需要在期刊标题后使用逗号(而不是句号)。“New ser.”也需要完整拼写为“new series”,并在其后加一个逗号。
这是我为了实现这个目的而更改的代码:
\documentclass{article}
\usepackage[british]{babel}
\usepackage[style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\DefineBibliographyStrings{english}{newseries = {new series}}
\newbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addcomma\addspace}%
\iffieldundef{series}
{}
{\printfield{series}%
\setunit{\addcomma\addspace}}%
\usebibmacro{volume+number+eid}%
\setunit{\addspace}%
\usebibmacro{issue+date}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
\begin{document}
Read \textcite{sarfraz}.
Read \textcite{shore}.
\printbibliography
\end{document}
现在的输出是这样的:
Sarfraz, M. 和 MFA Razzak (2002)。“技术部分:一种自动捕捉字体轮廓的算法”。在:计算机和图形,26.5,第 795-804 页。issn:0097-8493。
Shore, Bradd (1991 年 3 月)。“两次出生,一次受孕。意义建构与文化认知”。在:美国人类学家,新系列,93.1,第 9-27 页。
这是解决这个问题的正确方法吗?
答案1
您展示的是一种解决此问题的有效且惯用的方法。
由于 的长字符串newseries
已经是“新系列”,而不是重新定义字符串,您可以告诉biblatex
在任何地方使用长字符串abbreviate=false,
(这也会影响其他字符串 - 可能不是您想要的)或强制仅在这里使用长格式,\biblstring
而不是\bibstring
在 的字段格式中series
。
如果您使用biblatex-ext
,则不需要重新定义journal+issuetitle
,只需更改\jourvoldelim
和即可\jourserdelim
。
因此,另一种选择是
\documentclass{article}
\usepackage[british]{babel}
\usepackage[style=ext-authoryear]{biblatex}
\DeclareFieldFormat[article,periodical]{series}{% series of a journal
\ifinteger{#1}
{\mkbibordseries{#1}~\biblstring{jourser}}
{\ifbibstring{#1}{\biblstring{#1}}{#1}}}
\renewcommand*{\jourvoldelim}{\addcomma\space}
\renewcommand*{\jourserdelim}{\addcomma\space}
\addbibresource{biblatex-examples.bib}
\begin{document}
Read \textcite{sarfraz}.
Read \textcite{shore}.
\printbibliography
\end{document}