使用冠词条目类型时,使用冒号 (:) 代替逗号

使用冠词条目类型时,使用冒号 (:) 代替逗号

我目前在作者后的 Biblatex 分隔符方面遇到了问题。我想使用<author>: <title>而不是<author>, <title>。使用以下命令可以正常工作,但在我的 .bib 文件中使用条目类型 article 时除外。

\usepackage[backend=biber, style=ieee, citestyle=numeric-comp, dashed=false]{biblatex}
\renewcommand*{\labelnamepunct}{\addcolon\addspace}

有没有人遇到过类似的问题或可以帮助我解决这个问题?

提前致谢

答案1

样式ieee使用简单的\setunit。这应该有效:

\usepackage{xpatch}
\xpatchbibdriver{article}{\newunit
  \usebibmacro{title}}{\addcolon\space
  \usebibmacro{title}}{}{}

答案2

逗号不是由\lablenamepunct(顺便说一下,它已被弃用) 添加的,而是由\newunitwhich uses 添加的\newunitpunct。不幸的是,这在多个地方都有使用,因此无法全局重新定义,而需要在组内重新定义,以免影响所有其他情况:

\documentclass{article}

\usepackage[backend=biber, style=ieee, citestyle=numeric-comp, dashed=false]{biblatex}

\makeatletter
% New bibliography drivers, using the required order of fields. These
% are mainly copied from standard.bbx then modified.
\DeclareBibliographyDriver{article}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  {\renewcommand{\newunitpunct}{\addcolon\space}\newunit}
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{bytranslator+others}%
  \newunit\newblock
  \printfield{version}%
  \newunit\newblock
  \usebibmacro{journal+issuetitle}%
  \newunit
  \usebibmacro{byeditor+others}%
  \newunit
  \usebibmacro{pages}%
  \newunit
  \usebibmacro{issue+date}%
  \newunit
  \printfield{note}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{issn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\makeatother

\addbibresource{test.bib}

\begin{document}

test

\cite{test}

\printbibliography

\end{document}

相关内容