Try out newly discovered needspace package; it is wonderful...
authorRon Brender <ron.brender@gmail.com>
Sat, 2 Feb 2013 12:39:31 +0000 (07:39 -0500)
committerRon Brender <ron.brender@gmail.com>
Sat, 2 Feb 2013 12:39:31 +0000 (07:39 -0500)
dwarf5/latexdoc/dwarf5.tex
dwarf5/latexdoc/generaldescription.tex

index 6d1bb6d..98aca2f 100644 (file)
@@ -37,6 +37,7 @@ escapeinside={\%*}{*)}     % if you want to add a comment within your code
 % \textregistered is the trademark symbol
 \usepackage[headheight=16pt,paper=letterpaper]{geometry}
 \setlength{\headheight}{15pt}  % avoids warning from latex
+\usepackage{needspace}     % For assuring space remaining on a page
 \usepackage{ifthen}        % For conditional processing
 \usepackage{changepage}    % For odd/even page checks
 \usepackage{epic}          % For eepic package 
@@ -120,6 +121,9 @@ escapeinside={\%*}{*)}     % if you want to add a comment within your code
 % Better naming for the lowest level section header
 \newcommand{\subsubsubsection}[1]{\paragraph{#1.}}
 
+% Issue \clear space if less than n lines remain on page
+\newcommand{\needlines}[1]{\needspace{#1\baselineskip}}
+
 % Reduce vertical space at beginning of a list
 \setlength{\topsep}{0in}
 
@@ -228,6 +232,7 @@ escapeinside={\%*}{*)}     % if you want to add a comment within your code
 \listoftables
 
 \flushleft
+\raggedbottom
 \chapterstyle{section}
 
 \setlength{\parindent}{0pt} 
@@ -245,12 +250,12 @@ escapeinside={\%*}{*)}     % if you want to add a comment within your code
 % Define the levels of sectionality that are numbered.
 \setcounter{secnumdepth}{5}
 \include{introduction}
-\include{generaldescription}            \emptypage
+\include{generaldescription}            %\emptypage
 \include{programscope}                  \emptypage
 \include{dataobject}                    \emptypage
 \include{typeentries}                   \emptypage
-\include{otherdebugginginformation}     \emptypage
-\include{datarepresentation}
+\include{otherdebugginginformation}
+\include{datarepresentation}            \emptypage
 %  The \appendix toggles us into appendix chapters
 \appendix
 \include{attributesbytag}
index f39c2ee..f80e45b 100644 (file)
@@ -882,6 +882,7 @@ able to encode more field offsets in two bytes than can be
 done with
 \doublequote{\livelink{chap:DWOPlit}{DW\-\_OP\-\_lit\textit{n}} \livelink{chap:DWOPplus}{DW\-\_OP\-\_plus}}.}
 
+\needspace{3\baselineskip}
 \item \livetarg{chap:DWOPshl}{DW\-\_OP\-\_shl} \\
 The \livelink{chap:DWOPshl}{DW\-\_OP\-\_shl} operation pops the top two stack entries,
 shifts the former second entry left (filling with zero bits)
@@ -1000,7 +1001,7 @@ the stack by the called expression may be used as return values
 by prior agreement between the calling and called expressions.
 \end{enumerate}
 
-
+\needlines{7}
 \subsubsection{Special Operations}
 There 
 \addtoindexx{DWARF expression!special operations}
@@ -1019,13 +1020,16 @@ Section \refersec{chap:stackoperations}.
 are fairly conventional, but the following
 examples illustrate their behavior graphically.}
 
-\begin{tabular}{rrcrr} 
+\begin{longtable}[c]{rrcrr} 
  &Before & Operation&& After \\
-
+\hline
+\endhead
+\endfoot
 0& 17& \livelink{chap:DWOPdup}{DW\-\_OP\-\_dup} &0 &17 \\
 1&   29& &  1 & 17 \\
 2& 1000 & & 2 & 29\\
 & & &         3&1000\\
+
 & & & & \\
 0 & 17 & \livelink{chap:DWOPdrop}{DW\-\_OP\-\_drop} & 0 & 29 \\
 1 &29  &            & 1 & 1000 \\
@@ -1052,7 +1056,7 @@ examples illustrate their behavior graphically.}
 0&17&\livelink{chap:DWOProt}{DW\-\_OP\-\_rot} & 0 &29 \\
 1&29 & & 1 & 1000 \\
 2& 1000 & &  2 & 17 \\
-\end{tabular}
+\end{longtable}
 
 \section{Location Descriptions}
 \label{chap:locationdescriptions}
@@ -1354,6 +1358,7 @@ logical frame pointer that is computed by adding 64 to the current
 stack pointer (register 31).
 \end{myindentpara}
 
+\needlines{3}
 \livelink{chap:DWOPbregx}{DW\-\_OP\-\_bregx} 54 32 \livelink{chap:DWOPderef}{DW\-\_OP\-\_deref}
 \begin{myindentpara}{1cm}
 A call-by-reference parameter whose address is in the word 32 bytes