Anpassen von Bibliografiestilen

Anpassen von Bibliografiestilen

Ich zitiere zwei Aufsätze und möchte den Stil der Bibliografie ändern, das heißt, ich ändere den Stil des einen, lasse den anderen aber unverändert.

\documentclass[12pt,a4paper]{article}
\usepackage[round]{natbib}

\begin{document}

 My citation \citep{desmet2015geography}

 another citation \citep{roberts2012evaluating}

\medskip
\bibliographystyle{plainnat}
\bibliography{citation}

\end{document}

Bibliographiedatei (citation.bib)

@article{roberts2012evaluating,
Author = {Roberts, Mark and Deichmann, Uwe and Fingleton, Bernard and Shi, Tuo},
Journal = {Regional Science and Urban Economics},
Number = {4},
Pages = {580--594},
Publisher = {Elsevier},
Title = {Evaluating China's road to prosperity: A new economic geography approach},
Volume = {42},
Year = {2012}}

@techreport{desmet2015geography,
Author = {Desmet, Klaus and Nagy, D{\'a}vid Kriszti{\'a}n and Rossi-Hansberg, Esteban},
Date-Added = {2016-09-03 13:29:14 +0000},
Date-Modified = {2016-09-03 13:29:14 +0000},
Institution = {National Bureau of Economic Research},
Title = {The geography of development: Evaluating migration restrictions and coastal flooding},
Year = {2015}}

IDE:Texpad 1.731

Motor: Xelatex, BibTex

Kompilierte Ausgabe des Minibeispiels: Bildbeschreibung hier eingeben Gewünschte Ausgabe: Bildbeschreibung hier eingeben

Antwort1

Die einzige Information, die zwischen LaTeX und BibTeX ausgetauscht wird, ist der Cite-Schlüssel. Wenn Sie also zwischen Einträgen unterscheiden möchten, die „und“ verwenden sollen, und solchen, die „&“ verwenden sollen, sollten Sie diese Information anscheinend mit dem Cite-Schlüssel weitergeben. Hier ist meine Lösung, die das tut.

  1. Die Einträge, die "&" verwenden sollen, erhalten einen Cite Key, der mit "&" endet. Im obigen Beispiel ist dies in der Bibliographiedatei:

    @article{roberts2012evaluating&,
    Author = {Roberts, Mark and Deichmann, Uwe and Fingleton, Bernard and Shi, Tuo},
    Journal = {Regional Science and Urban Economics},
    Number = 4,
    Pages = {580--594},
    Publisher = {Elsevier},
    Title = {Evaluating {China}'s road to prosperity: A new economic geography approach},
    Volume = 42,
    Year = 2012}
    

und der Zitatbefehl wird

\citep{roberts2012evaluating&}

(Interessanterweise &ist ein Bare erlaubt.)

  1. Nun müssen wir den Bibliographiestil ändern, um ein Makro \ANDanstelle von „and“ zu generieren. Also machen wir eine Kopie von plainnat.bstund nennen sie myplainnat.bst. Die Unterschiede sind (ersetzen Sie die erste Zeile durch die zweite):

l. 232 und 325

       { " and " * t * }
       { " \AND{} " * t * }

Nr. 1111

    { " and " * s #2 "{vv~}{ll}" format.name$ * }
    { " \AND{} " * s #2 "{vv~}{ll}" format.name$ * }
  1. Verwenden Sie jetzt \bibliographystyle{myplainnat}anstelle von plainnat1. Und wir müssen neu schreiben, \bibitemum zu prüfen, ob der Zitatschlüssel mit endet, &und dann \ANDals &ob dies der Fall wäre und als andandernfalls als definieren.

Hier ist das angepasste MWE:

\documentclass[12pt,a4paper]{article}
\usepackage[round]{natbib}
\usepackage{ifthen}
\newcommand\AND{and}
\let\origbibitem\bibitem
\renewcommand\bibitem[2][]{%
   \bibitemcheckkey{#2}\origbibitem[#1]{#2}}
\newcommand\bibitemcheckkey[1]{%
    \bibitemampcheck#1&\relax}
\def\bibitemampcheck#1&#2\relax{%
     \ifthenelse{\equal{#2}{&}}{\def\AND{\&}}{\def\AND{and}}}

\begin{document}

 My citation \citep{desmet2015geography}

 another citation \citep{roberts2012evaluating&}

\medskip
\bibliographystyle{myplainnat}
\bibliography{citation}

\end{document}

verwandte Informationen