Doppelte Abkürzungen in Natbib-Referenzen

Doppelte Abkürzungen in Natbib-Referenzen

Ich habe einen Teil einer Forschungsarbeit, in dem eine Reihe von technischen und Regierungsberichten zitiert werden. Die Namen sind unhandlich, daherdiese schöne Lösung für Abkürzungen in natbibIch habe meine Bibliographie bereinigt.

Leider funktioniert die von mir verwendete .bst-Datei nicht einwandfrei und fügt den Namen der Organisation und die Abkürzung in zwei verschiedene Einträge in der Bibliographie ein. Ich verwendeShiro Takedas großartiges econ.bst. Meine Frage ist also, wie ich die Zitate richtig hinbekomme? Idealerweise ohne einen eigenen Zweig der .bst-Datei erstellen zu müssen, aber ich bin offen für die Verwendung von Biblatex, wenn es eine elegante Lösung gibt, bei der die Formatierung erhalten bleibt. Vielen Dank im Voraus!

Hier ist ein MWE, das mein Problem erzeugt:

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

wo meine Datei citations.bib Folgendes enthält:

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

Dies ist, was es erzeugt, beachten Sie das seltsame doppelte Auftreten der „Organisation für wirtschaftliche Zusammenarbeit und Entwicklung (OECD)“.

verkorkste Referenzen

Antwort1

Das Problem wird durch ein Implementierungsdetail in natbib verursacht. Wie Sie in der .bblDatei sehen können, werden die folgenden Elemente generiert:

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

Der Teil, der mit beginnt, {\bfist die eigentliche Ausgabe im Dokument, und davor gibt es einen Befehl \harvarditem, der die Buchführung für den Citekey, den Kurzautor, den vollständigen Autor und das Jahr übernimmt, der der .auxDatei und den verschiedenen \citeBefehlen entspricht.

Natbib definiert es \harvarditemals Wrapper um den Standardbefehl \bibitem. Es prüft, ob das erste (optionale) Argument leer ist mit \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
}%

Allerdings \if\relax#1\relaxfunktioniert diese Prüfung nicht richtig, wenn #1ein Befehl wie enthalten ist \acroauthor, da dieser Befehl erweitert und dabei #1 (\mbox{#2})an dieser Stelle gedruckt wird.

Wie beispielsweise inWas ist die genaue Semantik von \detokenize?ist es sicherer, die detokenisierte Darstellung des Arguments zu überprüfen:

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

Ergebnis:

Bildbeschreibung hier eingeben

verwandte Informationen