
Minha universidade gosta de ter algumas regras de citação interessantes e, para cumpri-las, eu precisaria citar comandos para produzir
<author> (<year>)
, (<author> <year>)
e (<author> <year>.)
para fazer isso pesquisei no natbib e descobri \citet
que \cite
era muito parecido com o que eu precisava. Com um pouco de mexer consegui aproximá-los do que eu precisava. O problema veio com o ponto e a vírgula no meio
Aqui está o que tenho atualmente.
\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}
O que isso me produz atualmente é
Foo, Bar e Baz (xyz)
Foo et al., (xyz)
(Foo et al., xyz)
Então, como posso fazer com que essa vírgula desapareça \citep
antes do ano e também criar o comando necessário? \cited
? com o ponto no final assim?
(Foo et al. xyz.)
Responder1
Você pode fazer a vírgula desaparecer com
\renewcommand*{\nameyeardelim}{\addspace}
Na verdade é o natbib
modo de compatibilidade (ver blx-natbib.def
) que torna esta alteração necessária, o padrão é usar apenas um espaço.
O período em que \cited
você pode começar com
\newrobustcmd{\mkbibparensperiod}[1]{\mkbibparens{#1\addperiod}}
\DeclareCiteCommand{\darencite}[\mkbibparensperiod]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\newrobustcmd*{\cited}{\darencite}