| Home / lib / S_Software manuals / ST_TeX, LaTeX / | ||
|
|
Size 3.8Mb Date Nov 27, 2004 |
define mathsy(#) = fontJnfo [ # + param-base [ mathsy-end
define math-X-height = mathsy (b) {height of 'x' }
define math-quad = mathsy F) {18mu}
define numl = mathsy (8) { numerator shift-up in display styles }
define num2 = mathsy(9) {numerator shift-up in non-display, non-\atop}
define питЗ = mathsyA0) {numerator shift-up in non-display \atop}
define denoml = mathsyA1) {denominator shift-down in display styles}
define denom2 = mathsyA2) {denominator shift-down in non-display styles}
define supl = mathsyA3) {superscript shift-up in uncramped display style}
define sup2 = mathsyA4) {superscript shift-up in uncramped non-display}
define sup3 = mathsy(lb) {superscript shift-up in cramped styles}
define subl = mathsy A6) {subscript shift-down if superscript is absent}
define sub2 = mathsy A7) {subscript shift-down if superscript is present}
define sup-drop = mathsyA8) {superscript baseline below top of large box}
define sub-drop = mathsyA9) {subscript baseline below bottom of large box}
define deliml = mathsyB0) {size of \atopwithdelims delimiters in display styles}
define delim2 = mathsyB1) {size of \atopwithdelims delimiters in non-displays}
define axis-height = mathsyB2) {height of fraction lines above the baseline}
define totaLmathsy-params = 22
701...
When the style changes, the following piece of program computes associated information:
(Set up the values of cursize and cur-mu, based on curstyle ) =
begin if curstyle < scriptstyle then cursize <— textsize
else cursize <— 16 * ((curstyle — textstyle) div 2);
curjmu <— x-over-n(math-quad(cursize), 18);
end
This code is used in sections , , , , , and
704...
Here is a subroutine that creates a new box, whose list contains a single character, and whose width
includes the italic correction for that character...
There are three implicit
parameters, passed in global variables: curjmlist points to the first node or noad in the given mlist (and
it might be null); curstyle is a style code; and mlist-penalties is true if penalty nodes for potential line
breaks are to be inserted into the resulting hlist...
We need to do a lot of different things, so mlist-to-hlist makes two passes over the given mlist...
(Cases for nodes that can appear in an mlist, after which we goto done-with-node ) =
style-node: begin curstyle <— subtype(q);
(Set up the values of cursize and сиг-ти, based on curstyle );
goto donejwith-node;
end;
choice-node: (Change this node to a style node followed by the correct choice, then goto
done-with-node );
ins-node, mark-node, adjusLnode, whatsiLnode,penalty-node, disc-node: goto done-with-node;
rule-node: begin if height(q) > maxJi then maxJi <— height(q);
if depth(q) > max-d then max-d <— depth (q);
goto done-with-node;
end;
glue-node: begin (Convert math glue to ordinary glue );
goto done-with-node;
end;
kern-node: begin math-kern (q, сиг-ти); goto done-with-node;
end;
This code is used in section
731...
(Declare math construction procedures ) +=
procedure make-under(q : pointer);
var p,x,y: pointer; {temporary registers for box construction}
delta: scaled; {overall height plus depth}
begin x <— clean-box (nucleus (q), curstyle); p <— new-kernC * default-rule-thickness); link(x) <— p;
link(p) <— fraction-rule (default-rule-thickness); у <— vpack(x, natural);
delta <— height(y) + depth(y) + default-rule-thickness; height(y) <— height(x);
depth(y) <— delta — height (y); info (nucleus (q)) <— y; math-type (nucleus (q)) <— sub-box;
end;
736...
| © 2007 eKnigu | ||
| Металлопрокат: алюминиевые прутки d в Москве. Сниму 1 метр торговой площади - аренда погрузчика. Частные бесплатные объявления. |
