Stopping bibliography references from breaking / splitting across pages

1,773 views
Skip to first unread message

Ush

unread,
Mar 30, 2006, 11:40:15 PM3/30/06
to LaTeX Users Group
CROSSPOSTED TO comp.text.tex [1] (apologies for that, but I only found
the LaTeX Users Group /after/ posting to comp.text.tex and realised
that some of you might be more familiar with the specific issues)

Hi all,

I can't figure out how to do this. I should point out what I've tried
to find out for myself and the environment I'm working in for a start.

1. I've read the _LaTeX User's Guide & Reference Manual_, 2nd. Ed.,
Lamport, 1985 paying special attention to 4.3 (Bibliography &
Citation), 6.2 (Line & Page Breaking), and Appendix B (The Bibliography
Database)

2. I've also read _The LATEX Companion: 2nd Edition_, Goosens et al
concentrating on 12.3.2 (Customizing the bibliography layout) and
13.5.2 (custom-bib-Generate BIBTEX styles with ease)

I am currently using LyX (1.4.0) to manage a document with an external
Pybliographer (1.2.8) generated bibliography. The document uses the
Document Class "book" and the packages "babel" (to allow the inclusion
of ancient Greek) and "natbib" (to allow the use of an author-date
citation style for a Classics thesis).

The resulting .tex file generated looks something like this (edited for
clarity and brevity):

\documentclass[12pt,english,oneside]{book}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\pagestyle{plain}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\usepackage{verbatim}
\usepackage[authoryear]{natbib}

\makeatletter

% LyX specific LaTeX commands.
\newcommand{\noun}[1]{\textsc{#1}}

% User specified LaTeX commands.
\usepackage{bookman}
\usepackage{geometry}
\geometry{verbose,letterpaper,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in}
\usepackage{setspace}
\doublespacing
\makeatletter

\usepackage[greek,english]{babel}
\usepackage{teubner}
\languageattribute{greek}{polutoniko}

%% hack to get citation styles correct with natbib
\let\citet=\citep

%% stop the bibliographic references being split
%% by eliminating widows and orphans
%%\widowpenalty=10000
%%\clubpenalty=10000
%%\raggedbottom

%% change the citation style
\bibpunct[: ]{(}{)}{}{a}{}{}

\makeatother

\begin{document}

[SNIP MOST OF DOCUMENT BODY]

\begin{singlespace}

\bibliographystyle{catherine}
\bibliography{DissBibAug05}

\end{singlespace}
\end{document}

The bibliography style "catherine.bst" was generated using "latex
makebst" and the bibliography is a Pybliographer exported file
"DissBibAug05.bib".

This is a link to a screenshot showing how the references in the
bibliography break or split across pages:
http://ofeeley.freeshell.org/brokeref.png

I've tried (I think mistakenly now) to set the penalty for widows and
orphans high (but that only applies to /single/ lines apparently?) and
to use \raggedbottom, but this has no apparent affect.

I can't see how I could add commands like \pagebreak or \newpage into
the .tex file, because all there is there is a call to include the
bibliography.

Can anyone suggest how I can force LaTeX to /not/ under any
circumstances break a reference in the bibliography, or alternatively
how I could manually fix the problem each time? I'd rather that it
were the former as I don't like the idea of having to intervene
manually, and this is something that I'd like to be able to show a less
technical user how to fix.

Thanks for any help that you can offer,

Oisin Feeley

1.
http://groups.google.com/group/comp.text.tex/browse_thread/thread/0eb52d199f7ae3c6

Jyotirmoy Bhattacharya

unread,
Mar 31, 2006, 1:22:38 AM3/31/06
to latex...@googlegroups.com
I am a newcomer to LaTeX and I haven't tried this. With those caveats, here is what I think should work:

If you want to manually intervene you can change the .bbl file that bibtex produces. It is just a regular LateX file. Putting \filbreak after every \bibitem will lead to pagebreaks occuring only between items unless that would be too ugly. Or you can put a \pagebreak after the offending entry. You can stop breaking of entries altogether by putting each of them into a \vbox of its own.
Run LaTex, run BibTeX, edit the .bbl file and then run LaTeX again as required.

The way to automate this would be to redefine the \bibitem command itself.


Reply all
Reply to author
Forward
0 new messages