更改 Biblatex APA 样式中的作者姓名顺序

更改 Biblatex APA 样式中的作者姓名顺序

我试图根据 Benjamins 的风格重新创建一种非常独特的风格,并进行了一些更改。Benjamins 的风格与 APA 风格很接近,但有一些细微的差别,而且这个项目的主管在多年的编辑过程中也学会了其他一些特质。我希望使用 APA 风格,并“即时”进行这些修改。

默认情况下,biblatex 包似乎会将引用的作者作为“family-given”,将所有后续作者作为“given-family”。不幸的是,当我使用 APA 样式时,所有作者都变为“family-given”。我不知道如何阻止这种情况发生。有人能帮我吗?

简化代码:

\documentclass{article}
\usepackage{colortbl}
\usepackage{xcolor}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{graphicx}

\usepackage{hyperref}
\usepackage{covington}
\usepackage{fancyref}
\usepackage[
    style=apa,
    dashed=false
 ]{biblatex}
\if@pdfa
  \usepackage[a-3b]{pdfx}
\fi
\renewcommand*{\nameyeardelim}{\addcomma\space}
\renewcommand*{\postnotedelim}{\addcolon}

\DefineBibliographyStrings{english}{%
  page             = {},
  pages            = {},
} 

%RENEW APA
% argument meanings from apa.bbx
% #1 = family name
% #2 = given name
% #3 = given name (initials)
% #4 = name prefix
% #5 = name suffix

\renewbibmacro*{name:apa:family-given}[5]{%
  \ifuseprefix
    {\usebibmacro{name:delim:apa:family-given}{#4#1}%
     \usebibmacro{name:hook}{#4#1}%
     \ifdefvoid{#4}{}{%
       \mkbibnameprefix{#4}\isdot%
       \ifprefchar{}{\bibnamedelimc}}%
     \mkbibnamefamily{#1}\isdot%
     \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
     \ifdefvoid{#5}{}{\addcomma\bibnamedelimd\mkbibnamesuffix{#5}\isdot}}
    {\usebibmacro{name:delim:apa:family-given}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibnamefamily{#1}\isdot
     \ifboolexpe{%
       test {\ifdefvoid{#2}}
       and
       test {\ifdefvoid{#4}}}
       {}
       {\revsdnamepunct}%
     \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
     \ifdefvoid{#4}{}{%
       \bibnamedelimc\mkbibnameprefix{#4}%
       \ifprefchar{}{\bibnamedelimc}}%
\ifdefvoid{#5}{}{\addcomma\bibnamedelimd\mkbibnamesuffix{#5}\isdot}}}

\renewbibmacro*{name:apa:given-family}[5]{%
  \usebibmacro{name:delim}{#2#4#1#5}%
  \usebibmacro{name:hook}{#2#4#1#5}%
  \ifdefvoid{#2}{}{\mkbibnamegiven{#2}\isdot%
                   \bibnamedelimd}%
  \ifdefvoid{#4}{}{%
    \mkbibnameprefix{#4}\isdot
    \ifprefchar{}{\bibnamedelimc}}%
  \mkbibnamefamily{#1}\isdot%
  \ifdefvoid{#5}{}{\bibnamedelimd\mkbibnamesuffix{#5}\isdot}}


\hypersetup{
    colorlinks=true,
    linkcolor=blue,
    filecolor=magenta,      
    urlcolor=cyan,
    pdftitle={Test DocumOverleaf Examplent},
    pdfpagemode=FullScreen
    }

\title{Testing}
\date{2023}

\addbibresource{References.bib}

\begin{document}

%\include{Test.tex}

\maketitle

\section{Introduction}

\nocite{*}   %Uncomment if you have a bibliography with work read but not cited
\renewcommand\bibname{References}
\begin{refcontext}[sorting=nty]
\printbibliography[heading=bibintoc]
\end{refcontext}
\bigskip


\end{document}

包含 APA 样式:

Epps, Patience L., Webster, Anthony K., & Woodbury, Anthony C. (2017). A holistic
humanities of speaking: Franz Boas and the continuing centrality of texts.
International Journal of American Linguistics, 83 (1), 41–78. https://doi.org/
10.1086/689547

未包含 APA 样式:

[50] Patience L. Epps, Anthony K. Webster, and Anthony C. Woodbury.
“A Holistic Humanities of Speaking: Franz Boas and the Continuing
Centrality of Texts”. In: International Journal of American Linguistics
83.1 (2017), 41–78. doi: 10.1086/689547. eprint: https://doi.org/
10.1086/689547. url: https://doi.org/10.1086/689547.

我想要第一个的样式,但只有列表中第一个名字的顺序应该改变,而不是全部改变。换句话说:

Epps, Patience L.,  Anthony K. Webster, & Anthony C. Woodbury (2017). A holistic
humanities of speaking: Franz Boas and the continuing centrality of texts.
International Journal of American Linguistics, 83 (1), 41–78. https://doi.org/
10.1086/689547.

答案1

正如评论中提到的,biblatex-apa它实现了 APA 样式的复杂要求。编写时并未考虑可定制性。即使是看起来很小且“应该很容易”的更改也很难实现。因此,最好将自定义样式建立在biblatex标准样式之上,而不是biblatex-apa

如果您只需要更改姓名格式和冒号,则以下方法可能可行。(像这样更改姓名格式可能会禁用 APA 样式中涉及姓名的一些较模糊的功能,但您可能可以忍受。无论如何,请仔细检查输出。)

\documentclass{article}

\usepackage[
  style=apa,
  dashed=false
]{biblatex}
\usepackage{hyperref}

\DeclareNameAlias{apaauthor}{family-given/given-family}
\DeclareNameAlias{apanames}{given-family}

\DeclareDelimFormat[bib]{nameyeardelim}{\addspace}

\renewcommand*{\nameyeardelim}{\addcomma\space}
\renewcommand*{\postnotedelim}{\addcolon\space}

\DeclareFieldFormat{postnote}{\mknormrange{#1}}

\addbibresource{biblatex-examples.bib}

\begin{document}
\autocite{sigfridsson,aksin}

\autocite[380]{sigfridsson}

\printbibliography[heading=bibintoc]
\end{document}

Aksın、Özge、Hayati Türkmen、Levent Artok、Bekir C¸etinkaya、Chaoying Ni、Orhan Büyükgüngör 和 Erhan Özkal (2006)。 Sigfridsson,Emma & Ulf Ryde(1998)。

相关内容