BibLaTeX 参考文献の「&」を「and」に変更する

BibLaTeX 参考文献の「&」を「and」に変更する

私は BibLaTeX を初めて使用しており、参考文献で問題が発生しましたが、引用文献では問題はありませんでした。参考文献の最後の著者名の前の「&」を「and」に変更したいと思います。参考文献の「and」を「&」に変更する投稿があることは知っていますが、これらのコードを変更して逆のことを行うことはできません。

現在、私のコードでは引用では「and」を使用していますが、参考文献では「&」を使用しています。現在使用している前文は次のとおりです。

\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[natbib=true,
backend=biber,
bibencoding=utf8,
sorting=nyt,
citestyle=authoryear,
bibstyle=apa,
maxbibnames=99,
apamaxprtauth=99,
maxcitenames=3,
uniquelist=false,
uniquename=false]{biblatex}
\addbibresource{bib3_clean.bib}% Syntax for version >= 1.2

% Removes period after year in bibliography
\renewcommand{\labelnamepunct}{\addspace} 

%put comma after title
\usepackage{xpatch}
\xpatchbibdriver{article}
{\usebibmacro{title}%
    \newunit}
{\usebibmacro{title}%
    \printunit{\addcomma\space}}
{}
{}

%remove journal number
\AtEveryBibitem{%
    \clearfield{number}}

% do not italicize volume number
\DeclareFieldFormat[article]{volume}{\apanum{#1}}

%remove comma after journal name
\renewbibmacro*{journal+issuetitle}{%
    \usebibmacro{journal}%
    \setunit*{\space}%
    \iffieldundef{series}
    {}
    {\newunit
        \printfield{series}%
        \setunit{\addspace}}%
    \usebibmacro{volume+number+eid}%
    \setunit{\addspace}%
    \usebibmacro{issue}%
    \setunit{\addcolon\space}%
    \usebibmacro{issue}%
    \newunit}

私の質問は、参考文献の中でのみ「&」を「and」に置き換えるにはどうすればよいかということです。

答え1

通常、他のスタイルと混ぜたりbiblatex-apa、大幅に変更したりするのはお勧めできません。は、参考文献と引用スタイルの両方が になるようにbiblatex-apaとして使用されることになっています。 これは、APA マニュアルの要件を実装するために多くの作業を行う非常に複雑なスタイルであり、コード内の一部の選択では、複雑な APA ルールの正確な実装を優先してカスタマイズ性を犠牲にしています。 また、参考文献と引用スタイルの間には、いくつかの (暗黙の) 依存関係もあります。 APA スタイルではない著者年スタイルが必要な場合は、通常、標準スタイルの 1 つから始める方がよいでしょう。style=apa,apa

スタイルの参考文献の「&」はapa、標準finalnamedelimapa-specific の2 つの区切り文字によって制御されますfinalnamedelim:apa:family-given。どちらも再定義する必要があります。元の定義は、602-624のapa.bbx、すべて\&の を に変更するだけです\bibstring{and}

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[
  backend=biber,
  sorting=nyt,
  citestyle=authoryear,
  bibstyle=apa,
  maxbibnames=99,
  apamaxprtauth=99,
  maxcitenames=3,
  uniquelist=false,
  uniquename=false]{biblatex}

\renewcommand{\labelnamepunct}{\addspace}

\DeclareDelimFormat[bib]{finalnamedelim}{%
  \ifthenelse{\value{listcount}>\maxprtauth}
    {}
    {\ifthenelse{\value{liststop}>2}
       {\finalandcomma\addspace\bibstring{and}\space}
       {\addspace\bibstring{and}\space}}}

\DeclareDelimFormat[bib]{finalnamedelim:apa:family-given}{%
  \ifthenelse{\value{listcount}>\maxprtauth}
    {}
    {\ifthenelse{\ifcurrentname{groupauthor}\AND%
                 \value{liststop}=2}
     {\addspace\bibstring{and}\space}
     {\finalandcomma\addspace\bibstring{and}\space}}}

\usepackage{xpatch}
\xpatchbibdriver{article}
  {\usebibmacro{title}%
   \newunit}
  {\usebibmacro{title}%
   \printunit{\addcomma\space}}
  {}
  {}

\AtEveryBibitem{\clearfield{number}}

\DeclareFieldFormat[article]{volume}{\apanum{#1}}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\space}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addspace}%
  \usebibmacro{issue}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \newunit}

\addbibresource{biblatex-examples.bib}


\begin{document}
\cite{sigfridsson}
\printbibliography
\end{document}

Sigfridsson, E., Ryde, U. (1998) 静電ポテンシャルとモーメントから原子電荷を導出する方法の比較。計算化学ジャーナル 19, 377–395。https://doi.org/10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P


この回答では、第 7 版 APA スタイルを実装した の現在のバージョンbiblatex-apa(少なくとも 2019 年 11 月 23 日の v9.0) を使用していることを前提としています。

APA第6版スタイルをまだ実装しているの古いバージョンを使用している場合、または()biblatex-apaの最新バージョンを使用している場合は、biblatex-apa6style=apa6,

\DeclareDelimFormat[bib,biblist]{finalnamedelim}{%
  \ifthenelse{\value{listcount}>\maxprtauth}
    {}
    {\ifthenelse{\value{liststop}>2}
       {\finalandcomma\addspace\bibstring{and}\space}
       {\addspace\bibstring{and}\space}}}

\DeclareDelimFormat[bib,biblist]{finalnamedelim:apa:family-given}{%
  \ifthenelse{\value{listcount}>\maxprtauth}
    {}
    {\finalandcomma\addspace\bibstring{and}\space}}

いくつかの引用コマンドでは「&」も使用されますが、それらも削除したい場合は、さらに以下が必要です。

\DeclareDelimFormat[parencite,nptextcite,fullcite,fullcitebib]{finalnamedelim}
  {\ifnum\value{liststop}>2 \finalandcomma\fi\addspace\bibstring{and}\space}

これは、 の古いバージョンでも新しいバージョンbiblatex-apaでもbiblatex-apa6同様に機能するはずです。

関連情報