
A mi universidad le gusta tener algunas reglas de cita interesantes y para cumplirlas necesitaría comandos de cita para producir
<author> (<year>)
, (<author> <year>)
y (<author> <year>.)
para hacer esto busqué en natbib y encontré \citet
que \cite
se parecía mucho a lo que necesitaba. Con un poco de manipulación logré acercarlos a lo que necesitaba. El problema vino con el punto y la coma en el medio.
Esto es lo que tengo actualmente.
\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}
Lo que esto me produce actualmente es
Foo, Bar & Baz (xyz)
Foo et al., (xyz)
(Foo et al., xyz)
Entonces, ¿cómo puedo hacer que esa coma desaparezca \citep
antes del año y también crear el comando necesario? \cited
? ¿Con el punto al final así?
(Foo et al. xyz.)
Respuesta1
Puedes hacer que la coma desaparezca con
\renewcommand*{\nameyeardelim}{\addspace}
De hecho, es el natbib
modo de compatibilidad (ver blx-natbib.def
) el que hace que este cambio sea necesario; el valor predeterminado es usar solo un espacio.
El período en el que \cited
puedes obtener
\newrobustcmd{\mkbibparensperiod}[1]{\mkbibparens{#1\addperiod}}
\DeclareCiteCommand{\darencite}[\mkbibparensperiod]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\newrobustcmd*{\cited}{\darencite}