AfonsoPortuga / abntex2

Automatically exported from code.google.com/p/abntex2
1 stars 0 forks source link

Caracter & não escapado em urls de referências quando se usa hyperref #80

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Para reproduzir o problema:
1. Uma entrada no bibtex que contenha &
2. Usar hyperref como pacote de url no abntex2cite
3. Citar tal entrada no texto.

Deveria funcionar normalmente mas dá erro na segunda passada do latex (após 
rodar bibtex).

Uma descrição mais detalhada do bug:
http://tex.stackexchange.com/questions/130129/bibtex-texlive-2013-doesnt-escape-
in-url

Conforme exposto no link consegui corrigir o problema adicionando a linha 
abaixo na função filter.url.tex do abntex2-alf.bst:

duplicate$ "&" = {pop$ "\&" } 'skip$ if$

A função então fica assim:

FUNCTION {filter.url.tex}
{s text.length$ #1 + 'url.length :=
 #1 'url.pos := "" 't :=
  {url.pos url.length <}
    {s url.pos #1 substring$
    duplicate$ "_" = {pop$ "\underline{\ }" } 'skip$ if$
    duplicate$ "%" = {pop$ "\%" } 'skip$ if$
    duplicate$ "&" = {pop$ "\&" } 'skip$ if$
    duplicate$ "~" = {pop$ "\~{}" } 'skip$ if$
    duplicate$ "/" = {pop$ "\-/" } 'skip$ if$
    duplicate$ "." = {pop$ "\-." } 'skip$ if$
    duplicate$ "\" = {pop$ "{\textbackslash}" } 'skip$ if$
    t swap$ * 't :=
    url.pos #1 + 'url.pos :=
    }
  while$
t
}

Não sei se isso resolve todos os possíveis problemas com o & nas urls, mas 
acho que sim.

Original issue reported on code.google.com by PauloQuinan on 27 Aug 2013 at 2:59

GoogleCodeExporter commented 9 years ago
Caro PauloQuinan

Obrigado por sua contribuição! Ela já foi incorporado ao código do abnTeX2 
e seu nome incluído à lista dos contribuidores 
(https://code.google.com/p/abntex2/people/list).

Por favor, fique à vontade para continuar contribuindo com o projeto!

Abraços!

Lauro César

PS: apenas uma observação: os dois arquivos .bst evoluem sempre juntos, ou 
seja, tudo o que alteramos em um, alteramos no outro irrestritamente. O LaTeX 
usa o padrão de nomes dos arquivos para identificar a configuração correta, 
por isso temos dois deles: um para citação numérica e outra a autor-ano.

Original comment by laurocesar on 27 Aug 2013 at 12:46

GoogleCodeExporter commented 9 years ago

Original comment by laurocesar on 19 Nov 2013 at 11:56