Hi Branden,

On 2024-04-23 01:59, G. Branden Robinson wrote:

> The foregoing advice could probably use some fine-tuning.  Is it okay to
> use *roff diversions if you let a macro package that ships with groff do
> it for you?
> 
> You seem to be bumping into an anticipated issue, though.
> 
> groff 1.23.0's tbl(1) man page includes the following cautionary note:
> 
> Limitations
>      Multi‐page tables, if boxed and/or if you want their column
>      headings repeated after page breaks, require support at the time
>      the document is formatted.  A convention for such support has
>      arisen in macro packages such as ms, mm, and me.  To use it, follow
>      the .TS token with a space and then “H”; this will be interpreted
>      by the formatter as a TS macro call with an H argument.  Then,
>      within the table data, call the TH macro; this informs the macro
>      package where the headings end.  If your table has no such heading
>      rows, or you do not desire their repetition, call TH immediately
>      after the table format specification.  If a multi‐page table is
>      boxed or has repeating column headings, do not enclose it with
>      keep/release macros, or divert it in any other way.  Further, the
>      bp request will not cause a page break in a “TS H” table.  Define a
>      macro to wrap bp: invoke it normally if there is no current
>      diversion.  Otherwise, pass the macro call to the enclosing
>      diversion using the transparent line escape sequence \!; this will
>      “bubble up” the page break to the output device.  See section
>      “Examples” below for a demonstration.
> 
> I got good results with the attached document.  Here are the commands I
> used.
> 
> $ nroff -t -mm EXPERIMENTS/table.mm
> 
> $ groff -t -mm EXPERIMENTS/table.mm > table.ps
> 
> Does this help?

Unfortunately, I failed to describe my requirements properly – sorry
again. My document contains multiple relatively small tables, and each
table should appear on exactly one page (i.e. should not cross page
boundaries).

I attached sample documents and the respective outputs of

groff -mm -t -Kutf8 -Tpdf test_boxed.groff > test_boxed.pdf

to this message, and I would like to achieve the page break behaviour of
the boxed variant, but without having actual boxes drawn around the
tables.

- Jan
.TS
box decimalpoint(,) tab(@);
lb rb rb
- - -
l n n.
Konto@Rechnungsbetrag@Anteil

Haftpflichtversicherung@31,27 EUR@10,70 EUR

Heizung Grundkosten@1720,92 EUR@176,73 EUR

Heizung Verbrauchskosten@1720,92 EUR@322,99 EUR

Gebäudeversicherung@580,68 EUR@198,78 EUR

Frischwasser@379,87 EUR@151,95 EUR

Grundsteuer B@277,72 EUR@95,07 EUR

Straßenreinigung@38,34 EUR@13,12 EUR

Abfallentsorgung@368,00 EUR@147,20 EUR

Regenwasser@104,88 EUR@35,90 EUR

Abwasser@439,25 EUR@175,70 EUR

Lichtstrom@80,00 EUR@26,67 EUR

Heizungsstrom@120,20 EUR@41,15 EUR

Schornstein/ Heizungswartung@92,83 EUR@31,78 EUR

\fBGesamtbetrag:@@1427,74 EUR

Vorauszahlungen:@@1524,00 EUR

Guthaben:@@-96,26 EUR\fR
.TE
.sp 2
.TS
tab(@);
lb lb
- -
l l.
Kürzel@Berechnung

UN@Anteil an der Zahl der Wohneinheiten im Objekt (1/n)

AR@Anteil der Wohnfläche an der Gesamtwohnfläche im Objekt

OC@Anzahl der Personen relativ zur Gesamtanzahl der Bewohner*innen des Objektes

CO@Anteil am Gesamtverbrauch
.TE
.sp 2
.TS 
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Haftpflichtversicherung (AR)

Gesamtbetrag@31,27 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@10,70 EUR\fR
.TE

.TS
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Heizung Grundkosten (AR)

Gesamtbetrag@1720,92 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@30%

\fBBetrag@176,73 EUR\fR
.TE

.TS
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Heizung Verbrauchskosten (CO)

Gesamtbetrag@1720,92 EUR

Anteil (Leistung)@26,8% (5322/19849 kWh)

Anteil (Zeitraum)@n/a

Anteil (Rechnung)@70%

\fBBetrag@322,99 EUR\fR
.TE

.TS
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Gebäudeversicherung (AR)

Gesamtbetrag@580,68 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@198,78 EUR\fR
.TE

.TS
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Frischwasser (OC)

Gesamtbetrag@379,87 EUR

Anteil (Leistung)@40,0% (2/5 Personen)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@151,95 EUR\fR
.TE

.TS
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Grundsteuer B (AR)

Gesamtbetrag@277,72 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@95,07 EUR\fR
.TE

.TS
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Straßenreinigung (AR)

Gesamtbetrag@38,34 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@13,12 EUR\fR
.TE

.TS
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Abfallentsorgung (OC)

Gesamtbetrag@368,00 EUR

Anteil (Leistung)@40,0% (2/5 Personen)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@147,20 EUR\fR
.TE

.TS
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Regenwasser (AR)

Gesamtbetrag@104,88 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@35,90 EUR\fR
.TE

.TS
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Abwasser (OC)

Gesamtbetrag@439,25 EUR

Anteil (Leistung)@40,0% (2/5 Personen)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@175,70 EUR\fR
.TE

.TS
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Lichtstrom (UN)

Gesamtbetrag@80,00 EUR

Anteil (Leistung)@33,3% (1/3 Wohnungen)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@26,67 EUR\fR
.TE

.TS
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Heizungsstrom (AR)

Gesamtbetrag@120,20 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@41,15 EUR\fR
.TE

.TS
box decimalpoint(,) tab(@);
cb s
- -
l n.
None: Schornstein/ Heizungswartung (AR)

Gesamtbetrag@92,83 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@31,78 EUR\fR
.TE

Attachment: test_boxed.pdf
Description: Adobe PDF document

.TS
decimalpoint(,) tab(@);
lb rb rb
- - -
l n n.
Konto@Rechnungsbetrag@Anteil

Haftpflichtversicherung@31,27 EUR@10,70 EUR

Heizung Grundkosten@1720,92 EUR@176,73 EUR

Heizung Verbrauchskosten@1720,92 EUR@322,99 EUR

Gebäudeversicherung@580,68 EUR@198,78 EUR

Frischwasser@379,87 EUR@151,95 EUR

Grundsteuer B@277,72 EUR@95,07 EUR

Straßenreinigung@38,34 EUR@13,12 EUR

Abfallentsorgung@368,00 EUR@147,20 EUR

Regenwasser@104,88 EUR@35,90 EUR

Abwasser@439,25 EUR@175,70 EUR

Lichtstrom@80,00 EUR@26,67 EUR

Heizungsstrom@120,20 EUR@41,15 EUR

Schornstein/ Heizungswartung@92,83 EUR@31,78 EUR

\fBGesamtbetrag:@@1427,74 EUR

Vorauszahlungen:@@1524,00 EUR

Guthaben:@@-96,26 EUR\fR
.TE
.sp 2
.TS
tab(@);
lb lb
- -
l l.
Kürzel@Berechnung

UN@Anteil an der Zahl der Wohneinheiten im Objekt (1/n)

AR@Anteil der Wohnfläche an der Gesamtwohnfläche im Objekt

OC@Anzahl der Personen relativ zur Gesamtanzahl der Bewohner*innen des Objektes

CO@Anteil am Gesamtverbrauch
.TE
.sp 2
.TS 
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Haftpflichtversicherung (AR)

Gesamtbetrag@31,27 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@10,70 EUR\fR
.TE

.TS
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Heizung Grundkosten (AR)

Gesamtbetrag@1720,92 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@30%

\fBBetrag@176,73 EUR\fR
.TE

.TS
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Heizung Verbrauchskosten (CO)

Gesamtbetrag@1720,92 EUR

Anteil (Leistung)@26,8% (5322/19849 kWh)

Anteil (Zeitraum)@n/a

Anteil (Rechnung)@70%

\fBBetrag@322,99 EUR\fR
.TE

.TS
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Gebäudeversicherung (AR)

Gesamtbetrag@580,68 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@198,78 EUR\fR
.TE

.TS
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Frischwasser (OC)

Gesamtbetrag@379,87 EUR

Anteil (Leistung)@40,0% (2/5 Personen)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@151,95 EUR\fR
.TE

.TS
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Grundsteuer B (AR)

Gesamtbetrag@277,72 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@95,07 EUR\fR
.TE

.TS
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Straßenreinigung (AR)

Gesamtbetrag@38,34 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@13,12 EUR\fR
.TE

.TS
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Abfallentsorgung (OC)

Gesamtbetrag@368,00 EUR

Anteil (Leistung)@40,0% (2/5 Personen)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@147,20 EUR\fR
.TE

.TS
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Regenwasser (AR)

Gesamtbetrag@104,88 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@35,90 EUR\fR
.TE

.TS
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Abwasser (OC)

Gesamtbetrag@439,25 EUR

Anteil (Leistung)@40,0% (2/5 Personen)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@175,70 EUR\fR
.TE

.TS
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Lichtstrom (UN)

Gesamtbetrag@80,00 EUR

Anteil (Leistung)@33,3% (1/3 Wohnungen)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@26,67 EUR\fR
.TE

.TS
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Heizungsstrom (AR)

Gesamtbetrag@120,20 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@41,15 EUR\fR
.TE

.TS
decimalpoint(,) tab(@);
cb s
- -
l n.
None: Schornstein/ Heizungswartung (AR)

Gesamtbetrag@92,83 EUR

Anteil (Leistung)@34,2% (85/248 m²)

Anteil (Zeitraum)@100,0% (365/365)

Anteil (Rechnung)@100%

\fBBetrag@31,78 EUR\fR
.TE

Attachment: test_unboxed.pdf
Description: Adobe PDF document

Attachment: signature.asc
Description: PGP signature

Reply via email to