在 biblatex 中,在期刊名称和“新系列”(完整拼写)后添加逗号

在 biblatex 中,在期刊名称和“新系列”(完整拼写)后添加逗号

我的代码:

\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}

Sarfraz, M. 和 MFA Razzak (2002)。“技术部分:一种自动捕捉字体轮廓的算法”。在:计算机与图形,26.5,第 795-804 页。issn:0097-8493。Shore, Bradd (1991 年 3 月)。“两次出生,一次受孕。意义建构与文化认知”。在:美国人类学家,新系列,93.1,第 9-27 页。

相关内容