\printbiblist{shorteditor}:如何将此字段打印为标签?

\printbiblist{shorteditor}:如何将此字段打印为标签?

我是否错误地认为以下内容应将shorteditor字段内容打印为参考书目列表中的前导标签?

\documentclass{article}
\usepackage[style=verbose-inote]{biblatex}
\begin{filecontents}{\jobname.bib}
@BookInBook{Lit,
  title =    {Deuxième livre des Épidémies},
  date =     1846,
  author =   {Hippocrate},
  booktitle =    {Œuvres complètes d'Hippocrate},
  editor =   {Littré, Émile},
  shorteditor =  {Littré},
  volume =   {\RN{5}},
  entrysubtype = {editiones},
  publisher =    {J.-B. Baillère},
  location =     {Paris},
  pages =    {72--139}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}

\printbiblist[title={Editiones uel studia}]{shorteditor}
\printbibliography
\end{document}

在此处输入图片描述

答案1

为了充分利用,\printbiblist{<label>}您至少需要一个书目环境<label>和一个驱动程序<label>。对于某些字段biblatex提供了有用的后备定义,但不适用于shorteditor

对于下面的 MWE,我只是shorthand从标准样式中复制了定义。

\documentclass{article}
\usepackage[style=verbose-inote]{biblatex}

\defbibenvironment{shorteditor}
  {\list
     {\printnames{shorteditor}}
     {\setlength{\labelwidth}{1cm}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}%
      \renewcommand*{\makelabel}[1]{##1\hss}}}
  {\endlist}
  {\item}

\DeclareBibliographyDriver{shorteditor}{%
  \usedriver
    {\DeclareNameAlias{sortname}{default}}
    {\thefield{entrytype}}%
  \finentry}

\begin{filecontents}{\jobname.bib}
@BookInBook{Lit,
  title        = {Deuxième livre des Épidémies},
  date         = 1846,
  author       = {Hippocrate},
  booktitle    = {Œuvres complètes d'Hippocrate},
  editor       = {Littré, Émile},
  shorteditor  = {Littré},
  volume       = {\RN{5}},
  entrysubtype = {editiones},
  publisher    = {J.-B. Baillère},
  location     = {Paris},
  pages        = {72--139},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}

\printbiblist[title={Editiones uel studia}]{shorteditor}
\printbibliography
\end{document}

书目和参考书目

这里的一个问题是,您将无法获得自动标签宽度计算,shorteditor而必须对标签宽度进行硬编码(我选择了 1cm),因为biblatex标签宽度计算不支持名称字段。

shorteditor在这种情况下,我认为首先没有必要使用:毕竟只需删除给定名称shorteditor即可从字段中获取。editor

答案2

的第二个参数\printbiblist只是一个标签,用于识别例如书目驱动程序。如果您想要包含字段的所有条目的列表,shorteditor则必须定义一个新的驱动程序:

\DeclareBibliographyDriver{shorteditor}{%
  \printnames{shorteditor}%
  \setunit{\addcomma\space}%
  \printfield{booktitle}%
  % other fields
  }

然后使用:

\printbiblist[title={Editiones uel studia}]{shorteditor}

结果如下:

在此处输入图片描述

相关内容