我正在使用biblatex-apa
和biber
作为后端。
根据 Biblatex 包文献对于字段 origdate`
日期范围以 yyyy-mm-dd/yyyy-mm-dd 格式给出(第 34 页)
但我还是不确定如何打印它,因为如果我有翻译,那么使用数据范围,文内引用会有点Someauthor (1929-1939/1965)
混乱。该biblatex-apa
样式不支持原始日期的日期范围:它只打印第一年。但无论如何你会如何打印它?你会保留范围的第一年和最后一年还是只保留最后一年?
答案1
我们可以使用重新定义宏origyear
来打印origendyear
\DeclareFieldFormat{origyear}{\mkbibparens{\bibcpstring{origyear}~\thefield{origyear}\setunit*{\bibrangedash}\printfield{origendyear}}}
\newbibmacro*{cite:plabelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
\printfield[noformat]{origyear}\setunit*{\bibrangedash}\printfield[noformat]{origendyear}
\setunit{\addslash}%
\printfield{labelyear}\printfield{extrayear}}}}
因此我们也可以设定范围的结束日期。
平均能量损失
\documentclass{article}
\usepackage{filecontents}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[american]{babel}
\usepackage[backend=biber, style=apa]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\begin{filecontents*}{\jobname.bib}
@book{popper-logik:eng:1959,
author = {Karl R. Popper},
title = {The Logic of Scientific Discovery},
date = {1959},
edition = {1},
location = {London},
publisher = {Hutchinson},
origdate = {1934/1935},
}
@book{Poincare:1928-GER,
author = {Jules-Henri Poincaré},
title = {Wissenschaft und Hypothese},
date = {1928},
publisher = {Teubner},
location = {Berlin and Leipzig},
origdate = {1902/1905},
}
\end{filecontents*}
\bibliography{\jobname.bib}
\DeclareFieldFormat{origyear}{\mkbibparens{\bibcpstring{origyear}~\thefield{origyear}\setunit*{\bibrangedash}\printfield{origendyear}}}
\newbibmacro*{cite:plabelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
\printfield[noformat]{origyear}\setunit*{\bibrangedash}\printfield[noformat]{origendyear}
\setunit{\addslash}%
\printfield{labelyear}\printfield{extrayear}}}}
\nocite{*}
\begin{document}
Here is some sample text \parencite{popper-logik:eng:1959,Poincare:1928-GER}.
\printbibliography
\end{document}
biblatex
有更复杂的机制可用于处理这种联系(该related
领域),而且我认为没有必要在文内引用中打印原始出版年份。