summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/pdftex/thanh/ext/ufntinst.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/pdftex/thanh/ext/ufntinst.sty')
-rw-r--r--Master/texmf-dist/doc/pdftex/thanh/ext/ufntinst.sty442
1 files changed, 442 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/pdftex/thanh/ext/ufntinst.sty b/Master/texmf-dist/doc/pdftex/thanh/ext/ufntinst.sty
new file mode 100644
index 00000000000..1eecffe51bc
--- /dev/null
+++ b/Master/texmf-dist/doc/pdftex/thanh/ext/ufntinst.sty
@@ -0,0 +1,442 @@
+\input fontinst.sty
+
+\def\fontinstcc{%
+ \catcode`\ =9
+ \catcode`\^^M=9
+ \catcode`\@=11
+ \catcode`\_=11
+ \catcode`\~=10
+ }%
+
+\def\normalcc{%
+ \catcode`\@=\atcatcode
+ \catcode`\^^M=\nlcatcode
+ \catcode`\ =\spacecatcode
+ \catcode`\~=\tildecatcode
+ \catcode`\_=\underscorecatcode
+ }%
+
+\fontinstcc
+
+\def\llx{\glyph_bb_parameter\first_of_four}
+\def\lly{\glyph_bb_parameter\second_of_four}
+\def\urx{\glyph_bb_parameter\third_of_four}
+\def\ury{\glyph_bb_parameter\fourth_of_four}
+
+\def\glyph_bb_parameter#1#2{
+ \expandafter\expandafter\expandafter
+ #1\csname gb-#2\endcsname
+}
+
+\def\first_of_four#1#2#3#4{#1}
+\def\second_of_four#1#2#3#4{#2}
+\def\third_of_four#1#2#3#4{#3}
+\def\fourth_of_four#1#2#3#4{#4}
+
+\def\afm_char{
+ \a_count=-\bbox_lly
+ \eval_expr{
+ \italcorr_expression\x_width\bbox_llx\bbox_urx\bbox_lly\bbox_ury
+ }
+ \out_line{
+ \ifnum -1<\char_slot
+ \string\setrawglyph
+ \else
+ \string\setnotglyph
+ \fi
+ {\char_name}
+ {\raw_font_name}
+ {10pt}
+ {\the\char_slot}
+ {\the\x_width}
+ {\the\bbox_ury}
+ {\the\a_count}
+ {\the\result}
+ }
+ \outglyphbb % bbox support patch
+}
+
+\def\outglyphbb{
+ \out_line{
+ \string\setglyphbbox
+ {\char_name}
+ {\raw_font_name}
+ {\the\bbox_llx}
+ {\the\bbox_lly}
+ {\the\bbox_urx}
+ {\the\bbox_ury}
+ }
+}
+
+\def\setglyphbbox#1#2#3#4#5#6{
+ \if_undefined{gb-#1}\then
+ \eval_expr_to\a_count{#3}
+ \eval_expr_to\b_count{#4}
+ \eval_expr_to\c_count{#5}
+ \eval_expr_to\d_count{#6}
+ \ifisint{i-rawscale}\then
+ \e_count=\int{rawscale}
+ \multiply \a_count \e_count \l_rounded_thousandths\a_count
+ \multiply \b_count \e_count \l_rounded_thousandths\b_count
+ \multiply \c_count \e_count \l_rounded_thousandths\c_count
+ \multiply \d_count \e_count \l_rounded_thousandths\d_count
+ \fi
+ \x_cs\edef{gb-#1}{
+ {\the\a_count}
+ {\the\b_count}
+ {\the\c_count}
+ {\the\d_count}
+ }
+ \fi
+}
+
+\def\mtxtomtx_setglyphbbox#1#2#3#4#5#6{
+ \eval_expr_to\a_count{\scale{#3}{\int{x-scale}}}
+% \eval_expr_to\a_count{\add{\scale{#3}{\int{x-scale}}}
+% {\scale{#4}{\int{slant-scale}}}}
+ \eval_expr_to\b_count{\scale{#4}{\int{y-scale}}}
+ \eval_expr_to\c_count{\scale{#5}{\int{x-scale}}}
+% \eval_expr_to\c_count{\add{\scale{#5}{\int{x-scale}}}
+% {\scale{#5}{\int{slant-scale}}}}
+ \eval_expr_to\d_count{\scale{#6}{\int{y-scale}}}
+ \out_line{
+ \string\setglyphbbox
+ {#1}{\raw_font_name}{\the\a_count}{\the\b_count}{\the\c_count}{\the\d_count}
+ }
+}
+
+\def\mtxtomtx#1#2{{
+ \ifisstr{etx-name}\then
+ \def\do_slot{\x_cs\edef{slots-\slot_name}{\the\slot_number}}
+ \inputetx{\str{etx-name}}
+ \edef\a_macro{\string\reencodefont{\str{etx-name}}}
+ \else
+ \let\a_macro=\empty_command
+ \fi
+ \_a_true
+ \ifnum \int{x-scale}=\int{y-scale}
+ \ifnum \int{slant-scale}=\z@
+ \_a_false
+ \fi \fi
+ \if_a_
+ \a_count=\int{x-scale}
+ \l_inv_scale\a_count{\int{y-scale}}
+ \b_count=\int{slant-scale}
+ \l_inv_scale\b_count{\int{y-scale}}
+ \edef\a_macro{\a_macro
+ \string\transformfont{\the\a_count}{\the\b_count}
+ }
+ \fi
+ \open_out{\temp_prefix#2.mtx}
+ \edef\raw_font_name{#2}
+ \out_line{\percent_char~Filename:~#2.mtx}
+ \out_line{\percent_char~Created~by:~tex~\jobname}
+ \out_line{\percent_char~Created~using:~\string\mtxtomtx{#1}{#2}}
+ \out_line{}
+ \out_line{\percent_char~This~file~is~used~by~the~fontinst~package.}
+ \out_line{}
+ \out_line{\percent_char~THIS~FILE~CAN~BE~DELETED.}
+ \out_line{}
+ \out_line{\string\relax}
+ \out_line{\string\metrics}
+ \out_line{}
+ \out_line{\string\needsfontinstversion{\fontinstversion}}
+ \out_line{}
+ \record_transform{#2}{\string\frommtx{#1}}{\a_macro}\iftrue
+ \out_line{}
+ \let\setint=\mtxtomtx_setint
+ \let\setdim=\mtxtomtx_setdim
+ \let\setstr=\mtxtomtx_setstr
+ \let\setscaledrawglyph=\mtxtomtx_setscaledrawglyph
+ \let\setscalednotglyph=\mtxtomtx_setscaledrawglyph
+ \let\setglyphbbox=\mtxtomtx_setglyphbbox % bbox support patch
+ \let\setkern=\mtxtomtx_setkern
+ \let\setglyph=\mtxtomtx_setglyph
+ \let\glyphpcc=\mtxtomtx_glyphpcc
+ \let\samesize=\mtxtomtx_samesize
+ \let\endsetglyph=\mtxtomtx_endsetglyph
+ \inputmtx{#1}
+ \out_line{}
+ \out_line{\endmetrics_text}
+ \close_out{Transformed~metrics}
+}}
+
+\def\reglyph_font#1#2{{
+ \open_out{\temp_prefix#1.mtx}
+ \out_line{\percent_char~Filename:~#1.mtx}
+ \out_line{\percent_char~Created~by:~tex~\jobname}
+ \out_line{\percent_char~Created~using:~\string\reglyphfont{#1}{#2}}
+ \out_line{}
+ \out_line{\percent_char~This~file~is~used~by~the~fontinst~package.}
+ \out_line{}
+ \out_line{\percent_char~THIS~FILE~CAN~BE~DELETED.}
+ \out_line{}
+ \out_line{\string\relax}
+ \out_line{\string\metrics}
+ \out_line{}
+ \out_line{\string\needsfontinstversion{\fontinstversion}}
+ \out_line{}
+ \record_transform{#1}{\string\frommtx{#2}}{\string\reglyphfont}
+ \iftrue
+ \out_line{}
+ \let\setint=\reglyph_setint
+ \let\setdim=\reglyph_setdim
+ \let\setstr=\reglyph_setstr
+ \let\setscaledrawglyph=\reglyph_setscaledrawglyph
+ \let\setscalednotglyph=\reglyph_setscaledrawglyph
+ \let\setglyphbbox=\reglyph_setglyphbbox % bbox support patch
+ \let\setkern=\reglyph_setkern
+ \let\setglyph=\reglyph_setglyph
+ \let\glyphpcc=\reglyph_glyphpcc
+ \let\samesize=\reglyph_samesize
+ \let\endsetglyph=\reglyph_endsetglyph
+ \inputmtx{#2}
+ \out_line{}
+ \out_line{\endmetrics_text}
+ \close_out{Reglyphed~metrics}
+}}
+
+\def\reglyph_setglyphbbox#1#2#3#4#5#6{
+ \command_survivance=0
+ \def\glyphname{#1}
+ \csname slots-#1\endcsname
+ \iftokeep\command_survivance\then
+ \out_line{
+ \string\setglyphbbox
+ {\glyphname}{#2}{#3}{#4}{#5}{#6}
+ }
+ \fi
+}
+
+\def\bbw#1{
+ \sub{\urx{#1}}{\llx{#1}}
+}
+
+\def\bbh#1{
+ \sub{\ury{#1}}{\lly{#1}}
+}
+
+\setcommand\centeraccent#1#2#3#4{
+ \push
+ \moveup{#4}
+ \movert{\add{\add{\scale{500}{\sub{\width{#1}}{\width{#2}}}}{#3}}
+ {\scale{#4}{\int{italicslant}}}}
+ \glyph{#2}{1000}
+ \pop
+ \glyph{#1}{1000}
+}
+
+\def\composeglyphpac#1#2#3#4#5{
+ \resetglyph{#1}
+ \centeraccent{#2}{#3}{\add{\int{#3-sx}}{#4}}{\add{\int{#3-sy}}{#5}}
+ \endresetglyph
+ \setleftrightkerning{#1}{#2}{1000}
+}
+
+\def\putquoteright#1#2#3#4#5{
+ \push
+ \movert{\add{\urx{#1}}{#3}}
+ \moveup{\sub{#5}{\scale{#2}{\lly{quoteright}}}}
+ \glyph{quoteright}{#2}
+ \pop
+ \glyph{#1}{1000}
+ \movert{#4}
+}
+
+\def\setsy#1#2#3{
+ \setint{#1-sy}{\add{\sub{\int{#2}}{\lly{#1}}}{#3}}
+}
+
+\def\setAsx#1#2#3{
+ \setint{#1-sx}
+ {\add{\scale{\int{italicslant}}{\sub{\lly{#1}}{\lly{#2}}}}{#3}}
+}
+
+\let\iffileexists=\if_file_exists
+
+\def\log#1{\immediate \write 16 {#1}}
+
+\def\setkerns#1#2#3{
+ \foreach(leftglyph){#1}
+ \foreach(rightglyph){#2}
+ \setkern{\str{leftglyph}}{\str{rightglyph}}{#3}
+ \endfor(rightglyph)
+ \endfor(leftglyph)
+}
+
+\def\resetkerns#1#2#3{
+ \foreach(leftglyph){#1}
+ \foreach(rightglyph){#2}
+ \resetkern{\str{leftglyph}}{\str{rightglyph}}{#3}
+ \endfor(rightglyph)
+ \endfor(leftglyph)
+}
+
+\def\setnullglyph#1{
+ \setglyph{#1}
+ \endsetglyph
+ \setint{#1-spacing}{0}
+}
+
+% \installcsfont{texbase}{psbase8r}{expansion}{psbase}
+% e.g. \installcsfont{putr8z}{putr8r}{}{putr8a}
+% or \installcsfont{putr8z}{putr8r}{+20}{putr8a}
+
+\def\installcsfont#1#2#3#4{
+ \iffileexists{#4#3.afm}\then
+ \transformfont{#2#3}%
+ {\reencodefont{8r}{\fromafm{#4#3}}}
+ \transformfont{#2x#3}%
+ {\reencodefont{8r}{\yscalefont{700}{\fromafm{#4#3}}}}
+ \else
+ \transformfont{#2#3}%
+ {\reencodefont{8r}{\frommtx{#4#3}}}
+ \transformfont{#2x#3}%
+ {\reencodefont{8r}{\yscalefont{700}{\frommtx{#4#3}}}}
+ \fi
+% \transformfont{#2x#3}%
+% {\reencodefont{8r}{\yscalefont{700}{\fromafm{#4#3}}}}
+ \reglyphfonts
+ \renameglyph{Acute}{acute}
+ \renameglyph{Caron}{caron}
+ \renameglyph{Ring}{ring}
+ \renameglyph{Grave}{grave}
+ \renameglyph{Dieresis}{dieresis}
+ \renameglyph{Circumflex}{circumflex}
+% \renameglyph{Breve}{breve}
+% \renameglyph{Cedilla}{cedilla}
+% \renameglyph{Dotaccent}{dotaccent}
+% \renameglyph{Hungarumlaut}{hungarumlaut}
+% \renameglyph{Ogonek}{ogonek}
+% \renameglyph{Slash}{slash}
+ \resetcommand\iftokeep##1{\ifnumber{##1}>{0}}
+ \offmtxcommand{\setkern}
+ \offmtxcommand{\setglyph}
+ \offmtxcommand{\setint}
+ \reglyphfont{#2u#3}{#2x#3}
+ \endreglyphfonts
+ \iffileexists{mk#1.mtx}\then
+ \installfont{#1#3}{#2#3,#2u#3,mk#1}{il2}{}{}{}{}{}
+ \else
+ \installfont{#1#3}{#2#3,#2u#3,cs}{il2}{}{}{}{}{}
+ \fi
+}
+
+\def\writecc#1#2#3#4#5#6#7#8{
+ \global\let\setsomething_global=\x_relax
+ \input_metrics{}{#2}
+ \etxtocc{#3}{#1}
+ \global\let\setsomething_global=\global
+}
+
+\def\etxtocc#1#2{{
+ \make_assignments{#1}
+ \open_out{#2.cc}
+ \bgroup
+ \let\do_slot=\do_cc
+ \let\end_do_slot=\end_do_cc
+ \let\saved_raw\cc_raw
+ \let\saved_scale\cc_scale
+ \let\saved_movert\cc_movert
+ \let\saved_moveup\cc_moveup
+ \inputetx{#1}
+ \egroup
+ \close_out{CC~information}
+}}
+
+
+\def\do_cc{
+ \if_undefined{g-\slot_name}\then
+ \expandafter\gobble_setslot
+ \Else
+ \ifx\slot_name\notdef_name\else
+ \do_cc_map
+ \fi
+ \Fi
+}
+
+\def\do_cc_map{
+ \let\cc_list=\empty
+ \pcc_count=0
+ \shift_x=0
+ \shift_y=0
+ \mapcommands\slot_name
+}
+
+\def\end_do_cc{
+ \ifisglyph\slot_name\then\ifnum\pcc_count > 1
+ \out_line{CC~\slot_name\space\the\pcc_count\space;~\cc_list}
+ \fi\fi
+}
+
+\newcount\shift_x
+\newcount\shift_y
+\newcount\pcc_count
+
+\def\cc_raw#1#2#3{
+ \edef\pcc_raw{PCC~#3~\the\shift_x\space\the\shift_y\space;\space}
+ \prep_to\cc_list\pcc_raw
+ \edef\x{\cc_list}
+ \let\cc_list=\x
+ \advance\pcc_count 1
+ \shift_x=0
+ \shift_y=0
+}
+
+\def\cc_movert#1{
+ \advance\shift_x #1
+}
+
+\def\cc_moveup#1{
+ \advance\shift_y #1
+}
+
+\def\cc_scale#1#2{
+ #2
+}
+
+% \def\init_cc#1{%
+% \out_line{\string\setglyph{#1}}
+% \def\char_name{#1}
+% }
+
+\def\cc_char{%
+% \out_lline{\string\samesize{\char_name-not}}
+ \out_line{\string\endsetglyph}
+}
+
+\def\setfontdimens{%
+ \setint{italicslant}{0}
+ \ifisglyph{x}\then
+ \setint{xheight}{\height{x}}
+ \Else
+ \setint{xheight}{500}
+ \Fi
+ \ifisglyph{space}\then
+ \setint{interword}{\width{space}}
+ \Else\ifisglyph{i}\then
+ \setint{interword}{\width{i}}
+ \Else
+ \setint{interword}{333}
+ \Fi\Fi
+ \setint{fontdimen(1)}{\int{italicslant}} % italic slant
+ \setint{fontdimen(2)}{\int{interword}} % interword space
+ \ifisint{monowidth}\then
+ \setint{fontdimen(3)}{0} % interword stretch
+ \setint{fontdimen(4)}{0} % interword shrink
+ \Else
+ \setint{fontdimen(3)}{\scale{\int{interword}}{600}}% interword stretch
+ \setint{fontdimen(4)}{\scale{\int{interword}}{240}}% interword shrink
+ \Fi
+ \setint{fontdimen(5)}{\int{xheight}} % x-height
+ \setint{fontdimen(6)}{1000} % quad
+ \ifisint{typewriter}\then
+ \setint{fontdimen(7)}{0} % extra space after .
+ \Else\ifisint{monowidth}\then
+ \setint{fontdimen(7)}{\int{interword}} % extra space after .
+ \Else
+ \setint{fontdimen(7)}{\scale{\int{interword}}{240}}% extra space after .
+ \Fi\Fi
+}
+
+\normalcc