使用 biblatex/biber (apa 风格) 修改文内引用和参考书目

使用 biblatex/biber (apa 风格) 修改文内引用和参考书目

关于论文的引用和参考书目,有些问题我可以自己解决,其他问题我得到了帮助。但有两个方面我想改变,但我自己无法解决:

  1. 我希望在所有文内引用中将两位以上作者的缩写缩写为 »et al.«,从第一次提及开始。目前,第一次提及时,它看起来像 »Author A / Author B / Author C 2000«,从第二次提及开始,它看起来像 »Author A et al. 2000«。可以修改吗?

  2. 我想在参考书目中的所有期刊引文中添加 »S.«(德语缩写 »Seite«,意为 »Page«)。它应该看起来类似于书籍章节。有办法添加吗?

我使用 APA 风格,并将 biber 作为 biblatex 的后端。非常感谢大家的帮助。

梅威瑟:

\documentclass[11pt,a4paper,toc=listof]{scrartcl} 
\usepackage[left=3cm, right=2cm, bottom=3cm, top=2cm]{geometry}
\usepackage[english,ngerman]{babel} % Sprachpakete
\usepackage[utf8]{inputenc}         % Direkte Eingabe von Umlauten
\usepackage[T1]{fontenc}            % Worttrennung bei Umlauten
\usepackage{microtype}              % Verbesserter Randausgleich
\usepackage{textcomp}               % Zusätzliche Sonderzeichen
\usepackage{graphicx}               % Einbindung Grafik
% Anführungszeichen
\usepackage[
babel,
german=quotes,
german=guillemets
]{csquotes}                 
% ***** Bibliographie und Zitation *****
\usepackage[
style           = apa,
sorting         = nyt,
sortcites       = true,
autocite        = inline,
maxbibnames     = 99,
maxcitenames    = 2,
backend         = biber,
bibliography    = totoc,
isbn            = false,
doi             = true,
urldate         = short
]{biblatex}
\DeclareLanguageMapping{german}{german-apa}
\DeclareFieldFormat{apacase}{#1}
\DefineBibliographyStrings{ngerman}{%
andothers = {{et\,al\adddot}},             
}
% remove comma in (Beadle and Tautum, 1941) This applies to citation only
\renewcommand*{\nameyeardelim}{\addspace}
% change delimiters
\renewcommand*{\multinamedelim}[0]{\,/\,} 
\renewcommand*{\finalnamedelim}[0]{\,/\,}
\AtBeginBibliography{%
    \renewcommand*{\multinamedelim}[0]{\,/\,}% 
    \renewcommand*{\finalnamedelim}[0]{\,/\,}%
}
% Umbrüche in URL und DOI bei Zahlen zulassen
\setcounter{biburlnumpenalty}{100}  % allow breaks at numbers
% Reihen in Bibliographie
\DeclareFieldFormat{number}{\bibstring{number}~#1}
% name sort always last, first
\AtBeginBibliography{%
\DeclareNameAlias{editor}{last-first}
}
% Anpassungen um Schriftenreihe mit Nummer vor Ort und Verlag zu platzieren
\renewbibmacro*{addinfo}{%
    \ifthenelse{\iffieldundef{edition}\AND%
          \iffieldundef{chapter}\AND%
          \iffieldundef{volumes}\AND%
          \iffieldundef{pages}\AND%
          \(\iffieldundef{volume}\OR\boolean{bbx:volseen}\)}
    {}
    {\printtext{\bibopenparen}%
    \printfield{edition}%
    \setunit*{\addcomma\addspace}%
    \printfield{chapter}%
    \setunit*{\addcomma\addspace}%
    \notbool{bbx:volseen}%
    {\iffieldundef{volume}{}{\global\booltrue{bbx:volseen}}%
    \printfield{volume}%
    \iffieldundef{part}{}{\printfield{part}}}{}%
    \setunit*{\addcomma\addspace}%
    \printfield{volumes}%
    \setunit*{\addcomma\addspace}%
    \printfield{pages}%
    \setunit{}%
    \printtext{\bibcloseparen}%
    \newunit}}
\renewbibmacro*{maintitle+title}{%
    \iffieldsequal{maintitle}{title}
    {\clearfield{maintitle}%
    \clearfield{mainsubtitle}%
    \clearfield{maintitleaddon}}
    {\iffieldundef{maintitle}
    {}
    {\usebibmacro{maintitle}%
    \newunit\newblock
    \iffieldundef{volume}
     {}
     {\setunit{\global\booltrue{bbx:volseen}}%
      \printfield{volume}%
      \printfield{part}%
      \setunit{\adddot\space}}}}%
    \usebibmacro{title}%
    \newunit}
\renewbibmacro*{maintitle+booktitle}{%
 \ifthenelse{\iffieldundef{maintitle}\AND\iffieldundef{booktitle}}
{}
{\usebibmacro{in}%
 \iffieldundef{maintitle}
  {}
  {\usebibmacro{maintitle}%
   \newunit\newblock
   \iffieldundef{volume}
     {}
     {\setunit{\addspace\global\booltrue{bbx:volseen}}%
      \printfield{volume}%
      \printfield{part}%
      \setunit{\adddot\addspace}}}%
\usebibmacro{booktitle}}}
\renewbibmacro*{series+number}{%
    \printfield{series}%
    \setunit{\addcomma\space}%
    \printfield{number}%
    \newunit}
\usepackage{xpatch}
    \xpatchbibdriver{book}
    {\printfield{series}}
    {\usebibmacro{series+number}}
    {}{}
    \xpatchbibdriver{inbook}
    {\printfield{series}}
    {\usebibmacro{series+number}}
    {}{}
    \xpatchbibdriver{incollection}
    {\printfield{series}}
    {\usebibmacro{series+number}}
    {}{}
    \xpatchbibdriver{collection}
    {\printfield{number}}
    {}
    {}{}
    \xpatchbibdriver{collection}
    {\printfield{series}}
    {\usebibmacro{series+number}}
    {}{}
% Eintragsart Bericht (report) Anpassung
\DeclareFieldFormat[report]{number}{\bibcpstring{number}~\apanum{#1}}
    \renewbibmacro*{apa:reportnum}{%
    \newunit\newblock
    \printfield{type}%
    \setunit*{\addcomma\space}%
    \printfield{number}}
\xpatchbibdriver{report}
      {\printlist{institution}}
    {}
    {}{}
\newbibmacro*{location+institution}{%
    \printlist[default][1-1]{location}%
    \setunit*{\addcolon\space}%
    \printlist{institution}%
    \newunit}
\xpatchbibdriver{report}
    {\usebibmacro{location+publisher}}
    {\usebibmacro{location+institution}}
    {}{}
% bei allen Eintragsarten andere Editortypen missachten
\AtEveryBibitem{
    \iffieldequalstr{editortype}{redactor}
    {\global\clearname{editor}\typeout{delete editor (type: redactor) in \thefield{citekey}}}{}%
    \iffieldequalstr{editoratype}{redactor}
    {\global\clearname{editora}\typeout{delete editora (type: redactor) in \thefield{citekey}}}{}%
    \iffieldequalstr{editorbtype}{redactor}
    {\global\clearname{editorb}\typeout{delete editorb (type: redactor) in \thefield{citekey}}}{}%
    \iffieldequalstr{editorctype}{redactor}
    {\global\clearname{editorc}\typeout{delete editorc (type: redactor) in \thefield{citekey}}}{}%
    }
% Alle Zitate in Kurzform (ab 3 Autoren et al.), bereits ab erster Nennung
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Backhaus.etal_2015,
langid = {Deutsch},
location = {{Berlin}},
title = {Fortgeschrittene Multivariate Analysemethoden \textemdash{} Eine anwendungsorientierte Einf{\"u}hrung},
edition = {3., {\"u}berarb. u. akt. Aufl.},
isbn = {978-3-662-46086-3},
publisher = {{Springer Gabler}},
date = {2015},
author = {Backhaus, Klaus and Erichson, Bernd and Weiber, Rolf}
}
@book{Backhaus.etal_2016,
langid = {Deutsch},
location = {{Berlin}},
title = {Multivariate Analysemethoden \textemdash{} Eine anwendungsorientierte Einf{\"u}hrung},
edition = {14., {\"u}berarb. u. akt. Aufl.},
isbn = {978-3-662-46075-7},
publisher = {{Springer Gabler}},
date = {2016},
author = {Backhaus, Klaus and Erichson, Bernd and Plinke, Wulff and Weiber, Rolf}
}
@report{Revelle_2017b,
langid = {Englisch},
location = {{Evanston$\backslash$IL}},
title = {How To: Use the psych package for Factor Analysis and data reduction},
url = {http://personality-project.org/r/psych/HowTo/factor.pdf},
institution = {{Department of Psychology, Northwestern University}},
urldate = {2018-07-01},
date = {2017},
author = {Revelle, William}
}
@incollection{Revelle.Condon_2018,
langid = {Englisch},
location = {{Chichester}},
title = {Reliability},
volume = {2},
isbn = {978-1-118-48977-2},
volumes = {2},
booktitle = {The Wiley Handbook of Psychometric Testing \textemdash{} A Multidisciplinary Reference on Survey, Scale and Test Development},
publisher = {{J. Wiley \& Sons}},
date = {2018},
pages = {709-749},
author = {Revelle, William and Condon, David M.},
editor = {Irwing, Paul and Booth, Tom and Hughes, David J.},
doi = {10.1002/9781118489772.ch23}
}
@article{Revelle.Zinbarg_2009,
langid = {Englisch},
title = {Coefficients Alpha, Beta, Omega, and the GLB \textemdash{} Comments on Sijtsma},
volume = {74},
issn = {0033-3123, 1860-0980},
doi = {10.1007/s11336-008-9102-z},
shorttitle = {Coefficients Alpha, Beta, Omega, and the glb},
number = {1},
journaltitle = {Psychometrika},
date = {2009},
pages = {145-154},
author = {Revelle, William and Zinbarg, Richard E.}
}
@article{Wright.Herrington_2011,
langid = {Englisch},
title = {Problematic Standard Errors and Confidence Intervals for Skewness and Kurtosis},
volume = {43},
issn = {1554-3528},
doi = {10.3758/s13428-010-0044-x},
number = {1},
journaltitle = {Behavior Research Methods},
date = {2011},
pages = {8-17},
author = {Wright, Daniel B. and Herrington, Joshua A.}
}
\end{filecontents}
\addbibresource{\jobname.bib}
% ******************* T E X T *******************%
\begin{document}
Source 1: \cite[8]{Wright.Herrington_2011}
Source 2: \cite[154]{Revelle.Zinbarg_2009}
Source 3: \cite{Revelle_2017b}
Source 4: \cite{Backhaus.etal_2016}
Source 5: \cite{Backhaus.etal_2015}
Source 6: \cite{Backhaus.etal_2016}
Source 7: \cite{Backhaus.etal_2015}
Source 8: \cite{Revelle.Condon_2018}
\newpage
\printbibliography[title=Literaturverzeichnis]
\end{document}  

答案1

第 2 点应该很简单

\DeclareFieldFormat*{pages}{\mkpageprefix[bookpagination]{#1}}

第 1 点比较复杂。鉴于您已经远远偏离了 APA 格式,也许值得尝试只加载标准authoryear引用格式

style           = apa,
citestyle       = authoryear,

事实上,你在 MWE 中仍然没有得到“第一作者等。”是因为在 biblatex 中使用“et al.”时,限制为一位作者

\documentclass[11pt,a4paper,toc=listof]{scrartcl}
\usepackage[left=3cm, right=2cm, bottom=3cm, top=2cm]{geometry}
\usepackage[english,ngerman]{babel} % Sprachpakete
\usepackage[utf8]{inputenc}         % Direkte Eingabe von Umlauten
\usepackage[T1]{fontenc}            % Worttrennung bei Umlauten
\usepackage{microtype}              % Verbesserter Randausgleich
% Anführungszeichen
\usepackage[
babel,
german=quotes,
german=guillemets
]{csquotes}
% ***** Bibliographie und Zitation *****
\usepackage[
style           = apa,
citestyle       = authoryear,
sorting         = nyt,
sortcites       = true,
autocite        = inline,
citetracker     = false,
maxbibnames     = 99,
maxcitenames    = 2,
backend         = biber,
bibliography    = totoc,
isbn            = false,
doi             = true,
urldate         = short
]{biblatex}
\DeclareFieldFormat{apacase}{#1}
\DefineBibliographyStrings{ngerman}{%
  andothers = {{et\,al\adddot}},
}
% remove comma in (Beadle and Tautum, 1941) This applies to citation only
\renewcommand*{\nameyeardelim}{\addspace}
% change delimiters
% since the delimiters use several contexts, some format clearing needs to happen
\DeclareDelimFormat*{multinamedelim}{\,/\,}
\DeclareDelimFormat*{finalnamedelim}{}
\DeclareDelimAlias{finalnamedelim}{multinamedelim}
\DeclareDelimFormat*{finalnamedelim:apa:family-given}{}
\DeclareDelimAlias{finalnamedelim:apa:family-given}{multinamedelim}

% Umbrüche in URL und DOI bei Zahlen zulassen
\setcounter{biburlnumpenalty}{100}  % allow breaks at numbers
% Reihen in Bibliographie
\DeclareFieldFormat{number}{\bibstring{number}~#1}
% name sort always last, first
\DeclareNameAlias{editor}{family-given}

% Anpassungen um Schriftenreihe mit Nummer vor Ort und Verlag zu platzieren
\renewbibmacro*{addinfo}{%
    \ifthenelse{\iffieldundef{edition}\AND%
          \iffieldundef{chapter}\AND%
          \iffieldundef{volumes}\AND%
          \iffieldundef{pages}\AND%
          \(\iffieldundef{volume}\OR\boolean{bbx:volseen}\)}
    {}
    {\printtext{\bibopenparen}%
    \printfield{edition}%
    \setunit*{\addcomma\addspace}%
    \printfield{chapter}%
    \setunit*{\addcomma\addspace}%
    \notbool{bbx:volseen}%
    {\iffieldundef{volume}{}{\global\booltrue{bbx:volseen}}%
    \printfield{volume}%
    \iffieldundef{part}{}{\printfield{part}}}{}%
    \setunit*{\addcomma\addspace}%
    \printfield{volumes}%
    \setunit*{\addcomma\addspace}%
    \printfield{pages}%
    \setunit{}%
    \printtext{\bibcloseparen}%
    \newunit}}
\renewbibmacro*{maintitle+title}{%
    \iffieldsequal{maintitle}{title}
    {\clearfield{maintitle}%
    \clearfield{mainsubtitle}%
    \clearfield{maintitleaddon}}
    {\iffieldundef{maintitle}
    {}
    {\usebibmacro{maintitle}%
    \newunit\newblock
    \iffieldundef{volume}
     {}
     {\setunit{\global\booltrue{bbx:volseen}}%
      \printfield{volume}%
      \printfield{part}%
      \setunit{\adddot\space}}}}%
    \usebibmacro{title}%
    \newunit}
\renewbibmacro*{maintitle+booktitle}{%
 \ifthenelse{\iffieldundef{maintitle}\AND\iffieldundef{booktitle}}
{}
{\usebibmacro{in}%
 \iffieldundef{maintitle}
  {}
  {\usebibmacro{maintitle}%
   \newunit\newblock
   \iffieldundef{volume}
     {}
     {\setunit{\addspace\global\booltrue{bbx:volseen}}%
      \printfield{volume}%
      \printfield{part}%
      \setunit{\adddot\addspace}}}%
\usebibmacro{booktitle}}}
\renewbibmacro*{series+number}{%
    \printfield{series}%
    \setunit{\addcomma\space}%
    \printfield{number}%
    \newunit}
\usepackage{xpatch}
    \xpatchbibdriver{book}
    {\printfield{series}}
    {\usebibmacro{series+number}}
    {}{}
    \xpatchbibdriver{inbook}
    {\printfield{series}}
    {\usebibmacro{series+number}}
    {}{}
    \xpatchbibdriver{incollection}
    {\printfield{series}}
    {\usebibmacro{series+number}}
    {}{}
    \xpatchbibdriver{collection}
    {\printfield{number}}
    {}
    {}{}
    \xpatchbibdriver{collection}
    {\printfield{series}}
    {\usebibmacro{series+number}}
    {}{}
% Eintragsart Bericht (report) Anpassung
\DeclareFieldFormat[report]{number}{\bibcpstring{number}~\apanum{#1}}
    \renewbibmacro*{apa:reportnum}{%
    \newunit\newblock
    \printfield{type}%
    \setunit*{\addcomma\space}%
    \printfield{number}}
\xpatchbibdriver{report}
      {\printlist{institution}}
    {}
    {}{}
\newbibmacro*{location+institution}{%
    \printlist[default][1-1]{location}%
    \setunit*{\addcolon\space}%
    \printlist{institution}%
    \newunit}
\xpatchbibdriver{report}
    {\usebibmacro{location+publisher}}
    {\usebibmacro{location+institution}}
    {}{}
% bei allen Eintragsarten andere Editortypen missachten
\AtEveryBibitem{
    \iffieldequalstr{editortype}{redactor}
    {\global\clearname{editor}\typeout{delete editor (type: redactor) in \thefield{citekey}}}{}%
    \iffieldequalstr{editoratype}{redactor}
    {\global\clearname{editora}\typeout{delete editora (type: redactor) in \thefield{citekey}}}{}%
    \iffieldequalstr{editorbtype}{redactor}
    {\global\clearname{editorb}\typeout{delete editorb (type: redactor) in \thefield{citekey}}}{}%
    \iffieldequalstr{editorctype}{redactor}
    {\global\clearname{editorc}\typeout{delete editorc (type: redactor) in \thefield{citekey}}}{}%
    }
% Alle Zitate in Kurzform (ab 3 Autoren et al.), bereits ab erster Nennung


\renewcommand*{\subtitlepunct}{\addspace\textemdash\space}

\DeclareFieldFormat*{pages}{\mkpageprefix[bookpagination]{#1}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Backhaus.etal_2015,
  langid    = {ngerman},
  location  = {Berlin},
  title     = {Fortgeschrittene Multivariate Analysemethoden},
  subtitle  = {Eine anwendungsorientierte Einf{\"u}hrung},
  edition   = {3., {\"u}berarb. u. akt. Aufl.},
  isbn      = {978-3-662-46086-3},
  publisher = {Springer Gabler},
  date      = {2015},
  author    = {Backhaus, Klaus and Erichson, Bernd and Weiber, Rolf}
}
@book{Backhaus.etal_2016,
  langid    = {ngerman},
  location  = {Berlin},
  title     = {Multivariate Analysemethoden},
  subtitle  = {Eine anwendungsorientierte Einf{\"u}hrung},
  edition   = {14., {\"u}berarb. u. akt. Aufl.},
  isbn      = {978-3-662-46075-7},
  publisher = {Springer Gabler},
  date      = {2016},
  author    = {Backhaus, Klaus and Erichson, Bernd and Plinke, Wulff and Weiber, Rolf}
}
@report{Revelle_2017b,
  langid      = {english},
  location    = {Evanston, IL},
  title       = {How To: {Use} the psych package for Factor Analysis and data reduction},
  url         = {http://personality-project.org/r/psych/HowTo/factor.pdf},
  institution = {Department of Psychology, Northwestern University},
  urldate     = {2018-07-01},
  date        = {2017},
  author      = {Revelle, William}
}
@incollection{Revelle.Condon_2018,
  langid       = {english},
  location     = {Chichester},
  title        = {Reliability},
  volume       = {2},
  isbn         = {978-1-118-48977-2},
  booktitle    = {The Wiley Handbook of Psychometric Testing},
  booksubtitle = {A Multidisciplinary Reference on Survey, Scale and Test Development},
  publisher    = {J.~Wiley \& Sons},
  date         = {2018},
  pages        = {709-749},
  author       = {Revelle, William and Condon, David M.},
  editor       = {Irwing, Paul and Booth, Tom and Hughes, David J.},
  doi          = {10.1002/9781118489772.ch23}
}
@article{Revelle.Zinbarg_2009,
  langid       = {english},
  title        = {Coefficients Alpha, Beta, Omega, and the {GLB}},
  subtitle     = {Comments on {Sijtsma}},
  volume       = {74},
  issn         = {0033-3123, 1860-0980},
  doi          = {10.1007/s11336-008-9102-z},
  number       = {1},
  journaltitle = {Psychometrika},
  date         = {2009},
  pages        = {145-154},
  author       = {Revelle, William and Zinbarg, Richard E.}
}
@article{Wright.Herrington_2011,
  langid       = {english},
  title        = {Problematic Standard Errors and Confidence Intervals for Skewness and Kurtosis},
  volume       = {43},
  issn         = {1554-3528},
  doi          = {10.3758/s13428-010-0044-x},
  number       = {1},
  journaltitle = {Behavior Research Methods},
  date         = {2011},
  pages        = {8-17},
  author       = {Wright, Daniel B. and Herrington, Joshua A.}
}
\end{filecontents}
\addbibresource{\jobname.bib}
% ******************* T E X T *******************%
\begin{document}
Source 1: \cite[8]{Wright.Herrington_2011}
Source 2: \cite[154]{Revelle.Zinbarg_2009}
Source 3: \cite{Revelle_2017b}
Source 4: \cite{Backhaus.etal_2016}
Source 5: \cite{Backhaus.etal_2015}
Source 6: \cite{Backhaus.etal_2016}
Source 7: \cite{Backhaus.etal_2015}
Source 8: \cite{Revelle.Condon_2018}

\printbibliography[title=Literaturverzeichnis]
\end{document}

注意我如何更改您的.bib条目。特别是,字段的内容langid必须是已知的语言名称babel

在此处输入图片描述

相关内容