Using \showthe\medskipamount
will produce the answer:
6.0pt plus 2.0pt minus 2.0pt.
\medskipamount
is a "rubber length", i.e., it can be stretched (plus
) or shrunk (minus
) by a certain amount. (This is useful for, e.g., stretching page contents so that the last text line will be positioned exactly at the bottom margin.)
\medskipamount
is not defined by article.cls
, but part of the LaTeX kernel; its definition can be found in section 16.5 "Vertical spacing" of source2e.
The command
\printbibliography[heading=<heading>,...]
doesn't print anything when the bbl
file contains no entries. If it's cited entries in the bbl
file you want to consider, then use a category. The command
\printbibliography[heading=<heading>,category=<category>,...]
won't print anything provided that <category>
is empty and the additional options settings in ...
exclude check
and filter
. The example below considers the article
document class. Its default bibliography
heading doesn't issue a page break, but we can redefine it using \defbibheading
. Default heading definitions for the standard, KOMA-script and memoir document classes can be found in biblatex.def
.
\documentclass{article}
\usepackage[defernumbers]{biblatex}
% add every cited article to a category
% (nb: this excludes entries accessed via \nocite)
\DeclareBibliographyCategory{cited}
\AtEveryCitekey{\addtocategory{cited}{\thefield{entrykey}}}
% define bibliography heading that issues a page break
\defbibheading{bibliography}[\refname]{%
\clearpage
\section*{#1}%
\markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}}
\addbibresource{biblatex-examples.bib}
\begin{document}
Filler text.
% More filler text \parencite{companion}.
\printbibliography[heading=bibliography,title={Works cited},category=cited]
\end{document}
Use of \AtEveryCitekey
prints a bibliography only for explicitly cited entries, excluding those accessed via \nocite
. To consider all entries in the bbl
file that would otherwise be printed use:
\makeatletter
\AtDataInput{\iftoggle{blx@skipbib}{}{\addtocategory{cited}{\thefield{entrykey}}}}
\makeatother
An empty \printbibliography
generates a warning in the log. To avoid this you can use a boolean flag to indicate citations.
\documentclass{article}
\usepackage[defernumbers]{biblatex}
\newbool{anycited}
\AtEveryCitekey{%
\ifbool{anycited}{}{\global\booltrue{anycited}}}
\newrobustcmd*{\printworkscited}{%
\ifbool{anycited}{\printbibliography}{\printnothing}}
\def\printnothing[#1]{}
\defbibheading{bibliography}[\refname]{%
\clearpage
\section*{#1}%
\markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}}
\addbibresource{biblatex-examples.bib}
\begin{document}
Filler text.
% More filler text \parencite{companion}.
\printworkscited[heading=bibliography,title={Works cited}]
\end{document}
With this document, biber will issue a warning about no citations. There isn't much you can do about that. Hooking \printbibliography
into \end{document}
might seem convenient, but you are forcing a biber run onto your users. This wouldn't make much sense to me when writing an essay that doesn't use any bibliographic data. You can probably side-step some of these issues with BibTeX, at the cost of many biblatex features.
Best Answer
If you use
natbib
the two parameters you need to change the space between the various entries and the fonts are\bibsep
and\bibfont
. You can change them usingIn
biblatex
the equivalent parameters are\bibitemsep
and\bibfont
.