Smith (2010a, 2010b) en lugar de Smith (2010a, b) durante la cita en línea

Smith (2010a, 2010b) en lugar de Smith (2010a, b) durante la cita en línea

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@citexpara 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.

ingrese la descripción de la imagen aquí

Explicación. El \NAT@citexcomando 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 sm1y sm2, puede lograr su objetivo escribiendo

\citeauthor{sm1} (\citeyear{sm1}, \citeyear{sm2})

Observación: El natbibpaquete presenta las opciones sort, compressy 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 nosorto nocompress, de ahí la necesidad del código de aspecto engorroso proporcionado anteriormente.

información relacionada