biblatex:如果将以逗号分隔的组织单位名称(如发布者)单独括起来,大多数名称都会消失 - 为什么?

biblatex:如果将以逗号分隔的组织单位名称(如发布者)单独括起来,大多数名称都会消失 - 为什么?

假设我使用biblatex来引用某个政府部门的出版物,并将其上级机构的名称作为出版商,例如,例如APA 格式。假设这些机构名称包含单词“and”。根据biblatex手册 §2.3.4,如果出版商的名称包含单词“and”,则必须将“and”或整个名称括起来,以避免将“and”解释为列表分隔符。将“and”括起来或将整个publisher值(双)括起来都可以。但是,如果我将字段中各个组织单位的名称括起来publisher,则输出看起来很奇怪——第一个组织单位显示为出版商,但后续组织单位被省略。

以下示例文档通过创建引用列表来演示,其中发布者字段使用“and”括起来、使用整个值括起来以及使用各个组织单位名称括起来。这通过和book条目misc类型(后者使用organization而不是publisher)来演示。

\documentclass{article}

\usepackage{biblatex}

\begin{filecontents}[overwrite]{\jobname.bib}
@book{book1,
    title={Book 1},
    author={A.},
    date={2013},
    publisher={Republic of Foo {and} Bar, Ministry of Education {and} Science, Office for Food {and} Agriculture},
}
@book{book2,
    title={Book 2},
    author={A.},
    date={2013},
    publisher={{Republic of Foo and Bar, Ministry of Education and Science, Office for Food and Agriculture}},
}
@book{book3,
    title={Book 3},
    author={A.},
    date={2013},
    publisher={{Republic of Foo and Bar}, {Ministry of Education and Science}, {Office for Food and Agriculture}},
}
@misc{misc1,
    title={Misc 1},
    author={A.},
    date={2013},
    organization={Republic of Foo {and} Bar, Ministry of Education {and} Science, Office for Food {and} Agriculture},
}
@misc{misc2,
    title={Misc 2},
    author={A.},
    date={2013},
    organization={{Republic of Foo and Bar, Ministry of Education and Science, Office for Food and Agriculture}},
}
@misc{misc3,
    title={Misc 3},
    author={A.},
    date={2013},
    organization={{Republic of Foo and Bar}, {Ministry of Education and Science}, {Office for Food and Agriculture}},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}

\nocite{*}
\printbibliography[]

\end{document}

请注意,publisher(和organization)字段采用以下形式:

  1. publisher={A {and} B, C {and} D, E {and} F}
  2. publisher={{A and B, C and D, E and F}}, 和
  3. publisher={{A and B}, {C and D}, {E and F}}

这是结果(格式化以及代码块允许):

References

[1] A. Book 1. Republic of Foo and Bar, Ministry of Education and Science,
    Office for Food and Agriculture, 2013.
[2] A. Book 2. Republic of Foo and Bar, Ministry of Education and Science,
    Office for Food and Agriculture, 2013.
[3] A. Book 3. Republic of Foo and Bar, 2013.
[4] A. Misc 1. Republic of Foo and Bar, Ministry of Education and Science,
    Office for Food and Agriculture, 2013.
[5] A. Misc 2. Republic of Foo and Bar, Ministry of Education and Science,
    Office for Food and Agriculture, 2013.
[6] A. Misc 3. Republic of Foo and Bar, 2013

请注意,使用该形式时publisher={{A and B}, {C and D}, {E and F}},第一个逗号之后的所有内容都会消失。我的问题是:

  1. 为什么?我没有意识到是什么publisher={{A}, {B}, {C}}意思?biblatex
  2. 我应该在手册的哪里找到它biblatex

答案1

目前,这对我来说看起来像是一个 Biber 错误,所以我将问题报告给了https://github.com/plk/biber/issues/370

在以下示例中

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=authoryear]{biblatex}

\begin{filecontents}{\jobname.bib}
@book{book1,
  title     = {Book 1},
  author    = {A.},
  date      = {2011},
  publisher = {A {and} B, C {and} D, E {and} F},
}
@book{book2,
  title     = {Book 2},
  author    = {A.},
  date      = {2012},
  publisher = {{A and B, C and D, E and F}},
}
@book{book3,
  title     = {Book 3},
  author    = {A.},
  date      = {2013},
  publisher = {{A and B}, {C and D}, {E and F}},
}
@book{compare,
  title     = {Compare},
  author    = {Z},
  date      = {2014},
  publisher = {X and Y and Z},
}
@book{bookc1,
  title     = {Book C 1},
  author    = {Z},
  date      = {2011},
  publisher = {A {and} B and C {and} D and E {and} F},
}
@book{bookc2,
  title     = {Book C 2},
  author    = {Z},
  date      = {2012},
  publisher = {{A and B and C and D and E and F}},
}
@book{bookc3,
  title     = {Book C 3},
  author    = {Z},
  date      = {2013},
  publisher = {{A and B} and {C and D} and {E and F}},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}

\printbibliography
\end{document}

.bbl文件包含(节选)

% book1
      \list{publisher}{1}{%
        {A {and} B, C {and} D, E {and} F}%
      }
% book2
      \list{publisher}{1}{%
        {A and B, C and D, E and F}%
      }
% book3
      \list{publisher}{1}{%
        {A and B}, {C and D}, {E and F}%
      }

我本来期望

      \list{publisher}{1}{%
        {{A and B}, {C and D}, {E and F}}%
      }

book3不是。

这里的问题是biblatex使用外括号来迭代列表,因此对于biblatex

      \list{publisher}{1}{%
        {A and B}, {C and D}, {E and F}%
      }

看起来更像是一个包含三个条目的列表,它将出现.bbl

  \list{publisher}{3}{%
    {X}%
    {Y}%
    {Z}%
  }

最终,make 中缺少的括号仅抓取列表的biblatex第一位作为内容。A and B

答案2

问题是,您大多数情况下必须将事物列表视为列表名称。这意味着,元素必须用 分隔and,而您没有这样做。以下代码给出了预期结果,并将最后一个列表元素的分隔符更改为“&”,以便更好地进行可视化:

\documentclass{article}

\usepackage{biblatex}
\renewcommand*{\multilistdelim}{\addcomma\addspace}
\renewcommand*{\finallistdelim}{\addspace\&\addspace}

\begin{filecontents}[overwrite]{\jobname.bib}
@book{book3,
    title={Book 3},
    author={A.},
    date={2013},
    publisher={{Republic of Foo and Bar} and {Ministry of Education and Science} and {Office for Food and Agriculture}},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}

\nocite{*}
\printbibliography[]

\end{document}

相关内容