printbibliography 输出“[author year] entrydata”

printbibliography 输出“[author year] entrydata”

我正在使用以下命令在我的 scrreprt 文档中生成参考书目

\usepackage[style=authoryear,backend=biber,sortlocale=de_DE,sorting=nty,maxbibnames=99,maxcitenames=1]{biblatex} %maxnames=bib&cite, maxbibname=bib, maxcitenames=cite, (default=3)

我被要求按照第一作者或出版商的姓氏字母顺序打印参考书目。这或多或少是哈佛风格。

我不能使用style=alphabetic,因为输出如下

在此处输入图片描述

相反,我需要以下内容

[Lui et al. 2017] J. Lui, H. Shen und L. Yu. ...

我怎样才能实现这个目标?

快速编辑:我忘了至少提到引用样式必须authoryear用于文本中的引用

答案1

你可以用我的biblatex-ext样式包(适用于 MikTeX 和 TeX live 2018 及以上版本)。基于在参考书目条目开头添加 [AuthorYear] 块使用 biblatex 和 biber 创建具有固定缩进和作者年份标签的参考书目以及许多相关的问题和答案这些风格实现了一种introcite选择。


introcite=plain可以得到类似的输出在参考书目条目开头添加 [AuthorYear] 块

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=ext-authoryear, backend=biber, introcite=plain, dashed=false]{biblatex}

\DeclareFieldFormat{bbx@introcite}{\mkbibbold{\mkbibbrackets{#1}}}
\renewcommand*{\introcitepunct}{\addspace}

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,worman,geer,knuth:ct:a,knuth:ct:b}
\printbibliography
\end{document}

在此处输入图片描述


introcite=label可以得到更像列表的输出,类似于使用 biblatex 和 biber 创建具有固定缩进和作者年份标签的参考书目

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=ext-authoryear, backend=biber, introcite=label, dashed=false]{biblatex}

\DeclareFieldFormat{bbx@introcite}{\mkbibbrackets{#1}}
\setlength{\introcitewidth}{8\biblabelsep}
\setlength{\introcitesep}{.5\biblabelsep}

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,worman,geer,knuth:ct:a,knuth:ct:b}
\printbibliography
\end{document}

\introcitewidth可以使用和来控制列表缩进和“标签”与引用正文之间的最小间距\introcitesep。太长的标签会将引用移至下一行。

在此处输入图片描述


针对 v0.4 中的名称更改进行了编辑biblatex-ext

答案2

以下 MWE 展示了如何使用\DeclareLabelalphaTemplate来实现所需的字母书目样式标签的定制。

\documentclass{scrreprt}
\usepackage[style=authoryear,backend=biber,sortlocale=de_DE,sorting=nty,maxbibnames=99,maxcitenames=1,style=alphabetic]{biblatex} 

\addbibresource{\jobname.bib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{key,
  author = {Author, A. and Name, B.},
  year = {2001},
  title = {A long title to show the indentation of the second line},
  publisher = {Publisher},
}
\end{filecontents}
\renewcommand{\labelalphaothers}{\addspace et al.}
\DeclareLabelalphaTemplate[]{\labelelement{\field[names=1]{author}}
                             \labelelement{\literal{\addspace}}
                             \labelelement{\field{year}}
                             }

\begin{document}
\cite{key}
\printbibliography
\end{document}

相关内容