我其实对 APA 风格很满意,但是我需要一些帮助来实现以下两个调整:
我不想在作者姓名和年份之间加逗号。我根本不想要斜体字体。它出现在书名和文章期刊名称中。
这是我目前的设置
\usepackage[style=apa]{biblatex}
\addbibresource{bibliography.bib}
\DeclareDelimFormat{nameyeardelim}{\space}
\newpage
\pagenumbering{Roman}
\setcounter{page}{3}
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\renewcommand*{\newunitpunct}{\addcomma\space}
\printbibliography
答案1
正如 Alan Munn 在评论中所说:biblatex-apa
应该尽可能地实现 APA 风格biblatex
。设计时并未考虑(轻松)可定制性。
举个例子:通常,你可以像说 一样轻松地去掉名称和年份之间的逗号\DeclareDelimFormat[bib]{nameyeardelim}{\addspace}
。但是biblatex-apa
不使用此分隔符而是使用\newunit\newblock
,因此我们需要先使其使用,namyeardelim
然后才能使用它来更改逗号。
您可以通过重新定义字段格式来删除斜体...title
。请参阅背景信息从样式中删除引号。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=apa, backend=biber]{biblatex}
\renewcommand*{\newunitpunct}{\addcomma\space}
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\DeclareDelimFormat{nameyeardelim}{\addspace}
\DeclareDelimFormat[bib]{nameyeardelim}{\addspace}
\renewbibmacro*{author/editor}{%
\ifthenelse{\ifnameundef{author}\AND\ifnameundef{groupauthor}}
{\ifnameundef{editor}
{\usebibmacro{title}%
% need to clear all title fields so we don't get them again later
\clearfield{title}%
\clearfield{subtitle}%
\clearfield{titleaddon}}
{\usebibmacro{editorinauthpos}}}
{\usebibmacro{author}}%
\setunit{\printdelim{nameyeardelim}}%
\usebibmacro{labelyear+extradate}}
\DeclareFieldFormat{title}{#1\isdot}
\makeatletter
\DeclareFieldFormat{origtitle}{\bbx@colon@search\MakeSentenceCase*{#1}\isdot}
\makeatother
\DeclareFieldFormat{journaltitle}{#1\isdot}
\DeclareFieldFormat{issuetitle}{#1}
\DeclareFieldFormat{maintitle}{#1}
\DeclareFieldFormat{booktitle}{#1}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson,cicero,worman,westfahl:space,gaonkar:in}
\printbibliography
\end{document}