¿Cómo puedo especificar un argumento opcional para \item en un controlador de bibliografía biblatex?

¿Cómo puedo especificar un argumento opcional para \item en un controlador de bibliografía biblatex?

Quiero escribir un entorno de bibliografía en biblatex basado en descriptionlas listas de entornos de enumitems (quiero hacer esto porque encaja con otras partes del documento que estoy creando). Me gusta itemize, descriptionutiliza un argumento opcional itempara la etiqueta de descripción. Quiero escribir mi entorno de bibliografía para que el año de publicación se establezca en este argumento opcional. Parece que debería funcionar, pero no funciona (he usado itemizeen lugar de descriptionaquí para que el ejemplo sea lo más mínimo posible):

\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}

En lugar de interpretar la fecha impresa entre corchetes como un argumento opcional de la \itemllamada que la precede, esto imprime los corchetes como parte de la lista. Es decir, quiero que mi bibliografía esté escrita como si esto estuviera sucediendo:

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

pero en lugar de eso lo entiendo como si esto estuviera sucediendo:

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

¿Cómo puedo conseguir lo primero y no lo segundo?

Respuesta1

Puede agregar el argumento opcional en \defbibenvironment. Es demasiado tarde en el controlador (oculto debajo de muchas capas de agrupación, por lo que \itemno verá el argumento opcional correctamente).

\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 “Algún título”

información relacionada