使用 \citealp 命令时文内引用中的逗号问题(Biblatex 和 Bath 风格)

使用 \citealp 命令时文内引用中的逗号问题(Biblatex 和 Bath 风格)

我一直在写一篇论文,但一直苦苦思索引用风格。众所周知,有些大学和部门对他们的要求非常具体...

我使用“Bath”样式的 frombiblatexnatbib命令来引用。大多数时候,该命令\citep可以完成我的内联引用,但有时我需要使用具有不同页码的多个引用,例如。

(姓氏 2050,12;姓氏 2 2030,40)。

我通常使用以下命令执行此操作\citealp

(\citealp[12]{last_name_fake_2050}; \citealp[40]{last_name_2_fake_2030}). 

我的问题我的大学要求的格式是 (姓氏年份,页码;姓氏年份,页码)。对于命令\citep和单个引用,我使用以下代码进行管理:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[style=bath,backend=biber,maxcitenames=2,natbib=true,uniquelist=false,uniquename=false]{biblatex}
\DeclareDelimFormat[parencite, bib]{nameyeardelim}{\addspace} 
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}

\addbibresource{references.bib}

\begin{document}

\printbibliography
\end{document}

但是,使用这个\citealp命令,我最终得到了

(姓氏,2050, 12; 姓氏 2,2030, 40)

我想删除姓氏和日期之间的逗号,就像我使用命令所做的那样\citep。我需要了解如何执行此操作。

举例来说:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[style=bath,backend=biber,maxcitenames=2,natbib=true,uniquelist=false,uniquename=false]{biblatex}
\DeclareDelimFormat[parencite, bib]{nameyeardelim}{\addspace} 
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}


\addbibresource{references.bib}

\begin{document}
when I use citep command
\citep[12]{last_name_fake_2050}

when I use citealp
(\citealp[12]{last_name_fake_2050}; \citealp[40]{last_name_2_fake_2030})

\printbibliography
\end{document}

参考文献中的这两个条目

@article{last_name_2_fake_2030,
    title = {Fake article 2},
    author = {Last name 2, First},
    year = {2030},
}

@article{last_name_fake_2050,
    title = {Fake article 1},
    author = {Last Name, First},
    year = {2050},
}

答案1

使用biblatex的多重引用功能,则无需摆弄多个引用命令和手动括号。请参阅使用 BibLaTeX 进行页面多处引用

multicite 命令不适用于natbib兼容名称,因此您必须使用\parencites\autocites

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[style=bath, backend=biber, maxcitenames=2, uniquelist=false, uniquename=false]{biblatex}

\DeclareDelimFormat[parencite, bib]{nameyeardelim}{\addspace} 
\DeclareFieldFormat{postnote}{\mknormrange{#1}}


\addbibresource{biblatex-examples.bib}
    
\begin{document}
  Lorem \autocite[12]{sigfridsson}
  ipsum \autocites[12]{sigfridsson}[40]{worman}
    
  \printbibliography
\end{document}

Lorem(Sigfridsson 和 Ryde 1998,12) ipsum(Sigfridsson 和 Ryde 1998,12;Worman 2002,40)


如果您坚持使用,您可以通过注意基本上只是 来\citealp解决问题,因此您不仅需要在 中更改分隔符,还需要在上下文中更改分隔符。\citealp\citenameyeardelimparencitecite

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[
  backend=biber, 
  style=bath,
  maxcitenames=2, uniquelist=false, uniquename=false,
  natbib=true, 
]{biblatex}

\DeclareDelimFormat[cite, parencite, bib]{nameyeardelim}{\addspace} 
\DeclareFieldFormat{postnote}{\mknormrange{#1}}


\addbibresource{biblatex-examples.bib}
    
\begin{document}
  Lorem \autocite[12]{sigfridsson}
  ipsum (\citealp[12]{sigfridsson}; \citealp[40]{worman})
    
  \printbibliography
\end{document}

给出相同的输出。

相关内容