Biber+biblatex automatische Standardabkürzungen

Biber+biblatex automatische Standardabkürzungen

Gibt es eine Möglichkeit, IEEE-Standardabkürzungen automatisch zu ersetzen biblatex + biber(sobald irgendwie eine Liste der Abkürzungen bereitgestellt wird)?

Zum Beispiel:

„Konferenzaufzeichnung der IEEE International Conference on Communication“

soll werden

„Konf. Rec. 1995 IEEE Int. Konf. Commun.“

Antwort1

Ich bin nicht wirklich ein Fan des IEEE-Stils, aber ich glaube, ich verstehe Ihre allgemeine Einstellung und werde es versuchen.

Ich nehme an, Sie verwenden den Stil biblatexvon ieee, laden aber IEEEabrv.bibbereitgestellt von IEEEtran(obwohl ich dort den „Konferenzbericht der IEEE International Conference on Communication“ nicht gefunden habe, deshalb verwende ich hier einen Eintrag von IEEEexample.bib).

Ich sehe zwei Möglichkeiten, wie Sie die in bereitgestellten Standard-IEEE-Abkürzungen überschreiben können IEEEabrv.bib. Die erste besteht darin, dass Sie eine zweite Datei mit Abkürzungszeichenfolgen erstellen und diese ladennach IEEEabrv.bib. Die zweite Möglichkeit besteht darin, die Daten Ihres Eintrags mit biblatex's zu ändern.\DeclareSourcemap

Der erste würde so lauten:

\documentclass{article}
\usepackage[style = ieee]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@article{IEEEexample:article_typical,
  author        = "S. Zhang and C. Zhu and J. K. O. Sin and P. K. T. Mok",
  title         = "A Novel Ultrathin Elevated Channel Low-temperature 
                   Poly-{Si} {TFT}",
  journal       = IEEE_J_EDL,
  volume        = "20",
  month         = nov,
  year          = "1999",
  pages         = "569-571"
}
\end{filecontents*}

\addbibresource{IEEEabrv.bib}
\addbibresource{myIEEEabrv.bib}
\addbibresource{\jobname.bib}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

Dabei myIEEEabrv.bibstehen die Neudefinitionen der gewünschten abgekürzten Zeichenfolgen. In diesem Fall etwa:

@STRING{IEEE_J_EDL        = "{IEEE} Elec. Dev. Lett."}

(Die in definierte Zeichenfolge IEEEabrv.bibist {IEEE} Electron Device Lett.). Beachten Sie, dass sie nach geladen werden muss IEEEabrv.bib.

Wenn ich Ihre Frage falsch verstanden habe und Sie eigentlich einige Ihrer eigenen abgekürzten Zeitschriftentitel angeben möchten, bietet Ihnen diese Methode ebenfalls einen sinnvollen Ansatz. Sie können eine Datei erstellen abbrev.bib, dort die gewünschten Zeichenfolgen definieren und sie mit hinzufügen \addbibresource. Dann verwenden Sie in Ihrer Referenzdatei .bibdie ZeichenfolgeName(also ohne Klammern, wie im obigen Beispiel) in das Feld journaltitle/ journalein. Sie könnten dann Folgendes haben:

@string{IEEEIntConfCom = "Conf. Rec. 1995 {IEEE} Int. Conf. Commun."}

und dann würden Sie in Ihrer Bibfile verwenden:

journaltitle = IEEEIntConfCom,

Normalerweise erfordert dieser Ansatz auch eine zweite Datei, in der die vollständigen Zeichenfolgen definiert sind, sagen wir full.bib. Darin hätten Sie:

@string{IEEEIntConfCom = "Conference Record {IEEE} International Conference on Communication"}

Damit müssen Sie zum Wechseln von abgekürzten Zeitschriftentiteln zu vollständigen Zeitschriftentiteln lediglich in Ihrer Hauptdatei das Wort \addbibresource{abbrev.bib}durch ersetzen .\addbibresource{full.bib}.tex

Der zweite Ansatz wäre, wie erwähnt, die Verwendung von \DeclareSourcemap:

\documentclass{article}
\usepackage[style = ieee]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@article{IEEEexample:article_typical,
  author        = "S. Zhang and C. Zhu and J. K. O. Sin and P. K. T. Mok",
  title         = "A Novel Ultrathin Elevated Channel Low-temperature 
                   Poly-{Si} {TFT}",
  journal       = IEEE_J_EDL,
  volume        = "20",
  month         = nov,
  year          = "1999",
  pages         = "569-571"
}
\end{filecontents*}

\addbibresource{IEEEabrv.bib}
\addbibresource{\jobname.bib}

\DeclareSourcemap{
    \maps[datatype=bibtex]{
        \map{
            \step[fieldsource=journal,
                      match={{IEEE} Electron Device Lett.},
                      replace={{IEEE} Elec. Dev. Lett.}]
        }
    }
}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

Beachten Sie, dass dies matchfür die in definierte standardmäßige Kurzform steht IEEEabrv.bibund nicht für den Namen der Zeichenfolge.

Anmerkung: Ich hatte einige Probleme mit IEEEabrv.bibder Kodierung. Damit das funktioniert, musste ich es in UTF-8 speichern, damit es ausgeführt werden konnte. Aber ich nehme an, dass Sie das irgendwie hinbekommen haben, da Sie diese Abkürzungen anscheinend bereits verwenden.

verwandte Informationen