又一个针对 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。
- “Geeraerts, D. (2001).”需要加粗
- 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}