summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2011-01-13 11:15:51 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2011-01-13 11:15:51 +0000
commitafd6d32cfe467cfc3f9379c4130b63990c42ae37 (patch)
tree0c987caac502a57e0483e9b81575737f49de4279
parent89de11b332c58687e4463ccc2b17cfd8d42c5d69 (diff)
still more e-pTeX
git-svn-id: svn://tug.org/texlive/trunk@21053 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/web2c/eptexdir/eptex.ech98
-rw-r--r--Build/source/texk/web2c/eptexdir/etex.ch030
-rw-r--r--Build/source/texk/web2c/eptexdir/etex.ch140
-rw-r--r--Build/source/texk/web2c/ptexdir/ptex-base.ch138
4 files changed, 97 insertions, 209 deletions
diff --git a/Build/source/texk/web2c/eptexdir/eptex.ech b/Build/source/texk/web2c/eptexdir/eptex.ech
index ba29c389e54..882003613ec 100644
--- a/Build/source/texk/web2c/eptexdir/eptex.ech
+++ b/Build/source/texk/web2c/eptexdir/eptex.ech
@@ -8,7 +8,7 @@
\def\epTeX{$\varepsilon$-p\TeX}
@z
-@x
+@x e-pTeX: banner
{printed when p\TeX\ starts}
@y
{printed when p\TeX\ starts}
@@ -25,13 +25,11 @@
@d max_quarterword=@"FFFF {largest allowable value in a |quarterword|}
@z
-@x
+@x e-pTeX: node types
last_node_type_code:
if (type(tail)<>math_node)or(subtype(tail)<>end_M_code) then
if type(tail)<=unset_node then cur_val:=type(tail)+1
else cur_val:=unset_node+2;
- end; {there are no other cases}
- if LR_temp<>null then insert_end_M;
@y
last_node_type_code:
if (type(tail)<>math_node)or(subtype(tail)<>end_M_code) then
@@ -43,8 +41,6 @@
else cur_val:=type(tail)-1;
end
else cur_val:=unset_node;
- end; {there are no other cases}
- if LR_temp<>null then insert_end_M;
@z
@x e-pTeX: if primitives l.27294
@@ -66,76 +62,27 @@ current_if_type_code: begin if cond_ptr=null then cur_val:=0
@z
@x e-pTeX: displacement value when typesetting right-to-left l.27798
-@<Glob...@>=
@!LR_temp:pointer; {holds a temporarily removed \.{\\endM} node}
@y
-@<Glob...@>=
@!revdisp:scaled; {temporary value of displacement}
@!LR_temp:pointer; {holds a temporarily removed \.{\\endM} node}
@z
@x e-pTeX: reverse nodes of an hlist l.28010
-function reverse(@!this_box,@!t:pointer; var cur_g:scaled;
- var cur_glue:real):pointer;
-label reswitch,next_p,done;
var l:pointer; {the new list}
-@!p:pointer; {the current node}
-@!q:pointer; {the next node}
-@!g_order: glue_ord; {applicable order of infinity for glue}
-@!g_sign: normal..shrinking; {selects type of glue}
-@!glue_temp:real; {glue value before rounding}
-@!m,@!n:halfword; {count of unmatched math nodes}
-begin g_order:=glue_order(this_box); g_sign:=glue_sign(this_box);
-l:=t; p:=temp_ptr; m:=min_halfword; n:=min_halfword;
-loop@+ begin while p<>null do
- @<Move node |p| to the new list and go to the next node;
- or |goto done| if the end of the reflected segment has been reached@>;
- if (t=null)and(m=min_halfword)and(n=min_halfword) then goto done;
- p:=new_math(0,info(LR_ptr)); LR_problems:=LR_problems+10000;
- {manufacture one missing math node}
- end;
-done:reverse:=l;
-end;
-
-@ @<Move node |p| to the new list...@>=
-reswitch: if is_char_node(p) then
- repeat f:=font(p); c:=character(p);
- cur_h:=cur_h+char_width(f)(char_info(f)(c));
- q:=link(p); link(p):=l; l:=p; p:=q;
- until not is_char_node(p)
-else @<Move the non-|char_node| |p| to the new list@>
-
-@ @<Move the non-|char_node| |p| to the new list@>=
-begin q:=link(p);
-case type(p) of
-hlist_node,vlist_node,rule_node,kern_node: rule_wd:=width(p);
-@t\4@>@<Cases of |reverse| that need special treatment@>@;
-edge_node: confusion("LR2");
-@:this can't happen LR2}{\quad LR2@>
-othercases goto next_p
-endcases;@/
@y
-function reverse(@!this_box,@!t:pointer; var cur_g:scaled;
- var cur_glue:real):pointer;
-label reswitch,next_p,done;
var l,la:pointer; {the new list}
disp,disp2: scaled; { displacement } disped: boolean;
-@!p:pointer; {the current node}
-@!q:pointer; {the next node}
-@!g_order: glue_ord; {applicable order of infinity for glue}
-@!g_sign: normal..shrinking; {selects type of glue}
-@!glue_temp:real; {glue value before rounding}
-@!m,@!n:halfword; {count of unmatched math nodes}
+@z
+@x e-pTeX: reverse nodes of an hlist l.28010
+begin g_order:=glue_order(this_box); g_sign:=glue_sign(this_box);
+@y
begin g_order:=glue_order(this_box); g_sign:=glue_sign(this_box);
disp:=revdisp; disped:=false;
-l:=t; p:=temp_ptr; m:=min_halfword; n:=min_halfword;
-loop@+ begin while p<>null do
- @<Move node |p| to the new list and go to the next node;
- or |goto done| if the end of the reflected segment has been reached@>;
- if (t=null)and(m=min_halfword)and(n=min_halfword) then goto done;
- p:=new_math(0,info(LR_ptr)); LR_problems:=LR_problems+10000;
- {manufacture one missing math node}
- end;
+@z
+@x e-pTeX: reverse nodes of an hlist l.28010
+done:reverse:=l;
+@y
done:
{if the beginning node of the new list isn't |disp_node|, }
{we insert |disp_node| to fix.}
@@ -144,26 +91,18 @@ if (l<>null)and(type(l)<>disp_node) then begin
disp_dimen(p):=disp; link(p):=l; reverse:=p;
end
else reverse:=l;
-end;
-
-@ @<Move node |p| to the new list...@>=
-reswitch: if is_char_node(p) then
- repeat f:=font(p); c:=character(p);
- cur_h:=cur_h+char_width(f)(char_info(f)(c));
+@z
+@x e-pTeX: reverse nodes of an hlist l.28010
+ q:=link(p); link(p):=l; l:=p; p:=q;
+@y
if font_dir[f]<>dir_default then begin
q:=link(p); la:=l; l:=p; p:=link(q); link(q):=la;
end
else begin q:=link(p); link(p):=l; l:=p; p:=q; end;
- until not is_char_node(p)
-else @<Move the non-|char_node| |p| to the new list@>
-
-@ @<Move the non-|char_node| |p| to the new list@>=
-begin q:=link(p);
-case type(p) of
-hlist_node,vlist_node,rule_node,kern_node: rule_wd:=width(p);
-@t\4@>@<Cases of |reverse| that need special treatment@>@;
-edge_node: confusion("LR2");
-@:this can't happen LR2}{\quad LR2@>
+@z
+@x e-pTeX: reverse nodes of an hlist l.28010
+othercases goto next_p
+@y
disp_node: begin
disp2:=disp_dimen(p); disp_dimen(p):=disp; disp:=disp2;
{ print_nl("ep TeXXeT:"); print_int(disp_dimen(p)); }
@@ -171,7 +110,6 @@ disp_node: begin
{ if not disped then begin disped:=true; print(" NL"); end; end; }
if not disped then disped:=true; end;
othercases goto next_p
-endcases;@/
@z
@x e-pTeX: if primitives l.28545
diff --git a/Build/source/texk/web2c/eptexdir/etex.ch0 b/Build/source/texk/web2c/eptexdir/etex.ch0
index 5da8d0e05ab..45ccb8246c0 100644
--- a/Build/source/texk/web2c/eptexdir/etex.ch0
+++ b/Build/source/texk/web2c/eptexdir/etex.ch0
@@ -1,36 +1,6 @@
% eptexdir/etex.ch0: changefile used to build e-pTeX, see eptexdir/eptex-base.ch for details.
% Public domain. Originally written by Peter Breitenlohner <tex-live@tug.org>.
-@x [15.208]
- {( or \.{\\pagediscards}, \.{\\splitdiscards} )}
-@y
-@z
-@x [15.208]
- {or text direction directives ( \.{\\beginL}, etc.~)}
-@y
-@z
-@x [15.208]
- {( or \.{\\middle} )}
-@y
-@z
-
-@x [15.209]
- {( or \.{\\interactionmode} )}
-@y
-@z
-@x [15.209]
- {(or \.{\\interlinepenalties}, etc.~)}
-@y
-@z
-@x [15.209]
- {( or \.{\\protected} )}
-@y
-@z
-@x [15.209]
- {( or \.{\\readline} )}
-@y
-@z
-
@x [17.236] l.4960 - first web2c, then e-TeX additional integer parameters
@d int_pars=web2c_int_pars {total number of integer parameters}
@#
diff --git a/Build/source/texk/web2c/eptexdir/etex.ch1 b/Build/source/texk/web2c/eptexdir/etex.ch1
index adf57d5f4ee..0145dd260da 100644
--- a/Build/source/texk/web2c/eptexdir/etex.ch1
+++ b/Build/source/texk/web2c/eptexdir/etex.ch1
@@ -15,46 +15,6 @@
begin print_direction_alt(box_dir(p));
@z
-@x [15.208]
-@d un_vbox=un_hbox+1 {unglue a box ( \.{\\unvbox}, \.{\\unvcopy} )}
-@y
-@d un_vbox=un_hbox+1 {unglue a box ( \.{\\unvbox}, \.{\\unvcopy} )}
- {( or \.{\\pagediscards}, \.{\\splitdiscards} )}
-@z
-@x [15.208]
-@d valign=halign+1 {vertical table alignment ( \.{\\valign} )}
-@y
-@d valign=halign+1 {vertical table alignment ( \.{\\valign} )}
- {or text direction directives ( \.{\\beginL}, etc.~)}
-@z
-@x [15.208]
-@d left_right=eq_no+1 {variable delimiter ( \.{\\left}, \.{\\right} )}
-@y
-@d left_right=eq_no+1 {variable delimiter ( \.{\\left}, \.{\\right} )}
- {( or \.{\\middle} )}
-@z
-
-@x [15.209]
-@d set_box_dimen=set_page_int+1 {change dimension of box ( \.{\\wd}, \.{\\ht}, \.{\\dp} )}
-@d set_shape=set_box_dimen+1 {specify fancy paragraph shape ( \.{\\parshape} )}
-@y
- {( or \.{\\interactionmode} )}
-@d set_box_dimen=set_page_int+1 {change dimension of box ( \.{\\wd}, \.{\\ht}, \.{\\dp} )}
-@d set_shape=set_box_dimen+1 {specify fancy paragraph shape ( \.{\\parshape} )}
- {(or \.{\\interlinepenalties}, etc.~)}
-@z
-@x [15.209]
-@d let=prefix+1 {assign a command code ( \.{\\let}, \.{\\futurelet} )}
-@d shorthand_def=let+1 {code definition ( \.{\\chardef}, \.{\\countdef}, etc.~)}
-@d read_to_cs=shorthand_def+1 {read into a control sequence ( \.{\\read} )}
-@y
- {( or \.{\\protected} )}
-@d let=prefix+1 {assign a command code ( \.{\\let}, \.{\\futurelet} )}
-@d shorthand_def=let+1 {code definition ( \.{\\chardef}, \.{\\countdef}, etc.~)}
-@d read_to_cs=shorthand_def+1 {read into a control sequence ( \.{\\read} )}
- {( or \.{\\readline} )}
-@z
-
@x [17.236]
@d int_pars=60 {total number of integer parameters}
@d count_base=int_base+int_pars {256 user \.{\\count} registers}
diff --git a/Build/source/texk/web2c/ptexdir/ptex-base.ch b/Build/source/texk/web2c/ptexdir/ptex-base.ch
index 4d9bc2c6a83..f5c17e61be0 100644
--- a/Build/source/texk/web2c/ptexdir/ptex-base.ch
+++ b/Build/source/texk/web2c/ptexdir/ptex-base.ch
@@ -729,6 +729,18 @@ kern_node,disp_node,math_node,penalty_node:
@d vmove=22 {vertical motion ( \.{\\raise}, \.{\\lower} )}
@d un_hbox=23 {unglue a box ( \.{\\unhbox}, \.{\\unhcopy} )}
@d un_vbox=24 {unglue a box ( \.{\\unvbox}, \.{\\unvcopy} )}
+@y
+@d char_num=max_char_code+1 {character specified numerically ( \.{\\char} )}
+@d math_char_num=char_num+1 {explicit math code ( \.{\\mathchar} )}
+@d mark=math_char_num+1 {mark definition ( \.{\\mark} )}
+@d xray=mark+1 {peek inside of \TeX\ ( \.{\\show}, \.{\\showbox}, etc.~)}
+@d make_box=xray+1 {make a box ( \.{\\box}, \.{\\copy}, \.{\\hbox}, etc.~)}
+@d hmove=make_box+1 {horizontal motion ( \.{\\moveleft}, \.{\\moveright} )}
+@d vmove=hmove+1 {vertical motion ( \.{\\raise}, \.{\\lower} )}
+@d un_hbox=vmove+1 {unglue a box ( \.{\\unhbox}, \.{\\unhcopy} )}
+@d un_vbox=un_hbox+1 {unglue a box ( \.{\\unvbox}, \.{\\unvcopy} )}
+@z
+@x [15.208] l.4207 - pTeX: Add inhibit_glue, chg_dir.
@d remove_item=25 {nullify last item ( \.{\\unpenalty},
\.{\\unkern}, \.{\\unskip} )}
@d hskip=26 {horizontal glue ( \.{\\hskip}, \.{\\hfil}, etc.~)}
@@ -739,6 +751,19 @@ kern_node,disp_node,math_node,penalty_node:
@d leader_ship=31 {use a box ( \.{\\shipout}, \.{\\leaders}, etc.~)}
@d halign=32 {horizontal table alignment ( \.{\\halign} )}
@d valign=33 {vertical table alignment ( \.{\\valign} )}
+@y
+@d remove_item=un_vbox+1 {nullify last item ( \.{\\unpenalty},
+ \.{\\unkern}, \.{\\unskip} )}
+@d hskip=remove_item+1 {horizontal glue ( \.{\\hskip}, \.{\\hfil}, etc.~)}
+@d vskip=hskip+1 {vertical glue ( \.{\\vskip}, \.{\\vfil}, etc.~)}
+@d mskip=vskip+1 {math glue ( \.{\\mskip} )}
+@d kern=mskip+1 {fixed space ( \.{\\kern})}
+@d mkern=kern+1 {math kern ( \.{\\mkern} )}
+@d leader_ship=mkern+1 {use a box ( \.{\\shipout}, \.{\\leaders}, etc.~)}
+@d halign=leader_ship+1 {horizontal table alignment ( \.{\\halign} )}
+@d valign=halign+1 {vertical table alignment ( \.{\\valign} )}
+@z
+@x [15.208] l.4207 - pTeX: Add inhibit_glue, chg_dir.
@d no_align=34 {temporary escape from alignment ( \.{\\noalign} )}
@d vrule=35 {vertical rule ( \.{\\vrule} )}
@d hrule=36 {horizontal rule ( \.{\\hrule} )}
@@ -755,6 +780,25 @@ kern_node,disp_node,math_node,penalty_node:
@d discretionary=47 {discretionary texts ( \.{\\-}, \.{\\discretionary} )}
@d eq_no=48 {equation number ( \.{\\eqno}, \.{\\leqno} )}
@d left_right=49 {variable delimiter ( \.{\\left}, \.{\\right} )}
+@y
+@d no_align=valign+1 {temporary escape from alignment ( \.{\\noalign} )}
+@d vrule=no_align+1 {vertical rule ( \.{\\vrule} )}
+@d hrule=vrule+1 {horizontal rule ( \.{\\hrule} )}
+@d insert=hrule+1 {vlist inserted in box ( \.{\\insert} )}
+@d vadjust=insert+1 {vlist inserted in enclosing paragraph ( \.{\\vadjust} )}
+@d ignore_spaces=vadjust+1 {gobble |spacer| tokens ( \.{\\ignorespaces} )}
+@d after_assignment=ignore_spaces+1 {save till assignment is done ( \.{\\afterassignment} )}
+@d after_group=after_assignment+1 {save till group is done ( \.{\\aftergroup} )}
+@d break_penalty=after_group+1 {additional badness ( \.{\\penalty} )}
+@d start_par=break_penalty+1 {begin paragraph ( \.{\\indent}, \.{\\noindent} )}
+@d ital_corr=start_par+1 {italic correction ( \.{\\/} )}
+@d accent=ital_corr+1 {attach accent in text ( \.{\\accent} )}
+@d math_accent=accent+1 {attach accent in math ( \.{\\mathaccent} )}
+@d discretionary=math_accent+1 {discretionary texts ( \.{\\-}, \.{\\discretionary} )}
+@d eq_no=discretionary+1 {equation number ( \.{\\eqno}, \.{\\leqno} )}
+@d left_right=eq_no+1 {variable delimiter ( \.{\\left}, \.{\\right} )}
+@z
+@x [15.208] l.4207 - pTeX: Add inhibit_glue, chg_dir.
@d math_comp=50 {component of formula ( \.{\\mathbin}, etc.~)}
@d limit_switch=51 {diddle limit conventions ( \.{\\displaylimits}, etc.~)}
@d above=52 {generalized fraction ( \.{\\above}, \.{\\atop}, etc.~)}
@@ -780,41 +824,6 @@ kern_node,disp_node,math_node,penalty_node:
\.{\\lastkern}, \.{\\lastskip} )}
@d max_non_prefixed_command=70 {largest command code that can't be \.{\\global}}
@y
-@d char_num=max_char_code+1 {character specified numerically ( \.{\\char} )}
-@d math_char_num=char_num+1 {explicit math code ( \.{\\mathchar} )}
-@d mark=math_char_num+1 {mark definition ( \.{\\mark} )}
-@d xray=mark+1 {peek inside of \TeX\ ( \.{\\show}, \.{\\showbox}, etc.~)}
-@d make_box=xray+1 {make a box ( \.{\\box}, \.{\\copy}, \.{\\hbox}, etc.~)}
-@d hmove=make_box+1 {horizontal motion ( \.{\\moveleft}, \.{\\moveright} )}
-@d vmove=hmove+1 {vertical motion ( \.{\\raise}, \.{\\lower} )}
-@d un_hbox=vmove+1 {unglue a box ( \.{\\unhbox}, \.{\\unhcopy} )}
-@d un_vbox=un_hbox+1 {unglue a box ( \.{\\unvbox}, \.{\\unvcopy} )}
-@d remove_item=un_vbox+1 {nullify last item ( \.{\\unpenalty},
- \.{\\unkern}, \.{\\unskip} )}
-@d hskip=remove_item+1 {horizontal glue ( \.{\\hskip}, \.{\\hfil}, etc.~)}
-@d vskip=hskip+1 {vertical glue ( \.{\\vskip}, \.{\\vfil}, etc.~)}
-@d mskip=vskip+1 {math glue ( \.{\\mskip} )}
-@d kern=mskip+1 {fixed space ( \.{\\kern})}
-@d mkern=kern+1 {math kern ( \.{\\mkern} )}
-@d leader_ship=mkern+1 {use a box ( \.{\\shipout}, \.{\\leaders}, etc.~)}
-@d halign=leader_ship+1 {horizontal table alignment ( \.{\\halign} )}
-@d valign=halign+1 {vertical table alignment ( \.{\\valign} )}
-@d no_align=valign+1 {temporary escape from alignment ( \.{\\noalign} )}
-@d vrule=no_align+1 {vertical rule ( \.{\\vrule} )}
-@d hrule=vrule+1 {horizontal rule ( \.{\\hrule} )}
-@d insert=hrule+1 {vlist inserted in box ( \.{\\insert} )}
-@d vadjust=insert+1 {vlist inserted in enclosing paragraph ( \.{\\vadjust} )}
-@d ignore_spaces=vadjust+1 {gobble |spacer| tokens ( \.{\\ignorespaces} )}
-@d after_assignment=ignore_spaces+1 {save till assignment is done ( \.{\\afterassignment} )}
-@d after_group=after_assignment+1 {save till group is done ( \.{\\aftergroup} )}
-@d break_penalty=after_group+1 {additional badness ( \.{\\penalty} )}
-@d start_par=break_penalty+1 {begin paragraph ( \.{\\indent}, \.{\\noindent} )}
-@d ital_corr=start_par+1 {italic correction ( \.{\\/} )}
-@d accent=ital_corr+1 {attach accent in text ( \.{\\accent} )}
-@d math_accent=accent+1 {attach accent in math ( \.{\\mathaccent} )}
-@d discretionary=math_accent+1 {discretionary texts ( \.{\\-}, \.{\\discretionary} )}
-@d eq_no=discretionary+1 {equation number ( \.{\\eqno}, \.{\\leqno} )}
-@d left_right=eq_no+1 {variable delimiter ( \.{\\left}, \.{\\right} )}
@d math_comp=left_right+1 {component of formula ( \.{\\mathbin}, etc.~)}
@d limit_switch=math_comp+1 {diddle limit conventions ( \.{\\displaylimits}, etc.~)}
@d above=limit_switch+1 {generalized fraction ( \.{\\above}, \.{\\atop}, etc.~)}
@@ -857,28 +866,6 @@ kern_node,disp_node,math_node,penalty_node:
@d set_prev_graf=80 {specify state info ( \.{\\prevgraf} )}
@d set_page_dimen=81 {specify state info ( \.{\\pagegoal}, etc.~)}
@d set_page_int=82 {specify state info ( \.{\\deadcycles},
- \.{\\insertpenalties} )}
-@d set_box_dimen=83 {change dimension of box ( \.{\\wd}, \.{\\ht}, \.{\\dp} )}
-@d set_shape=84 {specify fancy paragraph shape ( \.{\\parshape} )}
-@d def_code=85 {define a character code ( \.{\\catcode}, etc.~)}
-@d def_family=86 {declare math fonts ( \.{\\textfont}, etc.~)}
-@d set_font=87 {set current font ( font identifiers )}
-@d def_font=88 {define a font file ( \.{\\font} )}
-@d register=89 {internal register ( \.{\\count}, \.{\\dimen}, etc.~)}
-@d max_internal=89 {the largest code that can follow \.{\\the}}
-@d advance=90 {advance a register or parameter ( \.{\\advance} )}
-@d multiply=91 {multiply a register or parameter ( \.{\\multiply} )}
-@d divide=92 {divide a register or parameter ( \.{\\divide} )}
-@d prefix=93 {qualify a definition ( \.{\\global}, \.{\\long}, \.{\\outer} )}
-@d let=94 {assign a command code ( \.{\\let}, \.{\\futurelet} )}
-@d shorthand_def=95 {code definition ( \.{\\chardef}, \.{\\countdef}, etc.~)}
- {or \.{\\charsubdef}}
-@d read_to_cs=96 {read into a control sequence ( \.{\\read} )}
-@d def=97 {macro definition ( \.{\\def}, \.{\\gdef}, \.{\\xdef}, \.{\\edef} )}
-@d set_box=98 {set a box ( \.{\\setbox} )}
-@d hyph_data=99 {hyphenation data ( \.{\\hyphenation}, \.{\\patterns} )}
-@d set_interaction=100 {define level of interaction ( \.{\\batchmode}, etc.~)}
-@d max_command=100 {the largest command code seen at |big_switch|}
@y
@d toks_register=max_non_prefixed_command+1 {token list register ( \.{\\toks} )}
@d assign_toks=toks_register+1
@@ -904,9 +891,26 @@ kern_node,disp_node,math_node,penalty_node:
@d set_prev_graf=set_aux+1 {specify state info ( \.{\\prevgraf} )}
@d set_page_dimen=set_prev_graf+1 {specify state info ( \.{\\pagegoal}, etc.~)}
@d set_page_int=set_page_dimen+1 {specify state info ( \.{\\deadcycles},
- \.{\\insertpenalties} )}
+@z
+@x [15.209] l.4272 - pTeX: def_jfont, def_tfont, set_auto_spacing
+@d set_box_dimen=83 {change dimension of box ( \.{\\wd}, \.{\\ht}, \.{\\dp} )}
+@d set_shape=84 {specify fancy paragraph shape ( \.{\\parshape} )}
+@y
@d set_box_dimen=set_page_int+1 {change dimension of box ( \.{\\wd}, \.{\\ht}, \.{\\dp} )}
@d set_shape=set_box_dimen+1 {specify fancy paragraph shape ( \.{\\parshape} )}
+@z
+@x [15.209] l.4272 - pTeX: def_jfont, def_tfont, set_auto_spacing
+@d def_code=85 {define a character code ( \.{\\catcode}, etc.~)}
+@d def_family=86 {declare math fonts ( \.{\\textfont}, etc.~)}
+@d set_font=87 {set current font ( font identifiers )}
+@d def_font=88 {define a font file ( \.{\\font} )}
+@d register=89 {internal register ( \.{\\count}, \.{\\dimen}, etc.~)}
+@d max_internal=89 {the largest code that can follow \.{\\the}}
+@d advance=90 {advance a register or parameter ( \.{\\advance} )}
+@d multiply=91 {multiply a register or parameter ( \.{\\multiply} )}
+@d divide=92 {divide a register or parameter ( \.{\\divide} )}
+@d prefix=93 {qualify a definition ( \.{\\global}, \.{\\long}, \.{\\outer} )}
+@y
@d def_code=set_shape+1 {define a character code ( \.{\\catcode}, etc.~)}
@d def_family=def_code+1 {declare math fonts ( \.{\\textfont}, etc.~)}
@d set_font=def_family+1 {set current font ( font identifiers )}
@@ -919,15 +923,31 @@ kern_node,disp_node,math_node,penalty_node:
@d multiply=advance+1 {multiply a register or parameter ( \.{\\multiply} )}
@d divide=multiply+1 {divide a register or parameter ( \.{\\divide} )}
@d prefix=divide+1 {qualify a definition ( \.{\\global}, \.{\\long}, \.{\\outer} )}
+@z
+@x [15.209] l.4272 - pTeX: def_jfont, def_tfont, set_auto_spacing
+@d let=94 {assign a command code ( \.{\\let}, \.{\\futurelet} )}
+@d shorthand_def=95 {code definition ( \.{\\chardef}, \.{\\countdef}, etc.~)}
+ {or \.{\\charsubdef}}
+@d read_to_cs=96 {read into a control sequence ( \.{\\read} )}
+@y
@d let=prefix+1 {assign a command code ( \.{\\let}, \.{\\futurelet} )}
@d shorthand_def=let+1 {code definition ( \.{\\chardef}, \.{\\countdef}, etc.~)}
+ {or \.{\\charsubdef}}
@d read_to_cs=shorthand_def+1 {read into a control sequence ( \.{\\read} )}
+@z
+@x [15.209] l.4272 - pTeX: def_jfont, def_tfont, set_auto_spacing
+@d def=97 {macro definition ( \.{\\def}, \.{\\gdef}, \.{\\xdef}, \.{\\edef} )}
+@d set_box=98 {set a box ( \.{\\setbox} )}
+@d hyph_data=99 {hyphenation data ( \.{\\hyphenation}, \.{\\patterns} )}
+@d set_interaction=100 {define level of interaction ( \.{\\batchmode}, etc.~)}
+@d max_command=100 {the largest command code seen at |big_switch|}
+@y
@d def=read_to_cs+1 {macro definition ( \.{\\def}, \.{\\gdef}, \.{\\xdef}, \.{\\edef} )}
@d set_box=def+1 {set a box ( \.{\\setbox} )}
@d hyph_data=set_box+1 {hyphenation data ( \.{\\hyphenation}, \.{\\patterns} )}
@d set_interaction=hyph_data+1 {define level of interaction ( \.{\\batchmode}, etc.~)}
@d set_auto_spacing=set_interaction+1 {set auto spaceing mode
- ( \.{\\autospacing}, \.{\\noautospacing}, ( \.{\\autospacing}, \.{\\noautospacing} )}
+ ( \.{\\autospacing}, \.{\\noautospacing}, ( \.{\\autoxspacing}, \.{\\noautoxspacing} )}
@d max_command=set_auto_spacing {the largest command code seen at |big_switch|}
@z