abntex / abntex/abntex2

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

Aperta
#200 7 commenti 1 reazione 0 assegnatari Vedi su GitHub
ok no biblatex
Lingua principale
TeX
Stelle
1.1k
Fork
223
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

## 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.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.