summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog26
-rw-r--r--NEWS2
-rw-r--r--font/devdvi/DESC.in4
-rw-r--r--font/devdvi/Makefile.sub2
-rw-r--r--font/devdvi/generate/Makefile16
-rw-r--r--src/devices/grodvi/grodvi.man180
-rw-r--r--src/roff/troff/number.cc4
-rw-r--r--tmac/dvi.tmac15
8 files changed, 222 insertions, 27 deletions
diff --git a/ChangeLog b/ChangeLog
index 7c6b457a..59ecb74b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,14 +6,36 @@
* tmac/dvi.tmac: Formatting.
Add font `HBI' for the dvi output.
+ Add support for font families `T' and `H'.
* font/devdvi/HBI: New file.
+ * font/devdvi/B: Renamed to ...
+ * font/devdvi/TB: This.
+ * font/devdvi/BI: Renamed to ...
+ * font/devdvi/TBI: This.
+ * font/devdvi/I: Renamed to ...
+ * font/devdvi/TI: This.
+ * font/devdvi/R: Renamed to ...
+ * font/devdvi/TR: This.
+ * font/devdvi/H: Renamed to ...
+ * font/devdvi/HR: This.
* font/devdvi/Makefile.sub (DEVFILES): Updated.
* font/devdvi/generate/Makefile (HBI): New rule.
(FONTS): Updated.
+ (R, I, B, BI, H): Renamed to ...
+ (TR, TI, TB, TBI, HR): This, respectively.
(srcdir): Fixed.
- * NEWS: Updated.
- * font/devdvi/DESC.in: Don't mount CWI.
+ * NEWS, src/devices/grodvi/grodvi.man: Updated.
+ * font/devdvi/DESC.in: Don't mount R, I, B, BI, and CWI.
+ Add `styles' and `family' keywords.
+ * tmac/dvi.tmac: Alias `H' to `HR'.
+ Add some fspecial requests for italic fonts.
+ Add TR and TI as special.
+ Add support for `_' with font CWI.
+
+ * src/roff/troff/number.cc (parse_expr): Add missing `break' for
+ operator `:'. Until now, the expression `0:1' would return 2
+ instead of 1.
2002-02-25 Werner LEMBERG <wl@gnu.org>
diff --git a/NEWS b/NEWS
index f89c78fa..fd0ad0fb 100644
--- a/NEWS
+++ b/NEWS
@@ -206,6 +206,8 @@ Grodvi
o A new font file HBI (using cmssbxo10; this is slanted sans serif bold
extended) has been added.
+o Two font families are now available: `T' and `H'.
+
Grotty
------
diff --git a/font/devdvi/DESC.in b/font/devdvi/DESC.in
index 81a9133c..a3a88e08 100644
--- a/font/devdvi/DESC.in
+++ b/font/devdvi/DESC.in
@@ -5,6 +5,8 @@ hor 1
vert 1
sizes 500 600 700 800 900 1000 1095 1200 1400 1440 1600 1728 1800
2000 2074 2200 2400 2488 2800 3600 0
-fonts 14 R I B BI 0 0 0 0 0 MI S EX CW
+styles R I B BI
+family T
+fonts 13 0 0 0 0 0 0 0 0 0 MI S EX CW
tcommand
postpro grodvi
diff --git a/font/devdvi/Makefile.sub b/font/devdvi/Makefile.sub
index 9b35fac9..2e449405 100644
--- a/font/devdvi/Makefile.sub
+++ b/font/devdvi/Makefile.sub
@@ -1,5 +1,5 @@
DEV=dvi
-DEVFILES=DESC R I B BI CW CWI MI S EX H HI HB HBI SA SB \
+DEVFILES=DESC TR TI TB TBI CW CWI MI S EX HR HI HB HBI SA SB \
generate/CompileFonts generate/Makefile generate/msam.map generate/msbm.map \
generate/texb.map generate/texex.map generate/texi.map generate/texmi.map \
generate/texr.map generate/texsy.map generate/textt.map
diff --git a/font/devdvi/generate/Makefile b/font/devdvi/generate/Makefile
index 2110ea63..7033083d 100644
--- a/font/devdvi/generate/Makefile
+++ b/font/devdvi/generate/Makefile
@@ -29,28 +29,28 @@ tfmdir=/usr/local/lib/groff-tfm
gfdir=/usr/local/lib/groff-gf
TFMTODIT=tfmtodit
-FONTS=R I B BI CW CWI MI S EX H HI HB HBI SA SB
+FONTS=TR TI TB TBI CW CWI MI S EX HR HI HB HBI SA SB
SPECIALFLAG=-s
all: $(FONTS)
-# R is special because it contains \(pl \(eq
+# TR is special because it contains \(pl \(eq
-R: $(srcdir)/texr.map
+TR: $(srcdir)/texr.map
$(TFMTODIT) $(SPECIALFLAG) -g $(gfdir)/cmr10.300gf \
$(tfmdir)/cmr10.tfm $(srcdir)/texr.map $@
-# I is special because it contains \(Po
+# TI is special because it contains \(Po
-I: $(srcdir)/texi.map
+TI: $(srcdir)/texi.map
$(TFMTODIT) $(SPECIALFLAG) -g $(gfdir)/cmti10.300gf \
$(tfmdir)/cmti10.tfm $(srcdir)/texi.map $@
-B: $(srcdir)/texb.map
+TB: $(srcdir)/texb.map
$(TFMTODIT) -g $(gfdir)/cmbx10.300gf \
$(tfmdir)/cmbx10.tfm $(srcdir)/texb.map $@
-BI: $(srcdir)/texi.map
+TBI: $(srcdir)/texi.map
$(TFMTODIT) -g $(gfdir)/cmbxti10.300gf \
$(tfmdir)/cmbxti10.tfm $(srcdir)/texi.map $@
@@ -76,7 +76,7 @@ EX: $(srcdir)/texex.map
$(TFMTODIT) $(SPECIALFLAG) \
$(tfmdir)/cmex10.tfm $(srcdir)/texex.map $@
-H: $(srcdir)/texb.map
+HR: $(srcdir)/texb.map
$(TFMTODIT) -g $(gfdir)/cmss10.300gf \
$(tfmdir)/cmss10.tfm $(srcdir)/texb.map $@
diff --git a/src/devices/grodvi/grodvi.man b/src/devices/grodvi/grodvi.man
index a4488ce7..fd3b16df 100644
--- a/src/devices/grodvi/grodvi.man
+++ b/src/devices/grodvi/grodvi.man
@@ -1,5 +1,5 @@
.ig
-Copyright (C) 1989-2000, 2001 Free Software Foundation, Inc.
+Copyright (C) 1989-2000, 2001, 2002 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -16,6 +16,8 @@ versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.
..
+.
+.
.ie t .ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
.el .ds tx TeX
.\" Like TP, but if specified indent is more than half
@@ -24,9 +26,13 @@ the original English.
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
.el .TP "\\$1"
..
+.
+.
.TH GRODVI @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
.SH NAME
grodvi \- convert groff output to TeX dvi format
+.
+.
.SH SYNOPSIS
.B grodvi
[
@@ -41,13 +47,17 @@ grodvi \- convert groff output to TeX dvi format
.PP
It is possible to have whitespace between a command line option and its
parameter.
+.
+.
.SH DESCRIPTION
.B grodvi
is a driver for
.B groff
that produces \*(tx dvi format.
+.
Normally it should be run by
.BR groff\ \-Tdvi .
+.
This will run
.BR @g@troff\ \-Tdvi ;
it will also input the macros
@@ -56,115 +66,265 @@ if the input is being preprocessed with
.B @g@eqn
it will also input
.BR @FONTDIR@/devdvi/eqnchar .
+.
.LP
The dvi file generated by
.B grodvi
can be printed by any correctly-written dvi driver.
+.
The troff drawing primitives are implemented
using the tpic version 2 specials.
+.
If the driver does not support these, the
-.B \eD
+.B \[rs]D
commands will not produce any output.
+.
.LP
There is an additional drawing command available:
+.
.TP
-.BI \eD'R\ dh\ dv '
+.BI \[rs]D'R\ dh\ dv '
Draw a rule (solid black rectangle), with one corner
at the current position, and the diagonally opposite corner
at the current position
.RI +( dh , dv ).
-Afterwards the current position will be at the opposite corner. This
-produces a rule in the dvi file and so can be printed even with a
+.
+Afterwards the current position will be at the opposite corner.
+.
+This produces a rule in the dvi file and so can be printed even with a
driver that does not support the tpic specials unlike the other
-.B \eD
+.B \[rs]D
commands.
+.
.LP
The groff command
-.BI \eX' anything '
+.BI \[rs]X' anything '
is translated into the same command in the dvi file as would be
produced by
-.BI \especial{ anything }
+.BI \[rs]special{ anything }
in \*(tx;
-.I anything may not contain a newline.
+.I anything
+may not contain a newline.
+.
.LP
Font files for
.B grodvi
can be created from tfm files using
.BR tfmtodit (@MAN1EXT@).
+.
The font description file should contain the following
additional commands:
+.
.Tp \w'\fBinternalname'u+2n
.BI internalname\ name
The name of the tfm file (without the
.B .tfm
extension) is
.IR name .
+.
.TP
.BI checksum\ n
The checksum in the tfm file is
.IR n .
+.
.TP
.BI designsize\ n
The designsize in the tfm file is
.IR n .
+.
.LP
These are automatically generated by
.B tfmtodit.
+.
.LP
In
.B troff
the
-.B \eN
+.B \[rs]N
escape sequence can be used to access characters by their position
in the corresponding tfm file;
all characters in the tfm file can be accessed this way.
+.
+.
.SH OPTIONS
.TP
.B \-d
Do not use tpic specials to implement drawing commands.
+.
Horizontal and vertical lines will be implemented by rules.
+.
Other drawing commands will be ignored.
+.
.TP
.B \-v
Print the version number.
+.
.TP
.BI \-w n
Set the default line thickness to
.I n
thousandths of an em.
+.
.TP
.BI \-F dir
Prepend directory
.IB dir /devdvi
to the search path for font and device description files.
+.
+.
+.SH USAGE
+There are styles called
+.BR R ,
+.BR I ,
+.BR B ,
+and
+.B BI
+mounted at font positions 1 to 4.
+The fonts are grouped into families
+.B T
+and
+.B H
+having members in each of these styles:
+.
+.de FT
+.if '\\*(.T'dvi' .ft \\$1
+..
+.
+.RS
+.TP
+.B TR
+.FT TR
+CM Roman (cmr10)
+.FT
+.
+.TP
+.B TI
+.FT TI
+CM Text Italic (cmti10)
+.FT
+.
+.TP
+.B TB
+.FT TB
+CM Bold Extended Roman (cmbx10)
+.FT
+.
+.TP
+.B TBI
+.FT TBI
+CM Bold Extended Text Italic (cmbxti10)
+.FT
+.
+.TP
+.B HR
+.FT HR
+CM Sans Serif (cmss10)
+.FT
+.
+.TP
+.B HI
+.FT HI
+CM Slanted Sans Serif (cmssi10)
+.FT
+.
+.TP
+.B HB
+.FT HB
+CM Sans Serif Bold Extended (cmssbx10)
+.FT
+.
+.TP
+.B HBI
+.FT HBI
+CM Slanted Sans Serif Bold Extended (cmssbxo10)
+.FT
+.RE
+.
+.LP
+There are also the following fonts which are not members of a family:
+.
+.RS
+.TP
+.B CW
+CM Typewriter Text (cmtt10)
+.FT CW
+.FT
+.
+.TP
+.B CWI
+CM Italic Typewriter Text (cmitt10)
+.FT CWI
+.FT
+.RE
+.
+.LP
+Special fonts are
+.B MI
+(cmmi10),
+.B S
+(cmsy10),
+.B EX
+(cmex10),
+and, perhaps surprisingly,
+.BR TR ,
+.BR TI ,
+and
+.BR CW ,
+due to the different font encodings of text fonts.
+.
+For italic fonts,
+.B CWI
+is used instead of
+.BR CW .
+.
+.LP
+Finally, the symbol fonts of the American Mathematical Society are available
+as special fonts
+.B SA
+(msam10) and
+.B SB
+(msbm10).
+.
+These two fonts are not mounted by default.
+.
+.
.SH FILES
.TP
.B @FONTDIR@/devdvi/DESC
Device description file.
+.
.TP
.BI @FONTDIR@/devdvi/ F
Font description file for font
.IR F .
+.
.TP
.B @MACRODIR@/dvi.tmac
Macros for use with
.BR grodvi .
+.
+.
.SH BUGS
Dvi files produced by
.B grodvi
use a different resolution (57816 units per inch) to those produced by
\*(tx.
+.
Incorrectly written drivers which assume the resolution used by \*(tx,
rather than using the resolution specified in the dvi file will not
work with
.BR grodvi .
+.
.LP
When using the
.B \-d
option with boxed tables,
vertical and horizontal lines can sometimes protrude by one pixel.
+.
This is a consequence of the way \*(tx requires that the heights
and widths of rules be rounded.
+.
+.
.SH "SEE ALSO"
.BR tfmtodit (@MAN1EXT@),
.BR groff (@MAN1EXT@),
diff --git a/src/roff/troff/number.cc b/src/roff/troff/number.cc
index d79298e6..8fed342e 100644
--- a/src/roff/troff/number.cc
+++ b/src/roff/troff/number.cc
@@ -1,5 +1,6 @@
// -*- C++ -*-
-/* Copyright (C) 1989, 1990, 1991, 1992, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002
+ Free Software Foundation, Inc.
Written by James Clark (jjc@jclark.com)
This file is part of groff.
@@ -320,6 +321,7 @@ static int parse_expr(units *v, int scale_indicator,
break;
case ':':
*v = *v > 0 || v2 > 0;
+ break;
case '+':
if (v2 < 0) {
if (*v < INT_MIN - v2)
diff --git a/tmac/dvi.tmac b/tmac/dvi.tmac
index 25ca1890..90981dc8 100644
--- a/tmac/dvi.tmac
+++ b/tmac/dvi.tmac
@@ -7,14 +7,21 @@
.ftr CO CWI
.ftr CI CWI
.ftr TT CW
-.ftr HR H
-.\" This uses the dvi-char_1 string in font CW, dvi-char_0 otherwise.
-.char _ \R'dvi-char_ \\n[.f]==\f[CW]\\n[.f]\f[P]'\\*[dvi-char_\\n[dvi-char_]]
+.ftr H HR
+.special TR TI
+.fspecial TI CWI
+.fspecial TBI CWI
+.fspecial HI CWI
+.fspecial HBI CWI
+.\" This uses the dvi-char_1 string in font CW pr CWI, dvi-char_0 otherwise.
+.char _ \
+\R'dvi-char_ ((\\n[.f] == \f[CW]\\n[.f]\f[P]) : \
+ (\\n[.f] == \f[CWI]\\n[.f]\f[P]))'\\*[dvi-char_\\n[dvi-char_]]
.char \[ul] \R'dvi-char_ \w'M'==\w'i''\\*[dvi-char_\\n[dvi-char_]]
.\" Normally use a rule.
.\" This is designed so that \(ul, \(rn and \(br form corners.
.ds dvi-char_0 \Z'\v'.23m'\D'R .54m .04m''\h'.5m'
-.\" In font CW use a real _ character.
+.\" In font CW and CWI use a real _ character.
.ds dvi-char_1 _
.if !c\[radicalex] .char \[radicalex] \D'R .5m -.04m'\v'.04m'
.if !c\[br] .char \[br] \Z'\v'.25m'\D'R .04m -1m''