Abreviatura duplicada en las referencias de Natbib

Abreviatura duplicada en las referencias de Natbib

Tengo una parte de un trabajo de investigación que cita un montón de informes técnicos y gubernamentales. Los nombres son difíciles de manejar, por lo que los siguientesesta buena solución para abreviaturas en natbibLimpié mi bibliografía.

Desafortunadamente, el archivo .bst que estoy usando no funciona bien y coloca el nombre de la organización y la abreviatura en dos entradas diferentes de la bibliografía. Estoy usandoLa increíble economía de Shiro Takeda.bst. Entonces mi pregunta es ¿cómo puedo obtener las citas correctas? Idealmente, sin tener que crear mi propia rama del archivo .bst, pero estoy dispuesto a usar biblatex si existe una solución elegante que preserve el formato. ¡Gracias de antemano!

Aquí hay un MWE que genera mi problema:

\documentclass[12pt,letterpaper]{article}
\usepackage[margin=1.5in]{geometry}
\usepackage{natbib}

% Abbreviations in natbib
   \usepackage{etoolbox}

   \newif\ifabbreviation
   \pretocmd{\thebibliography}{\abbreviationfalse}{}{}
   \AtBeginDocument{\abbreviationtrue}
   \DeclareRobustCommand\acroauthor[2]{%
      \ifabbreviation #2\else #1 (\mbox{#2})\fi}

% econ.bst style of choice
\bibliographystyle{aer}

\begin{document}

In Germany, feed-in-tariffs for renewable energy last for 20 years \citep{OECDFIT} while similar Chinese tax cuts last for 6\citep{kpmgwind}. 
     
\bibliography{citations}

\end{document}

donde mi archivo citations.bib contiene:

@techreport{OECDFIT,
    author={{\acroauthor{Organization for Economic Co-Operation and Development}{OECD}}}, 
    institution = {{Organization for Economic Co-Operation and Development}},
    year ={2022},
    title = {Renewable Energy Feed-in-tariffs} 
}

@techreport{kpmgwind2020,
    title = {The Power of Nature: Taxation of Wind Power - 2022  A Country Overview},
    pages = {27--29},
    author = {Nyberg, Per  and  Thorvaldsen, Trond and Greni, Jan},
    institution = {{KPMG Law Advokatfirma}},
    year = {2020}
}

Esto es lo que genera, nótese la extraña doble aparición de la "Organización para la Cooperación y el Desarrollo Económico (OCDE)".

referencias desordenadas

Respuesta1

El problema se debe a un detalle de implementación en natbib. Como puede ver en el .bblarchivo, se generan los siguientes elementos:

\harvarditem[Nyberg et al.]{Nyberg, Thorvaldsen and Greni}{2020}{kpmgwind2020}
{\bf Nyberg, Per, Trond Thorvaldsen, and Jan Greni}, ``The Power of Nature:
  Taxation of Wind Power - 2022 A Country Overview,'' Technical Report, {KPMG
  Law Advokatfirma} 2020.

\harvarditem[{\acroauthor{Organization for Economic Co-Operation and
  Development}{OECD}}]{{\acroauthor{Organization for Economic Co-Operation and
  Development}{OECD}}}{2022}{OECDFIT}
{\bf {\acroauthor{Organization for Economic Co-Operation and
  Development}{OECD}}}, ``Renewable Energy Feed-in-tariffs,'' Technical Report,
  {Organization for Economic Co-Operation and Development} 2022.

La parte que comienza {\bfes la salida real en el documento, y antes de eso hay un comando \harvarditemque lleva la contabilidad de la clave de cita, autor breve, autor completo, año, que corresponde al .auxarchivo y los distintos \citecomandos.

Natbib se define \harvarditemcomo un contenedor alrededor del \bibitemcomando predeterminado. Comprueba si el primer argumento (opcional) está vacío con \if\relax#1\relax:

% definition from natbib.sty
\newcommand\harvarditem[4][]{%
 \if\relax#1\relax
   \bibitem[#2(#3)]{#4}%
 \else
   \bibitem[#1(#3)#2]{#4}%
 \fi
}%

Sin embargo, esta verificación \if\relax#1\relaxno funciona correctamente cuando #1contiene un comando como \acroauthor, porque este comando se expande y al hacerlo #1 (\mbox{#2})se imprime en ese punto.

Como se explica por ejemplo en¿Cuál es la semántica exacta de \detokenize?, es más seguro comprobar la representación detokenizada del argumento:

\documentclass[12pt,letterpaper]{article}
\usepackage[margin=1.5in]{geometry}
\usepackage{natbib}
\renewcommand\harvarditem[4][]{%
 \if\relax\detokenize{#1}\relax
   \bibitem[#2(#3)]{#4}%
 \else
   \bibitem[#1(#3)#2]{#4}%
 \fi
}%

% Abbreviations in natbib
   \usepackage{etoolbox}

   \newif\ifabbreviation
   \pretocmd{\thebibliography}{\abbreviationfalse}{}{}
   \AtBeginDocument{\abbreviationtrue}
   \DeclareRobustCommand\acroauthor[2]{%
    \ifabbreviation#2\else#1 (\mbox{#2})\fi}

% econ.bst style of choice
\bibliographystyle{aer}

\begin{document}

In Germany, feed-in-tariffs for renewable energy last for 20 years \citep{OECDFIT} while similar Chinese tax cuts last for 6 \citep{kpmgwind2020}. 
     
\bibliography{techrepauth}

\end{document}

Resultado:

ingrese la descripción de la imagen aquí

información relacionada