sexta-feira, 30 de janeiro de 2009

ABNTeX: mudando o nome da seção bibliografia

Já falamos aqui sobre o ABNTeX, lembra? Trata-se de um pacote que pode ser facilmente instalado em sistemas como Windows/Linux/Mac (detalhes sobre a instalação nas distribuições teTeX e MikTeX podem ser encontradas neste artigo) para escrever documentos segundo as normas da ABNT. Existe, no entanto, um problema que vem trazendo um pouco de dor de cabeça a usuários não tão familiarizados com o LaTeX: modificar o nome da seção de referências bibliográficas.

Voltando ao post original, O ABNTeX trata basicamente de combinar as normas da ABNT com a funcionalidade do LaTeX.
A Associaçao Brasileira de Normas Técnicas (ABNT) é a associação que dita as normas que devem ser seguidas por documentos ditos técnicos, tais como dissertações, teses e monografias. (...) Para facilitar então a rotina de construir um documento LaTeX já nas normas da ABNT, um grupo lançou o pacote ABNTeX (...).

Para escrevermos dissertações, teses e monografias somos submetidos a outras normas: as normas locais, pertencentes à instituição que abriga o trabalho. No IFSC, por exemplo, exige-se que a seção com as referências bibliográficas seja nomeada Referências. Por padrão, o ABNTeX a chama de Referências Bibliográficas. Como a classe abnt é bem parecida com a report, deveria funcionar utilizarmos a seguinte macro

\renewcommand{\bibname}{Referências}

Esta macro deve ser inserida no preâmbulo. Para os que não usam o pacote inputenc,

\renewcommand{\bibname}{Refer\^{e}ncias}

No entanto isto não gera efeito nenhum. Nenhum erro é apontado, nem nada: o nome da seção continua sendo Referências bibliográficas. Usando macro para classes tipo book,

\renewcommand{\refname}{Referências}

Mas também não ocorre nada além de um belo erro: veremos a seguir que o padrão pra classe abnt é a macro \bibname.

Há uma última maneira, nada recomendável, que com certeza funciona: alterar um dos arquivos de definições da classe abnt. Como não tenho a instalação do MikTeX aqui comigo, vou passar como deve ser feito em linux (não deve depender de distribuição) [1]. Se você usa MikTeX, continue lendo.

Procure o arquivo abntex-text-pt_BR.def, que deve estar localizado na pasta

/usr/share/texmf/tex/latex/abntex/

Neste arquivo, algumas definições são feitas e dentre elas está o nome da seção de bibliografia. Edite este arquivo como super usuário, ou seja,

sudo emacs abntex-text-pt_BR.def

Após fornecer sua senha de administrador, procure pela linha em que está a seguinte macro.

\providecommand{\ABNTbibliographyname}{\bibname}

Deve ter mais coisas escritas nessa linha, mas ignore. Substitua essa linha por

\providecommand{\ABNTbibliographyname}{Refer\^{e}ncias}

Isso funciona. Mas definitivamente não é a melhor opção.

Para usuários MikTeX, basta localizar o mesmo arquivo em seu sistema e alterar a mesma linha. Feito isso, será necessário atualizar o MikTeX sobre essas mudanças. Para isso, vá em Iniciar/Programas/MikTeX e abra o MikTeX Options. Na primeira das abas, clique no botão Refresh Now.

Originalmente, \providecommand{\ABNTbibliographyname}{\bibname} significa que a macro \bibname deveria alterar o nome da seção. Mas isso não está funcionando. Por isso, estamos deixando fixo o nome da seção como Referências. Seria muito chato ter que alterar este arquivo toda vez que o nome da seção for diferente, mas o que me parece é que trata-se de um bug ainda não resolvido. Se alguém tiver alguma informação adicional, por favor divida conosco.

Nota

[1] Arquivos com extensão cls, def e sty, dentro de ambintes TeX, são arquivos de configuração que independem de plataforma.




13 comentários:

Anônimo disse...

É legal também atualizar a texmf do linux depois de fazer a alteração:

sudo texhash

Anônimo disse...

Mas não é necessário para o caso

Anônimo disse...

Muito legal a ideia Thiago,

Só uma alternativa que pode ser legal, ao invés de alterar o arquivo, basta ao invés de adicionar o comando:

\renewcommand{\bibname}{Referências}
ou
\renewcommand{\bibname}{Refer\^{e}ncias}
ou
\renewcommand{\refname}{Referências}

altere por:
\renewcommand{\ABNTbibliographyname}{Referências}

Abraços

Unknown disse...

Nas normas do meu programa de graduação exigem que eu coloque:

"CAPITULO X" \\
Referências \\
...aqui vem a lita de referencias...

Porém a lista gerada pelo ABNTEXalf fica separado dos meus capítulos. Além disso, ela também não aparece no sumário. Alguém saberia como alterar isso?

Agradecidamente,

Felipe

Italo Maia disse...

Agradecimentos ao Anônimo.
\renewcommand{\ABNTbibliographyname}{Referências} funciona!

Unknown disse...

No meu caso nenhum desses comandos acima funcionou:

\renewcommand{\bibname}{Refer\^{e}ncias}
\renewcommand{\refname}{Refer\^{e}ncias}
\renewcommand{\ABNTbibliographyname}{Refer\^{e}ncias}

Depois de muita luta esse aqui deu certo:

\addto{\captionsbrazil}{% caso use \usepackage[brazil]{babel}
\renewcommand{\bibname}{Refer\^{e}ncias}
}

GSI disse...
Este comentário foi removido pelo autor.
GSI disse...

Muito bom cara! Valeu pela divulgação, sua luta vai ajudar muita gente com esse problema.

Cristiano Luís disse...

% http://comments.gmane.org/gmane.comp.tex.brazilian/17111
% Para alterar o título de Referências Bibliográficas para Referências
\usepackage[english,brazilian]{babel}
\addto\captionsenglish{\renewcommand{\bibname}{Refer\^encias}}
\addto\captionsbrazilian{\renewcommand{\bibname}{Refer\^encias}}

Blog disse...

tenta \gdef\bibname{Referências}

Anônimo disse...

Procurem essa estrutura onde tinha \bibname alterei para Bibliografia como o orientador pediu.
\newenvironment{thebibliography}[1]
{\chapter*{BIBLIOGRAFIA}%
\thispagestyle{empty}
\addcontentsline{toc}{chapter}{BIBLIOGRAFIA}
\@mkboth{BIBLIOGRAFIA}{BIBLIOGRAFIA}%

Anônimo disse...

O COMANDO

\addto{\captionsbrazil}{% caso use \usepackage[brazil]{babel}
\renewcommand{\bibname}{Refer\^{e}ncias}
}

salvou minha vida!! Em 2020!
obrigada pela dica

Anônimo disse...

Aqui o que funcionou foi um com uma pequena alteração dos anteriores:

\addto{\captionsbrazil}{% caso use \usepackage[brazil]{babel}
\renewcommand{\refname}{qualquer nome}
}