abnTeX2 com BibLaTeX emite título "Bibliografia" ao invés de "Referências"
- Lenguaje dominante
- TeX
- Estrellas
- 1.1k
- Forks
- 223
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
## abnTeX2 com BibLaTeX emite título "Bibliografia" ao invés de "Referências"
Sistema Operacional: Fedora 28
`latex --version`: pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017)
Versão do abnTeX2: 2016/02/26 v-1.9.6
Versão do Memoir: 2016/05/16 v3.7f
Versão do BibLaTeX: 2016/09/17 v3.6
Versão do Biber: 2.6
Customização: na verdade, descobri o problema por estar escrevendo uma customização ([uffstex](https://github.com/ccuffs/uffstex)).
### Descrição do problema
Apesar do abnTeX2 emitir o comando `\renewcommand{\bibname}{Refer\^encias}` dentro do `\addto\captionsbrazil`, ao utilizá-lo com o BibLaTeX o valor do comando `\bibname` não é respeitado. E por mais que executemos o `\renewcommand` novamente, nada muda. Não consegui descobri porquê... há várias discussões na internet sobre Memoir + BibLaTeX, mas nada muito conclusivo. Pode ser algo com o Babel também, mas não faço ideia.
Além disso, vale notar que o abnTeX2 implementa o título das referências através de um `\renewcommand{\bibsection}`. Porém, a documentação do BibLaTeX diz para utilizarmos o comando `\defbibheading` (apesar de não relacionada, veja o início da primeira resposta [dessa pergunta](https://tex.stackexchange.com/questions/268904/memoir-3-7e-treating-bibliography-like-a-section-not-a-chapter); na documentação mais recente, entretanto, a seção que explica isso é 3.14.2).
### MWE
Um exemplo de código "mínimo" pra reproduzir o problema é o seguinte:
```tex
\documentclass[12pt,openright,twoside,a4paper,brazil]{abntex2}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=abnt]{biblatex}
\addbibresource{refs.bib}
\autor{Autor}
\titulo{Título}
\instituicao{Instituição}
\orientador{Orientador}
\local{Local}
\data{\today}
\begin{document}
\pretextual
\imprimircapa
\imprimirfolhaderosto
\pdfbookmark{\contentsname}{toc}
\tableofcontents*
\clearpage
\textual
\chapter{Seção primária}
Segundo \textcite{fulano}...
\postextual
\printbibliography
\end{document}
```
E então no arquivo `refs.bib`:
```
@book{fulano,
author={Fulano},
title={Título},
date={2018-07-23}
}
```
### Melhoria
Para resolver isso, eu precisei fazer o seguinte: defini o comando `\refname` para usar ao invés do `\bibname` (ele é usado em outras classes também) e reimplementei o trecho do `\renewcommand{\bibsection}` com os comandos recomendados pela documentação do BibLaTeX (o conteúdo em si é o mesmo da definição original do abnTeX2).
```tex
\addto\captionsbrazil{
\providecommand*{\refname}{Refer\^encias}
...
}
...
\AtBeginDocument{
\@ifpackageloaded{biblatex}{
\defbibheading{abnt}[\refname]{
\chapter*{#1}
\bibmark
\ifmemoirbibintoc{ % front-end do BibLaTeX
\phantomsection
\addcontentsline{toc}{chapter}{\texorpdfstring{\MakeTextUppercase{#1}}{#1}}
}{}
\prebibhook
}
}{}
}
```
E então executando `\printbibliography[heading=abnt]` resulta no título correto. Porém, desta forma, um `\renewcommand*{\refname}{}` funciona só depois que o Babel executar os comandos especificados dentro do `\captions` (após `\begin{document}`, por exemplo).
Note que executar `\renewcommand{\bibname}{Refer\^encias}` após o `begin{document}` funciona, mas então cada usuário tem que fazer isso (e de acordo com a língua do documento). E fazer isso automaticamente na classe não funciona:
```tex
\AtBeginDocument{
\addto\captionsbrazil{
\renewcommand*{\bibname}{Refer\^encias}
}
}
```
Eu já acho essa solução uma baita gambiarra, mas sem `\addto\captionsbrazil` até tem efeito, só que daí não sei como filtrar pela língua selecionada e estraga a formatação da entrada no sumário.
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.