%PDF- %PDF-
| Direktori : /proc/self/root/data/old/usr/share/texlive/texmf-dist/doc/pdftex/thanh/ext/ |
| Current File : //proc/self/root/data/old/usr/share/texlive/texmf-dist/doc/pdftex/thanh/ext/ufntinst.sty |
\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