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
Nun, das Einfügen eines so großen Datenblocks in eine Latex-Datei funktioniert sicherlich. Aber er ist unlesbar.
Tatsächlich, wenn wir unsrt
den 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.bst
Datei. Da der Autorenname im Original unsrt
nicht 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}
Um das genaue Aussehen der JAP-Referenz wiederherzustellen, können wir einfach ein paar Textersetzungen vornehmen, wie:
- löschen \em
- (5) und (7286) streichen
- Ersetze „:“ durch „“,
- Fügen Sie der Jahreszahl runde Klammern hinzu.
- fett 101 und 464
- ä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.bst
unsrt.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
- Verwenden Sie das Makebst-Tool im Paketbenutzerdefinierte-lätzchen
- Verwenden Sie Java-basierte SoftwareLätzchen-es
makebst
ist 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-it
viel 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-it
in nur wenigen Minuten eine .bst-Datei im JAP-Stil generiert.
Öffnen Sie bib-it
und 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:
- Artikel
- Buch
- Autor
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
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 \documentclass
mithilfe 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}