閉じ括弧の直前にドットがある Biblatex parencite コマンド

閉じ括弧の直前にドットがある Biblatex parencite コマンド

私の大学では興味深い引用規則を定めており、それに従うには、引用コマンドを使用して、およびを作成する必要があります 。<author> (<year>)これを行うために、natbib を調べ、必要なものに非常に近いものを見つけました。少しいじって、必要なものに近づけることができました。問題は、真ん中のドットとカンマにありました。(<author> <year>)(<author> <year>.)\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}

これが現在私に生み出しているのは

フー、バー、バズ (xyz)

Foo et al.、(xyz)

(Foo et al.、xyz)

\citepでは、年の前にあるカンマを削除し、\citedこのように最後にドットを付けた必要なコマンド ? ? を作成するにはどうすればよいでしょうか。

(Foo et al. 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}

関連情報