我的参考书目有问题。我正在biblatex
使用 authoryear-style。我对学期论文做了一些修改,但还有一个问题:我想显示此外参考书目中的作者姓氏和年份(与连续文本一样)。姓氏和年份都应采用粗体格式。以下是示例:
在连续文本中:测试(Bögelsack 等,1985)。
在参考书目中:
Bögelsack 等人,1985 年
Bögelsack,G.;卡伦巴赫,E.; Linnemann, G. (1985): 设备技术中的机器人。海德堡:A.Hüthig。国际书号:3778510428。
这是我的.tex:
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[style=authoryear, maxcitenames=2, firstinits=true, uniquename=init, backend=biber]{biblatex}
\usepackage{filecontents}
\addbibresource{Label.bib}
\AtBeginBibliography{%
\renewcommand*{\multinamedelim}{\addsemicolon\space}
\renewcommand*{\finalnamedelim}{\addsemicolon\space}
\renewcommand{\labelnamepunct}{\addcolon\space}
\DeclareFieldFormat{title}{#1\isdot}
\DeclareNameFormat{sortname}{
\iffirstinits
{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%
\usebibmacro{name:andothers}}
}
\DefineBibliographyStrings{ngerman}{andothers={et\ al\adddot}}
\begin{filecontents}{Label.bib}
@book{Bogelsack.1985,
author = {B{\"o}gelsack, G. and Kallenbach, Eberhard and Linnemann, Gerhard},
year = {1985},
title = {Roboter in der Ger{\"a}tetechnik},
address = {Heidelberg},
publisher = {A. H{\"u}thig},
isbn = {3778510428}
}
\end{filecontents}
\begin{document}
Test (\cite{Bogelsack.1985}).
\printbibliography
\end{document}
我花了很多时间在网上寻找解决方案,但没有找到有关此主题的任何信息。有人知道吗?
答案1
为了达到预期的结果,最简单的方法是重新定义begentry
钩子来打印labelname
和labelyear
。
\renewbibmacro{begentry}{%
\textbf{\printnames[][-\value{liststop}]{labelname}~\printfield{labelyear}\printfield{extrayear}}\\}
编辑插入\printfield{extrayear}
以处理具有相同作者年份组合的多个标签的情况。
答案2
自提出此问题以来,biblatex-ext
已发布。该包的样式通过选项为该问题提供了内置解决方案introcite
。您可以在§4.2.特定于样式的选项的biblatex-ext
。
通过introcite=plain
两个小小的重新定义,我们应该能够达到这个目的。
MWE 中的代码已经现代化,可以使用更新的biblatex
功能。
\documentclass[ngerman]{scrartcl}
\usepackage{babel}
\usepackage[autostyle, german=quotes]{csquotes}
\usepackage[backend=biber, style=ext-authoryear,
introcite=plain,
maxcitenames=2, giveninits=true, uniquename=init,]{biblatex}
\renewcommand*{\introcitepunct}{\newline}
\DeclareFieldFormat{bbx@introcite}{\mkbibbold{#1}}
\DeclareNameAlias{sortname}{family-given}
\DeclareDelimFormat[bib]{multinamedelim}{\addsemicolon\space}
\DeclareDelimAlias*[bib]{finalnamedelim}{multinamedelim}
\DeclareDelimFormat[bib]{nametitldelim}{\addcolon\space}
\DeclareFieldFormat{title}{#1\isdot}
\DefineBibliographyStrings{ngerman}{andothers={et\ al\adddot}}
\addbibresource{biblatex-examples.bib}
\begin{document}
Test \autocite{sigfridsson}.
Test \autocite{companion}.
\printbibliography
\end{document}