summaryrefslogtreecommitdiffstats
path: root/contrib/groff/tmac/dvi.tmac
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/groff/tmac/dvi.tmac')
-rw-r--r--contrib/groff/tmac/dvi.tmac102
1 files changed, 77 insertions, 25 deletions
diff --git a/contrib/groff/tmac/dvi.tmac b/contrib/groff/tmac/dvi.tmac
index 4eb03b8..27fd5b3 100644
--- a/contrib/groff/tmac/dvi.tmac
+++ b/contrib/groff/tmac/dvi.tmac
@@ -11,27 +11,47 @@
.ftr TT CW
.ftr H HR
.
-.special TR TI
+.special TR TI MI S SA SB CW
.fspecial TI CWI
.fspecial TBI CWI
.fspecial HI CWI
.fspecial HBI CWI
+.fspecial CW SC
+.fspecial CWI SC
.
-.\" 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')'\E*[dvi-char-_-\\n[dvi-char]]
.\" Normally use a rule.
+.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') + \
+ (\En[.f] == \f[CWI]\En[.f]\f[]))'\E*[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') + \
+ (\En[.f] == \f[CWI]\En[.f]\f[]))'\E*[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
+.
.\" 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 _
+.char \[br] \Z'\v'.25m'\D'R .04m -1m''
+.char \[ul] \Z'\v'.23m'\D'R .54m .04m''\h'.5m'
+.char \[rn] \Z'\v'-.77m'\D'R .54m .04m''\h'.5m'
.
-.fchar \[radicalex] \D'R .5m -.04m'\v'.04m'
-.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'
+.char \[or] \h'.1m'\Z'\D'l 0 -.675m''\h'.1m'
+.char \[ru] \Z'\v'-.02m'\D'R .54m .04m''\h'.5m'
+.
+.fchar \[sr] \v'-.75m'\[sqrt]\v'.75m'
+.fchar \[sqrtex] \D'R .5m -.04m'\v'.04m'
+.fchar \[radicalex] \v'-.75m'\D'R .5m -.04m'\v'.79m'
.fchar \[co] \
\z\s-2\[ci]\s0\
\h'\w'\s-2\[ci]\s0'u-\w'\s-4C\s0'u/2u'\
@@ -42,16 +62,26 @@
\h'\w'\s-2\[ci]\s0'u-\w'\s-4R\s0'u/2u'\
\s-4R\s0\
\h'\w'\s-2\[ci]\s0'u-\w'\s-4R\s0'u/2u'
-.fchar \[fm] \v'-.35m'\s[\\n[.s]*7u/10u]\[prime]\s0\v'.35m'
+.fchar \[fm] \v'-.35m'\s[\En[.s]*7u/10u]\[prime]\s0\v'.35m'
+.fchar \[sd] \v'-.35m'\s[\En[.s]*7u/10u]\[prime]\[prime]\s0\v'.35m'
.fchar \[de] \h'.05m'\v'-.54m'\D'c .3m'\v'.54m'\h'.05m'
.fchar \[ct] \o'c/'
.fchar \[sq] \
\Z'\h'.05m'\D'R .4m -.04m'\v'.04m'\h'-.04m'\
\D'R .04m -.4m'\v'.04m'\D'R -.4m -.04m'\D'R .04m .4m''\h'.5m'
.\"char \[sq] \h'.05m'\D'l .4m 0'\D'l 0 -.4m'\D'l -.4m 0'\D'l 0 .4m'\h'.45m'
-.fchar \[!=] \[slashnot]\[eq]
-.fchar \[tm] \v'-.3m'\s[\\n[.s]/2u]TM\s0\v'.3m'
-.fchar \[aq] '
+.\" SC contains a real \[!=] glyph
+.schar \[!=] \[slashnot]\[eq]
+.schar \[nm] \o'\F[T]\f[R]/\[mo]'
+.fschar CW \[nm] \o'/\[mo]'
+.fschar CWI \[nm] \o'\f[CW]/\[mo]'
+.schar \[ne] \[slashnot]\[==]
+.fschar CW \[ne] \o'/\[==]'
+.fschar CWI \[ne] \o'\f[CW]/\[==]'
+.fchar \[=~] \v'.1m'\Z'\[eq]'\v'-.4m'\[ap]\v'.3m'
+.fchar \[tm] \v'-.3m'\s[\En[.s]/2u]TM\s0\v'.3m'
+.\" TC fonts contain real \[aq] glyphs
+.schar \[aq] '
.fchar \[bq] ,
.fchar \[Bq] ,\h'\w'\[rq]'u-(2u*\w"'"u)',
.fchar \[ho] \s[\En[.s]/2u]\v'.4m'c\v'-.4m'\s0
@@ -62,14 +92,30 @@ I\h'-.25m'\v'-.33m'\s[\En[.s]*6u/10u]\v'.33m'\
D\v'-.33m'\s0\v'.33m'
.fchar \[Tp] \zlp
.fchar \[nb] \[slashnot]\[sb]
+.fchar \[nc] \[slashnot]\[sp]
.cflags 8 \[an]
-.fchar \[an] \h'-.167m'\[mi]\h'-.167m'
+.schar \[an] \h'-.167m'\[mi]\h'-.167m'
+.fschar CW \[an] -
+.fschar CWI \[an] \f[CW]\[mi]
+.\" we follow the EC ligatures for fixed-width dashes
+.fchar \[em] --
+.fchar \[en] -
+.fchar \[hy] -
+.fschar CW \[va] \o'\[ua]\[da]'
+.fschar CWI \[va] \o'\[ua]\[da]'
+.fschar CW \[<>] \o'\[<-]\[->]'
+.fschar CWI \[<>] \o'\[<-]\[->]'
+.fchar \[lh] \[lA]
+.fchar \[rh] \[rA]
+.
+.fchar \[f/] /
.
.\" Define some fractions.
.de dvi-frac
. fchar \[\\$1\\$2] \
-\v'-.25m'\s[\\\\n[.s]*7u/10u]\\$1\s0\v'.25m'\h'-.2m'\
-/\h'-.2m'\v'.25m'\s[\\\\n[.s]*7u/10u]\\$2\s0\v'-.25m'
+\v'-.25m'\s[\\En[.s]*7u/10u]\\$1\s0\v'.25m'\
+\h'-.2m'\[f/]\h'-.2m'\
+\v'.25m'\s[\\En[.s]*7u/10u]\\$2\s0\v'-.25m'
..
.
.dvi-frac 1 2
@@ -86,23 +132,27 @@ D\v'-.33m'\s0\v'.33m'
.fchar \[S3] \v'-.2m'\s-33\s+3\v'+.2m'
.fchar \[Of] \v'-.2m'\s'\En[.s]*6u/10u'\o'_a'\s0\v'.2m'
.fchar \[Om] \v'-.2m'\s'\En[.s]*6u/10u'\o'_o'\s0\v'.2m'
+.fchar \[fo] \v'-.1m'\s-3<\s+3\v'+.1m'
+.fchar \[fc] \v'-.1m'\s-3>\s+3\v'+.1m'
.fchar \[Fo] \v'-.1m'\s-3<\h'-.3m'<\s+3\v'+.1m'
.fchar \[Fc] \v'-.1m'\s-3>\h'-.3m'>\s+3\v'+.1m'
.fchar \[bb] |
-.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.
. 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])'\
+\h'(u;-\w'\\$2'-\w'\\$3'/2+\\En[skw]+(\w'x'*0)-\\En[skw])'\
+\v'(u;\w'x'*0+\\En[rst]+(\w'\\$3'*0)-\\En[rst])'\
\\$2\
-\v'(u;\w'x'*0-\\\\n[rst]+(\w'\\$3'*0)+\\\\n[rst])'\
-\h'|\\\\n[acc]u'
+\v'(u;\w'x'*0-\\En[rst]+(\w'\\$3'*0)+\\En[rst])'\
+\h'|\\En[acc]u'
. hcode \\$1\\$4
..
.
@@ -112,6 +162,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 +189,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
OpenPOWER on IntegriCloud