summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorMartin Ruckert <martin.ruckert@hm.edu>2022-02-02 17:31:49 +0000
committerMartin Ruckert <martin.ruckert@hm.edu>2022-02-02 17:31:49 +0000
commit3fd721aaecc76c6b05a43f7dff30abd1b24ec79f (patch)
tree30708b1a8f96679577ba0d793a78ec635a7271cf /Build
parentb7ca7f33c59781709dfff3227de9e4674ef4090f (diff)
implementing a work-around for alignments in a display
while alignments that depend on hsize or vsize are still not supported git-svn-id: svn://tug.org/texlive/trunk@61853 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/texk/web2c/hitexdir/hitex.w49
-rw-r--r--Build/source/texk/web2c/hitexdir/hitexman.pdfbin139870 -> 165784 bytes
2 files changed, 36 insertions, 13 deletions
diff --git a/Build/source/texk/web2c/hitexdir/hitex.w b/Build/source/texk/web2c/hitexdir/hitex.w
index 663a5a2a2df..d65d9425a5b 100644
--- a/Build/source/texk/web2c/hitexdir/hitex.w
+++ b/Build/source/texk/web2c/hitexdir/hitex.w
@@ -16206,7 +16206,12 @@ subtype(tail)=tab_skip_code+1
{@+if (mode==-hmode)
{@+adjust_tail=cur_tail;u=hpack(link(head), natural);
if (type(u)==hlist_node) w=width(u);
- else w=max_dimen+1;
+ else
+#if 0
+ w=max_dimen+1;
+#else
+ w = width(u);
+#endif
cur_tail=adjust_tail;adjust_tail=null;
}
else{@+u=vpackage(link(head), natural, 0);
@@ -16368,8 +16373,11 @@ if (info(q)!=end_span)
the span nodes of |q|@>;
type(q)=unset_node;span_count(q)=min_quarterword;height(q)=0;
depth(q)=0;glue_order(q)=normal;glue_sign(q)=normal;
-glue_stretch(q)=0;glue_shrink(q)=0;q=p;
- if (width(q)>max_dimen) x=true;
+glue_stretch(q)=0;glue_shrink(q)=0;
+#if 0 /* Table nodes are not implemented in the 1.2 viewer */
+if (width(q)>max_dimen) x=true;
+#endif
+q=p;
}@+ while (!(q==null))
@ @<Nullify |width(q)| and the tabskip glue following this column@>=
@@ -22423,8 +22431,12 @@ display. Then we can set the proper values of |display_width| and
}
tail_append(new_param_glue(par_fill_skip_code));
}
+@<Calculate the length, |l|, and the shift amount, |s|, of the display lines@>;
push_math(math_shift_group);mode=mmode;
eq_word_define(int_base+cur_fam_code,-1);@/
+eq_word_define(dimen_base+display_width_code, l); cur_hfactor=0;
+eq_word_define(dimen_base+pre_display_size_code, w);
+eq_word_define(dimen_base+display_indent_code, s);
if (every_display!=null) begin_token_list(every_display, every_display_text);
}
@@ -22490,15 +22502,15 @@ if (par_shape_ptr==null)
if ((hang_indent!=0)&&@|
(((hang_after >= 0)&&(prev_graf+2 > hang_after))||@|
(prev_graf+1 < -hang_after)))
- {@+l=hsize-abs(hang_indent);
+ {@+l=-abs(hang_indent); cur_hfactor=unity;
if (hang_indent > 0) s=hang_indent;@+else s=0;
}
- else{@+l=hsize;s=0;
+ else{@+l=0;s=0; cur_hfactor=unity;
}
else{@+n=info(par_shape_ptr);
if (prev_graf+2 >= n) p=par_shape_ptr+2*n;
else p=par_shape_ptr+2*(prev_graf+2);
- s=mem[p-1].sc;l=mem[p].sc;
+ s=mem[p-1].sc;l=mem[p].sc;cur_hfactor=0;
}
@ Subformulas of math formulas cause a new level of math mode to be entered,
@@ -23287,13 +23299,22 @@ resulting list, and with |aux_save| holding the |prev_depth| value.
if (cur_cmd!=math_shift) @<Pontificate about improper alignment in display@>@;
else@<Check that another \.\$ follows@>;
pop_nest();
-tail_append(new_penalty(pre_display_penalty));
-tail_append(new_param_glue(above_display_skip_code));
-link(tail)=p;
-if (p!=null) tail=q;
-tail_append(new_penalty(post_display_penalty));
-tail_append(new_param_glue(below_display_skip_code));
-prev_depth=aux_save.sc;resume_after_display();
+prev_depth=aux_save.sc;
+tail_append(new_disp_node());
+display_formula(tail)=vpack(p, natural);
+/* adding parameter nodes */
+link(temp_head)=null;
+if (hang_indent!=0)
+{ new_param_node(dimen_type,hang_indent_code,hang_indent);
+ if (hang_after!=1)
+ new_param_node(int_type,hang_after_code,hang_after);
+}
+new_param_node(dimen_type,line_skip_limit_code,line_skip_limit);
+new_param_node(glue_type,line_skip_code,line_skip);
+new_param_node(glue_type,baseline_skip_code,baseline_skip);
+display_params(tail)=link(temp_head); link(temp_head)=null;
+display_no_bs(tail)= prev_depth <= ignore_depth;
+resume_after_display();
}
@ @<Pontificate...@>=
@@ -31391,6 +31412,8 @@ static pointer vpackage(pointer p, scaled h, scaled hf, scaled vf, small_number
else s= shift_amount(p);
if (width(p)+s> w) w= width(p)+s;
break;
+ case unset_set_node: case unset_pack_node:
+ goto repack;
case whatsit_node:
if (subtype(p)==graf_node)
goto repack;
diff --git a/Build/source/texk/web2c/hitexdir/hitexman.pdf b/Build/source/texk/web2c/hitexdir/hitexman.pdf
index 1df38ea44c9..5441594283d 100644
--- a/Build/source/texk/web2c/hitexdir/hitexman.pdf
+++ b/Build/source/texk/web2c/hitexdir/hitexman.pdf
Binary files differ