biblatex - apa 样式 - 需要进行两次格式更改

biblatex - apa 样式 - 需要进行两次格式更改

又一个针对 biblatex 的 APA 风格修改,抱歉各位 :/

请温柔一点,我现在使用 Latex 大约 10 个小时了……

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{refs.bib}
@article{GeeraertsEenzondagspakHet2001,
    langid = {dutch},
    title = {Een zondagspak? Het Nederlands in Vlaanderen: gedrag, beleid, attitudes},
    volume = {44},
    journaltitle = {Ons Erfdeel},
    date = {2001},
    pages = {337--344},
    author = {Geeraerts, Dirk}}
}
\end{filecontents*}
\usepackage[style=apa,citestyle=authoryear-ibid,backend=biber]{biblatex}
\addbibresource{refs.bib}

\begin{document}

In 1988 C was totally awesome. \parencite[338]{GeeraertsEenzondagspakHet2001}

\printbibliography 
\end{document}

我需要对输出进行两处更改\printbibliography

Geeraerts,D.(2001)。周一早上聊天?佛兰德斯的荷兰语:态度、信念、态度。Ons Erfdeel,44岁,337–344。

应该

Geeraerts,D.(2001)。周一早上聊天?佛兰德斯的荷兰语:态度、信念、态度。我们的利益44,337–344。

  1. “Geeraerts, D. (2001).”需要加粗
  2. Ons Erfdeel,44岁,337–344。 =>我们的利益44,337–344。

仔细观察就会发现,“44”不再是斜体,而且失去了逗号在它前面。


我目前正在使用,biblatex因为我的 Zotero 可以很好地导出到该格式。我使用的是 Windows 10、MikTeX 2.9.6637 和 TexStudio 2.12.6。

感谢您的帮助!

[如果需要,我愿意更换 bib-package]

答案1

您使用的是biblatex-apa一种完全符合 APA 格式的格式,而不是“哈佛格式”(哈佛格式不是一个定义明确的术语,通常仅指作者年份引用)。如果您对biblatex-apa文档进行任何修改,则文档将不再符合 APA 格式。

一般来说,biblatex-apa如果我不必遵循它所实施的确切样式指南,我会避免使用高度定制的样式。定制样式的设计不允许进行大量修改,因此它们可能比标准样式更难修改,而标准样式的编写考虑到了易于修改的需求。如果您需要应用的更改biblatex-apa很小,您可以修改该样式。但是,一旦更改变得更加丰富和复杂,标准样式之一几乎总是更好的选择。

好的,那么我们在这里做了什么?

  • 我们修改了author和宏,将作者姓名和年份变为粗体。在这两种情况下,我们所做的唯一一件事就是在原始定义周围editorinauthpos添加。\printtext[bold]{...}apa.bbx
  • 我们\DeclareFieldFormat[article]{volume}{\apanum{#1}}确保volume数字不再是斜体。
  • 最后,在journal+issuetitle宏中(也来自apa.bbx),我们用空格替换两个逗号,以删除 之前的逗号volume
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{refs.bib}
@article{GeeraertsEenzondagspakHet2001,
    langid = {dutch},
    title = {Een zondagspak? Het Nederlands in Vlaanderen: gedrag, beleid, attitudes},
    volume = {44},
    journaltitle = {Ons Erfdeel},
    date = {2001},
    pages = {337--344},
    author = {Geeraerts, Dirk}}
}
\end{filecontents*}
\usepackage[style=apa,citestyle=authoryear-ibid,backend=biber]{biblatex}
\addbibresource{refs.bib}

\DeclareFieldFormat{bold}{\mkbibbold{#1}}
\renewbibmacro*{author}{%
  \printtext[bold]{%
    \ifnameundef{author}
      {\usebibmacro{labeltitle}}
      {\printnames[apaauthor][-\value{listtotal}]{author}%
       \setunit*{\addspace}%
       \printfield{nameaddon}%
       \ifnameundef{with}
         {}
         {\setunit{}\addspace\mkbibparens{\printtext{\bibstring{with}\addspace}%
          \printnames[apaauthor][-\value{listtotal}]{with}}
          \setunit*{\addspace}}}%
    \newunit\newblock
    \usebibmacro{labelyear+extradate}}}

\renewbibmacro*{editorinauthpos}{%
  \printtext[bold]{%
    \global\booltrue{bbx:editorinauthpos}%
    \printnames[apaauthor][-\value{listtotal}]{editor}%
    \setunit{\addspace}%
    \ifnameundef{editor}
      {}
      {\printtext[parens]{\usebibmacro{apaeditorstrg}{editor}}%
       % need to clear editor so we don't get an "In" clause later
       % But we also need to set a flag to say we did this so we
       % don't lose sight of the fact we once had an editor for
       % various year placement tests
       \clearname{editor}%
       \setunit{\adddot\space}%
       \usebibmacro{labelyear+extradate}%
       \setunit{\adddot\space}}}}

\DeclareFieldFormat[article]{volume}{\apanum{#1}}
\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}
     \setunit{\addspace}}%
  \printfield{volume}%
  \printfield{number}%
  \setunit{\addspace}\newblock
  \usebibmacro{issuename}%
  \newunit}

\begin{document}
In 1988 C was totally awesome. \parencite[338]{GeeraertsEenzondagspakHet2001}

\printbibliography 
\end{document}

在此处输入图片描述

相关内容