更改参考书目条目中的页码位置并删除括号

更改参考书目条目中的页码位置并删除括号

我想更改馆藏参考书目条目中的页码位置并删除它们周围的括号。此外,编辑和书名的顺序也必须更改。它必须大致像这样(只是顺序,我认为他们不太在意逗号或点 - 如果更改起来太复杂)

PAIL,R.(2017 年)。 GOCE 示例的全球边界模型。在《地球测量与卫星测量学》中,R. RUMMEL 和 W. FREEDEN(Hrsg.)。柏林: Springer Spektrum, 217–257

代替

在此处输入图片描述

这是我第一次使用 Latex,代码如下

\documentclass[10pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{csquotes}
\usepackage[citestyle=authoryear-ibid,bibstyle = apa, apamaxprtauth=999, 
uniquelist=false, backend=biber, natbib=true]{biblatex}
\addbibresource{Quellen.bib}
\DefineBibliographyStrings{ngerman}{andothers = {et\,al\adddot}}
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\DeclareDelimFormat{finalnamedelim}{\addspace\&\space}

\DeclareDelimFormat{nameyeardelim}{\space}

\renewcommand*{\postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}

\DeclareFieldFormat{pages}{#1}
\renewcommand{\bibpagespunct}{\ifentrytype{article}{\addcolon\addspace} 
{\addcomma\addspace}}

\begin{document}
\parencite[220]{Pail.2017}
\printbibliography
\end{document}

@incollection{Pail.2017,
 author = {Pail, Roland},
 title = {Globale Schwerefeldmodellierung am Beispiel von GOCE},
 pages = {217--257},
 publisher = {{Springer Spektrum}},
 editor = {Rummel, Reinhard and Freeden, Willi},
 booktitle = {Erdmessung und Satellitengeod{\"a}sie},
 year = {2017},
 address = {Berlin}
}

答案1

通过使用标准书目样式而不是 ,您可以更接近您想要的内容biblatex-apa

一些所需的修改更容易biblatex-ext,所以我现在使用它的ext-authoryear-ibid样式而不是authoryear-ibid

\documentclass[10pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{csquotes}
\usepackage[style=ext-authoryear-ibid, giveninits=true, uniquelist=false, backend=biber, natbib=true]{biblatex}

\DefineBibliographyStrings{ngerman}{andothers = {et\,al\adddot}}

\DeclareNameAlias{sortname}{family-given}
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\DeclareDelimFormat{finalnamedelim}{\addspace\&\space}

\DeclareDelimFormat{nameyeardelim}{\space}

\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{#1\isdot}

\renewcommand*{\jourvoldelim}{\addcomma\space}
\renewcommand*{\volnumdelim}{}
\DeclareFieldFormat[article,periodical]{number}{\mkbibparens{#1}}

\makeatletter
\DeclareDelimFormat{editortypedelim}{\addspace}
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimFormat{translatortypedelim}{\addspace}
\DeclareFieldFormat{translatortype}{\mkbibparens{#1}}
\renewbibmacro*{byeditor}{%
  \ifnameundef{editor}
    {}
    {\printnames{editor}%
     \setunit{\printdelim{editortypedelim}}%
     \usebibmacro{editorstrg}%
     \newunit}%
  \usebibmacro{byeditorx}}

\renewbibmacro*{byeditorx}{%
  \ifnameundef{editora}
    {}
    {\printnames[byeditora]{editora}%
     \setunit{\printdelim{editortypedelim}}%
     \usebibmacro{bytypestrg}{editora}{editor}%
     \newunit}%
  \ifnameundef{editorb}
    {}
    {\printnames[byeditorb]{editorb}%
     \setunit{\printdelim{editortypedelim}}%
     \usebibmacro{bytypestrg}{editorb}{editor}%
     \newunit}%
  \ifnameundef{editorc}
    {}
    {\printnames[byeditorc]{editorc}%
     \setunit{\printdelim{editortypedelim}}%
     \usebibmacro{bytypestrg}{editorc}{editor}%
     \newunit}}

\renewbibmacro*{bytranslator}{%
  \printtext[translatortype]{%
    \ifboolexpr{
      test {\ifnumgreater{\value{translator}}{1}}
      or
      test {\ifandothers{translator}}
    }
      {\bibstring{translators}}
      {\bibstring{translator}}}}

\renewbibmacro*{byeditor+others}{%
  \ifnameundef{editor}
    {}
    {\printnames{editor}%
     \setunit{\printdelim{editortypedelim}}%
     \usebibmacro{editor+othersstrg}%
     \clearname{editor}%
     \newunit}%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}

\renewbibmacro*{bytranslator+others}{%
  \ifnameundef{translator}
    {}
    {\printnames{translator}%
     \setunit{\printdelim{translatortypedelim}}%
     \usebibmacro{translator+othersstrg}%
     \clearname{translator}%
     \newunit}%
  \usebibmacro{withothers}}

\renewbibmacro*{bytypestrg}[2]{%
  \printtext[by#2type]{%
    \iffieldundef{#1type}
      {\ifboolexpr{
         test {\ifnumgreater{\value{#1}}{1}}
         or
         test {\ifandothers{#1}}
       }
         {\bibstring{#2}}
         {\bibstring{#2}}}
      {\ifbibxstring{\thefield{#1type}}
         {\ifboolexpr{
            test {\ifnumgreater{\value{#1}}{1}}
            or
            test {\ifandothers{#1}}
          }
            {\bibstring{\thefield{#1type}s}}
            {\bibstring{\thefield{#1type}}}}
         {\thefield{#1type}}}}}
\makeatother

\DeclareFieldFormat{pages}{#1}
\renewcommand{\bibpagespunct}{%
  \ifentrytype{article}
    {\addcolon\addspace} 
    {\addcomma\addspace}}

\DeclareFieldFormat{url}{\url{#1}}

\renewcommand*{\postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{Pail.2017,
  author    = {Pail, Roland},
  title     = {Globale Schwerefeldmodellierung am Beispiel von GOCE},
  pages     = {217--257},
  publisher = {Springer Spektrum},
  editor    = {Rummel, Reinhard and Freeden, Willi},
  booktitle = {Erdmessung und Satellitengeodäsie},
  year      = {2017},
  address   = {Berlin}
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\parencite[220]{Pail.2017} and \cite{sigfridsson}
\printbibliography
\end{document}

在此处输入图片描述

相关内容