groff-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Groff-commit] groff/contrib/mom ChangeLog om.tmac


From: Peter Schaffter
Subject: [Groff-commit] groff/contrib/mom ChangeLog om.tmac
Date: Sun, 15 Sep 2013 03:10:35 +0000

CVSROOT:        /sources/groff
Module name:    groff
Changes by:     Peter Schaffter <PTPi>  13/09/15 03:10:35

Modified files:
        contrib/mom    : ChangeLog om.tmac 

Log message:
        .TS/.TE extended to support multi-page tables with headers.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/groff/contrib/mom/ChangeLog?cvsroot=groff&r1=1.82&r2=1.83
http://cvs.savannah.gnu.org/viewcvs/groff/contrib/mom/om.tmac?cvsroot=groff&r1=1.77&r2=1.78

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/groff/groff/contrib/mom/ChangeLog,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -b -r1.82 -r1.83
--- ChangeLog   24 Aug 2013 22:27:59 -0000      1.82
+++ ChangeLog   15 Sep 2013 03:10:35 -0000      1.83
@@ -1,3 +1,7 @@
+* Sat Sep 14 2013
+
+o .TS/.TE extended to support multi-page tables with headers.
+
 * Sat Aug 24 2013
 
 o Restored reserved.html to toc.html in docs.

Index: om.tmac
===================================================================
RCS file: /sources/groff/groff/contrib/mom/om.tmac,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -b -r1.77 -r1.78
--- om.tmac     13 Sep 2013 20:06:36 -0000      1.77
+++ om.tmac     15 Sep 2013 03:10:35 -0000      1.78
@@ -9385,8 +9385,9 @@
 .          rr float-depth:\\n[loop-count]
 .       \}
 .       ev
-.       vs \\n[#DOC_LEAD]u
 .       SHIM
+\# Invoke table header hook.
+\# Will print table header for multipage tables
 .       rr defer
 .       rr loop-count
 .       rr defer-count
@@ -9394,10 +9395,7 @@
 .       rm float-adj:top
 .       rm float-adj:bottom
 .    \}
-.    if \\n[#TABLE] \{\
-.       rs
-.       sp
-.    \}
+.    address@hidden
 .END
 \#
 \# ====================================================================
@@ -9500,6 +9498,9 @@
 .          rr #OVERFLOW_RIGHT
 .       \}
 .    \}
+\# Table bottom hook, draws the table borders in
+\# multipage boxed tables.
+.    address@hidden
 .    ch MN_OVERFLOW_TRAP
 .    nr #L_MARGIN_DIFF \\n[#L_MARGIN]-\\n[#DOC_L_MARGIN]
 .    if !\\n[#FN_DEFER] \{\
@@ -15830,21 +15831,6 @@
 .  sp -1
 .  vpt 1
 ..
-\# Boxed tables don't play nice with vertical spacing.
-\# Compensation is applied in FLOAT.
-.MAC TS END
-.    nr #TABLE 1
-.    if '\\n[.z]'FLOAT*DIV' \{\
-.       if '\\$1'BOXED' \{\
-.          if !\\n[.d] .nr boxed-table 1
-.       \}
-.    \}
-.END
-.
-.MAC TE END
-.    if '\\n[.z]'FLOAT*DIV' .nr bx-tbl-depth \\n[.d]
-.    rr #TABLE
-.END
 \#
 \# FLOAT
 \# -----
@@ -16782,6 +16768,111 @@
 .    \}
 .END
 \#
+\# TBL SUPPORT
+\# -----------
+\# Support for multipage tables with headers borrowed from ms and
+\# mommified by Robin Haberkorn <address@hidden>
+\# with additional modifications by Peter Schaffter.
+\#
+.nr tbl*have-header 0
+.ds T&
+\#
+\# Boxed tables in floats don't play nice with vertical spacing,
+\# hence the BOXED arg.  Compensation is applied in FLOAT.
+\# 'H' arg starts a multi-page table with a repeated header.
+\#
+.MAC TS END
+.    nr #TABLE 1
+.    ie '\\n[.z]'FLOAT*DIV' \{\
+.       if '\\$1'BOXED' \
+.          if !\\n[.d] .nr boxed-table 1
+.    \}
+.    el \{\
+.       if '\\$1'H' \{\
+.          nr tbl*have-header 1
+.          sp .5v
+.          ev table
+.          evc 0
+.          di tbl*header-div
+.       \}
+.    \}
+.END
+\#
+.MAC TH END
+.    ie '\\n[.z]'tbl*header-div' \{\
+.       nr T. 0
+.       T#
+.       br
+.       di
+.       ev
+.       ie (\\n[dn]-\\n[.v])>\\n[.t] \{\
+.          if address@hidden address@hidden ridiculously long table header
+.          address@hidden \\n[dn]
+.          tbl*print-header
+.       \}
+.       el \{\
+.          nr tbl*header-ht \\n[dn]
+.          address@hidden \\n[dn]u+1v
+.          tbl*print-header
+.       \}
+.    \}
+.    el address@hidden .TH without .TS H
+.END
+\#
+.MAC TE END
+.    if !'\\$*'' \{\
+.       if !'\\$3'' .sp \\$3
+.       if !'\\$2'' .QUAD \\$2
+.       ie '\\$1'NO_SHIM' .nr tbl*no-shim 1
+.       el .PRINT \\$1
+.    \}
+.    if '\\n[.z]'FLOAT*DIV' .nr bx-tbl-depth \\n[.d]
+.    if '\\n[.z]'tbl*header-div' address@hidden .TS H but no .TH before .TE
+.    nr tbl*have-header 0
+.    rr #TABLE
+.    if !\\n[tbl*no-shim] .SHIM
+.    rr tbl*no-shim
+.END
+\#
+.MAC tbl*print-header END
+.    if \\n[.u]=1 \{\
+.       nf
+.       nr fill 1
+.    \}
+.    tbl*header-div
+.    if fill=1 \{\
+.       fi
+.       rr fill
+.    \}
+.    mk #T
+.END
+\#
+.MAC address@hidden END
+.    ie \\n[tbl*have-header] \{\
+.       tbl*print-header
+.    \}
+.    el .if \\n[#TABLE] \{\
+.       rs
+.       sp
+.    \}
+.END
+\#
+.MAC address@hidden END
+.    if \\n[tbl*have-header] \{\
+.       nr T. 1
+.       T#
+.    \}
+.END
+\#
+.MAC address@hidden END \" Move vertically until there is enough space for \$1
+.    if '\\n(.z'' \{\
+.       while \\n[.t]<=(\\$1)&(\\n[nl]>\\n[#PAGE_TOP]) \{\
+.          rs
+'          sp \\n[.t]u
+.       \}
+.    \}
+.END
+\#
 \# REFER SUPPORT
 \# -------------
 \#



reply via email to

[Prev in Thread] Current Thread [Next in Thread]