%20en%20lugar%20de%20Smith%20(2010a%2C%20b)%20durante%20la%20cita%20en%20l%C3%ADnea.png)
Estoy usando el paquete natbib para mis escritos.
Por ejemplo, Smith tiene dos artículos, ambos publicados en 2010. Los etiqueté como Sm1 y sm2 en mi archivo .bib. Ahora, cuando cito los artículos usando \citet{Sm1,Sm2}, produce Smith (2010a, b). Pero quiero que sea como Smith (2010a, 2010b). ¿Alguien puede ayudarme?
Respuesta1
Yo parchearía \NAT@citex
para evitar el cheque del año, por lo que no es necesario saber el año por adelantado. Simplemente funcionará en todos los casos.
\begin{filecontents*}{\jobname.bib}
@article{sma,
author={Smith, J.},
title={A},
journal={B},
year={2014},
}
@article{smb,
author={Smith, J.},
title={C},
journal={D},
year={2014},
}
\end{filecontents*}
\documentclass{article}
\usepackage[authoryear,round]{natbib}
\usepackage{xpatch}
% patch \NAT@citex to always use the year
\makeatletter
\xpatchcmd{\NAT@citex}
{\ifx\NAT@last@yr\NAT@year}
{\iffalse}
{}{}
\xpatchcmd{\NAT@citex}
{\ifx\NAT@last@yr\NAT@year}
{\iffalse}
{}{}
\makeatother
\begin{document}
\citep{sma,smb}
\citet{sma,smb}
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}
Como es habitual, el filecontents*
entorno es sólo para que el ejemplo sea autónomo.
Explicación. El \NAT@citex
comando es la parte principal del proceso; en dos lugares lo hace
\ifx\NAT@last@yr\NAT@year
<something if the current citation has the same year as the preceding one>
\else
<otherwise>
\fi
Con el parche cambiamos el condicional (primera línea) a \iffalse
, por lo que nunca se seguirá la rama "verdadera".
Respuesta2
Suponiendo que las claves de las dos entradas son sm1
y sm2
, puede lograr su objetivo escribiendo
\citeauthor{sm1} (\citeyear{sm1}, \citeyear{sm2})
Observación: El natbib
paquete presenta las opciones sort
, compress
y sort&compress
, pero parecen estar orientadas principalmente a llamadas de citas de estilo numérico. Para las citas de estilo autor-año, el paquete no parece ofrecer opciones como nosort
o nocompress
, de ahí la necesidad del código de aspecto engorroso proporcionado anteriormente.