Vou submeter um artigo para o Journal Of Applied Physics (JAP). Então, estou usando revtex4-1 document class \documentclass[aip,jap,reprint,superscriptaddress,amsmath,amssymb]{revtex4-1}
.
Durante a preparação do meu artigo, utilizo o arquivo .bib para gerar minha lista de referências. Mas agora que chega o momento do envio, quero incorporar a referência em meu arquivo de látex como \bibitems. Um método é copiar o conteúdo do arquivo .bbl que é gerado automaticamente pelo arquivo .bib durante o processamento do látex.
Assim como Jon comentou, o conteúdo do arquivo .bbl é controlado pela documentclass. Mas o problema é que descobri que o arquivo .bbl gerado pelo estilo documentclass JAP é muito complexo, longo e ilegível. 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}%
a aparência da referência é assim
Bem, colar um bloco tão grande de dados em um arquivo látex certamente funciona. Mas é ilegível.
Na verdade, se usarmos unsrt
o estilo modificado mencionado aquiÉ possível obter a bibliografia unsrt + abbrv?. Podemos gerar uma aparência de referência bastante semelhante ao estilo JAP. A modificação é feita no unsrt.bst
arquivo. Já que o nome do autor no original unsrt
não é do estilo JAP. Então, mudando ff~
para f.~ in FUNCTION {format.names}
, obtivemos o estilo do nome do autor JAP. O arquivo .bbl gerado está muito claro agora como abaixo:
\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 produzir a aparência exata da referência JAP. Podemos apenas fazer algumas substituições de texto como:
- excluir \em
- excluir (5) e (7286)
- substitua ":" por ","
- adicione colchetes ao ano.
- negrito 101 e 464
- mude 183--186 para 183
a lista de operações acima pode ser feita facilmente com algum conhecimento de substituição de expressões regulares. E finalmente obtivemos os seguintes \bibitems que produzem exatamente o mesmo estilo de referência 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}
Assim como mudar ff~
para f.~
in unsrt.bst
fornece o nome correto do autor no estilo JAP. Acredito que precisamos apenas de mais algumas modificações no unsrt.bst
arquivo para gerar os \bibitems corretos e claros no estilo JAP em uma única etapa, portanto, não preciso de nenhum pós-processamento de substituição de regex.
Responder1
Acho que talvez eu possa responder minha própria pergunta agora.
A chave para esse problema é gerar um arquivo bst de estilo bibliográfico personalizado.
Existem duas maneiras de fazer isso
- use a ferramenta makebst no pacotebabador personalizado
- usar software baseado em javababador
makebst
é uma ferramenta de linha de comando para gerar um arquivo .bst personalizado depois de responder a uma série de cerca de 70 perguntas relacionadas ao formato do estilo de referência desejado. Para mim não é tão amigável, você pode aprender como usá-lo passo a passo lendo este artigoLaTeX, gerenciamento de bibliografia e estilos.
Por outro lado, achei bib-it
muito mais fácil de usar (graças ao autor do bib-it
). Tem um Bibtex style generator
, que é gráfico. Agora vou mostrar como bib-it
gerar um arquivo .bst estilo JAP em apenas alguns minutos.
Abrindo bib-it
, clique em "ferramentas -> gerador de estilo". você verá uma interface gráfica intitulada Bibtex style generator
. O que você precisa fazer é uma configuração de 3 etapas mostrada na imagem a seguir:
- artigo
- livro
- autor
Por fim, basta pressionar "gerar e salvar" para obter seu arquivo bst personalizado.
A aparência da referência gerada é como
e o arquivo .bbl gerado automaticamente é 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}
O único defeito são as "páginas", o JAP só precisa da página inicial. Isso pode ser corrigido com uma única operação de substituição usando expressão regular.
Responder2
Você pode inserir o conteúdo do seu arquivo bib no início do seu preâmbulo (seguindo a \documentclass
linha) usando o filecontents
ambiente.
\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}