在参考书目中,如何将作者的第一部作品之后的每部作品以悬挂缩进的子缩进段落形式呈现?

在参考书目中,如何将作者的第一部作品之后的每部作品以悬挂缩进的子缩进段落形式呈现?

我试图在 BibTeX 或 BibLaTeX 生成的参考书目中实现与作者日期引用结合使用的学术书籍风格,如下所示: 参考书目摘录 特定作者的第一部作品条目是一个段落,从左对齐开始,第二行及后续行均采用悬挂缩进。同一作者的另一部作品的每个条目(此处为“附加条目”)从左略微缩进,第二行及后续行均采用悬挂缩进,与第一部作品条目的第二行及后续行对齐。将出版年份放在作者姓名之后,方便读者以“[作者姓氏] [年份]”的形式查找引用的作品。(此样式可在自定义列表中实现,使用正\leftmargin、负\itemindent和负\listparindent,其中附加条目在提供第一项的项目中创建为一个段落。)

我不知道如何通过修改 BibTex .bst 文件来实现这种风格,如果能得到帮助我将非常感激。

我的 BibLaTeX 困境也是如此,尽管出现了一些可能性。该包的 author-yearverbose和其他样式使用悬挂缩进。\bibhang长度可以通过用于悬挂缩进条目的命令来指定\setlength。但如何对附加条目进行子缩进并为其指定悬挂缩进,以及以年份开头,这让我很困惑,因为附加条目的标准形式以左对齐的破折号开头。\bibnamedash据说命令允许指定破折号的类型。我读到过这个命令比看起来要复杂,但是否可以用这个命令指定空格(例如\hspace{n}\quad),从而实现与缩进相同的效果?毫无疑问,专家们会比这些想法找到更好的途径。我将不胜感激。


非常感谢 @moewe 提供的解决方案。我很困惑该\setlength{\bibhang}{2\bibhang}命令是如何成功的,因为它似乎将长度定义为自身的倍数。我也很想知道ext-authoryear它的某些部分,它(据\DeclareField . . .我所知,使用 )完美地放置了年份。我感谢您的提醒(以及@David Purton的提醒),关于尝试在 BibLaTeX 中在一个条目中捕获一个作者集合的多个组成作品。有很多场合需要这种组织(例如,作家会避免在权威的文集卷中分别列出亚里士多德的十部作品)。似乎可以通过title编写将两部作品的标题放入字段中,例如,{Speaking of Objects'' 和 ``Natural Kinds},其中提供了内部引号,知道字符串的引号是自动的。可以在字段中插入pages两个页码间隔,如 {1-25, 114-138},按作品的列出顺序排列。 (在条目中显示页码间隔可以简洁明了:例如,“Quine 1969,第 120 页”无需更明确地标识该集合中的某部作品。)上述内容是否会以我未曾想到的方式造成麻烦?我尊重您关于困难迫在眉睫的观点。从 BibLaTeX 手册中也可以看到,在编写软件包时,对众多学术惯例的关注令人印象深刻。因此,我希望有一条通往这条路线的途径。

答案1

子缩进问题基本上可以按照您说的解决。biblatex知道长度\bibhang来控制参考书目项目中后续行的悬挂缩进。然后,您可以设置\bibnamedash为在具有相同作者的每个后续条目的开头插入一个一半大小的空格\bibhang来代替作者姓名。

在 MWE 中,我将通常的尺寸扩大了一倍,\bibhang以便更清楚地显示效果,我也使用自己的ext-authoryear风格更轻松地摆脱年份周围的圆括号。

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

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

\DeclareFieldFormat{biblabeldate}{#1}

\setlength{\bibhang}{2\bibhang}

\renewcommand*{\bibnamedash}{%
  \hspace{.5\bibhang}}

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,knuth:ct:a,knuth:ct:b}
\printbibliography
\end{document}

MWE 显示带有悬挂缩进的参考书目。同一作者的作品年份以悬挂缩进的一半缩进。

回答您编辑中的问题。

  • \setlength{\bibhang}{2\bibhang}有效(对于任何尝试过乍一看语法相似的 的人来说,这也许令人惊讶\renewcommand{\foo}{2\foo}),因为新值在赋值之前进行了评估。它类似于 C 等命令式语言中的变量赋值,其中或x = x+1分配给通过将 的旧值加一而得到的值。x += 1x++xx
  • biblatex-extext-authoryear仅有的用于使用 来删除参考书目中年份周围的括号\DeclareFieldFormat{biblabeldate}{#1}。它不是整​​个子缩进的组成部分,子缩进纯粹是通过重新定义标准宏来处理的\bibnamedelim。如果你想要使用 ,style=authoryear那么你必须做更多的事情来删除括号:如何(正确地)删除 authoryear 样式中年份周围的括号?(v3)。您可以在捆绑文档

屏幕截图显示了您想要的风格的另一个非常有趣的方面:​​同一作者的同一包含作品中的多部作品列在同一个条目中(例如@incollection同一作品的两个章节@collection)。这不是一件biblatex容易的事情。

每个.bib条目通常指代一部特定的作品,因此只有一个标题。并且每个.bib条目通常都是参考书目中的一个单独项目。虽然可以使用和crossrefrelated模拟父子关系,例如@collection $X$包含纸张@incollection $X_1$,将具有不同数据的几个不同条目分组为一个条目并一起显示数据而不是一个接一个地显示数据是完全不同的任务。

相关内容