Abreviatura duplicada nas referências do Natbib

Abreviatura duplicada nas referências do Natbib

Tenho parte de um artigo de pesquisa que cita vários relatórios técnicos e governamentais. Os nomes são difíceis de manejar, então seguindoesta boa solução para abreviações em natbibLimpei minha bibliografia.

Infelizmente, o arquivo .bst que estou usando não está funcionando bem e está colocando o nome da organização e a abreviatura em duas entradas diferentes na bibliografia. estou a usarO incrível econ.bst de Shiro Takeda. Então, minha pergunta é como posso acertar as citações? Idealmente, sem ter que criar minha própria ramificação do arquivo .bst, mas estou aberto a usar o biblatex se houver uma solução elegante que preserve a formatação. Desde já, obrigado!

Aqui está um MWE que gera meu 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}

onde meu arquivo citations.bib contém:

@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}
}

É isto que gera, note-se a estranha dupla aparência da “Organização para a Cooperação e Desenvolvimento Económico (OCDE)”.

referências confusas

Responder1

O problema é causado por um detalhe de implementação no natbib. Como você pode ver no .bblarquivo, os seguintes itens são gerados:

\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.

A parte que começa {\bfé a própria saída do documento, e antes disso existe um comando \harvarditemque faz a escrituração do citekey, autor abreviado, autor completo, ano, que corresponde ao .auxarquivo e aos diversos \citecomandos.

Natbib define \harvarditemcomo um wrapper em torno do \bibitemcomando padrão. Ele verifica se o primeiro argumento (opcional) está vazio com \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
}%

No entanto, esta verificação \if\relax#1\relaxnão funciona corretamente quando #1contém um comando como \acroauthor, porque este comando é expandido e ao fazê-lo #1 (\mbox{#2})é impresso nesse ponto.

Como explicado por exemplo emQual é a semântica exata de \detokenize?, é mais seguro verificar a representação destokenizada do 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:

insira a descrição da imagem aqui

informação relacionada