PTPi pushed a commit to branch master
in repository groff.

commit 7d9632c02535ee7ed8ad2182e4f2b7ca52f646f4
Author: Peter Schaffter <pe...@schaffter.ca>
AuthorDate: Mon Mar 17 13:52:48 2025 -0400

    [mom]: More housekeeping
    
    * Corrects float caption spacing
    * Ensures captions go into the requested List of ...
    * Fixes LISTS_STYLE TITLE_QUAD CENTER (was setting titles quad
      right)
    * Corrects missing TITLE_QUAD arg to TOC_HEADER_STYLE
    * Makes TOC header placement more robust
    * Corrects TYPEWRITE spacing after TOC header
    * Enforces non-adjusted leading as the value passed to TRAPS
---
 contrib/mom/BUGS    |  9 +++++-
 contrib/mom/om.tmac | 81 +++++++++++++++++++++++++++++++----------------------
 2 files changed, 56 insertions(+), 34 deletions(-)

diff --git a/contrib/mom/BUGS b/contrib/mom/BUGS
index c01954f89..276edaf63 100644
--- a/contrib/mom/BUGS
+++ b/contrib/mom/BUGS
@@ -23,9 +23,16 @@ the Subject line or you risk my spam filters nuking your 
message.
 
 Version 2.6_d
 =============
-PDF_IMAGE after only one line text after START is moves the image to
+FLOAT captions not going into selected List of ...
+---Fixed---
+
+'LISTS_STYLE TITLE_QUAD CENTER' setting titles quad right.
+---Fixed---
+
+PDF_IMAGE after only one line text after START moves the image to
 the next page.
 ---Fixed---
+
 Some graphical objects not recognising colours initialized with
 .XCOLOR.
 ---Fixed---
diff --git a/contrib/mom/om.tmac b/contrib/mom/om.tmac
index dbf67d75e..619da9851 100644
--- a/contrib/mom/om.tmac
+++ b/contrib/mom/om.tmac
@@ -1477,7 +1477,7 @@ end
 .\" The QUAD in PP adds an unwanted linespace after a HEADING at the
 .\" top of a pdf box because of this .br, so HEADING assigns the
 .\" tmp register "bx-top\n[stack]" to inhibit it.
-.    ie !\\n[pdfbx-top\\n[stack]] 'br
+.    ie !\\n[pdfbx-top\\n[stack]] .if !\\n[#TOC] .br
 .    el .rr pdfbx-top\\n[stack]
 .    if \\n[#COVERTEXT_PP] \
 .       ds $RESTORE_DOC_QUAD \\*[$QUAD_VALUE]
@@ -5745,6 +5745,11 @@ SMALLCAPS takes precedence.
 .          el .\\*[$STYLE_TYPE]_QUAD \\$1
 .          shift
 .       \}
+.       if '\\$1'TITLE_QUAD' \{\
+.          shift
+.          \\*[$STYLE_TYPE]_QUAD \\$1
+.          shift
+.       \}
 .       if '\\$1'INDENT' \{\
 .          shift
 .          \\*[$STYLE_TYPE]_INDENT \\$1
@@ -5980,16 +5985,16 @@ SMALLCAPS takes precedence.
 .             HEADER_MARGIN \\n[#HEADER_MARGIN]
 .             HEADER_GAP \\n[#HEADER_GAP]
 .          \}
-.          el .if !r #T_MARGIN .T_MARGIN 6P
+.          el .if !\\n[#T_MARGIN] .T_MARGIN 6P
 .       \}
 .    \}
-.    if !r #T_MARGIN \
+.    if !\\n[#T_MARGIN] \
 .       T_MARGIN \\n[#HEADER_MARGIN]+\\n[#HEADER_GAP]
 .    if !r #DOCHEADER_ADVANCE \
 .       nr #DOCHEADER_ADVANCE \\n[#T_MARGIN]
 .    if !r #FOOTER_MARGIN .FOOTER_MARGIN 3P
 .    if !r #FOOTER_GAP    .FOOTER_GAP 3P
-.    if !r #B_MARGIN \
+.    if !\\n[#B_MARGIN] \
 .       B_MARGIN \\n[#FOOTER_MARGIN]u+\\n[#FOOTER_GAP]u
 .    if !\\n[#HEADER_RULE_GAP] .HEADER_RULE_GAP 4p
 .    if !\\n[#FOOTER_RULE_GAP] .FOOTER_RULE_GAP 4p
@@ -6716,7 +6721,7 @@ SMALLCAPS takes precedence.
 .       substring $\\*[$CALLING_MACRO]_QUAD 0 0
 .       if '\\*[$\\*[$CALLING_MACRO]_QUAD]'L' .LEFT
 .       if '\\*[$\\*[$CALLING_MACRO]_QUAD]'C' .CENTER
-.       if '\\*[$\\*[$CALLING_MACRO]_QUAD]'C' .RIGHT
+.       if '\\*[$\\*[$CALLING_MACRO]_QUAD]'R' .RIGHT
 .    \}
 .    el .CENTER
 .END
@@ -8165,7 +8170,7 @@ $\\*[DOC_]COVERTITLE_\\n+[#\\*[DOC_]COVERTITLE_NUM] 
\\$\\n[#\\*[DOC_]COVERTITLE_
 .       PP
 .       PARA_INDENT \\n[#STORED_PP_INDENT]u
 .       rr #STORED_PP_INDENT
-.       ie r #ADVANCE_FROM_TOP \{\
+.       ie \\n[#ADVANCE_FROM_TOP] \{\
 .          br
 .          sp |\\n[#ADVANCE_FROM_TOP]u-1v
 .          if \\n[#ADJ_DOC_LEAD]=1 \
@@ -8529,6 +8534,7 @@ $\\*[DOC_]COVERTITLE_\\n+[#\\*[DOC_]COVERTITLE_NUM] 
\\$\\n[#\\*[DOC_]COVERTITLE_
 .       rr #DOC_AUTOLEAD
 .       rr #DOC_AUTOLEAD_FACTOR
 .       nr #DOC_LEAD \\n[.v]
+.       if '\\$2'ADJUST' .TRAPS
 .    \}
 .    nr #RESET_TRAPS 1
 .    if !\\n[#ADJ_DOC_LEAD] .nr #REMOVE_ADJ 1
@@ -16299,11 +16305,9 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .       TRAPS
 .    \}
 .    el .DOC_LEAD \\*[$TOC_LEAD]
-.    if '\\*[.T]'ps'  .nr #SPACE_CORRECTION 1
-.    if '\\*[.T]'pdf' .nr #SPACE_CORRECTION 2
 .    ie \\n[#TOC_HEADER_V_POS] \
 .       DOCHEADER OFF \\n[#TOC_HEADER_V_POS]u-\\n[#DOC_LEAD]u
-.    el .DOCHEADER OFF 
\\n[#T_MARGIN]u-(\\n[#DOC_LEAD]u*\\n[#SPACE_CORRECTION]u)
+.    el .DOCHEADER OFF
 .    if (\\n[#PRINT_STYLE]=1)&(\\n[#SINGLE_SPACE]=1) \
 .       DOCHEADER OFF \\n[#T_MARGIN]u-(\\n[#DOC_LEAD]u*2u)
 .    START
@@ -16319,6 +16323,7 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .    QUAD \\*[$TOC_HEADER_QUAD]
 .    if \\n[#TOC_STRING_CAPS] .CAPS
 .    if \\n[#TOC_STRING_SMALLCAPS] .SMALLCAPS
+.    sp |\\n[#T_MARGIN]u-1v
 .    if \\n[#PRINT_STYLE]=1 \
 .       UNDERSCORE 3p "\\*[$TOC_HEADER_STRING]"
 .    if \\n[#PRINT_STYLE]=2 \{\
@@ -16334,7 +16339,8 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .    CAPS OFF
 .    if \\n[#TOC_HEADER_COLOR]=1 .gcolor default
 .    br
-.    if \\n[#PRINT_STYLE]=2 .sp
+.    RESTORE_SPACE
+.    sp
 .    SHIM_1
 .    nf
 .    TOC_ENTRIES
@@ -17943,6 +17949,7 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 \#
 \#
 .MAC FLOAT END
+.    if \\n[#START] .RR_ADVANCE_FROM_TOP
 .    nr ll-pre-float \\n[.l]
 .    if \\n[#NUM_ARGS]>0 \{\
 .       nr loop-count 0 1
@@ -18294,6 +18301,10 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .       rr #FORCE
 .       rm P_QUOTE
 .       rm B_QUOTE
+.       rm $FLOATING_CAPTION
+.       rm $FLOATING_LABEL
+.       rm $LIST_LABEL
+.       rm $LIST_CAPTION
 .       if \\n[float*img] .rr float*img
 .       if \\n[float*pic] .rr float*pic
 .       if \\n[float*eqn] .rr float*eqn
@@ -18336,7 +18347,10 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .END
 \#
 .MAC TRAPS END
-.    if !\\n[#UNADJUSTED_DOC_LEAD] .nr #UNADJUSTED_DOC_LEAD \\n[#DOC@LEAD]
+.    if !\\n[#UNADJUSTED_DOC_LEAD] \{\
+.       nr #UNADJUSTED_DOC_LEAD \\n[#DOC@LEAD]
+.       nr #DOC_LEAD \\n[#UNADJUSTED_DOC_LEAD] 
+.    \}
 .\" Remove all header/footer traps
 .    if !\\n[#NO_TRAP_RESET] \{\
 .       ch DO_T_MARGIN
@@ -19588,7 +19602,13 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .    if \\n[#QUOTE] .nr q-float 1
 .    if '\\$0'CAPTION' \{\
 .       ds labelcap caption
-.       ds $FLOATING_CAPTION \\$*
+.       nr loop-counter 0 1
+.       nr loop-count \\n[#NUM_ARGS]
+.          ds $FLOATING_CAPTION \\$1
+.          if '\\$2'TO_LIST' \{\
+.             nr to-list 1
+.             ds $LIST_OF \\$3
+.          \}
 .    \}
 .    if '\\$0'LABEL' \{\
 .       ds labelcap label
@@ -19608,9 +19628,7 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .          \}
 .          if '\\$1'TO_LIST' \{\
 .             nr to-list 1
-.             if '\\$2'FIGURES'   .ds $LIST_OF FIGURES
-.             if '\\$2'EQUATIONS' .ds $LIST_OF EQUATIONS
-.             if '\\$2'TABLES'    .ds $LIST_OF TABLES
+.             ds $LIST_OF \\$2
 .             shift 2
 .          \}
 .       \}
@@ -19666,6 +19684,7 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .          if '\\*[$LIST_OF]'EQUATIONS' \
 .             if r eqn*label-num .STRIP_PRFX_SFFX "\\*[$FLOATING_LABEL]"
 .       \}
+.       if '\\*[$LIST_LABEL]'' .ds $LIST_LABEL \\*[$FLOATING_LABEL]
 .       ds $FLOATING_LABEL \
 \F[\\\\*[floating*label-family]]\
 \f[\\\\*[floating*label-font]]\
@@ -19678,16 +19697,14 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .          sp \\n[floating*caption-lead-diff]u
 .       if !'\\*[floating*caption-space]'' \
 .          sp \\*[floating*caption-space]
-.       while !'\\$1'' \{\
 .          nop \
 \F[\\*[floating*caption-family]]\
 \f[\\*[floating*caption-font]]\
 \s[\\*[floating*caption-size-change]]\
 \m[\\*[floating*caption-color]]\
-\\$1
-.          if \\n[.u]=1 .br
-.          shift
-.       \}
+\\*[$FLOATING_CAPTION]
+.       if \\n[.u]=1 .br
+.       shift
 .       if !'\\*[floating*caption-space]'' \
 .          sp -\\*[floating*caption-space]
 .    \}
@@ -19748,7 +19765,7 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .          ds floating*\\*[labelcap]-color pdf:href.colour
 .          ds labelcap caption
 .       \}
-.       ie '\\*[$LIST_LABEL]'' .TO_\\*[$LIST_OF] "\\*[$FLOATING_LABEL]
+.       ie '\\*[$LIST_LABEL]'' .TO_\\*[$LIST_OF] "\\*[$FLOATING_CAPTION]
 .       el .TO_\\*[$LIST_OF] "\\*[$LIST_LABEL]" "\\*[$LIST_CAPTION]
 .       rr to-list
 .       nr loop-counter 0 1
@@ -19763,10 +19780,6 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .       \}
 .    \}
 .    rr with-caption
-.    rm $FLOATING_CAPTION
-.    rm $FLOATING_LABEL
-.    rm $LIST_LABEL
-.    rm $LIST_CAPTION
 .END
 .
 .ALIAS CAPTION LABEL
@@ -20648,7 +20661,7 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .       if !'\\*[tbl*space-adj]'' .sp \\*[tbl*space-adj]u
 .    if !\\n[#MLA] \{\
 .      if (\\n[tbl*have-caption]=0):(\\n[tbl*caption-after-label]=1) \{\
-.         ie !'\\n[.z]'FLOAT*DIV' \{\
+.         if !'\\n[.z]'FLOAT*DIV' \{\
 .            ie !\\n[tbl*boxed]=2 \{\
 .               if \\n[tbl*have-header] .nr tbl*restore-header 1
 .               if !\\n[@TOP] .sp .5v
@@ -20660,13 +20673,11 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .               sp .25v
 .            \}
 .         \}
-.         el .sp .5v
 .      \}
 .    \}
 .    if \\n[nl]=\\n[#PAGE_TOP] .ns
 .    if '\\n[.z]'FLOAT*DIV' \{\
-.       ie \\n[defer]>0 .sp .5v
-.       el .sp .25v
+.       if \\n[defer]>0 .sp .5v
 .    \}
 .    if \\n[@TOP] .rr @TOP
 .    ds ev-current \\n[.ev]
@@ -20709,10 +20720,14 @@ EN-\\n[#CH_NUM]\\n[#EN_NUMBER]-body 
\s-2\v'-\\n[#DOC_LEAD]u/7u'\\n[#EN_NUMBER]\|
 .          ie !'\\n[.z]'' \{\
 .             if (\\n[float*img]=0)&(\\n[float*pic]=0)&(\\n[float*eqn]=0) \{\
 \!.              PDF_TARGET tbl:\\\\n+[lists*target]
-.                ie !'\\*[tbl*label]'' \
-\!.                 TO_TABLES "\\*[tbl*label]" "\\*[tbl*caption\\*[short]]"
-.                el \
-\!.                 TO_TABLES "\\*[tbl*caption\\*[short]]"
+.                if '\\*[$FLOATING_LABEL]'' \{\
+.                   if '\\*[$FLOATING_CAPTION]'' \{\
+.                      ie !'\\*[tbl*label]'' \
+\!.                       TO_TABLES "\\*[tbl*label]" 
"\\*[tbl*caption\\*[short]]"
+.                      el \
+\!.                       TO_TABLES "\\*[tbl*caption\\*[short]]"
+.                   \}
+.                \}
 .             \}
 .          \}
 .          el \{\

_______________________________________________
groff-commit mailing list
groff-commit@gnu.org
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to