我目前在作者后的 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
(顺便说一下,它已被弃用) 添加的,而是由\newunit
which 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}