abntex / biblatex-abnt

:books: Estilo para BibLaTeX compatível com as normas da ABNT
126 stars 27 forks source link

Data em Livro e Artigo #73

Closed SdotVdot closed 1 year ago

SdotVdot commented 3 years ago

Problema/Erro

Para reportar seu problema forneça as informações abaixo:

Qual o sistema operacional e versão que está utilizado? Mac OS Big Sur Qual versão do latex está utilizando? pdfTeX 3.14159265-2.6-1.40.21 (TeX Live 2020) Você está utilizando alguma personalização? Qual?

Descrição do problema

No MWE que disponibilizo há uma citação a um livro e uma citação a um artigo. Comportamento desejado na lista de referências: Livro: a data deveria ser apenas o ano. Artigo: a data deveria ser o mês e o ano.

Comportamento observado: Livro: a data mostra dia, mês e ano. Artigo: a data mostra dia, mês e ano.

Não-solução: Modificar as entradas .bib de modo que a entrada do livro contenha apenas ano e a de artigo contenha apenas mês e ano não é uma solução aceitável. O próprio estilo deveria ser capaz de identificar o tipo de entrada e fazer o ajuste necessário.

MWE

\documentclass[12pt]{scrartcl}
\usepackage[brazil]{babel}
\usepackage[
backend = biber,
% style=nejm,
style    = abnt,           % Sistema alfabético
% style    = abnt-numeric,   % Sistema numérico
% style    = abnt-ibid,      % Notas de referência,
% date = year,
% natbib = true
]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{deTal:1990,
author = {de Tal, Fulano},
title = {{Fulanices}},
publisher = {Editora Fulano},
date = {2000-01-01},
address = {São Paulo, SP},
}

@article{deTal:2012,
author = {de Tal, Fulano},
title = {{Fulano faz Fulanices?}},
journal = {Fulanais das Fulanices},
volume = {76},
number = {2},
pages = {582--595},
date = {2012-10-01},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\title{Avanços em Fulanices}
\author{Beltrano}

\date{}
\begin{document}
\maketitle

Os estudos seminais de fulanices podem ser encontrados em~\cite{deTal:1990} e também em~\cite{deTal:2012}.

\section*{Referências Bibliográficas} % (fold)
\label{sec:referencias_bibliograficas}

\printbibliography[heading=none]

% section referencias_bibliograficas (end)
\end{document}
stale[bot] commented 3 years ago

Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

dbmrq commented 3 years ago

Vou olhar assim que possível. Obrigado!

leonartex commented 1 year ago

Esse é um pedido extremamente específico e eu não consegui identificar em nenhum lugar onde a NBR 6023:2018 estabelece que livros devam apresentar apenas o ano e artigos o mês e o ano. Porém, criei as opções para permitir você configurar se assim quiser:

\DeclareBiblatexOption{global, type, entry}[boolean]{dateyear}[true]{%
\renewbibmacro*{date}{\mkdaterangeyear{}}%
}%

\newrobustcmd*{\mkdaterangeyearmonth}[1]{%
\begingroup
  \clearfield{yeardivision}%
  % \clearfield{#1month}%
  \clearfield{day}%
  \clearfield{hour}%
  \clearfield{minute}%
  \clearfield{second}%
  \clearfield{timezone}%
  \clearfield{endyeardivision}%
  % \clearfield{#1endmonth}%
  \clearfield{endday}%
  \clearfield{endhour}%
  \clearfield{endminute}%
  \clearfield{endsecond}%
  \clearfield{endtimezone}%
  \ifdaterangesequal{#1}{#1end}
    {\clearfield{#1endmonth}
      \clearfield{#1endyear}}
    {\ifdateyearsequal{#1}{#1end}
      {\blx@imc@clearfield{#1endyear}}
      {}%
    }%
  \mkdaterangefull{long}{#1}%
\endgroup}
\DeclareBiblatexOption{global, type, entry}[boolean]{datemonth}[true]{%
\renewbibmacro*{date}{\mkdaterangeyearmonth{}}%
}%

Aí no seu preâmbulo você deve adicionar:

\ExecuteBibliographyOptions[book]{dateyear}
\ExecuteBibliographyOptions[article]{datemonth}

A opção dateyear é totalmente desnecessária. O biblatex já apresenta a opção date=year, porém, adicionei a opção para manter o mesmo padrão com datemonth.

Irei realizar o PR para dar o merge daqui a pouco. Aí creio que esse issue possa ser considerado concluído e finalizado.

Obs.: @dbmrq, se você imaginar algum nome melhor para as opções, ou se devo adicionar apenas a datemonth, é só falar.

leonartex commented 1 year ago

Fui testar e na verdade o date=year não funciona através do \ExecuteBibliographyOptions? Então se pá realmente é necessária a opção dateyear.

leonartex commented 1 year ago

Descobri que essa abordagem fica bugada caso a data seja um período. Vai demorar um pouco para eu commitar (no pior dos caso commito com o bug mesmo, e aí alerto na documentação)

leonartex commented 1 year ago

Eu vou fechar esse issue, já que acredito que o meu PR resolveu esse problema, porém, se tu achar que é melhor mudar alguma coisa nas options, como o nome usado, é só me avisar, @dbmrq.