Skip to content

HowToLinksInReferencias

Lauro César edited this page Apr 2, 2015 · 2 revisions

Inserir Referências com Links externos

Esta wiki pretende explicar como incorporar o link de um artigo em outras partes de sua referência, como por exemplo, na revista ou no volume do artigo. O efeito é semelhante ao que aparece nas referências de artigos da revista Physical Review. Um exemplo pode ser visto aqui

Alguns detalhes importantes

  • Esta customização foi testata na versão 1.9.1 do AbnteX2.
  • É preciso definir uma cor para os hiperlinks.

Isto pode ser feito utilizando o pacote color.

Por exemplo, você pode definir a cor mycolorlinks no padrão RGB com os seguintes comando no preâmbulo do seu arquivo .tex

\usepackage{color}

\definecolor{mycolorlinks}{RGB}{x1,x2,x3}

Se x1=255, x2=0 e x3=0, então a cor mycolorlinks será o vermelho. Para instruções de uso do pacote color, veja aqui. Você encontra uma tabela de cores no padrão RGB aqui.

  • Para ativar os hiperlinks, o pacote hyperref precisa ser carregado e suas opções colorlinks e urlcolor ativadas da seguinte maneira
\usepackage{hyperref}

\hypersetup{
	colorlinks=true,
	urlcolor=mycolorlinks
}

e então os hyperlinks terão a cor definida por mycolorlinks. Para instruções de uso do pacote hyperref você encontra aqui.

  • Esta customização tem como base a sugestão feita aqui pelo Usuário Corentin.

Procedimento

O procedimento completo consiste na criação de dois novos arquivos .bst e a modificação de um arquivo .sty. Os arquivos a serem criados são

  • abntex2-num-article-links.bst
  • abntex2-alf-article-links.bst e o arquivo a ser modificado é
  • abntex2cite.sty Veja agora como cada um é feito.

Criação do arquivo abntex2-num-article-links.bst

Entre na pasta de instalação do seu Abntex2.

Dentro dela conterá três pastas: bibtex, doc e tex.

Dentro da pasta de instalação, faça o seguinte caminho bibtex/bst/abntex2/.

Desta forma, você encontrará dois arquivos .bst: abntex2-alf e abntex2-num.

Copie o arquivo abntex2-num e cole uma cópia dentro desta mesma pasta com o nome abntex2-num-article-links.

As modificações deverão ser realizadas no arquivo abntex2-num-article-links.

Abra o arquivo abntex2-num-article-links e faça as seguintes passos:

  • Altere o comando Entry, inserindo uma entrada chamada doi. Isto é feito da seguinte maneira
ENTRY
  { address author
    booktitle booksubtitle
    chapter conference-number conference-year conference-location
    edition editor editortype
    dimensions furtherresp
    howpublished illustrated institution
    isbn issn journal key month note marginnote number organization
    org-short pages pagename
    publisher reprinted-from reprinted-text school
    series subtitle section title type url urlaccessdate
    volume year year-presented
    abnt-and-type
    abnt-doi abnt-dont-use-etal
    abnt-etal-cite abnt-etal-list abnt-etal-text abnt-emphasize abnt-experimental
    abnt-full-initials
    abnt-last-names abnt-ldots-type
    abnt-missing-year abnt-cite-style abnt-no-etal-label abnt-note
    abnt-repeated-author-omit abnt-repeated-title-omit
    abnt-show-options abnt-refinfo abnt-thesis-year abnt-url-package
    abnt-title-command
    abnt-verbatim-entry
    iso-abbreviation iso-author-punctuation iso-date-place
    doi
    }{}{ label extra.label year.label}
  • Em seguida, crie uma função chamada doilink.
FUNCTION {doilink}
{ duplicate$ empty$
{ pop$ "" }
{ doi empty$
    { skip$ }
    { "\href{http://" doi * "}{" * swap$ * "}" * }
  if$
}
if$
}

É recomendável que a função doilink seja colocada depois da função init.state.consts.

A posição serve apenas para que doilink seja uma das primeiras funções definidas.

  • Crie as funções color.type.and.comma, output.nonnulla e outputa. Isto é feito do seguinte modo
FUNCTION {color.type.and.comma}{"{\color[RGB]{x1,x2,x3}, }"}

FUNCTION {output.nonnulla}
{ 's :=
  output.state mid.sentence =
    {color.type.and.comma * write$ }
    { output.state after.block =
        {add.period$ write$ newline$ }
        { output.state before.all = 'write$
            { add.period$ " " * write$ }
          if$}
      if$
      mid.sentence 'output.state := }
  if$
  s 
}

FUNCTION {outputa}
{ duplicate$ empty$
    'pop$
    'output.nonnulla
  if$
}

que nada mais são do que cópias das funções output.nonull e output, alteradas para o objetivo em questão.

É recomendável que as mesmas fiquem depois da função output.check.

Observação

As coordenadas x1, x2 e x3 que aparecema na função color.type.and.comma são as coordenadas da cor mycolorlinks. É assim definido porque a função color.type.and.comma diz qual é a cor das vírgulas entre as entradas revista, volume, número, páginas e ano, na referência um artigo, e não é desejável um link com cores diferentes (Se você quiser, boa sorte!). Desta forma, se alguma alteração for feita na cor mycolorlinks, é necessário atualizar a função color.type.and.comma com a nova cor.

  • Para que o hiperlink fique nos itens revista, no volume, nas páginas, no número e no ano é necessário alterar as funções format.volume, format.number, format.pages, format.journal e criar a função non.iso.datea. Isto é feito com os seguintes comandos
FUNCTION {format.volume} %leaves formatted or empty volume on the stack
{volume duplicate$ empty$
   'skip$
   {volume #1 #1 substring$ is.num
      {bbl.volume swap$ tie.or.space.prefix * *}
      'skip$
    if$}
 if$
 doilink
}
FUNCTION {format.number} %leaves formatted or empty number on the stack
{ number duplicate$ empty$
    'skip$
    {bbl.number swap$ tie.or.space.prefix * *}
  if$
  doilink
}
FUNCTION {format.pages}
{ pages duplicate$ empty$ 'skip$
    { duplicate$ multi.page.check
        { n.dashify bbl.pages swap$}
        { bbl.page swap$ }
      if$
      tie.or.space.prefix "pages" bibinfo.check * * }
  if$
  doilink
}
FUNCTION {format.journal}
{
  format.reprint
  journal emphasize doilink *
}
FUNCTION { non.iso.datea }
{iso.date.place  'skip$ {format.date outputa} if$ doilink}

Coloque a função non.iso.datea antes da função article

  • Agora altere a função article do seguinte modo
FUNCTION {article}
{ output.bibitem
  format.author.or.organization  new.sentence
  iso.year.label
  format.title "title" output.check new.block
  format.journal outputa
  iso.date.place {format.year output} 'skip$ if$
  %iso.date.place {format.date output} 'skip$ if$
  %iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
  %               {format.year output} if$
  section "section" bibinfo.check output.dash
  publisher "publisher" bibinfo.check output
  address "address" bibinfo.check output
  format.volume outputa
  format.number outputa
  format.pages outputa
  non.iso.datea
  format.issn output new.block
  format.note output new.block
  format.url
  fin.entry
}

Salve o arquivo.

E este é o fim das alterações no arquivo abntex2-num-article-links.

Criação do arquivo abntex2-alf-article-links.bst

A crição deste arquivo segue a mesma ideia de como no caso do abntex2-num-article-links.

Dentro da pasta bibtex/bst/abntex2/, você deve copiar o arquivo abntex2-alf e então colar uma cópia dentro desta mesma pasta com o nome abntex2-alf-article-links.

As alterações necessárias para este arquivo são idênticas ao caso do arquivo abntex2-num-article-links.

Alteração do arquivo abntex2cite.sty

Entre na pasta de instalação do seu Abntex2.

Dentro dela, faça o seguinte caminho tex/latex/abntex2/.

Você encontrará três arquivos: um do tipo .cls, a classe abntex2 e dois arquivos do tipo .sty: abntex2cite e abntex2abrev.

Abra o arquivo abntex2cite.sty.

Agora acrescente as linhas

\DeclareOption{num-article-links}{\def\AbntCitetype{num-article-links}}
\DeclareOption{alf-article-links}{\def\AbntCitetype{alf-article-links}\setboolean{ABCItextondemand}{true}}

entre as linhas \DeclareOption{num}{\def\AbntCitetype{num}} e \ExecuteOptions{num}

\DeclareOption{num}{\def\AbntCitetype{num}}
%Insira aqui.
\ExecuteOptions{num}

Salve o arquivo.

Atualize sua biblioteca TeX. (Dê um "refresh"!).

Desta forma, você criou duas novas opções para o abntex2cite: a opção num-article-links e a opção alf-article-links. Para ativar tais opções declare seu pacote abntex2cite da seguinte forma no preâmbulo de seu arquivo .tex

\usepackage[num-article-links]{abntex2cite}

ou

\usepackage[alf-article-links]{abntex2cite}

Pronto! Agora seu pacote abntex2cite está habilitado para tal função. Só é preciso saber como usar isto.

Usando as opções alf-article-links e num-article-links

O uso destas opções é visto abaixo. Considere o seguinte código .tex utilizando a opção num-article-links

\documentclass[12pt, a4paper, oneside]{abntex2}

\usepackage[brazil]{babel}
\usepackage{cmap}				
\usepackage[T1]{fontenc}	
\usepackage[utf8]{inputenc}

\usepackage{color}

\definecolor{mycolorlinks}{RGB}{41,5,195}
\definecolor{mydarkred}{RGB}{205,0,0}

\usepackage{hyperref}

\hypersetup{
		colorlinks=true,
    	        linkcolor=mydarkred,
    	        citecolor=mydarkred,
		urlcolor=mycolorlinks
}

\usepackage[num-article-links,abnt-emphasize=bf,abnt-etal-list=0]{abntex2cite}


\begin{document}

\chapter{Citando as Referências}

\indent Citando as referências:\\\\
\indent \cite{BoninStefan} e \cite{montesino}.

\bibliography{referencias}

\end{document}

ATENÇÃO! Lembre-se de alterar a cor mycolorlinks de acordo com as suas configurações.

O arquivo .bib referencias que este código chama é dado por

@article{BoninStefan,
	Title = {Podolsky electromagnetism at finite temperature: Implications on the Stefan-Boltzmann law},
	author = {C A Bonin and R Bufalo and B M Pimentel and G E R Zambrano},
	journal = {Phys. Rev. D},
	volume = {81},
	number = {2},
	pages = {025003(1)-025003(6)},
	year = {2010},
	doi = {dx.doi.org/doi:10.1103/PhysRevD.81.025003}}
	
@article{montesino,
	author = {M Montesinos and E Flores},
	journal = {Rev. Mex. Fis.},
	pages = {29-36},
	title = {{S}ymmetric energy-momentum tensor in {M}axwell, {Y}ang-{M}ills, and {P}roca theories obtained using only {N}oether’s theorem},
	volume = {52},
	doi = {rmf.smf.mx/pdf/rmf/52/1/52_1_29.pdf},
	number ={1},
	year = {2006}}

É a entrada doi = {...} que produz o efeito desejado.

Note que não necessariamente precisa ser o doi do arquivo, podendo ser apenas o link de origem.

O mesmo ocorre no caso da opção alf-article-links

Observação: Você pode alternar entre as opções num e num-article-links apenas alterando a opção no pacote abntex2cite e trocando a entrada doi por url. O mesmo vale para alf e alf-article-links.

Para detalhes sobre estilos bibliográficos, veja aqui

Links Externos

Clone this wiki locally