如何在 biblatex 參考書目驅動程式中為 \item 指定可選參數

如何在 biblatex 參考書目驅動程式中為 \item 指定可選參數

我想根據 enumitems 的description環境列表在 biblatex 中編寫一個參考書目環境(我想這樣做是因為它適合我正在構建的文檔的其他部分)。與 一樣itemizedescription使用可選參數作為item描述標籤。我想編寫我的參考書目環境,以便在此可選參數中設定出版年份。這看起來應該可以工作,但沒有(我使用itemize而不是description這裡來使示例盡可能少):

\documentclass{article}
\usepackage[date=year]{biblatex}

\begin{filecontents}{\jobname.bib}
@article{foo,
  title = {SomeTitle},
  author = {Doe, John},
  date = {2024-04-27},
  journaltitle = {Great Works}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\defbibenvironment{description}{\begin{itemize}}{\end{itemize}}{\item}

\DeclareBibliographyDriver{article}{%
  [\printdate{}]%
  \newunit%
  \printfield{title}%
  }

\begin{document}

\nocite{*}
\printbibliography[env=description]

\end{document}

這不會將方括號中的列印日期解釋為前面呼叫的可選參數\item,而是將方括號本身列印為清單的一部分。也就是我想要我的參考書目排版,就好像這種情況正在發生一樣:

\begin{itemize}
\item[<year>] <other stuff>
\end{itemize}

但我卻發現好像發生了這種情況:

\begin{itemize}
\item[] [<year>] <other stuff>
\end{itemize}

我怎樣才能得到前者而不是後者?

答案1

您可以在 中新增可選參數\defbibenvironment。在驅動程式中為時已晚(隱藏在許多分組層下,因此\item無法正確看到可選參數)。

\documentclass{article}
\usepackage[date=year]{biblatex}

\defbibenvironment{description}
  {\begin{itemize}}
  {\end{itemize}}
  {\item[\printdate]}

\DeclareBibliographyDriver{article}{%
  \printfield{title}%
}

\begin{filecontents}{\jobname.bib}
@article{foo,
  title        = {SomeTitle},
  author       = {Doe, John},
  date         = {2024-04-27},
  journaltitle = {Great Works}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography[env=description]
\end{document}

2024 年“一些標題”

相關內容