Como reduzir o espaçamento entre linhas na bibliografia biblatex de parágrafo único com um tamanho de fonte pequeno

Como reduzir o espaçamento entre linhas na bibliografia biblatex de parágrafo único com um tamanho de fonte pequeno

Estou tentando criar uma bibliografia compactada de um único parágrafo usando biblatex, como emesta resposta. Eu também gostaria de tornar a fonte um pouco menor que o tamanho da fonte principal do documento. Estou fazendo isso definindo \bibfont; no entanto, isso produz algo que parece espaçamento duplo, mas eu quero apenas espaçamento simples. Eu pensei que

\renewcommand*{\bibfont}{\fontsize{5pt}{7pt}\selectfont}

cuidaria disso porque \fontsizetambém deveria definir o \baselineskipvalor. Alguém sabe por que tenho um espaçamento entre linhas tão grande na bibliografia e como posso reduzir esse espaçamento para algo que se pareça com o espaçamento simples normal?

\begin{filecontents*}{\jobname.bib}
@article{a1,
  author = {Smith, Jane},
  journal = {Nature},
  volume = {7},
  pages = {201--204},
  year = {1999},
}
@article{a2,
  author = {Smith, Jane},
  journal = {Nature},
  volume = {7},
  pages = {201--204},
  year = {2000},
}
@article{a3,
  author = {Smith, Jane},
  journal = {Nature},
  volume = {7},
  pages = {201--204},
  year = {2001},
}
@article{a4,
  author = {Smith, Jane},
  journal = {Nature},
  volume = {7},
  pages = {201--204},
  year = {2002},
}
@article{a5,
  author = {Smith, Jane},
  journal = {Nature},
  volume = {7},
  pages = {201--204},
  year = {2003},
}
\end{filecontents*}
\documentclass{article}

\usepackage[american]{babel}

\usepackage{csquotes}

\usepackage[backend=biber,
  style=authoryear-comp,
  maxcitenames=2,
  maxnames=1,
  minnames=1,
  firstinits=true]{biblatex}

\addbibresource{\jobname.bib}

\renewcommand*{\bibfont}{\fontsize{5pt}{7pt}\selectfont}

\defbibenvironment{bibliography}
  {}
  {}
  {\addspace}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

Imagem mostrando o grande espaçamento entre os itens da bibliografia

Responder1

A questão é que, se o modo horizontal não for encerrado no ambiente bibliográfico, o valor de \baselineskipreverte para o que está em outras partes do documento. Isto é discutido emesta respostaparaReduza o espaçamento entre linhas ao usar tamanho de fonte menor em um ambiente.

Você pode finalizar o parágrafo (ou seja, encerrar o modo horizontal e forçar a quebra do material em linhas) colocando \endgrafna <end code>parte do \defbibenvironmentcomando:

\defbibenvironment{bibliography}
  {}
  {\endgraf}
  {\addspace}

Você tem que usar \endgrafaqui em vez de \par, caso contrário você receberá um erro (vejaQuando é melhor usar \par do que \endgraf?para alguma discussão sobre as diferenças entre \pare \endgraf).

Aqui está o MWE completo:

\begin{filecontents*}{\jobname.bib}
@article{a1,
  author = {Smith, Jane},
  journal = {Nature},
  volume = {7},
  pages = {201-204},
  year = {1999},
}
@article{a2,
  author = {Smith, Jane},
  journal = {Nature},
  volume = {7},
  pages = {201-204},
  year = {2000},
}
@article{a3,
  author = {Smith, Jane},
  journal = {Nature},
  volume = {7},
  pages = {201-204},
  year = {2001},
}
@article{a4,
  author = {Smith, Jane},
  journal = {Nature},
  volume = {7},
  pages = {201-204},
  year = {2002},
}
@article{a5,
  author = {Smith, Jane},
  journal = {Nature},
  volume = {7},
  pages = {201-204},
  year = {2003},
}
\end{filecontents*}
\documentclass{article}

\usepackage[american]{babel}

\usepackage{csquotes}

\usepackage[backend=biber,
  style=authoryear-comp,
  maxcitenames=2,
  maxnames=1,
  minnames=1,
  firstinits=true]{biblatex}

\addbibresource{\jobname.bib}

\renewcommand*{\bibfont}{\fontsize{5pt}{7pt}\selectfont}

\defbibenvironment{bibliography}
  {}
  {\endgraf}
  {\addspace}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

E aqui está a saída resultante com algo que parece um espaçamento entre linhas simples:

insira a descrição da imagem aqui

informação relacionada