删除 biblatex 中卷号后的标点符号(逗号)

删除 biblatex 中卷号后的标点符号(逗号)

使用此代码:

\RequirePackage[l2tabu, orthodox]{nag}

\documentclass[a4paper,twoside]{memoir} 
% Unix options
\isopage
\usepackage{etex,setspace,excludeonly,ifthen,etoolbox,logreq,makeidx,cals,graphicx}
\usepackage[english]{babel}
\usepackage[style=british]{csquotes}
\usepackage[style=philosophy-classic,firstinits,uniquename=init,natbib=true,backend=biber,indexing=true,defernumbers=true]{biblatex}

\DeclareNameAlias{sortname}{last-first} 
\DeclareBibliographyCategory{cited}
\AtEveryCitekey{\addtocategory{cited}{\thefield{entrykey}}}

\defbibcheck{Thinking}{%
  \iffieldequalstr{journaltitle}{Thinking}
    {}
    {\skipentry}}
\defbibcheck{noThinking}{%
  \iffieldequalstr{journaltitle}{Thinking}
    {\skipentry}
    {}}

\addbibresource{thesis.bib} 

% Style alterations: parentheses around place: publisher and colon between vol
% and no
\renewbibmacro*{publisher+location+date}{%
  \printtext[parens]{% ADDED
    \printlist{location}%
    \iflistundef{publisher}
      {\setunit*{\addcomma\space}}
%      {\setunit*{\addcolon\space}}%
 {\setunit*{\addcomma\space}}%
    \printlist{publisher}%
    \setunit*{\addcomma\space}%
    \usebibmacro{date}%
  }\nopunct% ADDED
  \newunit}

\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit*{\adddot}% DELETED
%  \setunit*{\addcolon}% ADDED
  \printfield{number}%
  \setunit{\space}%
  \printfield{eid}}

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

\renewcommand{\labelnamepunct}{\addspace}
\begin{document}

\printbibliography[category=cited,check=noThinking,prenote={JoPE},title={Bibliography excluding articles in \emph{Thinking: The Journal of Philosophy for Children}}]

\end{document}

以及 thesis.bib 中的此书目条目

@article{Allhoff2005,
author = {Allhoff, Fritz},
file = {:Users/study\_mini/Documents/Mendeley Desktop/Allhoff - 2005 - A Defense of Torture Separation of Cases, Ticking Time-bombs, and Moral Justification.pdf:pdf},
journal = {International Journal of Applied Philosophy},
keywords = {ch5},
mendeley-tags = {ch5},
number = {2},
pages = {243--264},
title = {{A Defense of Torture: Separation of Cases, Ticking Time-bombs, and Moral Justification}},
volume = {19},
year = {2005}
}
@inbook{1Almond2010,
    year={2010},
    Crossref = {9BaileyHandbook2010},
    booktitle={The Sage Handbook of Philosophy of Education},
    title={The Value of Knowledge},
    author={Brenda Almond},
    chapter={20},
    pages={297--306}    

我在我的参考书目中得到:

卷号,页...

我希望删除数字后的逗号,但删除\addcomma对最终输出没有任何影响。我是否需要替换\renewcommand或调整现有代码?

答案1

你只需要一行

\renewcommand*{\bibpagespunct}{\addspace}

这告诉biblatex仅在页面前放置一个空格,不需要其他标点符号。

您可以@article使用以下方式强制仅对 s 执行此操作

\renewcommand*{\bibpagespunct}{%
  \ifentrytype{article}
    {\addspace}
    {\addcomma\space}}

平均能量损失

\documentclass[a4paper,twoside]{memoir} 
\usepackage[english]{babel}
\usepackage[style=british]{csquotes}
\usepackage[style=philosophy-classic,firstinits,uniquename=init,natbib=true,backend=biber,indexing=true,defernumbers=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{Allhoff2005,
author = {Allhoff, Fritz},
journal = {International Journal of Applied Philosophy},
keywords = {ch5},
mendeley-tags = {ch5},
number = {2},
pages = {243--264},
title = {{A Defense of Torture: Separation of Cases, Ticking Time-bombs, and Moral Justification}},
volume = {19},
year = {2005}
}

\end{filecontents*}

\addbibresource{\jobname.bib} 

\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit*{\adddot}% DELETED
%  \setunit*{\addcolon}% ADDED
  \printfield{number}%
  \setunit{\space}%
  \printfield{eid}}

\renewcommand*{\bibpagespunct}{\addspace}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

在此处输入图片描述

相关内容