Wie ändere ich die Datei „unsrt.bst“, um eine prägnante und lesbare .bbl-Datei im Stil des Jounal of Applied Physics (JAP) zu erstellen?

Wie ändere ich die Datei „unsrt.bst“, um eine prägnante und lesbare .bbl-Datei im Stil des Jounal of Applied Physics (JAP) zu erstellen?

Ich werde einen Artikel beim Journal Of Applied Physics (JAP) einreichen. Daher verwende ich die Dokumentklasse revtex4-1 \documentclass[aip,jap,reprint,superscriptaddress,amsmath,amssymb]{revtex4-1}.

Während ich mein Papier ausarbeite, verwende ich eine .bib-Datei, um meine Referenzliste zu erstellen. Aber jetzt, da es Zeit zum Einreichen ist, möchte ich die Referenz als \bibitems in meine Latex-Datei einbetten. Eine Methode besteht darin, den Inhalt der .bbl-Datei zu kopieren, der während der Latex-Verarbeitung automatisch von der .bib-Datei erstellt wird.

Wie Jon bereits bemerkt hat, wird der Inhalt der .bbl-Datei von der Dokumentklasse gesteuert. Das Problem ist jedoch, dass die von JAP Documentclass generierte .bbl-Datei so komplex, lang und unlesbar ist. So etwas wie:

\begin{thebibliography}{2}%
\makeatletter
\providecommand \@ifxundefined [1]{%
 \@ifx{#1\undefined}
}%
\providecommand \@ifnum [1]{%
 \ifnum #1\expandafter \@firstoftwo
 \else \expandafter \@secondoftwo
 \fi
}%
\providecommand \@ifx [1]{%
 \ifx #1\expandafter \@firstoftwo
 \else \expandafter \@secondoftwo
 \fi
}%
\providecommand \natexlab [1]{#1}%
\providecommand \enquote  [1]{``#1''}%
\providecommand \bibnamefont  [1]{#1}%
\providecommand \bibfnamefont [1]{#1}%
\providecommand \citenamefont [1]{#1}%
\providecommand \href@noop [0]{\@secondoftwo}%
\providecommand \href [0]{\begingroup \@sanitize@url \@href}%
\providecommand \@href[1]{\@@startlink{#1}\@@href}%
\providecommand \@@href[1]{\endgroup#1\@@endlink}%
\providecommand \@sanitize@url [0]{\catcode `\\12\catcode `\$12\catcode
  `\&12\catcode `\#12\catcode `\^12\catcode `\_12\catcode `\%12\relax}%
\providecommand \@@startlink[1]{}%
\providecommand \@@endlink[0]{}%
\providecommand \url  [0]{\begingroup\@sanitize@url \@url }%
\providecommand \@url [1]{\endgroup\@href {#1}{\urlprefix }}%
\providecommand \urlprefix  [0]{URL }%
\providecommand \Eprint [0]{\href }%
\providecommand \doibase [0]{http://dx.doi.org/}%
\providecommand \selectlanguage [0]{\@gobble}%
\providecommand \bibinfo  [0]{\@secondoftwo}%
\providecommand \bibfield  [0]{\@secondoftwo}%
\providecommand \translation [1]{[#1]}%
\providecommand \BibitemOpen [0]{}%
\providecommand \bibitemStop [0]{}%
\providecommand \bibitemNoStop [0]{.\EOS\space}%
\providecommand \EOS [0]{\spacefactor3000\relax}%
\providecommand \BibitemShut  [1]{\csname bibitem#1\endcsname}%
\let\auto@bib@innerbib\@empty
%</preamble>
\bibitem [{\citenamefont {Mazin}\ \emph {et~al.}(2008)\citenamefont {Mazin},
  \citenamefont {Singh}, \citenamefont {Johannes},\ and\ \citenamefont
  {Du}}]{10.1103/PhysRevLett.101.057003}%
  \BibitemOpen
  \bibfield  {author} {\bibinfo {author} {\bibfnamefont {I.~I.}\ \bibnamefont
  {Mazin}}, \bibinfo {author} {\bibfnamefont {D.~J.}\ \bibnamefont {Singh}},
  \bibinfo {author} {\bibfnamefont {M.~D.}\ \bibnamefont {Johannes}}, \ and\
  \bibinfo {author} {\bibfnamefont {M.~H.}\ \bibnamefont {Du}},\ }\href
  {\doibase 10.1103/PhysRevLett.101.057003} {\bibfield  {journal} {\bibinfo
  {journal} {{Phys. Rev. Lett.}}\ }\textbf {\bibinfo {volume} {{101}}},\
  \bibinfo {pages} {057003} (\bibinfo {year} {2008})}\BibitemShut {NoStop}%
\bibitem [{\citenamefont {Mazin}(2010)}]{10.1038/nature08914}%
  \BibitemOpen
  \bibfield  {author} {\bibinfo {author} {\bibfnamefont {I.~I.}\ \bibnamefont
  {Mazin}},\ }\href {\doibase 10.1038/nature08914} {\bibfield  {journal}
  {\bibinfo  {journal} {{Nature}}\ }\textbf {\bibinfo {volume} {{464}}},\
  \bibinfo {pages} {183} (\bibinfo {year} {2010})}\BibitemShut {NoStop}%
\end{thebibliography}%

das Erscheinungsbild der Referenz ist wie folgt Bildbeschreibung hier eingeben

Nun, das Einfügen eines so großen Datenblocks in eine Latex-Datei funktioniert sicherlich. Aber er ist unlesbar.

Tatsächlich, wenn wir unsrtden hier erwähnten modifizierten Stil verwendenIst es möglich, eine Bibliographie mit unsrt und Abkürzungen zu erhalten?. Wir können ein Referenz-Erscheinungsbild generieren, das dem JAP-Stil sehr ähnlich ist. Die Änderung erfolgt in der unsrt.bstDatei. Da der Autorenname im Original unsrtnicht im JAP-Stil ist. Durch die Änderung ff~in f.~ in FUNCTION {format.names}erhalten wir also den JAP-Autorennamenstil. Die generierte .bbl-Datei ist jetzt viel klarer, wie unten dargestellt:

\begin{thebibliography}{1}

\bibitem{10.1103/PhysRevLett.101.057003}
I.~I. Mazin, D.~J. Singh, M.~D. Johannes, and M.~H. Du.
\newblock {\em {Phys. Rev. Lett.}}, {101}(5):057003, 2008.

\bibitem{10.1038/nature08914}
I.~I. Mazin.
\newblock {\em {Nature}}, {464}(7286):183--186, 2010.

\end{thebibliography}

Bildbeschreibung hier eingeben

Um das genaue Aussehen der JAP-Referenz wiederherzustellen, können wir einfach ein paar Textersetzungen vornehmen, wie:

  1. löschen \em
  2. (5) und (7286) streichen
  3. Ersetze „:“ durch „“,
  4. Fügen Sie der Jahreszahl runde Klammern hinzu.
  5. fett 101 und 464
  6. ändern Sie 183--186 in 183

Die obige Liste von Operationen kann mit etwas Wissen über reguläre Ausdrücke leicht durchgeführt werden. Und schließlich haben wir die folgenden \bibitems, die genau denselben JAP-Referenzstil erzeugen.

\begin{thebibliography}{1}
\bibitem{10.1103/PhysRevLett.101.057003}
I.~I. Mazin, D.~J. Singh, M.~D. Johannes, and M.~H. Du.
\newblock {{Phys. Rev. Lett.}} \textbf{101}, 057003 (2008).

\bibitem{10.1038/nature08914}
I.~I. Mazin.
\newblock {{Nature}} \textbf{464}, 183 (2010).
\end{thebibliography}

Genauso wie die Änderung ff~in den richtigen Autorennamen im JAP-Stil ergibt. Ich glaube, dass wir nur noch ein paar weitere Änderungen an der Datei vornehmen müssen, f.~um die richtigen und eindeutigen \bibitems im JAP-Stil in einem einzigen Schritt zu generieren, sodass ich keine Nachbearbeitung der Regex-Ersetzungen benötige.unsrt.bstunsrt.bst

Antwort1

Ich denke, ich kann meine Frage jetzt vielleicht selbst beantworten.

Der Schlüssel zu diesem Problem besteht darin, eine benutzerdefinierte BST-Datei im Bibliografiestil zu generieren.

Es gibt zwei Möglichkeiten, dies zu tun

  1. Verwenden Sie das Makebst-Tool im Paketbenutzerdefinierte-lätzchen
  2. Verwenden Sie Java-basierte SoftwareLätzchen-es

makebstist ein Befehlszeilentool zum Generieren einer benutzerdefinierten .bst-Datei, nachdem Sie eine Reihe von etwa 70 Fragen zum Format des gewünschten Referenzstils beantwortet haben. Für mich ist es nicht so benutzerfreundlich. Sie können Schritt für Schritt lernen, wie man es verwendet, indem Sie diesen Artikel lesenLaTeX, Bibliographieverwaltung und Stile.

Andererseits fand ich, dass die Verwendung bib-itviel einfacher ist (danke an den Autor von bib-it). Es hat eine Bibtex style generator, die grafisch ist. Jetzt werde ich zeigen, wie man damit bib-itin nur wenigen Minuten eine .bst-Datei im JAP-Stil generiert.


Öffnen Sie bib-itund klicken Sie auf „Tools-->Style Generator“. Sie sehen eine grafische Benutzeroberfläche mit dem Titel Bibtex style generator. Was Sie tun müssen, ist eine 3-Schritt-Einstellung, wie im folgenden Bild dargestellt:

  1. Artikel Bildbeschreibung hier eingeben
  2. Buch Bildbeschreibung hier eingeben
    1. Autor Bildbeschreibung hier eingeben

Zum Schluss drücken Sie einfach auf „Generieren und speichern“ und schon erhalten Sie Ihre benutzerdefinierte BST-Datei.

Das Aussehen der generierten Referenz ist wie Bildbeschreibung hier eingeben

und die automatisch generierte .bbl-Datei ist ziemlich klar

\begin{thebibliography}{}

\bibitem{10.1103/PhysRevLett.101.057003}
I.~I. Mazin, D.~J. Singh, M.~D. Johannes and M.~H. Du, {Phys. Rev. Lett.}
  \textbf{{101}}, 057003 (2008).

\bibitem{10.1038/nature08914}
I.~I. Mazin, {Nature} \textbf{{464}}, 183--186 (2010).

\end{thebibliography}

Der einzige Fehler sind die „Seiten“, JAP braucht nur die Startseite. Dies kann mit einer einzigen Ersetzungsoperation mithilfe regulärer Ausdrücke behoben werden.

Antwort2

Sie können den Inhalt Ihrer Bib-Datei \documentclassmithilfe der Umgebung am Anfang Ihrer Präambel (hinter der Zeile) einfügen filecontents.

\usepackage{filecontents} 
\begin{filecontents} {mwe.bib}
@online{tab:test,
  author                   = {Doe, John},
  Url                      = {http://www.example.com/images/image.jpg},
  Urldate                  = {2014-02-25},
  Timestamp                = {2014.06.13},
  Note                     = {Table \ref{tab1}}, %<== this should point to your table caption label
  year                     = {2014}, %this is necessary for the in-text citation to work
}
\end{filecontents}

verwandte Informationen