使用 biblatex-apa 和未发表的论文自定义信息顺序和标点符号

使用 biblatex-apa 和未发表的论文自定义信息顺序和标点符号

根据我拥有的 APA 手册,在参考文献部分,未发表的论文应采用以下格式:

Doe,J.(2015 年)。标题(未发表博士论文)。某大学,城市。

使用biblatex-apa,我能得到的最接近的东西是使用以下示例代码:

主要.tex:

\documentclass{article}

\usepackage[british]{babel}
\usepackage[english=american,autostyle=false]{csquotes}
\usepackage[style=apa, backend=biber, natbib]{biblatex}
\DeclareLanguageMapping{british}{british-apa}

\addbibresource{bibliography.bib}

\begin{document}

Blah blah blah \parencite{doe2015}.

\printbibliography

\end{document}

书目.bib:

@Unpublished{doe2015a,
  Title                    = {Title},
  Author                   = {Doe, J.},
  Year                     = {2015},
  Location                 = {City},
  School                   = {Some University},
  Note                     = {(Unpublished doctoral dissertaion)}
}

但是结果仍然不是我想要的。顺序和标点符号的使用都不同:

Doe,J.(2015 年)。标题,某大学。(未发表的博士论文),城市。

我该如何定制它以符合规则?

答案1

论文和学位论文应该使用thesis(或phdthesismastersthesis别名)类型,而不是unpublished类型。所以这是问题的一部分。

biblatex-apa仍然没有完全按照您的格式格式化(我通常会遵循biblatex-apa,因为据我所知它是相当准确的。)但如果您想改变这一点,您可以改变type+institution格式化的方式:

\documentclass{article}

\usepackage[british]{babel}
\usepackage[english=british,autostyle=false]{csquotes}
\usepackage[style=apa, backend=biber, natbib]{biblatex}
    \usepackage{filecontents}
\DeclareLanguageMapping{british}{british-apa}
\renewbibmacro*{type+institution}{%
  \setunit{\addspace}%
  \ifthenelse{\iffieldundef{type}\AND\iffieldundef{institution}}
    {}
    {\printtext[parens]{%
       \iflistundef{institution}
         {\setunit*{\addspace}}
         {\setunit*{\addcolon\space}}%
       \printfield{type}}%
       \setunit*{\adddot\space}%
       \printlist{institution}%
       \setunit*{\addcomma\space}%
       \printlist{location}%
     \newunit}}

\begin{filecontents*}{\jobname.bib}
@thesis{doe2015a,
  Title = {Title},
  Author = {Doe, J.},
  Year = {2015},
  Location = {City},
  School = {Some University},
  Type = {unpublished doctoral dissertation}
}
\end{filecontents*}

\addbibresource{\jobname.bib}

\begin{document}

Blah blah blah \parencite{doe2015a}.

\printbibliography

\end{document}

代码输出

答案2

将字段更改NoteHowpublished。要隐藏标题和“未发布...”之间的标点符号,可以使用一个小补丁:

\documentclass{article}

\usepackage[british]{babel}
\usepackage[english=american,autostyle=false]{csquotes}
\usepackage[style=apa, backend=biber, natbib]{biblatex}

\usepackage{xpatch}
\xpatchbibdriver{unpublished}{%
  \newunit\newblock
  \printfield{howpublished}%
}{%
  \setunit{\addspace}\newblock
  \printfield{howpublished}%
}{}{}

    \usepackage{filecontents}
\DeclareLanguageMapping{british}{british-apa}
   \begin{filecontents*}{bibliography.bib}
@Unpublished{doe2015a,
  Title = {Title},
  Author = {Doe, J.},
  Year = {2015},
  Location = {City},
  School = {Some University},
  Howpublished = {(Unpublished doctoral dissertation)}
}
    \end{filecontents*}

\addbibresource{bibliography.bib}

\begin{document}

Blah blah blah \parencite{doe2015a}.

\printbibliography

\end{document} 

在此处输入图片描述

相关内容