summaryrefslogtreecommitdiff
path: root/tmac/s.tmac
diff options
context:
space:
mode:
authorwlemb <wlemb>2004-07-25 14:05:40 +0000
committerwlemb <wlemb>2004-07-25 14:05:40 +0000
commit84c727ff469a27244e73d74a7fb3f26a8fb80ff3 (patch)
tree526572c6967b6e54c406ac79e691fe5e4cb67d56 /tmac/s.tmac
parent505d4e20ebc03786fad32ef7183a3bcc8f111974 (diff)
downloadgroff-84c727ff469a27244e73d74a7fb3f26a8fb80ff3.tar.gz
Add support for fractional point sizes in ms macros. A value for
PS, VS, FPS, and FVS greater than or equal to 1000 is always divided by 1000. For example, `.nr PS 10250' sets the font size to 10.25p. * tmac/s.tmac (@AU, @AI, par@load-init, par@init, par@reset, NL, PX): Handle fractional point sizes for PS, VS, FPS, and FVS. * tmac/groff_ms.man, docs/groff.texinfo, NEWS: Document it.
Diffstat (limited to 'tmac/s.tmac')
-rw-r--r--tmac/s.tmac80
1 files changed, 66 insertions, 14 deletions
diff --git a/tmac/s.tmac b/tmac/s.tmac
index b0aff21f..1b4d8f27 100644
--- a/tmac/s.tmac
+++ b/tmac/s.tmac
@@ -188,7 +188,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.di cov*au-div!\\n[cov*n-au]
.nf
.ft I
-.ps \\n[PS]
+.ie (\\n[PS] >= 1000) \
+. ps (\\n[PS]z / 1000u)
+.el \
+. ps \\n[PS]
..
.de @AI
.if !'\*(.T'html' .par@reset
@@ -201,7 +204,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
. di cov*ai-div!\\n[cov*n-au]
. nf
. ft R
-. ps \\n[PS]
+. ie (\\n[PS] >= 1000) \
+. ps (\\n[PS]z / 1000u)
+. el \
+. ps \\n[PS]
.\}
..
.de LP
@@ -999,10 +1005,23 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.\" don't set LT so that it can be defaulted from LL
.ie rLT .lt \\n[LT]u
.el .lt \\n[LL]u
-.ps \\n[PS]
+.ie (\\n[PS] >= 1000) \
+. ps (\\n[PS]z / 1000u)
+.el \
+. ps \\n[PS]
.\" don't set VS so that it can be defaulted from PS
-.ie rVS .par*vs \\n[VS]
-.el .par*vs \\n[PS]+2
+.ie rVS \{\
+. ie (\\n[VS] >= 1000) \
+. par*vs "(\\n[VS]p / 1000u)"
+. el \
+. par*vs \\n[VS]
+.\}
+.el \{\
+. ie (\\n[PS] >= 1000) \
+. par*vs "((\\n[PS]p / 1000u) + 2p)"
+. el \
+. par*vs "(\\n[PS] + 2)"
+.\}
.if dFAM .fam \\*[FAM]
.if !rHY .nr HY 14
.hy \\n[HY]
@@ -1034,16 +1053,37 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.de par@init
.if !rLT .nr LT \\n[LL]
.if !rFL .nr FL \\n[LL]*5/6
-.if !rVS .nr VS \\n[PS]+2
+.if !rVS \{\
+. ie (\\n[PS] >= 1000) \
+. nr VS (\\n[PS] + 2000)
+. el \
+. nr VS (\\n[PS] + 2)
+.\}
.if !rDI .nr DI .5i
-.if !rFPS .nr FPS \\n[PS]-2
-.if !rFVS .nr FVS \\n[FPS]+2
+.if !rFPS \{\
+. ie (\\n[PS] >= 1000) \
+. nr FPS (\\n[PS] - 2000)
+. el \
+. nr FPS (\\n[PS] - 2)
+.\}
+.if !rFVS \{\
+. ie (\\n[FPS] >= 1000) \
+. nr FVS (\\n[FPS] + 2000)
+. el \
+. nr FVS (\\n[FPS] + 2)
+.\}
.\" don't change environment 0
.ev h
-.ps \\n[PS]
+.ie (\\n[PS] >= 1000) \
+. ps (\\n[PS]z / 1000u)
+.el \
+. ps \\n[PS]
.if !rQI .nr QI 5n
.if !rPI .nr PI 5n
-.par*vs \\n[VS]
+.ie (\\n[VS] >= 1000) \
+. par*vs "(\\n[VS]p / 1000u)"
+.el \
+. par*vs \\n[VS]
.if !rPD .nr PD .3v>?\n(.V
.if !rDD .nr DD .5v>?\n(.V
.if !rFI .nr FI 2n
@@ -1101,8 +1141,14 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.in (u;\\n[\\n[.ev]:li]+\\n[\\n[.ev]:pli])
.ft 1
.fam \\*[FAM]
-.ps \\n[\\n[.ev]:PS]
-.par*vs \\n[\\n[.ev]:VS]
+.ie (\\n[\\n[.ev]:PS] >= 1000) \
+. ps (\\n[\\n[.ev]:PS]z / 1000u)
+.el \
+. ps \\n[\\n[.ev]:PS]
+.ie (\\n[\\n[.ev]:VS] >= 1000) \
+. par*vs "(\\n[\\n[.ev]:VS]p / 1000u)"
+.el \
+. par*vs \\n[\\n[.ev]:VS]
.ls 1
.TA
.hy \\n[HY]
@@ -1357,7 +1403,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
..
.\" In paragraph macros.
.de NL
-.ps \\n[\\n[.ev]:PS]
+.ie (\\n[\\n[.ev]:PS] >= 1000) \
+. ps (\\n[\\n[.ev]:PS]z / 1000u)
+.el \
+. ps \\n[\\n[.ev]:PS]
..
.de SM
.ps -2
@@ -1545,7 +1594,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.1C
.if !'\\$1'no' \{\
. ce 1
-. ps \\n[PS]+2
+. ie (\\n[PS] >= 1000) \
+. ps ((\\n[PS]z / 1000u) + 2z)
+. el \
+. ps \\n[PS]+2
. ft B
\\*[TOC]
. ft