enumitems の環境リストに基づいて biblatex で書誌環境を作成したいと考えていますdescription
(作成中のドキュメントの他の部分と適合するため、これを行いたいと考えています)。 と同様にitemize
、は説明ラベルdescription
にオプションの引数を使用します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}