期刊期刊标题 + 编辑的括号

期刊期刊标题 + 编辑的括号

你知道,有些期刊有专门的期刊标题和编辑。目前使用 biblatex 我得到以下结果:

Danon, Gabi (2008)。“希伯来语构造状态中的确定性扩展”。在:Lingua 118.7(词汇类别中的形态句法不匹配)。由 I. Nikolaeva 和 A. Spencer 编辑,第 872-906 页。

不过,我希望将期刊标题和编辑者放在括号中,如下所示:

Danon, Gabi (2008)。“确定性在希伯来语构造状态中的传播”。在:Lingua 118.7(词汇类别中的形态句法不匹配。I. Nikolaeva 和 A. Spencer(编辑)),第 872-906 页。

我可以通过重新定义 journal+issue bibmacro 从原始参考文献中删除冒号:

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addspace}%
  \usebibmacro{issue+date}%
  \setunit{\addspace}%
  \usebibmacro{issue}%
  \newunit}

然后我可以通过声明轻松地在问题标题周围加上括号

\DeclareFieldFormat{issuetitle}{\mkbibparens{\textit{#1}}}

但我也希望编辑信息也在那里。

这是一个 MWE(我使用 XeLaTeX,但我认为它在这里并不重要):

\documentclass[]{article}

\usepackage[style=authoryear-comp, dashed=true, natbib=true,backend=biber]{biblatex}


\bibliography{danon.bib}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addspace}%
  \usebibmacro{issue+date}%
  \setunit{\addspace}%
  \usebibmacro{issue}%
  \newunit}

  \DeclareFieldFormat{issuetitle}{\mkbibparens{\textit{#1}}} 

\begin{document}

\cite{Danon}

\printbibliography

\end{document}

以及参考书目文件:

@Article{Danon,
author = {Gabi Danon},
title = {Definiteness spreading in the {Hebrew} construct state},
journal = {Lingua},
year = {2008},
volume = {118},
number = {7},
pages = {872--906},
issuetitle = {Morphosyntactic mismatches in lexical categories},
editor = {I. Nikolaeva and A. Spencer}
}

答案1

您不能只包装issuetitle,因为就目前情况而言,它由issuebibmacro 打印,而编辑器稍后打印。因此,需要issue以包含编辑器的方式重新定义 bibmacro,然后清除editor名称字段,以便byeditor+others在驱动程序的下一部分调用时不会打印它。这也是以这样的方式完成的,即只有在存在单独的 时才会发生这种情况issuetitle。因此:

\renewbibmacro*{issue}{%
  \iffieldundef{issuetitle}%
  {}%
  {\setunit{\addspace\bibopenparen}%
   \printfield{issuetitle}%
   \newunit%
   \ifnameundef{editor}%
     {}%
     {\printnames{editor}%
      \printtext{\space(}%
      \usebibmacro{editor+othersstrg}%
      \printtext{)}}%
  \printtext{\bibcloseparen\space}%
  \clearname{editor}}}

显示参考书目的屏幕截图

相关内容