abntex / biblatex-abnt

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

Espaço entre entradas nas referências = 1 linha em branco #66

Closed douglasrizzo closed 3 years ago

douglasrizzo commented 3 years ago

A NBR 6023 2018 menciona que o espaço entre duas entradas nas referências deve ser o equivalente a uma linha em branco. Eu criei isso neste pull request colocando o valor de \bibitemsep = \baselineskip.

douglasrizzo commented 3 years ago

Um problema que eu vejo com esse método é que um usuário pode alterar o valor de \baselineskip no documento dele e isso alteraria o espaço entre as referências. Mas, em teoria, a definição de \baselineskip é exatamente para esses casos.

douglasrizzo commented 3 years ago

Uma outra coisa que eu tive que fazer pra conseguir o espaçamento de uma linha simples em um documento de minha autoria foi chamar \linespread{1} antes de \printbibliography. Se houvesse uma forma de fazer com que o comando \printbibliography fizesse algo assim automaticamente, isso padronizaria o espaçamento entre referências para todos os usuários, mas talvez deixasse as coisas inflexíveis para quem quisesse fazer alguma customização.

image

dbmrq commented 3 years ago

Muitíssimo obrigado pela ajuda! Já fiz o merge das outras PR. No caso dessa aqui, acho melhor fazer o que você falou nesse último comentário. Daria pra fazer isso editando o comando \bibsetup, como eu fiz aqui:

https://github.com/abntex/biblatex-abnt/blob/e8400857bc7eb09c9849ab83b694aabdca675351/latex/bbx/abnt.bbx#L42-L43

Só que eu salvo o comando original, adiciono a ele o comando \raggedright e depois defino a opção justify que volta pro comando original. Então teria que fazer essa mudança antes de salvar o comando original, logo antes dessa primeira linha aí em cima. Se quiser fazer isso eu agradeço! Senão vou deixar aqui aberto pra me lembrar quando eu tiver tempo.

douglasrizzo commented 3 years ago

Eu vou colocar os comandos de formatação da bibliografia dentro do \bibsetup e descobrir como salvar os valores originais que eu altero, para recuperá-los depois Vou mandando alguns commits e, quando der certo, eu aviso

douglasrizzo commented 3 years ago

Eu vi a forma como você fez o texto alinhado à esquerda ou justificado e pensei se não seria possível fazer do jeito abaixo. Ao invés de salvar o comando e revertê-lo caso justify=true, podemos fazer o append ao \bibsetup original apenas se justify=false.

% Justify text >>>2
\DeclareBibliographyOption{justify}[false]{%
  % \ExecuteBibliographyOptions{block=space}%
  \appto{\bibsetup}{%
    \raggedright%
  }
}%
% <<<2

Digo isso porque, assim, eu consigo criar uma nova opção para aplicar o novo espaçamento entre linhas e fazer o append ao \bibsetup caso essa opção seja verdadeira.

% apply NBR 6023 2018 line spacing to the bibliography >>>2
\DeclareBibliographyOption{2018spacing}[true]{%
  \appto{\bibsetup}{%
    \linespread{1}%
    \setlength{\bibitemsep}{\baselineskip}%
  }
}%
% <<<2
douglasrizzo commented 3 years ago

Veja se a forma como eu implementei a formação faz sentido.

dbmrq commented 3 years ago

Parece bom! Eu não estou conseguindo testar o código agora… fazendo desse jeito, 2018spacing=false gera mesmo o comportamento antigo?

Talvez seja melhor fazer uma opção oldspacing que é falsa por padrão, aí o funcionamento seria igual o da justify está agora (além do nome ficar mais bonitinho, rs.).

Mas dá uma olhada e confirma se as duas opções estão funcionando corretamente por padrão e se também dá tudo certo quando elas são desativadas. Se estiver funcionando direitinho me fala que eu já faço o merge.

Obrigado!

douglasrizzo commented 3 years ago

Beleza, vou fazer mais testes e te retorno.

douglasrizzo commented 3 years ago

Eu troquei o 2018spacing por oldspacing e configurei os seguintes comportamentos pra esse comando (assim como o justify, que eu alterei para facilitar a criação do oldspacing):

Como o padrão é o usuário não passar nenhuma das opções, então o comportamento padrão é:

dbmrq commented 3 years ago

Uau, e você até colocou meus foldmarkers do Vim bonitinhos! 😍

Agora ficou perfeito, muito obrigado pela ajuda!

douglasrizzo commented 3 years ago

Eu nem sabia o que eram foldmakers, fiz tudo por reconhecimento de padrões. Obrigado por aceitar.

dbmrq commented 3 years ago

Usando o Vim com as configurações certas, o arquivo fica assim e dá pra abrir ou fechar cada seção. 😉

Captura de Tela 2020-07-25 às 13 56 17