Biblatex parencite 指令在右括號之前有點

Biblatex parencite 指令在右括號之前有點

我的大學喜歡有一些有趣的引用規則,為了遵守它們,我需要引用命令來生成 <author> (<year>)(<author> <year>)為了(<author> <year>.)做到這一點,我研究了 natbib 並發現它\citet\cite我需要的非常相似。經過一番擺弄,我設法讓它們更接近我需要的東西。問題出在中間的點和逗號上

這是我目前擁有的。

\documentclass[12pt,twoside,english]{article}
\usepackage[backend=biber,style=authoryear-comp,natbib,citetracker=true,%
maxcitenames=1,uniquename=false,uniquelist=false]{biblatex}
\addbibresource{cite/citedb.bib}
\usepackage{xpatch}

\renewcommand*{\finalnamedelim}{%
  \addspace\&\space}
\AtEveryCitekey{\ifciteseen{}{\clearfield{namehash}}}

\xpatchbibmacro{cite}
  {\printnames{labelname}}
  {\ifciteseen
    {\printnames{labelname}}
    {\printnames[][1-99]{labelname}}}
  {}
  {}

\xpatchbibmacro{textcite}
  {\printnames{labelname}}
  {\ifciteseen
    {\printnames{labelname}}
    {\printnames[][1-99]{labelname}}}
  {}
  {}

\begin{document}

\citet{foo}

\citet{foo}

\citep{foo}

\cited{foo}

\printbibliography

\end{document}

這目前帶給我的是

Foo、Bar & Baz (xyz)

Foo 等人,(xyz)

(Foo 等人,xyz)

那麼我怎麼能讓逗號在\citep年份之前消失並創建所需的命令呢?\cited?像這樣結尾的點?

(Foo 等人 xyz。)

答案1

你可以讓逗號消失

\renewcommand*{\nameyeardelim}{\addspace}

事實上,正是natbib相容模式(請參閱 參考資料blx-natbib.def)使得這項變更變得必要,預設設定是僅使用空格。


\cited您可以得到的期間

\newrobustcmd{\mkbibparensperiod}[1]{\mkbibparens{#1\addperiod}}
\DeclareCiteCommand{\darencite}[\mkbibparensperiod]
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {}
  {\usebibmacro{postnote}}

\newrobustcmd*{\cited}{\darencite}

相關內容