
Я пытаюсь создать сжатую библиографию из одного абзаца, используя biblatex
, как вэтот ответ. Я также хотел бы сделать шрифт немного меньше основного размера шрифта документа. Я делаю это, устанавливая \bibfont
; однако, это создает что-то похожее на двойной интервал, но мне нужен только одинарный интервал. Я думал, что
\renewcommand*{\bibfont}{\fontsize{5pt}{7pt}\selectfont}
позаботится об этом, поскольку \fontsize
предполагается, что он также устанавливает \baselineskip
значение. Кто-нибудь знает, почему у меня такой большой межстрочный интервал в библиографии, и как мне уменьшить этот интервал до чего-то, что будет выглядеть как обычный одинарный интервал?
\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}
решение1
Проблема в том, что если горизонтальный режим не завершен в библиографической среде, то значение \baselineskip
возвращается к тому, что было в другом месте документа. Это обсуждается вэтот ответкУменьшите межстрочный интервал при использовании шрифта меньшего размера в среде.
Вы можете завершить абзац (т. е. завершить горизонтальный режим и принудительно разбить материал на строки), вставив \endgraf
в <end code>
часть \defbibenvironment
команды:
\defbibenvironment{bibliography}
{}
{\endgraf}
{\addspace}
Здесь необходимо использовать \endgraf
вместо \par
, в противном случае возникнет ошибка (см.Когда лучше использовать \par, чем \endgraf?для некоторого обсуждения различий между \par
и \endgraf
).
Вот полный текст MWE:
\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}
А вот итоговый вывод с чем-то вроде одинарного межстрочного интервала: