summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog43
-rw-r--r--NEWS36
-rw-r--r--PROBLEMS6
-rw-r--r--doc/groff.texinfo4
-rw-r--r--font/devascii/R.proto1
-rw-r--r--font/devcp1047/R.proto1
-rw-r--r--font/devdvi/CW2
-rw-r--r--font/devdvi/CWI2
-rw-r--r--font/devdvi/HB4
-rw-r--r--font/devdvi/HBI4
-rw-r--r--font/devdvi/HI4
-rw-r--r--font/devdvi/HR4
-rw-r--r--font/devdvi/TB14
-rw-r--r--font/devdvi/TBI12
-rw-r--r--font/devdvi/TI6
-rw-r--r--font/devdvi/TR12
-rw-r--r--font/devdvi/generate/texb.map1
-rw-r--r--font/devdvi/generate/texi.map1
-rw-r--r--font/devdvi/generate/texr.map1
-rw-r--r--font/devdvi/generate/textt.map1
-rw-r--r--font/devhtml/R.proto4
-rw-r--r--font/devlatin1/R.proto1
-rw-r--r--font/devutf8/R.proto7
-rw-r--r--src/roff/troff/glyphuni.cc19
-rw-r--r--src/roff/troff/uniglyph.cc69
-rw-r--r--tmac/X.tmac22
-rw-r--r--tmac/Xps.tmac21
-rw-r--r--tmac/dvi.tmac34
-rw-r--r--tmac/ec.tmac2
-rw-r--r--tmac/lbp.tmac51
-rw-r--r--tmac/ps.tmac17
-rw-r--r--tmac/tty.tmac1
32 files changed, 327 insertions, 80 deletions
diff --git a/ChangeLog b/ChangeLog
index 4a9d482c..c5f7202d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,46 @@
+2002-11-05 Werner LEMBERG <wl@gnu.org>
+
+ * font/devascii/R.proto, font/devcp1047/R.proto,
+ font/devlatin1/R.proto: Remove entry for `.i'.
+ * font/devdvi/generate/textt.map: Add entry for `ad'.
+ * font/devdvi/generate/texr.map, font/devdvi/generate/texb.map,
+ font/devdvi/generate/texi.map: Add dummy glyph name `slash@for@l'.
+ We need this for getting kerning values to compose `/l' and `/L'.
+ * font/devdvi: Regenerated font definition files for CM fonts.
+ * font/devhtml/R.proto: Add entries for "'C", "'c", `IJ', and `ij'.
+ * font/devutf8/R.proto: Ditto.
+ Remove double entry for `ti'.
+
+ * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Fix entries
+ for (groff) ligatures, `la', and `ra'.
+ Add "'C", "'c", `IJ', and `ij'.
+ Remove double entry for `ti'.
+ * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Remove all
+ double entries.
+ Add "'C", "'c", `IJ', and `ij'.
+ Fix entries for (groff) ligatures, `la', and `ra'.
+
+ * tmac/ps.tmac (ps-achar): New macro.
+ Define "'c" and "'C".
+ * tmac/tty.tmac: Add entry for `.i'.
+ * tmac/X.tmac (X-achar): New macro.
+ Define "'c", "'C", and `:Y'.
+ Add entries for `IJ' and `ij'.
+ * tmac/Xps.tmac (Xps-achar): New macro.
+ Define "'c" and "'C".
+ Add entries for `IJ' and `ij'.
+ * tmac/lbp.tmac (lbp-achar): New macro.
+ Add fallback characters for all groff ligatures and many other
+ glyphs.
+ * tmac/dvi.tmac: Fix definitions of `_' and `ul'.
+ Add entries for `/l' and `/L'.
+ Define "'c" and "'C".
+ Add entries for `IJ' and `ij'.
+
+2002-11-02 Larry Kollar <kollar@alltel.net>
+
+ * PROBLEMS: Document how to solve Mac OS X compilation problems.
+
2002-11-02 Werner LEMBERG <wl@gnu.org>
Adding support for composite glyphs: \[xxx yyy ...] and the
diff --git a/NEWS b/NEWS
index c3d12589..478e54b1 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,42 @@ described. There are more details in the man and info pages.
VERSION 1.18.2
==============
+Troff
+-----
+
+o Composite glyphs are now supported. To do this, a subset of the Adobe
+ Glyph List (AGL) Algorithm as described in
+
+ http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
+
+ is used to construct glyph names based on Unicode character codes. The
+ existing groff glyph names are frozen; no glyph names which can't be
+ constructed algorithmically will be added in the future.
+
+ The \[...] escape sequence has been extended to specify multiple glyph
+ components. Example:
+
+ \[A ho]
+
+ this accesses a glyph with the name `u0041_0328'.
+
+ Some groff glyphs which are useful as composites map to `wrong' Unicode
+ code points. For example, `ho' maps to U+02DB which is a spacing
+ ogonek, whereas a non-spacing ogonek U+0328 is needed for composite
+ glyphs. The new request
+
+ .composite from to
+
+ will change the mapping while a composite glyph name is constructed.
+ To make \[A ho] yield the expected result,
+
+ .composite ho u0328
+
+ is needed.
+
+ Please refer to the info pages of groff and to the groff_char man page
+ for more details.
+
Grotty
------
diff --git a/PROBLEMS b/PROBLEMS
index e3e6a7bb..ad3ca61a 100644
--- a/PROBLEMS
+++ b/PROBLEMS
@@ -783,3 +783,9 @@ patch is available. Use GCC 2.95.2 or later instead.
Make sure -DCFRONT_ANSI_BUG is included in DEFINES in the top-level
Makefile. If that doesn't solve the problem, define INT_MIN as
-INT_MAX in libgroff/lib.h.
+
+----------------------------------------------------------------------
+
+* When compiling on MacOS X, groff compiles but does not run well.
+
+Use ./configure CXX=g++2 then make as usual.
diff --git a/doc/groff.texinfo b/doc/groff.texinfo
index 32bf480b..6a23c677 100644
--- a/doc/groff.texinfo
+++ b/doc/groff.texinfo
@@ -8197,6 +8197,8 @@ description file after the @code{charset} command. It is possible to
include unnamed glyphs in the font description file by using a
name of @samp{---}; the @code{\N} escape sequence is the only way to
use these.
+
+No kerning is applied to glyphs accessed with @code{\N}.
@endDefesc
Some escape sequences directly map onto special glyphs.
@@ -11272,7 +11274,7 @@ of the last glyph added to the current environment.
The @code{\n[.csk]} register contains the
@dfn{skew} (how far to the right of the glyph's center
-that @code{gtroff} shold place an accent)
+that @code{gtroff} should place an accent)
of the last glyph added to the current environment.
@endDefreg
diff --git a/font/devascii/R.proto b/font/devascii/R.proto
index 9223e460..abe065fa 100644
--- a/font/devascii/R.proto
+++ b/font/devascii/R.proto
@@ -122,7 +122,6 @@ f 24 0 0146
g 24 0 0147
h 24 0 0150
i 24 0 0151
-.i "
j 24 0 0152
k 24 0 0153
l 24 0 0154
diff --git a/font/devcp1047/R.proto b/font/devcp1047/R.proto
index 3dc50a71..06acf228 100644
--- a/font/devcp1047/R.proto
+++ b/font/devcp1047/R.proto
@@ -116,7 +116,6 @@ f 24 0 0206
g 24 0 0207
h 24 0 0210
i 24 0 0211
-.i "
Fo 24 0 0212
Fc 24 0 0213
Sd 24 0 0214
diff --git a/font/devdvi/CW b/font/devdvi/CW
index 8a01912d..2cb32688 100644
--- a/font/devdvi/CW
+++ b/font/devdvi/CW
@@ -149,4 +149,4 @@ ba "
rC "
~ 550498,640797 2 0176
a~ "
---- 550498,640797 2 0177
+ad 550498,640797 2 0177
diff --git a/font/devdvi/CWI b/font/devdvi/CWI
index d2417543..13ded182 100644
--- a/font/devdvi/CWI
+++ b/font/devdvi/CWI
@@ -149,4 +149,4 @@ ba "
rC "
~ 550498,640797,0,182045 2 0176
a~ "
---- 550498,640797,0,182045 2 0177
+ad 550498,640797,0,182045 2 0177
diff --git a/font/devdvi/HB b/font/devdvi/HB
index bd915844..7d9847b8 100644
--- a/font/devdvi/HB
+++ b/font/devdvi/HB
@@ -12,6 +12,8 @@ ff ! 80101
ff ) 80101
ff rB 80101
ff ] 80101
+slash@for@l l -267971
+slash@for@l L -307293
cq ? 128160
' ? 128160
cq ! 128160
@@ -185,7 +187,7 @@ oe 897120,480597 0 0033
AE 993240,728178 2 0035
OE 1121400,728178 2 0036
/O 897120,779150,50973 3 0037
---- 267971,480597 0 0040
+slash@for@l 267971,480597 0 0040
! 384480,728178 2 0041
rq 585458,728178 2 0042
sh 961200,728178,203888 3 0043
diff --git a/font/devdvi/HBI b/font/devdvi/HBI
index 4e9efd08..f410707e 100644
--- a/font/devdvi/HBI
+++ b/font/devdvi/HBI
@@ -13,6 +13,8 @@ ff ! 80101
ff ) 80101
ff rB 80101
ff ] 80101
+slash@for@l l -267971
+slash@for@l L -307293
cq ? 128160
' ? 128160
cq ! 128160
@@ -186,7 +188,7 @@ oe 897120,480597,0,78936 0 0033
AE 993240,728178,0,122738 2 0035
OE 1121400,728178,0,122738 2 0036
/O 897120,779150,50973,76304 3 0037
---- 267971,480597 0 0040
+slash@for@l 267971,480597 0 0040
! 384480,728178,0,63027 2 0041
rq 585458,728178,0,28947 2 0042
sh 961200,728178,203888,58506 3 0043
diff --git a/font/devdvi/HI b/font/devdvi/HI
index f98081e5..4034e21b 100644
--- a/font/devdvi/HI
+++ b/font/devdvi/HI
@@ -13,6 +13,8 @@ ff ! 72818
ff ) 72818
ff rB 72818
ff ] 72818
+slash@for@l l -250494
+slash@for@l L -270885
cq ? 116509
' ? 116509
cq ! 116509
@@ -186,7 +188,7 @@ oe 815562,466034,0,71070 0 0033
AE 902944,728178,0,125650 2 0035
OE 1019453,728178,0,125650 2 0036
/O 815562,779150,50973,79216 3 0037
---- 250494,466034 0 0040
+slash@for@l 250494,466034 0 0040
! 334963,728178,0,60114 2 0041
rq 524290,728178,0,3315 2 0042
sh 873816,728178,203888,53338 3 0043
diff --git a/font/devdvi/HR b/font/devdvi/HR
index 93b8a2d4..d9d660b5 100644
--- a/font/devdvi/HR
+++ b/font/devdvi/HR
@@ -12,6 +12,8 @@ ff ! 72818
ff ) 72818
ff rB 72818
ff ] 72818
+slash@for@l l -250494
+slash@for@l L -270885
cq ? 116509
' ? 116509
cq ! 116509
@@ -185,7 +187,7 @@ oe 815562,466034 0 0033
AE 902944,728178 2 0035
OE 1019453,728178 2 0036
/O 815562,779150,50973 3 0037
---- 250494,466034 0 0040
+slash@for@l 250494,466034 0 0040
! 334963,728178 2 0041
rq 524290,728178 2 0042
sh 873816,728178,203888 3 0043
diff --git a/font/devdvi/TB b/font/devdvi/TB
index 92b231a6..581840af 100644
--- a/font/devdvi/TB
+++ b/font/devdvi/TB
@@ -1,5 +1,5 @@
#
-# manually added kernings for `` and ''
+# manually added kerning for `` and ''
#
name TB
internalname cmbx10
@@ -8,8 +8,8 @@ ligatures ff fi fl ffi ffl 0
checksum 452076118
designsize 10485760
kernpairs
-ff ' 114323
ff cq 114323
+ff ' 114323
ff ? 114323
ff ! 114323
ff ) 114323
@@ -19,10 +19,12 @@ ff ] 114323
' cq -100488
cq ' -100488
cq cq -100488
-' ? 133984
+slash@for@l l -334960
+slash@for@l L -396128
cq ? 133984
-' ! 133984
+' ? 133984
cq ! 133984
+' ! 133984
A t -33496
A C -33496
A O -33496
@@ -135,8 +137,8 @@ b y -33496
b w -33496
c h -33496
c k -33496
-f ' 114323
f cq 114323
+f ' 114323
f ? 114323
f ! 114323
f ) 114323
@@ -236,7 +238,7 @@ oe 937888,466034 0 0033
AE 1092261,719440 2 0035
OE 1226245,719440 2 0036
/O 937888,770413,50973 3 0037
---- 334960,466034 0 0040
+slash@for@l 334960,466034 0 0040
! 367000,728178 2 0041
rq 632056,728178 2 0042
sh 1004880,728178,203888 3 0043
diff --git a/font/devdvi/TBI b/font/devdvi/TBI
index 7020689e..5c34bc2d 100644
--- a/font/devdvi/TBI
+++ b/font/devdvi/TBI
@@ -1,5 +1,5 @@
#
-# manually added kernings for `` and ''
+# manually added kerning for `` and ''
#
name TBI
internalname cmbxti10
@@ -20,10 +20,12 @@ ff ] 111848
cq ' -92624
' cq -92624
cq cq -92624
-' ? 123498
+slash@for@l l -311075
+slash@for@l L -402826
cq ? 123498
-' ! 123498
+' ? 123498
cq ! 123498
+' ! 123498
A n -30875
A l -30875
A r -30875
@@ -185,8 +187,8 @@ Fn ] 111848
f rB 111848
f ] 111848
l l 61749
-n ' -123498
n cq -123498
+n ' -123498
o e -61749
o a -61749
o o -61749
@@ -242,7 +244,7 @@ oe 866814,466034,0,89131 0 0033
AE 1072450,719440,0,119859 2 0035
OE 1195947,719440,0,119859 2 0036
/O 928563,770413,50973,95027 3 0037
---- 311075,466034 0 0040
+slash@for@l 311075,466034 0 0040
! 404864,728178,0,119714 2 0041
rq 650696,728178,0,83248 2 0042
sh 990312,728178,203888,71653 3 0043
diff --git a/font/devdvi/TI b/font/devdvi/TI
index f0739372..31a0edcc 100644
--- a/font/devdvi/TI
+++ b/font/devdvi/TI
@@ -1,5 +1,5 @@
#
-# manually added kernings for `` and ''
+# manually added kerning for `` and ''
#
name TI
special
@@ -21,6 +21,8 @@ ff ] 109373
cq ' -80390
' cq -80390
cq cq -80390
+slash@for@l l -267968
+slash@for@l L -336125
cq ? 107187
' ? 107187
cq ! 107187
@@ -243,7 +245,7 @@ oe 750310,451470,0,78789 0 0033
AE 925654,716526,0,126120 2 0035
OE 1032842,716526,0,126120 2 0036
/O 803904,767499,50973,98595 3 0037
---- 267968,451470 0 0040
+slash@for@l 267968,451470 0 0040
! 321562,728178,0,130200 2 0041
rq 539432,728178,0,72994 2 0042
sh 857498,728178,203888,69378 3 0043
diff --git a/font/devdvi/TR b/font/devdvi/TR
index 4a42532d..64f457b9 100644
--- a/font/devdvi/TR
+++ b/font/devdvi/TR
@@ -1,5 +1,5 @@
#
-# manually added kernings for `` and ''
+# manually added kerning for `` and ''
#
name TR
special
@@ -20,10 +20,12 @@ ff ] 81557
cq ' -87382
' cq -87382
cq cq -87382
-' ? 116509
+slash@for@l l -291272
+slash@for@l L -334963
cq ? 116509
-' ! 116509
+' ? 116509
cq ! 116509
+' ! 116509
*A t -29128
A t -29128
*A C -29128
@@ -203,8 +205,8 @@ b y -29128
b w -29128
c h -29128
c k -29128
-f ' 81557
f cq 81557
+f ' 81557
f ? 81557
f ! 81557
f ) 81557
@@ -304,7 +306,7 @@ oe 815562,451470 0 0033
AE 946634,716526 2 0035
OE 1063142,716526 2 0036
/O 815562,767499,50973 3 0037
---- 291272,451470 0 0040
+slash@for@l 291272,451470 0 0040
! 291272,728178 2 0041
rq 524290,728178 2 0042
sh 873816,728178,203888 3 0043
diff --git a/font/devdvi/generate/texb.map b/font/devdvi/generate/texb.map
index 6ea689f5..ddab640f 100644
--- a/font/devdvi/generate/texb.map
+++ b/font/devdvi/generate/texb.map
@@ -30,6 +30,7 @@
29 AE
30 OE
31 /O
+32 slash@for@l
33 !
34 rq
35 # sh
diff --git a/font/devdvi/generate/texi.map b/font/devdvi/generate/texi.map
index 82497eb8..4e3915d9 100644
--- a/font/devdvi/generate/texi.map
+++ b/font/devdvi/generate/texi.map
@@ -30,6 +30,7 @@
29 AE
30 OE
31 /O
+32 slash@for@l
33 !
34 rq
35 # sh
diff --git a/font/devdvi/generate/texr.map b/font/devdvi/generate/texr.map
index 73abe162..0eaf4230 100644
--- a/font/devdvi/generate/texr.map
+++ b/font/devdvi/generate/texr.map
@@ -30,6 +30,7 @@
29 AE
30 OE
31 /O
+32 slash@for@l
33 !
34 rq
35 # sh
diff --git a/font/devdvi/generate/textt.map b/font/devdvi/generate/textt.map
index c980496c..6d6031be 100644
--- a/font/devdvi/generate/textt.map
+++ b/font/devdvi/generate/textt.map
@@ -124,3 +124,4 @@
124 ba |
125 rC }
126 a~ ~
+127 ad
diff --git a/font/devhtml/R.proto b/font/devhtml/R.proto
index 3af836de..b2203216 100644
--- a/font/devhtml/R.proto
+++ b/font/devhtml/R.proto
@@ -216,7 +216,11 @@ tdi "
'y 24 0 0x00FD &yacute;
Tp 24 0 0x00FE &thorn;
:y 24 0 0x00FF &yuml;
+'C 24 0 0x0106 &#262;
+'c 24 0 0x0107 &#263;
.i 24 0 0x0131 &#305;
+IJ 24 0 0x0132 &#306;
+ij 24 0 0x0133 &#307;
/L 24 0 0x0141 &#321;
/l 24 0 0x0142 &#322;
OE 24 0 0x0152 &OElig;
diff --git a/font/devlatin1/R.proto b/font/devlatin1/R.proto
index db701eee..358778a6 100644
--- a/font/devlatin1/R.proto
+++ b/font/devlatin1/R.proto
@@ -121,7 +121,6 @@ f 24 0 0146
g 24 0 0147
h 24 0 0150
i 24 0 0151
-.i "
j 24 0 0152
k 24 0 0153
l 24 0 0154
diff --git a/font/devutf8/R.proto b/font/devutf8/R.proto
index 423bc6a6..e62047fc 100644
--- a/font/devutf8/R.proto
+++ b/font/devutf8/R.proto
@@ -216,7 +216,11 @@ tdi "
'y 24 0 0x00FD
Tp 24 0 0x00FE
:y 24 0 0x00FF
+'C 24 0 0x0106
+'c 24 0 0x0107
.i 24 0 0x0131
+IJ 24 0 0x0132
+ij 24 0 0x0133
/L 24 0 0x0141
/l 24 0 0x0142
OE 24 0 0x0152
@@ -348,8 +352,7 @@ cu 24 0 0x222A
is 24 0 0x222B
tf 24 0 0x2234
3d "
-ti 24 0 0x223C
-ap "
+ap 24 0 0x223C
=~ 24 0 0x2245
~~ 24 0 0x2248
~= "
diff --git a/src/roff/troff/glyphuni.cc b/src/roff/troff/glyphuni.cc
index 79a01535..c3389910 100644
--- a/src/roff/troff/glyphuni.cc
+++ b/src/roff/troff/glyphuni.cc
@@ -122,6 +122,11 @@ struct {
{ "d", "0064" },
{ "e", "0065" },
{ "f", "0066" },
+ { "ff", "0066_0066" },
+ { "Fi", "0066_0066_0069" },
+ { "Fl", "0066_0066_006C" },
+ { "fi", "0066_0069" },
+ { "fl", "0066_006C" },
{ "g", "0067" },
{ "h", "0068" },
{ "i", "0069" },
@@ -251,7 +256,11 @@ struct {
{ "'y", "00FD" },
{ "Tp", "00FE" },
{ ":y", "00FF" },
+ { "'C", "0106" },
+ { "'c", "0107" },
{ ".i", "0131" },
+ { "IJ", "0132" },
+ { "ij", "0133" },
{ "/L", "0141" },
{ "/l", "0142" },
{ "OE", "0152" },
@@ -383,7 +392,6 @@ struct {
{ "is", "222B" },
{ "tf", "2234" },
{ "3d", "2234" },
- { "ti", "223C" },
{ "ap", "223C" },
{ "=~", "2245" },
{ "~~", "2248" },
@@ -407,8 +415,6 @@ struct {
{ "rc", "2309" },
{ "lf", "230A" },
{ "rf", "230B" },
- { "la", "2329" },
- { "ra", "232A" },
{ "CR", "240D" },
{ "an", "2500" },
{ "br", "2502" },
@@ -428,11 +434,8 @@ struct {
{ "CL", "2663" },
{ "HE", "2665" },
{ "DI", "2666" },
- { "ff", "FB00" },
- { "fi", "FB01" },
- { "fl", "FB02" },
- { "Fi", "FB03" },
- { "Fl", "FB04" },
+ { "la", "3008" },
+ { "ra", "3009" },
};
// global constructor
diff --git a/src/roff/troff/uniglyph.cc b/src/roff/troff/uniglyph.cc
index 3efb4910..792ec950 100644
--- a/src/roff/troff/uniglyph.cc
+++ b/src/roff/troff/uniglyph.cc
@@ -39,11 +39,11 @@ struct {
char *value;
} unicode_to_glyph_list[] = {
{ "0021", "!" },
- { "0022", "\"" },
+//{ "0022", "\"" },
{ "0022", "dq" },
- { "0023", "#" },
+//{ "0023", "#" },
{ "0023", "sh" },
- { "0024", "$" },
+//{ "0024", "$" },
{ "0024", "Do" },
{ "0025", "%" },
{ "0026", "&" },
@@ -51,11 +51,11 @@ struct {
{ "0028", "(" },
{ "0029", ")" },
{ "002A", "*" },
- { "002B", "+" },
+//{ "002B", "+" },
{ "002B", "pl" },
{ "002C", "," },
{ "002E", "." },
- { "002F", "/" },
+//{ "002F", "/" },
{ "002F", "sl" },
{ "0030", "0" },
{ "0031", "1" },
@@ -70,12 +70,12 @@ struct {
{ "003A", ":" },
{ "003B", ";" },
{ "003C", "<" },
- { "003D", "=" },
+//{ "003D", "=" },
{ "003D", "eq" },
{ "003D_0338", "!=" },
{ "003E", ">" },
{ "003F", "?" },
- { "0040", "@" },
+//{ "0040", "@" },
{ "0040", "at" },
{ "0041", "A" },
{ "0041_0300", "`A" },
@@ -86,6 +86,7 @@ struct {
{ "0041_030A", "oA" },
{ "0042", "B" },
{ "0043", "C" },
+ { "0043_0301", "'C" },
{ "0043_0327", ",C" },
{ "0044", "D" },
{ "0045", "E" },
@@ -138,11 +139,11 @@ struct {
//{ "005C", "\\" },
{ "005D", "rB" },
//{ "005D", "]" },
- { "005E", "^" },
- { "005E", "a^" },
+//{ "005E", "^" },
+//{ "005E", "a^" },
{ "005E", "ha" },
- { "005F", "_" },
- { "005F", "ru" },
+//{ "005F", "_" },
+//{ "005F", "ru" },
{ "005F", "ul" },
{ "0060", "ga" },
//{ "0060", "\\`" },
@@ -155,6 +156,7 @@ struct {
{ "0061_030A", "oa" },
{ "0062", "b" },
{ "0063", "c" },
+ { "0063_0301", "'c" },
{ "0063_0327", ",c" },
{ "0064", "d" },
{ "0065", "e" },
@@ -163,6 +165,11 @@ struct {
{ "0065_0302", "^e" },
{ "0065_0308", ":e" },
{ "0066", "f" },
+ { "0066_0066", "ff" },
+ { "0066_0066_0069", "Fi" },
+ { "0066_0066_006C", "Fl" },
+ { "0066_0069", "fi" },
+ { "0066_006C", "fl" },
{ "0067", "g" },
{ "0068", "h" },
{ "0069", "i" },
@@ -202,15 +209,15 @@ struct {
{ "007A", "z" },
{ "007A_030C", "vz" },
{ "007B", "lC" },
- { "007B", "{" },
+//{ "007B", "{" },
{ "007C", "ba" },
- { "007C", "or" },
- { "007C", "|" },
+//{ "007C", "or" },
+//{ "007C", "|" },
{ "007D", "rC" },
- { "007D", "}" },
- { "007E", "a~" },
+//{ "007D", "}" },
+//{ "007E", "a~" },
{ "007E", "ti" },
- { "007E", "~" },
+//{ "007E", "~" },
{ "00A1", "r!" },
{ "00A2", "ct" },
{ "00A3", "Po" },
@@ -228,7 +235,7 @@ struct {
{ "00AF", "a-" },
{ "00B0", "de" },
{ "00B1", "+-" },
- { "00B1", "t+-" },
+//{ "00B1", "t+-" },
{ "00B2", "S2" },
{ "00B3", "S3" },
{ "00B4", "aa" },
@@ -247,17 +254,19 @@ struct {
{ "00C6", "AE" },
{ "00D0", "-D" },
{ "00D7", "mu" },
- { "00D7", "tmu" },
+//{ "00D7", "tmu" },
{ "00D8", "/O" },
{ "00DE", "TP" },
{ "00DF", "ss" },
{ "00E6", "ae" },
{ "00F0", "Sd" },
{ "00F7", "di" },
- { "00F7", "tdi" },
+//{ "00F7", "tdi" },
{ "00F8", "/o" },
{ "00FE", "Tp" },
{ "0131", ".i" },
+ { "0132", "IJ" },
+ { "0133", "ij" },
{ "0141", "/L" },
{ "0142", "/l" },
{ "0152", "OE" },
@@ -321,13 +330,13 @@ struct {
{ "03D1", "+h" },
{ "03D5", "+f" },
{ "03D6", "+p" },
- { "2010", "-" },
+//{ "2010", "-" },
{ "2010", "hy" },
{ "2013", "en" },
{ "2014", "em" },
- { "2018", "`" },
+//{ "2018", "`" },
{ "2018", "oq" },
- { "2019", "'" },
+//{ "2019", "'" },
{ "2019", "cq" },
{ "201A", "bq" },
{ "201C", "lq" },
@@ -344,7 +353,7 @@ struct {
{ "203E", "rn" },
{ "2044", "f/" },
{ "20AC", "Eu" },
- { "20AC", "eu" },
+//{ "20AC", "eu" },
{ "2111", "Im" },
{ "2118", "wp" },
{ "211C", "Re" },
@@ -382,12 +391,11 @@ struct {
{ "2229", "ca" },
{ "222A", "cu" },
{ "222B", "is" },
- { "2234", "3d" },
+//{ "2234", "3d" },
{ "2234", "tf" },
{ "223C", "ap" },
- { "223C", "ti" },
{ "2245", "=~" },
- { "2248", "~=" },
+//{ "2248", "~=" },
{ "2248", "~~" },
{ "2261", "==" },
{ "2264", "<=" },
@@ -410,7 +418,7 @@ struct {
{ "240D", "CR" },
{ "2500", "an" },
{ "2502", "br" },
- { "2502", "bv" },
+//{ "2502", "bv" },
{ "251D", "rk" },
{ "2525", "lk" },
{ "256D", "lt" },
@@ -428,11 +436,6 @@ struct {
{ "2666", "DI" },
{ "3008", "la" },
{ "3009", "ra" },
- { "FB00", "ff" },
- { "FB01", "fi" },
- { "FB02", "fl" },
- { "FB03", "Fi" },
- { "FB04", "Fl" },
};
// global constructor
diff --git a/tmac/X.tmac b/tmac/X.tmac
index 8b9a1ba8..74bd6a38 100644
--- a/tmac/X.tmac
+++ b/tmac/X.tmac
@@ -43,8 +43,30 @@
.fchar \[rh] \[rA]
.fchar \[bq] ,
.fchar \[aq] '
+.fchar \[IJ] IJ
+.fchar \[ij] ij
+.
+.de X-achar
+. \" Note that character definitions are always interpreted with
+. \" compatibility mode off.
+. fchar \\$1 \
+\\$3\
+\k[acc]\
+\h'(u;-\w'\\$2'-\w'\\$3'/2+\\\\n[skw]+(\w'x'*0)-\\\\n[skw])'\
+\v'(u;\w'x'*0+\\\\n[rst]+(\w'\\$3'*0)-\\\\n[rst])'\
+\\$2\
+\v'(u;\w'x'*0-\\\\n[rst]+(\w'\\$3'*0)+\\\\n[rst])'\
+\h'|\\\\n[acc]u'
+. hcode \\$1\\$4
+..
+.
+.X-achar \['C] \' C c
+.X-achar \['c] \' c c
+.X-achar \[:Y] \[ad] Y y
+.
.if '\*[.T]'X100' \
. char \[radicalex] \h'-\w'\[sr]'u'\[radicalex]\h'\w'\[sr]'u'
+.
.if !\n[_C] \
. mso pspic.tmac
.cp \n[_C]
diff --git a/tmac/Xps.tmac b/tmac/Xps.tmac
index 1064ba6b..764f9079 100644
--- a/tmac/Xps.tmac
+++ b/tmac/Xps.tmac
@@ -45,6 +45,27 @@
.Xps-char \[%0] %\s[\En[.s]*6u/10u]\f[I]0
.Xps-char \[lh] \[->]
.Xps-char \[rh] \[<-]
+.
+.de Xps-achar
+. \" Note that character definitions are always interpreted with
+. \" compatibility mode off.
+. fchar \\$1 \
+\\$3\
+\k[acc]\
+\h'(u;-\w'\\$2'-\w'\\$3'/2+\\\\n[skw]+(\w'x'*0)-\\\\n[skw])'\
+\v'(u;\w'x'*0+\\\\n[rst]+(\w'\\$3'*0)-\\\\n[rst])'\
+\\$2\
+\v'(u;\w'x'*0-\\\\n[rst]+(\w'\\$3'*0)+\\\\n[rst])'\
+\h'|\\\\n[acc]u'
+. hcode \\$1\\$4
+..
+.
+.Xps-achar \['C] \' C c
+.Xps-achar \['c] \' c c
+.
+.fchar \[IJ] IJ
+.fchar \[ij] ij
+.
.cp \n[_C]
.
.do ie '\[char97]'a' \
diff --git a/tmac/dvi.tmac b/tmac/dvi.tmac
index 4eb03b86..c532e841 100644
--- a/tmac/dvi.tmac
+++ b/tmac/dvi.tmac
@@ -17,18 +17,31 @@
.fspecial HI CWI
.fspecial HBI CWI
.
-.\" This uses the dvi-char_1 string in font CW or CWI, dvi-char_0 otherwise.
-.fchar _ \
-\R'dvi-char_ ((\\n[.f] == \f[CW]\\n[.f]\f[]) : \
- (\\n[.f] == \f[CWI]\\n[.f]\f[]))'\\*[dvi-char_\\n[dvi-char_]]
-.fchar \[ul] \R'dvi-char_ \w'M'==\w'i''\\*[dvi-char_\\n[dvi-char_]]
+.\" This uses the dvi-char-_-1 string in fixed-width fonts, dvi-char-_-0
+.\" otherwise.
+.fchar _ \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 and CWI use a real _ character.
-.ds dvi-char_1 _
+.ds dvi-char-_-0 \Z'\v'.08m'\D'R .54m .04m''\h'.5m'
+.\" In fixed-width fonts (CW and CWI) use a real _ character.
+.ds dvi-char-_-1 _
+.
+.fchar \[/l] \
+\R'dvi-char ((\w'M' == \w'i') + \
+ (\\n[.f] == \f[CWI]\\n[.f]\f[]))'\\*[dvi-char-/l-\\n[dvi-char]]
+.ds dvi-char-/l-0 \[slash@for@l]l
+.ds dvi-char-/l-1 \Z'\v'0.22v'\h'-0.02m'\''l
+.ds dvi-char-/l-2 \Z'\v'0.22v'\h'-0.13m'\''l
+.
+.fchar \[/L] \
+\R'dvi-char ((\w'M' == \w'i') + \
+ (\\n[.f] == \f[CWI]\\n[.f]\f[]))'\\*[dvi-char-/L-\\n[dvi-char]]
+.ds dvi-char-/L-0 \h'\w'L'u-\w'\[slash@for@l]L'u'\[slash@for@l]L
+.ds dvi-char-/L-1 \Z'\v'0.22v'\h'-0.14m'\''L
+.ds dvi-char-/L-2 \Z'\v'0.22v'\h'-0.21m'\''L
.
.fchar \[radicalex] \D'R .5m -.04m'\v'.04m'
+.fchar \[ul] \Z'\v'.23m'\D'R .54m .04m''\h'.5m'
.fchar \[br] \Z'\v'.25m'\D'R .04m -1m''
.fchar \[ru] \Z'\v'-.02m'\D'R .54m .04m''\h'.5m'
.fchar \[rn] \Z'\v'-.77m'\D'R .54m .04m''\h'.5m'
@@ -92,6 +105,9 @@ D\v'-.33m'\s0\v'.33m'
.fchar \[Ye] \o'-Y'
.fchar \[Cs] \o'\[mu]o'
.
+.fchar \[IJ] IJ
+.fchar \[ij] ij
+.
.de dvi-achar
. \" Note that character definitions are always interpreted with
. \" compatibility mode off.
@@ -112,6 +128,7 @@ D\v'-.33m'\s0\v'.33m'
.dvi-achar \[~A] ~ A a
.dvi-achar \[:A] \[ad] A a
.dvi-achar \[oA] \[ao] A a
+.dvi-achar \['C] \' C c
.dvi-achar \[`E] \` E e
.dvi-achar \['E] \' E e
.dvi-achar \[^E] ^ E e
@@ -138,6 +155,7 @@ D\v'-.33m'\s0\v'.33m'
.dvi-achar \[~a] ~ a a
.dvi-achar \[:a] \[ad] a a
.dvi-achar \[oa] \[ao] a a
+.dvi-achar \['c] \' c c
.dvi-achar \[`e] \` e e
.dvi-achar \['e] \' e e
.dvi-achar \[^e] ^ e e
diff --git a/tmac/ec.tmac b/tmac/ec.tmac
index d8bff62f..cc8ad341 100644
--- a/tmac/ec.tmac
+++ b/tmac/ec.tmac
@@ -40,7 +40,7 @@
.fspecial CWEC CWTC
.fspecial CWIEC CWITC
.
-.\" remove definitions of glyphs which are TC fonts
+.\" remove definitions of glyphs which are in TC fonts
.rchar \[co] \[rg]
.rchar \[ct]
.rchar \[tm]
diff --git a/tmac/lbp.tmac b/tmac/lbp.tmac
index e7641222..7eb71493 100644
--- a/tmac/lbp.tmac
+++ b/tmac/lbp.tmac
@@ -2,6 +2,7 @@
.\"
.nr _C \n(.C
.cp 0
+.
.ftr CW CR
.ftr C CR
.ftr CO CI
@@ -14,6 +15,56 @@
.ftr Hx HNBI
.ftr EBI EI
.ftr CBI CI
+.
+.fchar \[fi] fi
+.fchar \[fl] fl
+.fchar \[ff] ff
+.fchar \[Fi] ffi
+.fchar \[Fl] ffl
+.fchar \[OE] OE
+.fchar \[oe] oe
+.fchar \[IJ] IJ
+.fchar \[ij] ij
+.fchar \[.i] i
+.
+.de lbp-achar
+. \" Note that character definitions are always interpreted with
+. \" compatibility mode off.
+. fchar \\$1 \
+\\$3\
+\k[acc]\
+\h'(u;-\w'\\$2'-\w'\\$3'/2+\\\\n[skw]+(\w'x'*0)-\\\\n[skw])'\
+\v'(u;\w'x'*0+\\\\n[rst]+(\w'\\$3'*0)-\\\\n[rst])'\
+\\$2\
+\v'(u;\w'x'*0-\\\\n[rst]+(\w'\\$3'*0)+\\\\n[rst])'\
+\h'|\\\\n[acc]u'
+. hcode \\$1\\$4
+..
+.
+.lbp-achar \['A] \' A a
+.lbp-achar \['C] \' C c
+.lbp-achar \['c] \' c c
+.lbp-achar \['I] \' I i
+.lbp-achar \['O] \' O o
+.lbp-achar \['U] \' U u
+.lbp-achar \['Y] \' Y y
+.lbp-achar \['y] \' y y
+.lbp-achar \[:E] \[ad] E e
+.lbp-achar \[:I] \[ad] I i
+.lbp-achar \[:Y] \[ad] Y y
+.lbp-achar \[^A] ^ A a
+.lbp-achar \[^E] ^ E e
+.lbp-achar \[^I] ^ I i
+.lbp-achar \[^O] ^ O o
+.lbp-achar \[^U] ^ U u
+.lbp-achar \[`A] \` A a
+.lbp-achar \[`E] \` E e
+.lbp-achar \[`I] \` I i
+.lbp-achar \[`O] \` O o
+.lbp-achar \[`U] \` U u
+.lbp-achar \[~O] ~ O o
+.lbp-achar \[~o] ~ o o
+.
.cp \n(_C
.
.do mso latin1.tmac
diff --git a/tmac/ps.tmac b/tmac/ps.tmac
index 01868ce5..67209e72 100644
--- a/tmac/ps.tmac
+++ b/tmac/ps.tmac
@@ -50,6 +50,23 @@
.fchar \[IJ] IJ
.fchar \[tm] \s-3\v'-.3m'TM\v'+.3m'\s+3
.
+.de ps-achar
+. \" Note that character definitions are always interpreted with
+. \" compatibility mode off.
+. fchar \\$1 \
+\\$3\
+\k[acc]\
+\h'(u;-\w'\\$2'-\w'\\$3'/2+\\\\n[skw]+(\w'x'*0)-\\\\n[skw])'\
+\v'(u;\w'x'*0+\\\\n[rst]+(\w'\\$3'*0)-\\\\n[rst])'\
+\\$2\
+\v'(u;\w'x'*0-\\\\n[rst]+(\w'\\$3'*0)+\\\\n[rst])'\
+\h'|\\\\n[acc]u'
+. hcode \\$1\\$4
+..
+.
+.ps-achar \['C] \' C c
+.ps-achar \['c] \' c c
+.
.\" pic tests this register to see whether it should use \X'ps:...'
.nr 0p 1
.
diff --git a/tmac/tty.tmac b/tmac/tty.tmac
index e6bd5987..96ff0e18 100644
--- a/tmac/tty.tmac
+++ b/tmac/tty.tmac
@@ -52,6 +52,7 @@
.fchar \[an] -
.fchar \[eu] EUR
.fchar \[Eu] EUR
+.fchar \[.i] i
.
.\" color definitions
.defcolor black rgb #000000