我正在使用biblatex-ext
withintrocite=label
來獲取引用樣式,如以下問題所示:
使用 biblatex 和 biber 建立具有固定縮排和作者年份標籤的參考書目
這為我提供了標籤和參考書目中作者和年份之間有空格的標籤。但是,我需要在標籤中的作者和年份之間有一個空格,在參考書目條目中的作者和年份之間有一個逗號。所以我需要這樣的東西:
Tietze et al. 2012 Tietze, Ulrich; Schenk, Christoph, 2012.
Halbleiterschaltungstechnik. ...
請注意,我使用以下解決方案刪除了年份周圍的括號:biblatex:如何以作者年份風格刪除年份周圍的括號?
在尋找解決方案時,我發現
\renewcommand*{\nameyeardelim}{\addcomma\space}
但這僅適用於製作上述條目的標籤
Tietze et al., 2012 Tietze, Ulrich; Schenk, Christoph 2012.
Halbleiterschaltungstechnik. ...
這與我需要的相反。我需要在標籤中的作者和年份之間添加一個空格,並在參考書目條目中添加逗號。
答案1
正如所提到的大衛·珀頓在評論,nameyeardelim
是上下文相關的分隔符號。這意味著您可以為參考書目和引文賦予不同的定義。標籤introcite
具有 context ,它與參考書目其餘部分的bbx@introcite
context 不同,因此我們可以在這裡使用不同的值。bib
nameyeardelim
nameyeardelim
所有上下文的預設分隔符號都是\addspace
,因此我們只需要將bib
上下文的分隔符號變更為逗號後跟空格即可。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[style=ext-authoryear, backend=biber, introcite=label, dashed=false]{biblatex}
\addbibresource{biblatex-examples.bib}
\setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip}
\setlength{\introcitewidth}{6em}
\DeclareDelimFormat[bib]{nameyeardelim}{\addcomma\space}
\DeclareFieldFormat{biblabeldate}{#1}
\begin{document}
\cite{sigfridsson,worman,geer,knuth:ct:a}
\printbibliography
\end{document}