使 biblatex 的 \printbibliography 与 scrlttr2 兼容的最佳方法

使 biblatex 的 \printbibliography 与 scrlttr2 兼容的最佳方法

我正在尝试将 biblatex 与 scrrlttr2 类一起使用。以下 MWE

\documentclass{scrlttr2}
\usepackage[english]{babel}
\usepackage{filecontents}
\usepackage[backend=biber]{biblatex}

\begin{filecontents}{\jobname.bib}
@article{A2012,
author = {Author, A},
title = {An interesting paper},
journal = {Journal},
year = {2012},
volume = {2},
pages = {70--76},
}

\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\begin{letter}{XXX
}


\opening{To whom it may concern,}

\cite{A2012}

\closing{Kind regards
}

\end{letter}

\printbibliography

\end{document} 

失败,因为该\printbibliography命令触发了 的使用\section,而这并未针对字母类别进行定义。我可以使用 使文件工作 \printbibliography[heading=none],但这也会破坏默认标题。在仍获取默认(特定于语言)标题的同时使代码运行的最佳方法是什么?

答案1

问题是它scrlttr2没有提供\section命令(biblatex默认用于参考书目标题)。

我们可以通过以下方式定义自己的标题

\defbibheading{letterbib}[\refname]{#1}

我们可以\refname\bibname这里进行更改 -\refname打印“参考文献”,而\bibname打印“参考书目”。您可以在此部分发挥您的想象力#1并使用您喜欢的任何格式,例如\defbibheading{letterbib}[\refname]{\textbf{#1}}

\printbibliography然后我们使用这个新标题

\printbibliography[heading=letterbib]

答案2

使用完成这项工作的类和包。;-)

您还可以使用 加载个性化lco文件\LoadLetterOptions,但无法全局执行此操作。

jpfeiferLcoScrrettebib

\begin{filecontents}{\jobname.lco}
    \setkomavar{fromname}{j pfeifer}
    \setkomavar{fromaddress}{duckburg}
\end{filecontents}
\documentclass{scrartcl}
\usepackage{scrletter}
\LoadLetterOptions{\jobname}
\usepackage[english]{babel}
\usepackage[backend=biber]{biblatex}

\begin{filecontents}{\jobname.bib}
@article{A2012,
author = {Author, A},
title = {An interesting paper},
journal = {Journal},
year = {2012},
volume = {2},
pages = {70--76},
}

\end{filecontents}

%\defbibheading{jpfeifer}{\large\bfseries\noindent MY BIB TITLE}
\addbibresource{\jobname.bib}
\begin{document}

\begin{letter}{XXX}

\opening{To whom it may concern,}
\cite{A2012}

\closing{Kind regards}

\printbibliography%[heading=jpfeifer]
\end{letter}
\end{document} 

相关内容