答案1
使用biblatex
它应该可以做出一些东西。这种风格的某些方面可能比其他方面更难实现。
尽管所需样式似乎与 APA 样式(名称格式)共享一些元素,但此答案并非以此为基础biblatex-apa
。即使对进行简单的修改也可能非常复杂biblatex-apa
,因为样式必须做很多工作才能实现 APA 手册的复杂要求。
相反,我的答案是基于ext-authoryear
我的biblatex-ext
风格捆绑包,因为捆绑包为一些所需的修改提供了一些快捷方式。
biblatex
3.12 引入了新的名称和列表包装器,可让您轻松地以粗体形式排版整个名称列表,而不仅仅是其中的一部分(目前是可能的)。这就是
\DeclareNameWrapperFormat{sortname}{\mkbibbold{#1}}
看看https://github.com/plk/biblatex/issues/754和https://github.com/plk/biblatex/pull/829。
除了最复杂的重新定义涉及名称格式之外,其余部分都相当简单(参见自定义 biblatex 样式的指南)。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{mathpazo}
%\usepackage{fontspec}
%\setmainfont{Junicode}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,
style=ext-authoryear, giveninits=true, uniquename=init, dashed=false,
articlein=false,
alldates=year, urldate=long]{biblatex}
\renewcommand*{\newunitpunct}{\addcomma\space}
\DeclareNameWrapperFormat{sortname}{\mkbibbold{#1}}
\DeclareNameAlias{sortname}{family-given}
\renewrobustcmd*{\bibinitdelim}{}
\renewbibmacro*{name:family-given}[4]{%
\ifuseprefix
{\usebibmacro{name:delim}{#3#1}%
\usebibmacro{name:hook}{#3#1}%
\ifdefvoid{#3}{}{%
\ifcapital
{\mkbibnameprefix{\MakeCapital{#3}}\isdot}
{\mkbibnameprefix{#3}\isdot}%
\ifprefchar{}{\bibnamedelimc}}%
\mkbibnamefamily{#1}\isdot
\ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
\ifdefvoid{#4}{}{\revsdnamepunct\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}
{\usebibmacro{name:delim}{#1}%
\usebibmacro{name:hook}{#1}%
\mkbibnamefamily{#1}\isdot
\ifboolexpe{%
test {\ifdefvoid{#2}}
and
test {\ifdefvoid{#3}}}
{}
{\revsdnamepunct}%
\ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
\ifdefvoid{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}%
\ifdefvoid{#4}{}{\revsdnamepunct\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}}
\DeclareDelimFormat[bib,biblist]{nametitledelim}{\addspace}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{#1\isdot}
\renewcommand*{\jourvoldelim}{\addcomma\space}
\DeclareFieldFormat[article,periodical]{volume}{\mkbibbold{#1}}
\DeclareFieldFormat[article,periodical]{pages}{\mkcomprange{#1}}
\renewbibmacro*{pubinstorg+location+date}[1]{%
\printlist{#1}%
\setunit*{\publocdelim}%
\printlist{location}%
\setunit*{\locdatedelim}%
\usebibmacro{date}%
\newunit}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{costamccrae1988,
author = {Costa, Jr., Paul. T. and Robert R. McCrae},
title = {Personality in Adulthood:
A Six-Year Longitudinal Study of Self-Reports
and Spouse Ratings on the {NEO} Personality Inventory},
journal = {Journal of Personality and Social Psychology},
date = {1988-05},
volume = {54},
number = {5},
pages = {853-863},
}
@book{costamccrae1992,
author = {Costa, Jr., Paul. T. and Robert R. McCrae},
title = {Revised {NEO} Personality Inventory ({NEO-PI-R})
and {NEO} Five-Factor Inventory ({NEO-FFI})
Professional Manual},
date = {1992},
location = {Odessa, Florida},
publisher = {Psychological Assessment Resources},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson,costamccrae1988,costamccrae1992}
\printbibliography
\end{document}