2 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
3 * Use is subject to license terms.
6 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
7 /* All Rights Reserved */
10 * Copyright (c) 1980 Regents of the University of California.
11 * All rights reserved. The Berkeley software License Agreement
12 * specifies the terms and conditions for redistribution.
15 #pragma ident "%Z%%M% %I% %E% SMI"
21 diacrit(int p1
, int type
)
32 printf(".nr 10 %du\n", max(eht
[p1
]-ebase
[p1
]-VERT(2), 0));
37 /* vertical shift if high */
38 printf(".nr 10 %du\n", VERT(max(eht
[p1
]-ebase
[p1
]-EM(1, ps
), 0)));
40 printf(".if \\n(ct>1 .nr 10 \\n(10+\\s%d.25m\\s0\n", effps
);
42 /* horiz shift if high */
43 printf(".nr %d \\s%d.1m\\s0\n", t
, effps
);
45 printf(".if \\n(ct>1 .nr %d \\s%d.15m\\s0\n", t
, effps
);
50 printf(".ds %d \\v'-.4m'\\s%d\\(->\\s0\\v'.4m'\n",
56 printf(".ds %d \\v'-12p'_\\v'12p'\n", c
);
59 ".ds %d \\v'-.4m'\\s%d\\z\\(<-\\(->\\s0\\v'.4m'\n",
64 printf(".ds %d ^\n", c
);
67 printf(".ds %d ~\n", c
);
72 ".ds %d \\s%d\\v'-.67m'.\\v'.67m'\\s0\n", c
, effps
);
74 printf(".ds %d \\v'-12p'.\\v'12p'\n", c
);
80 ".ds %d \\s%d\\v'-.67m'..\\v'.67m\\s0'\n",
83 printf(".ds %d \\v'-12p'..\\v'12p'\n", c
);
88 printf(".ds %d \\s%d\\v'.28m'\\h'.05m'\\l'\\n"
89 "(%du-.1m\\(rn'\\h'.05m'\\v'-.28m'\\s0\n",
92 printf(".ds %d \\v'-12p'\\l'\\n(%du'\\v'12p'\n",
98 printf(".ds %d \\l'\\n(%du\\(ul'\n", c
, p1
);
99 printf(".nr %d 0\n", t
);
100 printf(".nr 10 0-%d\n", ebase
[p1
]);
102 printf(".ds %d \\l'\\n(%du'\n", c
, p1
);
108 if (lfont
[p1
] != ITAL
)
109 printf(".nr %d 0\n", t
);
110 printf(".as %d \\h'-\\n(%du-\\n(%du/2u+\\n(%du'\\v'0-\\n(10u'\\*(%d",
112 printf("\\v'\\n(10u'\\h'-\\n(%du+\\n(%du/2u-\\n(%du'\n", c
, p1
, t
);
113 /* BUG - should go to right end of widest */
115 printf(".as %d \\h'-\\n(%du-\\n(%du/2u'\\v'0-\\n(10u'\\*(%d",
117 printf("\\v'\\n(10u'\\h'-\\n(%du+\\n(%du/2u'\n", c
, p1
);
121 eht
[p1
] += VERT(EM(0.15, ps
)); /* 0.15m */
123 printf(".\tdiacrit: %c over S%d, lf=%c, rf=%c, h=%d,b=%d\n",
124 type
, p1
, lfont
[p1
], rfont
[p1
], eht
[p1
], ebase
[p1
]);
129 printf(".\tdiacrit: %c over S%d, h=%d, b=%d\n",
130 type
, p1
, eht
[p1
], ebase
[p1
]);