我阅读了以下关于如何在每个参考书目条目中添加作者年份块的帖子:在参考书目条目开头添加 [AuthorYear] 块。我的代码看起来和解决方案中的一样。
它与我的参考书目非常接近。但是我想更改每个参考书目条目第二行的缩进,以便它与参考书目条目的第一行对齐。
或者,也可以为参考书目条目创建一个固定块,类似于:使用 biblatex 和 biber 创建具有固定缩进和作者年份标签的参考书目。该解决方案对我来说不起作用,因为它使用了标签和参考书目条目之间的水平空间。
据我所知,无法自定义标签,使其看起来像作者年份块。这就是为什么要额外添加它。我们可以看到,第二个条目似乎除了作者年份块外还有一个标签。
我希望有类似的外观,但使用作者年份块而不是标签。
这moewe 的解决方案看起来像这样:(注意:我只使用了 moewe 的新代码,没有使用来自在参考书目条目开头添加 [AuthorYear] 块)
解决方案:对于所有感兴趣的人而言,如果使用 authoryear-icomp 样式,则缺少标签是因为需要两行额外的代码。
这是我的带有 moewes 解决方案的代码:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage[
backend=biber,
citestyle=authoryear-icomp,
bibstyle=authortitle,
sorting=nyt,
firstinits=true,
sortlocale=de_DE,
hyperref=true,
url=true,
doi=false,
eprint=false,
maxcitenames=1,
useprefix=true
]{biblatex}
\DeclareNameAlias{sortname}{last-first}
\addbibresource{Literatur.bib}
\makeatletter
\setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip}
\newsavebox\ay@labelbox
\newlength{\labwidthsameline}
\setlength{\labwidthsameline}{6em}
\newbibmacro{labelwidthbib}{%
\begingroup
\DeclareFieldFormat{bibhyperref}{##1}%
\csuse{blx@hook@cite}%
\csuse{blx@hook@citekey}%
\global\undef\cbx@lasthash
\global\undef\cbx@lastyear
\citetrackerfalse\pagetrackerfalse\backtrackerfalse
\defcounter{maxnames}{\blx@maxcitenames}%
\printtext[brackets]{\usebibmacro{cite}}%
\endgroup
}
%-----------------------
\newbibmacro{kicklabel}{%
\sbox\ay@labelbox{\usebibmacro{labelwidthbib}}%
\global\togglefalse{blx@insert}%
\ifdim\wd\ay@labelbox>\labwidthsameline
\leavevmode\newline
\fi
}
\defbibenvironment{bibliography}%
{\list
{\usebibmacro{labelwidthbib}}%
{\setlength{\labelwidth}{\labwidthsameline}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}%
\renewcommand*{\makelabel}[1]{##1\hss}}}%
{\endlist}%
{\item\usebibmacro{kicklabel}}
\makeatother
\DefineBibliographyStrings{ngerman}{andothers = {{et\,al\adddot}},}%et al statt u.a.
\begin{document}
%Testcitation
\textcite{Gluck.1991}
\parencite{Best.2016a}
\newpage
\printbibliography
\end{document}
这是.bib 文件:
@misc{Best.2016a,
author = {Best, Isabelle and Orozaliev, Janybek},
title = {{Renewable Low-Temperature District Heating for a New Housing Area in Kassel, Germany -- A Case Study of IEA EBC Annex 64}},
abstract = {},
date = {2016-05-25},
pagerange = {14},
}
@book{Gluck.1991,
author = {Gl{\"u}ck, Bernd},
year = {1991},
title = {{Zustands- und Stoffwerte}},
edition = {2., bearb. u. erw. Aufl.},
publisher = {{Verlag f{\"u}r Bauwesen GmbH}},
isbn = {3-345-00487-9},
subtitle = {{Wasser, Dampf, Luft ; Verbrennungsrechnung}},
location = {Berlin},
series = {{Bausteine der Heizungstechnik}},
abstract = {},
pagetotal = {140},
}
答案1
尝试对我的答案进行稍微修改使用 biblatex 和 biber 创建具有固定缩进和作者年份标签的参考书目
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[style=authoryear,backend=biber,dashed=false]{biblatex}
\addbibresource{biblatex-examples.bib}
\makeatletter
\setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip}
\newsavebox\ay@labelbox
\newlength{\labwidthsameline}
\setlength{\labwidthsameline}{6em}
\newbibmacro{labelwidthbib}{%
\begingroup
\delimcontext{parencite}%
\DeclareFieldFormat{bibhyperref}{##1}%
\csuse{blx@hook@cite}%
\csuse{blx@hook@citekey}%
\global\undef\cbx@lasthash
\global\undef\cbx@lastyear
\citetrackerfalse\pagetrackerfalse\backtrackerfalse
\defcounter{maxnames}{\blx@maxcitenames}%
\printtext[brackets]{\usebibmacro{cite}}%
\endgroup
}
%-----------------------
\newbibmacro{kicklabel}{%
\sbox\ay@labelbox{\usebibmacro{labelwidthbib}}%
\global\togglefalse{blx@insert}%
\ifdim\wd\ay@labelbox>\labwidthsameline
\leavevmode\newline
\fi
}
\defbibenvironment{bibliography}%
{\list
{\usebibmacro{labelwidthbib}}%
{\setlength{\labelwidth}{\labwidthsameline}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}%
\renewcommand*{\makelabel}[1]{##1\hss}}}%
{\endlist}%
{\item\usebibmacro{kicklabel}}
\makeatother
\begin{document}
\cite{sigfridsson,worman,geer,knuth:ct:a}
\printbibliography
\end{document}