如何将第 (1-2) 页更改为 (,第 1-2 页) 以引用编辑书籍中的章节

如何将第 (1-2) 页更改为 (,第 1-2 页) 以引用编辑书籍中的章节

我正在使用在 biblatex 中将编辑姓名后跟 (Ed./Eds.) 和标题前的逗号我需要在一本编辑过的书中引用一个章节。

我们如何才能改变一些标点符号?

我相信:

\DeclareFieldFormat[article, incollection, unpublished]{pages}{#1}

我需要改变:

title. 149-159

title, pp. 149-159

从:

英文

到:

在此处输入图片描述

我的完整 MWE:

\documentclass{article}
\usepackage{xpatch}
% \usepackage[style = authoryear-comp, maxnames = 99]{biblatex}

\usepackage[backend=biber, 
% style=authoryear, 
 style=authoryear-comp,
% citestyle=authoryear, 
dashed=false,
maxcitenames=2,
maxbibnames=99,
giveninits,
uniquename=init]{biblatex}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{csquotes}

\usepackage[unicode,colorlinks,citecolor=blue]{hyperref}

% \renewcommand*{\finalnamedelim}{\addspace\&\space}
% \renewcommand*{\intitlepunct}{\space}
\renewcommand{\labelnamepunct}{\space}


\DeclareFieldFormat[article, incollection, unpublished]{pages}{#1}
\DeclareFieldFormat[article, incollection, unpublished]{title}{#1}
\renewcommand{\bibpagespunct}{\ifentrytype{article}{\addcolon}{\addperiod\addspace}}

\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{editorin}{given-family}

\newbibmacro*{byeditor:in}{%
  \ifnameundef{editor}
    {}
    {\printnames[editorin]{editor}%
     \setunit{\addcomma\space}%
     \usebibmacro{editorstrg}%
     \clearname{editor}}}

\xpatchbibdriver{inbook}
  {\usebibmacro{in:}%
   \usebibmacro{bybookauthor}%
   \newunit\newblock
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   \usebibmacro{byeditor+others}}
  {\usebibmacro{in:}%
   \usebibmacro{bybookauthor}%
   \newunit\newblock
   \usebibmacro{byeditor:in}%
   \newunit\newblock
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   \usebibmacro{byeditor+others}}
  {}{}

\xpatchbibdriver{incollection}
  {\usebibmacro{in:}%
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   \usebibmacro{byeditor+others}}
  {\usebibmacro{in:}%
   \usebibmacro{byeditor:in}%
   \setunit{\labelnamepunct}\newblock
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   \usebibmacro{byeditor}}
  {}{}

\xpatchbibdriver{inproceedings}
  {\usebibmacro{in:}%
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   \usebibmacro{event+venue+date}%
   \newunit\newblock
   \usebibmacro{byeditor+others}}
  {\usebibmacro{in:}%
   \usebibmacro{byeditor:in}%
   \setunit{\labelnamepunct}\newblock
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   \usebibmacro{event+venue+date}%
   \newunit\newblock
   \usebibmacro{byeditor+others}}
  {}{}



\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@incollection{lennon1965,
  author    = {John Lennon},
  booktitle = {A book with articles},
  editor    = {Paul McCartney and John Lennon and George Harrison and Richard Starkey},
  title     = {This is my article in this book},
  year      = {1965},
  location  = {Liverpool},
  pages     = {65--87},
  publisher = {Cavern Club},
}
@incollection{deborah123,
  author      = "Deborah Lewis and Marie O'Boyle-Duggan and Susan Poultney",
  title       = "Communication skills education and training in pre-registeration BSc Nursing",
  editor      = "David W. Kissane and Barry D. Bultz and Phyllis N. Butow and Carma L. Bylund and Simon Noble and Susie Wilkinson",
  booktitle   = "Oxford Textbook of Communication in Oncology and Palliative Care",
  publisher   = "Oxford University Press",
  address     = "Oxford",
  year        = 2017,
  pages       = "149-154",
  Edition = "2nd edn"
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
book done \parencite{deborah123}.

\printbibliography
\end{document}

答案1

链接的问题和答案包含以下行

\DeclareFieldFormat[article, incollection, unpublished]{pages}{#1}
\renewcommand{\bibpagespunct}{\ifentrytype{article}{\addcolon}{\addperiod\addspace}}

你可以很容易地测试自己

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

\usepackage[style=authoryear, backend=biber]{biblatex}

\DeclareFieldFormat[article, incollection, unpublished]{pages}{#1}
\renewcommand{\bibpagespunct}{\ifentrytype{article}{\addcolon}{\addperiod\addspace}}

\addbibresource{biblatex-examples.bib}

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

页码不带“pp”。

第一行负责删除页码前的“pp.”第二行负责删除页码前的标点符号。

只需删除

\DeclareFieldFormat[article, incollection, unpublished]{pages}{#1}
\renewcommand{\bibpagespunct}{\ifentrytype{article}{\addcolon}{\addperiod\addspace}}

您将获得默认输出,该输出基于

\newcommand*{\bibpagespunct}{\addcomma\space}

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

总共

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

\usepackage[style=authoryear, backend=biber]{biblatex}


\addbibresource{biblatex-examples.bib}

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

以“pp.”开头的页码

相关内容