Voy a enviar un artículo al Journal Of Applied Physics (JAP). Entonces estoy usando la clase de documento revtex4-1 \documentclass[aip,jap,reprint,superscriptaddress,amsmath,amssymb]{revtex4-1}
.
Durante la preparación de mi artículo, utilizo el archivo .bib para generar mi lista de referencias. Pero ahora que llega el momento de enviarlo, quiero incrustar una referencia en mi archivo de látex como \bibitems. Un método consiste en copiar el contenido del archivo .bbl que genera automáticamente el archivo .bib durante el procesamiento del látex.
Tal como comentó Jon, el contenido del archivo .bbl está controlado por documentclass. Pero el problema es que encontré que el archivo .bbl generado por el estilo de clase de documento JAP es muy complejo, largo e ilegible. Algo como:
\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}%
la apariencia de la referencia es así
Bueno, pegar un bloque de datos tan grande en un archivo de látex seguramente funciona. Pero es ilegible.
En realidad, si usamos unsrt
el estilo modificado mencionado aquí¿Es posible obtener bibliografía unsrt + abbrv?. Podemos generar una apariencia de referencia bastante similar al estilo JAP. La modificación se realiza en unsrt.bst
el archivo. Dado que el nombre del autor en el original unsrt
no está en estilo JAP. Entonces, al cambiar ff~
a f.~ en FUNCTION {format.names}
, obtuvimos el estilo de nombre de autor JAP. El archivo .bbl generado ahora es mucho más claro como se muestra a continuación:
\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}
Para producir la apariencia exacta de referencia JAP. Podemos simplemente hacer algunas sustituciones de texto como:
- eliminar \em
- eliminar (5) y (7286)
- reemplace ":" como ","
- agregue paréntesis al año.
- negrita 101 y 464
- cambiar 183--186 en 183
La lista anterior de operaciones se puede realizar fácilmente con algunos conocimientos de sustitución de expresiones regulares. Y finalmente obtuvimos los siguientes \bibitems que producen exactamente el mismo estilo de referencia JAP.
\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}
Al igual que cambiar ff~
a f.~
in unsrt.bst
proporciona el nombre de autor de estilo JAP correcto. Creo que solo necesitamos algunas modificaciones más en el unsrt.bst
archivo para generar \bibitems correctos y claros en estilo JAP en un solo paso, por lo que no necesito ningún posprocesamiento de sustitución de expresiones regulares.
Respuesta1
Creo que tal vez pueda responder mi propia pregunta ahora.
La clave de este problema es generar un archivo bst de estilo de bibliografía personalizado.
Hay dos maneras de hacerlo
- use la herramienta makebst en el paquetebabero personalizado
- utilizar software basado en javababero
makebst
es una herramienta de línea de comandos para generar un archivo .bst personalizado después de responder una serie de alrededor de 70 preguntas relacionadas con el formato del estilo de referencia que desea. Para mí no es tan amigable, puedes aprender a usarlo paso a paso leyendo este artículo.LaTeX, gestión de bibliografía y estilos..
Por otro lado, encontré que usarlo bib-it
es mucho más fácil (Gracias al autor de bib-it
). Tiene un Bibtex style generator
, que es gráfico. Ahora mostraré cómo bib-it
generar un archivo .bst estilo JAP en solo unos minutos.
Al abrir bib-it
, haga clic en "herramientas-->generador de estilos". Verá una interfaz gráfica titulada Bibtex style generator
. Lo que tienes que hacer es una configuración de 3 pasos que se muestra en la siguiente imagen:
- artículo
- libro
- autor
Finalmente, simplemente presione "generar y guardar" y obtendrá su archivo bst personalizado.
La apariencia de la referencia generada es como
y el archivo .bbl generado automáticamente es bastante claro
\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}
El único fallo son las "páginas", JAP sólo necesita la página de inicio. Esto se puede solucionar con una única operación de sustitución utilizando una expresión regular.
Respuesta2
Puede insertar el contenido de su archivo bib al comienzo de su preámbulo (siguiendo la \documentclass
línea) usando el filecontents
entorno.
\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}