I'm trying to add multipages tabulars with counters in tabular tail. I first tried longtable but as it generates head and tail before the table content I can't use counters. So I used supertable who handle this very well. But I also want to control the breaking of this table as lines works by groups which are not breakable (as much as possible). I tried \nopagebreak, \\* but none seems to work in supertabular environnement.
Here an example where I want that my 2-lines groups not to be breakable :
\documentclass[a4paper,12pt]{book}
\usepackage{helvet}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage{supertabular}
\usepackage{lipsum}
\begin{document}
\newcounter{MyCounter}
\lipsum[1]
\tablehead{
\hline
\normalsize\textbf{\uppercase{Name}} & \normalsize\textbf{\uppercase{Qty}} \\
}
\tabletail{
\hline
\textbf{\uppercase{Total}} & \arabic{MyCounter} \\
\hline
}
\begin{supertabular}{|l|c|}
%% This part is repeated X times and is not breakable
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\hline
\addtocounter{MyCounter}{4} MyLabel & 4 \\
SubLabel & \\
\end{supertabular}
\end{document}
So my question how can't I get counters and page break control on multipage tables?
Thanks.
EDIT : My real document to ease support.
\documentclass[a4paper,10pt]{book}
\usepackage{helvet}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage[margin=0.5cm,headheight=7.7cm,headsep=0.5cm,includehead,includefoot]{geometry} %pas par defaut
\usepackage{fancyhdr} %pas par defaut
\usepackage{lastpage} %pas par defaut
\usepackage{array} %pas par defaut?
\usepackage{multirow} %pas par defaut
\usepackage[draft]{graphicx} %pas par defaut
\usepackage{eurosym} %pas par defaut
\usepackage[breakwords]{truncate} %pas par d?aut
\usepackage[table]{xcolor} %pas par defaut
\usepackage{supertabular} %pas par defaut
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}m{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\renewcommand{\familydefault}{\sfdefault}
\renewcommand{\headrulewidth}{0pt}
\pagestyle{fancy}
\fancyhead[CE,CO,LE,LO,RE,RO]{} %% clear out all headers
\fancyhead[C]{
\begin{tabular*}{20cm}{p{3.2cm}p{3.2cm}p{4.2cm}p{3.2cm}p{3.2cm}}
\multicolumn{1}{l} {
\begin{tabular}{l}
\large\textbf{Client name} \\
\footnotesize{Client addr}\\
\footnotesize{ZIPCode City}\\
\end{tabular}
} & \multicolumn{2}{l}{\multirow{3}[2]{*}{
\includegraphics[width=4.8cm,height=3cm,keepaspectratio]{path/img.ext}
}} & \multicolumn{2}{r}{
\begin{tabular}{r}
\uppercase{FACTURE : invoiceNumber} \\
\uppercase{DU : date}
\end{tabular}
} \\
& & & & \\
\multicolumn{1}{l}{
\begin{tabular}{l}
\footnotesize{somedata de value\euro} \\
\footnotesize{TVA INTRA : administrationdata}\\
\footnotesize{Code APE : administrationdata}
\end{tabular}
} & & \multicolumn{2}{l}{\multirow{4}[20]{*}{
\begin{tabular}{c}
\includegraphics[width=6.4cm,height=3cm,keepaspectratio]{\detokenize{path/img.ext}}
\end{tabular}
}} & \\
& & & & \\
\multicolumn{1}{l}{
\begin{tabular}{l}
\large\textbf{Facturé à:}
\end{tabular}
} & & & & \\
& & & & \\
\multicolumn{2}{l}{
\begin{tabular}{l}
\textbf{\uppercase{company name}} \\
\small\uppercase{company addr} \\
\small{ZIPCode City}
\end{tabular}
} & \multicolumn{3}{l}{
\begin{tabular}{l}
\small{\textbf{Pour tout courrier : }}\\
\small{Company name addr} \\
\small{ZIPCode City}
\end{tabular}
} \\
& & & & \\
\multicolumn{2}{l}
{
\begin{tabular}{l}
\textbf{CIP :} uniqID \\
\\
\textbf{Compte débiteur :} bank account data
\end{tabular}
} & \multicolumn{3}{l}
{
\begin{tabular}{l}
\small{\textbf{En cas de retour de marchandise : }}\\
\small{Company name addr} \\
\small{ZIPCode city}
\end{tabular}
}
\end{tabular*}
}
\fancyfoot[CE,CO,LE,LO,RE,RO]{} %% clear out all footers
\fancyfoot[C]{
\textbf{Page \thepage /\pageref{LastPage}}
}
\begin{document}
\tablehead{
\hline
\cellcolor{black} & \cellcolor{black} & \cellcolor{black} & \cellcolor{black} & \cellcolor{black} & \cellcolor{black} & \cellcolor{black} \\
\cellcolor{black} & \cellcolor{black}\normalsize\color{white}\textbf{P.U.} & \cellcolor{black} & \cellcolor{black} & \cellcolor{black}\normalsize\color{white}\textbf{P.U. net} &
\cellcolor{black}\normalsize\color{white}\textbf{Montant} & \cellcolor{black}\normalsize\color{white}\textbf{TVA} \\
\multirow{-2}{*}{
\cellcolor{black}\normalsize\color{white}\textbf{Désignation}
} & \cellcolor{black}\normalsize\color{white}\textbf{Catalogue} & \multirow{-2}{*}{
\cellcolor{black}\normalsize\color{white}\textbf{Remise}
} & \normalsize\multirow{-2}{*}{
\cellcolor{black}\normalsize\color{white}\textbf{Qté}
} & \cellcolor{black}\normalsize\color{white}\textbf{H.T. (\euro)} & \cellcolor{black}\normalsize\color{white}\textbf{H.T. (\euro)} & \cellcolor{black}\color{white}\normalsize\textbf{(\%)} \\
}
\tabletail{
\hline
}
\scriptsize{
\noindent\begin{supertabular}{|p{9.7cm}|c|c|c|c|c|c|}
\hline
& & & & & & \\
% Non-breakable repeated part
\small\textbf{Bon de commande : deliveryOrderNumber} & & & & & & \\
% Random times repeated sub-part
\truncate{10cm}{
\small{~~~~someText. long description}} & \small{price} & \small{discount} & \small{qty} & \small{price dis.} & \small{total} & \small{VAT} \\
% End subpart
& & & & & & \\
% End part
\end{supertabular}
}
\footnotesize{Some long and boring legal notices.}
\noindent\normalsize\begin{tabular}{p{10cm}r}
\begin{tabular}{l}
\small{Facture n\degre{}invoiceNUmber établie par le mandataire CompanyName}\\
\small{au nom et pour le compte de CompanyName}\\
\\
\small{échéance : date~~~~~montant total TTC : full price} \\
\\
\small{\textbf{Modalité de paiement :}} \\
\small{Réglement par LCR directe au date}\\
\small{\textbf{Nom du compte :} AccountName}\\
\small{\textbf{Numéro : } AccountNumpber}
\end{tabular}
&
\setlength{\extrarowheight}{6pt}
\begin{tabular}{|c|c|c|c|}
\hline
montant HT & TVA & montant TVA & NET A PAYER \\
\hline
Tot(ex. VAT)\euro & VAT\% & VAT total\euro & Tot (incl. VAT)\euro \\
\hline
\multicolumn{3}{|r|}{Total NET à payer} & Tot. (incl. VAT)\euro \\
\hline
\end{tabular}
\end{tabular}
\end{document}
Best Answer
You can change the goal height of the tabular before the problematic line. This will force an earlier page break: