这是我第一次在这里发布问题,所以请原谅一些错误。我想要做的是引用某些内容及其原始出版年份,并让它出现在我的参考书目中。我使用 BibLaTeX 并采用以下选项:
\usepackage[style=authoryear-icomp, bibstyle=authoryear-comp]{biblatex}
为了让我的引用标签显示origyear
我很高兴找到以下解决方案:
\DeclareLabelyear{\field{origyear}\field{year}}
如果有的话,这会给我提供引文中的原始出版日期。遗憾的是,参考书目不包括此标签,但包括字段year
,因此我引用了“lastname (1891)”,而我的参考书目有一个类似于
lastname, first (2002): titel...
例如。为了适应这种情况,我做了以下事情:
\AtEveryBibitem{%
\iffieldundef{origyear}{%
\printnames{author} (\printdate)\addcolon\addspace
}{%
\setunit*{\addspace}%
\printtext[]{\printnames{author} (\printorigdate)\addcolon\addspace}%
}%
\clearname{author}%
\clearfield{year}}
所以,现在我有了正确的标签,这意味着我的参考书目条目是
lastname, firstname (1981): titel...
但实际出版日期已丢失。我想要类似
lastname, firstname (1981): titel... published in booktitel (or whatever) 2002..."
这里有以下两个问题:
- 有没有更简单的方法可以到达我所在的地方,那就是为什么不
\DeclareLabelyear
改变我的参考书目中的标签呢? - 我该如何在参考书目中包含实际出版日期,以及在哪里?
(此时或许第三个问题也有意义:
- 首先,我心目中的引用风格是否有意义,或者我应该遵循 APA 建议的风格并在引用和参考书目中使用 (1981/2002) 标签?)
编辑:我被告知要包含一个最低限度的工作示例,因此这里就有了(希望足够):
\documentclass[]{scrartcl}
\usepackage{csquotes}
\usepackage[backend=biber,
style=authoryear-icomp,
bibstyle=authoryear-comp,
]{biblatex}
\addbibresource{bibliography.bib}
\defbibenvironment{bibliography}
{\list
{}
{\setlength{\leftmargin}{\bibhang}%
\setlength{\itemindent}{-\leftmargin}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}}
{\endlist}
{\item}
\DeclareNameFormat{author}{%
\ifthenelse{\value{listcount}=1}
{\textsc{#1}%
\ifblank{#3}{}{\addcomma\space \textsc{#3}}}
{\ifblank{#3}{}{\textsc{#3}\space}%
\textsc{#1}}%
\ifthenelse{\value{listcount}<\value{liststop}}
{\addcomma\space}
{}}
\AtEveryBibitem{%
\iffieldundef{origyear}{%
\printnames{author} (\printdate)\addcolon\addspace
}{%
\setunit*{\addspace}%
\printtext[]{\printnames{author} (\printorigdate)\addcolon\addspace}%
}%
\clearname{author}%
\clearfield{year}}
\DeclareLabelyear{\field{origyear}\field{year}}
\begin{document}
Some text \cite{Frege.2002a}, some text \cite{Frege.2002b}.
\printbibliography
\end{document}
这就是我所看到的可能与我的问题有关的一切。当然,这是我的.bib
条目:
@incollection{Frege.2002c,
author = {Frege, Gottlob},
title = {{\"U}ber Sinn und Bedeutung},
pages = {23--46},
bookpaginationtype = {page},
volume = {4},
publisher = {Vandenhoeck {\&} Ruprecht},
isbn = {978-3-525-30603-1},
series = {Sammlung Philosophie},
editor = {Textor, Mark},
booktitle = {Funktion - Begriff - Bedeutung},
year = {2002},
origdate = {1892},
location = {G{\"o}ttingen},
number = {4}
}
@incollection{Frege.2002b,
author = {Frege, Gottlob},
title = {Funktion und Begriff},
pages = {2--22},
bookpaginationtype = {page},
volume = {4},
publisher = {Vandenhoeck {\&} Ruprecht},
isbn = {978-3-525-30603-1},
series = {Sammlung Philosophie},
editor = {Textor, Mark},
booktitle = {Funktion - Begriff - Bedeutung},
year = {2002},
origdate = {1891},
location = {G{\"o}ttingen},
number = {4}
}
此外,您可以从中看到该问题与@incollection
条目有关,但我希望全面修复它。
答案1
所有标准作者年份样式都使用authoryear
书目样式,该样式有一个名为 的附加选项mergedate
。其各种设置在 biblatex 文档的示例 50 中进行了说明。要在书目中使用 ,labelyear
请year
放弃\AtEveryBibitem
钩子,只需使用以下任一方式加载 biblatex:
\usepackage[backend=biber,style=authoryear-icomp,mergedate=basic]{biblatex}
\usepackage[backend=biber,style=authoryear-icomp,mergedate=minimum]{biblatex}
\usepackage[backend=biber,style=authoryear-icomp,mergedate=false]{biblatex}
或者,您可以重新定义date+extrayear
参考书目宏:
\renewbibmacro*{date+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[parens]{%
\printfield{labelyear}%
\printfield{extrayear}}}}
下一个版本将包含一些改进,mergedate
以便作者年份样式能够一致使用labelyear
,并且可以通过更灵活地定义年份标签\DeclareLabeldate
。