abntex / abntex/abntex2

abnTeX2 com BibLaTeX emite título "Bibliografia" ao invés de "Referências"

Abierto
#200 7 comentarios 1 reacción 0 asignados Ver en GitHub
ok no biblatex
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

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.