저는 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
참고 style=apa,
문헌 스타일과 인용 스타일이 모두 apa
. APA 매뉴얼의 요구 사항을 구현하기 위해 많은 작업을 수행하는 매우 복잡한 스타일입니다. 즉, 코드의 일부 선택 사항은 복잡한 APA 규칙의 정확한 구현을 위해 사용자 정의 가능성을 희생합니다. 또한 참고문헌과 인용 스타일 사이에는 일부 (암시적) 종속성이 있습니다. APA 스타일이 아닌 작가 연도 스타일이 필요한 경우 일반적으로 표준 스타일 중 하나에서 시작하는 것이 더 나은 선택입니다.
-스타일 참고문헌 의 "&"는 apa
표준 finalnamedelim
및 apa
-특정의 두 구분 기호로 제어됩니다 finalnamedelim:apa:family-given
. 둘 다 재정의해야 합니다. 원래 정의는 다음에서 찾을 수 있습니다.ll. 602-624 중apa.bbx
\&
, 우리는 모든 s를 로 변경합니다 \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}
이 답변은 귀하가 7판 APA 스타일을 구현하는 최신 버전 biblatex-apa
(2019-11-23의 v9.0 이상)을 사용하고 있다고 가정합니다.
biblatex-apa
여전히 6판 APA 스타일을 구현하는 이전 버전을 사용하고 있거나 biblatex-apa6
( style=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
.