0

currently iam formatting my bibliography. If an entry cannot be placed on the end of a page without a pagebreak (the citation would be splitted on two pages) latex automatically induces a pagebreak. I thik, it looks a bit weird if the pages are not used to an equal extent.

Though some solutions are visible in google, I would like to ask if you know a very simple way to change it , i.e. use the full page and split entries to two pages.

Kind regards,

\documentclass[12pt,twoside, openany]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} % Output font encoding for international characters
\usepackage[greek,english]{babel}
\usepackage{indentfirst} % Identation after chapter header
\usepackage{graphicx}
\graphicspath{{images/} }
\usepackage[labelfont={bf},
        %belowskip=-10pt,
           %aboveskip=0pt
        singlelinecheck=false
       ]{caption}                           
\usepackage{romannum}
\usepackage[toc,page]{appendix}
\usepackage{tabu}
\usepackage{xltabular}
\usepackage{booktabs,tabularx}
\usepackage{pgfplots}
\usepackage{boldline}
\usepackage{epstopdf}
\usepackage{multirow}
\usepackage{amsmath}
\usepackage{bm}
\usepackage{enumitem}
\usepackage{float}
\usepackage{wrapfig}
\usepackage{subfigure}
\usepackage{xcolor}
\usepackage{array}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\usepackage{comment}
\usepackage{textgreek}
\usepackage{parskip}
\setlength{\parskip}{\baselineskip}

\usepackage{url}
\urlstyle{same}
\usepackage[backend=biber,natbib=true,sorting=none,isbn=false,eprint=false,
doi=false,style=ieee,dashed=false,citestyle=numeric-comp]{biblatex}
\AtEveryBibitem{\clearfield{number}}
\addbibresource{Reference.bib}
\usepackage[intoc]{nomencl} % List of symbols
\usepackage{makeidx}
\makenomenclature
\renewcommand{\nomname}{List of Abbreviations}

\usepackage{setspace}
\usepackage{titlesec}
\titlespacing*{\section} % Spacing before/after (sub-) section titles
{0pt}{16pt plus 2pt minus 2pt}{18pt plus 2pt minus 2pt}
\titlespacing*{\subsection}
{0pt}{12pt plus 2pt minus 2pt}{10pt plus 2pt minus 2pt}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
\titleformat{\chapter}[hang]{\Huge\bfseries}{\thechapter{. }}{0pt} 
{\Huge\bfseries} % Title without "Chapter" but Nr. in front

\usepackage{amsmath}
\usepackage{geometry}


\usepackage{siunitx}
\usepackage[acronym,toc]{glossaries}              % use glossaries-package


\setlength{\glsdescwidth}{15cm}

\newglossary[slg]{symbolslist}{syi}{syg}{List of Symbols} % create add. symbolslist


\glsaddkey{unit}{\glsentrytext{\glslabel}}{\glsentryunit}{\GLsentryunit}{\glsunit}{\Glsunit}{\GLSunit}

\makeglossaries                                   % activate glossaries-package


\renewcommand*{\glossaryheader}{%  Change the table header
%\bfseries Sign & \bfseries Description & \bfseries Unit \\
%\hline
\endhead}
\renewcommand*{\glossentry}[2]{%  Change the displayed items
\glstarget{##1}{\glossentryname{##1}} %
& \glossentrydesc{##1}% Description
& \glsunit{##1}  \tabularnewline
 }
 }



\geometry{
paper=a4paper, % Change to letterpaper for US letter
inner=2.5cm, % Inner margin
outer=2.5cm, % Outer margin
bindingoffset=.5cm, % Binding offset
top=1.5cm, % Top margin
bottom=1.5cm, % Bottom margin
headheight=15pt 
}

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE,RO]{}
\fancyhead[RE,LO]{\rightmark}
\fancyfoot[RE,LO]{}
\fancyfoot[CE,CO]{\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
%\setlength{\headsep}{0.4 cm} % Spacing between header and textblock below
\setlength{\footskip}{15pt}
\usepackage[bottom]{footmisc}
\fancyheadoffset{0pt}
\fancyfootoffset{0pt}
%\geometry{headheight=29.54742pt}
%\setlength{\headheight}{30pt}

%\setlength{\footnotesep}{0.5 cm}
4
  • I think setting the option \raggedbottom in the document causes Latex to not try so hard to make nice paragraphs. I use this in my documents to get even space between paragraphs, which otherwise tend to be stretched to fit if the last paragraph is moved over to next page and not just split. Maybe it would work for your problem too, I haven't checked my bibliography for this effect specifically.
    – Plergux
    Commented Oct 20, 2020 at 10:24
  • @Plergux Unfortunately, it does not work for me.
    – Niklas
    Commented Oct 20, 2020 at 10:31
  • Even \flushbottom does not stretch the content over a whole page. How can I do that ...
    – Niklas
    Commented Oct 20, 2020 at 10:39
  • Would adjusting the bibitemsep not be easier on the eye?
    – Fintan
    Commented Oct 20, 2020 at 11:49

1 Answer 1

0

Normally, breaks are allowed in bibitems, but not between the first and second line, and they are discouraged before the final line. So a two-line bibitem will not break. You can insert the settings

\clubpenalty=0 \widowpenalty=0

to allow those breaks without penalty. If some package prevents all linebreaks, add \interlinepenalty=0 to the two above.

If you use an explicit thebibliography environment, it is easy to insert the settings, but it is more difficult for \bibliography or \printbibliography. The cleanest way would be using the facilities of some package (for example, natbib has \@bibsetup), but here is an ugly hackish way

\let\prevTheBib\thebibliography
\renewcommand\thebibliography[1]{\prevTheBib{#1}%
   \clubpenalty=0 \widowpenalty=0\relax}

If the package is biblatex, it should be enough to change \bibsetup (which is a macro, not a declaration hook as I thought). The (or a) normal \bibsetup is

\bibsetup ->\interlinepenalty =5000\relax \widowpenalty =10000\relax
  \clubpenalty =10000\relax \raggedbottom \frenchspacing \biburlsetup 

which gives ALL your problems! Both preventing breaks and making the bottom ragged. So change it:

\renewcommand\bibsetup{\clubpenalty=0 \widowpenalty=0 \interlinepenalty=0 
      \flushbottom \frenchspacing \biburlsetup}

Finally, after comments, you want flush bottom but set a rigid \bibitemsep, leaving no flexibility in the vertical list. On whatever page looks ragged-bottom, you should get a warning about

Underfull \vbox (badness 10000) has occurred while \output is active

meaning the page isn't intentionally ragged, but another line of text can't fit on it, and the text can't adjust position. Try a setting of

\setlength\bibitemsep{0.75\baselineskip plus 1pt minus 1pt}

instead. The default \bibitemsep of 0pt is more problematic, but you could try

\setlength\bibitemsep{0pt plus 0.1pt}

Achieving flush bottoms without any flexibility falls into the realm of "typesetting on a grid", and everything on the page has to be carefully crafted to occupy a multiple of \baselineskip.

16
  • Is that not the exact opposite? That is to say, the high number of \interlinepenalty basically says not to break the entries (paragraphs) ever? If he wants to break the paragraphs would it not be better to use a low number (i.e. lower penalty)?
    – Plergux
    Commented Oct 20, 2020 at 11:02
  • Yeah, it does not work guys. I just want to have the content of a page in the bibliography to be stretched to a maximum so that I use the complete page foreseen, without blank lines at the bottom.
    – Niklas
    Commented Oct 20, 2020 at 11:04
  • @Ptergux that's how I read the question. Commented Oct 20, 2020 at 11:12
  • Sorry about the reverse answer. Replaced now. Commented Oct 20, 2020 at 11:30
  • No problem, but it does not work. I try to play with the Bibitem seperation ... I want the last word to be at the lowest position possible in my document.
    – Niklas
    Commented Oct 20, 2020 at 11:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .