编辑#3:下面的代码已更新为我现在使用的代码,来自https://tex.stackexchange.com/a/91381/24264;请注意,作为此修复的一部分,我已向 bibentry ( annote
) 添加了一个字段。我决定放弃添加编号,因为这似乎比它本身带来的麻烦更多,而且我的教授最终可能会认为它违反了 APA 风格 :)
编辑#2:我从编辑 #1 中找到了令人满意的修复方法(反映在下面的代码中),但我仍然希望注释与编号引用对齐 — 在我的示例中为“Howlin”和单词“注释”。有人能告诉我如何做到这一点吗?
编辑#1:@Guido 对我的主要问题非常有帮助。此时,我试图插入一个“参考”页面,模仿\printbibliography
当前文档中的垂直间距——我再次遇到了知识上的空白。
原始帖子:我的目标是创建一个 APA 格式的带注释的参考书目(用于 4 月份的学期论文)。到目前为止,我对 biblatex 的唯一体验就是简单的\printbibliography
命令。经过一番搜索,我希望能复制解决方案这里,但我并没有感到高兴,即使我尽可能地遵循 Alan 的原始示例;只要 Alan 的代码(以 开头\newcounter{bibnum}
和以 结尾{\end{thebibliography}}
)不存在, \fullcitebib 本身就可以顺利运行。当我插入代码块时,我在编译时收到以下错误:
! Undefined control sequence.
\blx@precode ...egin {thebibliography}\thebibitem
l.91 \fullcitebib{howlin04}
! LaTeX Error: Something's wrong--perhaps a missing \item.
See the LaTeX manual or LaTeX Companion for explanation.
...
l.91 \fullcitebib{howlin04}
我的问题(如果你可以称之为问题,而不是“请告诉我这是怎么做的”)是为什么我的 MiKTeX 似乎表现得很奇怪——我没有足够的 LaTeX 知识来理解如何\thebibitem
正确定义,从而解决问题。
这是我的最小示例:
\documentclass[man,12pt,noextraspace]{apa6}
\usepackage{filecontents}
\shorttitle{Cog paper}
\begin{filecontents}{cogsources.bib}
@article{howlin04,
author = {Howlin, Patricia and Goode, Susan and Hutton, Jane and Rutter, Michael},
title = {Adult outcome for children with autism},
journal = {Journal of Child Psychology and Psychiatry},
volume = {45},
number = {2},
publisher = {Blackwell Publishing},
issn = {1469-7610},
url = {http://dx.doi.org/10.1111/j.1469-7610.2004.00215.x},
doi = {10.1111/j.1469-7610.2004.00215.x},
pages = {212--229},
keywords = {Autistic disorder, prognosis, adulthood, follow-up studies},
year = {2004},
annote = {Annotations go here.},
}
\end{filecontents}
%% fontspec
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Times New Roman}
%% bibliography
\usepackage[canadian]{babel}
\usepackage{csquotes}
\usepackage[style=apa,backend=biber,sortcites=true,sorting=nyt,language=american]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{cogsources.bib}
%% annote
\renewbibmacro*{finentry}{%
\iffieldundef{annotation}
{\finentry}
{\setunit{\finentrypunct\par\vspace{\bibitemsep}\nobreak}
\printfield{annotation}%
\finentry}}
\begin{document}
\printbibliography
\nocite{howlin04}
\end{document}
答案1
代码在https://tex.stackexchange.com/a/13655/24264must 修改如下:\thebibitem
必须替换为\item
。以下是生成的代码
\newcounter{bibnum}
\DeclareCiteCommand{\fullcitebib}
{\renewenvironment*{thebibliography}
{\list
{\stepcounter{bibnum}\thebibnum.\ }
{\setlength{\leftmargin}{1.65\bibhang}
%
\setlength{\itemindent}{-\bibhang}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}}
{\endlist}
\renewcommand{\finalnamedelim}{\ifnum\value{liststop}>2 \finalandcomma\fi\addspace\&\space}%
\begin{thebibliography}\item}
{\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}\finentry}
{\item}
{\end{thebibliography}}