나는 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}