¿Cómo modificar el archivo `unsrt.bst` para generar un archivo .bbl estilo Jounal of Applied Phyisics (JAP) conciso y legible?

¿Cómo modificar el archivo `unsrt.bst` para generar un archivo .bbl estilo Jounal of Applied Phyisics (JAP) conciso y legible?

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í ingrese la descripción de la imagen aquí

Bueno, pegar un bloque de datos tan grande en un archivo de látex seguramente funciona. Pero es ilegible.

En realidad, si usamos unsrtel 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.bstel archivo. Dado que el nombre del autor en el original unsrtno 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}

ingrese la descripción de la imagen aquí

Para producir la apariencia exacta de referencia JAP. Podemos simplemente hacer algunas sustituciones de texto como:

  1. eliminar \em
  2. eliminar (5) y (7286)
  3. reemplace ":" como ","
  4. agregue paréntesis al año.
  5. negrita 101 y 464
  6. 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.bstproporciona el nombre de autor de estilo JAP correcto. Creo que solo necesitamos algunas modificaciones más en el unsrt.bstarchivo 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

  1. use la herramienta makebst en el paquetebabero personalizado
  2. utilizar software basado en javababero

makebstes 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-ites 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-itgenerar 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:

  1. artículo ingrese la descripción de la imagen aquí
  2. libro ingrese la descripción de la imagen aquí
    1. autor ingrese la descripción de la imagen aquí

Finalmente, simplemente presione "generar y guardar" y obtendrá su archivo bst personalizado.

La apariencia de la referencia generada es como ingrese la descripción de la imagen aquí

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 \documentclasslínea) usando el filecontentsentorno.

\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}

información relacionada