diff options
Diffstat (limited to 'Build')
-rw-r--r-- | Build/source/texk/web2c/pdftexdir/ChangeLog | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdftexdir/pdftex.ch | 105 |
2 files changed, 62 insertions, 47 deletions
diff --git a/Build/source/texk/web2c/pdftexdir/ChangeLog b/Build/source/texk/web2c/pdftexdir/ChangeLog index fdbf1e7eaee..336ea3c92cb 100644 --- a/Build/source/texk/web2c/pdftexdir/ChangeLog +++ b/Build/source/texk/web2c/pdftexdir/ChangeLog @@ -1,3 +1,7 @@ +2020-08-03 Andreas Scherer <https://ascherer.github.io> + + * pdftex.ch: Move pdfTeX variants of MLTeX code next to originals. + 2020-07-22 Akira Kakuto <kakuto@w32tex.org> * pdftex.web, writeimg.c: Show unfound file names in fatal error messages. diff --git a/Build/source/texk/web2c/pdftexdir/pdftex.ch b/Build/source/texk/web2c/pdftexdir/pdftex.ch index d7e036c2d79..02346f324ac 100644 --- a/Build/source/texk/web2c/pdftexdir/pdftex.ch +++ b/Build/source/texk/web2c/pdftexdir/pdftex.ch @@ -145,53 +145,6 @@ label reswitch, move_past, fin_rule, next_p, found, continue; continue: @z -@x -@ The |pdf_vlist_out| routine is similar to |pdf_hlist_out|, but a bit simpler. -@y -@ @<(\pdfTeX) Output a substitution, |goto continue| if not possible@>= - begin - @<Get substitution information, check it, goto |found| - if all is ok, otherwise goto |continue|@>; -found: @<Print character substitution tracing log@>; - @<(\pdfTeX) Rebuild character using substitution information@>; - end - -@ @<(\pdfTeX) Rebuild character using substitution information@>= - base_x_height:=x_height(f); - base_slant:=slant(f)/float_constant(65536); -@^real division@> - accent_slant:=base_slant; {slant of accent character font} - base_width:=char_width(f)(ib_c); - base_height:=char_height(f)(height_depth(ib_c)); - accent_width:=char_width(f)(ia_c); - accent_height:=char_height(f)(height_depth(ia_c)); - @/{compute necessary horizontal shift (don't forget slant)}@/ - delta:=round((base_width-accent_width)/float_constant(2)+ - base_height*base_slant-base_x_height*accent_slant); -@^real multiplication@> -@^real addition@> - @/{1. For centering/horizontal shifting insert a kern node.}@/ - cur_h:=cur_h+delta; - @/{2. Then insert the accent character possibly shifted up or down.}@/ - if ((base_height<>base_x_height) and (accent_height>0)) then - begin {the accent must be shifted up or down} - cur_v:=base_line+(base_x_height-base_height); - output_one_char(accent_c); - cur_v:=base_line; - end - else begin - output_one_char(accent_c); - end; - cur_h:=cur_h+accent_width; - @/{3. For centering/horizontal shifting insert another kern node.}@/ - cur_h:=cur_h+(-accent_width-delta); - @/{4. Output the base character.}@/ - output_one_char(base_c); - cur_h:=cur_h+base_width; - -@ The |pdf_vlist_out| routine is similar to |pdf_hlist_out|, but a bit simpler. -@z - @x [49.1259] begin if s>0 then begin if s=font_size[f] then goto common_ending; @@ -455,3 +408,61 @@ replacement, but always existing character |font_bc[f]|. function effective_char(@!err_p:boolean; @z +@x +@ The global variables for the code to substitute a virtual character +@y +@ \pdfTeX's |pdf_hlist_out| uses a similar, but slightly modified code +section of the (almost) same name. + +@<(\pdfTeX) Output a substitution, |goto continue| if not possible@>= + begin + @<Get substitution information, check it, goto |found| + if all is ok, otherwise goto |continue|@>; +found: @<Print character substitution tracing log@>; + @<(\pdfTeX) Rebuild character using substitution information@>; + end + +@ The global variables for the code to substitute a virtual character +@z + +@x +@ Dumping ML\TeX-related material. This is just the flag in the +@y +@ \pdfTeX's |pdf_hlist_out| uses a similar, but slightly modified code +section of the (almost) same name. + +@<(\pdfTeX) Rebuild character using substitution information@>= + base_x_height:=x_height(f); + base_slant:=slant(f)/float_constant(65536); +@^real division@> + accent_slant:=base_slant; {slant of accent character font} + base_width:=char_width(f)(ib_c); + base_height:=char_height(f)(height_depth(ib_c)); + accent_width:=char_width(f)(ia_c); + accent_height:=char_height(f)(height_depth(ia_c)); + @/{compute necessary horizontal shift (don't forget slant)}@/ + delta:=round((base_width-accent_width)/float_constant(2)+ + base_height*base_slant-base_x_height*accent_slant); +@^real multiplication@> +@^real addition@> + @/{1. For centering/horizontal shifting insert a kern node.}@/ + cur_h:=cur_h+delta; + @/{2. Then insert the accent character possibly shifted up or down.}@/ + if ((base_height<>base_x_height) and (accent_height>0)) then + begin {the accent must be shifted up or down} + cur_v:=base_line+(base_x_height-base_height); + output_one_char(accent_c); + cur_v:=base_line; + end + else begin + output_one_char(accent_c); + end; + cur_h:=cur_h+accent_width; + @/{3. For centering/horizontal shifting insert another kern node.}@/ + cur_h:=cur_h+(-accent_width-delta); + @/{4. Output the base character.}@/ + output_one_char(base_c); + cur_h:=cur_h+base_width; + +@ Dumping ML\TeX-related material. This is just the flag in the +@z |