我正在写论文,并尝试biblatex
在 overleaf 上使用 APA 格式。在我的references.bib
文件中,我有:
@misc{ramstedt2014andt,
title={ANDT-bruket och dess negativa konsekvenser i den svenska befolkningen 2013},
author={Ramstedt, Mats and Sundin, Erica and Landberg, Jonas and Raninen, Jonas},
year={2014},
publisher={Rapport}
}
@book{andersson2009alcohol,
title={Alcohol Use and Stress in University Freshmen-A Comparative Intervention Study of Two Universities},
author={Andersson, Claes},
volume={2009},
number={41},
year={2009},
publisher={Clinical Alcohol Research, Department of Health Sciences, Lund University}
}
在我的主文件中我有:
\documentclass[bachelor,lith,english]{liuthesis}
%% Settings go in settings.tex
\include{settings}
现在它出现在设置文件中
\usepackage[backend=biber,hyperref, style=apa]{biblatex}
\DeclareLanguageMapping{british}{british-apa}
\ExecuteBibliographyOptions{maxnames=99}
\addbibresource{references.bib}
但是当我这样引用时:
Today approximately 446 000 people suffer from alcohol addiction in Sweden \cite{ramstedt2014andt}.
我得到:
Today approximately 446 000 people suffer from alcohol addiction in Sweden . ramstedt2014andt
编辑:
我期望的风格是经典的 APA,例如:
(Ramstedt et al, 2014)
(Ramstedt, 2014)
Ramstedt (2014)
我的警告是:
./demo_student_thesis.tex:
Package biblatex Warning: Please (re)run Biber on the file:
(biblatex) demo_student_thesis
(biblatex) and rerun LaTeX afterwards.
./intro.tex:37:
LaTeX Warning: Citation 'ramstedt2014andt' on page 1 undefined on input line 37
.
./demo_student_thesis.tex:79:
LaTeX Warning: Empty bibliography on input line 79.
编辑二
这里有一些进展。添加“backref=true”后,我成功编译。
\usepackage[backend=biber,hyperref,backref=true style=apa]{biblatex}
这样做是为了添加一个编号参考1ramstedt2014andt 参考。我将我的设置与这个 overleaf 模板。
编辑三 通过从主文件中删除 \printbibliography,我得到了这个结果:Ramstedt,Sundin,Landberg and Raninen,2014。我可以在reference.bib文件中写入“and others”,但是括号似乎仍然没有包含在内。
括号可以用 \parencite{} 解决。但是有没有办法自动设置 et al,而不是在 bib.file 中添加“and others”?
答案1
在序言中使用\input
它来代替。\include
\include
仅可在 之后使用\begin{document}
。
要解释为什么以及这两者之间的区别是什么,请参阅“Martin Scharrer”的回答何时应使用 \input 和 \include?
答案2
我认为问题可能是(无论如何A问题是)您已将语言设置为english
(可能!无论如何,这是传递给您的类的一个选项),但您\DeclareLanguageMapping
指定的british
.biblatex
对这些事情很挑剔。如果我设置babel
为english
,然后仅映射british
,使用article
类,我会得到(正如人们所预料的那样)未定义的控制序列错误,这是由于未apa
加载特定代码造成的。可能是 Overleaf 正在努力隐藏这些错误……我不知道,因为我不使用它。但我知道您必须将您的语言映射与您的语言定义相匹配。
另外,引用的形式:正如您所想的那样,使用\parencite
或\autocite
。这是设计使然。
(这include
是当然也是错误的,但这不是问题的根源。 Biblatex 并不关心文件.aux
。