Benutzerdefinierte Abkürzung für Zitate in Bibtex

Benutzerdefinierte Abkürzung für Zitate in Bibtex

Beim Schreiben führe ich gerne eine Abkürzung für das gesamte Zitat ein. Beim ersten Mal würde ich schreiben: „Dies ist wahr, wie in (nbren12, et. al. 2012) (im Folgenden NB12) gezeigt.“ Bei den nachfolgenden Verwendungen würde ich einfach sagen: „Diese Tatsache ist wahr (NB12)“. Wie kann ich dies automatisch mit Bibtex (oder Biblatex) implementieren?

Dies ist ähnlich, aber nicht identisch mitdiese Frage.

Antwort1

Es ist klar beschrieben in derHandbuchvon natbibauf Seite 3.

Verwenden Sie den Befehl:

\defcitealias{nbren12}{NB12}

Anschließend können Sie neben dem klassischen Zitieren \citet{}oder \citep{}auch folgendes verwenden:

\citetalias{nbren12}
% or
\citepalias{nbren12}

Beispiel

Darin example.texhabe ich:

\documentclass{article}
\usepackage{natbib}
\bibliographystyle{apalike}

\begin{document}

\defcitealias{jd14}{JD14}

In text \citet{jd14}. Or in brackets \citep[][hereafter JD14]{jd14}.

Now I cite it in text as \citetalias{jd14} and in brackets \citepalias{jd14}.

\bibliography{mybib}

\end{document}

und mybib.bibich habe:

@article{jd14,
  author={Doe, J. and Smith, J. and Bar, F.},
  title={Some title},
  journal={Some journal},
  year={2014},
}

und die Ausgabe ist:

Bildbeschreibung hier eingeben

Und wenn Sie möchten, dass der Alias ​​z. B. kursiv gedruckt wird, aber keine Seitenzahlen usw., können Sie z. B. schreiben \defcitealias{jd14}{{\itshape JD14}}.

Antwort2

biblatexhat das eingebaute Standardmakro, shorthandintrodas dies tun kann. In der .bibDatei fügt man dann das shorthandFeld hinzu und gibt dort den kurzen Zitatnamen ein, so wie hier

@article{jd14,
  author  = {Doe, J. and Smith, J. and Bar, F.},
  title   = {Some title},
  journal = {Some journal},
  year    = {2014},
  shorthand = {JD14},
}

Sie müssen nur noch sicherstellen, dass dieses Makro nur aufgerufen wird, wenn es angebracht ist. Während einige Stile bereits verwenden shorthandintro, tun die einfachen authoryearund authortitleStile dies nicht.

Wir werden sehen, wie man das ändern kann, authoryearsodass es die Kurzform „intro“ verwendet. Das Standardmakro citefür authoryearfinden Sie in authoryear.cbx.

Der Hauptzitatteil, der verwendet wird, wenn keine Kurzschrift vorhanden ist, kann in ein neues Makro ausgelagert werdenlongcite

\newbibmacro*{longcite}{%
  \ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
    {\usebibmacro{cite:label}%
     \setunit{\addspace}}
    {\printnames{labelname}%
     \setunit{\nameyeardelim}}%
  \usebibmacro{cite:labelyear+extrayear}}

Anschließend wird das eigentliche Zitatmakro so geändert, dass beim ersten Zitat ein langes Zitat und eine abgekürzte Einleitung gedruckt werden (die Einleitung wird natürlich nur gedruckt, wenn tatsächlich eine Abkürzung vorhanden ist) und bei nachfolgenden Zitaten das abgekürzte oder lange (normale) Zitat.

\renewbibmacro*{cite}{%
  \ifciteseen
    {\iffieldundef{shorthand}
      {\usebibmacro{longcite}}
      {\usebibmacro{cite:shorthand}}}
    {\usebibmacro{longcite}
     \usebibmacro{shorthandintro}}}

Um den \ifciteseenTest nutzen zu können, müssen wir den aktivieren citetracker(zum Beispiel über citetracker=true).

Andere Zitierstile verwenden andere citeMakros und die Änderungen müssen dann anders sein. Außerdem funktioniert diese Änderung derzeit nicht mit \textcite.

MWE

\documentclass[british,a4paper]{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage[backend=biber,style=authoryear,citetracker=true]{biblatex}

\begin{filecontents*}{\jobname.bib}
@article{jd14,
  author  = {Doe, J. and Smith, J. and Bar, F.},
  title   = {Some Title},
  journal = {Some Journal},
  year    = {2014},
  shorthand = {JD14},
}
@article{jd13,
  author  = {Doe, J. and Smith, J. and Bar, F.},
  title   = {No shorthand here},
  journal = {Some Other Journal},
  year    = {2013},
}
\end{filecontents*}

\addbibresource{\jobname.bib}

\newbibmacro*{longcite}{%
  \ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
    {\usebibmacro{cite:label}%
     \setunit{\addspace}}
    {\printnames{labelname}%
     \setunit{\nameyeardelim}}%
  \usebibmacro{cite:labelyear+extrayear}}

\renewbibmacro*{cite}{%
  \ifciteseen
    {\iffieldundef{shorthand}
      {\usebibmacro{longcite}}
      {\usebibmacro{cite:shorthand}}}
    {\usebibmacro{longcite}
     \usebibmacro{shorthandintro}}}

\begin{document}
  \cite{jd14} again \cite{jd14} and one more time \cite{jd14}.

  Just for comparison \cite{jd13}.

  \printbibliography
\end{document}

Bildbeschreibung hier eingeben

Wenn Sie "im Folgenden <key>" dem "im Folgenden zitiert als <key>" vorziehen, fügen Sie einfach hinzu

\DefineBibliographyStrings{english}{citedas = {hereafter}}

zur Präambel.


Wenn Ihnen die Lösung von Václav Pavlík mit natbibder Cite-Alias-Funktion gefällt, werden Sie erfreut sein zu hören, dass der Kompatibilitätsmodus biblatexvon (einfach an die Ladezeitoptionen übergeben) diese Funktionen ebenfalls mit (soweit ich weiß) genau derselben Syntax bietet.natbibnatbib=true

verwandte Informationen