summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/eptexdir/pdfsavepos.ch
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/eptexdir/pdfsavepos.ch')
-rw-r--r--Build/source/texk/web2c/eptexdir/pdfsavepos.ch275
1 files changed, 0 insertions, 275 deletions
diff --git a/Build/source/texk/web2c/eptexdir/pdfsavepos.ch b/Build/source/texk/web2c/eptexdir/pdfsavepos.ch
deleted file mode 100644
index 077b3b384c0..00000000000
--- a/Build/source/texk/web2c/eptexdir/pdfsavepos.ch
+++ /dev/null
@@ -1,275 +0,0 @@
-% last update: 2011/3/15
-
-@x
-@d dimen_pars=23 {total number of dimension parameters}
-@y
-@d pdf_page_width_code=23 {page width}
-@d pdf_page_height_code=24 {page height}
-@d dimen_pars=25 {total number of dimension parameters}
-@z
-
-@x
-@d emergency_stretch==dimen_par(emergency_stretch_code)
-@y
-@d emergency_stretch==dimen_par(emergency_stretch_code)
-@d pdf_page_width==dimen_par(pdf_page_width_code)
-@d pdf_page_height==dimen_par(pdf_page_height_code)
-@z
-
-@x
-emergency_stretch_code:print_esc("emergencystretch");
-@y
-emergency_stretch_code:print_esc("emergencystretch");
-pdf_page_width_code: print_esc("pdfpagewidth");
-pdf_page_height_code: print_esc("pdfpageheight");
-@z
-
-@x
-@d badness_code=input_line_no_code+1 {code for \.{\\badness}}
-@y
-@d badness_code=input_line_no_code+1 {code for \.{\\badness}}
-@d pdf_last_x_pos_code=badness_code+1 {code for \.{\\pdflastxpos}}
-@d pdf_last_y_pos_code=pdf_last_x_pos_code+1 {code for \.{\\pdflastypos}}
-@z
-
-@x
-@d eTeX_int=badness_code+1 {first of \eTeX\ codes for integers}
-@y
-@d eTeX_int=pdf_last_y_pos_code+1 {first of \eTeX\ codes for integers}
-@z
-
-@x
-@ @<Initialize variables as |ship_out| begins@>=
-@y
-@ @<Initialize variables as |ship_out| begins@>=
-@<Calculate DVI page dimensions and margins@>;
-@z
-
-@x
-@!old_setting:0..max_selector; {saved |selector| setting}
-@y
-@!old_setting:0..max_selector; {saved |selector| setting}
-@!t: scaled;
-@z
-
-@x
-@d set_language_code=5 {command modifier for \.{\\setlanguage}}
-@y
-@d set_language_code=5 {command modifier for \.{\\setlanguage}}
-@d TeX_extension_end=5
-@d pdf_save_pos_node=TeX_extension_end+1
-@z
-
-@x
- set_language_code:print_esc("setlanguage");
-@y
- set_language_code:print_esc("setlanguage");
- pdf_save_pos_node: print_esc("pdfsavepos");
-@z
-
-@x
-set_language_code:@<Implement \.{\\setlanguage}@>;
-@y
-set_language_code:@<Implement \.{\\setlanguage}@>;
-pdf_save_pos_node: @<Implement \.{\\pdfsavepos}@>;
-@z
-
-@x
- print_int(what_lhm(p)); print_char(",");
- print_int(what_rhm(p)); print_char(")");
- end;
-@y
- print_int(what_lhm(p)); print_char(",");
- print_int(what_rhm(p)); print_char(")");
- end;
-pdf_save_pos_node: print_esc("pdfsavepos");
-@z
-
-@x
-close_node,language_node: begin r:=get_node(small_node_size);
- words:=small_node_size;
- end;
-@y
-close_node,language_node: begin r:=get_node(small_node_size);
- words:=small_node_size;
- end;
-pdf_save_pos_node:
- r := get_node(small_node_size);
-@z
-
-@x
-close_node,language_node: free_node(p,small_node_size);
-@y
-close_node,language_node: free_node(p,small_node_size);
-pdf_save_pos_node: free_node(p, small_node_size);
-@z
-
-@x
-procedure special_out(@!p:pointer);
-var old_setting:0..max_selector; {holds print |selector|}
-@!k:pool_pointer; {index into |str_pool|}
-@y
-procedure special_out(@!p:pointer);
-label done;
-var old_setting:0..max_selector; {holds print |selector|}
-@!k:pool_pointer; {index into |str_pool|}
-@!s,@!t,@!cw: scaled;
-@!bl: boolean;
-@!i: small_number;
-@z
-
-@x
-pool_ptr:=str_start[str_ptr]; {erase the string}
-@y
-@<Determine whether this \.{\\special} is a papersize special@>;
-done: pool_ptr:=str_start[str_ptr]; {erase the string}
-@z
-
-@x
-language_node:do_nothing;
-@y
-language_node:do_nothing;
-pdf_save_pos_node:
- @<Save current position in DVI mode@>;
-@z
-
-@x
-primitive("pdfstrcmp",convert,pdf_strcmp_code);@/
-@!@:pdf_strcmp_}{\.{\\pdfstrcmp} primitive@>
-@y
-primitive("pdfstrcmp",convert,pdf_strcmp_code);@/
-@!@:pdf_strcmp_}{\.{\\pdfstrcmp} primitive@>
-primitive("pdfsavepos",extension,pdf_save_pos_node);@/
-@!@:pdf_save_pos_}{\.{\\pdfsavepos} primitive@>
-primitive("pdfpagewidth",assign_dimen,dimen_base+pdf_page_width_code);@/
-@!@:pdf_page_width_}{\.{\\pdfpagewidth} primitive@>
-primitive("pdfpageheight",assign_dimen,dimen_base+pdf_page_height_code);@/
-@!@:pdf_page_height_}{\.{\\pdfpageheight} primitive@>
-primitive("pdflastxpos",last_item,pdf_last_x_pos_code);@/
-@!@:pdf_last_x_pos_}{\.{\\pdflastxpos} primitive@>
-primitive("pdflastypos",last_item,pdf_last_y_pos_code);@/
-@!@:pdf_last_y_pos_}{\.{\\pdflastypos} primitive@>
-@z
-
-@x
-eTeX_version_code: print_esc("eTeXversion");
-@y
-eTeX_version_code: print_esc("eTeXversion");
-pdf_last_x_pos_code: print_esc("pdflastxpos");
-pdf_last_y_pos_code: print_esc("pdflastypos");
-@z
-
-@x
-eTeX_version_code: cur_val:=eTeX_version;
-@y
-eTeX_version_code: cur_val:=eTeX_version;
-pdf_last_x_pos_code: cur_val := pdf_last_x_pos;
-pdf_last_y_pos_code: cur_val := pdf_last_y_pos;
-@z
-
-
-@x
-@* \[54] System-dependent changes.
-@y
-@ Next, we implement \.{\\pdfsavepos} and its related primitives.
-
-@<Glob...@>=
-@!cur_page_width: scaled; {width of page being shipped}
-@!cur_page_height: scaled; {height of page being shipped}
-@!pdf_last_x_pos: integer;
-@!pdf_last_y_pos: integer;
-
-@ @<Implement \.{\\pdfsavepos}@>=
-begin
- new_whatsit(pdf_save_pos_node, small_node_size);
-end
-
-@ @<Save current position in DVI mode@>=
-begin
- case dvi_dir of
- dir_yoko: begin pdf_last_x_pos := cur_h; pdf_last_y_pos := cur_v; end;
- dir_tate: begin pdf_last_x_pos := -cur_v; pdf_last_y_pos := cur_h; end;
- dir_dtou: begin pdf_last_x_pos := cur_v; pdf_last_y_pos := -cur_h; end;
- endcases;
- pdf_last_x_pos := pdf_last_x_pos + 4736286;
- case dvi_dir of
- dir_tate,dir_dtou:
- pdf_last_y_pos := cur_page_width - pdf_last_y_pos - 4736286;
- dir_yoko:
- pdf_last_y_pos := cur_page_height - pdf_last_y_pos - 4736286;
- endcases;
- {4736286 = 1in, the funny DVI origin offset}
-end
-
-@ @<Calculate DVI page dimensions and margins@>=
- if pdf_page_height <> 0 then
- cur_page_height := pdf_page_height
- else
- cur_page_height := height(p) + depth(p) + 2*v_offset + 2*4736286;
- if pdf_page_width <> 0 then
- cur_page_width := pdf_page_width
- else
- cur_page_width := width(p) + 2*h_offset + 2*4736286;
- if (type(p)=dir_node) then
- if (box_dir(list_ptr(p))=dir_tate)or(box_dir(list_ptr(p))=dir_dtou) then begin
- t:=cur_page_height; cur_page_height:=cur_page_width;
- cur_page_width:=t; end;
-
-
-@ Of course \epTeX\ can produce a \.{DVI} file only, not a PDF file.
-A \.{DVI} file does not have the information of the page height,
-which is needed to implement \.{\\pdflastypos} correctly.
-To keep the information of the page height, I (H.~Kitagawa)
-adopted \.{\\pdfpageheight} primitive from pdf\TeX. However, in p\TeX (and \hbox{\epTeX}),
-the papersize special \.{\\special\{papersize=|width|,|height|\}} is commonly used
-for specifying page width/height. Hence, I decided that the papersize special also
-changes the value of \.{\\pdfpagewidth} and \.{\\pdfpageheight}.
-The following routine does this.
-
-In present implementation, the ``valid'' papersize special, which can be interpreted by
-this routine, is in the following form:
-$$\hbox{\.{\\special\char"7Bpapersize=}$x$\.{pt,}$y$\.{pt\char"7D}}$$
-where $x$\thinspace pt and $y$\thinspace pt are positive dimensions which \TeX\ can comprehend.
-No spaces are allowed in the above form, and only ``pt'' is allowed for unit, for simplicity.
-
-@d ifps==if k=pool_ptr then goto done else if
-@d sop(#)==so(str_pool[(#)])
-
-@<Determine whether this \.{\\special} is a papersize special@>=
-if pool_ptr-str_start[str_ptr]<=10 then goto done;
-k:=str_start[str_ptr];
-if (sop(k+0)<>'p')or(sop(k+1)<>'a')or(sop(k+2)<>'p')or
- (sop(k+3)<>'e')or(sop(k+4)<>'r')or(sop(k+5)<>'s')or
- (sop(k+6)<>'i')or(sop(k+7)<>'z')or(sop(k+8)<>'e') then goto done;
-k:=k+9; ifps sop(k)='=' then incr(k);
-@<Read dimensions in the argument in the papersize special@>;
-incr(k); ifps sop(k)<>',' then goto done else incr(k); cw:=t;
-@<Read dimensions in the argument in the papersize special@>;
-geq_word_define(dimen_base+pdf_page_width_code,cw);
-geq_word_define(dimen_base+pdf_page_height_code,t);
-cur_page_height := t; cur_page_width := cw;
-if (dvi_dir=dir_tate)or(dvi_dir=dir_dtou) then begin
- t:=cur_page_height; cur_page_height:=cur_page_width;
- cur_page_width:=t; end;
-
-@ @<Read dimensions in the argument in the papersize special@>=
-s:=1; t:=0; bl:=true;
-while (k<pool_ptr)and(bl) do begin
- if (sop(k)>='0')and (sop(k)<='9') then begin t:=10*t+sop(k)-'0'; incr(k); end
- else begin bl:=false; end;
-end;
-t:=t*unity;
-ifps sop(k)='.' then begin incr(k); bl:=true; i:=0;
- while (k<pool_ptr)and(bl)and(i<=17) do begin
- if (sop(k)>='0')and (sop(k)<='9') then begin
- dig[i]:=sop(k)-'0'; incr(k); incr(i); end
- else begin bl:=false; incr(k); incr(i); end;
- end;
- t:=s*(t+round_decimals(i-1));
-end
-else if (sop(k)>='0')and(sop(k)<='9') then goto done
-else begin t:=s*t; incr(k); end;
-ifps sop(k-1)<>'p' then goto done; ifps sop(k)<>'t' then goto done;
-
-@* \[54] System-dependent changes.
-@z