[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[groff] 01/06: mom 2.4-4 release
From: |
Peter Schaffter |
Subject: |
[groff] 01/06: mom 2.4-4 release |
Date: |
Thu, 2 Jan 2020 20:30:39 -0500 (EST) |
PTPi pushed a commit to branch master
in repository groff.
commit 18d8b9bf3ab35fe330c6cc71ea5c336f6ad5f4a9
Author: Peter Schaffter <address@hidden>
Date: Thu Jan 2 20:01:45 2020 -0500
mom 2.4-4 release
Change all instances of .ul to .cu.
Add TOC_HEADING and associated _STYLE macro.
Add arg. PREFIX_CHAPTER_NUMBER to macro HEADING_STYLE.
Remove unused string $REF_STYLE.
Bug fixes -- see BUGS (2.4-3).
Update copyright info.
---
contrib/mom/om.tmac | 362 +++++++++++++++++++++++++++++++++++-----------------
1 file changed, 243 insertions(+), 119 deletions(-)
diff --git a/contrib/mom/om.tmac b/contrib/mom/om.tmac
index 69ed0ce..a3238d1 100644
--- a/contrib/mom/om.tmac
+++ b/contrib/mom/om.tmac
@@ -1,7 +1,7 @@
.ig
Mom -- a typesetting/document-processing macro set for groff.
-Copyright (C) 2002-2018 Free Software Foundation, Inc.
+Copyright (C) 2002-2020 Free Software Foundation, Inc.
Written by Peter Schaffter <address@hidden>
PDF integration contributed by Deri James <address@hidden>
@@ -20,7 +20,7 @@ for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-Version 2.4-3
+Version 2.4-4
-------------
Antoine de St-Exupéry asserted that elegance in engineering is
achieved not when there is nothing left to add, but when there is
@@ -54,7 +54,7 @@ extensions, and float management).
.if (\n[.x]\n[.y] < 118) \
. ab [mom]: You need GNU troff version 1.18 or higher to run this version of
mom.
\# Mom version
-.ds version 2.4-3
+.ds version 2.4-4
.if dVERSION \{\
. ab [mom]: Version \*[version]
.\}
@@ -1979,13 +1979,13 @@ end
. nr #UNDERLINE_ON 1
. ss \\n[.ss] (\\n[.ss]-\\n[.ss])
. ie !n .nop \X'ps: exec \\n[_w] \\n[_d] decorline'\c
-. el .ul 1000
+. el .cu 1000
. \}
. el \{\
. nr #UNDERLINE_ON 0
. if !'\\*[$SAVED_SS_VAR]'' .SS \\*[$SAVED_SS_VAR]
. ie !n .nop \X'ps: exec decornone'\c
-. el .ul 0
+. el .cu 0
. \}
.END
\#
@@ -2011,7 +2011,7 @@ end
. \}
. el \{\
\?\R'#UNDERLINE_ON 1'\?\c
-. ul 1000
+. cu 1000
. \}
. \}
. el \{\
@@ -2021,7 +2021,7 @@ end
. \}
. el \{\
\R'#UNDERLINE_ON 1'\c
-. ul 1000
+. cu 1000
. \}
. \}
.END
@@ -2037,7 +2037,7 @@ end
. \}
. el \{\
\?\R'#UNDERLINE_ON 0'\?\c
-. ul 0
+. cu 0
. \}
. \}
. el \{\
@@ -2047,7 +2047,7 @@ end
. \}
. el \{\
. nr #UNDERLINE_ON 0
-. ul 0
+. cu 0
. \}
. \}
.END
@@ -3330,7 +3330,7 @@ end
. ie '\\$1'0' .ss \\n[.ss] (\\n[.ss]-\\n[.ss])
. el \{\
. ie '\\$1'DEFAULT' .ss \\n[.ss]
-. el .ss \\n[.ss] (0+\\*[$SS_VAR])
+. el .ss \\n[.ss] \\*[$SS_VAR]
. \}
.END
\#
@@ -4210,12 +4210,14 @@ y\R'#DESCENDER \\n[.cdp]'
. nr #BOLDER_UNITS 0
. nr #CONDENSE 0
. nr #EXTEND 0
-. if !\\n[#ITALIC_MEANS_ITALIC] .rm IT
+. if !\\n[#ITALIC_MEANS_ITALIC] \{\
+. rm IT
+. rm PREV
+. UNDERLINE_ITALIC
+. \}
. rm BD
. rm BDI
-. if !\\n[#ITALIC_MEANS_ITALIC] .rm PREV
. if !\\n[#SLANT_MEANS_SLANT] .UNDERLINE_SLANT
-. if !\\n[#ITALIC_MEANS_ITALIC] .UNDERLINE_ITALIC
. if !\\n[#UNDERLINE_QUOTES] .UNDERLINE_QUOTES
. nr #IGNORE_COLUMNS 1
. nr #RULE_WEIGHT 500
@@ -4353,7 +4355,7 @@ y\R'#DESCENDER \\n[.cdp]'
. rm PREV
. ds ROM \E*[ULX]
. ds IT \E*[UL]
-. ds PREV \E*[ULX]
+. ds PREV \f[P]\E*[ULX]
. \}
.END
\#
@@ -5779,10 +5781,8 @@ SMALLCAPS takes precedence.
. if !r #DOC_HEADER .DOCHEADER
. if !r #HEADERS_ON .HEADERS
. if !r #PAGINATE .PAGINATE
-.\"
. if !r #HEADER_MARGIN .HEADER_MARGIN 4P+6p
. if !r #HEADER_GAP .HEADER_GAP 3P
-.\"
. if \\n[#FOOTERS_ON] \{\
. HEADERS OFF
. ie \\n[#PAGINATE] \
@@ -5820,7 +5820,10 @@ SMALLCAPS takes precedence.
. rm $SAVED_DOC_FAM
. \}
. el .ds $DOC_FAM \\*[$FAMILY]
-. nr #DOC_PT_SIZE \\n[#PT_SIZE]
+. ie !r #DOC_PT_SIZE .nr #DOC_PT_SIZE \\n[#PT_SIZE]
+. el \
+. if !\\n[#DOC_PT_SIZE]=\\n[#PT_SIZE] \
+. nr #DOC_PT_SIZE \\n[#PT_SIZE]
. if \\n[#TOC] .nr #DOC_PT_SIZE \\n[#TOC_PS]
. if \\n[#ENDNOTES] .nr #DOC_PT_SIZE \\n[#EN_PS]
. if \\n[#BIBLIOGRAPHY] .nr #DOC_PT_SIZE \\n[#BIB_PS]
@@ -6485,6 +6488,14 @@ SMALLCAPS takes precedence.
. ds $TOC_HEAD_\\n[#HD_LEVEL]_FAM \\*[$TOC_FAM]
. \}
. if '\\*[$TOC_TITLE_FAM]'' .TOC_TITLE_FAMILY \\*[$DOC_FAM]
+.\" TOC heading (single, non-pagenumbered line insertion)
+. if !d $TOC_HEADING_FAM .ds $TOC_HEADING_FAM \\*[$DOC_FAM]
+. if !d $TOC_HEADING_FT .ds $TOC_HEADING_FT R
+. if !d $TOC_HEADING_SIZE .ds $TOC_HEADING_SIZE +0
+. if !d $TOC_HEADING_COLOR .ds $TOC_HEADING_COLOR black
+. if !d $TOC_HEADING_QUAD .ds $TOC_HEADING_QUAD L
+. if !d $SPACE_ABOVE .ds $SPACE_ABOVE .75v
+. if !d $SPACE_BENEATH .ds $SPACE_BENEATH .25v
.\" Re-run MNinit to capture strings and registers set in DEFAULTS.
. if !'\\*[$MN-arg1]'' \{\
. MNinit \
@@ -6510,8 +6521,8 @@ SMALLCAPS takes precedence.
. if '\\$0'DOC_HEADER_QUAD' .ds $CALLING_MACRO DOCHEADER
. if '\\$0'COVER_H_POS' .ds $CALLING_MACRO COVER
. if '\\$0'DOC_COVER_H_POS' .ds $CALLING_MACRO DOC_COVER
-. substring $\\*[$CALLING_MACRO]_QUAD 0 0
. ie !'\\*[$\\*[$CALLING_MACRO]_QUAD]'' \{\
+. substring $\\*[$CALLING_MACRO]_QUAD 0 0
. if '\\*[$\\*[$CALLING_MACRO]_QUAD]'L' .LEFT
. if '\\*[$\\*[$CALLING_MACRO]_QUAD]'C' .CENTER
. if '\\*[$\\*[$CALLING_MACRO]_QUAD]'C' .RIGHT
@@ -7085,7 +7096,8 @@ $\\*[DOC_]COVERTITLE_\\n+[#\\*[DOC_]COVERTITLE_NUM]
\\$\\n[#\\*[DOC_]COVERTITLE_
. ie '\\$1'' \{\
. nr #COVERTEXT_PP 1
. di \\*[DOC_]COVER_TEXT
-. ev 1
+. ev COVER_TEXT
+. evc 0
\!. if \\\\n[#\\*[DOC_]COVERTEXT_ONLY] \
. sp |\\\\n[#T_MARGIN]u-\\\\n[#DOC_LEAD]u
\!. ie !\\n[#\\*[DOC_]COVERTEXT_START_POS] \{\
@@ -7925,6 +7937,10 @@ $\\*[DOC_]COVERTITLE_\\n+[#\\*[DOC_]COVERTITLE_NUM]
\\$\\n[#\\*[DOC_]COVERTITLE_
. rm $TOC_TITLE_ITEM_OLD
. \}
. \}
+. if !'\\*[$TOC_HEADING]'' \{\
+. HEADING_TO_TOC
+. rm $TOC_HEADING
+. \}
. if !\\n[#TOC] \{\
. if !'\\*[$TOC_TITLE_ITEM]'' \{\
. PDF_BOOKMARK 1 \\*[$TOC_TITLE_ITEM]
@@ -10188,7 +10204,7 @@ Shimming must be disabled with NO_SHIM before using
FLEX.
. vs 0
. ie !n \
. nop \R'#UNDERLINE_ON 1'\X'ps: exec \\n[_w] \\n[_d] decorline'
-. el .ul 1000
+. el .cu 1000
. br
. ns
. rr #UNDERLINE_WAS_ON
@@ -10350,7 +10366,7 @@ Shimming must be disabled with NO_SHIM before using
FLEX.
. ev PAGE_TRANSITION\\n+[pg-trans]
. pdfmarksuspend
. ie !n .nop \X'ps: exec decornone'
-. el .ul 0
+. el .cu 0
. br
. if \\n[#UNDERLINE_ON]=1 .nr #UNDERLINE_WAS_ON 1
. if \\n[MN-left]>0 \{\
@@ -11215,14 +11231,16 @@ Shimming must be disabled with NO_SHIM before using
FLEX.
\# <level> will have their indents adjusted accordingly.
\#
.MAC HEADING_STYLE END
-. if !\B'\\$1' \{\
-. tm1 "[mom]: The first argument to \\$0 must be a numeric heading level.
-. ab [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
-. \}
-. nr #LEVEL \\$1
-. if \\n[#FROM_OLDSTYLE] .nr #LEVEL_\\n[#LEVEL]_SET 1
-. shift
+. if !'\\$0'TOC_HEADING_STYLE' \{\
+. if !\B'\\$1' \{\
+. tm1 "[mom]: The first argument to \\$0 must be a numeric heading
level.
+. ab [mom]: Aborting '\\n[.F]' at \\$0, line \\n[.c].
+. \}
+. nr #LEVEL \\$1
+. if \\n[#FROM_OLDSTYLE] .nr #LEVEL_\\n[#LEVEL]_SET 1
+. shift
.\" Prepend TOC_ to style strings if called as TOC_ENTRY_STYLE
+. \}
. if '\\$0'TOC_ENTRY_STYLE' .ds $TOC TOC_
. nr #ARG_NUM 0 1
. nr #ATTRIB \\n[#NUM_ARGS]
@@ -11273,6 +11291,16 @@ Shimming must be disabled with NO_SHIM before using
FLEX.
. rr #HEAD_\\n[#LEVEL]_UNDERSCORE2
. shift
. \}
+. if '\\$1'SPACE_ABOVE' \{\
+. shift
+. ds $SPACE_ABOVE \\$1
+. shift
+. \}
+. if '\\$1'SPACE_BENEATH' \{\
+. shift
+. ds $SPACE_BENEATH \\$1
+. shift
+. \}
. if '\\$1'SPACE_AFTER' \{\
. nr #HEAD_\\n[#LEVEL]_SPACE_AFTER 1
. shift
@@ -11283,31 +11311,42 @@ Shimming must be disabled with NO_SHIM before using
FLEX.
. \}
. if '\\$1'FAMILY' \{\
. shift
-. ds $\\*[$TOC]HEAD_\\n[#LEVEL]_FAM \\$1
+. ds $\\*[$TOC]HEAD_\\n[#LEVEL]_FAM \\$1
+. if '\\$0'TOC_HEADING_STYLE' .ds $TOC_HEADING_FAM \\$1
. shift
. \}
. if '\\$1'FONT' \{\
. shift
-. ds $\\*[$TOC]HEAD_\\n[#LEVEL]_FT \\$1
+. ds $\\*[$TOC]HEAD_\\n[#LEVEL]_FT \\$1
+. if '\\$0'TOC_HEADING_STYLE' .ds $TOC_HEADING_FT \\$1
. shift
. \}
. if '\\$1'SIZE' \{\
. shift
. ds $\\*[$TOC]HEAD_\\n[#LEVEL]_SIZE \\$1
+. if '\\$0'TOC_HEADING_STYLE' .ds $TOC_HEADING_SIZE \\$1
. shift
. \}
. if '\\$1'QUAD' \{\
. shift
. ds $QUAD_TYPE \\$1
. substring $QUAD_TYPE 0 0
-. if '\\*[$QUAD_TYPE]'L' .ds $HEAD_\\n[#LEVEL]_QUAD LEFT
-. if '\\*[$QUAD_TYPE]'C' .ds $HEAD_\\n[#LEVEL]_QUAD CENTER
-. if '\\*[$QUAD_TYPE]'R' .ds $HEAD_\\n[#LEVEL]_QUAD RIGHT
+. ie !'\\$0'TOC_HEADING_STYLE' \{\
+. if '\\*[$QUAD_TYPE]'L' .ds $HEAD_\\n[#LEVEL]_QUAD LEFT
+. if '\\*[$QUAD_TYPE]'C' .ds $HEAD_\\n[#LEVEL]_QUAD CENTER
+. if '\\*[$QUAD_TYPE]'R' .ds $HEAD_\\n[#LEVEL]_QUAD RIGHT
+. \}
+. el \{\
+. if '\\*[$QUAD_TYPE]'L' .ds $TOC_HEADING_QUAD LEFT
+. if '\\*[$QUAD_TYPE]'C' .ds $TOC_HEADING_QUAD CENTER
+. if '\\*[$QUAD_TYPE]'R' .ds $TOC_HEADING_QUAD RIGHT
+. \}
. shift
. \}
. if '\\$1'COLOR' \{\
. shift
. ds $\\*[$TOC]HEAD_\\n[#LEVEL]_COLOR \\$1
+. if '\\$0'TOC_HEADING_STYLE' .ds $TOC_HEADING_COLOR \\$1
. shift
. \}
. if '\\$1'BASELINE_ADJUST' \{\
@@ -11340,6 +11379,13 @@ Shimming must be disabled with NO_SHIM before using
FLEX.
. rr #NUMBER_HEAD_\\n[#LEVEL]
. shift
. \}
+. if '\\$1'PREFIX_CHAPTER' \{\
+. shift
+. ie \B'\\$1' \{\
+. PREFIX_CHAPTER_NUMBER \\$1
+. \}
+. el .PREFIX_CHAPTER_NUMBER
+. \}
. if '\\$1'INDENT' \{\
. shift
. nr #TOC_HEAD_\\n[#LEVEL]_INDENT \\$1
@@ -11372,7 +11418,8 @@ Shimming must be disabled with NO_SHIM before using
FLEX.
. if d$TOC .rm $TOC
.END
.
-.ALIAS TOC_ENTRY_STYLE HEADING_STYLE
+.ALIAS TOC_ENTRY_STYLE HEADING_STYLE
+.ALIAS TOC_HEADING_STYLE HEADING_STYLE
\#
\# OLDSTYLE HEADINGS
\# -----------------
@@ -11551,15 +11598,30 @@ Shimming must be disabled with NO_SHIM before using
FLEX.
\# *Arguments:
\# <none> | <chapter number> | <anything>
\# *Function:
-\# Toggles register #PREFIX_CH_NUM. Sets register #CH_NUM from
-\# string $CHAPTER if $CHAPTER is a digit; if <chapter number> arg
-\# given, sets #CH_NUM to arg.
+\# Toggles register #PREFIX_CH_NUM. Uses $CHAPTER to set #CH_NUM
+\# if $CHAPTER is a digit; if <chapter number> given, sets #CH_NUM
+\# to arg.
\# *Notes:
\# Default is OFF.
\#
.MAC PREFIX_CHAPTER_NUMBER END
+. if \\n[#NUM_ARGS]=0 \{\
+. if !'\\*[$CHAPTER]'' \{\
+. if !\B'\\*[$CHAPTER]' \{\
+. tm1 "[mom]: \\$0 at line \\n[.c] cannot determine a chapter
number.
+. tm1 " Enter the current chapter number as a digit after
PREFIX_CHAPTER.
+. ab [mom]: Aborting '\\n[.F]', line \\n[.c].
+. \}
+. \}
+. \}
. ie '\\$1'' .nr #PREFIX_CH_NUM 1
-. el .rr #PREFIX_CH_NUM
+. el \{\
+. ie \B'\\$1' \{\
+. nr #PREFIX_CH_NUM 1
+. nr #CH_NUM \\$1
+. \}
+. el .rr #PREFIX_CH_NUM
+. \}
.END
\#
\# ====================================================================
@@ -15241,9 +15303,9 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. rr #EN_REF
. nr #BIBLIOGRAPHY 1
. nr #BIB_FIRST_PAGE 1
-. nr #SKIP_FOOTER +1
+\#. nr #SKIP_FOOTER +1
. SETUP_BIBLIOGRAPHY
-. nr #SKIP_FOOTER -1
+\#. nr #SKIP_FOOTER -1
. if \\n[#PRINT_STYLE]=1 \{\
. ie \\n[#SINGLE_SPACE]=1 .vs \\n[#BIB_LEAD]u
. el \{\
@@ -15298,6 +15360,17 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. nr #NO_TOC_ENTRY 1
.END
\#
+\# USER-INSERTED HEADING IN TOC
+\# ----------------------------
+\# *Arguments:
+\# <text>
+\# *Function:
+\# Inserts a single line of non-pagenumbered text into the TOC.
+\#
+.MAC TOC_HEADING END
+. ds $TOC_HEADING \\$1
+.END
+\#
\# TOC collector
\#
.MAC TO_TOC END
@@ -15340,6 +15413,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. \}
. \}
. \}
+\!. vpt 0
\!. PAD_MARKER ^
. if !'\\$0'HD_TO_TOC' \{\
\!. if \\n[#TOC_TITLE_CAPS]=1 .CAPS
@@ -15348,7 +15422,6 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. nr #POST_TOP 1
\!. if \\n[#TOC_HEAD_\\n[#LEVEL]_CAPS]=1 .CAPS
. \}
-\!. vpt 0
. ie '\\$0'HD_TO_TOC' \{\
. if \\n[#PRINT_STYLE]=1 \{\
. ds $TOC_HEAD_\\n[#LEVEL]_FAM] \\*[$TYPEWRITER_FAM]
@@ -15362,14 +15435,47 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
"\\*[PDFBOOKMARK.NAME]"
. \}
. el \{\
-. if \\n[#PRINT_STYLE]=1 \{\
-. ds $TOC_TITLE_FAM \\*[$TYPEWRITER_FAM]
-. ds $TOC_TITLE_FT R
+. ie '\\$0'HEADING_TO_TOC' \{\
+. if \\n[#PRINT_STYLE]=1 \{\
+. ds $TOC_TITLE_FAM \\*[$TYPEWRITER_FAM]
+. ds $TOC_TITLE_FT R
+. \}
+. if !'\\*[$TOC_HEADING_QUAD]'' \{\
+. substring $TOC_HEADING_QUAD 0 0
+. if '\\*[$TOC_HEADING_QUAD]'L' \!.LEFT
+. if '\\*[$TOC_HEADING_QUAD]'C' \!.CENTER
+. if '\\*[$TOC_HEADING_QUAD]'R' \!.RIGHT
+. \}
+\!. vpt
+\!. ne \\*[$SPACE_ABOVE]+\\*[$SPACE_BENEATH]+2v
+\!. vpt 0
+. if \\n[#PRINT_STYLE]=2 \
+. if \\n[#POST_TOP] \!.sp \\*[$SPACE_ABOVE]
+. ie \\n[#PRINT_STYLE]=1 \!.nop \\*[$TOC_HEADING]
+. el \{\
+\!. nop \
+\f[\\*[$TOC_HEADING_FAM]\\*[$TOC_HEADING_FT]]\
+\s[\\*[$TOC_HEADING_SIZE]]\
+\m[\\*[$TOC_HEADING_COLOR]]\
+\\*[$TOC_HEADING]\
+\m[]\s[0]\f[P]
+. \}
+. if \\n[#PRINT_STYLE]=2 \{\
+. ie \\n[#SPACE_TOC_ITEMS] \
+. if \\n[#POST_TOP]=0 \!.sp \\*[$SPACE_BENEATH]
+. el \!.sp \\*[$SPACE_BENEATH]
+. \}
+\!. vpt
+. da
+. ev
+. return
. \}
-\!. PAD \
+. el \{\
+\!. PAD \
"\f[\\*[$TOC_TITLE_FAM]\\*[$TOC_TITLE_FT]]\
\h'\\n[#TOC_TITLE_INDENT]u'\\*[$TOC_TITLE_ITEM]\\*[$TOC_PN\\*[_TYPEWRITE]]" \
"\\*[PDFBOOKMARK.NAME]"
+. \}
. \}
. ie '\\$0'HD_TO_TOC' \
\!. if \\n[#TOC_HEAD_\\n[#LEVEL]_CAPS]=1 .CAPS OFF
@@ -15391,13 +15497,14 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\!. ps \\*[$TOC_PN_SIZE_CHANGE]
. \}
\!. PRINT \\n[#TOC_ENTRY_PN]
-\!. \}
-. da
-. ev
+\!. \}
+. da
+. ev
.END
.
.ALIAS HD_TO_TOC TO_TOC
.ALIAS TITLE_TO_TOC TO_TOC
+.ALIAS HEADING_TO_TOC TO_TOC
\#
\# Control macros for toc
\# ----------------------
@@ -16621,7 +16728,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
\# *Arguments:
\# none
\# *Function:
-\# Resets register enumerators to 1 or a.
+\# Resets register enumerators to 1, a, i...
\#
.MAC RESET_LIST END
. ie '\\$1'' .nr #ENUMERATOR\\n[#DEPTH] 0 1
@@ -16810,6 +16917,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. IQ CLEAR
. TQ
. LL \\n[#DOC_L_LENGTH]u
+. PT_SIZE \\n[#DOC_PT_SIZE]u
. QUAD \\*[$DOC_QUAD]
. nr #SAVED_DOC_LEAD \\n[#DOC_LEAD]
. nr #COLLATED_DOC 1
@@ -16883,7 +16991,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. \}
. nr #LOOP 0 1
. while \\n+[#LOOP]<=\\n[@LEVEL] \
-. rr #TOC_HEAD_\\n[#LOOP]_INDENT_SET 1
+. rr #TOC_HEAD_\\n[#LOOP]_INDENT_SET
. if \\n[#FLEX_ACTIVE] .rr #NO_FLEX
.END
\#
@@ -18817,10 +18925,13 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. if '\\*[spec-type]'cap' .ds spec-type caption
. if '\\*[spec-type]'lab' .ds spec-type label
. if '\\*[spec-type]'sou' .ds spec-type source
+. ie \\n[#PRINT_STYLE]=1 .TYPEWRITER
+. el \{\
' fam \\*[\\*[label-type]*\\*[spec-type]-family]
-' ft \\*[\\*[label-type]*\\*[spec-type]-font]
-' ps \\n[#DOC_PT_SIZE]u\\*[\\*[label-type]*\\*[spec-type]-size-change]
-. COLOR \\*[\\*[label-type]*\\*[spec-type]-color]
+' ft \\*[\\*[label-type]*\\*[spec-type]-font]
+' ps \\n[#DOC_PT_SIZE]u\\*[\\*[label-type]*\\*[spec-type]-size-change]
+. \m[\\*[\\*[label-type]*\\*[spec-type]-color]]
+. \}
.END
\#
.ALIAS tbl*caption-style style
@@ -20347,10 +20458,10 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. if !'\\*[tbl*label-space]'' .sp \\*[tbl*label-space]
. ie \\n[tbl*autolabel] \{\
. ie !\\n[tbl*caption-after-label] .nop \
-\\*[tbl*label-prfx]\\*[chapno]\\n[tbl*label-num]\\*[tbl*label-sffx]
+\\*[tbl*label]
. el \{\
. nop \
-\\*[tbl*label-prfx]\\*[chapno]\\n+[tbl*label-num]\\*[tbl*label-sffx]\|
+\\*[tbl*label]\|
. tbl*caption-style
. vs \\n[.ps]u+\\n[tbl*caption-autolead]u
. ds tbl*caption-old \\*[tbl*caption]
@@ -20486,7 +20597,7 @@ E\\R'#CAP_HEIGHT \\n[.cht]'
. nr tbl*caption-top-lead-diff \\n[tbl*caption-lead-diff]
. ie !\\n[#MLA] \{\
. if \\n[tbl*have-caption] \{\
-. ie !'\\n[.z]'FLOAT*DIV' \{\
+. if !'\\n[.z]'FLOAT*DIV' \{\
. if !\\n[tbl*caption-after-label] \{\
. ie (\\n[nl]=\\n[#PAGE_TOP]):(\\n[nl]=\\n[dc]) \{\
. RESTORE_SPACE
@@ -20715,8 +20826,8 @@ does not fit on page \\n[pgnum]\\*[col-num].
. \}
. br
. if !'\\*[tbl*caption-space]'' .sp \\*[tbl*caption-space]
-\!. if \\\\n[float*tbl] .ev FLOAT
-. ev \\*[ev-current]
+. ie \\n[float*tbl] .ev FLOAT
+. el .ev \\*[ev-current]
.END
\#
.MAC TBL*CLEANUP END
@@ -21584,7 +21695,6 @@ does not fit on page \\n[pgnum]\\*[col-num].
. if r #EN_REF .rr #EN_REF
. nr #FN_REF 1
. \}
-. REF_STYLE NOTE
.END
\#
\# Endnote references
@@ -21599,7 +21709,6 @@ does not fit on page \\n[pgnum]\\*[col-num].
. nr #EN_REF 1
. if !r#EN_MARKER_STYLE .ENDNOTE_MARKER_STYLE SUPERSCRIPT
. \}
-. REF_STYLE NOTE
.END
\#
\# Prepare mom for a reference
@@ -21659,8 +21768,9 @@ does not fit on page \\n[pgnum]\\*[col-num].
. REF_BRACKETS_NOTICE \\$0
.END
\#
-\# These four pairs of aliases allow users to embed references in
-\# text and have them surrounded by (), [], {} or <>.
+\# These four pairs of aliases used to allow users to embed
+\# references in text and have them surrounded by (), [], {} or <>.
+\# bracket-label should be used in the refer block instead.
\#
.ALIAS REF( REF_BRACKETS_START
.ALIAS REF) REF_BRACKETS_END
@@ -21674,10 +21784,6 @@ does not fit on page \\n[pgnum]\\*[col-num].
.ALIAS REF< REF_BRACKETS_START
.ALIAS REF> REF_BRACKETS_END
\#
-.MAC REF_STYLE END
-. REF_BRACKETS_NOTICE \\$0
-.END
-\#
\# Refer indenting
\# ---------------
\# *Argument:
@@ -21781,6 +21887,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
. el .nr ref*type 2
. if d [q .nr ref*type 2
.\}
+.if d [u .nr ref*type 0 \" If %u exists, always treat as Internet ref
.if \\n[ref*type]=3 \{\
. if !'\\*([R'' \{\
. nr ref*type 4
@@ -21815,6 +21922,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
\# of collected references
\#
.de ]<
+.rm author \" If not, persists over multiple 'bibliography' commands
.als ref*print ref*end-print
.nr #REF 1
.if \\n[#BIB_LIST]=1 \{\
@@ -21869,7 +21977,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
\# string definitions (ref*add-<x>), so we have to make sure that there
\# aren't two spaces when the printstyle is TYPESET. Since I find that
\# references look a bit crowded with 0 sentence space, I've bumped it
-\# up to +4. User's sentence spacing is reset in FOOTNOTES and ENDNOTES.
+\# up to +8. User's sentence spacing is reset in FOOTNOTES and ENDNOTES.
\#
.de ref*build
.if \\n[#PRINT_STYLE]=2 \{\
@@ -21910,32 +22018,49 @@ does not fit on page \\n[pgnum]\\*[col-num].
.de ref*add-A
.ds eval*[A \\*([A
.substring eval*[A -1
-.if '\\*[eval*[A]'.' \
-. if !'\\*[$REF_STYLE]'NOTE' .chop [A
-.\" Per MLA, NOTE should not use idem, therefore if %i contains other than
-.\" idem (e.g., ed., trans.), transpose it to after author's name
-.ie '\\*[$REF_STYLE]'NOTE' \{\
-. ie !'\\*[idem]'' .ref*field A "" "" ", \\*[idem]"
+.if !\\n[skip-[A] \{\
+. if '\\*[eval*[A]'.' \
+. if !\\n[#FN_REF]+\\n[#EN_REF] .chop [A
+.\" Per MLA, footnotes and endnotes should not use idem, therefore
+.\" if %i contains other than idem (e.g., ed., trans.), transpose it
+.\" to after author's name
+. ie \\n[#FN_REF]+\\n[#EN_REF]=1 \{\
+. ie !'\\*[idem]'' .ref*field A "" "" "? \\*[idem]"
+. el .ref*field A
+. rm idem
. el .ref*field A
-. rm idem
-.el .ref*field A
+. \}
.\}
.if \\n([A .nr ref*suppress-period 1
+.rr skip-[A
..
-\# %i Idem. BIBLIO: In all instances, removes %A field and replaces
-\# it with a dash; if %i field contains other than the word, idem,
-\# appends it to the dash
+\# %i Idem.
+\#
+\# In bibliographies, per MLA, replace %A with long dash after
+\# first entry with author's name; if %i field contains other than
+\# the word 'idem', appends it to the dash.
+\# In foot/endnotes, idem is ignored; MLA requires full name for
+\# each foot/endnote entry.
+\#
.de ref*add-i
-.ie '\\*[$REF_STYLE]'NOTE' \{\
+.\" Is a foot/endnote.
+.ie \\n[#FN_REF]+\\n[#EN_REF]=1 \{\
. ie '\\*([i'idem' .rm [i
. el .ds idem \\*([i
.\}
.el \{\
+. rr skip-[A
+.\" %i is idem
. ie '\\*([i'idem' \{\
-. rm [A
-. rm [i
-. ref*field i "" \[idem] "" " "
+.\" If [A (%A) is the same as the last [A, captured in 'author'.
+. if '\\*([A'\\*[author]' \{\
+. rm [i
+. ref*field i "" \[idem] "" " "
+. nr skip-[A 1
+. \}
+. ds author \\*([A
. \}
+.\" %i is not 'idem'; attach to long dash
. el \{\
. ds eval*[i \\*([i
. substring eval*[i -1
@@ -21951,7 +22076,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
..
\# %m Multiple authors (et al.)
.de ref*add-m
-.if !'\\*[$REF_STYLE]'NOTE' \{\
+.if !\\n[#FN_REF]+\\n[#EN_REF] \{\
. ds eval*[m \\*([m
. substring eval*[m -1
. if '\\*[eval*[m]'.' .chop [m
@@ -21961,24 +22086,24 @@ does not fit on page \\n[pgnum]\\*[col-num].
\# %p Post-author string (e.g., Preface, Foreword, etc)
.de ref*add-p
.\" Convert first letter to uppercase, per MLA, if BIBLIO
-.if '\\*[$REF_STYLE]'BIBLIO' \{\
+.if !\\n[#FN_REF]+\\n[#EN_REF] \{\
. ds initial*cap \\*([p
. substring initial*cap 0 0
. ds [p*string \\*([p
. substring [p*string 1
. ds [p \E*[UC]\\*[initial*cap]\E*[LC]\\*[[p*string]
.\}
-.ie '\\*[$REF_STYLE]'NOTE' .ref*field p ,
+.ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field p ,
.el .ref*field p . " "
..
\# %Q Author(s) when author is not a person
.de ref*add-Q
-.ie '\\*[$REF_STYLE]'NOTE' .ref*field Q
+.ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field Q
.el .ref*field Q
..
\# %T Title (generic)
.de ref*add-T1
-.ie '\\*[$REF_STYLE]'NOTE' .ref*field T , \E*[IT] \E*[ref*restore-ss]
+.ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field T , \E*[IT] \E*[ref*restore-ss]
.el \{\
. ie !'\\*([A'' .ref*field T . " \E*[IT]" \E*[ref*restore-ss]
. el \{\
@@ -21987,11 +22112,10 @@ does not fit on page \\n[pgnum]\\*[col-num].
. \}
.\}
.if \\n([T .nr ref*suppress-period \\n([T
-.
..
\# %T Title of a chapter or article
.de ref*add-T2
-.ie '\\*[$REF_STYLE]'NOTE' \
+.ie \\n[#FN_REF]+\\n[#EN_REF] \
. ref*field T , \[lq] "" \[rq]
.el \{\
. ie '\\*([A'' \{\
@@ -22004,7 +22128,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
..
\# %B Book title (when citing an article from a book)
.de ref*add-B
-.ie '\\*[$REF_STYLE]'NOTE' \{\
+.ie \\n[#FN_REF]+\\n[#EN_REF] \{\
. ie \\n([T .ref*field B "" \E*[IT] \E*[ref*restore-ss]
. el .ref*field B , \E*[IT] \E*[ref*restore-ss]
.\}
@@ -22022,7 +22146,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
..
\# %q Titles that must go in quotes (e.g. an unpublished dissertation)
.de ref*add-q
-.ie '\\*[$REF_STYLE]'NOTE' .ref*field q , \[lq] "" \[rq]
+.ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field q , \[lq] "" \[rq]
.el \{\
. ie !'\\*([A'' .ref*field q . " \[lq]" "" \[rq]
. el \{\
@@ -22037,7 +22161,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
..
\# %J Journal name
.de ref*add-J
-.ie '\\*[$REF_STYLE]'NOTE' \{\
+.ie \\n[#FN_REF]+\\n[#EN_REF] \{\
. ie \\n([T .ref*field J "" "\E*[IT]" \E*[ref*restore-ss]
. el .ref*field J , "\E*[IT]" \E*[ref*restore-ss]
.\}
@@ -22048,7 +22172,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
..
\# %M Magazine or newspaper name
.de ref*add-M
-.ie '\\*[$REF_STYLE]'NOTE' \{\
+.ie \\n[#FN_REF]+\\n[#EN_REF] \{\
. ie \\n([T .ref*field M "" "\E*[IT]" \E*[ref*restore-ss]
. el .ref*field M , "\E*[IT]" \E*[ref*restore-ss]
.\}
@@ -22112,7 +22236,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
.\" End workaround
.ie !\\n[ref*type]=0 \{\
. ie \\n([E>0 \{\
-. ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie \\n[#FN_REF]+\\n[#EN_REF] \{\
. ie \\n([T .ref*field E "" "ed. "
. el .ref*field E , "ed. "
. \}
@@ -22122,7 +22246,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
. \}
. \}
. el \{\
-. ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie \\n[#FN_REF]+\\n[#EN_REF] \{\
. ie \\n([T .ref*field E "" "ed. "
. el .ref*field E , "ed. "
. \}
@@ -22143,7 +22267,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
.de ref*add-e
.ie \\n([T .ref*field e "" "" " ed."
.el \{\
-. ie '\\*[$REF_STYLE]'NOTE' .ref*field e , "" " ed."
+. ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field e , "" " ed."
. el .ref*field e . " " " ed."
.\}
.nr ref*suppress-period 1
@@ -22155,7 +22279,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
.if \\n[ref*type]=1 \
. ref*field V
.if \\n[ref*type]=2 \{\
-. ie '\\*[$REF_STYLE]'NOTE' .ref*field V , "vol. "
+. ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field V , "vol. "
. el \{\
. ie \\n([T .ref*field V "" " Vol. "
. el .ref*field V . " Vol. "
@@ -22176,7 +22300,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
.if \\n[ref*type]=1 \
. ref*field S
.if \\n[ref*type]=2 \{\
-. ie '\\*[$REF_STYLE]'NOTE' \{\
+. ie \\n[#FN_REF]+\\n[#EN_REF] \{\
. ie \\n([T .ref*field S
. el .ref*field S ,
. \}
@@ -22199,7 +22323,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
..
\# %C City
.de ref*add-C
-.ie '\\*[$REF_STYLE]'NOTE' \{\
+.ie \\n[#FN_REF]+\\n[#EN_REF] \{\
. ie r [d \{\
. ref*field C
. rr [d
@@ -22220,7 +22344,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
..
\# %I Publisher (I stands for Issuer)
.de ref*add-I
-.ie '\\*[$REF_STYLE]'NOTE' \{\
+.ie \\n[#FN_REF]+\\n[#EN_REF] \{\
. ie !'\\*([C'' .ref*field I :
. el .ref*field I "" (
.\}
@@ -22236,18 +22360,18 @@ does not fit on page \\n[pgnum]\\*[col-num].
\# %D Date of publication
.de ref*add-D
.if \\n[ref*type]=0 \{\
-. ie '\\*[$REF_STYLE]'NOTE' .ref*field D ,
+. ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field D ,
. el .ref*field D . " "
.\}
.if \\n[ref*type]=1 \
. ref*field D "" "(" ")"
.if \\n[ref*type]=2 \{\
-. ie '\\*[$REF_STYLE]'NOTE' .ref*field D , "" )
+. ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field D , "" )
. el .ref*field D ,
.\}
.if \\n[ref*type]=3 \{\
. ie !'\\*([C'' \{\
-. ie '\\*[$REF_STYLE]'NOTE' .ref*field D , "" )
+. ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field D , "" )
. el .ref*field D ,
. \}
. el \{\
@@ -22257,7 +22381,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
. ie '\\*[eval*[D]'1' .ds kern \*[BU3]
. el .ds kern \*[BU2]
. ie \\n[#PRINT_STYLE]=2 \
-. if '\\*[$REF_STYLE]'NOTE' .ref*field D "" (\\*[kern] )
+. if \\n[#FN_REF]+\\n[#EN_REF] .ref*field D "" (\\*[kern] )
. el .ref*field D
. \}
. rm eval*[D
@@ -22273,7 +22397,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
\# %P Page number(s)
.de ref*add-P
.if \\n[ref*type]=5 .nr ref*type 1
-.ie '\\*[$REF_STYLE]'NOTE' \{\
+.ie \\n[#FN_REF]+\\n[#EN_REF] \{\
. ie \\n[ref*type]=1 .ref*field P : "" .
. el .ref*field P "" "\|"
. if \\n[ref*type]=1 .nr ref*suppress-period 1
@@ -22288,7 +22412,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
..
\# %G Gov't. ordering number
.de ref*add-G
-.ie '\\*[$REF_STYLE]'NOTE' ref*field G ,
+.ie \\n[#FN_REF]+\\n[#EN_REF] ref*field G ,
.el .ref*field G . " "
..
\# %O Other (info that goes after %T [or %B] but is hard to categorize; e.g.,
a dissertation)
@@ -22300,9 +22424,9 @@ does not fit on page \\n[pgnum]\\*[col-num].
.substring initial*cap 0 0
.ds [O*string \\*([O
.substring [O*string 1
-.if '\\*[$REF_STYLE]'BIBLIO' \
+.if !\\n[#FN_REF]+\\n[#EN_REF] \
. ds [O \E*[UC]\\*[initial*cap]\E*[LC]\\*[[O*string]
-.ie '\\*[$REF_STYLE]'NOTE' .ref*field O ,
+.ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field O ,
.el \{\
. if \\n([O=1 .chop [O
. ie r [e .ref*field O "" " "
@@ -22321,7 +22445,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
.if '\\*[eval*[n]'.' .chop [n
.if '\\*[eval*[n]'?' .nr [n 1
.if '\\*[eval*[n]'!' .nr [n 1
-.ie '\\*[$REF_STYLE]'NOTE' .ref*field n ,
+.ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field n ,
.el \{\
. ie !'\\*([P'' .ref*field n "" " "
. el .ref*field n . " "
@@ -22338,7 +22462,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
\# -------------
\# %d date of publication (the original date of publication)
.de ref*add-d
-.ie '\\*[$REF_STYLE]'NOTE' \{\
+.ie \\n[#FN_REF]+\\n[#EN_REF] \{\
. ref*field d "" ( ;
. nr [d 1
.\}
@@ -22351,7 +22475,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
\# %b main author when citing from a preface, introduction, foreword
\# or afterword
.de ref*add-b
-.ie '\\*[$REF_STYLE]'NOTE' \{\
+.ie \\n[#FN_REF]+\\n[#EN_REF] \{\
. ie \\n([T .ref*field b "" "by"
. el .ref*field b , "by "
.\}
@@ -22364,7 +22488,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
\# %t title, if different from original title (the T field, which s/b
\# the original title)
.de ref*add-t
-.ie '\\*[$REF_STYLE]'NOTE' .ref*field t , "rpt. of \E*[IT] "
\E*[ref*restore-ss]
+.ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field t , "rpt. of \E*[IT] "
\E*[ref*restore-ss]
.el \{\
. ie \\n([T .ref*field t "" " Rpt. of \E*[IT] " \E*[ref*restore-ss]
. el .ref*field t . " Rpt. of \E*[IT] " \E*[ref*restore-ss]
@@ -22376,7 +22500,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
\# ----------------
\# %l Trans(l)ator
.de ref*add-l
-.ie '\\*[$REF_STYLE]'NOTE' \{\
+.ie \\n[#FN_REF]+\\n[#EN_REF] \{\
. ie \\n([T .ref*field l "" "trans. "
. el .ref*field l , "trans. "
.\}
@@ -22388,7 +22512,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
..
\# %r Translato(r) and edito(r)
.de ref*add-r
-.ie '\\*[$REF_STYLE]'NOTE' .ref*field r , "trans. and ed. "
+.ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field r , "trans. and ed. "
.el \{\
. ie \\n([T .ref*field r "" " Trans. and ed. "
. el .ref*field r . " Trans. and ed. "
@@ -22400,13 +22524,13 @@ does not fit on page \\n[pgnum]\\*[col-num].
\# --------
\# %s Site name
.de ref*add-s
-.ie '\\*[$REF_STYLE]'NOTE' .ref*field s , \E*[IT] \E*[ref*restore-ss]
+.ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field s , \E*[IT] \E*[ref*restore-ss]
.el \{\
.ie \\n([s .ref*field s "" ".\E*[IT]" \E*[ref*restore-ss]
.el .ref*field s . " \E*[IT]" \E*[ref*restore-ss]
.\}
.\" refer doesn't set reg [T to 1 for these titles, so we do it here
-.if !'\\*[$REF_STYLE]'NOTE' \{\
+.if !\\n[#FN_REF]+\\n[#EN_REF] \{\
. ds eval*[s \\*([s
. substring eval*[s -1
. rr [T
@@ -22418,7 +22542,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
..
\# %c content of site (ie. Web, Online posting, etc)
.de ref*add-c
-.ie '\\*[$REF_STYLE]'NOTE' .ref*field c ,
+.ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field c ,
.el \{\
. ie \\n([T .ref*field c "" " "
. el .ref*field c . " "
@@ -22427,7 +22551,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
..
\# %o organization, group or sponsor of site
.de ref*add-o
-.ie '\\*[$REF_STYLE]'NOTE' .ref*field o ,
+.ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field o ,
.el \{\
. ie \\n([T .ref*field o "" " "
. el .ref*field o . " "
@@ -22436,7 +22560,7 @@ does not fit on page \\n[pgnum]\\*[col-num].
..
\# %a access date, i.e. the date you read it
.de ref*add-a
-.ie '\\*[$REF_STYLE]'NOTE' .ref*field a ,
+.ie \\n[#FN_REF]+\\n[#EN_REF] .ref*field a ,
.el \{\
. ie \\n([T .ref*field a "" " "
. el .ref*field a . " "
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [groff] 01/06: mom 2.4-4 release,
Peter Schaffter <=