diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-12 23:45:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-12 23:45:36 +0000 |
commit | 2939242967231097459df0fc3150fabc2f639111 (patch) | |
tree | 00fe7273a946e43cc5d5b9fb00250af4fe82866e /Master | |
parent | 5bcbcf594f1d7f279c5897da00d676e6270a0a9a (diff) |
trunk/Master/texmf-dist/tex/fontinst
git-svn-id: svn://tug.org/texlive/trunk@612 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
118 files changed, 41980 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/fontinst/base/bbox.sty b/Master/texmf-dist/tex/fontinst/base/bbox.sty new file mode 100644 index 00000000000..d06bc8f47c0 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/base/bbox.sty @@ -0,0 +1,163 @@ + +% bbox.sty -- bounding box extension for fontinst +% +% This file defines the following commands for setting, resetting, +% and unsetting the bounding boxes of glyphs: +% +% \setglyphbb{GLYPH}{LEFT}{BOTTOM}{RIGHT}{TOP} +% \resetglyphbb{GLYPH}{LEFT}{BOTTOM}{RIGHT}{TOP} +% \unsetglyphbb{GLYPH} +% +% It also defines the following four integer expressions for +% quering bounding box metrics: +% +% \bbleft{GLYPH} +% \bbbottom{GLYPH} +% \bbright{GLYPH} +% \bbtop{GLYPH} +% +% For glyphs that do not have a bounding box set, they default +% to using the "TeX box" of the glyph. +% +% Finally, the file changes AFM-to-MTX conversions so that bounding +% box information is converted to \setglyphbb commands and augments +% font transformation and reglyphing to preserve this information. + + +\needsfontinstversion{1.927} + +\fontinstcc + +\def\resetglyphbb#1#2#3#4#5{ + \eval_expr_to\a_count{#2} + \eval_expr_to\b_count{#3} + \eval_expr_to\c_count{#4} + \eval_expr_to\d_count{#5} + \x_cs\edef{gb-#1}{ + {\the\a_count}{\the\b_count}{\the\c_count}{\the\d_count} + } +} +\def\setglyphbb#1#2#3#4#5{ + \if_undefined{gb-\glyph_name_modifier{#1}}\then + \resetglyphbb{\glyph_name_modifier{#1}}{#2}{#3}{#4}{#5} + \fi +} +\def\unsetglyphbb#1{\x_cs\let{gb-#1}=\x_relax} + +\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\bbleft#1{ + \if_defined{gb-#1}\then + \expandafter\expandafter \expandafter\first_of_four + \csname gb-#1\endcsname + \else + 0 + \fi +} +\def\bbbottom#1{ + \if_defined{gb-#1}\then + \expandafter\expandafter \expandafter\second_of_four + \csname gb-#1\endcsname + \else + \neg{\depth{#1}} + \fi +} +\def\bbright#1{ + \if_defined{gb-#1}\then + \expandafter\expandafter \expandafter\third_of_four + \csname gb-#1\endcsname + \else + \width{#1} + \fi +} +\def\bbtop#1{ + \if_defined{gb-#1}\then + \expandafter\expandafter \expandafter\fourth_of_four + \csname gb-#1\endcsname + \else + \height{#1} + \fi +} + + +% Make \afmtomtx generate \setglyphbb commands: +\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} + } + \out_line{ + \string\setglyphbb{\char_name} + {\the\bbox_llx}{\the\bbox_lly}{\the\bbox_urx}{\the\bbox_ury} + } +} + + +% Make sure \setglyphbb is transformed OK. +% Slanting of course cannot be done exactly when only the bbox +% is known. +\def\mtxtomtx_setglyphbb#1#2#3#4#5{ + \eval_expr_to\a_count{\add{ + \scale{#2}{\int{x-scale}} + }{ + \scale{#3}{\int{slant-scale}} + }} + \eval_expr_to\b_count{\scale{#3}{\int{y-scale}}} + \eval_expr_to\c_count{\add{ + \scale{#4}{\int{x-scale}} + }{ + \scale{#5}{\int{slant-scale}} + }} + \eval_expr_to\d_count{\scale{#5}{\int{y-scale}}} + \out_line{ + \string\setglyphbb{#1} + {\the\a_count}{\the\b_count}{\the\c_count}{\the\d_count} + } +} + +\add_to\mtxtomtx_redefinitions{ + \let\setglyphbb=\mtxtomtx_setglyphbb +} + +% Finally, for completeness, the analogous thing for reglyphing. + +\def\reglyph_setglyphbb#1#2#3#4#5{ + \command_survivance=0 + \def\glyphname{#1} + \csname slots-#1\endcsname + \iftokeep\command_survivance\then + \out_line{ + \string\setglyphbb{\glyphname}{#2}{#3}{#4}{#5} + } + \fi +} + +\add_to\reglyph_redefinitions{ + \let\setglyphbb=\reglyph_setglyphbb +} + + +\normalcc + + +\endinput + + diff --git a/Master/texmf-dist/tex/fontinst/base/cfntinst.sty b/Master/texmf-dist/tex/fontinst/base/cfntinst.sty new file mode 100644 index 00000000000..00271bbe75c --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/base/cfntinst.sty @@ -0,0 +1,3497 @@ +%% +%% This is file `cfntinst.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fibasics.dtx (with options: `pkg') +%% ficommon.dtx (with options: `pkg') +%% fimain.dtx (with options: `pkg,boundaryCompability') +%% ficonv.dtx (with options: `pkg') +%% filtfam.dtx (with options: `pkg,textcomp,debug') +%% fimapgen.dtx (with options: `pkg') +%% fibasics.dtx (with options: `pkg2') +%% +%% This is a generated file. +%% +%% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +%% hacked and maintained 1997, 1998 Sebastian Rahtz, +%% copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 the fontinst +%% maintenance team and any individual authors listed elsewhere in +%% this file. All rights reserved. +%% +%% This file is part of the fontinst system version 1.9. +%% ----------------------------------------------------- +%% +%% It may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.1 or, at your option, any later version. +%% +%%% From file: fibasics.dtx +\catcode`\{=1 +\catcode`\}=2 +\catcode`\#=6 +\catcode`\^=7 +\def\fontinstversion{1.927} +\ifx\ProvidesPackage\undefined + \def\NeedsTeXFormat#1{} + \def\ProvidesPackage#1[#2]{} +\fi +\ProvidesPackage{fontinst} +[2004/08/07 v\fontinstversion\space + fontinst installation package] +\def\a_macro#1{\catcode\number`#1=\the\catcode`#1 } +\edef\normalcc{% + \a_macro{\ }\a_macro{\^^M}\a_macro{\@}\a_macro{\_}\a_macro{\~} +} +\def\fontinstcc{% + \catcode`\ =9% + \catcode`\^^M=9% + \catcode`\@=11% + \catcode`\_=11% + \catcode`\~=10 +} +\fontinstcc +\ifx\@ne\undefined_command + \input fontinst.ini\relax +\fi +\ifx\bye\undefined_command + \def\supereject{\par\penalty-\@MM} + \outer\expandafter\def \csname bye\endcsname + {\par\vfill\supereject\@@end} +\fi +\newcount\a_count +\newcount\b_count +\newcount\c_count +\newcount\d_count +\newcount\e_count +\newcount\f_count +\newcount\g_count +\newdimen\a_dimen +\newdimen\b_dimen +\newdimen\c_dimen +\newdimen\d_dimen +\newtoks\a_toks +\newtoks\b_toks +\newtoks\c_toks +\newif\if_a_ +\newwrite\out_file +\mathchardef\one_thousand=1000 +\mathchardef\five_hundred=500 +\mathchardef\one_hundred=100 +\mathchardef\max_mathchardef="7FFF +\mathchardef\two_thousand=2000 +\newdimen\half_point \half_point=0.5pt +\let\@tempdima\a_dimen +\let\@tempdimb\b_dimen +\input trig.sty +\def\x_cs#1#2{\expandafter#1\csname#2\endcsname} +\let\x_relax=\relax +\def\g_let{\global\let} +\def\empty_command{} +\def\gobble_one#1{} +\def\gobble_two#1#2{} +\def\gobble_three#1#2#3{} +\def\identity_one#1{#1} +\def\first_of_two#1#2{#1} +\def\second_of_two#1#2{#2} +\def\swap_two#1#2{#2#1} +\def\first_of_three#1#2#3{#1} +\bgroup + \catcode`\[=1 + \catcode`\]=2 + \catcode`\#=12 + \catcode`\%=12 + \catcode`\{=12 + \catcode`\}=12 + \gdef\hash_char[#] + \gdef\percent_char[%] + \gdef\left_brace_char[{] + \gdef\right_brace_char[}] +\egroup +\def\first_char#1#2={#1} +\def\add_to#1#2{ + \ifx#1\x_relax + \def#1{#2} + \else + \expandafter\def\expandafter#1\expandafter{#1#2} + \fi +} +\def\prep_to#1#2{ + \ifx#1\x_relax + \expandafter\def\expandafter#1\expandafter{\expandafter#2} + \else + \expandafter\def\expandafter#1\expandafter{\expandafter#2#1} + \fi +} +\def\never_do{\noexpand\do} +\newif\if_extensions_warning_ +\_extensions_warning_false +\ifx \eTeXversion\undefined_command + \catcode`\~=14 % 14=comment +\fi +\def\eTeX#1{ + \if_extensions_warning_ + \space/\space e-TeX\space version\space #1 +~ \else +~ \ifdim \number\eTeXversion\eTeXrevision\p@ < #1\p@ \else +~ \_a_true +~ \fi + \fi +} +\catcode`\~=10 +\ifx \pdftexversion\undefined_command + \catcode`\~=14 % 14=comment +\fi +\def\pdfTeX#1#2{% + \if_extensions_warning_ + \space/\space pdfTeX\space version\space + \ifnum #1<100\space + 0.\ifnum #1<10\space 0\fi + \else + \expandafter\swap_two \expandafter. + \fi + #1#2% +~ \else +~ \ifdim #1>\pdftexversion \else +~ \ifnum \expandafter\expandafter \expandafter` +~ \expandafter\first_char \pdftexrevision= < +~ \expandafter` \first_char#2= +~ \else \_a_true \fi +~ \fi + \fi +} +\catcode`\~=10 +\def\needsTeXextension#1#2{ + \_a_false + #1 + \if_a_ \else + \_extensions_warning_true + \edef\a_macro{#1} + \_extensions_warning_false + \fontinstwarningnoline{#2}{ + This~file~needs:\messagebreak + \expandafter\second_of_two\a_macro + \iffalse + <no~sufficient~extensions~were~listed!!>\if_false + \fi + \messagebreak + You~are~not~using~any~of~them.~This~is~likely~to~cause~errors + } + \fi +} +\def\open_out#1{ + \immediate\openout\out_file=#1 \xdef\out_filename{#1}} +\def\close_out#1{ + \immediate\write16{#1~written~on~\out_filename.} + \immediate\closeout\out_file} +\def\out_line#1{\immediate\write\out_file{#1}} +\edef\out_lline#1{\noexpand\out_line{\space\space\space#1}} +\edef\out_llline#1{ + \noexpand\out_line{\space\space\space\space\space\space#1} +} +\def\TeX_terminal{\string\TeX\space terminal} +\chardef\closed_stream=99 +\x_cs\let{out_filename-99}=\TeX_terminal +\x_cs\def{out_filename--1}{\jobname.log} +\def\allocate_stream{ + \a_count=\m@ne + \b_count=\m@ne + \loop \ifnum \count17>\a_count + \advance \a_count \@ne + \x_cs\ifx{out_filename-\the\a_count}\TeX_terminal + \b_count=\a_count + \a_count=\count17 + \fi + \repeat + \ifnum \b_count=\m@ne + \global\advance\count17by\@ne + \ifnum \count17<\sixt@@n + \b_count=\count17 + \global\x_cs\let{out_filename-\the\b_count}\TeX_terminal + \wlog{\string\write\the\b_count\space allocated~to~the~pool.} + \else + \global\count17=\sixt@@n + \fi + \fi +} +\def\ch@ck#1#2#3{ + \ifnum \count1#1<#2 \else + \errmessage{No~room~for~a~new~#3} + \global\count1#1=#2 + \fi +} +\def\open_pout#1#2{ + \allocate_stream + \ifnum \b_count=\m@ne + \immediate\write\sixt@@n{fontinst~is~out~of~output~streams.^^J + Output~file~#2~cannot~be~opened.^^J + Writes~will~be~redirected~to~the~log~file. + } + \gdef#1{\m@ne} + \else + \immediate\openout\b_count=#2\x_relax + \x_cs\xdef{out_filename-\the\b_count}{#2} + \global\chardef#1=\b_count + \fi +} +\def\close_pout#1#2{ + \ifnum #1=\closed_stream + \errmessage{Output~file~\string#1~(#2)~not~closed,^^J + since~it~was~not~open} + \else + \immediate\write\sixt@@n{#2~written~on~ + \csname out_filename-\the#1\endcsname.} + \ifnum #1=\m@ne \else + \immediate\closeout#1 + \global\x_cs\let{out_filename-\the#1}=\TeX_terminal + \fi + \global\chardef#1=\closed_stream + \fi +} +\def\pout_line#1#2{\immediate\write#1{#2}} +\edef\pout_lline#1#2{\noexpand\pout_line#1{\space\space\space#2}} +\edef\pout_llline#1#2{ + \noexpand\pout_line#1{\space\space\space\space\space\space#2} +} +\def\tempfileprefix#1{\def\temp_prefix{#1}} +\tempfileprefix{} +\let\then=\iffalse +\def\if_false{\iffalse} +\def\if_true{\iftrue} +\_a_false\eTeX{2.0} +\if_a_\else \catcode`\~=14\x_relax \fi +~ \def\if_defined#1\then{ +~ \if +~ \ifcsname#1\endcsname +~ \expandafter\ifx \csname#1\endcsname \x_relax +~ 0 +~ \else +~ 1 +~ \fi +~ \else +~ 0 +~ \fi +~ 1 +~ } +~ \def\if_undefined{\expandafter\unless\if_defined} +\catcode`\~=\if_a_ 14 \else 10 \fi \x_relax +~ \def\if_defined#1\then{ +~ \expandafter\ifx \csname#1\endcsname\x_relax +~ \expandafter\if_false +~ \else +~ \expandafter\if_true +~ \fi +~ } +~ \def\if_undefined#1\then{ +~ \expandafter\ifx \csname#1\endcsname\x_relax +~ } +\catcode`\~=10\x_relax +\def\gobble_if{\iftrue\else} +\def\if_or#1\or_else#2\then{ + #1\then + \expandafter\if_true + \else + #2\then + \expandafter\expandafter\expandafter\if_true + \else + \expandafter\expandafter\expandafter\if_false + \fi + \fi +} +\def\if_equal#1\then{\ifx#1} +\def\if_file_exists#1\then{ + \immediate\openin1=#1\x_relax + \ifeof1\x_relax + \immediate\closein1 + \expandafter\if_false + \else + \immediate\closein1 + \expandafter\if_true + \fi +} +\let\Else=\else +\let\Fi=\fi +\x_cs\ifx{@@input}\x_relax + \let\primitiveinput=\input +\else + \let\primitiveinput=\@@input +\fi +\def\process_csep_list#1#2,{ + \ifx\process_csep_list#2 + \expandafter\gobble_one + \else + \expandafter\identity_one + \fi{ + #1{#2} + \process_csep_list{#1} + } +} +\def\make_factor#1{ + \ifnum #1<\z@ + -\expandafter\make_factor_i\expandafter{\number-#1} + \else + \expandafter\make_factor_i\expandafter{\number#1} + \fi +} +\def\make_factor_i#1{ + \ifnum #1<\one_thousand + \make_factor_ii{#1} + \else + \make_factor_iii #1 + \fi + #1 +} +\def\make_factor_ii#1{ + 0. + \ifnum #1<\one_hundred + 0 + \ifnum #1<10~ 0\fi + \fi +} +\def\make_factor_iii#1#2#3\fi#4{ + \fi + #4 + \ifnum 1#3<\one_thousand + . + \else + \make_factor_iii#2#3 + \fi +} +{ + \catcode`\p=12 + \catcode`\t=12 + \gdef\lose_measure#1pt{#1} +} +\let\messagebreak\x_relax +\def\generic_info#1#2{ + \begingroup + \def\messagebreak{^^J#1} + \immediate\write\m@ne{#2\on_line.} + \endgroup +} +\def\generic_warning#1#2{ + \begingroup + \def\messagebreak{^^J#1} + \immediate\write\closed_stream{^^J#2\on_line.^^J} + \endgroup +} +\def\generic_error#1#2#3#4{ + \begingroup + \immediate\write\closed_stream{} + \def\messagebreak{^^J} + \edef\a_macro{{#4}} + \errhelp\a_macro + \def\messagebreak{^^J#1} + \errmessage{#2.^^J^^J#3 + Type~\space H~<return>~\space for~immediate~help + } + \endgroup +} +\def\fontinsterror#1#2#3{ + \generic_error{ + \four_spaces\four_spaces + }{ + #1~error:\messagebreak #2 + }{ + }{#3} +} +\def\fontinstwarning#1#2{ + \generic_warning{ + \four_spaces\four_spaces + }{ + #1~warning:\messagebreak #2 + } +} +\def\fontinstwarningnoline#1#2{ + \fontinstwarning{#1}{#2\gobble_one} +} +\def\fontinstinfo#1#2{ + \generic_info{ + \four_spaces\four_spaces + }{ + #1~info:\messagebreak #2 + } +} +\def\on_line{~on~input~line~\the\inputlineno} +\edef\four_spaces{\space\space\space\space} +\gdef\error_help_a{ + Your~command~was~ignored.\messagebreak + Type~\space I~<command>~<return>~\space to~replace~it~ + with~another~command,\messagebreak + or~\space <return>~\space to~continue~without~it.} +\gdef\error_help_c{ + Try~typing~\space <return>~ + \space to~proceed.\messagebreak + If~that~doesn't~work,~type~\space X~<return>~\space to~quit.} +\gdef\error_help_d{ + You're~in~trouble~here.~\space\error_help_c} +\def\error_help_e#1{You~can~continue,~but~the~#1~wrong.} +\newlinechar=`\^^J +\errorcontextlines=999 +\tracinglostchars=1 +%%% From file: ficommon.dtx +\def\str#1{\csname~s-#1\endcsname} +\def\strint#1{\expandafter\identity_one\expandafter{\number\int{#1}}} +\newcount\result +\def\eval_expr#1{\global\result=#1\x_relax} +\def\eval_expr_to#1#2{\eval_expr{#2}#1=\result} +\def\g_eval_expr_to#1#2{\eval_expr{#2}\global#1=\result} +\def\add#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \global\advance \result \a_count + \egroup +} +\def\sub#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \advance \a_count -\result + \global\result=\a_count + \egroup +} +\def\int#1{\csname i-#1 \endcsname} +\def\neg#1{#1 \global\result=-\result} +\def\mul#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \global\multiply \result \a_count + \egroup +} +\def\div#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \divide \a_count \result + \global\result=\a_count + \egroup +} +\def\max#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \ifnum \a_count>\result \global\result=\a_count \fi + \egroup +} +\def\min#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \ifnum \a_count<\result \global\result=\a_count \fi + \egroup +} +\def\half#1{ + #1\x_relax + \ifodd\result + \global\advance \result \@ne + \global\divide \result \tw@ + \ifodd\result \global\advance \result \m@ne \fi + \else + \global\divide \result \tw@ + \fi +} +\def\otherhalf#1{ + #1\x_relax + \ifodd\result + \global\advance \result \@ne + \global\divide \result \tw@ + \ifodd\result \else \global\advance \result \m@ne \fi + \else + \global\divide \result \tw@ + \fi +} +\def\scale#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \global\multiply \result \a_count + \rounded_thousandths + \egroup +} +\def\rounded_thousandths{ + \global\divide \result \five_hundred + \ifodd \result + \global\advance \result by \ifnum 0>\result - \fi 1 + \fi + \global\divide \result \tw@ +} +\def\l_rounded_thousandths#1{ + \divide #1 \five_hundred + \ifodd #1 + \advance #1 by \ifnum 0>#1 - \fi\@ne + \fi + \divide #1 \tw@ +} +\def\l_inv_scale#1#2{ + \multiply #1 \two_thousand + \divide #1 #2\x_relax + \ifodd#1 \advance #1 \ifnum 0>#1 - \fi\@ne \fi + \divide #1 \tw@ +} +\def\ifnumber#1#2#3\then{ + \eval_expr_to\a_count{#1} + \eval_expr{#3} + \ifnum \a_count#2\result + \expandafter\if_true + \else + \expandafter\if_false + \fi +} + +\let\setsomething_global=\x_relax +\def\x_setint#1#2{ + \x_cs\ifx{i-#1}\x_relax + \x_resetint{#1}{#2} + \fi +} +\let\setint=\x_setint +\def\x_setstr#1#2{ + \x_cs\ifx{s-#1}\x_relax + \setsomething_global\x_cs\edef{s-#1}{#2} + \fi +} +\let\setstr=\x_setstr +\def\setdim#1#2{ + \x_cs\ifx{d-#1}\x_relax + \a_dimen=#2\x_relax + \setsomething_global\x_cs\edef{d-#1}{\the\a_dimen} + \fi +} +\def\setcommand#1{ + \ifx#1\undefined_command + \setsomething_global \expandafter\def \expandafter#1 + \else + \expandafter\def \expandafter\a_macro + \fi +} +\def\x_resetint#1#2{ + \eval_expr{#2} + \setsomething_global + \ifnum\result<\max_mathchardef + \ifnum 0>\result + \x_cs\edef{i-#1}{\the\result} + \else + \x_cs\mathchardef{i-#1}=\result + \fi + \else + \x_cs\edef{i-#1}{\the\result} + \fi +} +\let\resetint=\x_resetint +\def\resetstr#1#2{\setsomething_global\x_cs\edef{s-#1}{#2}} +\def\resetdim#1#2{ + \a_dimen=#2 + \setsomething_global\x_cs\edef{d-#1}{\the\a_dimen} +} +\def\resetcommand#1{\setsomething_global\def#1} +\def\dim#1{\csname~d-#1\endcsname} +\def\ifisint#1\then{\if_defined i-#1\then} +\def\ifisstr#1\then{\if_defined s-#1\then} +\def\ifisdim#1\then{\if_defined d-#1\then} +\def\ifiscommand#1\then{ + \ifx#1\undefined_command + \expandafter\if_false + \else + \expandafter\if_true + \fi +} +\def\unsetint#1{\setsomething_global\x_cs\let{i-#1}\x_relax} +\def\unsetstr#1{\setsomething_global\x_cs\let{s-#1}\x_relax} +\def\unsetdim#1{\setsomething_global\x_cs\let{d-#1}\x_relax} +\def\unsetcommand#1{\setsomething_global\let#1=\undefined_command} +\def\offcommand#1{ + \x_cs\ifx{saved-\string#1}\x_relax + \setsomething_global\x_cs\let{saved-\string#1}#1 + \x_cs\ifx{off-\string#1}\x_relax + \generate_off_command{#1} + \else + \setsomething_global \expandafter\let \expandafter#1 + \csname off-\string#1\endcsname + \fi + \fi +} +\def\oncommand#1{ + \x_cs\ifx{saved-\string#1}\x_relax \else + \setsomething_global \expandafter\let \expandafter#1 + \csname saved-\string#1\endcsname + \setsomething_global\x_cs\let{saved-\string#1}\x_relax + \fi +} +\def\generate_off_command#1{ + \a_count=0 + \let\next=\count_hashes + \expandafter\next\meaning#1~->\x_relax + \b_count=0 + \a_toks={} + \loop \ifnum \b_count<\a_count + \advance \b_count 1 + \a_toks=\expandafter{\the\expandafter\a_toks \expandafter#### + \the\b_count} + \repeat + \setsomething_global \expandafter\def \expandafter#1 \the\a_toks {} +} +\def\count_hashes#1#2{ + \if \hash_char#1 + \advance \a_count 1 + \else + \if -#1 + \if >#2 + \let\next=\gobble_to_xrelax + \fi\fi + \fi + \next#2 +} +\def\gobble_to_xrelax#1\x_relax{} +\def\for(#1)#2#3#4{ + \eval_expr_to\a_count{#2} + \x_resetint{#1}{\a_count} + \eval_expr{#4} + \ifnum 0=\result \else + \c_count=\result + \eval_expr_to\b_count{#3} + \setsomething_global\x_cs\edef{for-#1}{ + \the\c_count \x_relax + \noexpand\ifnum \gobble_one\fi + \the\b_count \ifnum 0>\c_count > \else < \fi + } + \def\next##1##2##3\endfor(#1){##2\for_i{##1}{##3}} + \next{#1} + \fi +} +\def\for_i#1#2{ + \setsomething_global\x_cs\def{body-#1}{#2} + \ifnum \b_count \ifnum0>\c_count >\else<\fi \a_count + \expandafter\gobble_two + \else + \csname body-#1 \expandafter\endcsname + \fi + \for_ii{#1} +} +\def\for_ii#1{ + \a_count=\int{#1} + \advance \a_count \csname for-#1\endcsname \a_count + \expandafter\gobble_two + \else + \x_resetint{#1}\a_count + \csname body-#1 \expandafter\endcsname + \fi + \for_ii{#1} +} +\def\endfor(#1){} +\def\foreach(#1)#2{ + \def\next##1\endfor(#1){ + \setsomething_global\x_cs\def{body-#1}{##1} + \process_csep_list{\foreach_i{#1}}#2,\process_csep_list, + } + \next +} +\def\foreach_i#1#2{ + \resetstr{#1}{#2} + \csname body-#1\endcsname +} +\let\comment=\gobble_one +\let\begincomment=\iffalse +\let\endcomment=\fi +%%% From file: fimain.dtx +\def\inputetx#1{ + \edef\lowercase_file{\lowercase{ + \edef\noexpand\lowercase_file{#1}}} + \lowercase_file + \slot_number=0 + \def\relax{\let\relax=\x_relax\iffalse} + \let\encoding=\fi + \primitiveinput \lowercase_file.etx\x_relax + \let\relax=\x_relax +} +\let\encoding=\relax +\outer\def\endencoding{\endinput} +\def\setslot#1{\edef\slot_name{#1}\do_slot} +\def\endsetslot{\end_do_slot\advance\slot_number by 1\x_relax} +\let\do_slot\empty_command +\let\end_do_slot\empty_command +\newcount\slot_number +\def\nextslot#1{\eval_expr_to\slot_number{#1}} +\def\skipslots#1{\eval_expr{#1} \advance\slot_number by \result} +\def\setleftboundary#1{\edef\slot_name{#1}\do_boundary} +\let\endsetleftboundary\x_relax +\let\do_boundary\x_relax +\def\setrightboundary#1{ + \makerightboundary{#1} + \advance \slot_number 1\x_relax +} +\let\ligature=\gobble_three +\def\Ligature{\ligature} +\def\oddligature#1#2#3#4{} +\let\nextlarger=\gobble_one +\let\usedas=\gobble_two +\let\makerightboundary=\gobble_one +\let\Unicode=\gobble_two +\let\varchar=\empty_command +\let\vartop=\gobble_one +\let\varmid=\gobble_one +\let\varbot=\gobble_one +\let\varrep=\gobble_one +\let\endvarchar=\empty_command +\let\useexamplefont=\gobble_one +\let\slotexample=\empty_command +\let\setslotcomment=\gobble_one +\let\resetslotcomment=\gobble_one +\let\unsetslotcomment=\empty_command +\def\setfontdimen#1#2{ + \ifisint{#2}\then \setint{fontdimen(#1)}{\int{#2}} \fi +} +\let\label=\gobble_one +\newif\ifdirect \directtrue +\def\input_mtx_as_etx#1{ + \def\setscaledrawglyph##1##2##3##4##5##6##7##8##9{ + \nextslot{##5} + \setslot{##1}\endsetslot + } + \offcommand\setscalednotglyph + \let\setglyph=\gobble_glyph + \offcommand\setkern + \inputmtx{#1} +} +\def\inputmtx#1{ + \def\relax{\let\relax=\x_relax\iffalse} + \let\metrics=\fi + \primitiveinput #1.mtx\x_relax + \let\relax=\x_relax +} +\let\metrics=\x_relax +\edef\endmetrics_text{\string\endmetrics} +\outer\def\endmetrics{\endinput} +\def\ProvidesMtxPackage#1{\x_cs\let{pack-#1}P} +\def\usemtxpackage{\futurelet\next_token\test_UseMtxPkg_arguments} +\def\test_UseMtxPkg_arguments{\ifx\next_token[ + \expandafter\mtx_package_given_file + \else + \expandafter\mtx_package_separate_files + \fi +} +\def\mtx_package_given_file[#1]#2{ + \_a_false + \process_csep_list\load_true_unless_loaded #2,\process_csep_list, + \if_a_ \inputmtx{#1} \fi +} +\def\load_true_unless_loaded#1{ + \x_cs\ifx{pack-#1}P\else\_a_true\fi +} +\def\mtx_package_separate_files#1{ + \process_csep_list\load_file_unless_loaded #1,\process_csep_list, +} +\def\load_file_unless_loaded#1{ + \x_cs\ifx{pack-#1}P\else \inputmtx{#1} \fi +} +\let\glyph_name_modifier=\identity_one +\def\setkern#1#2#3{ + \x_cs\ifx{i-rawscale}\x_relax + \expandafter\set_kern + \csname~r-\glyph_name_modifier{#1}\expandafter\endcsname + \csname~l-\glyph_name_modifier{#2}\endcsname + {#3} + \else + \expandafter\set_kern + \csname~r-\glyph_name_modifier{#1}\expandafter\endcsname + \csname~l-\glyph_name_modifier{#2}\endcsname + {\scale{#3}{\int{rawscale}}} + \fi +} +\def\set_kern#1#2#3{ + \eval_expr{#3} + \expandafter\set_kern_cs\csname\the\result\endcsname#1#2 +} +\def\set_kern_cs#1#2#3{ + \add_to#2{\k#3#1} + \add_to#3{\k#2#1} +} +\def\resetkern#1#2#3{ + \x_cs\ifx{i-rawscale}\x_relax + \expandafter\reset_kern + \csname~r-#1\expandafter\endcsname + \csname~l-#2\endcsname{#3} + \else + \expandafter\reset_kern + \csname~r-#1\expandafter\endcsname + \csname~l-#2\endcsname{\scale{#3}{\int{rawscale}}} + \fi +} +\def\reset_kern#1#2#3{ + \eval_expr{#3} + \expandafter\reset_kern_cs\csname\the\result\endcsname#1#2 +} +\def\reset_kern_cs#1#2#3{ + \prep_to#2{\k\expandafter#3\expandafter#1} + \prep_to#3{\k\expandafter#2\expandafter#1} +} +\def\setleftkerning#1#2#3{ + \eval_expr_to\b_count{#3} + \expandafter\set_kerning + \csname~l-#1\expandafter\endcsname + \csname~l-#2\endcsname +} +\def\setrightkerning#1#2#3{ + \eval_expr_to\b_count{#3} + \expandafter\set_kerning + \csname~r-#1\expandafter\endcsname + \csname~r-#2\endcsname +} +\def\setleftrightkerning#1#2#3{ + \eval_expr_to\b_count{#3} + \expandafter\set_kerning + \csname~l-#1\expandafter\endcsname + \csname~l-#2\endcsname + \expandafter\set_kerning + \csname~r-#1\expandafter\endcsname + \csname~r-#2\endcsname +} +\def\set_kerning#1#2{ + \if\b_count=\one_thousand + \def\k##1##2{ + \set_kern_cs##2##1#1 + } + \else + \def\k##1##2{ + \set_kern##1#1{ + \scale\b_count{\expandafter\gobble_one\string##2} + } + } + \fi + #2 +} +\def\kerning#1#2{0\x_relax + \def\k##1{\csname~set-\string##1\endcsname\gobble_one} + \bgroup + \x_cs\def{set-\string\l-#2}##1##2{ + \global\result=\expandafter\gobble_one\string##2\egroup + } + \csname~r-#1\endcsname + \csname~set-\string\l-#2\endcsname\gobble_one{00} +} +\def\ifiskern#1#2\then{ + \def\k##1##2{\ifx T##1 \let\k\gobble_two \fi} + \bgroup + \x_cs\let{l-#2}T + \csname r-#1\endcsname + \expandafter\egroup \ifx\k\gobble_two +} +\def\unsetkerns#1#2{ + \let\k\k_unless_to_U + \process_csep_list\make_slots_U#1,\process_csep_list, + \def\do##1{\x_cs\main_remove_Us{l-##1}} + \process_csep_list\do#2,\process_csep_list, + \process_csep_list\make_slots_relax#1,\process_csep_list, + \process_csep_list\make_slots_U#2,\process_csep_list, + \def\do##1{\x_cs\main_remove_Us{r-##1}} + \process_csep_list\do#1,\process_csep_list, + \process_csep_list\make_slots_relax#2,\process_csep_list, +} +\def\make_slots_U#1{\x_cs\let{slots-#1}U} +\def\make_slots_relax#1{\x_cs\let{slots-#1}\x_relax} +\def\k_unless_to_U#1#2{ + \x_cs\ifx{slots-\expandafter\gobble_three\string#1}U \else + \noexpand\k\noexpand#1\noexpand#2 + \fi +} +\def\main_remove_Us#1{ + \ifx#1\x_relax \else + \edef#1{#1} + \ifx#1\empty_command \let#1\x_relax \fi + \fi +} +\def\noleftkerning#1{\no_kerning{l}{#1}} +\def\norightkerning#1{\no_kerning{r}{#1}} +\def\noleftrightkerning#1{\no_kerning{l}{#1}\no_kerning{r}{#1}} +\def\no_kerning#1#2{ + \let\k\no_kerning_i + \def\do##1{\csname #1-##1\endcsname} + \bgroup + \aftergroup\def \aftergroup\a_macro \aftergroup{ + \process_csep_list\do #2,\process_csep_list, + \aftergroup} + \egroup + \def\do##1{\expandafter\let \csname #1-##1\endcsname \x_relax} + \process_csep_list\do #2,\process_csep_list, + \let\k\no_kerning_ii + \def\do##1{\edef##1{##1}} + \a_macro +} +\def\no_kerning_i#1#2{ + \ifx #1\x_relax \else + \aftergroup\do \aftergroup#1 + \let #1\x_relax + \fi +} +\def\no_kerning_ii#1#2{ + \ifx #1\x_relax \else \noexpand\k \noexpand#1 \noexpand#2 \fi +} +\def\width{\glyph_parameter\first_of_six} +\def\height{\glyph_parameter\second_of_six} +\def\depth{\glyph_parameter\third_of_six} +\def\italic{\glyph_parameter\fourth_of_six} +\def\mapcommands{\glyph_parameter\fifth_of_six} +\def\mapfonts{\glyph_parameter\sixth_of_six} +\def\glyph_parameter#1#2{ + \expandafter\expandafter\expandafter + #1\csname g-#2\endcsname +} +\def\first_of_six#1#2#3#4#5#6{#1} +\def\second_of_six#1#2#3#4#5#6{#2} +\def\third_of_six#1#2#3#4#5#6{#3} +\def\fourth_of_six#1#2#3#4#5#6{#4} +\def\fifth_of_six#1#2#3#4#5#6{#5} +\def\sixth_of_six#1#2#3#4#5#6{#6} +\def\glyph_metrics#1#2#3#4#5#6{ + \a_count=#1 + \b_count=#2 + \c_count=#3 + \d_count=#4~ +} +\let\saved_scale\x_relax +\let\saved_mapfont\x_relax +\let\saved_raw\x_relax +\let\saved_rule\x_relax +\let\saved_special\x_relax +\let\saved_warning\x_relax +\let\saved_movert\x_relax +\let\saved_moveup\x_relax +\let\saved_push\x_relax +\let\saved_pop\x_relax +\newcount\glyph_width +\newcount\glyph_height +\newcount\glyph_depth +\newcount\glyph_italic +\newtoks\glyph_map_commands +\newtoks\glyph_map_fonts +\newcount\glyph_voffset +\newcount\glyph_maxhpos +\def\setglyph#1{ + \ifisglyph{\glyph_name_modifier{#1}}\then + \expandafter\gobble_glyph + \else + \x_cs\def{g-\glyph_name_modifier{#1}}{ + {\the\glyph_width}{\the\glyph_height} + {\the\glyph_depth}{\the\glyph_italic} + {\the\glyph_map_commands}{\the\glyph_map_fonts} + } + \resetglyph{\glyph_name_modifier{#1}} + \fi +} +\long\def\gobble_glyph#1\endsetglyph{} +\def\resetglyph#1{ + \edef\glyphname{#1} + \glyph_width=0 + \global\glyph_height=0 + \global\glyph_depth=0 + \global\glyph_italic=0 + \glyph_voffset=0 + \global\glyph_maxhpos=0 + \global\glyph_map_commands={} + \global\glyph_map_fonts={} +} +\def\endsetglyph{ + \x_cs\edef{g-\glyphname} + {{\the\glyph_width}{\the\glyph_height} + {\the\glyph_depth}{\the\glyph_italic} + {\the\glyph_map_commands}{\the\glyph_map_fonts}} +} +\let\endresetglyph=\endsetglyph +\def\setrawglyph#1#2#3{ + \setscaledrawglyph{#1}{#2}{#3}\one_thousand +} +\def\setscaledrawglyph#1#2#3#4#5#6#7#8#9{ + \if_undefined{g-\glyph_name_modifier{#1}}\then + \eval_expr{#4} + \ifnum \result=\one_thousand + \let\a_macro\identity_one + \else + \edef\a_macro##1{\saved_scale{\the\result}{##1}} + \fi + \eval_expr_to\a_count{#6} + \eval_expr_to\b_count{#7} + \eval_expr_to\c_count{#8} + \eval_expr_to\d_count{#9} + \ifisint{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 + \edef\a_macro##1{\saved_scale{\the\e_count}{\a_macro{##1}}} + \fi + \x_cs\edef{g-\glyph_name_modifier{#1}}{ + {\the\a_count} + {\the\b_count} + {\the\c_count} + {\the\d_count} + {\a_macro{\saved_raw{#2}{#5}{#1}}} + {\a_macro{\saved_mapfont{#2}{#3}}} + } + \fi +} +\def\setnotglyph#1#2#3{ + \setscalednotglyph{#1}{#2}{#3}\one_thousand +} +\def\setscalednotglyph#1#2#3#4#5#6#7#8#9{ + \if_undefined{g-\glyph_name_modifier{#1}-not}\then + \eval_expr_to\a_count{#6} + \eval_expr_to\b_count{#7} + \eval_expr_to\c_count{#8} + \eval_expr_to\d_count{#9} + \ifisint{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{g-\glyph_name_modifier{#1}-not}{ + {\the\a_count} + {\the\b_count} + {\the\c_count} + {\the\d_count} + {}{} + } + \fi +} +\def\unsetglyph#1{\x_cs\let{g-#1}\x_relax} +\def\glyph#1#2{ + \glyph_parameter\glyph_metrics{#1} + \eval_expr_to\e_count{#2} + \ifnum \e_count=\one_thousand + \edef\a_macro{\mapcommands{#1}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } + \edef\a_macro{\mapfonts{#1}} + \else + \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 + \edef\a_macro{\saved_scale{\the\e_count}{\mapcommands{#1}}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } + \edef\a_macro{\saved_scale{\the\e_count}{\mapfonts{#1}}} + \fi + \advance \glyph_width \a_count + \advance \b_count \glyph_voffset + \ifnum \glyph_height<\b_count \global\glyph_height=\b_count \fi + \advance \c_count -\glyph_voffset + \ifnum \glyph_depth<\c_count \global\glyph_depth=\c_count \fi + \global\glyph_italic=\d_count + \global\glyph_map_fonts\expandafter{ + \the\expandafter\glyph_map_fonts \a_macro + } +} +\def\glyphrule#1#2{ + \eval_expr_to\b_count{#1} \eval_expr_to\c_count{#2} + \advance\glyph_width by \b_count + \g_eval_expr_to\glyph_depth{\max\glyph_depth{-\glyph_voffset}} + \g_eval_expr_to\glyph_height{ + \max\glyph_height{\add\glyph_voffset\c_count} + } + \global\glyph_italic=0 + \edef\a_macro{\saved_rule{\the\b_count}{\the\c_count}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } +} +\def\glyphspecial#1{ + \edef\a_macro{\saved_special{#1}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } +} +\def\glyphwarning#1{ + \edef\a_macro{\saved_warning{#1}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } +} +\def\movert#1{ + \eval_expr{#1} + \ifnum \glyph_maxhpos<\glyph_width + \global\glyph_maxhpos\glyph_width + \fi + \ifnum 0=\result \else + \advance\glyph_width by \result + \edef\a_macro{\saved_movert{\the\result}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } + \fi +} +\def\moveup#1{ + \eval_expr{#1} + \ifnum\result=0\else + \advance\glyph_voffset by \result + \edef\a_macro{\saved_moveup{\the\result}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } + \fi +} +\def\push{ + \bgroup + \global\glyph_map_commands\expandafter{ + \the\glyph_map_commands \saved_push + } +} +\def\pop{ + \ifnum \glyph_maxhpos<\glyph_width + \global\glyph_maxhpos\glyph_width + \fi + \egroup + \global\glyph_map_commands\expandafter{ + \the\glyph_map_commands \saved_pop + } +} +\def\resetwidth#1{\movert{\sub{#1}\glyph_width}} +\def\resetheight{\g_eval_expr_to\glyph_height} +\def\resetdepth{\g_eval_expr_to\glyph_depth} +\def\resetitalic{\g_eval_expr_to\glyph_italic} +\def\glyphpcc#1#2#3{ + \ifisglyph{\glyph_name_modifier{#1}}\then + \push + \movert{#2} + \moveup{#3} + \glyph{\glyph_name_modifier{#1}}{\one_thousand} + \pop + \else + \fontinsterror{\string\glyphpcc}{ + Base~glyph~not~set.\messagebreak + This~could~be~a~sign~that~the~AFM~file~is~buggy + }\error_help_a + \fi +} +\def\glyphbboxright{\max\glyph_width\glyph_maxhpos} +\def\samesize#1{ + \if_undefined{g-\glyph_name_modifier{#1}}\then + \resetwidth{\glyphbboxright} + \else + \expandafter\expandafter\expandafter + \same_size\csname g-\glyph_name_modifier{#1}\endcsname + \fi +} +\def\same_size#1#2#3#4#5#6{ + \movert{\sub{#1}\glyph_width} + \global\glyph_height=#2 + \global\glyph_depth=#3 + \global\glyph_italic=#4 +} +\def\ifisglyph#1\then{\if_defined{g-#1}\then} +\def\ifareglyphs#1\then{ + \process_csep_list{\if_is_glyph}#1,\process_csep_list, + \if_true +} +\def\if_is_glyph#1{ + \if_undefined{g-#1}\then \expandafter\if_false \fi +} +\def\etxtovpl#1#2{{ + \def\vpl_extension{vpl} + \def\vpl_title{COMMENT} + \def\vpl_font{virtual~font} + \def\vpl_Font{Virtual~font} + \def\vpl_call{\string\etxtovpl{#1}{#2}} + \def\vpl_to_vf##1{vptovf~##1.vpl~##1.vf~##1.tfm} + \a_toks={} + \process_csep_list\make_inputetx #1,\process_csep_list, + \expandafter\etx_to_font \expandafter{\the\a_toks}{#2} +}} +\def\etxtopl#1#2{{ + \def\vpl_extension{pl} + \def\vpl_title{COMMENT} + \def\vpl_font{font} + \def\vpl_Font{Font} + \def\vpl_call{\string\etxtopl{#1}{#2}} + \def\vpl_to_vf##1{pltotf~##1.pl~##1.tfm} + \_including_map_false + \global\rawfont_scaling=-\p@ + \a_toks={} + \process_csep_list\make_inputetx #1,\process_csep_list, + \expandafter\etx_to_font \expandafter{\the\a_toks}{#2} +}} +\newif\if_including_map_ +\_including_map_true +\def\make_inputetx#1{ + \def\a_macro{\noexpand\inputetx{\file_name}} + \get_file_name #1~{}~\par + \edef\a_macro{\a_macro} + \a_toks=\expandafter{ \the\expandafter\a_toks \a_macro} +} +\x_cs\def{IFKW-mtxasetx}{ + \def\a_macro{\noexpand\input_mtx_as_etx{\file_name}} + \get_keyword +} +\def\etx_to_font#1#2{ + \make_assignments{#1} + \open_out{#2.\vpl_extension} + \top_of_pl_hook + \out_line{(\vpl_title\space\vpl_font\space + #2~created~by~fontinst~v\fontinstversion)} + \out_line{} + \out_line{(COMMENT~Filename:~#2.\vpl_extension)} + \out_line{(COMMENT~Created~by:~tex~\jobname)} + \out_line{(COMMENT~Created~using:~\vpl_call)} + \out_line{} + \out_line{(COMMENT~This~file~can~be~turned~into~a~\vpl_font\space + with)} + \out_line{(COMMENT~\vpl_to_vf{#2})} + \out_line{} + \out_line{(COMMENT~THIS~FILE~CAN~THEN~BE~DELETED.)} + \out_line{} + \make_header{#1} + \if_including_map_ \make_mapfonts{#1} \fi + \make_fontdimens{#1} + \make_ligtable{#1} + \make_characters{#1} + \make_tidy{#1} + \out_line{} + \out_line{(COMMENT~END~OF~FILE~#2.\vpl_extension)} + \close_out{\vpl_Font} +} +\let\pre_first_etx_pass_hook\x_relax +\let\pre_second_etx_pass_hook\x_relax +\let\pre_third_etx_pass_hook\x_relax +\let\pre_fourth_etx_pass_hook\x_relax +\let\post_first_etx_pass_hook\x_relax +\let\post_second_etx_pass_hook\x_relax +\let\post_third_etx_pass_hook\x_relax +\let\post_fourth_etx_pass_hook\x_relax +\let\tidying_up_hook\x_relax +\let\top_of_pl_hook\x_relax +\def\make_assignments#1{ + \let\do_slot=\assign_slot + \let\end_do_slot=\end_assign_slot + \def\do_boundary{\bgroup + \let\makerightboundary=\bad_makerightboundary + } + \let\endsetleftboundary=\egroup + \let\makerightboundary=\assign_rboundary + \pre_first_etx_pass_hook + #1 + \post_first_etx_pass_hook + \let\end_do_slot=\empty_command + \let\do_boundary=\x_relax + \let\endsetleftboundary=\x_relax + \let\makerightboundary=\gobble_one +} +\def\assign_slot{\a_toks={\do}} +\begingroup + \catcode0=12 + \gdef\end_assign_slot{ + \ifisglyph\slot_name\then + \lccode0=\slot_number + \lowercase{ + \expandafter\add_to + \csname slots-\slot_name\expandafter\endcsname + \expandafter{\the\a_toks^^@} + } + \x_resetint\slot_name\slot_number + \fi + } + \gdef\assign_rboundary#1{ + \lccode0=\slot_number + \lowercase{\x_cs\add_to{slots-#1}{\rboundary_do^^@}} + \x_setint{\percent_char boundarychar}\slot_number + \a_toks={\rbserver_do} + } +\endgroup +\def\bad_makerightboundary#1{ + \errhelp={The~left~boundary~is~not~a~slot,~so~it~cannot~serve~ + as~right~boundary.} + \errmessage{Incorrect~use~of~\string\makerightboundary} +} +\def\get_slot_num#1{ + \ifisint{#1}\then + \global\result=\int{#1} + \else + \global\result=-1 + \fi + \x_relax +} +\def\ifisinslot#1#2\then{ + \ifx \makerightboundary\gobble_one + \eval_expr{#2} + \begingroup + \def\do##1{\ifnum `##1=\result \let\do=\gobble_one \fi} + \def\rbserver_do{\do} + \let\rboundary_do=\gobble_one + \csname slots-#1\endcsname + \expandafter\endgroup + \ifx \do\gobble_one + \expandafter\expandafter \expandafter\if_true + \else + \expandafter\expandafter \expandafter\if_false + \fi + \else + \expandafter\gobble_if + \fi +} +\newdimen\mapfont_scaling +\mapfont_scaling=1pt +\newdimen\rawfont_scaling +\def\vpl_real#1{R~\expandafter\lose_measure\the#1} +\def\vpl_int#1{D~\the#1} +\newdimen\side_bearings +\newdimen\curr_bearings +\def\make_header#1{ + \global\font_count=0 + \setdim{designsize}{10pt} + \a_dimen=\dim{designsize} + \out_line{(DESIGNSIZE~\vpl_real\a_dimen)} + \x_setstr{codingscheme}{UNKNOWN} + \out_line{(CODINGSCHEME~\str{codingscheme})} + \ifisint{boundarychar}\then + \x_setint{\percent_char boundarychar}{\int{boundarychar}} + \immediate\write16{Please~use~\string\setleftboundary\space + and/or~\string\makerightboundary^^J + instead~of~setting~the~boundarychar~integer.} + \fi + \ifisint{\percent_char boundarychar}\then + \a_count=\int{\percent_char boundarychar} + \out_line{(BOUNDARYCHAR~\vpl_int\a_count)} + \fi + \x_setint{letterspacing}{0} + \side_bearings=\make_factor{\int{letterspacing}}\half_point + \x_setint{minimumkern}{0} + \minimum_kern=\int{minimumkern} + \out_line{} +} +\def\make_mapfonts#1{ + \let\saved_scale\vpl_scale + \let\saved_mapfont\vpl_mapfont + \let\do_slot=\do_mapfont + \pre_second_etx_pass_hook + #1 + \post_second_etx_pass_hook + \out_line{} +} +\def\do_mapfont{ + \ifisglyph\slot_name\then + \mapfonts\slot_name + \fi +} +\def\vpl_scale#1#2{{ + \mapfont_scaling=\make_factor{#1}\mapfont_scaling + #2 +}} +\def\vpl_mapfont#1#2{ + \a_dimen=#2 + \if_undefined{\the\mapfont_scaling-#1}\then + \global\x_cs\mathchardef{\the\mapfont_scaling-#1}=\font_count + \x_cs\xdef{f-\the\font_count}{\the\mapfont_scaling-#1} + \out_line{(MAPFONT~\vpl_int\font_count\space + (FONTNAME~#1)~ + (FONTDSIZE~\vpl_real\a_dimen)~ + (FONTAT~\vpl_real\mapfont_scaling))} + \record_usage{#1} + \global\advance\font_count by 1 + \fi +} +\def\pl_mapfont#1#2{\global\rawfont_scaling=\mapfont_scaling} +\newcount\font_count +\newcount\next_mapfont +\newcount\prev_mapfont +\def\make_fontdimens#1{ + \out_line{(FONTDIMEN} + \a_count=1 + \loop\ifnum 256>\a_count + \ifisint{fontdimen(\the\a_count)}\then + \out_lline{(PARAMETER~\vpl_int\a_count\space + R~\make_factor{\int{fontdimen(\the\a_count)}})} + \fi + \advance \a_count \@ne + \repeat + \out_lline{)} + \out_line{} +} +\def\make_ligtable#1{ + \begingroup + \out_line{(LIGTABLE} + \def\do_slot{\bgroup + \ifisint{boundarychar}\then + \ifnum \int{boundarychar}=\slot_number + \def\vpl_liglabel{\out_liglabel\boundary_liglabel} + \fi + \fi + } + \let\end_do_slot=\vpl_kerning + \def\do_boundary{\bgroup \let\vpl_liglabel=\boundary_liglabel} + \let\endsetleftboundary=\vpl_kerning + \let\ligature=\vpl_ligature + \let\k=\vpl_kern + \let\rbserver_do=\vpl_rbserver_do + \let\rboundary_do=\vpl_rboundary_do + \pre_third_etx_pass_hook + #1 + \post_third_etx_pass_hook + \out_lline{)} + \endgroup + \out_line{} +} +\def\vpl_rbserver_do#1{ + \do{#1} + \let\rboundary_do=\wrn_rboundary_do +} +\def\vpl_rboundary_do#1{ + \do{#1} + \let\rbserver_do=\wrn_rboundary_do +} +\def\wrn_rboundary_do#1{ + \do{#1} + \immediate\write16{Boundarychar~slot~usage~collision~in~ + `\slot_name'~ligkern~program.} +} +\def\vpl_ligature#1#2#3{ + \get_slot_num{#3} + \ifnum -1=\result + \immediate\write16{Warning:~\string\ligature\space + for~unknown~slot~`#3'.} + \else + \x_cs\ifx{slots-#2}\x_relax + \immediate\write16{Warning:~\string\ligature\space + for~unknown~slot~`#2'.} + \else + \def\do##1{ + \vpl_liglabel + \out_lline{(#1~D~\number`##1~\space\vpl_int\result)~ + (COMMENT~#2~#3)} + } + \csname slots-#2\endcsname + \fi + \fi +} +\def\vpl_kerning{ + \let\do=\vpl_kern_do + \csname~r-\slot_name\endcsname + \vpl_ligstop + \egroup +} +\def\vpl_kern#1#2{ + \edef\a_macro{\expandafter\gobble_three\string#1} + \a_count=\expandafter\gobble_one\string#2\x_relax + \ifnum \ifnum -\a_count>\a_count - \fi\a_count>\minimum_kern + \edef\b_macro{~R~\make_factor\a_count} + \csname slots-\a_macro\endcsname + \fi + \x_cs\let{slots-\a_macro}=\x_relax +} +\def\vpl_kern_do#1{ + \vpl_liglabel + \out_lline{ + (KRN~D~\number`#1~\b_macro)~ + (COMMENT~\a_macro) + } +} +\def\out_liglabel{ + \out_lline{(LABEL~\vpl_int\slot_number)~(COMMENT~\slot_name)} + \let\vpl_liglabel=\x_relax + \let\vpl_ligstop=\out_ligstop +} +\def\boundary_liglabel{ + \out_lline{(LABEL~BOUNDARYCHAR)~(COMMENT~\slot_name)} + \let\vpl_liglabel=\x_relax + \let\vpl_ligstop=\out_ligstop +} +\let\vpl_liglabel=\out_liglabel +\def\out_ligstop{\out_lline{(STOP)} + \let\vpl_liglabel=\out_liglabel + \let\vpl_ligstop=\x_relax} +\let\vpl_ligstop=\x_relax +\def\make_characters#1{ + \bgroup + \let\do_slot=\do_character + \let\end_do_slot=\end_do_character + \let\nextlarger=\vpl_nextlarger + \let\varchar=\vpl_varchar + \let\endvarchar=\end_vpl_varchar + \let\vartop=\vpl_vartop + \let\varmid=\vpl_varmid + \let\varbot=\vpl_varbot + \let\varrep=\vpl_varrep + \if_including_map_ + \let\saved_raw\vpl_raw + \let\saved_rule\vpl_rule + \let\saved_special\vpl_special + \let\saved_warning\vpl_warning + \let\saved_movert\vpl_movert + \let\saved_moveup\vpl_moveup + \let\saved_push\vpl_push + \let\saved_pop\vpl_pop + \else + \def\do_character_map{ + \ifdim \rawfont_scaling=-\p@ + \mapfonts\slot_name + \else + \let\do_character_map=\x_relax + \fi + } + \let\saved_mapfont\pl_mapfont + \let\saved_scale\vpl_scale + \fi + \pre_fourth_etx_pass_hook + #1 + \post_fourth_etx_pass_hook + \egroup +} +\def\do_character{ + \if_undefined{g-\slot_name}\then + \ifisint{requireglyphs}\then + \fontinstwarning{ETX~to~(V)PL}{ + Undefined~glyph~`\slot_name'~requested\message_break + for~slot~\the\slot_number\message_number} + \fi + \expandafter\gobble_setslot + \else + \ifx\slot_name\notdef_name\else + \out_line{(CHARACTER~\vpl_int\slot_number\space + (COMMENT~\slot_name)} + \glyph_parameter\glyph_metrics\slot_name + \a_dimen=\make_factor\a_count \p@ + \do_character_sidebearings + \out_lline{(CHARWD~\vpl_real\a_dimen)} + \ifnum \z@=\b_count \else + \out_lline{(CHARHT~R~\make_factor\b_count)} + \fi + \ifnum \z@=\c_count \else + \out_lline{(CHARDP~R~\make_factor\c_count)} + \fi + \ifnum \z@=\d_count \else + \out_lline{(CHARIC~R~\make_factor\d_count)} + \fi + \do_character_map + \fi + \fi +} +\def\do_character_sidebearings{ + \ifisint{\slot_name-spacing}\then + \curr_bearings=\make_factor{\int{\slot_name-spacing}}\half_point + \else + \curr_bearings=\side_bearings + \fi + \advance\a_dimen by 2\curr_bearings +} +\def\do_character_map{ + \global\prev_mapfont=0 + \out_lline{(MAP} + \ifdim 0pt=\curr_bearings + \mapcommands\slot_name + \else + \out_llline{(MOVERIGHT~\vpl_real\curr_bearings)} + \mapcommands\slot_name + \out_llline{(MOVERIGHT~\vpl_real\curr_bearings)} + \fi + \out_llline{)} +} +\long\def\gobble_setslot#1\endsetslot{\endsetslot} +\def\end_do_character{ + \ifisglyph\slot_name\then + \out_lline{)} + \fi +} +\def\notdef_name{.notdef} +\def\vpl_nextlarger#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_lline{(NEXTLARGER~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\nextlarger\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_varchar{\out_lline{(VARCHAR}} +\def\end_vpl_varchar{\out_llline{)}} +\def\vpl_vartop#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_llline{(TOP~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\vartop\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_varmid#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_llline{(MID~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\varmid\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_varbot#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_llline{(BOT~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\varbot\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_varrep#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_llline{(REP~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\varrep\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_raw#1#2#3{ + \global\next_mapfont=\csname\the\mapfont_scaling-#1\endcsname + \ifnum \next_mapfont=\prev_mapfont \else + \out_llline{(SELECTFONT~\vpl_int\next_mapfont)~ + (COMMENT~#1~at~ + \expandafter\lose_measure \the\mapfont_scaling)} + \fi + \out_llline{(SETCHAR~D~#2)~(COMMENT~#3)} + \global\prev_mapfont=\next_mapfont +} +\def\vpl_rule#1#2{ + \a_dimen=\make_factor{#2}\mapfont_scaling + \b_dimen=\make_factor{#1}\mapfont_scaling + \out_llline{(SETRULE~\vpl_real\a_dimen\space\vpl_real\b_dimen)} +} +\def\vpl_special#1{ + \out_llline{(SPECIAL~#1)}} +\def\vpl_warning#1{ + \ifwarningspecials + \out_llline{(SPECIAL~Warning:~#1)} + \fi + \immediate\write16{Warning:~#1.} +} +\newif\ifwarningspecials +\warningspecialstrue +\def\vpl_movert#1{ + \a_dimen=\make_factor{#1}\mapfont_scaling + \out_llline{(MOVERIGHT~\vpl_real\a_dimen)} +} +\def\vpl_moveup#1{ + \a_dimen=\make_factor{#1}\mapfont_scaling + \out_llline{(MOVEUP~\vpl_real\a_dimen)} +} +\def\vpl_push{\out_llline{(PUSH)}} +\def\vpl_pop{\out_llline{(POP)}} +\def\make_tidy#1{ + \tidying_up_hook + \if_including_map_ + \a_count=0 + \loop\ifnum \a_count<\font_count + \edef\a_macro{\csname~f-\the\a_count\endcsname} + \global\x_cs\let\a_macro\x_relax + \advance\a_count by 1 + \repeat + \global\font_count=0 + \else + \ifdim \rawfont_scaling<\z@ + \fontinstwarning{ETX~to~(V)PL}{The~font~ + \out_filename\space doesn't~contain~any~characters} + \global\rawfont_scaling=\p@ + \fi + \ifdim \rawfont_scaling=\p@ \else + \out_line{(DESIGNUNITS~\vpl_real\rawfont_scaling)} + \fi + \fi +} +\newtoks\family_toks +\def\installfonts{ + \bgroup + \global\family_toks={} + \gdef\prev_file_list{} + \global\let\setsomething_global=\global +} +\def\installfamily#1#2#3{ + \global\family_toks= + \expandafter{\the\family_toks\fd_family{#1}{#2}{#3}} + \global\x_cs\let{#1-#2}\empty_command +} +\def\installfont#1#2#3#4#5#6#7#8{ + \global\let\setsomething_global=\x_relax + \input_metrics{}{#2} + \etxtovpl{#3}{#1} + \installfontas{#1}{#4}{#5}{#6}{#7}{#8} + \global\let\setsomething_global=\global +} +\def\installrawfont#1#2#3#4#5#6#7#8{ + \global\let\setsomething_global=\x_relax + \xdef\out_filename{#1} + \input_metrics{\let\storemapdata=\installraw_storemap}{#2} + \let\storemapdata=\gobble_three + \etxtopl{#3}{#1} + \record_usage{#1} + \installfontas{ + \ifdim \rawfont_scaling=\p@ \else + [\expandafter\lose_measure\the\rawfont_scaling]~ + \fi #1 + }{#4}{#5}{#6}{#7}{#8} + \global\let\setsomething_global=\global +} +\def\installraw_storemap#1#2#3{ + \def\a_macro{#1} + \ifx \a_macro\out_filename \else + \record_transform{\out_filename}{\string\frommtx{#1}}{}\if_false + \fi +} +\def\input_metrics#1#2{ + \let\metrics=\file_list_metrics + \xdef\curr_file_list{#2,} + \let\metrics=\x_relax + \ifx\prev_file_list\curr_file_list\else + \egroup\bgroup + #1 + \expandafter\process_csep_list \expandafter\input_mtx_file + \curr_file_list\process_csep_list, + \global\let\prev_file_list=\curr_file_list + \fi +} +\def\file_list_metrics#1,{ + \iffalse{\fi} + \a_toks=\expandafter{\curr_file_list\x_relax#1,} + \xdef\curr_file_list{\the\a_toks \iffalse}\fi +} +\def\installfontas#1#2#3#4#5#6{ + \if_undefined{#2-#3-#4-#5}\then + \let\do_shape=\x_relax + \if_undefined{#2-#3}\then + \x_cs\let{#2-#3}\empty_command + \autoinstallfamily{#2}{#3} + \fi + \x_cs\xdef{#2-#3}{ + \csname#2-#3\endcsname + \do_shape{#2}{#3}{#4}{#5} + } + \fi + \let\do_size=\x_relax + \x_cs\xdef{#2-#3-#4-#5}{ + \if_defined{#2-#3-#4-#5}\then + \csname#2-#3-#4-#5\endcsname + \fi + \do_size{#6}{#1} + } +} +\def\autoinstallfamily#1#2{\installfamily{#1}{#2}{}} +\def\endinstallfonts{ + \global\let\setsomething_global=\x_relax + \let\do_shape=\fd_shape + \let\do_size=\fd_size + \the\family_toks + \global\family_toks{} + \egroup +} +\def\input_mtx_file#1{ + \reset_modifiers_hook + \ifx\x_relax#1\x_relax + \else + \identity_one{\get_file_name #1~}~\par + \ifx \pl_encoding\empty_command + \fromany\file_name + \else + \metrics_given_encoding{\file_name}{\pl_encoding} + \fi + \ifisstr{afm-name}\then + \inputmtx{\str{afm-name}} + \else + \fontinsterror{\string\install...}{ + Font/MTX~file~\file_name\space not found + }{ + You~can~insert~an~\string\inputmtx\space command~here + \messagebreak to~input~some~other~MTX~file~instead. + \ifisint{rawscale}\then \messagebreak + The~requested~raw~scaling~will~then~be~applied~on~that. + \fi + } + \fi + \fi +} +\def\metrics_given_encoding#1#2{ + \x_setstr{afm-name}{#1-#2} + \if_file_exists{#1.pl}\then + \generalpltomtx{#1}{#1-#2}{pl}{#2} + \else + \if_file_exists{#1.vpl}\then + \generalpltomtx{#1}{#1-#2}{vpl}{#2} + \else + \unsetstr{afm-name} + \fi\fi +} +\def\reset_modifiers_hook{ + \unsetint{rawscale} + \let\glyph_name_modifier\identity_one + \let\pl_encoding\empty_command + \let\list_of_options\empty_command +} +\def\get_file_name #1~{ + \edef\file_name{#1} + \get_keyword +} +\def\get_keyword #1~{ + \if_defined{IFKW-#1}\then + \csname IFKW-#1 \expandafter\endcsname + \else + \fontinsterror{\string\install...}{ + `#1'~is~not~a~defined~keyword + }{ + \error_help_a\messagebreak + Extra~tokens~will~be~flushed. + } + \expandafter\gobble_keywords + \fi +} +\def\gobble_keywords#1\par{} +\x_cs\let{IFKW-}=\gobble_keywords +\x_cs\def{IFKW-scaled}#1~{ + \ifnum #1=\one_thousand + \unsetint{rawscale} + \else + \x_resetint{rawscale}{#1} + \fi + \get_keyword +} +\x_cs\def{IFKW-suffix}#1~{ + \def\glyph_name_modifier##1{##1#1} + \get_keyword +} +\x_cs\def{IFKW-encoding}#1~{ + \def\pl_encoding{#1} + \get_keyword +} +\let\pl_encoding=\empty_command +\x_cs\def{IFKW-option}#1~{ + \add_to\list_of_options{\do{#1}} +} +\def\ifoption#1\then{ + \_a_false + \edef\a_macro{#1} + \def\do##1{ + \if_a_ \else + \def\b_macro{##1} + \ifx \a_macro\b_macro \_a_true \fi + \fi + } + \list_of_options + \if_a_ +} +\let\list_of_options\empty_command +\def\fd_family#1#2#3{ + \a_toks{#3} + \edef\lowercase_file{\lowercase{ + \edef\noexpand\lowercase_file{#1#2.fd}}} + \lowercase_file + \open_out{\lowercase_file} + \out_line{\percent_char~Filename:~\lowercase_file} + \out_line{\percent_char~Created~by:~tex~\jobname} + \out_line{\percent_char~Created~using~fontinst~v\fontinstversion} + \out_line{} + \out_line{\percent_char~THIS~FILE~SHOULD~BE~PUT~IN~A~TEX~INPUTS~ + DIRECTORY} + \out_line{} + \out_line{\string\ProvidesFile{\lowercase_file}} + \out_lline{[ + \the\year/ + \ifnum10>\month0\fi\the\month/ + \ifnum10>\day0\fi\the\day\space + Fontinst~v\fontinstversion\space + font~definitions~for~#1/#2. + ]} + \out_line{} + \out_line{\string\DeclareFontFamily{#1}{#2}{\the\a_toks}} + { + \csname #1-#2\endcsname + \out_line{} + \let\do_shape=\substitute_shape + \csname #1-#2\endcsname + \let\do_shape=\remove_shape + \csname #1-#2\endcsname + } + \x_cs\g_let{#1-#2}\x_relax + \out_line{} + \out_line{\string\endinput} + \close_out{Font~definitions} +} +\def\fd_shape#1#2#3#4{ + \out_line{} + \out_line{\string\DeclareFontShape{#1}{#2}{#3}{#4}\left_brace_char} + \csname #1-#2-#3-#4\endcsname + \x_cs\g_let{#1-#2-#3-#4}\empty_command + \out_line{\right_brace_char{}} +} +\def\fd_size#1#2{ + \x_cs\ifx{siz-#1}\x_relax + \out_lline{#1~#2} + \else + \out_lline{\csname siz-#1\endcsname\space #2} + \fi +} +\def\remove_shape#1#2#3#4{ + \x_cs\g_let{#1-#2-#3-#4}\x_relax +} +\def\substitute_shape#1#2#3#4{ + \edef\orig_shape{#4} + \substitute_series{#1}{#2}{#3}{\orig_shape} + \x_cs\ifx{sub-\orig_shape}\x_relax\else + \edef\subst_shape{\csname sub-\orig_shape\endcsname} + \x_cs\ifx{#1-#2-#3-\subst_shape}\x_relax + \out_line{ + \string\DeclareFontShape{#1}{#2}{#3}{\subst_shape}{ + <->\csname typ-\orig_shape\endcsname\space + *~#2/#3/\orig_shape + }{} + } + \x_cs\let{#1-#2-#3-\subst_shape}\empty_command + \substitute_shape{#1}{#2}{#3}{\subst_shape} + \fi + \fi +} +\def\substitute_series#1#2#3#4{ + \edef\orig_series{#3} + \x_cs\ifx{sub-\orig_series}\x_relax\else + \edef\subst_series{\csname sub-\orig_series\endcsname} + \x_cs\ifx{#1-#2-\subst_series-#4}\x_relax + \out_line{ + \string\DeclareFontShape{#1}{#2}{\subst_series}{#4}{ + <->\csname typ-\orig_series\endcsname\space + *~#2/\orig_series/#4 + }{} + } + \x_cs\let{#1-#2-\subst_series-#4}\empty_command + \substitute_series{#1}{#2}{\subst_series}{#4} + \fi + \fi +} +\def\substitutesilent#1#2{ + \x_cs\def{sub-#2}{#1} + \x_cs\def{typ-#2}{ssub} +} +\def\substitutenoisy#1#2{ + \x_cs\def{sub-#2}{#1} + \x_cs\def{typ-#2}{sub} +} +\substitutesilent{bx}{b} +\substitutesilent{b}{bx} +\substitutesilent{b}{sb} +\substitutesilent{b}{db} +\substitutesilent{m}{mb} +\substitutesilent{m}{l} +\substitutenoisy{ui}{it} +\substitutesilent{sl}{it} +\substitutesilent{it}{sl} +\def\declareencoding#1#2{\x_cs\edef{enc-#1}{#2}} +\declareencoding{TEX~TEXT}{ot1} +\declareencoding{TEX~TEXT~WITHOUT~F-LIGATURES}{ot1} +\declareencoding{TEX~TYPEWRITER~TEXT}{ot1tt} +\declareencoding{TEX~MATH~ITALIC}{oml} +\declareencoding{TEX~MATH~SYMBOLS}{oms} +\declareencoding{TEX~MATH~EXTENSION}{omx} +\declareencoding{LATEX~SYMBOLS}{lasy} +\declareencoding{TEX~TEXT~SUBSET}{eufrak} +\declareencoding{TEX~MATH~ITALIC~SUBSET}{eurm} +\declareencoding{TEX~MATH~SYMBOLS~SUBSET}{euscr} +\declareencoding{EULER~SUBSTITUTIONS~ONLY}{euex} +\declareencoding{EXTENDED~TEX~FONT~ENCODING~-~LATIN}{t1} +\declareencoding{TEX~TEXT~COMPANION~SYMBOLS~1---TS1}{ts1} +\declareencoding{TEXBASE1ENCODING}{8r} +\declareencoding{TEX~TYPEWRITER~AND~WINDOWS~ANSI}{8y} +\def\declaresize#1#2{\x_cs\edef{siz-#1}{#2}} +\declaresize{}{<->} +\declaresize{5}{<5>} +\declaresize{6}{<6>} +\declaresize{7}{<7>} +\declaresize{8}{<8>} +\declaresize{9}{<9>} +\declaresize{10}{<10>} +\declaresize{11}{<10.95>} +\declaresize{12}{<12>} +\declaresize{14}{<14.4>} +\declaresize{17}{<17.28>} +\declaresize{20}{<20.74>} +\declaresize{25}{<24.88>} +\def\NOFILES{ + \def\transformfont##1##2{ + \touch_file{##1.mtx} + \touch_file{##1.pl} + } + \def\reglyphfont##1##2{\touch_file{##1.mtx}} + \def\installfonts{} + \def\endinstallfonts{} + \def\installfont##1##2##3##4##5##6##7##8{ + \touch_file{##1.vpl} + } + \def\installrawfont##1##2##3##4##5##6##7##8{ + \touch_file{##1.pl} + } + \def\installfamily##1##2##3{\touch_file{##1##2.fd}} +} +\def\touch_file#1{ + \edef\lowercase_file{\lowercase{ + \edef\noexpand\lowercase_file{#1}}} + \lowercase_file + \open_out{\lowercase_file} + \out_line{\percent_char~TEST~FILE.} + \out_line{\percent_char~Created~whilst~debugging~fontinst.} + \close_out{Test~file} +} +%%% From file: ficonv.dtx +\def\afmtomtx#1#2{{ + \let\setsomething_global=\x_relax + \open_out{\temp_prefix#2.mtx} + \edef\raw_font_name{#2} + \edef\source_font_name{#1} + \x_resetint{italicslant}{0} + \let\italcorr_expression=\uprightitalcorr + \x_setint{minimumkern}{0} + \minimum_kern=\int{minimumkern} + \out_line{\percent_char~Filename:~#2.mtx} + \out_line{\percent_char~Created~by:~tex~\jobname} + \out_line{\percent_char~Created~using:~\string\afmtomtx{#1}{#2}} + \out_line{} + \out_line{\percent_char~This~file~contains~the~ + information~of~#1.afm~in~a~form} + \out_line{\percent_char~more~easily~read~by~TeX.~ + It~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{} + \catcode`\^^M=12 + \catcode`\ =10 + \expandafter\afm_line\primitiveinput #1.afm\x_relax + \out_line{} + \out_line{\endmetrics_text} + \close_out{Metrics} +}} +\newcount\minimum_kern +\def\afm_length#1#2{ + \a_dimen=#2\afm_unit_dimen + #1=\a_dimen + \divide #1 by \afm_unit_dimen + \advance \a_dimen by -#1\afm_unit_dimen + \ifdim \a_dimen>0.5\afm_unit_dimen + \advance #1 by 1 + \else \ifdim \a_dimen<-0.5\afm_unit_dimen + \advance #1 by -1 + \fi\fi + \x_relax +} +\newdimen\afm_unit_dimen +\afm_unit_dimen=1000sp +{\catcode`\^^M=12 \gdef\afm_line#1 +{\afm_command#1~\end_of_line\afm_line}} +\def\afm_command#1~{\csname~afm-#1\endcsname\gobble_one_line} +\def\gobble_one_line#1\end_of_line{} +\x_cs\def{afm-EndFontMetrics}#1\afm_line{\endinput} +\def\afm_def#1(#2)#3{\x_cs\def{afm-#1} + \gobble_one_line#2\end_of_line{#3}} +\def\afm_let#1#2{ + \expandafter\let \csname afm-#1\expandafter\endcsname + \csname afm-#2\endcsname +} +\afm_def{CharWidth}(#1){\afm_length\char_x_width{#1}} +\afm_def{ItalicAngle}(#1~){\calculate_it_slant{#1}} +\afm_def{XHeight}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{xheight}{\the\a_count}}} +\afm_def{CapHeight}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{capheight}{\the\a_count}}} +\afm_def{Ascender}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{ascender}{\the\a_count}}} +\afm_def{Descender}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{descender_neg}{\the\a_count}}} +\afm_def{UnderlineThickness}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{underlinethickness}{\the\a_count}}} +\afm_def{FontBBox}(#1~#2~#3~#4){ + \afm_length\a_count{#4} + \out_line{\string\setint{maxheight}{\the\a_count}} + \afm_length\a_count{#2} + \out_line{\string\setint{maxdepth_neg}{\the\a_count}}} +\afm_def{StdVW}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{verticalstem}{\the\a_count}}} +\afm_def{IsFixedPitch}(#1){ + \if\first_char#1=f + \else\out_line{\string\setint{monowidth}{1}} + \fi +} +\afm_def{FontName}(#1~){ + \record_transform{\raw_font_name} + {\string\fromafm{\source_font_name}{#1}}{}\iftrue +} +\afm_def{KP}(#1~#2~#3~#4){ + \if\first_char#1=.\else + \if\first_char#2=.\else + \afm_length\a_count{#3} + \ifnum \a_count>\minimum_kern + \out_line{\string\setkern{#1}{#2}{\the\a_count}} + \else\ifnum \a_count<-\minimum_kern + \out_line{\string\setkern{#1}{#2}{\the\a_count}} + \fi\fi + \fi\fi +} +\afm_let{KPX}{KP} +\afm_def{C}(#1~;#2){\init_afm{#1}\do_list[#2]\afm_char} +\afm_let{CH}{C} +\afm_def{CC}(#1~#2~;#3){\init_cc{#1}\do_list[#3]\cc_char} +\newcount\char_slot +\newcount\char_x_width +\newcount\x_width +\newcount\bbox_llx +\newcount\bbox_lly +\newcount\bbox_urx +\newcount\bbox_ury +\let\char_name=\empty_command +\def\init_afm#1{ + \char_slot=#1\x_relax + \x_width=\char_x_width + \bbox_llx=0 + \bbox_lly=0 + \bbox_urx=0 + \bbox_ury=0 + \let\char_name=\empty_command +} +\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} + } +} +\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\uprightitalcorr#1#2#3#4#5{0} +\def\slanteditalcorr#1#2#3#4#5{\max{\sub{#3}{#1}}{0}} +\def\calculate_it_slant#1{ + \edef\theangle{#1} + \CalculateTan{\theangle} + \a_dimen=-\one_thousand sp + \a_dimen=\UseTan{\theangle}\a_dimen + \a_count=\a_dimen + \out_line{\string\setint{italicslant}{\the\a_count}} + \x_resetint{italicslant}{\a_count} + \ifnum 0<\a_count + \let\italcorr_expression=\slanteditalcorr + \else + \let\italcorr_expression=\uprightitalcorr + \fi +} +\def\do_list[~#1~#2;~#3]{ + \csname~list-#1\endcsname\gobble_one_semi#2; + \ifx\x_relax#3\x_relax\expandafter\gobble_one + \else\expandafter\identity_one\fi + {\do_list[~#3]} +} +\def\gobble_one_semi#1;{} +\def\list_def#1(#2)#3{\x_cs\def{list-#1}\gobble_one_semi#2~;{#3}} +\list_def{W}(#1~#2){\afm_length\x_width{#1}} +\list_def{WX}(#1){\afm_length\x_width{#1}} +\list_def{WY}(#1){} +\list_def{N}(#1){\def\char_name{#1}} +\list_def{B}(#1~#2~#3~#4){ + \afm_length\bbox_llx{#1} + \afm_length\bbox_lly{#2} + \afm_length\bbox_urx{#3} + \afm_length\bbox_ury{#4} +} +\list_def{PCC}(#1~#2~#3){ + \afm_length\a_count{#2} + \afm_length\b_count{#3} + \out_lline{\string\glyphpcc{#1}{\the\a_count}{\the\b_count}} +} +\def\generalpltomtx#1#2#3#4{{ + \let\setsomething_global=\x_relax + \let\setfontdimen=\pl_setfontdimen + \if _#4_ \else + \def\do_slot{\x_cs\let{name-\the\slot_number}\slot_name} + \def\do_boundary{\x_cs\let{name-BOUNDARYCHAR}\slot_name} + \inputetx{#4} + \let\CODINGSCHEME=\ignore_parens + \fi + \pl_to_mtx{#1}{#2}{#3}{\string\generalpltomtx{#1}{#2}{#3}{#4}} +}} +\def\pltomtx#1#2{\generalpltomtx{#1}{#2}{pl}{}} +\def\pl_to_mtx#1#2#3#4{ + \edef\raw_font_name{#1} + \open_out{\temp_prefix#2.mtx} + \out_line{\percent_char~Filename:~#2.mtx} + \out_line{\percent_char~Created~by:~tex~\jobname} + \out_line{\percent_char~Created~using:~#4} + \out_line{} + \out_line{\percent_char~This~file~contains~the~ + information~of~#1.#3~in~a~form} + \out_line{\percent_char~more~easily~read~by~TeX.~ + It~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{} + \lowercase{ + \record_transform{#2}{ + \string\from#3 \x_cs\ifx{from#3}\frompl {#1} \fi + }{}\iftrue + } + \out_line{} + \catcode`\(=0 \catcode`\)=9 + \let\/=\ignore_parens + \let\do_pl_glyph=\x_relax + \primitiveinput #1.#3\x_relax + \do_pl_glyph + \out_line{} + \ifisint{\percent_char boundarychar}\then + \f_count=\int{\percent_char boundarychar} + \x_cs\ifx{name-\the\f_count}\x_relax \else + \out_line{\string\setstr{rightboundary} + {\csname name-\the\f_count\endcsname} + } + \out_line{} + \fi + \fi + \out_line{\endmetrics_text} + \close_out{Metrics} +} +\def\ignore_parens{\bgroup\catcode`(=1 \catcode`)=2 \x_relax + \expandafter\expandafter\expandafter\gobble_parens + \iftrue\expandafter{\else}\fi} +\def\gobble_parens#1{\egroup} +\def\pl_real#1{\pl_realer(#1000)} +\def\pl_realer(#1.#2#3#4#5){#1#2#3#4} +\def\pl_rounded_real(#1.#2#3#4#5){ + \global\result=#1#2#3#4\relax + \ifnum \first_char#5= >4 + \global\advance \result + \if - \first_char#1= \m@ne \else \@ne \fi + \fi +} +\def\pl_int#1#2{ + \ifx#1C `#2 + \else\ifx#1D #2 + \else\ifx#1O '#2 + \else\ifx#1H "#2 + \else -1\errmessage{Unknown~PL~number~prefix~`#1'} + \fi\fi\fi\fi +} +\let\FAMILY=\ignore_parens +\let\FACE=\ignore_parens +\let\CHECKSUM=\ignore_parens +\def\HEADER~#1~#2~#3~#4~{} +\def\SEVENBITSAFEFLAG~#1~{} +\let\COMMENT=\ignore_parens +\let\LIG=\ignore_parens +\let\NEXTLARGER=\ignore_parens +\let\VARCHAR=\ignore_parens +\let\VTITLE=\ignore_parens +\let\MAPFONT=\ignore_parens +\let\MAP=\ignore_parens +\def\CODINGSCHEME{\bgroup\catcode`\)=12\x_relax\CODINGSCHEME_cont} +\def\CODINGSCHEME_cont#1){ + \egroup + \if_undefined{enc-#1}\then + \errhelp{The~encoding~for~`#1'~has~not~been~declared.^^J + You~should~declare~it~with~ + \string\declareencoding{#1}{ETXFILE}.^^J + Press~<RETURN>~to~carry~on~with~fingers~crossed,^^J + or~X~<RETURN>~to~exit.} + \errmessage{Undeclared~encoding~`#1'} + \else + \def\do_slot{\x_cs\let{name-\the\slot_number}\slot_name} + \def\do_boundary{\x_cs\let{name-BOUNDARYCHAR}\slot_name} + \catcode`\(=12 \catcode`\)=12 + \x_cs\inputetx{enc-#1}\x_relax + \catcode`\(=0 \catcode`\)=9 + \fi +} +\def\DESIGNSIZE~#1~#2~{ + \a_dimen=#2pt + \out_line{\string\setdim{designsize}{\the\a_dimen}} +} +\def\DESIGNUNITS~#1~#2~{ + \b_dimen=#2pt\x_relax + \ifdim 1pt=\b_dimen \else + \fontinsterror{PL-to-MTX}{Nondefault~unit~used~in~PL~file} + {You~may~continue,~but~the~metrics~for~this~font~will~be~wrong.} + \fi + \out_line{\string\setdim{designunits}{\the\b_dimen}} +} +\def\BOUNDARYCHAR~#1~#2~{ + \x_setint{\percent_char boundarychar}{\pl_int{#1}{#2}} +} +\def\pl_setfontdimen#1#2{\x_cs\def{fdimen-#1}{#2}} +\def\PARAMETER~#1~#2~R~#3~{ + \f_count=\pl_int{#1}{#2}\x_relax + \if_defined{fdimen-\the\f_count}\then + \pl_rounded_real(#3 0000) + \out_line{\string\setint{\csname fdimen-\the\f_count\endcsname} + {\the\result}} + \fi +} +\let\FONTDIMEN=\x_relax +\def\SLANT{\PARAMETER D~1~} +\pl_setfontdimen{1}{italicslant} +\def\SPACE{\PARAMETER D~2~} +\pl_setfontdimen{2}{interword} +\def\STRETCH{\PARAMETER D~3~} +\pl_setfontdimen{3}{stretchword} +\def\SHRINK{\PARAMETER D~4~} +\pl_setfontdimen{4}{shrinkword} +\def\XHEIGHT{\PARAMETER D~5~} +\pl_setfontdimen{5}{xheight} +\def\QUAD{\PARAMETER D~6~} +\pl_setfontdimen{6}{quad} +\def\EXTRASPACE{\PARAMETER D~7~} +\pl_setfontdimen{7}{extraspace} +\def\NUM#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~8~#2~#3~ + \or + \PARAMETER D~9~#2~#3~ + \or + \PARAMETER D~10~#2~#3~ + \fi +} +\def\DENOM#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~11~#2~#3~ + \or + \PARAMETER D~12~#2~#3~ + \fi +} +\def\SUP#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~13~#2~#3~ + \or + \PARAMETER D~14~#2~#3~ + \or + \PARAMETER D~15~#2~#3~ + \fi +} +\def\SUB#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~16~#2~#3~ + \or + \PARAMETER D~17~#2~#3~ + \fi +} +\def\SUPDROP{\PARAMETER D~18~} +\def\SUBDROP{\PARAMETER D~19~} +\def\AXISHEIGHT{\PARAMETER D~22~} +\def\DELIM#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~20~#2~#3~ + \or + \PARAMETER D~21~#2~#3~ + \fi +} +\def\DEFAULTRULETHICKNESS{\PARAMETER D~8~} +\def\BIGOPSPACING#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~9~#2~#3~ + \or + \PARAMETER D~10~#2~#3~ + \or + \PARAMETER D~11~#2~#3~ + \or + \PARAMETER D~12~#2~#3~ + \or + \PARAMETER D~13~#2~#3~ + \fi +} +\def\LABEL~#1{\ifx #1B + \expandafter\LABEL_boundarychar + \else + \expandafter\LABEL_slot \expandafter#1 + \fi +} +\def\LABEL_slot #1~#2~{ + \f_count=\pl_int{#1}{#2} + \edef\a_macro{\a_macro + \x_cs\do_if_defined{name-\the\f_count} + } +} +\def\LABEL_boundarychar OUNDARYCHAR{ + \edef\a_macro{\a_macro + \x_cs\do_if_defined{name-BOUNDARYCHAR} + } +} +\def\do_if_defined#1{\ifx #1\x_relax \else \do{#1} \fi} +\def\LIGTABLE{\let\do=\never_do\let\a_macro\empty_command} +\def\STOP{\let\a_macro\empty_command} +\def\SKIP~#1~#2~{\immediate\write16{Warning:~SKIP~instruction~ignored.}} +\def\KRN~#1~#2~R~#3~{ + \pl_rounded_real(#3 0000) + \edef\do{\noexpand\write_pl_krn{\pl_int{#1}{#2}}{\the\result}} + \a_macro + \let\do=\never_do +} +\def\write_pl_krn#1#2#3{ + \f_count=#1\x_relax + \x_cs\ifx{name-\the\f_count}\x_relax \else + \out_line{\string\setkern{#3} + {\csname name-\the\f_count\endcsname}{#2} + } + \fi +} +\def\CHARWD~R~#1~{\pl_rounded_real(#1 0000) \b_count=\result} +\def\CHARHT~R~#1~{\pl_rounded_real(#1 0000) \c_count=\result} +\def\CHARDP~R~#1~{\pl_rounded_real(#1 0000) \d_count=\result} +\def\CHARIC~R~#1~{\pl_rounded_real(#1 0000) \e_count=\result} +\def\CHARACTER~#1~#2~{ + \do_pl_glyph + \a_count=\pl_int{#1}{#2} + \b_count=0 + \c_count=0 + \d_count=0 + \e_count=0 + \let\do_pl_glyph=\write_pl_glyph +} +\def\write_pl_glyph{ + \x_cs\ifx{name-\the\a_count}\x_relax\else + \out_line{\string\setrawglyph + {\csname~name-\the\a_count\endcsname} + {\raw_font_name} + {\the\a_dimen} + {\the\a_count} + {\the\b_count} + {\the\c_count} + {\the\d_count} + {\the\e_count}} + \fi + } +\def\mtxtopl#1#2{{ + \let\setsomething_global=\x_relax + \open_out{#2.pl} + \top_of_pl_hook + \out_line{(COMMENT~raw~font~#2~created~by~fontinst~ + v\fontinstversion)} + \out_line{} + \out_line{(COMMENT~Filename:~#2.pl)} + \out_line{(COMMENT~Created~by:~tex~\jobname)} + \out_line{(COMMENT~Created~using:~\string\mtxtopl{#1}{#2})} + \out_line{} + \out_line{(COMMENT~This~file~can~be~turned~into~ + a~ligless~TeX~font~with)} + \out_line{(COMMENT~pltotfm~#2.pl~#2.tfm)} + \out_line{} + \out_line{(COMMENT~THIS~FILE~CAN~THEN~BE~DELETED.)} + \out_line{} + \out_line{(DESIGNSIZE~R~10.0)} + \out_line{} + \let\setglyph=\iffalse + \let\endsetglyph=\fi + \let\setkern=\gobble_three + \let\setscaledrawglyph=\first_pl_raw_glyph + \def\setscalednotglyph##1##2##3##4##5##6##7##8##9{} + \inputmtx{#1} + \out_line{} + \out_line{(COMMENT~END~OF~FILE~#2.pl)} + \close_out{Raw~font} +}} +\def\first_pl_raw_glyph#1#2#3#4{ + \out_line{(DESIGNUNITS~R~\make_factor{#4})} + \let\setscaledrawglyph=\pl_raw_glyph + \pl_raw_glyph{#1}{#2}{#3}{#4} +} +\def\pl_raw_glyph#1#2#3#4#5#6#7#8#9{ + \out_line{(CHARACTER~D~\number#5~\space(COMMENT~#1)} + \out_lline{(CHARWD~R~\make_factor{#6})} + \out_lline{(CHARHT~R~\make_factor{#7})} + \out_lline{(CHARDP~R~\make_factor{#8})} + \out_lline{(CHARIC~R~\make_factor{#9})} + \out_lline{)} +} +\def\transformfont#1#2{{ + \let\setsomething_global=\x_relax + \unsetstr{afm-name} + \unsetstr{etx-name} + \x_resetint{x-scale}{\one_thousand} + \x_resetint{y-scale}{\one_thousand} + \x_resetint{slant-scale}{0} + #2 + \ifisstr{afm-name}\then + \mtxtomtx{\str{afm-name}}{#1} + \mtxtopl{#1}{#1} + \else + \fontinsterror{Transformfont}{ + Failed~to~make~transformed~font~#1;\messagebreak + source~font~metrics~file~not~found + }\error_help_a + \fi +}} +\def\fromafm#1{ + \if_file_exists{#1.afm}\then + \x_setstr{afm-name}{#1} + \afmtomtx{#1}{#1} + \mtxtopl{#1}{#1} + \fi +} +\def\frommtx#1{ + \if_file_exists{#1.mtx}\then \x_setstr{afm-name}{#1} \fi +} +\def\frompl#1{ + \if_file_exists{#1.pl}\then + \x_setstr{afm-name}{#1} + \generalpltomtx{#1}{#1}{pl}{} + \fi +} +\def\fromplgivenetx#1#2{ + \if_file_exists{#1.pl}\then + \x_setstr{afm-name}{#1} + \generalpltomtx{#1}{#1}{pl}{#2} + \fi +} +\def\fromany#1{ + \x_cs\edef{s-afm-name}{#1} + \if_file_exists{#1.mtx}\then\else + \if_file_exists{#1.pl}\then + \generalpltomtx{#1}{#1}{pl}{} + \else + \if_file_exists{#1.afm}\then + \afmtomtx{#1}{#1} + \mtxtopl{#1}{#1} + \else + \if_file_exists{#1.vpl}\then + \generalpltomtx{#1}{#1}{vpl}{} + \else + \unsetstr{afm-name} + \fi\fi\fi\fi +} +\def\scalefont#1#2{ + \eval_expr_to\d_count{#1} + \x_resetint{x-scale}{\scale{\d_count}{\int{x-scale}}} + \x_resetint{y-scale}{\scale{\d_count}{\int{y-scale}}} + \x_resetint{slant-scale}{\scale{\d_count}{\int{slant-scale}}} + #2 +} +\def\xscalefont#1#2{ + \x_resetint{x-scale}{\scale{#1}{\int{x-scale}}} + #2 +} +\def\yscalefont#1#2{ + \eval_expr_to\d_count{#1} + \x_resetint{y-scale}{\scale{\d_count}{\int{y-scale}}} + \x_resetint{slant-scale}{\scale{\d_count}{\int{slant-scale}}} + #2 +} +\def\slantfont#1#2{ + \x_resetint{slant-scale}{ + \add{\scale{#1}{\int{x-scale}}}{\int{slant-scale}} + } + #2 +} +\def\reencodefont#1#2{ + #2 + \resetstr{etx-name}{#1} +} +\def\mtxtomtx#1#2{{ + \ifisstr{etx-name}\then + \def\do_slot{\x_cs\edef{slots-\slot_name}{\the\slot_number}} + \directfalse + \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{} + \mtxtomtx_redefinitions + \inputmtx{#1} + \out_line{} + \out_line{\endmetrics_text} + \close_out{Transformed~metrics} +}} +\def\mtxtomtx_redefinitions{ + \let\setint=\mtxtomtx_setint + \let\setdim=\mtxtomtx_setdim + \let\setstr=\mtxtomtx_setstr + \let\setscaledrawglyph=\mtxtomtx_setscaledrawglyph + \let\setscalednotglyph=\mtxtomtx_setscaledrawglyph + \let\setkern=\mtxtomtx_setkern + \let\setglyph=\mtxtomtx_setglyph + \let\glyphpcc=\mtxtomtx_glyphpcc + \let\samesize=\mtxtomtx_samesize + \let\endsetglyph=\mtxtomtx_endsetglyph + \def\aliased{\string\aliased} +} +\let\aliased=\second_of_two +\def\mtxtomtx_setint#1#2{ + \def\a_macro{#1} + \ifx \a_macro\italicslant_name + \eval_expr{#2} + \global\multiply \result \int{x-scale} + \a_count=\int{slant-scale} + \multiply \a_count \one_thousand + \advance \a_count \result + \divide \a_count \int{y-scale}\x_relax + \else + \def\do##1{ + \def\b_macro{##1} + \ifx \a_macro\b_macro \expandafter\if_false \fi + } + \gobble_one\iftrue \width_ints_list \if_true + \eval_expr_to\a_count{\scale{#2}{\int{y-scale}}} + \else + \eval_expr_to\a_count{\scale{#2}{\int{x-scale}}} + \fi + \fi + \out_line{\string\setint{#1}{\the\a_count}} +} +\def\italicslant_name{italicslant} +\def\width_ints_list{ + \do{interword}\do{stretchword}\do{shrinkword}\do{quad} + \do{extraspace}\do{digitwidth}\do{verticalstem} +} +\def\mtxtomtx_setdim#1#2{ + \out_line{\string\setdim{#1}{#2}} +} +\def\mtxtomtx_setstr#1#2{ + \out_line{\string\setstr{#1}{#2}} +} +\def\mtxtomtx_setscaledrawglyph#1#2#3#4#5#6#7#8#9{ + \eval_expr_to\a_count{\scale{#6}{\int{x-scale}}} + \eval_expr_to\b_count{\scale{#7}{\int{y-scale}}} + \eval_expr_to\c_count{\scale{#8}{\int{y-scale}}} + \eval_expr_to\d_count{#9} \eval_expr{#7} + \multiply \d_count \int{x-scale} + \global\multiply \result \int{slant-scale} + \global\advance \result \d_count + \rounded_thousandths + \d_count=\result + \eval_expr{\scale{#4}{\int{y-scale}}} + \ifisstr{etx-name}\then + \bgroup + \let\aliased=\first_of_two + \if_undefined{slots-#1}\then + \egroup \e_count=\m@ne + \else + \expandafter\egroup \expandafter\e_count + \csname slots-#1\endcsname + \fi + \else + \e_count=#5 + \fi + \out_line{ + \ifnum \e_count>\m@ne + \string\setscaledrawglyph + \else + \string\setscalednotglyph + \fi + {#1}{\raw_font_name}{#3}{\the\result}{\the\e_count} + {\the\a_count}{\the\b_count}{\the\c_count}{\the\d_count} + } +} +\def\mtxtomtx_setkern#1#2#3{ + \eval_expr{\scale{\int{x-scale}}{#3}} + \out_line{\string\setkern{#1}{#2}{\the\result}} +} +\def\mtxtomtx_setglyph#1{\out_line{\string\setglyph{#1}}} +\def\mtxtomtx_samesize#1{\out_lline{\string\samesize{#1}}} +\def\mtxtomtx_endsetglyph{\out_line{\string\endsetglyph}} +\def\mtxtomtx_glyphpcc#1#2#3{ + \eval_expr_to\b_count{\scale{\int{y-scale}}{#3}} + \eval_expr_to\a_count{#2} \eval_expr{#3} + \multiply \a_count \int{x-scale} + \global\multiply \result \int{slant-scale} + \global\advance \result \a_count + \rounded_thousandths + \out_lline{\string\glyphpcc{#1}{\the\result}{\the\b_count}} +} +\def\reglyphfonts{ + \begingroup + \let\setsomething_global=\x_relax + \x_setint{renameweight}{1} + \x_setint{killweight}{-10} + \setcommand\iftokeep##1\then{\ifnum -1<##1} +} +\def\endreglyphfonts{\endgroup} +\def\offmtxcommand#1{ + \x_cs\offcommand{reglyph_\expandafter\gobble_one\string#1} +} +\def\onmtxcommand#1{ + \x_cs\oncommand{reglyph_\expandafter\gobble_one\string#1} +} +\begingroup + \catcode`\-=11 + \gdef\renameglyph#1#2{ + \x_cs\edef{slots-#2}{ + \noexpand\rename_glyph{#1}\noexpand\i-renameweight + } + } +\endgroup +\def\renameglyphweighted#1#2#3{ + \eval_expr{#3} + \x_cs\edef{slots-#2}{\noexpand\rename_glyph{#1}{\the\result}} +} +\begingroup + \catcode`\-=11 + \gdef\killglyph#1{ + \x_cs\def{slots-#1}{\kill_glyph\i-killweight} + } +\endgroup +\def\killglyphweighted#1#2{ + \eval_expr{#2} + \x_cs\edef{slots-#1}{\noexpand\kill_glyph{\the\result}} +} +\def\reglyphfont#1#2{ + \fromany{#2} + \ifisstr{afm-name}\then + \reglyph_font{#1}{#2} + \else + \fontinsterror{Reglyph}{Could~not~find~font~metrics~for~#2.} + \error_help_a + \fi +} +\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{} + \reglyph_redefinitions + \inputmtx{#2} + \out_line{} + \out_line{\endmetrics_text} + \close_out{Reglyphed~metrics} +}} +\def\reglyph_redefinitions{ + \let\setint=\reglyph_setint + \let\setdim=\reglyph_setdim + \let\setstr=\reglyph_setstr + \let\setscaledrawglyph=\reglyph_setscaledrawglyph + \let\setscalednotglyph=\reglyph_setscaledrawglyph + \let\setkern=\reglyph_setkern + \let\setglyph=\reglyph_setglyph + \let\glyphpcc=\reglyph_glyphpcc + \let\samesize=\reglyph_samesize + \let\endsetglyph=\reglyph_endsetglyph +} +\def\reglyph_setint#1#2{\out_line{\string\setint{#1}{#2}}} +\def\reglyph_setdim#1#2{\out_line{\string\setdim{#1}{#2}}} +\def\reglyph_setstr#1#2{\out_line{\string\setstr{#1}{#2}}} +\newcount\command_survivance +\def\rename_glyph#1{\def\glyphname{#1}\kill_glyph} +\def\kill_glyph#1{\advance \command_survivance #1\x_relax} +\def\reglyph_setscaledrawglyph#1#2#3#4#5#6#7#8#9{ + \command_survivance=0 + \def\glyphname{#1} + \csname slots-#1\endcsname + \iftokeep\command_survivance\then + \out_line{ + \ifnum #5<\z@ + \string\setscalednotglyph + \else + \string\setscaledrawglyph + \fi + {\glyphname}{#2}{#3}{\number#4}{#5}{#6}{#7}{#8}{#9} + } + \fi +} +\def\reglyph_setkern#1#2#3{ + \command_survivance=0 + \def\glyphname{#1} + \csname slots-#1\endcsname + \let\a_macro=\glyphname + \def\glyphname{#2} + \csname slots-#2\endcsname + \iftokeep\command_survivance\then + \out_line{\string\setkern{\a_macro}{\glyphname}{#3}} + \fi +} +\def\reglyph_setglyph#1{ + \command_survivance=0 + \def\glyphname{#1} + \csname slots-#1\endcsname + \edef\a_macro{\noexpand\out_line{\string\setglyph{\glyphname}}} + \a_toks=\expandafter{\a_macro} +} +\x_cs\def{off-\string\reglyph_setglyph}#1{\gobble_glyph} +\def\reglyph_glyphpcc#1#2#3{ + \def\glyphname{#1} + \csname slots-#1\endcsname + \edef\a_macro{\noexpand\out_lline{ + \string\glyphpcc{\glyphname}{#2}{#3} + }} + \a_toks=\expandafter{\the\expandafter\a_toks \a_macro} +} +\def\reglyph_samesize#1{ + \def\glyphname{#1} + \csname slots-#1\endcsname + \edef\a_macro{\noexpand\out_lline{ + \string\samesize{\glyphname} + }} + \a_toks=\expandafter{\the\expandafter\a_toks \a_macro} +} +\def\reglyph_endsetglyph{ + \iftokeep\command_survivance\then + \the\a_toks + \out_line{\string\endsetglyph} + \fi + \a_toks={} +} +%%% From file: filtfam.dtx +\def\latinfamily#1#2{{ + \edef\a_macro{#1} + \expandafter\parse_family\a_macro + \empty_command\empty_command\end_parse_family + \installfonts + \if_file_exists{\raw_encoding.mtx}\then + \installfamily{\raw_encoding}{\latex_family}{#2} + \fi + \installfamily{OT1}{\latex_family}{#2} + \installfamily{T1}{\latex_family}{#2} + \installfamily{TS1}{\latex_family}{#2} + \latin_weights + \endinstallfonts +}} +\def\parse_family #1#2#3#4#5\end_parse_family{ + \gdef\font_family{#1#2#3} + \gdef\font_variant{#4#5} + \gdef\raw_variant{#4#5} + \gdef\latex_family{#1#2#3#4#5} + \_expert_false + \_oldstyle_false + \ifx#4x + \_expert_true + \gdef\raw_variant{#5} + \gdef\font_variant{#5} + %\setcommand\digit##1{##1} + \else\ifx#4j + \_expert_true + \_oldstyle_true + \gdef\raw_variant{#5} + \gdef\font_variant{#5} + %\setcommand\digit##1{##1oldstyle} + \else\ifx#49 + \gdef\latex_family{#1#2#3j#5} + \_expert_true + \_oldstyle_true + \gdef\raw_variant{#5} + \gdef\font_variant{#5} + %\setcommand\digit##1{##1oldstyle} + \else + \_expert_false + \_oldstyle_false + %\setcommand\digit##1{##1} + \fi\fi\fi + \if_oldstyle_ + \immediate\write16{INFO>~parse~family~<#1#2#3><#5>~(oldstyle)} + \else\if_expert_ + \immediate\write16{INFO>~parse~family~<#1#2#3><#5>~(expert)} + \else + \immediate\write16{INFO>~parse~family~<#1#2#3><#4#5>} + \fi\fi +} +\newif\if_expert_ +\newif\if_oldstyle_ +\def\latin_weight#1#2{ + \gdef\font_weight{#1}% + \gdef\latex_weight{#2}% + \latin_widths +} +\def\latin_width#1#2{ + \gdef\font_width{#1} + \gdef\latex_width{#2} + \latin_shapes +} +\def\latin_shape#1#2#3#4#5{ + \gdef\font_shape{#1} + \gdef\raw_shape{#2} + \gdef\encoding_shape{#3} + \if_oldstyle_ + \gdef\encoding_shape{#3\oldstyle_shape} + \fi + \gdef\latex_shape{#4} + \gdef\encoding_switches{#5} + \immediate\write16{ + INFO>~to~make~LaTeX~font~shape~<\latex_family, + \latex_weight,\latex_shape,\latex_width>~seek~ + \font_family\font_weight\raw_shape + \raw_variant\raw_encoding\font_width.mtx} + \csname fake_width_\font_width\endcsname + \csname fake_shape_\raw_shape\endcsname + \if_file_exists{ + \font_family\font_weight\raw_shape + \raw_variant\raw_encoding\font_width.mtx + }\then + \latin_encodings + \fi +} +\def\fake_shape_{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width.afm + }\then + \fake_shape_raw_encoding + \fi + \if_expert_ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width.afm + }\then + \fake_shape_expert_encoding + \fi + \fi +} +\def\fake_shape_raw_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width>~from~ + <\font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width> + } + \transformfont{ + \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width + }{ + \reencodefont{\raw_encoding}{ + \fromafm{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width + } + } + } + \if_file_exists{ \raw_encoding.mtx }\then + \immediate\write16{ + INFO>~run~\string\installrawfont\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width> + <\font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding> + <\raw_encoding> + <\raw_encoding> + <\latex_family> + <\latex_weight\latex_width> + <\latex_shape>} + \installrawfont{ + \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width + }{ \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding + }{ \raw_encoding + }{ \raw_encoding + }{ \latex_family + }{ \latex_weight\latex_width + }{ \latex_shape + }{} + \fi + \fi +} +\def\fake_shape_expert_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width.mtx + }\then % no action required + \else + \fromafm{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width + } + \fi +} +\def\fake_shape_c{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width.afm + }\then + \fake_shape_ + \else + % If real smallcaps font doesn't exist, fake it from the roman. + \gdef\raw_shape{} + \if_oldstyle_ + \gdef\encoding_shape{cj} + \else + \gdef\encoding_shape{c} + \fi + \fake_shape_ + \fi +} +\def\fake_shape_o{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width.afm + }\then + \fake_shape_ + \else + \fake_shape_o_raw_encoding + \if_expert_ + \fake_shape_o_expert_encoding + \fi + \fi +} +\def\fake_shape_o_raw_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_variant + \raw_encoding\font_width.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width>~from~ + <\font_family\font_weight\raw_variant + \raw_encoding\font_width>~(faking~oblique) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~oblique~font~ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + \space from~ + \font_family\font_weight\raw_variant + \raw_encoding\font_width + } + \transformfont{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + }{ + \slantfont{\SlantAmount}{ + \frommtx{ + \font_family\font_weight\raw_variant + \raw_encoding\font_width + } + } + } + \if_file_exists{ \raw_encoding.mtx }\then + \immediate\write16{ + INFO>~run~\string\installrawfont\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width> + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding> + <\raw_encoding> + <\raw_encoding> + <\latex_family> + <\latex_weight\latex_width> + <\latex_shape>} + \installrawfont{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + }{ \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding + }{ \raw_encoding + }{ \raw_encoding + }{ \latex_family + }{ \latex_weight\latex_width + }{ \latex_shape + }{} + \fi + \fi + \fi +} +\def\fake_shape_o_expert_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_variant + \expert_encoding\font_width.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width>~from~ + <\font_family\font_weight\raw_variant + \expert_encoding\font_width>~(faking~oblique) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~oblique~font~ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width + \space from~ + \font_family\font_weight\raw_variant + \expert_encoding\font_width + } + \transformfont{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width + }{ + \slantfont{\SlantAmount}{ + \frommtx{ + \font_family\font_weight\raw_variant + \expert_encoding\font_width + } + } + } + \fi + \fi +} +\let\fake_shape_i\fake_shape_ % We must do this again! +\newif\if_fake_narrow_ +\_fake_narrow_false +\def\fakenarrow#1{ + \_fake_narrow_true + \gdef\fake_narrow_width{#1} +} +\def\fake_width_{} +\def\fake_width_c{} +\def\fake_width_n{ + \if_fake_narrow_ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width.afm + }\then % no action required + \else + \fake_width_n_raw_encoding + \if_expert_ + \fake_width_n_expert_encoding + \fi + \fi + \fi +} +\def\fake_width_n_raw_encoding{ + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width>~from~ + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding>~(faking~narrow) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~narrow~font~ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + \space from~ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding + } + \transformfont{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + }{ + \xscalefont{\fake_narrow_width}{ + \frommtx{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding + } + } + } + \if_file_exists{ \raw_encoding.mtx }\then + \immediate\write16{ + INFO>~run~\string\installrawfont\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width> + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding> + <\raw_encoding> + <\raw_encoding> + <\latex_family> + <\latex_weight\latex_width> + <\latex_shape>} + \installrawfont{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + }{ \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding + }{ \raw_encoding + }{ \raw_encoding + }{ \latex_family + }{ \latex_weight\latex_width + }{ \latex_shape + }{} + \fi + \fi + \fi +} +\def\fake_width_n_expert_encoding{ + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width>~from~ + <\font_family\font_weight\font_shape\raw_variant + \expert_encoding>~(faking~narrow) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~narrow~font~ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width + \space from~ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding + } + \transformfont{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width + }{ + \xscalefont{\fake_narrow_width}{ + \frommtx{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding + } + } + } + \fi + \fi +} +\def\latin_encoding#1#2#3#4#5{ + \gdef\latex_encoding{#4} + \gdef\latex_mtx{#5} + \if_oldstyle_ + \gdef\font_encoding{#3} + \else\if_expert_ + \gdef\font_encoding{#2} + \else + \gdef\font_encoding{#1} + \fi\fi + \gdef\expert_font{} + \gdef\oldstyle_font{} + \if_expert_ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width.mtx + }\then + \gdef\expert_font{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width, + } + \fi + \fi + \immediate\write16{ + INFO>~run~\string\installfont\space + <\font_family\font_weight\font_shape\font_variant + \font_encoding\font_width> + <\font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width, + \if_oldstyle_ + \ifx\raw_shape\caps_shape + resetosf, + \fi + \fi + \expert_font + \oldstyle_font + \latex_mtx> + <\latex_encoding\encoding_shape> + <\latex_encoding> + <\latex_family> + <\latex_weight\latex_width> + <\latex_shape>} + \installfont{ + \font_family\font_weight\font_shape\font_variant + \font_encoding\font_width + }{ + \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width, + \if_oldstyle_ + \ifx\raw_shape\caps_shape + resetosf, + \fi + \fi + \expert_font + \oldstyle_font + \latex_mtx + }{ + \latex_encoding\encoding_shape + }{ + \latex_encoding + }{ + \latex_family + }{ + \latex_weight\latex_width + }{ + \latex_shape + }{} +} +\def\latin_weights{ + \latin_weight{r}{m} + \latin_weight{k}{m} + \latin_weight{b}{b} + \latin_weight{s}{sb} + \latin_weight{d}{db} % was {d}{sb}, SPQR changed + \latin_weight{m}{mb} % was {m}{m}, UV changed + \latin_weight{c}{eb} % UV added + \latin_weight{h}{eb} % UV added + \latin_weight{x}{eb} + \latin_weight{u}{ub} + \latin_weight{l}{l} + %\latin_weight{j}{el} + %\latin_weight{a}{ul} % UV added +} +\def\latin_widths{ + \latin_width{}{} + \latin_width{n}{c} + %latin_width{c}{c} + %latin_width{x}{x} +} +\def\latin_shapes{ + \latin_shape{} {} {} {n} {\_textcomp_true } + \latin_shape{c}{c}{} {sc}{\_textcomp_false} + \latin_shape{o}{o}{} {sl}{\_textcomp_true } + \latin_shape{i}{i}{i}{it}{\_textcomp_true } +} +\def\latin_encodings{ + \latin_encoding{7t}{9t}{9o}{OT1}{newlatin} + \latin_encoding{8t}{9e}{9d}{T1} {newlatin} + \encoding_switches + \if_textcomp_ + \latin_encoding{8c}{9c}{9c}{TS1}{textcomp} + \fi +} +\newif\if_textcomp_ + +\def\raw_encoding{8r} +\def\adobe_encoding{8a} +\def\expert_encoding{8x} + +\def\caps_shape{c} +\def\oldstyle_shape{j} +\def\SlantAmount{167} +%%% From file: fimapgen.dtx +\def\mapfrags_subsystem{Map~fragments~writer} +\def\recordtransforms#1{\open_pout\transform_record_file{#1}} +\def\endrecordtransforms{ + \close_pout\transform_record_file{Font~transformation~records} +} +\chardef\transform_record_file=\closed_stream +\let\storemapdata=\gobble_three +\def\record_transform#1#2#3#4{ + \ifnum \transform_record_file=\closed_stream \else + \pout_line\transform_record_file{\string\storemapdata{#1}{#2}{#3}} + \fi + #4 \out_line{\string\storemapdata{#1}{#2}{#3}} \fi +} +\def\record_usage#1{ + \ifnum \transform_record_file=\closed_stream \else + \pout_line\transform_record_file{\string\makemapentry{#1}} + \fi +} +%%% From file: fibasics.dtx +\def\needsfontinstversion#1{{ + \a_dimen=#1pt + \b_dimen=\fontinstversion~pt\x_relax + \ifnum\a_dimen>\b_dimen + \immediate\write16{} + \immediate\write16{Warning:~This~file~needs~fontinst~version~#1.} + \immediate\write16{Warning:~You~are~using~version~ + \fontinstversion.} + \immediate\write16{Warning:~This~may~cause~errors.} + \immediate\write16{} + \fi +}} +\if_file_exists{fontinst.rc}\then + \primitiveinput fontinst.rc +\else + \immediate\write16{No~file~fontinst.rc.} +\fi +\normalcc +\endinput +%% +%% End of file `cfntinst.sty'. diff --git a/Master/texmf-dist/tex/fontinst/base/finstmsc.sty b/Master/texmf-dist/tex/fontinst/base/finstmsc.sty new file mode 100644 index 00000000000..cb64adfb232 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/base/finstmsc.sty @@ -0,0 +1,1365 @@ +%% +%% This is file `finstmsc.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fibasics.dtx (with options: `pkg') +%% ficommon.dtx (with options: `pkg') +%% fimain.dtx (with options: `misc') +%% ficonv.dtx (with options: `misc') +%% fimapgen.dtx (with options: `map') +%% fibasics.dtx (with options: `pkg2,misc') +%% +%% This is a generated file. +%% +%% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +%% hacked and maintained 1997, 1998 Sebastian Rahtz, +%% copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 the fontinst +%% maintenance team and any individual authors listed elsewhere in +%% this file. All rights reserved. +%% +%% This file is part of the fontinst system version 1.9. +%% ----------------------------------------------------- +%% +%% It may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.1 or, at your option, any later version. +%% +%%% From file: fibasics.dtx +\catcode`\{=1 +\catcode`\}=2 +\catcode`\#=6 +\catcode`\^=7 +\def\fontinstversion{1.927} +\ifx\ProvidesPackage\undefined + \def\NeedsTeXFormat#1{} + \def\ProvidesPackage#1[#2]{} +\fi +\ProvidesPackage{fontinst} +[2004/08/07 v\fontinstversion\space + fontinst installation package] +\def\a_macro#1{\catcode\number`#1=\the\catcode`#1 } +\edef\normalcc{% + \a_macro{\ }\a_macro{\^^M}\a_macro{\@}\a_macro{\_}\a_macro{\~} +} +\def\fontinstcc{% + \catcode`\ =9% + \catcode`\^^M=9% + \catcode`\@=11% + \catcode`\_=11% + \catcode`\~=10 +} +\fontinstcc +\ifx\@ne\undefined_command + \input fontinst.ini\relax +\fi +\ifx\bye\undefined_command + \def\supereject{\par\penalty-\@MM} + \outer\expandafter\def \csname bye\endcsname + {\par\vfill\supereject\@@end} +\fi +\newcount\a_count +\newcount\b_count +\newcount\c_count +\newcount\d_count +\newcount\e_count +\newcount\f_count +\newcount\g_count +\newdimen\a_dimen +\newdimen\b_dimen +\newdimen\c_dimen +\newdimen\d_dimen +\newtoks\a_toks +\newtoks\b_toks +\newtoks\c_toks +\newif\if_a_ +\newwrite\out_file +\mathchardef\one_thousand=1000 +\mathchardef\five_hundred=500 +\mathchardef\one_hundred=100 +\mathchardef\max_mathchardef="7FFF +\mathchardef\two_thousand=2000 +\newdimen\half_point \half_point=0.5pt +\let\@tempdima\a_dimen +\let\@tempdimb\b_dimen +\input trig.sty +\def\x_cs#1#2{\expandafter#1\csname#2\endcsname} +\let\x_relax=\relax +\def\g_let{\global\let} +\def\empty_command{} +\def\gobble_one#1{} +\def\gobble_two#1#2{} +\def\gobble_three#1#2#3{} +\def\identity_one#1{#1} +\def\first_of_two#1#2{#1} +\def\second_of_two#1#2{#2} +\def\swap_two#1#2{#2#1} +\def\first_of_three#1#2#3{#1} +\bgroup + \catcode`\[=1 + \catcode`\]=2 + \catcode`\#=12 + \catcode`\%=12 + \catcode`\{=12 + \catcode`\}=12 + \gdef\hash_char[#] + \gdef\percent_char[%] + \gdef\left_brace_char[{] + \gdef\right_brace_char[}] +\egroup +\def\first_char#1#2={#1} +\def\add_to#1#2{ + \ifx#1\x_relax + \def#1{#2} + \else + \expandafter\def\expandafter#1\expandafter{#1#2} + \fi +} +\def\prep_to#1#2{ + \ifx#1\x_relax + \expandafter\def\expandafter#1\expandafter{\expandafter#2} + \else + \expandafter\def\expandafter#1\expandafter{\expandafter#2#1} + \fi +} +\def\never_do{\noexpand\do} +\newif\if_extensions_warning_ +\_extensions_warning_false +\ifx \eTeXversion\undefined_command + \catcode`\~=14 % 14=comment +\fi +\def\eTeX#1{ + \if_extensions_warning_ + \space/\space e-TeX\space version\space #1 +~ \else +~ \ifdim \number\eTeXversion\eTeXrevision\p@ < #1\p@ \else +~ \_a_true +~ \fi + \fi +} +\catcode`\~=10 +\ifx \pdftexversion\undefined_command + \catcode`\~=14 % 14=comment +\fi +\def\pdfTeX#1#2{% + \if_extensions_warning_ + \space/\space pdfTeX\space version\space + \ifnum #1<100\space + 0.\ifnum #1<10\space 0\fi + \else + \expandafter\swap_two \expandafter. + \fi + #1#2% +~ \else +~ \ifdim #1>\pdftexversion \else +~ \ifnum \expandafter\expandafter \expandafter` +~ \expandafter\first_char \pdftexrevision= < +~ \expandafter` \first_char#2= +~ \else \_a_true \fi +~ \fi + \fi +} +\catcode`\~=10 +\def\needsTeXextension#1#2{ + \_a_false + #1 + \if_a_ \else + \_extensions_warning_true + \edef\a_macro{#1} + \_extensions_warning_false + \fontinstwarningnoline{#2}{ + This~file~needs:\messagebreak + \expandafter\second_of_two\a_macro + \iffalse + <no~sufficient~extensions~were~listed!!>\if_false + \fi + \messagebreak + You~are~not~using~any~of~them.~This~is~likely~to~cause~errors + } + \fi +} +\def\open_out#1{ + \immediate\openout\out_file=#1 \xdef\out_filename{#1}} +\def\close_out#1{ + \immediate\write16{#1~written~on~\out_filename.} + \immediate\closeout\out_file} +\def\out_line#1{\immediate\write\out_file{#1}} +\edef\out_lline#1{\noexpand\out_line{\space\space\space#1}} +\edef\out_llline#1{ + \noexpand\out_line{\space\space\space\space\space\space#1} +} +\def\TeX_terminal{\string\TeX\space terminal} +\chardef\closed_stream=99 +\x_cs\let{out_filename-99}=\TeX_terminal +\x_cs\def{out_filename--1}{\jobname.log} +\def\allocate_stream{ + \a_count=\m@ne + \b_count=\m@ne + \loop \ifnum \count17>\a_count + \advance \a_count \@ne + \x_cs\ifx{out_filename-\the\a_count}\TeX_terminal + \b_count=\a_count + \a_count=\count17 + \fi + \repeat + \ifnum \b_count=\m@ne + \global\advance\count17by\@ne + \ifnum \count17<\sixt@@n + \b_count=\count17 + \global\x_cs\let{out_filename-\the\b_count}\TeX_terminal + \wlog{\string\write\the\b_count\space allocated~to~the~pool.} + \else + \global\count17=\sixt@@n + \fi + \fi +} +\def\ch@ck#1#2#3{ + \ifnum \count1#1<#2 \else + \errmessage{No~room~for~a~new~#3} + \global\count1#1=#2 + \fi +} +\def\open_pout#1#2{ + \allocate_stream + \ifnum \b_count=\m@ne + \immediate\write\sixt@@n{fontinst~is~out~of~output~streams.^^J + Output~file~#2~cannot~be~opened.^^J + Writes~will~be~redirected~to~the~log~file. + } + \gdef#1{\m@ne} + \else + \immediate\openout\b_count=#2\x_relax + \x_cs\xdef{out_filename-\the\b_count}{#2} + \global\chardef#1=\b_count + \fi +} +\def\close_pout#1#2{ + \ifnum #1=\closed_stream + \errmessage{Output~file~\string#1~(#2)~not~closed,^^J + since~it~was~not~open} + \else + \immediate\write\sixt@@n{#2~written~on~ + \csname out_filename-\the#1\endcsname.} + \ifnum #1=\m@ne \else + \immediate\closeout#1 + \global\x_cs\let{out_filename-\the#1}=\TeX_terminal + \fi + \global\chardef#1=\closed_stream + \fi +} +\def\pout_line#1#2{\immediate\write#1{#2}} +\edef\pout_lline#1#2{\noexpand\pout_line#1{\space\space\space#2}} +\edef\pout_llline#1#2{ + \noexpand\pout_line#1{\space\space\space\space\space\space#2} +} +\def\tempfileprefix#1{\def\temp_prefix{#1}} +\tempfileprefix{} +\let\then=\iffalse +\def\if_false{\iffalse} +\def\if_true{\iftrue} +\_a_false\eTeX{2.0} +\if_a_\else \catcode`\~=14\x_relax \fi +~ \def\if_defined#1\then{ +~ \if +~ \ifcsname#1\endcsname +~ \expandafter\ifx \csname#1\endcsname \x_relax +~ 0 +~ \else +~ 1 +~ \fi +~ \else +~ 0 +~ \fi +~ 1 +~ } +~ \def\if_undefined{\expandafter\unless\if_defined} +\catcode`\~=\if_a_ 14 \else 10 \fi \x_relax +~ \def\if_defined#1\then{ +~ \expandafter\ifx \csname#1\endcsname\x_relax +~ \expandafter\if_false +~ \else +~ \expandafter\if_true +~ \fi +~ } +~ \def\if_undefined#1\then{ +~ \expandafter\ifx \csname#1\endcsname\x_relax +~ } +\catcode`\~=10\x_relax +\def\gobble_if{\iftrue\else} +\def\if_or#1\or_else#2\then{ + #1\then + \expandafter\if_true + \else + #2\then + \expandafter\expandafter\expandafter\if_true + \else + \expandafter\expandafter\expandafter\if_false + \fi + \fi +} +\def\if_equal#1\then{\ifx#1} +\def\if_file_exists#1\then{ + \immediate\openin1=#1\x_relax + \ifeof1\x_relax + \immediate\closein1 + \expandafter\if_false + \else + \immediate\closein1 + \expandafter\if_true + \fi +} +\let\Else=\else +\let\Fi=\fi +\x_cs\ifx{@@input}\x_relax + \let\primitiveinput=\input +\else + \let\primitiveinput=\@@input +\fi +\def\process_csep_list#1#2,{ + \ifx\process_csep_list#2 + \expandafter\gobble_one + \else + \expandafter\identity_one + \fi{ + #1{#2} + \process_csep_list{#1} + } +} +\def\make_factor#1{ + \ifnum #1<\z@ + -\expandafter\make_factor_i\expandafter{\number-#1} + \else + \expandafter\make_factor_i\expandafter{\number#1} + \fi +} +\def\make_factor_i#1{ + \ifnum #1<\one_thousand + \make_factor_ii{#1} + \else + \make_factor_iii #1 + \fi + #1 +} +\def\make_factor_ii#1{ + 0. + \ifnum #1<\one_hundred + 0 + \ifnum #1<10~ 0\fi + \fi +} +\def\make_factor_iii#1#2#3\fi#4{ + \fi + #4 + \ifnum 1#3<\one_thousand + . + \else + \make_factor_iii#2#3 + \fi +} +{ + \catcode`\p=12 + \catcode`\t=12 + \gdef\lose_measure#1pt{#1} +} +\let\messagebreak\x_relax +\def\generic_info#1#2{ + \begingroup + \def\messagebreak{^^J#1} + \immediate\write\m@ne{#2\on_line.} + \endgroup +} +\def\generic_warning#1#2{ + \begingroup + \def\messagebreak{^^J#1} + \immediate\write\closed_stream{^^J#2\on_line.^^J} + \endgroup +} +\def\generic_error#1#2#3#4{ + \begingroup + \immediate\write\closed_stream{} + \def\messagebreak{^^J} + \edef\a_macro{{#4}} + \errhelp\a_macro + \def\messagebreak{^^J#1} + \errmessage{#2.^^J^^J#3 + Type~\space H~<return>~\space for~immediate~help + } + \endgroup +} +\def\fontinsterror#1#2#3{ + \generic_error{ + \four_spaces\four_spaces + }{ + #1~error:\messagebreak #2 + }{ + }{#3} +} +\def\fontinstwarning#1#2{ + \generic_warning{ + \four_spaces\four_spaces + }{ + #1~warning:\messagebreak #2 + } +} +\def\fontinstwarningnoline#1#2{ + \fontinstwarning{#1}{#2\gobble_one} +} +\def\fontinstinfo#1#2{ + \generic_info{ + \four_spaces\four_spaces + }{ + #1~info:\messagebreak #2 + } +} +\def\on_line{~on~input~line~\the\inputlineno} +\edef\four_spaces{\space\space\space\space} +\gdef\error_help_a{ + Your~command~was~ignored.\messagebreak + Type~\space I~<command>~<return>~\space to~replace~it~ + with~another~command,\messagebreak + or~\space <return>~\space to~continue~without~it.} +\gdef\error_help_c{ + Try~typing~\space <return>~ + \space to~proceed.\messagebreak + If~that~doesn't~work,~type~\space X~<return>~\space to~quit.} +\gdef\error_help_d{ + You're~in~trouble~here.~\space\error_help_c} +\def\error_help_e#1{You~can~continue,~but~the~#1~wrong.} +\newlinechar=`\^^J +\errorcontextlines=999 +\tracinglostchars=1 +%%% From file: ficommon.dtx +\def\str#1{\csname~s-#1\endcsname} +\def\strint#1{\expandafter\identity_one\expandafter{\number\int{#1}}} +\newcount\result +\def\eval_expr#1{\global\result=#1\x_relax} +\def\eval_expr_to#1#2{\eval_expr{#2}#1=\result} +\def\g_eval_expr_to#1#2{\eval_expr{#2}\global#1=\result} +\def\add#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \global\advance \result \a_count + \egroup +} +\def\sub#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \advance \a_count -\result + \global\result=\a_count + \egroup +} +\def\int#1{\csname i-#1 \endcsname} +\def\neg#1{#1 \global\result=-\result} +\def\mul#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \global\multiply \result \a_count + \egroup +} +\def\div#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \divide \a_count \result + \global\result=\a_count + \egroup +} +\def\max#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \ifnum \a_count>\result \global\result=\a_count \fi + \egroup +} +\def\min#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \ifnum \a_count<\result \global\result=\a_count \fi + \egroup +} +\def\half#1{ + #1\x_relax + \ifodd\result + \global\advance \result \@ne + \global\divide \result \tw@ + \ifodd\result \global\advance \result \m@ne \fi + \else + \global\divide \result \tw@ + \fi +} +\def\otherhalf#1{ + #1\x_relax + \ifodd\result + \global\advance \result \@ne + \global\divide \result \tw@ + \ifodd\result \else \global\advance \result \m@ne \fi + \else + \global\divide \result \tw@ + \fi +} +\def\scale#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \global\multiply \result \a_count + \rounded_thousandths + \egroup +} +\def\rounded_thousandths{ + \global\divide \result \five_hundred + \ifodd \result + \global\advance \result by \ifnum 0>\result - \fi 1 + \fi + \global\divide \result \tw@ +} +\def\l_rounded_thousandths#1{ + \divide #1 \five_hundred + \ifodd #1 + \advance #1 by \ifnum 0>#1 - \fi\@ne + \fi + \divide #1 \tw@ +} +\def\l_inv_scale#1#2{ + \multiply #1 \two_thousand + \divide #1 #2\x_relax + \ifodd#1 \advance #1 \ifnum 0>#1 - \fi\@ne \fi + \divide #1 \tw@ +} +\def\ifnumber#1#2#3\then{ + \eval_expr_to\a_count{#1} + \eval_expr{#3} + \ifnum \a_count#2\result + \expandafter\if_true + \else + \expandafter\if_false + \fi +} + +\let\setsomething_global=\x_relax +\def\x_setint#1#2{ + \x_cs\ifx{i-#1}\x_relax + \x_resetint{#1}{#2} + \fi +} +\let\setint=\x_setint +\def\x_setstr#1#2{ + \x_cs\ifx{s-#1}\x_relax + \setsomething_global\x_cs\edef{s-#1}{#2} + \fi +} +\let\setstr=\x_setstr +\def\setdim#1#2{ + \x_cs\ifx{d-#1}\x_relax + \a_dimen=#2\x_relax + \setsomething_global\x_cs\edef{d-#1}{\the\a_dimen} + \fi +} +\def\setcommand#1{ + \ifx#1\undefined_command + \setsomething_global \expandafter\def \expandafter#1 + \else + \expandafter\def \expandafter\a_macro + \fi +} +\def\x_resetint#1#2{ + \eval_expr{#2} + \setsomething_global + \ifnum\result<\max_mathchardef + \ifnum 0>\result + \x_cs\edef{i-#1}{\the\result} + \else + \x_cs\mathchardef{i-#1}=\result + \fi + \else + \x_cs\edef{i-#1}{\the\result} + \fi +} +\let\resetint=\x_resetint +\def\resetstr#1#2{\setsomething_global\x_cs\edef{s-#1}{#2}} +\def\resetdim#1#2{ + \a_dimen=#2 + \setsomething_global\x_cs\edef{d-#1}{\the\a_dimen} +} +\def\resetcommand#1{\setsomething_global\def#1} +\def\dim#1{\csname~d-#1\endcsname} +\def\ifisint#1\then{\if_defined i-#1\then} +\def\ifisstr#1\then{\if_defined s-#1\then} +\def\ifisdim#1\then{\if_defined d-#1\then} +\def\ifiscommand#1\then{ + \ifx#1\undefined_command + \expandafter\if_false + \else + \expandafter\if_true + \fi +} +\def\unsetint#1{\setsomething_global\x_cs\let{i-#1}\x_relax} +\def\unsetstr#1{\setsomething_global\x_cs\let{s-#1}\x_relax} +\def\unsetdim#1{\setsomething_global\x_cs\let{d-#1}\x_relax} +\def\unsetcommand#1{\setsomething_global\let#1=\undefined_command} +\def\offcommand#1{ + \x_cs\ifx{saved-\string#1}\x_relax + \setsomething_global\x_cs\let{saved-\string#1}#1 + \x_cs\ifx{off-\string#1}\x_relax + \generate_off_command{#1} + \else + \setsomething_global \expandafter\let \expandafter#1 + \csname off-\string#1\endcsname + \fi + \fi +} +\def\oncommand#1{ + \x_cs\ifx{saved-\string#1}\x_relax \else + \setsomething_global \expandafter\let \expandafter#1 + \csname saved-\string#1\endcsname + \setsomething_global\x_cs\let{saved-\string#1}\x_relax + \fi +} +\def\generate_off_command#1{ + \a_count=0 + \let\next=\count_hashes + \expandafter\next\meaning#1~->\x_relax + \b_count=0 + \a_toks={} + \loop \ifnum \b_count<\a_count + \advance \b_count 1 + \a_toks=\expandafter{\the\expandafter\a_toks \expandafter#### + \the\b_count} + \repeat + \setsomething_global \expandafter\def \expandafter#1 \the\a_toks {} +} +\def\count_hashes#1#2{ + \if \hash_char#1 + \advance \a_count 1 + \else + \if -#1 + \if >#2 + \let\next=\gobble_to_xrelax + \fi\fi + \fi + \next#2 +} +\def\gobble_to_xrelax#1\x_relax{} +\def\for(#1)#2#3#4{ + \eval_expr_to\a_count{#2} + \x_resetint{#1}{\a_count} + \eval_expr{#4} + \ifnum 0=\result \else + \c_count=\result + \eval_expr_to\b_count{#3} + \setsomething_global\x_cs\edef{for-#1}{ + \the\c_count \x_relax + \noexpand\ifnum \gobble_one\fi + \the\b_count \ifnum 0>\c_count > \else < \fi + } + \def\next##1##2##3\endfor(#1){##2\for_i{##1}{##3}} + \next{#1} + \fi +} +\def\for_i#1#2{ + \setsomething_global\x_cs\def{body-#1}{#2} + \ifnum \b_count \ifnum0>\c_count >\else<\fi \a_count + \expandafter\gobble_two + \else + \csname body-#1 \expandafter\endcsname + \fi + \for_ii{#1} +} +\def\for_ii#1{ + \a_count=\int{#1} + \advance \a_count \csname for-#1\endcsname \a_count + \expandafter\gobble_two + \else + \x_resetint{#1}\a_count + \csname body-#1 \expandafter\endcsname + \fi + \for_ii{#1} +} +\def\endfor(#1){} +\def\foreach(#1)#2{ + \def\next##1\endfor(#1){ + \setsomething_global\x_cs\def{body-#1}{##1} + \process_csep_list{\foreach_i{#1}}#2,\process_csep_list, + } + \next +} +\def\foreach_i#1#2{ + \resetstr{#1}{#2} + \csname body-#1\endcsname +} +\let\comment=\gobble_one +\let\begincomment=\iffalse +\let\endcomment=\fi +%%% From file: fimain.dtx +\def\inputetx#1{ + \edef\lowercase_file{\lowercase{ + \edef\noexpand\lowercase_file{#1}}} + \lowercase_file + \slot_number=0 + \def\relax{\let\relax=\x_relax\iffalse} + \let\encoding=\fi + \primitiveinput \lowercase_file.etx\x_relax + \let\relax=\x_relax +} +\let\encoding=\relax +\outer\def\endencoding{\endinput} +\def\setslot#1{\edef\slot_name{#1}\do_slot} +\def\endsetslot{\end_do_slot\advance\slot_number by 1\x_relax} +\let\do_slot\empty_command +\let\end_do_slot\empty_command +\newcount\slot_number +\def\nextslot#1{\eval_expr_to\slot_number{#1}} +\def\skipslots#1{\eval_expr{#1} \advance\slot_number by \result} +\let\setleftboundary=\gobble_one +\let\endsetleftboundary=\x_relax +\def\setrightboundary#1{ + \makerightboundary{#1} + \advance \slot_number 1\x_relax +} +\let\ligature=\gobble_three +\def\Ligature{\ligature} +\def\oddligature#1#2#3#4{} +\let\nextlarger=\gobble_one +\let\usedas=\gobble_two +\let\makerightboundary=\gobble_one +\let\Unicode=\gobble_two +\let\varchar=\empty_command +\let\vartop=\gobble_one +\let\varmid=\gobble_one +\let\varbot=\gobble_one +\let\varrep=\gobble_one +\let\endvarchar=\empty_command +\let\useexamplefont=\gobble_one +\let\slotexample=\empty_command +\let\setslotcomment=\gobble_one +\let\resetslotcomment=\gobble_one +\let\unsetslotcomment=\empty_command +\let\setfontdimen\gobble_two +\let\label=\gobble_one +\newif\ifdirect \directtrue +\def\input_mtx_as_etx#1{ + \def\setscaledrawglyph##1##2##3##4##5##6##7##8##9{ + \nextslot{##5} + \setslot{##1}\endsetslot + } + \offcommand\setscalednotglyph + \let\setglyph=\gobble_glyph + \offcommand\setkern + \inputmtx{#1} +} +\def\inputmtx#1{ + \def\relax{\let\relax=\x_relax\iffalse} + \let\metrics=\fi + \primitiveinput #1.mtx\x_relax + \let\relax=\x_relax +} +\let\metrics=\x_relax +\edef\endmetrics_text{\string\endmetrics} +\outer\def\endmetrics{\endinput} +\let\setkern=\gobble_three +\long\def\setglyph#1\endsetglyph{} +\def\setrawglyph#1#2#3#4#5#6#7#8{} +\def\setscaledrawglyph#1#2#3#4#5#6#7#8#9{} +\let\setnotglyph=\setrawglyph +\let\setscalednotglyph=\setscaledrawglyph +\def\ifisglyph#1\then{\iffalse} +\let\ifareglyphs=\ifisglyph +%%% From file: ficonv.dtx +\newif\ifmissingslots +\x_cs\def{o-.notdef}#1{\global\missingslotstrue} +{ + \catcode`\/=\active + \catcode`\]=\active + \gdef\enctoetx#1#2{{ + \catcode`\/=\active + \catcode`\]=\active + \def/##1[{ + \a_count=0 + \global\missingslotsfalse + \def/####1~{ + \csname~o-####1\endcsname{ + \ifmissingslots + \out_line{\string\nextslot{\the\a_count}} + \fi + \global\missingslotsfalse + \out_line{\string\setslot{####1}} + \out_line{\string\endsetslot} + \out_line{} + } + \advance\a_count by 1 + } + } + \def]~def{} + \make_etx{#1}{#2} + }} +} +\def\make_etx#1#2{ + \open_out{\temp_prefix#2.etx} + \out_line{\percent_char~Filename:~#2.etx} + \out_line{\percent_char~Created~by:~tex~\jobname} + \out_line{\percent_char~Created~using:~\string\enctoetx{#1}{#2}} + \out_line{} + \out_line{\percent_char~This~file~contains~the~ + information~of~#1.enc~in~a~form} + \out_line{\percent_char~more~easily~read~by~TeX.~ + It~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{} + \out_line{\string\documentclass[twocolumn]{article}} + \out_line{\string\usepackage{fontdoc}} + \out_line{} + \out_line{\string\begin{document}} + \out_line{} + \out_line{This~document~describes~the~#1~encoding.} + \out_line{It~was~automatically~generated~by~the} + \out_line{{\string\tt\space~fontinst}~package.} + \out_line{} + \out_line{\string\encoding} + \out_line{} + \out_line{\string\needsfontinstversion{\fontinstversion}} + \out_line{} + \primitiveinput #1.enc\x_relax + \out_line{} + \out_line{\string\end encoding} + \out_line{} + \out_line{\string\end{document}} + \close_out{Encoding~vector} +} +\def\notdef_name{.notdef} +\def\etxtoenc#1#2{\begingroup + \a_count=\z@ + \loop + \x_cs\let{name-\the\a_count}=\notdef_name + \ifnum \@cclv>\a_count + \advance \a_count \@ne + \repeat + \def\do_slot{ + \x_cs\ifx{name-\the\slot_number}\notdef_name + \x_cs\edef{name-\the\slot_number}{\slot_name} + \fi + } + \process_csep_list\inputetx #1,\process_csep_list, + \make_enc{#1}{#2} +\endgroup} +\def\make_enc#1#2{ + \setstr{encodingname}{fontinst-autoenc-#1} + \def\a_macro##1{ + \add_to\b_macro{##1.etx} + \def\a_macro####1{ + \add_to\b_macro{,~####1.etx} + } + } + \let\b_macro\empty_command + \process_csep_list\a_macro #1,\process_csep_list, + \open_out{#2.enc} + \out_line{\percent_char !PS-Adobe-3.0~Resource-Encoding} + \out_line{\percent_char\space @psencodingfile\left_brace_char} + \ref_to_sourcefile{author}\b_macro + \ref_to_sourcefile{version}\b_macro + \out_line{\percent_char\four_spaces date~=~"generated~ + \the\year/ + \ifnum10>\month0\fi\the\month/ + \ifnum10>\day0\fi\the\day",} + \out_line{\percent_char\four_spaces filename~=~"\out_filename",} + \ref_to_sourcefile{email}\b_macro + \ifisstr{address}\then + \out_line{\percent_char\four_spaces address~=~\str{address}} + \fi + \out_line{\percent_char\four_spaces codetable~=~"ISO/ASCII",} + \out_line{\percent_char\four_spaces checksum~=~"",} + \out_line{\percent_char\four_spaces abstract~=~" + This~is~a~postscript~encoding~file,~automatically~ + generated~by~fontinst~from~\b_macro."} + \out_line{\percent_char\space\right_brace_char} + \out_line{} + \out_line{\percent_char\space Created~by:~tex~\jobname} + \out_line{\percent_char\space Created~using:~ + \string\etxtoenc{#1}{#2}} + \out_line{} + \out_line{\percent_char\space This~file~should~be~installed~ + somewhere~that~your~DVI} + \out_line{\percent_char\space to~postscript~driver~looks~for~files.~ + It~is~needed~for} + \out_line{\percent_char\space reencoding~some~font~you~have~ + transformed.} + \out_line{} + \out_line{\percent_char\space After~installing~this~file,~you~ + should~add~the~following} + \out_line{\percent_char\space line~(minus~\percent_char)~ + to~your~finstmsc.rc~file:} + \out_line{\percent_char\space\string\declarepsencoding + {#1}{\str{encodingname}}{\string\download{\out_filename}}} + \edef\a_macro{ + \noexpand\declarepsencoding{#1}{\str{encodingname}} + {\noexpand\download{\out_filename}} + } + \a_macro + \out_line{} + \out_line{\percent_char\percent_char BeginResource:~ + encoding~\str{encodingname}} + \out_line{/\str{encodingname}\space[} + \b_count=8 + \a_count=\z@ + \loop + \ifnum 8=\b_count + \b_count=\z@ + \out_line{\percent_char\space\the\a_count} + \fi + \out_line{/\csname name-\the\a_count \endcsname} + \ifnum \@cclv>\a_count + \advance \a_count \@ne + \advance \b_count \@ne + \repeat + \out_line{]~def} + \out_line{\percent_char\percent_char EndResource} + \out_line{} + \out_line{\percent_char\space End~of~file~\out_filename.} + \close_out{Encoding~vector} +} +\def\ref_to_sourcefile#1#2{ + \ifisstr{#1}\then + \out_line{\percent_char\four_spaces #1~=~\str{#1},} + \else + \out_line{\percent_char\four_spaces #1~=~"See~file~#2",} + \fi +} +\let\aliased=\second_of_two +%%% From file: fimapgen.dtx +\def\mapfrags_subsystem{Map~fragments~writer} +\newcount\process_generation +\process_generation=0 +\def\process_generation_succ{1} +\def\extract_font_generation#1{ + \if_defined{Tf-#1}\then + \expandafter\expandafter \expandafter\first_of_three + \csname Tf-#1\endcsname + \else + \m@ne + \fi +} +\def\storemapdata#1#2#3{ + \expandafter\def \expandafter\a_macro + \expandafter{ \expandafter{ \the\process_generation}{#2}{#3}} + \ifnum \extract_font_generation{#1}<\process_generation \else + \x_cs\ifx{Tf-#1}\a_macro + \fontinstinfo\mapfrags_subsystem + {Repeated~definition~of~font~#1} + \else + \fontinstwarning\mapfrags_subsystem + {Inconsistent~redefinition~of~font~#1} + \fi + \fi + \x_cs\let{Tf-#1}=\a_macro +} +\let\transformfont\x_relax +\let\reencodefont\x_relax +\let\reglyphfont\x_relax +\def\makemapentry#1{\begingroup + \def\TeX_font_name{#1} + \ifnum \extract_font_generation{#1}<\process_generation + \if_file_exists{#1.mtx}\then + \inputmtx{#1} + \fi\fi + \ifnum \extract_font_generation{#1}<\process_generation + \from_unknown{#1} + \x_cs\xdef{Tf-#1}{ + {\process_generation_succ}{\noexpand\from_unknown{#1}}{} + } + \else + \expandafter\expandafter \expandafter\make_map_entry + \csname Tf-#1\endcsname + \fi + \endgroup +} +\def\make_map_entry#1#2#3{ + \ifnum #1=\process_generation + \def\font_transforms{#3} + #2 + \_a_false + \let\transformfont\concat_transformfont + \let\reencodefont\concat_reencodefont + \let\reglyphfont\_a_true + \font_transforms + \if_a_ + \fontinsterror\mapfrags_subsystem{ + \string\makemapentry\space for~reglyphed~font + }{ No~entry~for~font~\TeX_font_name\space + can~be~written,\messagebreak + since~it~had~been~reglyphed!~\error_help_a + } + \else + \entry_makers_list + \fi + \expandafter\gdef \csname Tf-\TeX_font_name \expandafter\endcsname + \expandafter{\expandafter{\process_generation_succ}{#2}{#3}} + \fi +} +\def\fromafm#1#2{ + \def\source_font_TeX_name{#1} + \def\PS_font_name{#2} +} +\def\frompl#1{ + \def\source_font_TeX_name{#1} +} +\def\frommtx#1{% + \ifnum \extract_font_generation{#1}<\process_generation + \if_file_exists{#1.mtx}\then + \inputmtx{#1} + \fi\fi + \ifnum \extract_font_generation{#1}<\process_generation + \from_unknown{#1} + \x_cs\xdef{Tf-#1}{ + {\the\process_generation}{\noexpand\from_unknown{#1}}{} + } + \else + \expandafter\expandafter \expandafter\from_mtx + \csname Tf-#1\endcsname + \fi +} +\def\from_mtx#1#2#3{ + \edef\font_transforms{#3\font_transforms} + #2 +} +\def\fromvpl{ + \ifx \empty_command\font_transforms \else + \fontinsterror\mapfrags_subsystem{ + Font~is~virtual,~it~cannot~be~transformed}{ + No~entry~for~font~\TeX_font_name\space can~be~written. + \messagebreak\error_help_a + } + \fi + \let\maker_do\gobble_one +} +\def\AssumeMetafont{ + \def\frompl{ + \ifx \empty_command\font_transforms \else + \fontinsterror\mapfrags_subsystem{ + A~Metafont~cannot~be~transformed}{ + No~entry~for~font~\TeX_font_name\space can~be~written. + \messagebreak\error_help_a + } + \fi + \let\maker_do\gobble_one + } +} +\def\from_unknown#1{ + \fontinstwarningnoline\mapfrags_subsystem{ + No~map~data~stored~for~font~#1.\messagebreak + No~entry~for~\TeX_font_name\space will~be~written,\messagebreak + due~to~insufficient~information} + \includewarning\warn_unknown_source + \let\maker_do\gobble_one +} +\let\font_transforms\empty_command +\newdimen\xscale_factor \newdimen\slant_factor +\xscale_factor=\p@ \slant_factor=\z@ +\let\reencode_etx\empty_command +\def\concat_transformfont#1#2{ + \edef\a_macro{\make_factor{#1}} + \xscale_factor=\a_macro\xscale_factor + \slant_factor=\a_macro\slant_factor + \advance \slant_factor \make_factor{#2}\p@ +} +\def\concat_reencodefont#1{\def\reencode_etx{#1}} +\def\adddriver#1#2{ + \x_cs\ifx{make_#1}\x_relax + \fontinsterror\mapfrags_subsystem + {There~is~no~entry~maker~for~#1}\error_help_a + \else + \x_cs\ifx{output_#1}\x_relax \_a_true \else + \x_cs\ifx{output_#1}\closed_stream \_a_true \else + \_a_false + \fi\fi + \if_a_ + \x_cs\open_pout{output_#1}{#2} + \expandafter\add_to \expandafter\entry_makers_list + \expandafter{ \expandafter\maker_do + \csname make_#1\endcsname} + \fi + \fi +} +\let\entry_makers_list\empty_command +\let\maker_do\x_relax +\def\donedrivers{ + \def\maker_do##1{ + \x_cs\close_pout{output\expandafter\gobble_five\string##1} + {Map~file~fragments} + } + \entry_makers_list + \let\maker_do\x_relax + \let\entry_makers_list\empty_command + \errorstopmode + \reportwarnings + \advance \process_generation \thr@@ + \edef\process_generation_succ{\the\process_generation} + \advance \process_generation \m@ne +} +\def\gobble_five#1#2#3#4#5{} +\g_let\warnings_list=\empty_command +\def\warning_do#1#2#3{ + \noexpand\warning_do \noexpand#2 + \ifx #1#2 + \expandafter#3 \expandafter\x_relax + \else + \expandafter#3 \expandafter#1 + \fi +} +\def\includewarning#1{ + \xdef\warnings_list{ + \expandafter\swap_two \expandafter#1 \warnings_list + \if_equal\x_relax\then \else + \noexpand\warning_do \noexpand#1 + \fi + } +} +\def\reportwarnings{ + \begingroup + \let\warning_do=\x_relax + \warnings_list + \endgroup + \g_let\warnings_list=\empty_command +} +\def\warn_unknown_source{ + \fontinstwarningnoline\mapfrags_subsystem{ + Some~font~is~missing~from~the~output~file(s),\messagebreak + since~its~source~is~unknown} +} +\def\warn_undecided_data{ + \fontinstwarningnoline\mapfrags_subsystem{ + Check~the~output~file(s)--some~data~could~not~be~determined} +} +\def\warn_uncertain_data{ + \fontinstwarningnoline\mapfrags_subsystem{ + Check~the~output~file(s)--some~data~was~considered~uncertain} +} +\def\declarepsencoding#1#2#3{\x_cs\gdef{pse-#1}{{#2}{#3}}} +\let\download=\gobble_one +\declarepsencoding{8r}{TeXBase1Encoding}{\download{8r.enc}} +\declarepsencoding{8a}{StandardEncoding}{} +\def\specifypsfont#1#2{\x_cs\def{psf-#1}{#2}} +\def\AssumeLWFN{\let\get_PS_font_file\LWFN_get_PS_font_file} +\def\unknown_str{?????} +\edef\clueless_str{\unknown_str ?} +\let\TeX_font_name\unknown_str +\let\source_font_TeX_name\unknown_str +\let\PS_font_name\unknown_str +\def\get_PS_font_name{\let\PS_font_name\clueless_str} +\def\AssumeAMSBSYY{\def\get_PS_font_name{ + \uppercase \expandafter{ \expandafter\def + \expandafter\PS_font_name \expandafter{ \source_font_TeX_name} + } +}} +\def\AssumeBaKoMa{\def\get_PS_font_name{ + \lowercase \expandafter{ \expandafter\def + \expandafter\PS_font_name \expandafter{ \source_font_TeX_name} + } +}} +\let\PS_font_file\unknown_str +\resetstr{PSfontsuffix}{.pfa} +\def\normal_get_PS_font_file{ + \edef\PS_font_file{\source_font_TeX_name\str{PSfontsuffix}} +} +\let\get_PS_font_file=\normal_get_PS_font_file +\def\LWFN_get_PS_font_file{ + \ifx \PS_font_name\unknown_str \get_PS_font_name \fi + \ifx \PS_font_name\clueless_str + \normal_get_PS_font_file + \includewarning\warn_uncertain_data + \else + \begingroup + \aftergroup\def \aftergroup\PS_font_file + \aftergroup{ + \a_count=4~ + \expandafter\expandafter \expandafter\aftergroup + \expandafter\swap_two \expandafter\abbreviate_PS_font_name + \PS_font_name \x_relax + \aftergroup} + \endgroup + \fi +} +\def\abbreviate_PS_font_name#1{ + \ifx \x_relax#1 \else + \ifnum \uccode`#1=`#1 + \a_count=2 + \aftergroup#1 + \else\ifx -#1 + \a_count=\z@ + \else\ifnum \a_count>\z@ + \advance \a_count \m@ne + \aftergroup#1 + \fi\fi\fi + \expandafter\abbreviate_PS_font_name + \fi +} +\def\make_debug{ + \pout_line\output_debug{Driver~data~for~font~\TeX_font_name:} + \pout_lline\output_debug{Source~font~TeX~name:~\source_font_TeX_name} + \ifx \reencode_etx\empty_command \else + \pout_lline\output_debug{Font~reencoded~using~\reencode_etx.etx.} + \fi + \ifdim \xscale_factor=\p@ \else + \pout_lline\output_debug{Font~x-scaled~by~ + \expandafter\lose_measure\the\xscale_factor. + } + \fi + \ifdim \slant_factor=\z@ \else + \pout_lline\output_debug{Font~slanted~by~ + \expandafter\lose_measure\the\slant_factor. + } + \fi + \debug_values_hook +} +\def\debug_value#1{ + \ifx #1\unknown_str + \csname get_ \expandafter\gobble_one \string#1 \endcsname + \fi + \pout_lline\output_debug{\string#1:~#1} + \ifx #1\clueless_str \includewarning\warn_undecided_data \fi +} +\def\debugvalue#1{ + \expandafter\add_to \expandafter\debug_values_hook + \expandafter{ \expandafter\debug_value \csname#1\endcsname} +} +\let\debug_values_hook\empty_command +\debugvalue{PS_font_name} +\newtoks\downloads_list +\def\append_download#1{ + \downloads_list=\expandafter{ \the\downloads_list \download{#1} } +} +\def\make_dvips{ + \downloads_list={} + \let\postscript_code\empty_command + \let\download\append_download + \ifx \reencode_etx\empty_command \else + \if_undefined{pse-\reencode_etx}\then + \etxtoenc{\reencode_etx}{\reencode_etx} + \fi + \expandafter\expandafter \expandafter\second_of_two + \csname pse-\reencode_etx\endcsname + \edef\postscript_code{\postscript_code\space + \expandafter\expandafter \expandafter\first_of_two + \csname pse-\reencode_etx\endcsname + \space ReEncodeFont + } + \fi + \ifdim \xscale_factor=\p@ \else + \edef\postscript_code{\postscript_code + \space\expandafter\lose_measure\the\xscale_factor + \space ExtendFont + } + \fi + \ifdim \slant_factor=\z@ \else + \edef\postscript_code{\postscript_code + \space\expandafter\lose_measure\the\slant_factor + \space SlantFont + } + \fi + \ifx \PS_font_name\unknown_str \get_PS_font_name \fi + \ifx \PS_font_name\clueless_str + \includewarning\warn_undecided_data + \_a_true + \else + \if_undefined{psf-\PS_font_name}\then + \_a_true + \else + \csname psf-\PS_font_name \endcsname + \_a_false + \fi\fi + \if_a_ + \ifx \PS_font_file\unknown_str \get_PS_font_file \fi + \append_download{\PS_font_file} + \ifx \PS_font_file\clueless_str + \includewarning\warn_undecided_data + \fi + \fi + \def\download##1{~<##1} + \pout_line\output_dvips{ + \TeX_font_name\space\PS_font_name + \expandafter\empty_command \the\downloads_list + \ifx \postscript_code\empty_command \else + \space"\postscript_code\space" + \fi + } +} +\def\make_dvipdfm{ + \def\font_encoding{default} + \ifx \reencode_etx\empty_command \else + \if_undefined{pse-\reencode_etx}\then + \etxtoenc{\reencode_etx}{\reencode_etx} + \fi + \def\download##1{\def\font_encoding{##1}} + \expandafter\expandafter \expandafter\second_of_two + \csname pse-\reencode_etx\endcsname + \fi + \let\options_text\empty_command + \ifdim \xscale_factor=\p@ \else + \edef\options_text{\options_text\space + -e~\expandafter\lose_measure\the\xscale_factor + } + \fi + \ifdim \slant_factor=\z@ \else + \edef\options_text{\options_text\space + -s~\expandafter\lose_measure\the\slant_factor + } + \fi + \ifx \PS_font_name\unknown_str \get_PS_font_name \fi + \if_or \if_equal\PS_font_name\clueless_str \or_else + \if_undefined{psf-\PS_font_name} + \then + \ifx \PS_font_file\unknown_str \get_PS_font_file \fi + \ifx \PS_font_file\clueless_str + \includewarning\warn_undecided_data + \fi + \let\a_macro=\PS_font_file + \else + \let\a_macro=\PS_font_name + \def\download##1{\def\a_macro{##1}} + \csname psf-\PS_font_name \endcsname + \fi + \pout_line\output_dvipdfm{ + \TeX_font_name\space\font_encoding\space\a_macro + \options_text + } +} +\def\make_pltotf{ + \pout_line\output_pltotf{pltotf~\TeX_font_name.pl~ + \ifisstr{TFMfileprefix}\then \str{TFMfileprefix}\fi + \TeX_font_name.tfm + } +} +%%% From file: fibasics.dtx +\def\needsfontinstversion#1{{ + \a_dimen=#1pt + \b_dimen=\fontinstversion~pt\x_relax + \ifnum\a_dimen>\b_dimen + \immediate\write16{} + \immediate\write16{Warning:~This~file~needs~fontinst~version~#1.} + \immediate\write16{Warning:~You~are~using~version~ + \fontinstversion.} + \immediate\write16{Warning:~This~may~cause~errors.} + \immediate\write16{} + \fi +}} +\if_file_exists{finstmsc.rc}\then + \primitiveinput finstmsc.rc +\else + \immediate\write16{No~file~finstmsc.rc.} +\fi +\normalcc +\endinput +%% +%% End of file `finstmsc.sty'. diff --git a/Master/texmf-dist/tex/fontinst/base/fontinst.ini b/Master/texmf-dist/tex/fontinst/base/fontinst.ini new file mode 100644 index 00000000000..3769e47f6f0 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/base/fontinst.ini @@ -0,0 +1,97 @@ +%% +%% This is file `fontinst.ini', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fibasics.dtx (with options: `ini') +%% +%% This is a generated file. +%% +%% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +%% hacked and maintained 1997, 1998 Sebastian Rahtz, +%% copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 the fontinst +%% maintenance team and any individual authors listed elsewhere in +%% this file. All rights reserved. +%% +%% This file is part of the fontinst system version 1.9. +%% ----------------------------------------------------- +%% +%% It may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.1 or, at your option, any later version. +%% +%%% From file: fibasics.dtx +\chardef\active=13 + +\chardef\@ne=1 +\chardef\tw@=2 +\chardef\thr@@=3 +\chardef\sixt@@n=16 +\chardef\@cclv=255 +\mathchardef\@cclvi=256 +\mathchardef\@m=1000 +\mathchardef\@M=10000 +\mathchardef\@MM=20000 + +\count10=22 % allocates \count registers 23, 24, ... +\count11=9 % allocates \dimen registers 10, 11, ... +\count15=9 % allocates \toks registers 10, 11, ... +\count16=-1 % allocates input streams 0, 1, ... +\count17=-1 % allocates output streams 0, 1, ... +\count20=255 % allocates insertions 254, 253, ... +\countdef\insc@unt=20 % the insertion counter +\countdef\allocationnumber=21 % the most recent allocation +\countdef\m@ne=22 \m@ne=-1 % a handy constant +\def\wlog{\immediate\write\m@ne} % write on log file (only) + +\countdef\count@=255 +\dimendef\dimen@=0 + +\outer\def\newcount{\alloc@0\count\countdef\insc@unt} +\outer\def\newdimen{\alloc@1\dimen\dimendef\insc@unt} +\outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi} +\outer\def\newread{\alloc@6\read\chardef\sixt@@n} +\outer\def\newwrite{\alloc@7\write\chardef\sixt@@n} + +\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne + \ch@ck#1#4#2% make sure there's still room + \allocationnumber=\count1#1% + \global#3#5=\allocationnumber + \wlog{\string#5=\string#2\the\allocationnumber}} +\outer\def\newinsert#1{\global\advance\insc@unt by\m@ne + \ch@ck0\insc@unt\count + \ch@ck1\insc@unt\dimen + \ch@ck2\insc@unt\skip + \ch@ck4\insc@unt\box + \allocationnumber=\insc@unt + \global\chardef#1=\allocationnumber + \wlog{\string#1=\string\insert\the\allocationnumber}} +\def\ch@ck#1#2#3{\ifnum\count1#1<#2% + \else\errmessage{No~room~for~a~new~#3}\fi} + +\outer\def\newif#1{\count@\escapechar \escapechar\m@ne + \expandafter\expandafter\expandafter + \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}% + \expandafter\expandafter\expandafter + \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}% + \@if#1{false}\escapechar\count@} % the condition starts out false +\def\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname} +{\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required + +\newdimen\p@ \p@=1pt % this saves macro space and time +\newdimen\z@ \z@=0pt % can be used both for 0pt and 0 + +\def\space{~} +\let\bgroup={ +\let\egroup=} + +\def\loop#1\repeat{\def\body{#1}\iterate} +\def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next} +\let\repeat=\fi % this makes \loop...\if...\repeat skippable + +\def\supereject{\par\penalty-\@MM} +\outer\def\bye{\par\vfill\supereject\end} +\endinput +%% +%% End of file `fontinst.ini'. diff --git a/Master/texmf-dist/tex/fontinst/base/fontinst.sty b/Master/texmf-dist/tex/fontinst/base/fontinst.sty new file mode 100644 index 00000000000..ba8a899a962 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/base/fontinst.sty @@ -0,0 +1,3485 @@ +%% +%% This is file `fontinst.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fibasics.dtx (with options: `pkg') +%% ficommon.dtx (with options: `pkg') +%% fimain.dtx (with options: `pkg') +%% ficonv.dtx (with options: `pkg') +%% filtfam.dtx (with options: `pkg,textcomp,debug') +%% fimapgen.dtx (with options: `pkg') +%% fibasics.dtx (with options: `pkg2') +%% +%% This is a generated file. +%% +%% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +%% hacked and maintained 1997, 1998 Sebastian Rahtz, +%% copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 the fontinst +%% maintenance team and any individual authors listed elsewhere in +%% this file. All rights reserved. +%% +%% This file is part of the fontinst system version 1.9. +%% ----------------------------------------------------- +%% +%% It may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.1 or, at your option, any later version. +%% +%%% From file: fibasics.dtx +\catcode`\{=1 +\catcode`\}=2 +\catcode`\#=6 +\catcode`\^=7 +\def\fontinstversion{1.927} +\ifx\ProvidesPackage\undefined + \def\NeedsTeXFormat#1{} + \def\ProvidesPackage#1[#2]{} +\fi +\ProvidesPackage{fontinst} +[2004/08/07 v\fontinstversion\space + fontinst installation package] +\def\a_macro#1{\catcode\number`#1=\the\catcode`#1 } +\edef\normalcc{% + \a_macro{\ }\a_macro{\^^M}\a_macro{\@}\a_macro{\_}\a_macro{\~} +} +\def\fontinstcc{% + \catcode`\ =9% + \catcode`\^^M=9% + \catcode`\@=11% + \catcode`\_=11% + \catcode`\~=10 +} +\fontinstcc +\ifx\@ne\undefined_command + \input fontinst.ini\relax +\fi +\ifx\bye\undefined_command + \def\supereject{\par\penalty-\@MM} + \outer\expandafter\def \csname bye\endcsname + {\par\vfill\supereject\@@end} +\fi +\newcount\a_count +\newcount\b_count +\newcount\c_count +\newcount\d_count +\newcount\e_count +\newcount\f_count +\newcount\g_count +\newdimen\a_dimen +\newdimen\b_dimen +\newdimen\c_dimen +\newdimen\d_dimen +\newtoks\a_toks +\newtoks\b_toks +\newtoks\c_toks +\newif\if_a_ +\newwrite\out_file +\mathchardef\one_thousand=1000 +\mathchardef\five_hundred=500 +\mathchardef\one_hundred=100 +\mathchardef\max_mathchardef="7FFF +\mathchardef\two_thousand=2000 +\newdimen\half_point \half_point=0.5pt +\let\@tempdima\a_dimen +\let\@tempdimb\b_dimen +\input trig.sty +\def\x_cs#1#2{\expandafter#1\csname#2\endcsname} +\let\x_relax=\relax +\def\g_let{\global\let} +\def\empty_command{} +\def\gobble_one#1{} +\def\gobble_two#1#2{} +\def\gobble_three#1#2#3{} +\def\identity_one#1{#1} +\def\first_of_two#1#2{#1} +\def\second_of_two#1#2{#2} +\def\swap_two#1#2{#2#1} +\def\first_of_three#1#2#3{#1} +\bgroup + \catcode`\[=1 + \catcode`\]=2 + \catcode`\#=12 + \catcode`\%=12 + \catcode`\{=12 + \catcode`\}=12 + \gdef\hash_char[#] + \gdef\percent_char[%] + \gdef\left_brace_char[{] + \gdef\right_brace_char[}] +\egroup +\def\first_char#1#2={#1} +\def\add_to#1#2{ + \ifx#1\x_relax + \def#1{#2} + \else + \expandafter\def\expandafter#1\expandafter{#1#2} + \fi +} +\def\prep_to#1#2{ + \ifx#1\x_relax + \expandafter\def\expandafter#1\expandafter{\expandafter#2} + \else + \expandafter\def\expandafter#1\expandafter{\expandafter#2#1} + \fi +} +\def\never_do{\noexpand\do} +\newif\if_extensions_warning_ +\_extensions_warning_false +\ifx \eTeXversion\undefined_command + \catcode`\~=14 % 14=comment +\fi +\def\eTeX#1{ + \if_extensions_warning_ + \space/\space e-TeX\space version\space #1 +~ \else +~ \ifdim \number\eTeXversion\eTeXrevision\p@ < #1\p@ \else +~ \_a_true +~ \fi + \fi +} +\catcode`\~=10 +\ifx \pdftexversion\undefined_command + \catcode`\~=14 % 14=comment +\fi +\def\pdfTeX#1#2{% + \if_extensions_warning_ + \space/\space pdfTeX\space version\space + \ifnum #1<100\space + 0.\ifnum #1<10\space 0\fi + \else + \expandafter\swap_two \expandafter. + \fi + #1#2% +~ \else +~ \ifdim #1>\pdftexversion \else +~ \ifnum \expandafter\expandafter \expandafter` +~ \expandafter\first_char \pdftexrevision= < +~ \expandafter` \first_char#2= +~ \else \_a_true \fi +~ \fi + \fi +} +\catcode`\~=10 +\def\needsTeXextension#1#2{ + \_a_false + #1 + \if_a_ \else + \_extensions_warning_true + \edef\a_macro{#1} + \_extensions_warning_false + \fontinstwarningnoline{#2}{ + This~file~needs:\messagebreak + \expandafter\second_of_two\a_macro + \iffalse + <no~sufficient~extensions~were~listed!!>\if_false + \fi + \messagebreak + You~are~not~using~any~of~them.~This~is~likely~to~cause~errors + } + \fi +} +\def\open_out#1{ + \immediate\openout\out_file=#1 \xdef\out_filename{#1}} +\def\close_out#1{ + \immediate\write16{#1~written~on~\out_filename.} + \immediate\closeout\out_file} +\def\out_line#1{\immediate\write\out_file{#1}} +\edef\out_lline#1{\noexpand\out_line{\space\space\space#1}} +\edef\out_llline#1{ + \noexpand\out_line{\space\space\space\space\space\space#1} +} +\def\TeX_terminal{\string\TeX\space terminal} +\chardef\closed_stream=99 +\x_cs\let{out_filename-99}=\TeX_terminal +\x_cs\def{out_filename--1}{\jobname.log} +\def\allocate_stream{ + \a_count=\m@ne + \b_count=\m@ne + \loop \ifnum \count17>\a_count + \advance \a_count \@ne + \x_cs\ifx{out_filename-\the\a_count}\TeX_terminal + \b_count=\a_count + \a_count=\count17 + \fi + \repeat + \ifnum \b_count=\m@ne + \global\advance\count17by\@ne + \ifnum \count17<\sixt@@n + \b_count=\count17 + \global\x_cs\let{out_filename-\the\b_count}\TeX_terminal + \wlog{\string\write\the\b_count\space allocated~to~the~pool.} + \else + \global\count17=\sixt@@n + \fi + \fi +} +\def\ch@ck#1#2#3{ + \ifnum \count1#1<#2 \else + \errmessage{No~room~for~a~new~#3} + \global\count1#1=#2 + \fi +} +\def\open_pout#1#2{ + \allocate_stream + \ifnum \b_count=\m@ne + \immediate\write\sixt@@n{fontinst~is~out~of~output~streams.^^J + Output~file~#2~cannot~be~opened.^^J + Writes~will~be~redirected~to~the~log~file. + } + \gdef#1{\m@ne} + \else + \immediate\openout\b_count=#2\x_relax + \x_cs\xdef{out_filename-\the\b_count}{#2} + \global\chardef#1=\b_count + \fi +} +\def\close_pout#1#2{ + \ifnum #1=\closed_stream + \errmessage{Output~file~\string#1~(#2)~not~closed,^^J + since~it~was~not~open} + \else + \immediate\write\sixt@@n{#2~written~on~ + \csname out_filename-\the#1\endcsname.} + \ifnum #1=\m@ne \else + \immediate\closeout#1 + \global\x_cs\let{out_filename-\the#1}=\TeX_terminal + \fi + \global\chardef#1=\closed_stream + \fi +} +\def\pout_line#1#2{\immediate\write#1{#2}} +\edef\pout_lline#1#2{\noexpand\pout_line#1{\space\space\space#2}} +\edef\pout_llline#1#2{ + \noexpand\pout_line#1{\space\space\space\space\space\space#2} +} +\def\tempfileprefix#1{\def\temp_prefix{#1}} +\tempfileprefix{} +\let\then=\iffalse +\def\if_false{\iffalse} +\def\if_true{\iftrue} +\_a_false\eTeX{2.0} +\if_a_\else \catcode`\~=14\x_relax \fi +~ \def\if_defined#1\then{ +~ \if +~ \ifcsname#1\endcsname +~ \expandafter\ifx \csname#1\endcsname \x_relax +~ 0 +~ \else +~ 1 +~ \fi +~ \else +~ 0 +~ \fi +~ 1 +~ } +~ \def\if_undefined{\expandafter\unless\if_defined} +\catcode`\~=\if_a_ 14 \else 10 \fi \x_relax +~ \def\if_defined#1\then{ +~ \expandafter\ifx \csname#1\endcsname\x_relax +~ \expandafter\if_false +~ \else +~ \expandafter\if_true +~ \fi +~ } +~ \def\if_undefined#1\then{ +~ \expandafter\ifx \csname#1\endcsname\x_relax +~ } +\catcode`\~=10\x_relax +\def\gobble_if{\iftrue\else} +\def\if_or#1\or_else#2\then{ + #1\then + \expandafter\if_true + \else + #2\then + \expandafter\expandafter\expandafter\if_true + \else + \expandafter\expandafter\expandafter\if_false + \fi + \fi +} +\def\if_equal#1\then{\ifx#1} +\def\if_file_exists#1\then{ + \immediate\openin1=#1\x_relax + \ifeof1\x_relax + \immediate\closein1 + \expandafter\if_false + \else + \immediate\closein1 + \expandafter\if_true + \fi +} +\let\Else=\else +\let\Fi=\fi +\x_cs\ifx{@@input}\x_relax + \let\primitiveinput=\input +\else + \let\primitiveinput=\@@input +\fi +\def\process_csep_list#1#2,{ + \ifx\process_csep_list#2 + \expandafter\gobble_one + \else + \expandafter\identity_one + \fi{ + #1{#2} + \process_csep_list{#1} + } +} +\def\make_factor#1{ + \ifnum #1<\z@ + -\expandafter\make_factor_i\expandafter{\number-#1} + \else + \expandafter\make_factor_i\expandafter{\number#1} + \fi +} +\def\make_factor_i#1{ + \ifnum #1<\one_thousand + \make_factor_ii{#1} + \else + \make_factor_iii #1 + \fi + #1 +} +\def\make_factor_ii#1{ + 0. + \ifnum #1<\one_hundred + 0 + \ifnum #1<10~ 0\fi + \fi +} +\def\make_factor_iii#1#2#3\fi#4{ + \fi + #4 + \ifnum 1#3<\one_thousand + . + \else + \make_factor_iii#2#3 + \fi +} +{ + \catcode`\p=12 + \catcode`\t=12 + \gdef\lose_measure#1pt{#1} +} +\let\messagebreak\x_relax +\def\generic_info#1#2{ + \begingroup + \def\messagebreak{^^J#1} + \immediate\write\m@ne{#2\on_line.} + \endgroup +} +\def\generic_warning#1#2{ + \begingroup + \def\messagebreak{^^J#1} + \immediate\write\closed_stream{^^J#2\on_line.^^J} + \endgroup +} +\def\generic_error#1#2#3#4{ + \begingroup + \immediate\write\closed_stream{} + \def\messagebreak{^^J} + \edef\a_macro{{#4}} + \errhelp\a_macro + \def\messagebreak{^^J#1} + \errmessage{#2.^^J^^J#3 + Type~\space H~<return>~\space for~immediate~help + } + \endgroup +} +\def\fontinsterror#1#2#3{ + \generic_error{ + \four_spaces\four_spaces + }{ + #1~error:\messagebreak #2 + }{ + }{#3} +} +\def\fontinstwarning#1#2{ + \generic_warning{ + \four_spaces\four_spaces + }{ + #1~warning:\messagebreak #2 + } +} +\def\fontinstwarningnoline#1#2{ + \fontinstwarning{#1}{#2\gobble_one} +} +\def\fontinstinfo#1#2{ + \generic_info{ + \four_spaces\four_spaces + }{ + #1~info:\messagebreak #2 + } +} +\def\on_line{~on~input~line~\the\inputlineno} +\edef\four_spaces{\space\space\space\space} +\gdef\error_help_a{ + Your~command~was~ignored.\messagebreak + Type~\space I~<command>~<return>~\space to~replace~it~ + with~another~command,\messagebreak + or~\space <return>~\space to~continue~without~it.} +\gdef\error_help_c{ + Try~typing~\space <return>~ + \space to~proceed.\messagebreak + If~that~doesn't~work,~type~\space X~<return>~\space to~quit.} +\gdef\error_help_d{ + You're~in~trouble~here.~\space\error_help_c} +\def\error_help_e#1{You~can~continue,~but~the~#1~wrong.} +\newlinechar=`\^^J +\errorcontextlines=999 +\tracinglostchars=1 +%%% From file: ficommon.dtx +\def\str#1{\csname~s-#1\endcsname} +\def\strint#1{\expandafter\identity_one\expandafter{\number\int{#1}}} +\newcount\result +\def\eval_expr#1{\global\result=#1\x_relax} +\def\eval_expr_to#1#2{\eval_expr{#2}#1=\result} +\def\g_eval_expr_to#1#2{\eval_expr{#2}\global#1=\result} +\def\add#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \global\advance \result \a_count + \egroup +} +\def\sub#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \advance \a_count -\result + \global\result=\a_count + \egroup +} +\def\int#1{\csname i-#1 \endcsname} +\def\neg#1{#1 \global\result=-\result} +\def\mul#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \global\multiply \result \a_count + \egroup +} +\def\div#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \divide \a_count \result + \global\result=\a_count + \egroup +} +\def\max#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \ifnum \a_count>\result \global\result=\a_count \fi + \egroup +} +\def\min#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \ifnum \a_count<\result \global\result=\a_count \fi + \egroup +} +\def\half#1{ + #1\x_relax + \ifodd\result + \global\advance \result \@ne + \global\divide \result \tw@ + \ifodd\result \global\advance \result \m@ne \fi + \else + \global\divide \result \tw@ + \fi +} +\def\otherhalf#1{ + #1\x_relax + \ifodd\result + \global\advance \result \@ne + \global\divide \result \tw@ + \ifodd\result \else \global\advance \result \m@ne \fi + \else + \global\divide \result \tw@ + \fi +} +\def\scale#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \global\multiply \result \a_count + \rounded_thousandths + \egroup +} +\def\rounded_thousandths{ + \global\divide \result \five_hundred + \ifodd \result + \global\advance \result by \ifnum 0>\result - \fi 1 + \fi + \global\divide \result \tw@ +} +\def\l_rounded_thousandths#1{ + \divide #1 \five_hundred + \ifodd #1 + \advance #1 by \ifnum 0>#1 - \fi\@ne + \fi + \divide #1 \tw@ +} +\def\l_inv_scale#1#2{ + \multiply #1 \two_thousand + \divide #1 #2\x_relax + \ifodd#1 \advance #1 \ifnum 0>#1 - \fi\@ne \fi + \divide #1 \tw@ +} +\def\ifnumber#1#2#3\then{ + \eval_expr_to\a_count{#1} + \eval_expr{#3} + \ifnum \a_count#2\result + \expandafter\if_true + \else + \expandafter\if_false + \fi +} + +\let\setsomething_global=\x_relax +\def\x_setint#1#2{ + \x_cs\ifx{i-#1}\x_relax + \x_resetint{#1}{#2} + \fi +} +\let\setint=\x_setint +\def\x_setstr#1#2{ + \x_cs\ifx{s-#1}\x_relax + \setsomething_global\x_cs\edef{s-#1}{#2} + \fi +} +\let\setstr=\x_setstr +\def\setdim#1#2{ + \x_cs\ifx{d-#1}\x_relax + \a_dimen=#2\x_relax + \setsomething_global\x_cs\edef{d-#1}{\the\a_dimen} + \fi +} +\def\setcommand#1{ + \ifx#1\undefined_command + \setsomething_global \expandafter\def \expandafter#1 + \else + \expandafter\def \expandafter\a_macro + \fi +} +\def\x_resetint#1#2{ + \eval_expr{#2} + \setsomething_global + \ifnum\result<\max_mathchardef + \ifnum 0>\result + \x_cs\edef{i-#1}{\the\result} + \else + \x_cs\mathchardef{i-#1}=\result + \fi + \else + \x_cs\edef{i-#1}{\the\result} + \fi +} +\let\resetint=\x_resetint +\def\resetstr#1#2{\setsomething_global\x_cs\edef{s-#1}{#2}} +\def\resetdim#1#2{ + \a_dimen=#2 + \setsomething_global\x_cs\edef{d-#1}{\the\a_dimen} +} +\def\resetcommand#1{\setsomething_global\def#1} +\def\dim#1{\csname~d-#1\endcsname} +\def\ifisint#1\then{\if_defined i-#1\then} +\def\ifisstr#1\then{\if_defined s-#1\then} +\def\ifisdim#1\then{\if_defined d-#1\then} +\def\ifiscommand#1\then{ + \ifx#1\undefined_command + \expandafter\if_false + \else + \expandafter\if_true + \fi +} +\def\unsetint#1{\setsomething_global\x_cs\let{i-#1}\x_relax} +\def\unsetstr#1{\setsomething_global\x_cs\let{s-#1}\x_relax} +\def\unsetdim#1{\setsomething_global\x_cs\let{d-#1}\x_relax} +\def\unsetcommand#1{\setsomething_global\let#1=\undefined_command} +\def\offcommand#1{ + \x_cs\ifx{saved-\string#1}\x_relax + \setsomething_global\x_cs\let{saved-\string#1}#1 + \x_cs\ifx{off-\string#1}\x_relax + \generate_off_command{#1} + \else + \setsomething_global \expandafter\let \expandafter#1 + \csname off-\string#1\endcsname + \fi + \fi +} +\def\oncommand#1{ + \x_cs\ifx{saved-\string#1}\x_relax \else + \setsomething_global \expandafter\let \expandafter#1 + \csname saved-\string#1\endcsname + \setsomething_global\x_cs\let{saved-\string#1}\x_relax + \fi +} +\def\generate_off_command#1{ + \a_count=0 + \let\next=\count_hashes + \expandafter\next\meaning#1~->\x_relax + \b_count=0 + \a_toks={} + \loop \ifnum \b_count<\a_count + \advance \b_count 1 + \a_toks=\expandafter{\the\expandafter\a_toks \expandafter#### + \the\b_count} + \repeat + \setsomething_global \expandafter\def \expandafter#1 \the\a_toks {} +} +\def\count_hashes#1#2{ + \if \hash_char#1 + \advance \a_count 1 + \else + \if -#1 + \if >#2 + \let\next=\gobble_to_xrelax + \fi\fi + \fi + \next#2 +} +\def\gobble_to_xrelax#1\x_relax{} +\def\for(#1)#2#3#4{ + \eval_expr_to\a_count{#2} + \x_resetint{#1}{\a_count} + \eval_expr{#4} + \ifnum 0=\result \else + \c_count=\result + \eval_expr_to\b_count{#3} + \setsomething_global\x_cs\edef{for-#1}{ + \the\c_count \x_relax + \noexpand\ifnum \gobble_one\fi + \the\b_count \ifnum 0>\c_count > \else < \fi + } + \def\next##1##2##3\endfor(#1){##2\for_i{##1}{##3}} + \next{#1} + \fi +} +\def\for_i#1#2{ + \setsomething_global\x_cs\def{body-#1}{#2} + \ifnum \b_count \ifnum0>\c_count >\else<\fi \a_count + \expandafter\gobble_two + \else + \csname body-#1 \expandafter\endcsname + \fi + \for_ii{#1} +} +\def\for_ii#1{ + \a_count=\int{#1} + \advance \a_count \csname for-#1\endcsname \a_count + \expandafter\gobble_two + \else + \x_resetint{#1}\a_count + \csname body-#1 \expandafter\endcsname + \fi + \for_ii{#1} +} +\def\endfor(#1){} +\def\foreach(#1)#2{ + \def\next##1\endfor(#1){ + \setsomething_global\x_cs\def{body-#1}{##1} + \process_csep_list{\foreach_i{#1}}#2,\process_csep_list, + } + \next +} +\def\foreach_i#1#2{ + \resetstr{#1}{#2} + \csname body-#1\endcsname +} +\let\comment=\gobble_one +\let\begincomment=\iffalse +\let\endcomment=\fi +%%% From file: fimain.dtx +\def\inputetx#1{ + \edef\lowercase_file{\lowercase{ + \edef\noexpand\lowercase_file{#1}}} + \lowercase_file + \slot_number=0 + \def\relax{\let\relax=\x_relax\iffalse} + \let\encoding=\fi + \primitiveinput \lowercase_file.etx\x_relax + \let\relax=\x_relax +} +\let\encoding=\relax +\outer\def\endencoding{\endinput} +\def\setslot#1{\edef\slot_name{#1}\do_slot} +\def\endsetslot{\end_do_slot\advance\slot_number by 1\x_relax} +\let\do_slot\empty_command +\let\end_do_slot\empty_command +\newcount\slot_number +\def\nextslot#1{\eval_expr_to\slot_number{#1}} +\def\skipslots#1{\eval_expr{#1} \advance\slot_number by \result} +\def\setleftboundary#1{\edef\slot_name{#1}\do_boundary} +\let\endsetleftboundary\x_relax +\let\do_boundary\x_relax +\def\setrightboundary#1{ + \makerightboundary{#1} + \advance \slot_number 1\x_relax +} +\let\ligature=\gobble_three +\def\Ligature{\ligature} +\def\oddligature#1#2#3#4{} +\let\nextlarger=\gobble_one +\let\usedas=\gobble_two +\let\makerightboundary=\gobble_one +\let\Unicode=\gobble_two +\let\varchar=\empty_command +\let\vartop=\gobble_one +\let\varmid=\gobble_one +\let\varbot=\gobble_one +\let\varrep=\gobble_one +\let\endvarchar=\empty_command +\let\useexamplefont=\gobble_one +\let\slotexample=\empty_command +\let\setslotcomment=\gobble_one +\let\resetslotcomment=\gobble_one +\let\unsetslotcomment=\empty_command +\def\setfontdimen#1#2{ + \ifisint{#2}\then \setint{fontdimen(#1)}{\int{#2}} \fi +} +\let\label=\gobble_one +\newif\ifdirect \directtrue +\def\input_mtx_as_etx#1{ + \def\setscaledrawglyph##1##2##3##4##5##6##7##8##9{ + \nextslot{##5} + \setslot{##1}\endsetslot + } + \offcommand\setscalednotglyph + \let\setglyph=\gobble_glyph + \offcommand\setkern + \inputmtx{#1} +} +\def\inputmtx#1{ + \def\relax{\let\relax=\x_relax\iffalse} + \let\metrics=\fi + \primitiveinput #1.mtx\x_relax + \let\relax=\x_relax +} +\let\metrics=\x_relax +\edef\endmetrics_text{\string\endmetrics} +\outer\def\endmetrics{\endinput} +\def\ProvidesMtxPackage#1{\x_cs\let{pack-#1}P} +\def\usemtxpackage{\futurelet\next_token\test_UseMtxPkg_arguments} +\def\test_UseMtxPkg_arguments{\ifx\next_token[ + \expandafter\mtx_package_given_file + \else + \expandafter\mtx_package_separate_files + \fi +} +\def\mtx_package_given_file[#1]#2{ + \_a_false + \process_csep_list\load_true_unless_loaded #2,\process_csep_list, + \if_a_ \inputmtx{#1} \fi +} +\def\load_true_unless_loaded#1{ + \x_cs\ifx{pack-#1}P\else\_a_true\fi +} +\def\mtx_package_separate_files#1{ + \process_csep_list\load_file_unless_loaded #1,\process_csep_list, +} +\def\load_file_unless_loaded#1{ + \x_cs\ifx{pack-#1}P\else \inputmtx{#1} \fi +} +\let\glyph_name_modifier=\identity_one +\def\setkern#1#2#3{ + \x_cs\ifx{i-rawscale}\x_relax + \expandafter\set_kern + \csname~r-\glyph_name_modifier{#1}\expandafter\endcsname + \csname~l-\glyph_name_modifier{#2}\endcsname + {#3} + \else + \expandafter\set_kern + \csname~r-\glyph_name_modifier{#1}\expandafter\endcsname + \csname~l-\glyph_name_modifier{#2}\endcsname + {\scale{#3}{\int{rawscale}}} + \fi +} +\def\set_kern#1#2#3{ + \eval_expr{#3} + \expandafter\set_kern_cs\csname\the\result\endcsname#1#2 +} +\def\set_kern_cs#1#2#3{ + \add_to#2{\k#3#1} + \add_to#3{\k#2#1} +} +\def\resetkern#1#2#3{ + \x_cs\ifx{i-rawscale}\x_relax + \expandafter\reset_kern + \csname~r-#1\expandafter\endcsname + \csname~l-#2\endcsname{#3} + \else + \expandafter\reset_kern + \csname~r-#1\expandafter\endcsname + \csname~l-#2\endcsname{\scale{#3}{\int{rawscale}}} + \fi +} +\def\reset_kern#1#2#3{ + \eval_expr{#3} + \expandafter\reset_kern_cs\csname\the\result\endcsname#1#2 +} +\def\reset_kern_cs#1#2#3{ + \prep_to#2{\k\expandafter#3\expandafter#1} + \prep_to#3{\k\expandafter#2\expandafter#1} +} +\def\setleftkerning#1#2#3{ + \eval_expr_to\b_count{#3} + \expandafter\set_kerning + \csname~l-#1\expandafter\endcsname + \csname~l-#2\endcsname +} +\def\setrightkerning#1#2#3{ + \eval_expr_to\b_count{#3} + \expandafter\set_kerning + \csname~r-#1\expandafter\endcsname + \csname~r-#2\endcsname +} +\def\setleftrightkerning#1#2#3{ + \eval_expr_to\b_count{#3} + \expandafter\set_kerning + \csname~l-#1\expandafter\endcsname + \csname~l-#2\endcsname + \expandafter\set_kerning + \csname~r-#1\expandafter\endcsname + \csname~r-#2\endcsname +} +\def\set_kerning#1#2{ + \if\b_count=\one_thousand + \def\k##1##2{ + \set_kern_cs##2##1#1 + } + \else + \def\k##1##2{ + \set_kern##1#1{ + \scale\b_count{\expandafter\gobble_one\string##2} + } + } + \fi + #2 +} +\def\kerning#1#2{0\x_relax + \def\k##1{\csname~set-\string##1\endcsname\gobble_one} + \bgroup + \x_cs\def{set-\string\l-#2}##1##2{ + \global\result=\expandafter\gobble_one\string##2\egroup + } + \csname~r-#1\endcsname + \csname~set-\string\l-#2\endcsname\gobble_one{00} +} +\def\ifiskern#1#2\then{ + \def\k##1##2{\ifx T##1 \let\k\gobble_two \fi} + \bgroup + \x_cs\let{l-#2}T + \csname r-#1\endcsname + \expandafter\egroup \ifx\k\gobble_two +} +\def\unsetkerns#1#2{ + \let\k\k_unless_to_U + \process_csep_list\make_slots_U#1,\process_csep_list, + \def\do##1{\x_cs\main_remove_Us{l-##1}} + \process_csep_list\do#2,\process_csep_list, + \process_csep_list\make_slots_relax#1,\process_csep_list, + \process_csep_list\make_slots_U#2,\process_csep_list, + \def\do##1{\x_cs\main_remove_Us{r-##1}} + \process_csep_list\do#1,\process_csep_list, + \process_csep_list\make_slots_relax#2,\process_csep_list, +} +\def\make_slots_U#1{\x_cs\let{slots-#1}U} +\def\make_slots_relax#1{\x_cs\let{slots-#1}\x_relax} +\def\k_unless_to_U#1#2{ + \x_cs\ifx{slots-\expandafter\gobble_three\string#1}U \else + \noexpand\k\noexpand#1\noexpand#2 + \fi +} +\def\main_remove_Us#1{ + \ifx#1\x_relax \else + \edef#1{#1} + \ifx#1\empty_command \let#1\x_relax \fi + \fi +} +\def\noleftkerning#1{\no_kerning{l}{#1}} +\def\norightkerning#1{\no_kerning{r}{#1}} +\def\noleftrightkerning#1{\no_kerning{l}{#1}\no_kerning{r}{#1}} +\def\no_kerning#1#2{ + \let\k\no_kerning_i + \def\do##1{\csname #1-##1\endcsname} + \bgroup + \aftergroup\def \aftergroup\a_macro \aftergroup{ + \process_csep_list\do #2,\process_csep_list, + \aftergroup} + \egroup + \def\do##1{\expandafter\let \csname #1-##1\endcsname \x_relax} + \process_csep_list\do #2,\process_csep_list, + \let\k\no_kerning_ii + \def\do##1{\edef##1{##1}} + \a_macro +} +\def\no_kerning_i#1#2{ + \ifx #1\x_relax \else + \aftergroup\do \aftergroup#1 + \let #1\x_relax + \fi +} +\def\no_kerning_ii#1#2{ + \ifx #1\x_relax \else \noexpand\k \noexpand#1 \noexpand#2 \fi +} +\def\width{\glyph_parameter\first_of_six} +\def\height{\glyph_parameter\second_of_six} +\def\depth{\glyph_parameter\third_of_six} +\def\italic{\glyph_parameter\fourth_of_six} +\def\mapcommands{\glyph_parameter\fifth_of_six} +\def\mapfonts{\glyph_parameter\sixth_of_six} +\def\glyph_parameter#1#2{ + \expandafter\expandafter\expandafter + #1\csname g-#2\endcsname +} +\def\first_of_six#1#2#3#4#5#6{#1} +\def\second_of_six#1#2#3#4#5#6{#2} +\def\third_of_six#1#2#3#4#5#6{#3} +\def\fourth_of_six#1#2#3#4#5#6{#4} +\def\fifth_of_six#1#2#3#4#5#6{#5} +\def\sixth_of_six#1#2#3#4#5#6{#6} +\def\glyph_metrics#1#2#3#4#5#6{ + \a_count=#1 + \b_count=#2 + \c_count=#3 + \d_count=#4~ +} +\let\saved_scale\x_relax +\let\saved_mapfont\x_relax +\let\saved_raw\x_relax +\let\saved_rule\x_relax +\let\saved_special\x_relax +\let\saved_warning\x_relax +\let\saved_movert\x_relax +\let\saved_moveup\x_relax +\let\saved_push\x_relax +\let\saved_pop\x_relax +\newcount\glyph_width +\newcount\glyph_height +\newcount\glyph_depth +\newcount\glyph_italic +\newtoks\glyph_map_commands +\newtoks\glyph_map_fonts +\newcount\glyph_voffset +\newcount\glyph_maxhpos +\def\setglyph#1{ + \ifisglyph{\glyph_name_modifier{#1}}\then + \expandafter\gobble_glyph + \else + \x_cs\def{g-\glyph_name_modifier{#1}}{ + {\the\glyph_width}{\the\glyph_height} + {\the\glyph_depth}{\the\glyph_italic} + {\the\glyph_map_commands}{\the\glyph_map_fonts} + } + \resetglyph{\glyph_name_modifier{#1}} + \fi +} +\long\def\gobble_glyph#1\endsetglyph{} +\def\resetglyph#1{ + \edef\glyphname{#1} + \glyph_width=0 + \global\glyph_height=0 + \global\glyph_depth=0 + \global\glyph_italic=0 + \glyph_voffset=0 + \global\glyph_maxhpos=0 + \global\glyph_map_commands={} + \global\glyph_map_fonts={} +} +\def\endsetglyph{ + \x_cs\edef{g-\glyphname} + {{\the\glyph_width}{\the\glyph_height} + {\the\glyph_depth}{\the\glyph_italic} + {\the\glyph_map_commands}{\the\glyph_map_fonts}} +} +\let\endresetglyph=\endsetglyph +\def\setrawglyph#1#2#3{ + \setscaledrawglyph{#1}{#2}{#3}\one_thousand +} +\def\setscaledrawglyph#1#2#3#4#5#6#7#8#9{ + \if_undefined{g-\glyph_name_modifier{#1}}\then + \eval_expr{#4} + \ifnum \result=\one_thousand + \let\a_macro\identity_one + \else + \edef\a_macro##1{\saved_scale{\the\result}{##1}} + \fi + \eval_expr_to\a_count{#6} + \eval_expr_to\b_count{#7} + \eval_expr_to\c_count{#8} + \eval_expr_to\d_count{#9} + \ifisint{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 + \edef\a_macro##1{\saved_scale{\the\e_count}{\a_macro{##1}}} + \fi + \x_cs\edef{g-\glyph_name_modifier{#1}}{ + {\the\a_count} + {\the\b_count} + {\the\c_count} + {\the\d_count} + {\a_macro{\saved_raw{#2}{#5}{#1}}} + {\a_macro{\saved_mapfont{#2}{#3}}} + } + \fi +} +\def\setnotglyph#1#2#3{ + \setscalednotglyph{#1}{#2}{#3}\one_thousand +} +\def\setscalednotglyph#1#2#3#4#5#6#7#8#9{ + \if_undefined{g-\glyph_name_modifier{#1}-not}\then + \eval_expr_to\a_count{#6} + \eval_expr_to\b_count{#7} + \eval_expr_to\c_count{#8} + \eval_expr_to\d_count{#9} + \ifisint{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{g-\glyph_name_modifier{#1}-not}{ + {\the\a_count} + {\the\b_count} + {\the\c_count} + {\the\d_count} + {}{} + } + \fi +} +\def\unsetglyph#1{\x_cs\let{g-#1}\x_relax} +\def\glyph#1#2{ + \glyph_parameter\glyph_metrics{#1} + \eval_expr_to\e_count{#2} + \ifnum \e_count=\one_thousand + \edef\a_macro{\mapcommands{#1}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } + \edef\a_macro{\mapfonts{#1}} + \else + \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 + \edef\a_macro{\saved_scale{\the\e_count}{\mapcommands{#1}}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } + \edef\a_macro{\saved_scale{\the\e_count}{\mapfonts{#1}}} + \fi + \advance \glyph_width \a_count + \advance \b_count \glyph_voffset + \ifnum \glyph_height<\b_count \global\glyph_height=\b_count \fi + \advance \c_count -\glyph_voffset + \ifnum \glyph_depth<\c_count \global\glyph_depth=\c_count \fi + \global\glyph_italic=\d_count + \global\glyph_map_fonts\expandafter{ + \the\expandafter\glyph_map_fonts \a_macro + } +} +\def\glyphrule#1#2{ + \eval_expr_to\b_count{#1} \eval_expr_to\c_count{#2} + \advance\glyph_width by \b_count + \g_eval_expr_to\glyph_depth{\max\glyph_depth{-\glyph_voffset}} + \g_eval_expr_to\glyph_height{ + \max\glyph_height{\add\glyph_voffset\c_count} + } + \global\glyph_italic=0 + \edef\a_macro{\saved_rule{\the\b_count}{\the\c_count}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } +} +\def\glyphspecial#1{ + \edef\a_macro{\saved_special{#1}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } +} +\def\glyphwarning#1{ + \edef\a_macro{\saved_warning{#1}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } +} +\def\movert#1{ + \eval_expr{#1} + \ifnum \glyph_maxhpos<\glyph_width + \global\glyph_maxhpos\glyph_width + \fi + \ifnum 0=\result \else + \advance\glyph_width by \result + \edef\a_macro{\saved_movert{\the\result}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } + \fi +} +\def\moveup#1{ + \eval_expr{#1} + \ifnum\result=0\else + \advance\glyph_voffset by \result + \edef\a_macro{\saved_moveup{\the\result}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } + \fi +} +\def\push{ + \bgroup + \global\glyph_map_commands\expandafter{ + \the\glyph_map_commands \saved_push + } +} +\def\pop{ + \ifnum \glyph_maxhpos<\glyph_width + \global\glyph_maxhpos\glyph_width + \fi + \egroup + \global\glyph_map_commands\expandafter{ + \the\glyph_map_commands \saved_pop + } +} +\def\resetwidth#1{\movert{\sub{#1}\glyph_width}} +\def\resetheight{\g_eval_expr_to\glyph_height} +\def\resetdepth{\g_eval_expr_to\glyph_depth} +\def\resetitalic{\g_eval_expr_to\glyph_italic} +\def\glyphpcc#1#2#3{ + \ifisglyph{\glyph_name_modifier{#1}}\then + \push + \movert{#2} + \moveup{#3} + \glyph{\glyph_name_modifier{#1}}{\one_thousand} + \pop + \else + \fontinsterror{\string\glyphpcc}{ + Base~glyph~not~set.\messagebreak + This~could~be~a~sign~that~the~AFM~file~is~buggy + }\error_help_a + \fi +} +\def\glyphbboxright{\max\glyph_width\glyph_maxhpos} +\def\samesize#1{ + \if_undefined{g-\glyph_name_modifier{#1}}\then + \resetwidth{\glyphbboxright} + \else + \expandafter\expandafter\expandafter + \same_size\csname g-\glyph_name_modifier{#1}\endcsname + \fi +} +\def\same_size#1#2#3#4#5#6{ + \movert{\sub{#1}\glyph_width} + \global\glyph_height=#2 + \global\glyph_depth=#3 + \global\glyph_italic=#4 +} +\def\ifisglyph#1\then{\if_defined{g-#1}\then} +\def\ifareglyphs#1\then{ + \process_csep_list{\if_is_glyph}#1,\process_csep_list, + \if_true +} +\def\if_is_glyph#1{ + \if_undefined{g-#1}\then \expandafter\if_false \fi +} +\def\etxtovpl#1#2{{ + \def\vpl_extension{vpl} + \def\vpl_title{COMMENT} + \def\vpl_font{virtual~font} + \def\vpl_Font{Virtual~font} + \def\vpl_call{\string\etxtovpl{#1}{#2}} + \def\vpl_to_vf##1{vptovf~##1.vpl~##1.vf~##1.tfm} + \a_toks={} + \process_csep_list\make_inputetx #1,\process_csep_list, + \expandafter\etx_to_font \expandafter{\the\a_toks}{#2} +}} +\def\etxtopl#1#2{{ + \def\vpl_extension{pl} + \def\vpl_title{COMMENT} + \def\vpl_font{font} + \def\vpl_Font{Font} + \def\vpl_call{\string\etxtopl{#1}{#2}} + \def\vpl_to_vf##1{pltotf~##1.pl~##1.tfm} + \_including_map_false + \global\rawfont_scaling=-\p@ + \a_toks={} + \process_csep_list\make_inputetx #1,\process_csep_list, + \expandafter\etx_to_font \expandafter{\the\a_toks}{#2} +}} +\newif\if_including_map_ +\_including_map_true +\def\make_inputetx#1{ + \def\a_macro{\noexpand\inputetx{\file_name}} + \get_file_name #1~{}~\par + \edef\a_macro{\a_macro} + \a_toks=\expandafter{ \the\expandafter\a_toks \a_macro} +} +\x_cs\def{IFKW-mtxasetx}{ + \def\a_macro{\noexpand\input_mtx_as_etx{\file_name}} + \get_keyword +} +\def\etx_to_font#1#2{ + \make_assignments{#1} + \open_out{#2.\vpl_extension} + \top_of_pl_hook + \out_line{(\vpl_title\space\vpl_font\space + #2~created~by~fontinst~v\fontinstversion)} + \out_line{} + \out_line{(COMMENT~Filename:~#2.\vpl_extension)} + \out_line{(COMMENT~Created~by:~tex~\jobname)} + \out_line{(COMMENT~Created~using:~\vpl_call)} + \out_line{} + \out_line{(COMMENT~This~file~can~be~turned~into~a~\vpl_font\space + with)} + \out_line{(COMMENT~\vpl_to_vf{#2})} + \out_line{} + \out_line{(COMMENT~THIS~FILE~CAN~THEN~BE~DELETED.)} + \out_line{} + \make_header{#1} + \if_including_map_ \make_mapfonts{#1} \fi + \make_fontdimens{#1} + \make_ligtable{#1} + \make_characters{#1} + \make_tidy{#1} + \out_line{} + \out_line{(COMMENT~END~OF~FILE~#2.\vpl_extension)} + \close_out{\vpl_Font} +} +\let\pre_first_etx_pass_hook\x_relax +\let\pre_second_etx_pass_hook\x_relax +\let\pre_third_etx_pass_hook\x_relax +\let\pre_fourth_etx_pass_hook\x_relax +\let\post_first_etx_pass_hook\x_relax +\let\post_second_etx_pass_hook\x_relax +\let\post_third_etx_pass_hook\x_relax +\let\post_fourth_etx_pass_hook\x_relax +\let\tidying_up_hook\x_relax +\let\top_of_pl_hook\x_relax +\def\make_assignments#1{ + \let\do_slot=\assign_slot + \let\end_do_slot=\end_assign_slot + \def\do_boundary{\bgroup + \let\makerightboundary=\bad_makerightboundary + } + \let\endsetleftboundary=\egroup + \let\makerightboundary=\assign_rboundary + \pre_first_etx_pass_hook + #1 + \post_first_etx_pass_hook + \let\end_do_slot=\empty_command + \let\do_boundary=\x_relax + \let\endsetleftboundary=\x_relax + \let\makerightboundary=\gobble_one +} +\def\assign_slot{\a_toks={\do}} +\begingroup + \catcode0=12 + \gdef\end_assign_slot{ + \ifisglyph\slot_name\then + \lccode0=\slot_number + \lowercase{ + \expandafter\add_to + \csname slots-\slot_name\expandafter\endcsname + \expandafter{\the\a_toks^^@} + } + \fi + } + \gdef\assign_rboundary#1{ + \lccode0=\slot_number + \lowercase{\x_cs\add_to{slots-#1}{\rboundary_do^^@}} + \x_setint{\percent_char boundarychar}\slot_number + \a_toks={\rbserver_do} + } +\endgroup +\def\bad_makerightboundary#1{ + \errhelp={The~left~boundary~is~not~a~slot,~so~it~cannot~serve~ + as~right~boundary.} + \errmessage{Incorrect~use~of~\string\makerightboundary} +} +\def\get_slot_num#1{ + \global\result=-1 + \bgroup + \def\do{\global\result=`} + \let\rbserver_do=\do + \let\rboundary_do=\gobble_one + \csname slots-#1\endcsname + \egroup +} +\def\ifisinslot#1#2\then{ + \ifx \makerightboundary\gobble_one + \eval_expr{#2} + \begingroup + \def\do##1{\ifnum `##1=\result \let\do=\gobble_one \fi} + \def\rbserver_do{\do} + \let\rboundary_do=\gobble_one + \csname slots-#1\endcsname + \expandafter\endgroup + \ifx \do\gobble_one + \expandafter\expandafter \expandafter\if_true + \else + \expandafter\expandafter \expandafter\if_false + \fi + \else + \expandafter\gobble_if + \fi +} +\newdimen\mapfont_scaling +\mapfont_scaling=1pt +\newdimen\rawfont_scaling +\def\vpl_real#1{R~\expandafter\lose_measure\the#1} +\def\vpl_int#1{D~\the#1} +\newdimen\side_bearings +\newdimen\curr_bearings +\def\make_header#1{ + \global\font_count=0 + \setdim{designsize}{10pt} + \a_dimen=\dim{designsize} + \out_line{(DESIGNSIZE~\vpl_real\a_dimen)} + \x_setstr{codingscheme}{UNKNOWN} + \out_line{(CODINGSCHEME~\str{codingscheme})} + \ifisint{\percent_char boundarychar}\then + \a_count=\int{\percent_char boundarychar} + \out_line{(BOUNDARYCHAR~\vpl_int\a_count)} + \fi + \x_setint{letterspacing}{0} + \side_bearings=\make_factor{\int{letterspacing}}\half_point + \x_setint{minimumkern}{0} + \minimum_kern=\int{minimumkern} + \out_line{} +} +\def\make_mapfonts#1{ + \let\saved_scale\vpl_scale + \let\saved_mapfont\vpl_mapfont + \let\do_slot=\do_mapfont + \pre_second_etx_pass_hook + #1 + \post_second_etx_pass_hook + \out_line{} +} +\def\do_mapfont{ + \ifisglyph\slot_name\then + \mapfonts\slot_name + \fi +} +\def\vpl_scale#1#2{{ + \mapfont_scaling=\make_factor{#1}\mapfont_scaling + #2 +}} +\def\vpl_mapfont#1#2{ + \a_dimen=#2 + \if_undefined{\the\mapfont_scaling-#1}\then + \global\x_cs\mathchardef{\the\mapfont_scaling-#1}=\font_count + \x_cs\xdef{f-\the\font_count}{\the\mapfont_scaling-#1} + \out_line{(MAPFONT~\vpl_int\font_count\space + (FONTNAME~#1)~ + (FONTDSIZE~\vpl_real\a_dimen)~ + (FONTAT~\vpl_real\mapfont_scaling))} + \record_usage{#1} + \global\advance\font_count by 1 + \fi +} +\def\pl_mapfont#1#2{\global\rawfont_scaling=\mapfont_scaling} +\newcount\font_count +\newcount\next_mapfont +\newcount\prev_mapfont +\def\make_fontdimens#1{ + \out_line{(FONTDIMEN} + \a_count=1 + \loop\ifnum 256>\a_count + \ifisint{fontdimen(\the\a_count)}\then + \out_lline{(PARAMETER~\vpl_int\a_count\space + R~\make_factor{\int{fontdimen(\the\a_count)}})} + \fi + \advance \a_count \@ne + \repeat + \out_lline{)} + \out_line{} +} +\def\make_ligtable#1{ + \begingroup + \out_line{(LIGTABLE} + \let\do_slot=\bgroup + \let\end_do_slot=\vpl_kerning + \def\do_boundary{\bgroup \let\vpl_liglabel=\boundary_liglabel} + \let\endsetleftboundary=\vpl_kerning + \let\ligature=\vpl_ligature + \let\k=\vpl_kern + \let\rbserver_do=\vpl_rbserver_do + \let\rboundary_do=\vpl_rboundary_do + \pre_third_etx_pass_hook + #1 + \post_third_etx_pass_hook + \out_lline{)} + \endgroup + \out_line{} +} +\def\vpl_rbserver_do#1{ + \do{#1} + \let\rboundary_do=\wrn_rboundary_do +} +\def\vpl_rboundary_do#1{ + \do{#1} + \let\rbserver_do=\wrn_rboundary_do +} +\def\wrn_rboundary_do#1{ + \do{#1} + \immediate\write16{Boundarychar~slot~usage~collision~in~ + `\slot_name'~ligkern~program.} +} +\def\vpl_ligature#1#2#3{ + \get_slot_num{#3} + \ifnum -1=\result + \immediate\write16{Warning:~\string\ligature\space + for~unknown~slot~`#3'.} + \else + \x_cs\ifx{slots-#2}\x_relax + \immediate\write16{Warning:~\string\ligature\space + for~unknown~slot~`#2'.} + \else + \def\do##1{ + \vpl_liglabel + \out_lline{(#1~D~\number`##1~\space\vpl_int\result)~ + (COMMENT~#2~#3)} + } + \csname slots-#2\endcsname + \fi + \fi +} +\def\vpl_kerning{ + \let\do=\vpl_kern_do + \csname~r-\slot_name\endcsname + \vpl_ligstop + \egroup +} +\def\vpl_kern#1#2{ + \edef\a_macro{\expandafter\gobble_three\string#1} + \a_count=\expandafter\gobble_one\string#2\x_relax + \ifnum \ifnum -\a_count>\a_count - \fi\a_count>\minimum_kern + \edef\b_macro{~R~\make_factor\a_count} + \csname slots-\a_macro\endcsname + \fi + \x_cs\let{slots-\a_macro}=\x_relax +} +\def\vpl_kern_do#1{ + \vpl_liglabel + \out_lline{ + (KRN~D~\number`#1~\b_macro)~ + (COMMENT~\a_macro) + } +} +\def\out_liglabel{ + \out_lline{(LABEL~\vpl_int\slot_number)~(COMMENT~\slot_name)} + \let\vpl_liglabel=\x_relax + \let\vpl_ligstop=\out_ligstop +} +\def\boundary_liglabel{ + \out_lline{(LABEL~BOUNDARYCHAR)~(COMMENT~\slot_name)} + \let\vpl_liglabel=\x_relax + \let\vpl_ligstop=\out_ligstop +} +\let\vpl_liglabel=\out_liglabel +\def\out_ligstop{\out_lline{(STOP)} + \let\vpl_liglabel=\out_liglabel + \let\vpl_ligstop=\x_relax} +\let\vpl_ligstop=\x_relax +\def\make_characters#1{ + \bgroup + \let\do_slot=\do_character + \let\end_do_slot=\end_do_character + \let\nextlarger=\vpl_nextlarger + \let\varchar=\vpl_varchar + \let\endvarchar=\end_vpl_varchar + \let\vartop=\vpl_vartop + \let\varmid=\vpl_varmid + \let\varbot=\vpl_varbot + \let\varrep=\vpl_varrep + \if_including_map_ + \let\saved_raw\vpl_raw + \let\saved_rule\vpl_rule + \let\saved_special\vpl_special + \let\saved_warning\vpl_warning + \let\saved_movert\vpl_movert + \let\saved_moveup\vpl_moveup + \let\saved_push\vpl_push + \let\saved_pop\vpl_pop + \else + \def\do_character_map{ + \ifdim \rawfont_scaling=-\p@ + \mapfonts\slot_name + \else + \let\do_character_map=\x_relax + \fi + } + \let\saved_mapfont\pl_mapfont + \let\saved_scale\vpl_scale + \fi + \pre_fourth_etx_pass_hook + #1 + \post_fourth_etx_pass_hook + \egroup +} +\def\do_character{ + \if_undefined{g-\slot_name}\then + \ifisint{requireglyphs}\then + \fontinstwarning{ETX~to~(V)PL}{ + Undefined~glyph~`\slot_name'~requested\message_break + for~slot~\the\slot_number\message_number} + \fi + \expandafter\gobble_setslot + \else + \ifx\slot_name\notdef_name\else + \out_line{(CHARACTER~\vpl_int\slot_number\space + (COMMENT~\slot_name)} + \glyph_parameter\glyph_metrics\slot_name + \a_dimen=\make_factor\a_count \p@ + \do_character_sidebearings + \out_lline{(CHARWD~\vpl_real\a_dimen)} + \ifnum \z@=\b_count \else + \out_lline{(CHARHT~R~\make_factor\b_count)} + \fi + \ifnum \z@=\c_count \else + \out_lline{(CHARDP~R~\make_factor\c_count)} + \fi + \ifnum \z@=\d_count \else + \out_lline{(CHARIC~R~\make_factor\d_count)} + \fi + \do_character_map + \fi + \fi +} +\def\do_character_sidebearings{ + \ifisint{\slot_name-spacing}\then + \curr_bearings=\make_factor{\int{\slot_name-spacing}}\half_point + \else + \curr_bearings=\side_bearings + \fi + \advance\a_dimen by 2\curr_bearings +} +\def\do_character_map{ + \global\prev_mapfont=0 + \out_lline{(MAP} + \ifdim 0pt=\curr_bearings + \mapcommands\slot_name + \else + \out_llline{(MOVERIGHT~\vpl_real\curr_bearings)} + \mapcommands\slot_name + \out_llline{(MOVERIGHT~\vpl_real\curr_bearings)} + \fi + \out_llline{)} +} +\long\def\gobble_setslot#1\endsetslot{\endsetslot} +\def\end_do_character{ + \ifisglyph\slot_name\then + \out_lline{)} + \fi +} +\def\notdef_name{.notdef} +\def\vpl_nextlarger#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_lline{(NEXTLARGER~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\nextlarger\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_varchar{\out_lline{(VARCHAR}} +\def\end_vpl_varchar{\out_llline{)}} +\def\vpl_vartop#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_llline{(TOP~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\vartop\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_varmid#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_llline{(MID~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\varmid\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_varbot#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_llline{(BOT~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\varbot\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_varrep#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_llline{(REP~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\varrep\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_raw#1#2#3{ + \global\next_mapfont=\csname\the\mapfont_scaling-#1\endcsname + \ifnum \next_mapfont=\prev_mapfont \else + \out_llline{(SELECTFONT~\vpl_int\next_mapfont)~ + (COMMENT~#1~at~ + \expandafter\lose_measure \the\mapfont_scaling)} + \fi + \out_llline{(SETCHAR~D~#2)~(COMMENT~#3)} + \global\prev_mapfont=\next_mapfont +} +\def\vpl_rule#1#2{ + \a_dimen=\make_factor{#2}\mapfont_scaling + \b_dimen=\make_factor{#1}\mapfont_scaling + \out_llline{(SETRULE~\vpl_real\a_dimen\space\vpl_real\b_dimen)} +} +\def\vpl_special#1{ + \out_llline{(SPECIAL~#1)}} +\def\vpl_warning#1{ + \ifwarningspecials + \out_llline{(SPECIAL~Warning:~#1)} + \fi + \immediate\write16{Warning:~#1.} +} +\newif\ifwarningspecials +\warningspecialstrue +\def\vpl_movert#1{ + \a_dimen=\make_factor{#1}\mapfont_scaling + \out_llline{(MOVERIGHT~\vpl_real\a_dimen)} +} +\def\vpl_moveup#1{ + \a_dimen=\make_factor{#1}\mapfont_scaling + \out_llline{(MOVEUP~\vpl_real\a_dimen)} +} +\def\vpl_push{\out_llline{(PUSH)}} +\def\vpl_pop{\out_llline{(POP)}} +\def\make_tidy#1{ + \tidying_up_hook + \if_including_map_ + \a_count=0 + \loop\ifnum \a_count<\font_count + \edef\a_macro{\csname~f-\the\a_count\endcsname} + \global\x_cs\let\a_macro\x_relax + \advance\a_count by 1 + \repeat + \global\font_count=0 + \else + \ifdim \rawfont_scaling<\z@ + \fontinstwarning{ETX~to~(V)PL}{The~font~ + \out_filename\space doesn't~contain~any~characters} + \global\rawfont_scaling=\p@ + \fi + \ifdim \rawfont_scaling=\p@ \else + \out_line{(DESIGNUNITS~\vpl_real\rawfont_scaling)} + \fi + \fi +} +\newtoks\family_toks +\def\installfonts{ + \bgroup + \global\family_toks={} + \gdef\prev_file_list{} + \global\let\setsomething_global=\global +} +\def\installfamily#1#2#3{ + \global\family_toks= + \expandafter{\the\family_toks\fd_family{#1}{#2}{#3}} + \global\x_cs\let{#1-#2}\empty_command +} +\def\installfont#1#2#3#4#5#6#7#8{ + \global\let\setsomething_global=\x_relax + \input_metrics{}{#2} + \etxtovpl{#3}{#1} + \installfontas{#1}{#4}{#5}{#6}{#7}{#8} + \global\let\setsomething_global=\global +} +\def\installrawfont#1#2#3#4#5#6#7#8{ + \global\let\setsomething_global=\x_relax + \xdef\out_filename{#1} + \input_metrics{\let\storemapdata=\installraw_storemap}{#2} + \let\storemapdata=\gobble_three + \etxtopl{#3}{#1} + \record_usage{#1} + \installfontas{ + \ifdim \rawfont_scaling=\p@ \else + [\expandafter\lose_measure\the\rawfont_scaling]~ + \fi #1 + }{#4}{#5}{#6}{#7}{#8} + \global\let\setsomething_global=\global +} +\def\installraw_storemap#1#2#3{ + \def\a_macro{#1} + \ifx \a_macro\out_filename \else + \record_transform{\out_filename}{\string\frommtx{#1}}{}\if_false + \fi +} +\def\input_metrics#1#2{ + \let\metrics=\file_list_metrics + \xdef\curr_file_list{#2,} + \let\metrics=\x_relax + \ifx\prev_file_list\curr_file_list\else + \egroup\bgroup + #1 + \expandafter\process_csep_list \expandafter\input_mtx_file + \curr_file_list\process_csep_list, + \global\let\prev_file_list=\curr_file_list + \fi +} +\def\file_list_metrics#1,{ + \iffalse{\fi} + \a_toks=\expandafter{\curr_file_list\x_relax#1,} + \xdef\curr_file_list{\the\a_toks \iffalse}\fi +} +\def\installfontas#1#2#3#4#5#6{ + \if_undefined{#2-#3-#4-#5}\then + \let\do_shape=\x_relax + \if_undefined{#2-#3}\then + \x_cs\let{#2-#3}\empty_command + \autoinstallfamily{#2}{#3} + \fi + \x_cs\xdef{#2-#3}{ + \csname#2-#3\endcsname + \do_shape{#2}{#3}{#4}{#5} + } + \fi + \let\do_size=\x_relax + \x_cs\xdef{#2-#3-#4-#5}{ + \if_defined{#2-#3-#4-#5}\then + \csname#2-#3-#4-#5\endcsname + \fi + \do_size{#6}{#1} + } +} +\def\autoinstallfamily#1#2{\installfamily{#1}{#2}{}} +\def\endinstallfonts{ + \global\let\setsomething_global=\x_relax + \let\do_shape=\fd_shape + \let\do_size=\fd_size + \the\family_toks + \global\family_toks{} + \egroup +} +\def\input_mtx_file#1{ + \reset_modifiers_hook + \ifx\x_relax#1\x_relax + \else + \identity_one{\get_file_name #1~}~\par + \ifx \pl_encoding\empty_command + \fromany\file_name + \else + \metrics_given_encoding{\file_name}{\pl_encoding} + \fi + \ifisstr{afm-name}\then + \inputmtx{\str{afm-name}} + \else + \fontinsterror{\string\install...}{ + Font/MTX~file~\file_name\space not found + }{ + You~can~insert~an~\string\inputmtx\space command~here + \messagebreak to~input~some~other~MTX~file~instead. + \ifisint{rawscale}\then \messagebreak + The~requested~raw~scaling~will~then~be~applied~on~that. + \fi + } + \fi + \fi +} +\def\metrics_given_encoding#1#2{ + \x_setstr{afm-name}{#1-#2} + \if_file_exists{#1.pl}\then + \generalpltomtx{#1}{#1-#2}{pl}{#2} + \else + \if_file_exists{#1.vpl}\then + \generalpltomtx{#1}{#1-#2}{vpl}{#2} + \else + \unsetstr{afm-name} + \fi\fi +} +\def\reset_modifiers_hook{ + \unsetint{rawscale} + \let\glyph_name_modifier\identity_one + \let\pl_encoding\empty_command + \let\list_of_options\empty_command +} +\def\get_file_name #1~{ + \edef\file_name{#1} + \get_keyword +} +\def\get_keyword #1~{ + \if_defined{IFKW-#1}\then + \csname IFKW-#1 \expandafter\endcsname + \else + \fontinsterror{\string\install...}{ + `#1'~is~not~a~defined~keyword + }{ + \error_help_a\messagebreak + Extra~tokens~will~be~flushed. + } + \expandafter\gobble_keywords + \fi +} +\def\gobble_keywords#1\par{} +\x_cs\let{IFKW-}=\gobble_keywords +\x_cs\def{IFKW-scaled}#1~{ + \ifnum #1=\one_thousand + \unsetint{rawscale} + \else + \x_resetint{rawscale}{#1} + \fi + \get_keyword +} +\x_cs\def{IFKW-suffix}#1~{ + \def\glyph_name_modifier##1{##1#1} + \get_keyword +} +\x_cs\def{IFKW-encoding}#1~{ + \def\pl_encoding{#1} + \get_keyword +} +\let\pl_encoding=\empty_command +\x_cs\def{IFKW-option}#1~{ + \add_to\list_of_options{\do{#1}} +} +\def\ifoption#1\then{ + \_a_false + \edef\a_macro{#1} + \def\do##1{ + \if_a_ \else + \def\b_macro{##1} + \ifx \a_macro\b_macro \_a_true \fi + \fi + } + \list_of_options + \if_a_ +} +\let\list_of_options\empty_command +\def\fd_family#1#2#3{ + \a_toks{#3} + \edef\lowercase_file{\lowercase{ + \edef\noexpand\lowercase_file{#1#2.fd}}} + \lowercase_file + \open_out{\lowercase_file} + \out_line{\percent_char~Filename:~\lowercase_file} + \out_line{\percent_char~Created~by:~tex~\jobname} + \out_line{\percent_char~Created~using~fontinst~v\fontinstversion} + \out_line{} + \out_line{\percent_char~THIS~FILE~SHOULD~BE~PUT~IN~A~TEX~INPUTS~ + DIRECTORY} + \out_line{} + \out_line{\string\ProvidesFile{\lowercase_file}} + \out_lline{[ + \the\year/ + \ifnum10>\month0\fi\the\month/ + \ifnum10>\day0\fi\the\day\space + Fontinst~v\fontinstversion\space + font~definitions~for~#1/#2. + ]} + \out_line{} + \out_line{\string\DeclareFontFamily{#1}{#2}{\the\a_toks}} + { + \csname #1-#2\endcsname + \out_line{} + \let\do_shape=\substitute_shape + \csname #1-#2\endcsname + \let\do_shape=\remove_shape + \csname #1-#2\endcsname + } + \x_cs\g_let{#1-#2}\x_relax + \out_line{} + \out_line{\string\endinput} + \close_out{Font~definitions} +} +\def\fd_shape#1#2#3#4{ + \out_line{} + \out_line{\string\DeclareFontShape{#1}{#2}{#3}{#4}\left_brace_char} + \csname #1-#2-#3-#4\endcsname + \x_cs\g_let{#1-#2-#3-#4}\empty_command + \out_line{\right_brace_char{}} +} +\def\fd_size#1#2{ + \x_cs\ifx{siz-#1}\x_relax + \out_lline{#1~#2} + \else + \out_lline{\csname siz-#1\endcsname\space #2} + \fi +} +\def\remove_shape#1#2#3#4{ + \x_cs\g_let{#1-#2-#3-#4}\x_relax +} +\def\substitute_shape#1#2#3#4{ + \edef\orig_shape{#4} + \substitute_series{#1}{#2}{#3}{\orig_shape} + \x_cs\ifx{sub-\orig_shape}\x_relax\else + \edef\subst_shape{\csname sub-\orig_shape\endcsname} + \x_cs\ifx{#1-#2-#3-\subst_shape}\x_relax + \out_line{ + \string\DeclareFontShape{#1}{#2}{#3}{\subst_shape}{ + <->\csname typ-\orig_shape\endcsname\space + *~#2/#3/\orig_shape + }{} + } + \x_cs\let{#1-#2-#3-\subst_shape}\empty_command + \substitute_shape{#1}{#2}{#3}{\subst_shape} + \fi + \fi +} +\def\substitute_series#1#2#3#4{ + \edef\orig_series{#3} + \x_cs\ifx{sub-\orig_series}\x_relax\else + \edef\subst_series{\csname sub-\orig_series\endcsname} + \x_cs\ifx{#1-#2-\subst_series-#4}\x_relax + \out_line{ + \string\DeclareFontShape{#1}{#2}{\subst_series}{#4}{ + <->\csname typ-\orig_series\endcsname\space + *~#2/\orig_series/#4 + }{} + } + \x_cs\let{#1-#2-\subst_series-#4}\empty_command + \substitute_series{#1}{#2}{\subst_series}{#4} + \fi + \fi +} +\def\substitutesilent#1#2{ + \x_cs\def{sub-#2}{#1} + \x_cs\def{typ-#2}{ssub} +} +\def\substitutenoisy#1#2{ + \x_cs\def{sub-#2}{#1} + \x_cs\def{typ-#2}{sub} +} +\substitutesilent{bx}{b} +\substitutesilent{b}{bx} +\substitutesilent{b}{sb} +\substitutesilent{b}{db} +\substitutesilent{m}{mb} +\substitutesilent{m}{l} +\substitutenoisy{ui}{it} +\substitutesilent{sl}{it} +\substitutesilent{it}{sl} +\def\declareencoding#1#2{\x_cs\edef{enc-#1}{#2}} +\declareencoding{TEX~TEXT}{ot1} +\declareencoding{TEX~TEXT~WITHOUT~F-LIGATURES}{ot1} +\declareencoding{TEX~TYPEWRITER~TEXT}{ot1tt} +\declareencoding{TEX~MATH~ITALIC}{oml} +\declareencoding{TEX~MATH~SYMBOLS}{oms} +\declareencoding{TEX~MATH~EXTENSION}{omx} +\declareencoding{LATEX~SYMBOLS}{lasy} +\declareencoding{TEX~TEXT~SUBSET}{eufrak} +\declareencoding{TEX~MATH~ITALIC~SUBSET}{eurm} +\declareencoding{TEX~MATH~SYMBOLS~SUBSET}{euscr} +\declareencoding{EULER~SUBSTITUTIONS~ONLY}{euex} +\declareencoding{EXTENDED~TEX~FONT~ENCODING~-~LATIN}{t1} +\declareencoding{TEX~TEXT~COMPANION~SYMBOLS~1---TS1}{ts1} +\declareencoding{TEXBASE1ENCODING}{8r} +\declareencoding{TEX~TYPEWRITER~AND~WINDOWS~ANSI}{8y} +\def\declaresize#1#2{\x_cs\edef{siz-#1}{#2}} +\declaresize{}{<->} +\declaresize{5}{<5>} +\declaresize{6}{<6>} +\declaresize{7}{<7>} +\declaresize{8}{<8>} +\declaresize{9}{<9>} +\declaresize{10}{<10>} +\declaresize{11}{<10.95>} +\declaresize{12}{<12>} +\declaresize{14}{<14.4>} +\declaresize{17}{<17.28>} +\declaresize{20}{<20.74>} +\declaresize{25}{<24.88>} +\def\NOFILES{ + \def\transformfont##1##2{ + \touch_file{##1.mtx} + \touch_file{##1.pl} + } + \def\reglyphfont##1##2{\touch_file{##1.mtx}} + \def\installfonts{} + \def\endinstallfonts{} + \def\installfont##1##2##3##4##5##6##7##8{ + \touch_file{##1.vpl} + } + \def\installrawfont##1##2##3##4##5##6##7##8{ + \touch_file{##1.pl} + } + \def\installfamily##1##2##3{\touch_file{##1##2.fd}} +} +\def\touch_file#1{ + \edef\lowercase_file{\lowercase{ + \edef\noexpand\lowercase_file{#1}}} + \lowercase_file + \open_out{\lowercase_file} + \out_line{\percent_char~TEST~FILE.} + \out_line{\percent_char~Created~whilst~debugging~fontinst.} + \close_out{Test~file} +} +%%% From file: ficonv.dtx +\def\afmtomtx#1#2{{ + \let\setsomething_global=\x_relax + \open_out{\temp_prefix#2.mtx} + \edef\raw_font_name{#2} + \edef\source_font_name{#1} + \x_resetint{italicslant}{0} + \let\italcorr_expression=\uprightitalcorr + \x_setint{minimumkern}{0} + \minimum_kern=\int{minimumkern} + \out_line{\percent_char~Filename:~#2.mtx} + \out_line{\percent_char~Created~by:~tex~\jobname} + \out_line{\percent_char~Created~using:~\string\afmtomtx{#1}{#2}} + \out_line{} + \out_line{\percent_char~This~file~contains~the~ + information~of~#1.afm~in~a~form} + \out_line{\percent_char~more~easily~read~by~TeX.~ + It~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{} + \catcode`\^^M=12 + \catcode`\ =10 + \expandafter\afm_line\primitiveinput #1.afm\x_relax + \out_line{} + \out_line{\endmetrics_text} + \close_out{Metrics} +}} +\newcount\minimum_kern +\def\afm_length#1#2{ + \a_dimen=#2\afm_unit_dimen + #1=\a_dimen + \divide #1 by \afm_unit_dimen + \advance \a_dimen by -#1\afm_unit_dimen + \ifdim \a_dimen>0.5\afm_unit_dimen + \advance #1 by 1 + \else \ifdim \a_dimen<-0.5\afm_unit_dimen + \advance #1 by -1 + \fi\fi + \x_relax +} +\newdimen\afm_unit_dimen +\afm_unit_dimen=1000sp +{\catcode`\^^M=12 \gdef\afm_line#1 +{\afm_command#1~\end_of_line\afm_line}} +\def\afm_command#1~{\csname~afm-#1\endcsname\gobble_one_line} +\def\gobble_one_line#1\end_of_line{} +\x_cs\def{afm-EndFontMetrics}#1\afm_line{\endinput} +\def\afm_def#1(#2)#3{\x_cs\def{afm-#1} + \gobble_one_line#2\end_of_line{#3}} +\def\afm_let#1#2{ + \expandafter\let \csname afm-#1\expandafter\endcsname + \csname afm-#2\endcsname +} +\afm_def{CharWidth}(#1){\afm_length\char_x_width{#1}} +\afm_def{ItalicAngle}(#1~){\calculate_it_slant{#1}} +\afm_def{XHeight}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{xheight}{\the\a_count}}} +\afm_def{CapHeight}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{capheight}{\the\a_count}}} +\afm_def{Ascender}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{ascender}{\the\a_count}}} +\afm_def{Descender}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{descender_neg}{\the\a_count}}} +\afm_def{UnderlineThickness}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{underlinethickness}{\the\a_count}}} +\afm_def{FontBBox}(#1~#2~#3~#4){ + \afm_length\a_count{#4} + \out_line{\string\setint{maxheight}{\the\a_count}} + \afm_length\a_count{#2} + \out_line{\string\setint{maxdepth_neg}{\the\a_count}}} +\afm_def{StdVW}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{verticalstem}{\the\a_count}}} +\afm_def{IsFixedPitch}(#1){ + \if\first_char#1=f + \else\out_line{\string\setint{monowidth}{1}} + \fi +} +\afm_def{FontName}(#1~){ + \record_transform{\raw_font_name} + {\string\fromafm{\source_font_name}{#1}}{}\iftrue +} +\afm_def{KP}(#1~#2~#3~#4){ + \if\first_char#1=.\else + \if\first_char#2=.\else + \afm_length\a_count{#3} + \ifnum \a_count>\minimum_kern + \out_line{\string\setkern{#1}{#2}{\the\a_count}} + \else\ifnum \a_count<-\minimum_kern + \out_line{\string\setkern{#1}{#2}{\the\a_count}} + \fi\fi + \fi\fi +} +\afm_let{KPX}{KP} +\afm_def{C}(#1~;#2){\init_afm{#1}\do_list[#2]\afm_char} +\afm_let{CH}{C} +\afm_def{CC}(#1~#2~;#3){\init_cc{#1}\do_list[#3]\cc_char} +\newcount\char_slot +\newcount\char_x_width +\newcount\x_width +\newcount\bbox_llx +\newcount\bbox_lly +\newcount\bbox_urx +\newcount\bbox_ury +\let\char_name=\empty_command +\def\init_afm#1{ + \char_slot=#1\x_relax + \x_width=\char_x_width + \bbox_llx=0 + \bbox_lly=0 + \bbox_urx=0 + \bbox_ury=0 + \let\char_name=\empty_command +} +\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} + } +} +\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\uprightitalcorr#1#2#3#4#5{0} +\def\slanteditalcorr#1#2#3#4#5{\max{\sub{#3}{#1}}{0}} +\def\calculate_it_slant#1{ + \edef\theangle{#1} + \CalculateTan{\theangle} + \a_dimen=-\one_thousand sp + \a_dimen=\UseTan{\theangle}\a_dimen + \a_count=\a_dimen + \out_line{\string\setint{italicslant}{\the\a_count}} + \x_resetint{italicslant}{\a_count} + \ifnum 0<\a_count + \let\italcorr_expression=\slanteditalcorr + \else + \let\italcorr_expression=\uprightitalcorr + \fi +} +\def\do_list[~#1~#2;~#3]{ + \csname~list-#1\endcsname\gobble_one_semi#2; + \ifx\x_relax#3\x_relax\expandafter\gobble_one + \else\expandafter\identity_one\fi + {\do_list[~#3]} +} +\def\gobble_one_semi#1;{} +\def\list_def#1(#2)#3{\x_cs\def{list-#1}\gobble_one_semi#2~;{#3}} +\list_def{W}(#1~#2){\afm_length\x_width{#1}} +\list_def{WX}(#1){\afm_length\x_width{#1}} +\list_def{WY}(#1){} +\list_def{N}(#1){\def\char_name{#1}} +\list_def{B}(#1~#2~#3~#4){ + \afm_length\bbox_llx{#1} + \afm_length\bbox_lly{#2} + \afm_length\bbox_urx{#3} + \afm_length\bbox_ury{#4} +} +\list_def{PCC}(#1~#2~#3){ + \afm_length\a_count{#2} + \afm_length\b_count{#3} + \out_lline{\string\glyphpcc{#1}{\the\a_count}{\the\b_count}} +} +\def\generalpltomtx#1#2#3#4{{ + \let\setsomething_global=\x_relax + \let\setfontdimen=\pl_setfontdimen + \if _#4_ \else + \def\do_slot{\x_cs\let{name-\the\slot_number}\slot_name} + \def\do_boundary{\x_cs\let{name-BOUNDARYCHAR}\slot_name} + \inputetx{#4} + \let\CODINGSCHEME=\ignore_parens + \fi + \pl_to_mtx{#1}{#2}{#3}{\string\generalpltomtx{#1}{#2}{#3}{#4}} +}} +\def\pltomtx#1#2{\generalpltomtx{#1}{#2}{pl}{}} +\def\pl_to_mtx#1#2#3#4{ + \edef\raw_font_name{#1} + \open_out{\temp_prefix#2.mtx} + \out_line{\percent_char~Filename:~#2.mtx} + \out_line{\percent_char~Created~by:~tex~\jobname} + \out_line{\percent_char~Created~using:~#4} + \out_line{} + \out_line{\percent_char~This~file~contains~the~ + information~of~#1.#3~in~a~form} + \out_line{\percent_char~more~easily~read~by~TeX.~ + It~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{} + \lowercase{ + \record_transform{#2}{ + \string\from#3 \x_cs\ifx{from#3}\frompl {#1} \fi + }{}\iftrue + } + \out_line{} + \catcode`\(=0 \catcode`\)=9 + \let\/=\ignore_parens + \let\do_pl_glyph=\x_relax + \primitiveinput #1.#3\x_relax + \do_pl_glyph + \out_line{} + \ifisint{\percent_char boundarychar}\then + \f_count=\int{\percent_char boundarychar} + \x_cs\ifx{name-\the\f_count}\x_relax \else + \out_line{\string\setstr{rightboundary} + {\csname name-\the\f_count\endcsname} + } + \out_line{} + \fi + \fi + \out_line{\endmetrics_text} + \close_out{Metrics} +} +\def\ignore_parens{\bgroup\catcode`(=1 \catcode`)=2 \x_relax + \expandafter\expandafter\expandafter\gobble_parens + \iftrue\expandafter{\else}\fi} +\def\gobble_parens#1{\egroup} +\def\pl_real#1{\pl_realer(#1000)} +\def\pl_realer(#1.#2#3#4#5){#1#2#3#4} +\def\pl_rounded_real(#1.#2#3#4#5){ + \global\result=#1#2#3#4\relax + \ifnum \first_char#5= >4 + \global\advance \result + \if - \first_char#1= \m@ne \else \@ne \fi + \fi +} +\def\pl_int#1#2{ + \ifx#1C `#2 + \else\ifx#1D #2 + \else\ifx#1O '#2 + \else\ifx#1H "#2 + \else -1\errmessage{Unknown~PL~number~prefix~`#1'} + \fi\fi\fi\fi +} +\let\FAMILY=\ignore_parens +\let\FACE=\ignore_parens +\let\CHECKSUM=\ignore_parens +\def\HEADER~#1~#2~#3~#4~{} +\def\SEVENBITSAFEFLAG~#1~{} +\let\COMMENT=\ignore_parens +\let\LIG=\ignore_parens +\let\NEXTLARGER=\ignore_parens +\let\VARCHAR=\ignore_parens +\let\VTITLE=\ignore_parens +\let\MAPFONT=\ignore_parens +\let\MAP=\ignore_parens +\def\CODINGSCHEME{\bgroup\catcode`\)=12\x_relax\CODINGSCHEME_cont} +\def\CODINGSCHEME_cont#1){ + \egroup + \if_undefined{enc-#1}\then + \errhelp{The~encoding~for~`#1'~has~not~been~declared.^^J + You~should~declare~it~with~ + \string\declareencoding{#1}{ETXFILE}.^^J + Press~<RETURN>~to~carry~on~with~fingers~crossed,^^J + or~X~<RETURN>~to~exit.} + \errmessage{Undeclared~encoding~`#1'} + \else + \def\do_slot{\x_cs\let{name-\the\slot_number}\slot_name} + \def\do_boundary{\x_cs\let{name-BOUNDARYCHAR}\slot_name} + \catcode`\(=12 \catcode`\)=12 + \x_cs\inputetx{enc-#1}\x_relax + \catcode`\(=0 \catcode`\)=9 + \fi +} +\def\DESIGNSIZE~#1~#2~{ + \a_dimen=#2pt + \out_line{\string\setdim{designsize}{\the\a_dimen}} +} +\def\DESIGNUNITS~#1~#2~{ + \b_dimen=#2pt\x_relax + \ifdim 1pt=\b_dimen \else + \fontinsterror{PL-to-MTX}{Nondefault~unit~used~in~PL~file} + {You~may~continue,~but~the~metrics~for~this~font~will~be~wrong.} + \fi + \out_line{\string\setdim{designunits}{\the\b_dimen}} +} +\def\BOUNDARYCHAR~#1~#2~{ + \x_setint{\percent_char boundarychar}{\pl_int{#1}{#2}} +} +\def\pl_setfontdimen#1#2{\x_cs\def{fdimen-#1}{#2}} +\def\PARAMETER~#1~#2~R~#3~{ + \f_count=\pl_int{#1}{#2}\x_relax + \if_defined{fdimen-\the\f_count}\then + \pl_rounded_real(#3 0000) + \out_line{\string\setint{\csname fdimen-\the\f_count\endcsname} + {\the\result}} + \fi +} +\let\FONTDIMEN=\x_relax +\def\SLANT{\PARAMETER D~1~} +\pl_setfontdimen{1}{italicslant} +\def\SPACE{\PARAMETER D~2~} +\pl_setfontdimen{2}{interword} +\def\STRETCH{\PARAMETER D~3~} +\pl_setfontdimen{3}{stretchword} +\def\SHRINK{\PARAMETER D~4~} +\pl_setfontdimen{4}{shrinkword} +\def\XHEIGHT{\PARAMETER D~5~} +\pl_setfontdimen{5}{xheight} +\def\QUAD{\PARAMETER D~6~} +\pl_setfontdimen{6}{quad} +\def\EXTRASPACE{\PARAMETER D~7~} +\pl_setfontdimen{7}{extraspace} +\def\NUM#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~8~#2~#3~ + \or + \PARAMETER D~9~#2~#3~ + \or + \PARAMETER D~10~#2~#3~ + \fi +} +\def\DENOM#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~11~#2~#3~ + \or + \PARAMETER D~12~#2~#3~ + \fi +} +\def\SUP#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~13~#2~#3~ + \or + \PARAMETER D~14~#2~#3~ + \or + \PARAMETER D~15~#2~#3~ + \fi +} +\def\SUB#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~16~#2~#3~ + \or + \PARAMETER D~17~#2~#3~ + \fi +} +\def\SUPDROP{\PARAMETER D~18~} +\def\SUBDROP{\PARAMETER D~19~} +\def\AXISHEIGHT{\PARAMETER D~22~} +\def\DELIM#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~20~#2~#3~ + \or + \PARAMETER D~21~#2~#3~ + \fi +} +\def\DEFAULTRULETHICKNESS{\PARAMETER D~8~} +\def\BIGOPSPACING#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~9~#2~#3~ + \or + \PARAMETER D~10~#2~#3~ + \or + \PARAMETER D~11~#2~#3~ + \or + \PARAMETER D~12~#2~#3~ + \or + \PARAMETER D~13~#2~#3~ + \fi +} +\def\LABEL~#1{\ifx #1B + \expandafter\LABEL_boundarychar + \else + \expandafter\LABEL_slot \expandafter#1 + \fi +} +\def\LABEL_slot #1~#2~{ + \f_count=\pl_int{#1}{#2} + \edef\a_macro{\a_macro + \x_cs\do_if_defined{name-\the\f_count} + } +} +\def\LABEL_boundarychar OUNDARYCHAR{ + \edef\a_macro{\a_macro + \x_cs\do_if_defined{name-BOUNDARYCHAR} + } +} +\def\do_if_defined#1{\ifx #1\x_relax \else \do{#1} \fi} +\def\LIGTABLE{\let\do=\never_do\let\a_macro\empty_command} +\def\STOP{\let\a_macro\empty_command} +\def\SKIP~#1~#2~{\immediate\write16{Warning:~SKIP~instruction~ignored.}} +\def\KRN~#1~#2~R~#3~{ + \pl_rounded_real(#3 0000) + \edef\do{\noexpand\write_pl_krn{\pl_int{#1}{#2}}{\the\result}} + \a_macro + \let\do=\never_do +} +\def\write_pl_krn#1#2#3{ + \f_count=#1\x_relax + \x_cs\ifx{name-\the\f_count}\x_relax \else + \out_line{\string\setkern{#3} + {\csname name-\the\f_count\endcsname}{#2} + } + \fi +} +\def\CHARWD~R~#1~{\pl_rounded_real(#1 0000) \b_count=\result} +\def\CHARHT~R~#1~{\pl_rounded_real(#1 0000) \c_count=\result} +\def\CHARDP~R~#1~{\pl_rounded_real(#1 0000) \d_count=\result} +\def\CHARIC~R~#1~{\pl_rounded_real(#1 0000) \e_count=\result} +\def\CHARACTER~#1~#2~{ + \do_pl_glyph + \a_count=\pl_int{#1}{#2} + \b_count=0 + \c_count=0 + \d_count=0 + \e_count=0 + \let\do_pl_glyph=\write_pl_glyph +} +\def\write_pl_glyph{ + \x_cs\ifx{name-\the\a_count}\x_relax\else + \out_line{\string\setrawglyph + {\csname~name-\the\a_count\endcsname} + {\raw_font_name} + {\the\a_dimen} + {\the\a_count} + {\the\b_count} + {\the\c_count} + {\the\d_count} + {\the\e_count}} + \fi + } +\def\mtxtopl#1#2{{ + \let\setsomething_global=\x_relax + \open_out{#2.pl} + \top_of_pl_hook + \out_line{(COMMENT~raw~font~#2~created~by~fontinst~ + v\fontinstversion)} + \out_line{} + \out_line{(COMMENT~Filename:~#2.pl)} + \out_line{(COMMENT~Created~by:~tex~\jobname)} + \out_line{(COMMENT~Created~using:~\string\mtxtopl{#1}{#2})} + \out_line{} + \out_line{(COMMENT~This~file~can~be~turned~into~ + a~ligless~TeX~font~with)} + \out_line{(COMMENT~pltotfm~#2.pl~#2.tfm)} + \out_line{} + \out_line{(COMMENT~THIS~FILE~CAN~THEN~BE~DELETED.)} + \out_line{} + \out_line{(DESIGNSIZE~R~10.0)} + \out_line{} + \let\setglyph=\iffalse + \let\endsetglyph=\fi + \let\setkern=\gobble_three + \let\setscaledrawglyph=\first_pl_raw_glyph + \def\setscalednotglyph##1##2##3##4##5##6##7##8##9{} + \inputmtx{#1} + \out_line{} + \out_line{(COMMENT~END~OF~FILE~#2.pl)} + \close_out{Raw~font} +}} +\def\first_pl_raw_glyph#1#2#3#4{ + \out_line{(DESIGNUNITS~R~\make_factor{#4})} + \let\setscaledrawglyph=\pl_raw_glyph + \pl_raw_glyph{#1}{#2}{#3}{#4} +} +\def\pl_raw_glyph#1#2#3#4#5#6#7#8#9{ + \out_line{(CHARACTER~D~\number#5~\space(COMMENT~#1)} + \out_lline{(CHARWD~R~\make_factor{#6})} + \out_lline{(CHARHT~R~\make_factor{#7})} + \out_lline{(CHARDP~R~\make_factor{#8})} + \out_lline{(CHARIC~R~\make_factor{#9})} + \out_lline{)} +} +\def\transformfont#1#2{{ + \let\setsomething_global=\x_relax + \unsetstr{afm-name} + \unsetstr{etx-name} + \x_resetint{x-scale}{\one_thousand} + \x_resetint{y-scale}{\one_thousand} + \x_resetint{slant-scale}{0} + #2 + \ifisstr{afm-name}\then + \mtxtomtx{\str{afm-name}}{#1} + \mtxtopl{#1}{#1} + \else + \fontinsterror{Transformfont}{ + Failed~to~make~transformed~font~#1;\messagebreak + source~font~metrics~file~not~found + }\error_help_a + \fi +}} +\def\fromafm#1{ + \if_file_exists{#1.afm}\then + \x_setstr{afm-name}{#1} + \afmtomtx{#1}{#1} + \mtxtopl{#1}{#1} + \fi +} +\def\frommtx#1{ + \if_file_exists{#1.mtx}\then \x_setstr{afm-name}{#1} \fi +} +\def\frompl#1{ + \if_file_exists{#1.pl}\then + \x_setstr{afm-name}{#1} + \generalpltomtx{#1}{#1}{pl}{} + \fi +} +\def\fromplgivenetx#1#2{ + \if_file_exists{#1.pl}\then + \x_setstr{afm-name}{#1} + \generalpltomtx{#1}{#1}{pl}{#2} + \fi +} +\def\fromany#1{ + \x_cs\edef{s-afm-name}{#1} + \if_file_exists{#1.mtx}\then\else + \if_file_exists{#1.pl}\then + \generalpltomtx{#1}{#1}{pl}{} + \else + \if_file_exists{#1.afm}\then + \afmtomtx{#1}{#1} + \mtxtopl{#1}{#1} + \else + \if_file_exists{#1.vpl}\then + \generalpltomtx{#1}{#1}{vpl}{} + \else + \unsetstr{afm-name} + \fi\fi\fi\fi +} +\def\scalefont#1#2{ + \eval_expr_to\d_count{#1} + \x_resetint{x-scale}{\scale{\d_count}{\int{x-scale}}} + \x_resetint{y-scale}{\scale{\d_count}{\int{y-scale}}} + \x_resetint{slant-scale}{\scale{\d_count}{\int{slant-scale}}} + #2 +} +\def\xscalefont#1#2{ + \x_resetint{x-scale}{\scale{#1}{\int{x-scale}}} + #2 +} +\def\yscalefont#1#2{ + \eval_expr_to\d_count{#1} + \x_resetint{y-scale}{\scale{\d_count}{\int{y-scale}}} + \x_resetint{slant-scale}{\scale{\d_count}{\int{slant-scale}}} + #2 +} +\def\slantfont#1#2{ + \x_resetint{slant-scale}{ + \add{\scale{#1}{\int{x-scale}}}{\int{slant-scale}} + } + #2 +} +\def\reencodefont#1#2{ + #2 + \resetstr{etx-name}{#1} +} +\def\mtxtomtx#1#2{{ + \ifisstr{etx-name}\then + \def\do_slot{\x_cs\edef{slots-\slot_name}{\the\slot_number}} + \directfalse + \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{} + \mtxtomtx_redefinitions + \inputmtx{#1} + \out_line{} + \out_line{\endmetrics_text} + \close_out{Transformed~metrics} +}} +\def\mtxtomtx_redefinitions{ + \let\setint=\mtxtomtx_setint + \let\setdim=\mtxtomtx_setdim + \let\setstr=\mtxtomtx_setstr + \let\setscaledrawglyph=\mtxtomtx_setscaledrawglyph + \let\setscalednotglyph=\mtxtomtx_setscaledrawglyph + \let\setkern=\mtxtomtx_setkern + \let\setglyph=\mtxtomtx_setglyph + \let\glyphpcc=\mtxtomtx_glyphpcc + \let\samesize=\mtxtomtx_samesize + \let\endsetglyph=\mtxtomtx_endsetglyph + \def\aliased{\string\aliased} +} +\let\aliased=\second_of_two +\def\mtxtomtx_setint#1#2{ + \def\a_macro{#1} + \ifx \a_macro\italicslant_name + \eval_expr{#2} + \global\multiply \result \int{x-scale} + \a_count=\int{slant-scale} + \multiply \a_count \one_thousand + \advance \a_count \result + \divide \a_count \int{y-scale}\x_relax + \else + \def\do##1{ + \def\b_macro{##1} + \ifx \a_macro\b_macro \expandafter\if_false \fi + } + \gobble_one\iftrue \width_ints_list \if_true + \eval_expr_to\a_count{\scale{#2}{\int{y-scale}}} + \else + \eval_expr_to\a_count{\scale{#2}{\int{x-scale}}} + \fi + \fi + \out_line{\string\setint{#1}{\the\a_count}} +} +\def\italicslant_name{italicslant} +\def\width_ints_list{ + \do{interword}\do{stretchword}\do{shrinkword}\do{quad} + \do{extraspace}\do{digitwidth}\do{verticalstem} +} +\def\mtxtomtx_setdim#1#2{ + \out_line{\string\setdim{#1}{#2}} +} +\def\mtxtomtx_setstr#1#2{ + \out_line{\string\setstr{#1}{#2}} +} +\def\mtxtomtx_setscaledrawglyph#1#2#3#4#5#6#7#8#9{ + \eval_expr_to\a_count{\scale{#6}{\int{x-scale}}} + \eval_expr_to\b_count{\scale{#7}{\int{y-scale}}} + \eval_expr_to\c_count{\scale{#8}{\int{y-scale}}} + \eval_expr_to\d_count{#9} \eval_expr{#7} + \multiply \d_count \int{x-scale} + \global\multiply \result \int{slant-scale} + \global\advance \result \d_count + \rounded_thousandths + \d_count=\result + \eval_expr{\scale{#4}{\int{y-scale}}} + \ifisstr{etx-name}\then + \bgroup + \let\aliased=\first_of_two + \if_undefined{slots-#1}\then + \egroup \e_count=\m@ne + \else + \expandafter\egroup \expandafter\e_count + \csname slots-#1\endcsname + \fi + \else + \e_count=#5 + \fi + \out_line{ + \ifnum \e_count>\m@ne + \string\setscaledrawglyph + \else + \string\setscalednotglyph + \fi + {#1}{\raw_font_name}{#3}{\the\result}{\the\e_count} + {\the\a_count}{\the\b_count}{\the\c_count}{\the\d_count} + } +} +\def\mtxtomtx_setkern#1#2#3{ + \eval_expr{\scale{\int{x-scale}}{#3}} + \out_line{\string\setkern{#1}{#2}{\the\result}} +} +\def\mtxtomtx_setglyph#1{\out_line{\string\setglyph{#1}}} +\def\mtxtomtx_samesize#1{\out_lline{\string\samesize{#1}}} +\def\mtxtomtx_endsetglyph{\out_line{\string\endsetglyph}} +\def\mtxtomtx_glyphpcc#1#2#3{ + \eval_expr_to\b_count{\scale{\int{y-scale}}{#3}} + \eval_expr_to\a_count{#2} \eval_expr{#3} + \multiply \a_count \int{x-scale} + \global\multiply \result \int{slant-scale} + \global\advance \result \a_count + \rounded_thousandths + \out_lline{\string\glyphpcc{#1}{\the\result}{\the\b_count}} +} +\def\reglyphfonts{ + \begingroup + \let\setsomething_global=\x_relax + \x_setint{renameweight}{1} + \x_setint{killweight}{-10} + \setcommand\iftokeep##1\then{\ifnum -1<##1} +} +\def\endreglyphfonts{\endgroup} +\def\offmtxcommand#1{ + \x_cs\offcommand{reglyph_\expandafter\gobble_one\string#1} +} +\def\onmtxcommand#1{ + \x_cs\oncommand{reglyph_\expandafter\gobble_one\string#1} +} +\begingroup + \catcode`\-=11 + \gdef\renameglyph#1#2{ + \x_cs\edef{slots-#2}{ + \noexpand\rename_glyph{#1}\noexpand\i-renameweight + } + } +\endgroup +\def\renameglyphweighted#1#2#3{ + \eval_expr{#3} + \x_cs\edef{slots-#2}{\noexpand\rename_glyph{#1}{\the\result}} +} +\begingroup + \catcode`\-=11 + \gdef\killglyph#1{ + \x_cs\def{slots-#1}{\kill_glyph\i-killweight} + } +\endgroup +\def\killglyphweighted#1#2{ + \eval_expr{#2} + \x_cs\edef{slots-#1}{\noexpand\kill_glyph{\the\result}} +} +\def\reglyphfont#1#2{ + \fromany{#2} + \ifisstr{afm-name}\then + \reglyph_font{#1}{#2} + \else + \fontinsterror{Reglyph}{Could~not~find~font~metrics~for~#2.} + \error_help_a + \fi +} +\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{} + \reglyph_redefinitions + \inputmtx{#2} + \out_line{} + \out_line{\endmetrics_text} + \close_out{Reglyphed~metrics} +}} +\def\reglyph_redefinitions{ + \let\setint=\reglyph_setint + \let\setdim=\reglyph_setdim + \let\setstr=\reglyph_setstr + \let\setscaledrawglyph=\reglyph_setscaledrawglyph + \let\setscalednotglyph=\reglyph_setscaledrawglyph + \let\setkern=\reglyph_setkern + \let\setglyph=\reglyph_setglyph + \let\glyphpcc=\reglyph_glyphpcc + \let\samesize=\reglyph_samesize + \let\endsetglyph=\reglyph_endsetglyph +} +\def\reglyph_setint#1#2{\out_line{\string\setint{#1}{#2}}} +\def\reglyph_setdim#1#2{\out_line{\string\setdim{#1}{#2}}} +\def\reglyph_setstr#1#2{\out_line{\string\setstr{#1}{#2}}} +\newcount\command_survivance +\def\rename_glyph#1{\def\glyphname{#1}\kill_glyph} +\def\kill_glyph#1{\advance \command_survivance #1\x_relax} +\def\reglyph_setscaledrawglyph#1#2#3#4#5#6#7#8#9{ + \command_survivance=0 + \def\glyphname{#1} + \csname slots-#1\endcsname + \iftokeep\command_survivance\then + \out_line{ + \ifnum #5<\z@ + \string\setscalednotglyph + \else + \string\setscaledrawglyph + \fi + {\glyphname}{#2}{#3}{\number#4}{#5}{#6}{#7}{#8}{#9} + } + \fi +} +\def\reglyph_setkern#1#2#3{ + \command_survivance=0 + \def\glyphname{#1} + \csname slots-#1\endcsname + \let\a_macro=\glyphname + \def\glyphname{#2} + \csname slots-#2\endcsname + \iftokeep\command_survivance\then + \out_line{\string\setkern{\a_macro}{\glyphname}{#3}} + \fi +} +\def\reglyph_setglyph#1{ + \command_survivance=0 + \def\glyphname{#1} + \csname slots-#1\endcsname + \edef\a_macro{\noexpand\out_line{\string\setglyph{\glyphname}}} + \a_toks=\expandafter{\a_macro} +} +\x_cs\def{off-\string\reglyph_setglyph}#1{\gobble_glyph} +\def\reglyph_glyphpcc#1#2#3{ + \def\glyphname{#1} + \csname slots-#1\endcsname + \edef\a_macro{\noexpand\out_lline{ + \string\glyphpcc{\glyphname}{#2}{#3} + }} + \a_toks=\expandafter{\the\expandafter\a_toks \a_macro} +} +\def\reglyph_samesize#1{ + \def\glyphname{#1} + \csname slots-#1\endcsname + \edef\a_macro{\noexpand\out_lline{ + \string\samesize{\glyphname} + }} + \a_toks=\expandafter{\the\expandafter\a_toks \a_macro} +} +\def\reglyph_endsetglyph{ + \iftokeep\command_survivance\then + \the\a_toks + \out_line{\string\endsetglyph} + \fi + \a_toks={} +} +%%% From file: filtfam.dtx +\def\latinfamily#1#2{{ + \edef\a_macro{#1} + \expandafter\parse_family\a_macro + \empty_command\empty_command\end_parse_family + \installfonts + \if_file_exists{\raw_encoding.mtx}\then + \installfamily{\raw_encoding}{\latex_family}{#2} + \fi + \installfamily{OT1}{\latex_family}{#2} + \installfamily{T1}{\latex_family}{#2} + \installfamily{TS1}{\latex_family}{#2} + \latin_weights + \endinstallfonts +}} +\def\parse_family #1#2#3#4#5\end_parse_family{ + \gdef\font_family{#1#2#3} + \gdef\font_variant{#4#5} + \gdef\raw_variant{#4#5} + \gdef\latex_family{#1#2#3#4#5} + \_expert_false + \_oldstyle_false + \ifx#4x + \_expert_true + \gdef\raw_variant{#5} + \gdef\font_variant{#5} + %\setcommand\digit##1{##1} + \else\ifx#4j + \_expert_true + \_oldstyle_true + \gdef\raw_variant{#5} + \gdef\font_variant{#5} + %\setcommand\digit##1{##1oldstyle} + \else\ifx#49 + \gdef\latex_family{#1#2#3j#5} + \_expert_true + \_oldstyle_true + \gdef\raw_variant{#5} + \gdef\font_variant{#5} + %\setcommand\digit##1{##1oldstyle} + \else + \_expert_false + \_oldstyle_false + %\setcommand\digit##1{##1} + \fi\fi\fi + \if_oldstyle_ + \immediate\write16{INFO>~parse~family~<#1#2#3><#5>~(oldstyle)} + \else\if_expert_ + \immediate\write16{INFO>~parse~family~<#1#2#3><#5>~(expert)} + \else + \immediate\write16{INFO>~parse~family~<#1#2#3><#4#5>} + \fi\fi +} +\newif\if_expert_ +\newif\if_oldstyle_ +\def\latin_weight#1#2{ + \gdef\font_weight{#1}% + \gdef\latex_weight{#2}% + \latin_widths +} +\def\latin_width#1#2{ + \gdef\font_width{#1} + \gdef\latex_width{#2} + \latin_shapes +} +\def\latin_shape#1#2#3#4#5{ + \gdef\font_shape{#1} + \gdef\raw_shape{#2} + \gdef\encoding_shape{#3} + \if_oldstyle_ + \gdef\encoding_shape{#3\oldstyle_shape} + \fi + \gdef\latex_shape{#4} + \gdef\encoding_switches{#5} + \immediate\write16{ + INFO>~to~make~LaTeX~font~shape~<\latex_family, + \latex_weight,\latex_shape,\latex_width>~seek~ + \font_family\font_weight\raw_shape + \raw_variant\raw_encoding\font_width.mtx} + \csname fake_width_\font_width\endcsname + \csname fake_shape_\raw_shape\endcsname + \if_file_exists{ + \font_family\font_weight\raw_shape + \raw_variant\raw_encoding\font_width.mtx + }\then + \latin_encodings + \fi +} +\def\fake_shape_{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width.afm + }\then + \fake_shape_raw_encoding + \fi + \if_expert_ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width.afm + }\then + \fake_shape_expert_encoding + \fi + \fi +} +\def\fake_shape_raw_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width>~from~ + <\font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width> + } + \transformfont{ + \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width + }{ + \reencodefont{\raw_encoding}{ + \fromafm{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width + } + } + } + \if_file_exists{ \raw_encoding.mtx }\then + \immediate\write16{ + INFO>~run~\string\installrawfont\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width> + <\font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding> + <\raw_encoding> + <\raw_encoding> + <\latex_family> + <\latex_weight\latex_width> + <\latex_shape>} + \installrawfont{ + \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width + }{ \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding + }{ \raw_encoding + }{ \raw_encoding + }{ \latex_family + }{ \latex_weight\latex_width + }{ \latex_shape + }{} + \fi + \fi +} +\def\fake_shape_expert_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width.mtx + }\then % no action required + \else + \fromafm{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width + } + \fi +} +\def\fake_shape_c{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width.afm + }\then + \fake_shape_ + \else + % If real smallcaps font doesn't exist, fake it from the roman. + \gdef\raw_shape{} + \if_oldstyle_ + \gdef\encoding_shape{cj} + \else + \gdef\encoding_shape{c} + \fi + \fake_shape_ + \fi +} +\def\fake_shape_o{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width.afm + }\then + \fake_shape_ + \else + \fake_shape_o_raw_encoding + \if_expert_ + \fake_shape_o_expert_encoding + \fi + \fi +} +\def\fake_shape_o_raw_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_variant + \raw_encoding\font_width.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width>~from~ + <\font_family\font_weight\raw_variant + \raw_encoding\font_width>~(faking~oblique) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~oblique~font~ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + \space from~ + \font_family\font_weight\raw_variant + \raw_encoding\font_width + } + \transformfont{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + }{ + \slantfont{\SlantAmount}{ + \frommtx{ + \font_family\font_weight\raw_variant + \raw_encoding\font_width + } + } + } + \if_file_exists{ \raw_encoding.mtx }\then + \immediate\write16{ + INFO>~run~\string\installrawfont\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width> + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding> + <\raw_encoding> + <\raw_encoding> + <\latex_family> + <\latex_weight\latex_width> + <\latex_shape>} + \installrawfont{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + }{ \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding + }{ \raw_encoding + }{ \raw_encoding + }{ \latex_family + }{ \latex_weight\latex_width + }{ \latex_shape + }{} + \fi + \fi + \fi +} +\def\fake_shape_o_expert_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_variant + \expert_encoding\font_width.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width>~from~ + <\font_family\font_weight\raw_variant + \expert_encoding\font_width>~(faking~oblique) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~oblique~font~ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width + \space from~ + \font_family\font_weight\raw_variant + \expert_encoding\font_width + } + \transformfont{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width + }{ + \slantfont{\SlantAmount}{ + \frommtx{ + \font_family\font_weight\raw_variant + \expert_encoding\font_width + } + } + } + \fi + \fi +} +\let\fake_shape_i\fake_shape_ % We must do this again! +\newif\if_fake_narrow_ +\_fake_narrow_false +\def\fakenarrow#1{ + \_fake_narrow_true + \gdef\fake_narrow_width{#1} +} +\def\fake_width_{} +\def\fake_width_c{} +\def\fake_width_n{ + \if_fake_narrow_ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width.afm + }\then % no action required + \else + \fake_width_n_raw_encoding + \if_expert_ + \fake_width_n_expert_encoding + \fi + \fi + \fi +} +\def\fake_width_n_raw_encoding{ + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width>~from~ + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding>~(faking~narrow) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~narrow~font~ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + \space from~ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding + } + \transformfont{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + }{ + \xscalefont{\fake_narrow_width}{ + \frommtx{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding + } + } + } + \if_file_exists{ \raw_encoding.mtx }\then + \immediate\write16{ + INFO>~run~\string\installrawfont\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width> + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding> + <\raw_encoding> + <\raw_encoding> + <\latex_family> + <\latex_weight\latex_width> + <\latex_shape>} + \installrawfont{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + }{ \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding + }{ \raw_encoding + }{ \raw_encoding + }{ \latex_family + }{ \latex_weight\latex_width + }{ \latex_shape + }{} + \fi + \fi + \fi +} +\def\fake_width_n_expert_encoding{ + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width>~from~ + <\font_family\font_weight\font_shape\raw_variant + \expert_encoding>~(faking~narrow) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~narrow~font~ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width + \space from~ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding + } + \transformfont{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width + }{ + \xscalefont{\fake_narrow_width}{ + \frommtx{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding + } + } + } + \fi + \fi +} +\def\latin_encoding#1#2#3#4#5{ + \gdef\latex_encoding{#4} + \gdef\latex_mtx{#5} + \if_oldstyle_ + \gdef\font_encoding{#3} + \else\if_expert_ + \gdef\font_encoding{#2} + \else + \gdef\font_encoding{#1} + \fi\fi + \gdef\expert_font{} + \gdef\oldstyle_font{} + \if_expert_ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width.mtx + }\then + \gdef\expert_font{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width, + } + \fi + \fi + \immediate\write16{ + INFO>~run~\string\installfont\space + <\font_family\font_weight\font_shape\font_variant + \font_encoding\font_width> + <\font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width, + \if_oldstyle_ + \ifx\raw_shape\caps_shape + resetosf, + \fi + \fi + \expert_font + \oldstyle_font + \latex_mtx> + <\latex_encoding\encoding_shape> + <\latex_encoding> + <\latex_family> + <\latex_weight\latex_width> + <\latex_shape>} + \installfont{ + \font_family\font_weight\font_shape\font_variant + \font_encoding\font_width + }{ + \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width, + \if_oldstyle_ + \ifx\raw_shape\caps_shape + resetosf, + \fi + \fi + \expert_font + \oldstyle_font + \latex_mtx + }{ + \latex_encoding\encoding_shape + }{ + \latex_encoding + }{ + \latex_family + }{ + \latex_weight\latex_width + }{ + \latex_shape + }{} +} +\def\latin_weights{ + \latin_weight{r}{m} + \latin_weight{k}{m} + \latin_weight{b}{b} + \latin_weight{s}{sb} + \latin_weight{d}{db} % was {d}{sb}, SPQR changed + \latin_weight{m}{mb} % was {m}{m}, UV changed + \latin_weight{c}{eb} % UV added + \latin_weight{h}{eb} % UV added + \latin_weight{x}{eb} + \latin_weight{u}{ub} + \latin_weight{l}{l} + %\latin_weight{j}{el} + %\latin_weight{a}{ul} % UV added +} +\def\latin_widths{ + \latin_width{}{} + \latin_width{n}{c} + %latin_width{c}{c} + %latin_width{x}{x} +} +\def\latin_shapes{ + \latin_shape{} {} {} {n} {\_textcomp_true } + \latin_shape{c}{c}{} {sc}{\_textcomp_false} + \latin_shape{o}{o}{} {sl}{\_textcomp_true } + \latin_shape{i}{i}{i}{it}{\_textcomp_true } +} +\def\latin_encodings{ + \latin_encoding{7t}{9t}{9o}{OT1}{newlatin} + \latin_encoding{8t}{9e}{9d}{T1} {newlatin} + \encoding_switches + \if_textcomp_ + \latin_encoding{8c}{9c}{9c}{TS1}{textcomp} + \fi +} +\newif\if_textcomp_ + +\def\raw_encoding{8r} +\def\adobe_encoding{8a} +\def\expert_encoding{8x} + +\def\caps_shape{c} +\def\oldstyle_shape{j} +\def\SlantAmount{167} +%%% From file: fimapgen.dtx +\def\mapfrags_subsystem{Map~fragments~writer} +\def\recordtransforms#1{\open_pout\transform_record_file{#1}} +\def\endrecordtransforms{ + \close_pout\transform_record_file{Font~transformation~records} +} +\chardef\transform_record_file=\closed_stream +\let\storemapdata=\gobble_three +\def\record_transform#1#2#3#4{ + \ifnum \transform_record_file=\closed_stream \else + \pout_line\transform_record_file{\string\storemapdata{#1}{#2}{#3}} + \fi + #4 \out_line{\string\storemapdata{#1}{#2}{#3}} \fi +} +\def\record_usage#1{ + \ifnum \transform_record_file=\closed_stream \else + \pout_line\transform_record_file{\string\makemapentry{#1}} + \fi +} +%%% From file: fibasics.dtx +\def\needsfontinstversion#1{{ + \a_dimen=#1pt + \b_dimen=\fontinstversion~pt\x_relax + \ifnum\a_dimen>\b_dimen + \immediate\write16{} + \immediate\write16{Warning:~This~file~needs~fontinst~version~#1.} + \immediate\write16{Warning:~You~are~using~version~ + \fontinstversion.} + \immediate\write16{Warning:~This~may~cause~errors.} + \immediate\write16{} + \fi +}} +\if_file_exists{fontinst.rc}\then + \primitiveinput fontinst.rc +\else + \immediate\write16{No~file~fontinst.rc.} +\fi +\normalcc +\endinput +%% +%% End of file `fontinst.sty'. diff --git a/Master/texmf-dist/tex/fontinst/base/trig.sty b/Master/texmf-dist/tex/fontinst/base/trig.sty new file mode 100644 index 00000000000..ad856cdf070 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/base/trig.sty @@ -0,0 +1,99 @@ +%% +%% This is file `trig.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% trig.dtx (with options: `package') +%% +%% File: trig.dtx Copyright (C) 1993 1994 1995 1996 1997 1999 David Carlisle +%% +%% This file is part of the Standard LaTeX `Graphics Bundle'. +%% It may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{trig} + [1999/03/16 v1.09 sin cos tan (DPC)] +\chardef\nin@ty=90 +\chardef\@clxx=180 +\chardef\@lxxi=71 +\mathchardef\@mmmmlxviii=4068 +\chardef\@coeffz=72 +\chardef\@coefb=42 +\mathchardef\@coefc=840 +\mathchardef\@coefd=5040 +{\catcode`t=12\catcode`p=12\gdef\noPT#1pt{#1}} +\def\TG@rem@pt#1{\expandafter\noPT\the#1\space} +\def\TG@term#1{% + \dimen@\@tempb\dimen@ + \advance\dimen@ #1\p@} +\def\TG@series{% + \dimen@\@lxxi\dimen@ + \divide \dimen@ \@mmmmlxviii + \edef\@tempa{\TG@rem@pt\dimen@}% + \dimen@\@tempa\dimen@ + \edef\@tempb{\TG@rem@pt\dimen@}% + \divide\dimen@\@coeffz + \advance\dimen@\m@ne\p@ + \TG@term\@coefb + \TG@term{-\@coefc}% + \TG@term\@coefd + \dimen@\@tempa\dimen@ + \divide\dimen@ \@coefd} +\def\CalculateSin#1{{% + \expandafter\ifx\csname sin(\number#1)\endcsname\relax + \dimen@=#1\p@\TG@@sin + \expandafter\xdef\csname sin(\number#1)\endcsname + {\TG@rem@pt\dimen@}% + \fi}} +\def\CalculateCos#1{{% + \expandafter\ifx\csname cos(\number#1)\endcsname\relax + \dimen@=\nin@ty\p@ + \advance\dimen@-#1\p@ + \TG@@sin + \expandafter\xdef\csname cos(\number#1)\endcsname + {\TG@rem@pt\dimen@}% + \fi}} +\def\TG@reduce#1#2{% +\dimen@#1#2\nin@ty\p@ + \advance\dimen@#2-\@clxx\p@ + \dimen@-\dimen@ + \TG@@sin} +\def\TG@@sin{% + \ifdim\TG@reduce>+% + \else\ifdim\TG@reduce<-% + \else\TG@series\fi\fi}% +\def\UseSin#1{\csname sin(\number#1)\endcsname} +\def\UseCos#1{\csname cos(\number#1)\endcsname} +\chardef\z@num\z@ +\expandafter\let\csname sin(0)\endcsname\z@num +\expandafter\let\csname cos(0)\endcsname\@ne +\expandafter\let\csname sin(90)\endcsname\@ne +\expandafter\let\csname cos(90)\endcsname\z@num +\expandafter\let\csname sin(-90)\endcsname\m@ne +\expandafter\let\csname cos(-90)\endcsname\z@num +\expandafter\let\csname sin(180)\endcsname\z@num +\expandafter\let\csname cos(180)\endcsname\m@ne +\def\CalculateTan#1{{% + \expandafter\ifx\csname tan(\number#1)\endcsname\relax + \CalculateSin{#1}% + \CalculateCos{#1}% + \@tempdima\UseCos{#1}\p@ + \divide\@tempdima\@iv + \@tempdimb\UseSin{#1}\p@ + \@tempdimb\two@fourteen\@tempdimb + \divide\@tempdimb\@tempdima + \expandafter\xdef\csname tan(\number#1)\endcsname + {\TG@rem@pt\@tempdimb}% + \fi}} +\def\UseTan#1{\csname tan(\number#1)\endcsname} +\mathchardef\two@fourteen=16384 +\chardef\@iv=4 +\expandafter\def\csname tan(90)\endcsname{\errmessage{Infinite tan !}} +\expandafter\let\csname tan(-90)\expandafter\endcsname + \csname tan(90)\endcsname +\endinput +%% +%% End of file `trig.sty'. diff --git a/Master/texmf-dist/tex/fontinst/base/xfntinst.sty b/Master/texmf-dist/tex/fontinst/base/xfntinst.sty new file mode 100644 index 00000000000..c499ee37b4e --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/base/xfntinst.sty @@ -0,0 +1,3584 @@ +%% +%% This is file `xfntinst.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fibasics.dtx (with options: `pkg') +%% ficommon.dtx (with options: `pkg') +%% fimain.dtx (with options: `pkg') +%% ficonv.dtx (with options: `pkg') +%% filtfam.dtx (with options: `pkg,textcomp,debug,oldstyle') +%% fimapgen.dtx (with options: `pkg') +%% fibasics.dtx (with options: `pkg2') +%% +%% This is a generated file. +%% +%% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +%% hacked and maintained 1997, 1998 Sebastian Rahtz, +%% copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 the fontinst +%% maintenance team and any individual authors listed elsewhere in +%% this file. All rights reserved. +%% +%% This file is part of the fontinst system version 1.9. +%% ----------------------------------------------------- +%% +%% It may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.1 or, at your option, any later version. +%% +%%% From file: fibasics.dtx +\catcode`\{=1 +\catcode`\}=2 +\catcode`\#=6 +\catcode`\^=7 +\def\fontinstversion{1.927} +\ifx\ProvidesPackage\undefined + \def\NeedsTeXFormat#1{} + \def\ProvidesPackage#1[#2]{} +\fi +\ProvidesPackage{fontinst} +[2004/08/07 v\fontinstversion\space + fontinst installation package] +\def\a_macro#1{\catcode\number`#1=\the\catcode`#1 } +\edef\normalcc{% + \a_macro{\ }\a_macro{\^^M}\a_macro{\@}\a_macro{\_}\a_macro{\~} +} +\def\fontinstcc{% + \catcode`\ =9% + \catcode`\^^M=9% + \catcode`\@=11% + \catcode`\_=11% + \catcode`\~=10 +} +\fontinstcc +\ifx\@ne\undefined_command + \input fontinst.ini\relax +\fi +\ifx\bye\undefined_command + \def\supereject{\par\penalty-\@MM} + \outer\expandafter\def \csname bye\endcsname + {\par\vfill\supereject\@@end} +\fi +\newcount\a_count +\newcount\b_count +\newcount\c_count +\newcount\d_count +\newcount\e_count +\newcount\f_count +\newcount\g_count +\newdimen\a_dimen +\newdimen\b_dimen +\newdimen\c_dimen +\newdimen\d_dimen +\newtoks\a_toks +\newtoks\b_toks +\newtoks\c_toks +\newif\if_a_ +\newwrite\out_file +\mathchardef\one_thousand=1000 +\mathchardef\five_hundred=500 +\mathchardef\one_hundred=100 +\mathchardef\max_mathchardef="7FFF +\mathchardef\two_thousand=2000 +\newdimen\half_point \half_point=0.5pt +\let\@tempdima\a_dimen +\let\@tempdimb\b_dimen +\input trig.sty +\def\x_cs#1#2{\expandafter#1\csname#2\endcsname} +\let\x_relax=\relax +\def\g_let{\global\let} +\def\empty_command{} +\def\gobble_one#1{} +\def\gobble_two#1#2{} +\def\gobble_three#1#2#3{} +\def\identity_one#1{#1} +\def\first_of_two#1#2{#1} +\def\second_of_two#1#2{#2} +\def\swap_two#1#2{#2#1} +\def\first_of_three#1#2#3{#1} +\bgroup + \catcode`\[=1 + \catcode`\]=2 + \catcode`\#=12 + \catcode`\%=12 + \catcode`\{=12 + \catcode`\}=12 + \gdef\hash_char[#] + \gdef\percent_char[%] + \gdef\left_brace_char[{] + \gdef\right_brace_char[}] +\egroup +\def\first_char#1#2={#1} +\def\add_to#1#2{ + \ifx#1\x_relax + \def#1{#2} + \else + \expandafter\def\expandafter#1\expandafter{#1#2} + \fi +} +\def\prep_to#1#2{ + \ifx#1\x_relax + \expandafter\def\expandafter#1\expandafter{\expandafter#2} + \else + \expandafter\def\expandafter#1\expandafter{\expandafter#2#1} + \fi +} +\def\never_do{\noexpand\do} +\newif\if_extensions_warning_ +\_extensions_warning_false +\ifx \eTeXversion\undefined_command + \catcode`\~=14 % 14=comment +\fi +\def\eTeX#1{ + \if_extensions_warning_ + \space/\space e-TeX\space version\space #1 +~ \else +~ \ifdim \number\eTeXversion\eTeXrevision\p@ < #1\p@ \else +~ \_a_true +~ \fi + \fi +} +\catcode`\~=10 +\ifx \pdftexversion\undefined_command + \catcode`\~=14 % 14=comment +\fi +\def\pdfTeX#1#2{% + \if_extensions_warning_ + \space/\space pdfTeX\space version\space + \ifnum #1<100\space + 0.\ifnum #1<10\space 0\fi + \else + \expandafter\swap_two \expandafter. + \fi + #1#2% +~ \else +~ \ifdim #1>\pdftexversion \else +~ \ifnum \expandafter\expandafter \expandafter` +~ \expandafter\first_char \pdftexrevision= < +~ \expandafter` \first_char#2= +~ \else \_a_true \fi +~ \fi + \fi +} +\catcode`\~=10 +\def\needsTeXextension#1#2{ + \_a_false + #1 + \if_a_ \else + \_extensions_warning_true + \edef\a_macro{#1} + \_extensions_warning_false + \fontinstwarningnoline{#2}{ + This~file~needs:\messagebreak + \expandafter\second_of_two\a_macro + \iffalse + <no~sufficient~extensions~were~listed!!>\if_false + \fi + \messagebreak + You~are~not~using~any~of~them.~This~is~likely~to~cause~errors + } + \fi +} +\def\open_out#1{ + \immediate\openout\out_file=#1 \xdef\out_filename{#1}} +\def\close_out#1{ + \immediate\write16{#1~written~on~\out_filename.} + \immediate\closeout\out_file} +\def\out_line#1{\immediate\write\out_file{#1}} +\edef\out_lline#1{\noexpand\out_line{\space\space\space#1}} +\edef\out_llline#1{ + \noexpand\out_line{\space\space\space\space\space\space#1} +} +\def\TeX_terminal{\string\TeX\space terminal} +\chardef\closed_stream=99 +\x_cs\let{out_filename-99}=\TeX_terminal +\x_cs\def{out_filename--1}{\jobname.log} +\def\allocate_stream{ + \a_count=\m@ne + \b_count=\m@ne + \loop \ifnum \count17>\a_count + \advance \a_count \@ne + \x_cs\ifx{out_filename-\the\a_count}\TeX_terminal + \b_count=\a_count + \a_count=\count17 + \fi + \repeat + \ifnum \b_count=\m@ne + \global\advance\count17by\@ne + \ifnum \count17<\sixt@@n + \b_count=\count17 + \global\x_cs\let{out_filename-\the\b_count}\TeX_terminal + \wlog{\string\write\the\b_count\space allocated~to~the~pool.} + \else + \global\count17=\sixt@@n + \fi + \fi +} +\def\ch@ck#1#2#3{ + \ifnum \count1#1<#2 \else + \errmessage{No~room~for~a~new~#3} + \global\count1#1=#2 + \fi +} +\def\open_pout#1#2{ + \allocate_stream + \ifnum \b_count=\m@ne + \immediate\write\sixt@@n{fontinst~is~out~of~output~streams.^^J + Output~file~#2~cannot~be~opened.^^J + Writes~will~be~redirected~to~the~log~file. + } + \gdef#1{\m@ne} + \else + \immediate\openout\b_count=#2\x_relax + \x_cs\xdef{out_filename-\the\b_count}{#2} + \global\chardef#1=\b_count + \fi +} +\def\close_pout#1#2{ + \ifnum #1=\closed_stream + \errmessage{Output~file~\string#1~(#2)~not~closed,^^J + since~it~was~not~open} + \else + \immediate\write\sixt@@n{#2~written~on~ + \csname out_filename-\the#1\endcsname.} + \ifnum #1=\m@ne \else + \immediate\closeout#1 + \global\x_cs\let{out_filename-\the#1}=\TeX_terminal + \fi + \global\chardef#1=\closed_stream + \fi +} +\def\pout_line#1#2{\immediate\write#1{#2}} +\edef\pout_lline#1#2{\noexpand\pout_line#1{\space\space\space#2}} +\edef\pout_llline#1#2{ + \noexpand\pout_line#1{\space\space\space\space\space\space#2} +} +\def\tempfileprefix#1{\def\temp_prefix{#1}} +\tempfileprefix{} +\let\then=\iffalse +\def\if_false{\iffalse} +\def\if_true{\iftrue} +\_a_false\eTeX{2.0} +\if_a_\else \catcode`\~=14\x_relax \fi +~ \def\if_defined#1\then{ +~ \if +~ \ifcsname#1\endcsname +~ \expandafter\ifx \csname#1\endcsname \x_relax +~ 0 +~ \else +~ 1 +~ \fi +~ \else +~ 0 +~ \fi +~ 1 +~ } +~ \def\if_undefined{\expandafter\unless\if_defined} +\catcode`\~=\if_a_ 14 \else 10 \fi \x_relax +~ \def\if_defined#1\then{ +~ \expandafter\ifx \csname#1\endcsname\x_relax +~ \expandafter\if_false +~ \else +~ \expandafter\if_true +~ \fi +~ } +~ \def\if_undefined#1\then{ +~ \expandafter\ifx \csname#1\endcsname\x_relax +~ } +\catcode`\~=10\x_relax +\def\gobble_if{\iftrue\else} +\def\if_or#1\or_else#2\then{ + #1\then + \expandafter\if_true + \else + #2\then + \expandafter\expandafter\expandafter\if_true + \else + \expandafter\expandafter\expandafter\if_false + \fi + \fi +} +\def\if_equal#1\then{\ifx#1} +\def\if_file_exists#1\then{ + \immediate\openin1=#1\x_relax + \ifeof1\x_relax + \immediate\closein1 + \expandafter\if_false + \else + \immediate\closein1 + \expandafter\if_true + \fi +} +\let\Else=\else +\let\Fi=\fi +\x_cs\ifx{@@input}\x_relax + \let\primitiveinput=\input +\else + \let\primitiveinput=\@@input +\fi +\def\process_csep_list#1#2,{ + \ifx\process_csep_list#2 + \expandafter\gobble_one + \else + \expandafter\identity_one + \fi{ + #1{#2} + \process_csep_list{#1} + } +} +\def\make_factor#1{ + \ifnum #1<\z@ + -\expandafter\make_factor_i\expandafter{\number-#1} + \else + \expandafter\make_factor_i\expandafter{\number#1} + \fi +} +\def\make_factor_i#1{ + \ifnum #1<\one_thousand + \make_factor_ii{#1} + \else + \make_factor_iii #1 + \fi + #1 +} +\def\make_factor_ii#1{ + 0. + \ifnum #1<\one_hundred + 0 + \ifnum #1<10~ 0\fi + \fi +} +\def\make_factor_iii#1#2#3\fi#4{ + \fi + #4 + \ifnum 1#3<\one_thousand + . + \else + \make_factor_iii#2#3 + \fi +} +{ + \catcode`\p=12 + \catcode`\t=12 + \gdef\lose_measure#1pt{#1} +} +\let\messagebreak\x_relax +\def\generic_info#1#2{ + \begingroup + \def\messagebreak{^^J#1} + \immediate\write\m@ne{#2\on_line.} + \endgroup +} +\def\generic_warning#1#2{ + \begingroup + \def\messagebreak{^^J#1} + \immediate\write\closed_stream{^^J#2\on_line.^^J} + \endgroup +} +\def\generic_error#1#2#3#4{ + \begingroup + \immediate\write\closed_stream{} + \def\messagebreak{^^J} + \edef\a_macro{{#4}} + \errhelp\a_macro + \def\messagebreak{^^J#1} + \errmessage{#2.^^J^^J#3 + Type~\space H~<return>~\space for~immediate~help + } + \endgroup +} +\def\fontinsterror#1#2#3{ + \generic_error{ + \four_spaces\four_spaces + }{ + #1~error:\messagebreak #2 + }{ + }{#3} +} +\def\fontinstwarning#1#2{ + \generic_warning{ + \four_spaces\four_spaces + }{ + #1~warning:\messagebreak #2 + } +} +\def\fontinstwarningnoline#1#2{ + \fontinstwarning{#1}{#2\gobble_one} +} +\def\fontinstinfo#1#2{ + \generic_info{ + \four_spaces\four_spaces + }{ + #1~info:\messagebreak #2 + } +} +\def\on_line{~on~input~line~\the\inputlineno} +\edef\four_spaces{\space\space\space\space} +\gdef\error_help_a{ + Your~command~was~ignored.\messagebreak + Type~\space I~<command>~<return>~\space to~replace~it~ + with~another~command,\messagebreak + or~\space <return>~\space to~continue~without~it.} +\gdef\error_help_c{ + Try~typing~\space <return>~ + \space to~proceed.\messagebreak + If~that~doesn't~work,~type~\space X~<return>~\space to~quit.} +\gdef\error_help_d{ + You're~in~trouble~here.~\space\error_help_c} +\def\error_help_e#1{You~can~continue,~but~the~#1~wrong.} +\newlinechar=`\^^J +\errorcontextlines=999 +\tracinglostchars=1 +%%% From file: ficommon.dtx +\def\str#1{\csname~s-#1\endcsname} +\def\strint#1{\expandafter\identity_one\expandafter{\number\int{#1}}} +\newcount\result +\def\eval_expr#1{\global\result=#1\x_relax} +\def\eval_expr_to#1#2{\eval_expr{#2}#1=\result} +\def\g_eval_expr_to#1#2{\eval_expr{#2}\global#1=\result} +\def\add#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \global\advance \result \a_count + \egroup +} +\def\sub#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \advance \a_count -\result + \global\result=\a_count + \egroup +} +\def\int#1{\csname i-#1 \endcsname} +\def\neg#1{#1 \global\result=-\result} +\def\mul#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \global\multiply \result \a_count + \egroup +} +\def\div#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \divide \a_count \result + \global\result=\a_count + \egroup +} +\def\max#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \ifnum \a_count>\result \global\result=\a_count \fi + \egroup +} +\def\min#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \ifnum \a_count<\result \global\result=\a_count \fi + \egroup +} +\def\half#1{ + #1\x_relax + \ifodd\result + \global\advance \result \@ne + \global\divide \result \tw@ + \ifodd\result \global\advance \result \m@ne \fi + \else + \global\divide \result \tw@ + \fi +} +\def\otherhalf#1{ + #1\x_relax + \ifodd\result + \global\advance \result \@ne + \global\divide \result \tw@ + \ifodd\result \else \global\advance \result \m@ne \fi + \else + \global\divide \result \tw@ + \fi +} +\def\scale#1#2{ + #1 + \bgroup + \a_count=\result + \eval_expr{#2} + \global\multiply \result \a_count + \rounded_thousandths + \egroup +} +\def\rounded_thousandths{ + \global\divide \result \five_hundred + \ifodd \result + \global\advance \result by \ifnum 0>\result - \fi 1 + \fi + \global\divide \result \tw@ +} +\def\l_rounded_thousandths#1{ + \divide #1 \five_hundred + \ifodd #1 + \advance #1 by \ifnum 0>#1 - \fi\@ne + \fi + \divide #1 \tw@ +} +\def\l_inv_scale#1#2{ + \multiply #1 \two_thousand + \divide #1 #2\x_relax + \ifodd#1 \advance #1 \ifnum 0>#1 - \fi\@ne \fi + \divide #1 \tw@ +} +\def\ifnumber#1#2#3\then{ + \eval_expr_to\a_count{#1} + \eval_expr{#3} + \ifnum \a_count#2\result + \expandafter\if_true + \else + \expandafter\if_false + \fi +} + +\let\setsomething_global=\x_relax +\def\x_setint#1#2{ + \x_cs\ifx{i-#1}\x_relax + \x_resetint{#1}{#2} + \fi +} +\let\setint=\x_setint +\def\x_setstr#1#2{ + \x_cs\ifx{s-#1}\x_relax + \setsomething_global\x_cs\edef{s-#1}{#2} + \fi +} +\let\setstr=\x_setstr +\def\setdim#1#2{ + \x_cs\ifx{d-#1}\x_relax + \a_dimen=#2\x_relax + \setsomething_global\x_cs\edef{d-#1}{\the\a_dimen} + \fi +} +\def\setcommand#1{ + \ifx#1\undefined_command + \setsomething_global \expandafter\def \expandafter#1 + \else + \expandafter\def \expandafter\a_macro + \fi +} +\def\x_resetint#1#2{ + \eval_expr{#2} + \setsomething_global + \ifnum\result<\max_mathchardef + \ifnum 0>\result + \x_cs\edef{i-#1}{\the\result} + \else + \x_cs\mathchardef{i-#1}=\result + \fi + \else + \x_cs\edef{i-#1}{\the\result} + \fi +} +\let\resetint=\x_resetint +\def\resetstr#1#2{\setsomething_global\x_cs\edef{s-#1}{#2}} +\def\resetdim#1#2{ + \a_dimen=#2 + \setsomething_global\x_cs\edef{d-#1}{\the\a_dimen} +} +\def\resetcommand#1{\setsomething_global\def#1} +\def\dim#1{\csname~d-#1\endcsname} +\def\ifisint#1\then{\if_defined i-#1\then} +\def\ifisstr#1\then{\if_defined s-#1\then} +\def\ifisdim#1\then{\if_defined d-#1\then} +\def\ifiscommand#1\then{ + \ifx#1\undefined_command + \expandafter\if_false + \else + \expandafter\if_true + \fi +} +\def\unsetint#1{\setsomething_global\x_cs\let{i-#1}\x_relax} +\def\unsetstr#1{\setsomething_global\x_cs\let{s-#1}\x_relax} +\def\unsetdim#1{\setsomething_global\x_cs\let{d-#1}\x_relax} +\def\unsetcommand#1{\setsomething_global\let#1=\undefined_command} +\def\offcommand#1{ + \x_cs\ifx{saved-\string#1}\x_relax + \setsomething_global\x_cs\let{saved-\string#1}#1 + \x_cs\ifx{off-\string#1}\x_relax + \generate_off_command{#1} + \else + \setsomething_global \expandafter\let \expandafter#1 + \csname off-\string#1\endcsname + \fi + \fi +} +\def\oncommand#1{ + \x_cs\ifx{saved-\string#1}\x_relax \else + \setsomething_global \expandafter\let \expandafter#1 + \csname saved-\string#1\endcsname + \setsomething_global\x_cs\let{saved-\string#1}\x_relax + \fi +} +\def\generate_off_command#1{ + \a_count=0 + \let\next=\count_hashes + \expandafter\next\meaning#1~->\x_relax + \b_count=0 + \a_toks={} + \loop \ifnum \b_count<\a_count + \advance \b_count 1 + \a_toks=\expandafter{\the\expandafter\a_toks \expandafter#### + \the\b_count} + \repeat + \setsomething_global \expandafter\def \expandafter#1 \the\a_toks {} +} +\def\count_hashes#1#2{ + \if \hash_char#1 + \advance \a_count 1 + \else + \if -#1 + \if >#2 + \let\next=\gobble_to_xrelax + \fi\fi + \fi + \next#2 +} +\def\gobble_to_xrelax#1\x_relax{} +\def\for(#1)#2#3#4{ + \eval_expr_to\a_count{#2} + \x_resetint{#1}{\a_count} + \eval_expr{#4} + \ifnum 0=\result \else + \c_count=\result + \eval_expr_to\b_count{#3} + \setsomething_global\x_cs\edef{for-#1}{ + \the\c_count \x_relax + \noexpand\ifnum \gobble_one\fi + \the\b_count \ifnum 0>\c_count > \else < \fi + } + \def\next##1##2##3\endfor(#1){##2\for_i{##1}{##3}} + \next{#1} + \fi +} +\def\for_i#1#2{ + \setsomething_global\x_cs\def{body-#1}{#2} + \ifnum \b_count \ifnum0>\c_count >\else<\fi \a_count + \expandafter\gobble_two + \else + \csname body-#1 \expandafter\endcsname + \fi + \for_ii{#1} +} +\def\for_ii#1{ + \a_count=\int{#1} + \advance \a_count \csname for-#1\endcsname \a_count + \expandafter\gobble_two + \else + \x_resetint{#1}\a_count + \csname body-#1 \expandafter\endcsname + \fi + \for_ii{#1} +} +\def\endfor(#1){} +\def\foreach(#1)#2{ + \def\next##1\endfor(#1){ + \setsomething_global\x_cs\def{body-#1}{##1} + \process_csep_list{\foreach_i{#1}}#2,\process_csep_list, + } + \next +} +\def\foreach_i#1#2{ + \resetstr{#1}{#2} + \csname body-#1\endcsname +} +\let\comment=\gobble_one +\let\begincomment=\iffalse +\let\endcomment=\fi +%%% From file: fimain.dtx +\def\inputetx#1{ + \edef\lowercase_file{\lowercase{ + \edef\noexpand\lowercase_file{#1}}} + \lowercase_file + \slot_number=0 + \def\relax{\let\relax=\x_relax\iffalse} + \let\encoding=\fi + \primitiveinput \lowercase_file.etx\x_relax + \let\relax=\x_relax +} +\let\encoding=\relax +\outer\def\endencoding{\endinput} +\def\setslot#1{\edef\slot_name{#1}\do_slot} +\def\endsetslot{\end_do_slot\advance\slot_number by 1\x_relax} +\let\do_slot\empty_command +\let\end_do_slot\empty_command +\newcount\slot_number +\def\nextslot#1{\eval_expr_to\slot_number{#1}} +\def\skipslots#1{\eval_expr{#1} \advance\slot_number by \result} +\def\setleftboundary#1{\edef\slot_name{#1}\do_boundary} +\let\endsetleftboundary\x_relax +\let\do_boundary\x_relax +\def\setrightboundary#1{ + \makerightboundary{#1} + \advance \slot_number 1\x_relax +} +\let\ligature=\gobble_three +\def\Ligature{\ligature} +\def\oddligature#1#2#3#4{} +\let\nextlarger=\gobble_one +\let\usedas=\gobble_two +\let\makerightboundary=\gobble_one +\let\Unicode=\gobble_two +\let\varchar=\empty_command +\let\vartop=\gobble_one +\let\varmid=\gobble_one +\let\varbot=\gobble_one +\let\varrep=\gobble_one +\let\endvarchar=\empty_command +\let\useexamplefont=\gobble_one +\let\slotexample=\empty_command +\let\setslotcomment=\gobble_one +\let\resetslotcomment=\gobble_one +\let\unsetslotcomment=\empty_command +\def\setfontdimen#1#2{ + \ifisint{#2}\then \setint{fontdimen(#1)}{\int{#2}} \fi +} +\let\label=\gobble_one +\newif\ifdirect \directtrue +\def\input_mtx_as_etx#1{ + \def\setscaledrawglyph##1##2##3##4##5##6##7##8##9{ + \nextslot{##5} + \setslot{##1}\endsetslot + } + \offcommand\setscalednotglyph + \let\setglyph=\gobble_glyph + \offcommand\setkern + \inputmtx{#1} +} +\def\inputmtx#1{ + \def\relax{\let\relax=\x_relax\iffalse} + \let\metrics=\fi + \primitiveinput #1.mtx\x_relax + \let\relax=\x_relax +} +\let\metrics=\x_relax +\edef\endmetrics_text{\string\endmetrics} +\outer\def\endmetrics{\endinput} +\def\ProvidesMtxPackage#1{\x_cs\let{pack-#1}P} +\def\usemtxpackage{\futurelet\next_token\test_UseMtxPkg_arguments} +\def\test_UseMtxPkg_arguments{\ifx\next_token[ + \expandafter\mtx_package_given_file + \else + \expandafter\mtx_package_separate_files + \fi +} +\def\mtx_package_given_file[#1]#2{ + \_a_false + \process_csep_list\load_true_unless_loaded #2,\process_csep_list, + \if_a_ \inputmtx{#1} \fi +} +\def\load_true_unless_loaded#1{ + \x_cs\ifx{pack-#1}P\else\_a_true\fi +} +\def\mtx_package_separate_files#1{ + \process_csep_list\load_file_unless_loaded #1,\process_csep_list, +} +\def\load_file_unless_loaded#1{ + \x_cs\ifx{pack-#1}P\else \inputmtx{#1} \fi +} +\let\glyph_name_modifier=\identity_one +\def\setkern#1#2#3{ + \x_cs\ifx{i-rawscale}\x_relax + \expandafter\set_kern + \csname~r-\glyph_name_modifier{#1}\expandafter\endcsname + \csname~l-\glyph_name_modifier{#2}\endcsname + {#3} + \else + \expandafter\set_kern + \csname~r-\glyph_name_modifier{#1}\expandafter\endcsname + \csname~l-\glyph_name_modifier{#2}\endcsname + {\scale{#3}{\int{rawscale}}} + \fi +} +\def\set_kern#1#2#3{ + \eval_expr{#3} + \expandafter\set_kern_cs\csname\the\result\endcsname#1#2 +} +\def\set_kern_cs#1#2#3{ + \add_to#2{\k#3#1} + \add_to#3{\k#2#1} +} +\def\resetkern#1#2#3{ + \x_cs\ifx{i-rawscale}\x_relax + \expandafter\reset_kern + \csname~r-#1\expandafter\endcsname + \csname~l-#2\endcsname{#3} + \else + \expandafter\reset_kern + \csname~r-#1\expandafter\endcsname + \csname~l-#2\endcsname{\scale{#3}{\int{rawscale}}} + \fi +} +\def\reset_kern#1#2#3{ + \eval_expr{#3} + \expandafter\reset_kern_cs\csname\the\result\endcsname#1#2 +} +\def\reset_kern_cs#1#2#3{ + \prep_to#2{\k\expandafter#3\expandafter#1} + \prep_to#3{\k\expandafter#2\expandafter#1} +} +\def\setleftkerning#1#2#3{ + \eval_expr_to\b_count{#3} + \expandafter\set_kerning + \csname~l-#1\expandafter\endcsname + \csname~l-#2\endcsname +} +\def\setrightkerning#1#2#3{ + \eval_expr_to\b_count{#3} + \expandafter\set_kerning + \csname~r-#1\expandafter\endcsname + \csname~r-#2\endcsname +} +\def\setleftrightkerning#1#2#3{ + \eval_expr_to\b_count{#3} + \expandafter\set_kerning + \csname~l-#1\expandafter\endcsname + \csname~l-#2\endcsname + \expandafter\set_kerning + \csname~r-#1\expandafter\endcsname + \csname~r-#2\endcsname +} +\def\set_kerning#1#2{ + \if\b_count=\one_thousand + \def\k##1##2{ + \set_kern_cs##2##1#1 + } + \else + \def\k##1##2{ + \set_kern##1#1{ + \scale\b_count{\expandafter\gobble_one\string##2} + } + } + \fi + #2 +} +\def\kerning#1#2{0\x_relax + \def\k##1{\csname~set-\string##1\endcsname\gobble_one} + \bgroup + \x_cs\def{set-\string\l-#2}##1##2{ + \global\result=\expandafter\gobble_one\string##2\egroup + } + \csname~r-#1\endcsname + \csname~set-\string\l-#2\endcsname\gobble_one{00} +} +\def\ifiskern#1#2\then{ + \def\k##1##2{\ifx T##1 \let\k\gobble_two \fi} + \bgroup + \x_cs\let{l-#2}T + \csname r-#1\endcsname + \expandafter\egroup \ifx\k\gobble_two +} +\def\unsetkerns#1#2{ + \let\k\k_unless_to_U + \process_csep_list\make_slots_U#1,\process_csep_list, + \def\do##1{\x_cs\main_remove_Us{l-##1}} + \process_csep_list\do#2,\process_csep_list, + \process_csep_list\make_slots_relax#1,\process_csep_list, + \process_csep_list\make_slots_U#2,\process_csep_list, + \def\do##1{\x_cs\main_remove_Us{r-##1}} + \process_csep_list\do#1,\process_csep_list, + \process_csep_list\make_slots_relax#2,\process_csep_list, +} +\def\make_slots_U#1{\x_cs\let{slots-#1}U} +\def\make_slots_relax#1{\x_cs\let{slots-#1}\x_relax} +\def\k_unless_to_U#1#2{ + \x_cs\ifx{slots-\expandafter\gobble_three\string#1}U \else + \noexpand\k\noexpand#1\noexpand#2 + \fi +} +\def\main_remove_Us#1{ + \ifx#1\x_relax \else + \edef#1{#1} + \ifx#1\empty_command \let#1\x_relax \fi + \fi +} +\def\noleftkerning#1{\no_kerning{l}{#1}} +\def\norightkerning#1{\no_kerning{r}{#1}} +\def\noleftrightkerning#1{\no_kerning{l}{#1}\no_kerning{r}{#1}} +\def\no_kerning#1#2{ + \let\k\no_kerning_i + \def\do##1{\csname #1-##1\endcsname} + \bgroup + \aftergroup\def \aftergroup\a_macro \aftergroup{ + \process_csep_list\do #2,\process_csep_list, + \aftergroup} + \egroup + \def\do##1{\expandafter\let \csname #1-##1\endcsname \x_relax} + \process_csep_list\do #2,\process_csep_list, + \let\k\no_kerning_ii + \def\do##1{\edef##1{##1}} + \a_macro +} +\def\no_kerning_i#1#2{ + \ifx #1\x_relax \else + \aftergroup\do \aftergroup#1 + \let #1\x_relax + \fi +} +\def\no_kerning_ii#1#2{ + \ifx #1\x_relax \else \noexpand\k \noexpand#1 \noexpand#2 \fi +} +\def\width{\glyph_parameter\first_of_six} +\def\height{\glyph_parameter\second_of_six} +\def\depth{\glyph_parameter\third_of_six} +\def\italic{\glyph_parameter\fourth_of_six} +\def\mapcommands{\glyph_parameter\fifth_of_six} +\def\mapfonts{\glyph_parameter\sixth_of_six} +\def\glyph_parameter#1#2{ + \expandafter\expandafter\expandafter + #1\csname g-#2\endcsname +} +\def\first_of_six#1#2#3#4#5#6{#1} +\def\second_of_six#1#2#3#4#5#6{#2} +\def\third_of_six#1#2#3#4#5#6{#3} +\def\fourth_of_six#1#2#3#4#5#6{#4} +\def\fifth_of_six#1#2#3#4#5#6{#5} +\def\sixth_of_six#1#2#3#4#5#6{#6} +\def\glyph_metrics#1#2#3#4#5#6{ + \a_count=#1 + \b_count=#2 + \c_count=#3 + \d_count=#4~ +} +\let\saved_scale\x_relax +\let\saved_mapfont\x_relax +\let\saved_raw\x_relax +\let\saved_rule\x_relax +\let\saved_special\x_relax +\let\saved_warning\x_relax +\let\saved_movert\x_relax +\let\saved_moveup\x_relax +\let\saved_push\x_relax +\let\saved_pop\x_relax +\newcount\glyph_width +\newcount\glyph_height +\newcount\glyph_depth +\newcount\glyph_italic +\newtoks\glyph_map_commands +\newtoks\glyph_map_fonts +\newcount\glyph_voffset +\newcount\glyph_maxhpos +\def\setglyph#1{ + \ifisglyph{\glyph_name_modifier{#1}}\then + \expandafter\gobble_glyph + \else + \x_cs\def{g-\glyph_name_modifier{#1}}{ + {\the\glyph_width}{\the\glyph_height} + {\the\glyph_depth}{\the\glyph_italic} + {\the\glyph_map_commands}{\the\glyph_map_fonts} + } + \resetglyph{\glyph_name_modifier{#1}} + \fi +} +\long\def\gobble_glyph#1\endsetglyph{} +\def\resetglyph#1{ + \edef\glyphname{#1} + \glyph_width=0 + \global\glyph_height=0 + \global\glyph_depth=0 + \global\glyph_italic=0 + \glyph_voffset=0 + \global\glyph_maxhpos=0 + \global\glyph_map_commands={} + \global\glyph_map_fonts={} +} +\def\endsetglyph{ + \x_cs\edef{g-\glyphname} + {{\the\glyph_width}{\the\glyph_height} + {\the\glyph_depth}{\the\glyph_italic} + {\the\glyph_map_commands}{\the\glyph_map_fonts}} +} +\let\endresetglyph=\endsetglyph +\def\setrawglyph#1#2#3{ + \setscaledrawglyph{#1}{#2}{#3}\one_thousand +} +\def\setscaledrawglyph#1#2#3#4#5#6#7#8#9{ + \if_undefined{g-\glyph_name_modifier{#1}}\then + \eval_expr{#4} + \ifnum \result=\one_thousand + \let\a_macro\identity_one + \else + \edef\a_macro##1{\saved_scale{\the\result}{##1}} + \fi + \eval_expr_to\a_count{#6} + \eval_expr_to\b_count{#7} + \eval_expr_to\c_count{#8} + \eval_expr_to\d_count{#9} + \ifisint{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 + \edef\a_macro##1{\saved_scale{\the\e_count}{\a_macro{##1}}} + \fi + \x_cs\edef{g-\glyph_name_modifier{#1}}{ + {\the\a_count} + {\the\b_count} + {\the\c_count} + {\the\d_count} + {\a_macro{\saved_raw{#2}{#5}{#1}}} + {\a_macro{\saved_mapfont{#2}{#3}}} + } + \fi +} +\def\setnotglyph#1#2#3{ + \setscalednotglyph{#1}{#2}{#3}\one_thousand +} +\def\setscalednotglyph#1#2#3#4#5#6#7#8#9{ + \if_undefined{g-\glyph_name_modifier{#1}-not}\then + \eval_expr_to\a_count{#6} + \eval_expr_to\b_count{#7} + \eval_expr_to\c_count{#8} + \eval_expr_to\d_count{#9} + \ifisint{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{g-\glyph_name_modifier{#1}-not}{ + {\the\a_count} + {\the\b_count} + {\the\c_count} + {\the\d_count} + {}{} + } + \fi +} +\def\unsetglyph#1{\x_cs\let{g-#1}\x_relax} +\def\glyph#1#2{ + \glyph_parameter\glyph_metrics{#1} + \eval_expr_to\e_count{#2} + \ifnum \e_count=\one_thousand + \edef\a_macro{\mapcommands{#1}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } + \edef\a_macro{\mapfonts{#1}} + \else + \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 + \edef\a_macro{\saved_scale{\the\e_count}{\mapcommands{#1}}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } + \edef\a_macro{\saved_scale{\the\e_count}{\mapfonts{#1}}} + \fi + \advance \glyph_width \a_count + \advance \b_count \glyph_voffset + \ifnum \glyph_height<\b_count \global\glyph_height=\b_count \fi + \advance \c_count -\glyph_voffset + \ifnum \glyph_depth<\c_count \global\glyph_depth=\c_count \fi + \global\glyph_italic=\d_count + \global\glyph_map_fonts\expandafter{ + \the\expandafter\glyph_map_fonts \a_macro + } +} +\def\glyphrule#1#2{ + \eval_expr_to\b_count{#1} \eval_expr_to\c_count{#2} + \advance\glyph_width by \b_count + \g_eval_expr_to\glyph_depth{\max\glyph_depth{-\glyph_voffset}} + \g_eval_expr_to\glyph_height{ + \max\glyph_height{\add\glyph_voffset\c_count} + } + \global\glyph_italic=0 + \edef\a_macro{\saved_rule{\the\b_count}{\the\c_count}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } +} +\def\glyphspecial#1{ + \edef\a_macro{\saved_special{#1}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } +} +\def\glyphwarning#1{ + \edef\a_macro{\saved_warning{#1}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } +} +\def\movert#1{ + \eval_expr{#1} + \ifnum \glyph_maxhpos<\glyph_width + \global\glyph_maxhpos\glyph_width + \fi + \ifnum 0=\result \else + \advance\glyph_width by \result + \edef\a_macro{\saved_movert{\the\result}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } + \fi +} +\def\moveup#1{ + \eval_expr{#1} + \ifnum\result=0\else + \advance\glyph_voffset by \result + \edef\a_macro{\saved_moveup{\the\result}} + \global\glyph_map_commands\expandafter{ + \the\expandafter\glyph_map_commands \a_macro + } + \fi +} +\def\push{ + \bgroup + \global\glyph_map_commands\expandafter{ + \the\glyph_map_commands \saved_push + } +} +\def\pop{ + \ifnum \glyph_maxhpos<\glyph_width + \global\glyph_maxhpos\glyph_width + \fi + \egroup + \global\glyph_map_commands\expandafter{ + \the\glyph_map_commands \saved_pop + } +} +\def\resetwidth#1{\movert{\sub{#1}\glyph_width}} +\def\resetheight{\g_eval_expr_to\glyph_height} +\def\resetdepth{\g_eval_expr_to\glyph_depth} +\def\resetitalic{\g_eval_expr_to\glyph_italic} +\def\glyphpcc#1#2#3{ + \ifisglyph{\glyph_name_modifier{#1}}\then + \push + \movert{#2} + \moveup{#3} + \glyph{\glyph_name_modifier{#1}}{\one_thousand} + \pop + \else + \fontinsterror{\string\glyphpcc}{ + Base~glyph~not~set.\messagebreak + This~could~be~a~sign~that~the~AFM~file~is~buggy + }\error_help_a + \fi +} +\def\glyphbboxright{\max\glyph_width\glyph_maxhpos} +\def\samesize#1{ + \if_undefined{g-\glyph_name_modifier{#1}}\then + \resetwidth{\glyphbboxright} + \else + \expandafter\expandafter\expandafter + \same_size\csname g-\glyph_name_modifier{#1}\endcsname + \fi +} +\def\same_size#1#2#3#4#5#6{ + \movert{\sub{#1}\glyph_width} + \global\glyph_height=#2 + \global\glyph_depth=#3 + \global\glyph_italic=#4 +} +\def\ifisglyph#1\then{\if_defined{g-#1}\then} +\def\ifareglyphs#1\then{ + \process_csep_list{\if_is_glyph}#1,\process_csep_list, + \if_true +} +\def\if_is_glyph#1{ + \if_undefined{g-#1}\then \expandafter\if_false \fi +} +\def\etxtovpl#1#2{{ + \def\vpl_extension{vpl} + \def\vpl_title{COMMENT} + \def\vpl_font{virtual~font} + \def\vpl_Font{Virtual~font} + \def\vpl_call{\string\etxtovpl{#1}{#2}} + \def\vpl_to_vf##1{vptovf~##1.vpl~##1.vf~##1.tfm} + \a_toks={} + \process_csep_list\make_inputetx #1,\process_csep_list, + \expandafter\etx_to_font \expandafter{\the\a_toks}{#2} +}} +\def\etxtopl#1#2{{ + \def\vpl_extension{pl} + \def\vpl_title{COMMENT} + \def\vpl_font{font} + \def\vpl_Font{Font} + \def\vpl_call{\string\etxtopl{#1}{#2}} + \def\vpl_to_vf##1{pltotf~##1.pl~##1.tfm} + \_including_map_false + \global\rawfont_scaling=-\p@ + \a_toks={} + \process_csep_list\make_inputetx #1,\process_csep_list, + \expandafter\etx_to_font \expandafter{\the\a_toks}{#2} +}} +\newif\if_including_map_ +\_including_map_true +\def\make_inputetx#1{ + \def\a_macro{\noexpand\inputetx{\file_name}} + \get_file_name #1~{}~\par + \edef\a_macro{\a_macro} + \a_toks=\expandafter{ \the\expandafter\a_toks \a_macro} +} +\x_cs\def{IFKW-mtxasetx}{ + \def\a_macro{\noexpand\input_mtx_as_etx{\file_name}} + \get_keyword +} +\def\etx_to_font#1#2{ + \make_assignments{#1} + \open_out{#2.\vpl_extension} + \top_of_pl_hook + \out_line{(\vpl_title\space\vpl_font\space + #2~created~by~fontinst~v\fontinstversion)} + \out_line{} + \out_line{(COMMENT~Filename:~#2.\vpl_extension)} + \out_line{(COMMENT~Created~by:~tex~\jobname)} + \out_line{(COMMENT~Created~using:~\vpl_call)} + \out_line{} + \out_line{(COMMENT~This~file~can~be~turned~into~a~\vpl_font\space + with)} + \out_line{(COMMENT~\vpl_to_vf{#2})} + \out_line{} + \out_line{(COMMENT~THIS~FILE~CAN~THEN~BE~DELETED.)} + \out_line{} + \make_header{#1} + \if_including_map_ \make_mapfonts{#1} \fi + \make_fontdimens{#1} + \make_ligtable{#1} + \make_characters{#1} + \make_tidy{#1} + \out_line{} + \out_line{(COMMENT~END~OF~FILE~#2.\vpl_extension)} + \close_out{\vpl_Font} +} +\let\pre_first_etx_pass_hook\x_relax +\let\pre_second_etx_pass_hook\x_relax +\let\pre_third_etx_pass_hook\x_relax +\let\pre_fourth_etx_pass_hook\x_relax +\let\post_first_etx_pass_hook\x_relax +\let\post_second_etx_pass_hook\x_relax +\let\post_third_etx_pass_hook\x_relax +\let\post_fourth_etx_pass_hook\x_relax +\let\tidying_up_hook\x_relax +\let\top_of_pl_hook\x_relax +\def\make_assignments#1{ + \let\do_slot=\assign_slot + \let\end_do_slot=\end_assign_slot + \def\do_boundary{\bgroup + \let\makerightboundary=\bad_makerightboundary + } + \let\endsetleftboundary=\egroup + \let\makerightboundary=\assign_rboundary + \pre_first_etx_pass_hook + #1 + \post_first_etx_pass_hook + \let\end_do_slot=\empty_command + \let\do_boundary=\x_relax + \let\endsetleftboundary=\x_relax + \let\makerightboundary=\gobble_one +} +\def\assign_slot{\a_toks={\do}} +\begingroup + \catcode0=12 + \gdef\end_assign_slot{ + \ifisglyph\slot_name\then + \lccode0=\slot_number + \lowercase{ + \expandafter\add_to + \csname slots-\slot_name\expandafter\endcsname + \expandafter{\the\a_toks^^@} + } + \fi + } + \gdef\assign_rboundary#1{ + \lccode0=\slot_number + \lowercase{\x_cs\add_to{slots-#1}{\rboundary_do^^@}} + \x_setint{\percent_char boundarychar}\slot_number + \a_toks={\rbserver_do} + } +\endgroup +\def\bad_makerightboundary#1{ + \errhelp={The~left~boundary~is~not~a~slot,~so~it~cannot~serve~ + as~right~boundary.} + \errmessage{Incorrect~use~of~\string\makerightboundary} +} +\def\get_slot_num#1{ + \global\result=-1 + \bgroup + \def\do{\global\result=`} + \let\rbserver_do=\do + \let\rboundary_do=\gobble_one + \csname slots-#1\endcsname + \egroup +} +\def\ifisinslot#1#2\then{ + \ifx \makerightboundary\gobble_one + \eval_expr{#2} + \begingroup + \def\do##1{\ifnum `##1=\result \let\do=\gobble_one \fi} + \def\rbserver_do{\do} + \let\rboundary_do=\gobble_one + \csname slots-#1\endcsname + \expandafter\endgroup + \ifx \do\gobble_one + \expandafter\expandafter \expandafter\if_true + \else + \expandafter\expandafter \expandafter\if_false + \fi + \else + \expandafter\gobble_if + \fi +} +\newdimen\mapfont_scaling +\mapfont_scaling=1pt +\newdimen\rawfont_scaling +\def\vpl_real#1{R~\expandafter\lose_measure\the#1} +\def\vpl_int#1{D~\the#1} +\newdimen\side_bearings +\newdimen\curr_bearings +\def\make_header#1{ + \global\font_count=0 + \setdim{designsize}{10pt} + \a_dimen=\dim{designsize} + \out_line{(DESIGNSIZE~\vpl_real\a_dimen)} + \x_setstr{codingscheme}{UNKNOWN} + \out_line{(CODINGSCHEME~\str{codingscheme})} + \ifisint{\percent_char boundarychar}\then + \a_count=\int{\percent_char boundarychar} + \out_line{(BOUNDARYCHAR~\vpl_int\a_count)} + \fi + \x_setint{letterspacing}{0} + \side_bearings=\make_factor{\int{letterspacing}}\half_point + \x_setint{minimumkern}{0} + \minimum_kern=\int{minimumkern} + \out_line{} +} +\def\make_mapfonts#1{ + \let\saved_scale\vpl_scale + \let\saved_mapfont\vpl_mapfont + \let\do_slot=\do_mapfont + \pre_second_etx_pass_hook + #1 + \post_second_etx_pass_hook + \out_line{} +} +\def\do_mapfont{ + \ifisglyph\slot_name\then + \mapfonts\slot_name + \fi +} +\def\vpl_scale#1#2{{ + \mapfont_scaling=\make_factor{#1}\mapfont_scaling + #2 +}} +\def\vpl_mapfont#1#2{ + \a_dimen=#2 + \if_undefined{\the\mapfont_scaling-#1}\then + \global\x_cs\mathchardef{\the\mapfont_scaling-#1}=\font_count + \x_cs\xdef{f-\the\font_count}{\the\mapfont_scaling-#1} + \out_line{(MAPFONT~\vpl_int\font_count\space + (FONTNAME~#1)~ + (FONTDSIZE~\vpl_real\a_dimen)~ + (FONTAT~\vpl_real\mapfont_scaling))} + \record_usage{#1} + \global\advance\font_count by 1 + \fi +} +\def\pl_mapfont#1#2{\global\rawfont_scaling=\mapfont_scaling} +\newcount\font_count +\newcount\next_mapfont +\newcount\prev_mapfont +\def\make_fontdimens#1{ + \out_line{(FONTDIMEN} + \a_count=1 + \loop\ifnum 256>\a_count + \ifisint{fontdimen(\the\a_count)}\then + \out_lline{(PARAMETER~\vpl_int\a_count\space + R~\make_factor{\int{fontdimen(\the\a_count)}})} + \fi + \advance \a_count \@ne + \repeat + \out_lline{)} + \out_line{} +} +\def\make_ligtable#1{ + \begingroup + \out_line{(LIGTABLE} + \let\do_slot=\bgroup + \let\end_do_slot=\vpl_kerning + \def\do_boundary{\bgroup \let\vpl_liglabel=\boundary_liglabel} + \let\endsetleftboundary=\vpl_kerning + \let\ligature=\vpl_ligature + \let\k=\vpl_kern + \let\rbserver_do=\vpl_rbserver_do + \let\rboundary_do=\vpl_rboundary_do + \pre_third_etx_pass_hook + #1 + \post_third_etx_pass_hook + \out_lline{)} + \endgroup + \out_line{} +} +\def\vpl_rbserver_do#1{ + \do{#1} + \let\rboundary_do=\wrn_rboundary_do +} +\def\vpl_rboundary_do#1{ + \do{#1} + \let\rbserver_do=\wrn_rboundary_do +} +\def\wrn_rboundary_do#1{ + \do{#1} + \immediate\write16{Boundarychar~slot~usage~collision~in~ + `\slot_name'~ligkern~program.} +} +\def\vpl_ligature#1#2#3{ + \get_slot_num{#3} + \ifnum -1=\result + \immediate\write16{Warning:~\string\ligature\space + for~unknown~slot~`#3'.} + \else + \x_cs\ifx{slots-#2}\x_relax + \immediate\write16{Warning:~\string\ligature\space + for~unknown~slot~`#2'.} + \else + \def\do##1{ + \vpl_liglabel + \out_lline{(#1~D~\number`##1~\space\vpl_int\result)~ + (COMMENT~#2~#3)} + } + \csname slots-#2\endcsname + \fi + \fi +} +\def\vpl_kerning{ + \let\do=\vpl_kern_do + \csname~r-\slot_name\endcsname + \vpl_ligstop + \egroup +} +\def\vpl_kern#1#2{ + \edef\a_macro{\expandafter\gobble_three\string#1} + \a_count=\expandafter\gobble_one\string#2\x_relax + \ifnum \ifnum -\a_count>\a_count - \fi\a_count>\minimum_kern + \edef\b_macro{~R~\make_factor\a_count} + \csname slots-\a_macro\endcsname + \fi + \x_cs\let{slots-\a_macro}=\x_relax +} +\def\vpl_kern_do#1{ + \vpl_liglabel + \out_lline{ + (KRN~D~\number`#1~\b_macro)~ + (COMMENT~\a_macro) + } +} +\def\out_liglabel{ + \out_lline{(LABEL~\vpl_int\slot_number)~(COMMENT~\slot_name)} + \let\vpl_liglabel=\x_relax + \let\vpl_ligstop=\out_ligstop +} +\def\boundary_liglabel{ + \out_lline{(LABEL~BOUNDARYCHAR)~(COMMENT~\slot_name)} + \let\vpl_liglabel=\x_relax + \let\vpl_ligstop=\out_ligstop +} +\let\vpl_liglabel=\out_liglabel +\def\out_ligstop{\out_lline{(STOP)} + \let\vpl_liglabel=\out_liglabel + \let\vpl_ligstop=\x_relax} +\let\vpl_ligstop=\x_relax +\def\make_characters#1{ + \bgroup + \let\do_slot=\do_character + \let\end_do_slot=\end_do_character + \let\nextlarger=\vpl_nextlarger + \let\varchar=\vpl_varchar + \let\endvarchar=\end_vpl_varchar + \let\vartop=\vpl_vartop + \let\varmid=\vpl_varmid + \let\varbot=\vpl_varbot + \let\varrep=\vpl_varrep + \if_including_map_ + \let\saved_raw\vpl_raw + \let\saved_rule\vpl_rule + \let\saved_special\vpl_special + \let\saved_warning\vpl_warning + \let\saved_movert\vpl_movert + \let\saved_moveup\vpl_moveup + \let\saved_push\vpl_push + \let\saved_pop\vpl_pop + \else + \def\do_character_map{ + \ifdim \rawfont_scaling=-\p@ + \mapfonts\slot_name + \else + \let\do_character_map=\x_relax + \fi + } + \let\saved_mapfont\pl_mapfont + \let\saved_scale\vpl_scale + \fi + \pre_fourth_etx_pass_hook + #1 + \post_fourth_etx_pass_hook + \egroup +} +\def\do_character{ + \if_undefined{g-\slot_name}\then + \ifisint{requireglyphs}\then + \fontinstwarning{ETX~to~(V)PL}{ + Undefined~glyph~`\slot_name'~requested\message_break + for~slot~\the\slot_number\message_number} + \fi + \expandafter\gobble_setslot + \else + \ifx\slot_name\notdef_name\else + \out_line{(CHARACTER~\vpl_int\slot_number\space + (COMMENT~\slot_name)} + \glyph_parameter\glyph_metrics\slot_name + \a_dimen=\make_factor\a_count \p@ + \do_character_sidebearings + \out_lline{(CHARWD~\vpl_real\a_dimen)} + \ifnum \z@=\b_count \else + \out_lline{(CHARHT~R~\make_factor\b_count)} + \fi + \ifnum \z@=\c_count \else + \out_lline{(CHARDP~R~\make_factor\c_count)} + \fi + \ifnum \z@=\d_count \else + \out_lline{(CHARIC~R~\make_factor\d_count)} + \fi + \do_character_map + \fi + \fi +} +\def\do_character_sidebearings{ + \ifisint{\slot_name-spacing}\then + \curr_bearings=\make_factor{\int{\slot_name-spacing}}\half_point + \else + \curr_bearings=\side_bearings + \fi + \advance\a_dimen by 2\curr_bearings +} +\def\do_character_map{ + \global\prev_mapfont=0 + \out_lline{(MAP} + \ifdim 0pt=\curr_bearings + \mapcommands\slot_name + \else + \out_llline{(MOVERIGHT~\vpl_real\curr_bearings)} + \mapcommands\slot_name + \out_llline{(MOVERIGHT~\vpl_real\curr_bearings)} + \fi + \out_llline{)} +} +\long\def\gobble_setslot#1\endsetslot{\endsetslot} +\def\end_do_character{ + \ifisglyph\slot_name\then + \out_lline{)} + \fi +} +\def\notdef_name{.notdef} +\def\vpl_nextlarger#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_lline{(NEXTLARGER~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\nextlarger\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_varchar{\out_lline{(VARCHAR}} +\def\end_vpl_varchar{\out_llline{)}} +\def\vpl_vartop#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_llline{(TOP~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\vartop\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_varmid#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_llline{(MID~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\varmid\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_varbot#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_llline{(BOT~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\varbot\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_varrep#1{ + \get_slot_num{#1} + \ifnum -1<\result + \out_llline{(REP~D~\the\result)~(COMMENT~#1)} + \else + \immediate\write16{Warning:~\string\varrep\space + for~unknown~slot~`#1'} + \fi +} +\def\vpl_raw#1#2#3{ + \global\next_mapfont=\csname\the\mapfont_scaling-#1\endcsname + \ifnum \next_mapfont=\prev_mapfont \else + \out_llline{(SELECTFONT~\vpl_int\next_mapfont)~ + (COMMENT~#1~at~ + \expandafter\lose_measure \the\mapfont_scaling)} + \fi + \out_llline{(SETCHAR~D~#2)~(COMMENT~#3)} + \global\prev_mapfont=\next_mapfont +} +\def\vpl_rule#1#2{ + \a_dimen=\make_factor{#2}\mapfont_scaling + \b_dimen=\make_factor{#1}\mapfont_scaling + \out_llline{(SETRULE~\vpl_real\a_dimen\space\vpl_real\b_dimen)} +} +\def\vpl_special#1{ + \out_llline{(SPECIAL~#1)}} +\def\vpl_warning#1{ + \ifwarningspecials + \out_llline{(SPECIAL~Warning:~#1)} + \fi + \immediate\write16{Warning:~#1.} +} +\newif\ifwarningspecials +\warningspecialstrue +\def\vpl_movert#1{ + \a_dimen=\make_factor{#1}\mapfont_scaling + \out_llline{(MOVERIGHT~\vpl_real\a_dimen)} +} +\def\vpl_moveup#1{ + \a_dimen=\make_factor{#1}\mapfont_scaling + \out_llline{(MOVEUP~\vpl_real\a_dimen)} +} +\def\vpl_push{\out_llline{(PUSH)}} +\def\vpl_pop{\out_llline{(POP)}} +\def\make_tidy#1{ + \tidying_up_hook + \if_including_map_ + \a_count=0 + \loop\ifnum \a_count<\font_count + \edef\a_macro{\csname~f-\the\a_count\endcsname} + \global\x_cs\let\a_macro\x_relax + \advance\a_count by 1 + \repeat + \global\font_count=0 + \else + \ifdim \rawfont_scaling<\z@ + \fontinstwarning{ETX~to~(V)PL}{The~font~ + \out_filename\space doesn't~contain~any~characters} + \global\rawfont_scaling=\p@ + \fi + \ifdim \rawfont_scaling=\p@ \else + \out_line{(DESIGNUNITS~\vpl_real\rawfont_scaling)} + \fi + \fi +} +\newtoks\family_toks +\def\installfonts{ + \bgroup + \global\family_toks={} + \gdef\prev_file_list{} + \global\let\setsomething_global=\global +} +\def\installfamily#1#2#3{ + \global\family_toks= + \expandafter{\the\family_toks\fd_family{#1}{#2}{#3}} + \global\x_cs\let{#1-#2}\empty_command +} +\def\installfont#1#2#3#4#5#6#7#8{ + \global\let\setsomething_global=\x_relax + \input_metrics{}{#2} + \etxtovpl{#3}{#1} + \installfontas{#1}{#4}{#5}{#6}{#7}{#8} + \global\let\setsomething_global=\global +} +\def\installrawfont#1#2#3#4#5#6#7#8{ + \global\let\setsomething_global=\x_relax + \xdef\out_filename{#1} + \input_metrics{\let\storemapdata=\installraw_storemap}{#2} + \let\storemapdata=\gobble_three + \etxtopl{#3}{#1} + \record_usage{#1} + \installfontas{ + \ifdim \rawfont_scaling=\p@ \else + [\expandafter\lose_measure\the\rawfont_scaling]~ + \fi #1 + }{#4}{#5}{#6}{#7}{#8} + \global\let\setsomething_global=\global +} +\def\installraw_storemap#1#2#3{ + \def\a_macro{#1} + \ifx \a_macro\out_filename \else + \record_transform{\out_filename}{\string\frommtx{#1}}{}\if_false + \fi +} +\def\input_metrics#1#2{ + \let\metrics=\file_list_metrics + \xdef\curr_file_list{#2,} + \let\metrics=\x_relax + \ifx\prev_file_list\curr_file_list\else + \egroup\bgroup + #1 + \expandafter\process_csep_list \expandafter\input_mtx_file + \curr_file_list\process_csep_list, + \global\let\prev_file_list=\curr_file_list + \fi +} +\def\file_list_metrics#1,{ + \iffalse{\fi} + \a_toks=\expandafter{\curr_file_list\x_relax#1,} + \xdef\curr_file_list{\the\a_toks \iffalse}\fi +} +\def\installfontas#1#2#3#4#5#6{ + \if_undefined{#2-#3-#4-#5}\then + \let\do_shape=\x_relax + \if_undefined{#2-#3}\then + \x_cs\let{#2-#3}\empty_command + \autoinstallfamily{#2}{#3} + \fi + \x_cs\xdef{#2-#3}{ + \csname#2-#3\endcsname + \do_shape{#2}{#3}{#4}{#5} + } + \fi + \let\do_size=\x_relax + \x_cs\xdef{#2-#3-#4-#5}{ + \if_defined{#2-#3-#4-#5}\then + \csname#2-#3-#4-#5\endcsname + \fi + \do_size{#6}{#1} + } +} +\def\autoinstallfamily#1#2{\installfamily{#1}{#2}{}} +\def\endinstallfonts{ + \global\let\setsomething_global=\x_relax + \let\do_shape=\fd_shape + \let\do_size=\fd_size + \the\family_toks + \global\family_toks{} + \egroup +} +\def\input_mtx_file#1{ + \reset_modifiers_hook + \ifx\x_relax#1\x_relax + \else + \identity_one{\get_file_name #1~}~\par + \ifx \pl_encoding\empty_command + \fromany\file_name + \else + \metrics_given_encoding{\file_name}{\pl_encoding} + \fi + \ifisstr{afm-name}\then + \inputmtx{\str{afm-name}} + \else + \fontinsterror{\string\install...}{ + Font/MTX~file~\file_name\space not found + }{ + You~can~insert~an~\string\inputmtx\space command~here + \messagebreak to~input~some~other~MTX~file~instead. + \ifisint{rawscale}\then \messagebreak + The~requested~raw~scaling~will~then~be~applied~on~that. + \fi + } + \fi + \fi +} +\def\metrics_given_encoding#1#2{ + \x_setstr{afm-name}{#1-#2} + \if_file_exists{#1.pl}\then + \generalpltomtx{#1}{#1-#2}{pl}{#2} + \else + \if_file_exists{#1.vpl}\then + \generalpltomtx{#1}{#1-#2}{vpl}{#2} + \else + \unsetstr{afm-name} + \fi\fi +} +\def\reset_modifiers_hook{ + \unsetint{rawscale} + \let\glyph_name_modifier\identity_one + \let\pl_encoding\empty_command + \let\list_of_options\empty_command +} +\def\get_file_name #1~{ + \edef\file_name{#1} + \get_keyword +} +\def\get_keyword #1~{ + \if_defined{IFKW-#1}\then + \csname IFKW-#1 \expandafter\endcsname + \else + \fontinsterror{\string\install...}{ + `#1'~is~not~a~defined~keyword + }{ + \error_help_a\messagebreak + Extra~tokens~will~be~flushed. + } + \expandafter\gobble_keywords + \fi +} +\def\gobble_keywords#1\par{} +\x_cs\let{IFKW-}=\gobble_keywords +\x_cs\def{IFKW-scaled}#1~{ + \ifnum #1=\one_thousand + \unsetint{rawscale} + \else + \x_resetint{rawscale}{#1} + \fi + \get_keyword +} +\x_cs\def{IFKW-suffix}#1~{ + \def\glyph_name_modifier##1{##1#1} + \get_keyword +} +\x_cs\def{IFKW-encoding}#1~{ + \def\pl_encoding{#1} + \get_keyword +} +\let\pl_encoding=\empty_command +\x_cs\def{IFKW-option}#1~{ + \add_to\list_of_options{\do{#1}} +} +\def\ifoption#1\then{ + \_a_false + \edef\a_macro{#1} + \def\do##1{ + \if_a_ \else + \def\b_macro{##1} + \ifx \a_macro\b_macro \_a_true \fi + \fi + } + \list_of_options + \if_a_ +} +\let\list_of_options\empty_command +\def\fd_family#1#2#3{ + \a_toks{#3} + \edef\lowercase_file{\lowercase{ + \edef\noexpand\lowercase_file{#1#2.fd}}} + \lowercase_file + \open_out{\lowercase_file} + \out_line{\percent_char~Filename:~\lowercase_file} + \out_line{\percent_char~Created~by:~tex~\jobname} + \out_line{\percent_char~Created~using~fontinst~v\fontinstversion} + \out_line{} + \out_line{\percent_char~THIS~FILE~SHOULD~BE~PUT~IN~A~TEX~INPUTS~ + DIRECTORY} + \out_line{} + \out_line{\string\ProvidesFile{\lowercase_file}} + \out_lline{[ + \the\year/ + \ifnum10>\month0\fi\the\month/ + \ifnum10>\day0\fi\the\day\space + Fontinst~v\fontinstversion\space + font~definitions~for~#1/#2. + ]} + \out_line{} + \out_line{\string\DeclareFontFamily{#1}{#2}{\the\a_toks}} + { + \csname #1-#2\endcsname + \out_line{} + \let\do_shape=\substitute_shape + \csname #1-#2\endcsname + \let\do_shape=\remove_shape + \csname #1-#2\endcsname + } + \x_cs\g_let{#1-#2}\x_relax + \out_line{} + \out_line{\string\endinput} + \close_out{Font~definitions} +} +\def\fd_shape#1#2#3#4{ + \out_line{} + \out_line{\string\DeclareFontShape{#1}{#2}{#3}{#4}\left_brace_char} + \csname #1-#2-#3-#4\endcsname + \x_cs\g_let{#1-#2-#3-#4}\empty_command + \out_line{\right_brace_char{}} +} +\def\fd_size#1#2{ + \x_cs\ifx{siz-#1}\x_relax + \out_lline{#1~#2} + \else + \out_lline{\csname siz-#1\endcsname\space #2} + \fi +} +\def\remove_shape#1#2#3#4{ + \x_cs\g_let{#1-#2-#3-#4}\x_relax +} +\def\substitute_shape#1#2#3#4{ + \edef\orig_shape{#4} + \substitute_series{#1}{#2}{#3}{\orig_shape} + \x_cs\ifx{sub-\orig_shape}\x_relax\else + \edef\subst_shape{\csname sub-\orig_shape\endcsname} + \x_cs\ifx{#1-#2-#3-\subst_shape}\x_relax + \out_line{ + \string\DeclareFontShape{#1}{#2}{#3}{\subst_shape}{ + <->\csname typ-\orig_shape\endcsname\space + *~#2/#3/\orig_shape + }{} + } + \x_cs\let{#1-#2-#3-\subst_shape}\empty_command + \substitute_shape{#1}{#2}{#3}{\subst_shape} + \fi + \fi +} +\def\substitute_series#1#2#3#4{ + \edef\orig_series{#3} + \x_cs\ifx{sub-\orig_series}\x_relax\else + \edef\subst_series{\csname sub-\orig_series\endcsname} + \x_cs\ifx{#1-#2-\subst_series-#4}\x_relax + \out_line{ + \string\DeclareFontShape{#1}{#2}{\subst_series}{#4}{ + <->\csname typ-\orig_series\endcsname\space + *~#2/\orig_series/#4 + }{} + } + \x_cs\let{#1-#2-\subst_series-#4}\empty_command + \substitute_series{#1}{#2}{\subst_series}{#4} + \fi + \fi +} +\def\substitutesilent#1#2{ + \x_cs\def{sub-#2}{#1} + \x_cs\def{typ-#2}{ssub} +} +\def\substitutenoisy#1#2{ + \x_cs\def{sub-#2}{#1} + \x_cs\def{typ-#2}{sub} +} +\substitutesilent{bx}{b} +\substitutesilent{b}{bx} +\substitutesilent{b}{sb} +\substitutesilent{b}{db} +\substitutesilent{m}{mb} +\substitutesilent{m}{l} +\substitutenoisy{ui}{it} +\substitutesilent{sl}{it} +\substitutesilent{it}{sl} +\def\declareencoding#1#2{\x_cs\edef{enc-#1}{#2}} +\declareencoding{TEX~TEXT}{ot1} +\declareencoding{TEX~TEXT~WITHOUT~F-LIGATURES}{ot1} +\declareencoding{TEX~TYPEWRITER~TEXT}{ot1tt} +\declareencoding{TEX~MATH~ITALIC}{oml} +\declareencoding{TEX~MATH~SYMBOLS}{oms} +\declareencoding{TEX~MATH~EXTENSION}{omx} +\declareencoding{LATEX~SYMBOLS}{lasy} +\declareencoding{TEX~TEXT~SUBSET}{eufrak} +\declareencoding{TEX~MATH~ITALIC~SUBSET}{eurm} +\declareencoding{TEX~MATH~SYMBOLS~SUBSET}{euscr} +\declareencoding{EULER~SUBSTITUTIONS~ONLY}{euex} +\declareencoding{EXTENDED~TEX~FONT~ENCODING~-~LATIN}{t1} +\declareencoding{TEX~TEXT~COMPANION~SYMBOLS~1---TS1}{ts1} +\declareencoding{TEXBASE1ENCODING}{8r} +\declareencoding{TEX~TYPEWRITER~AND~WINDOWS~ANSI}{8y} +\def\declaresize#1#2{\x_cs\edef{siz-#1}{#2}} +\declaresize{}{<->} +\declaresize{5}{<5>} +\declaresize{6}{<6>} +\declaresize{7}{<7>} +\declaresize{8}{<8>} +\declaresize{9}{<9>} +\declaresize{10}{<10>} +\declaresize{11}{<10.95>} +\declaresize{12}{<12>} +\declaresize{14}{<14.4>} +\declaresize{17}{<17.28>} +\declaresize{20}{<20.74>} +\declaresize{25}{<24.88>} +\def\NOFILES{ + \def\transformfont##1##2{ + \touch_file{##1.mtx} + \touch_file{##1.pl} + } + \def\reglyphfont##1##2{\touch_file{##1.mtx}} + \def\installfonts{} + \def\endinstallfonts{} + \def\installfont##1##2##3##4##5##6##7##8{ + \touch_file{##1.vpl} + } + \def\installrawfont##1##2##3##4##5##6##7##8{ + \touch_file{##1.pl} + } + \def\installfamily##1##2##3{\touch_file{##1##2.fd}} +} +\def\touch_file#1{ + \edef\lowercase_file{\lowercase{ + \edef\noexpand\lowercase_file{#1}}} + \lowercase_file + \open_out{\lowercase_file} + \out_line{\percent_char~TEST~FILE.} + \out_line{\percent_char~Created~whilst~debugging~fontinst.} + \close_out{Test~file} +} +%%% From file: ficonv.dtx +\def\afmtomtx#1#2{{ + \let\setsomething_global=\x_relax + \open_out{\temp_prefix#2.mtx} + \edef\raw_font_name{#2} + \edef\source_font_name{#1} + \x_resetint{italicslant}{0} + \let\italcorr_expression=\uprightitalcorr + \x_setint{minimumkern}{0} + \minimum_kern=\int{minimumkern} + \out_line{\percent_char~Filename:~#2.mtx} + \out_line{\percent_char~Created~by:~tex~\jobname} + \out_line{\percent_char~Created~using:~\string\afmtomtx{#1}{#2}} + \out_line{} + \out_line{\percent_char~This~file~contains~the~ + information~of~#1.afm~in~a~form} + \out_line{\percent_char~more~easily~read~by~TeX.~ + It~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{} + \catcode`\^^M=12 + \catcode`\ =10 + \expandafter\afm_line\primitiveinput #1.afm\x_relax + \out_line{} + \out_line{\endmetrics_text} + \close_out{Metrics} +}} +\newcount\minimum_kern +\def\afm_length#1#2{ + \a_dimen=#2\afm_unit_dimen + #1=\a_dimen + \divide #1 by \afm_unit_dimen + \advance \a_dimen by -#1\afm_unit_dimen + \ifdim \a_dimen>0.5\afm_unit_dimen + \advance #1 by 1 + \else \ifdim \a_dimen<-0.5\afm_unit_dimen + \advance #1 by -1 + \fi\fi + \x_relax +} +\newdimen\afm_unit_dimen +\afm_unit_dimen=1000sp +{\catcode`\^^M=12 \gdef\afm_line#1 +{\afm_command#1~\end_of_line\afm_line}} +\def\afm_command#1~{\csname~afm-#1\endcsname\gobble_one_line} +\def\gobble_one_line#1\end_of_line{} +\x_cs\def{afm-EndFontMetrics}#1\afm_line{\endinput} +\def\afm_def#1(#2)#3{\x_cs\def{afm-#1} + \gobble_one_line#2\end_of_line{#3}} +\def\afm_let#1#2{ + \expandafter\let \csname afm-#1\expandafter\endcsname + \csname afm-#2\endcsname +} +\afm_def{CharWidth}(#1){\afm_length\char_x_width{#1}} +\afm_def{ItalicAngle}(#1~){\calculate_it_slant{#1}} +\afm_def{XHeight}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{xheight}{\the\a_count}}} +\afm_def{CapHeight}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{capheight}{\the\a_count}}} +\afm_def{Ascender}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{ascender}{\the\a_count}}} +\afm_def{Descender}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{descender_neg}{\the\a_count}}} +\afm_def{UnderlineThickness}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{underlinethickness}{\the\a_count}}} +\afm_def{FontBBox}(#1~#2~#3~#4){ + \afm_length\a_count{#4} + \out_line{\string\setint{maxheight}{\the\a_count}} + \afm_length\a_count{#2} + \out_line{\string\setint{maxdepth_neg}{\the\a_count}}} +\afm_def{StdVW}(#1){ + \afm_length\a_count{#1} + \out_line{\string\setint{verticalstem}{\the\a_count}}} +\afm_def{IsFixedPitch}(#1){ + \if\first_char#1=f + \else\out_line{\string\setint{monowidth}{1}} + \fi +} +\afm_def{FontName}(#1~){ + \record_transform{\raw_font_name} + {\string\fromafm{\source_font_name}{#1}}{}\iftrue +} +\afm_def{KP}(#1~#2~#3~#4){ + \if\first_char#1=.\else + \if\first_char#2=.\else + \afm_length\a_count{#3} + \ifnum \a_count>\minimum_kern + \out_line{\string\setkern{#1}{#2}{\the\a_count}} + \else\ifnum \a_count<-\minimum_kern + \out_line{\string\setkern{#1}{#2}{\the\a_count}} + \fi\fi + \fi\fi +} +\afm_let{KPX}{KP} +\afm_def{C}(#1~;#2){\init_afm{#1}\do_list[#2]\afm_char} +\afm_let{CH}{C} +\afm_def{CC}(#1~#2~;#3){\init_cc{#1}\do_list[#3]\cc_char} +\newcount\char_slot +\newcount\char_x_width +\newcount\x_width +\newcount\bbox_llx +\newcount\bbox_lly +\newcount\bbox_urx +\newcount\bbox_ury +\let\char_name=\empty_command +\def\init_afm#1{ + \char_slot=#1\x_relax + \x_width=\char_x_width + \bbox_llx=0 + \bbox_lly=0 + \bbox_urx=0 + \bbox_ury=0 + \let\char_name=\empty_command +} +\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} + } +} +\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\uprightitalcorr#1#2#3#4#5{0} +\def\slanteditalcorr#1#2#3#4#5{\max{\sub{#3}{#1}}{0}} +\def\calculate_it_slant#1{ + \edef\theangle{#1} + \CalculateTan{\theangle} + \a_dimen=-\one_thousand sp + \a_dimen=\UseTan{\theangle}\a_dimen + \a_count=\a_dimen + \out_line{\string\setint{italicslant}{\the\a_count}} + \x_resetint{italicslant}{\a_count} + \ifnum 0<\a_count + \let\italcorr_expression=\slanteditalcorr + \else + \let\italcorr_expression=\uprightitalcorr + \fi +} +\def\do_list[~#1~#2;~#3]{ + \csname~list-#1\endcsname\gobble_one_semi#2; + \ifx\x_relax#3\x_relax\expandafter\gobble_one + \else\expandafter\identity_one\fi + {\do_list[~#3]} +} +\def\gobble_one_semi#1;{} +\def\list_def#1(#2)#3{\x_cs\def{list-#1}\gobble_one_semi#2~;{#3}} +\list_def{W}(#1~#2){\afm_length\x_width{#1}} +\list_def{WX}(#1){\afm_length\x_width{#1}} +\list_def{WY}(#1){} +\list_def{N}(#1){\def\char_name{#1}} +\list_def{B}(#1~#2~#3~#4){ + \afm_length\bbox_llx{#1} + \afm_length\bbox_lly{#2} + \afm_length\bbox_urx{#3} + \afm_length\bbox_ury{#4} +} +\list_def{PCC}(#1~#2~#3){ + \afm_length\a_count{#2} + \afm_length\b_count{#3} + \out_lline{\string\glyphpcc{#1}{\the\a_count}{\the\b_count}} +} +\def\generalpltomtx#1#2#3#4{{ + \let\setsomething_global=\x_relax + \let\setfontdimen=\pl_setfontdimen + \if _#4_ \else + \def\do_slot{\x_cs\let{name-\the\slot_number}\slot_name} + \def\do_boundary{\x_cs\let{name-BOUNDARYCHAR}\slot_name} + \inputetx{#4} + \let\CODINGSCHEME=\ignore_parens + \fi + \pl_to_mtx{#1}{#2}{#3}{\string\generalpltomtx{#1}{#2}{#3}{#4}} +}} +\def\pltomtx#1#2{\generalpltomtx{#1}{#2}{pl}{}} +\def\pl_to_mtx#1#2#3#4{ + \edef\raw_font_name{#1} + \open_out{\temp_prefix#2.mtx} + \out_line{\percent_char~Filename:~#2.mtx} + \out_line{\percent_char~Created~by:~tex~\jobname} + \out_line{\percent_char~Created~using:~#4} + \out_line{} + \out_line{\percent_char~This~file~contains~the~ + information~of~#1.#3~in~a~form} + \out_line{\percent_char~more~easily~read~by~TeX.~ + It~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{} + \lowercase{ + \record_transform{#2}{ + \string\from#3 \x_cs\ifx{from#3}\frompl {#1} \fi + }{}\iftrue + } + \out_line{} + \catcode`\(=0 \catcode`\)=9 + \let\/=\ignore_parens + \let\do_pl_glyph=\x_relax + \primitiveinput #1.#3\x_relax + \do_pl_glyph + \out_line{} + \ifisint{\percent_char boundarychar}\then + \f_count=\int{\percent_char boundarychar} + \x_cs\ifx{name-\the\f_count}\x_relax \else + \out_line{\string\setstr{rightboundary} + {\csname name-\the\f_count\endcsname} + } + \out_line{} + \fi + \fi + \out_line{\endmetrics_text} + \close_out{Metrics} +} +\def\ignore_parens{\bgroup\catcode`(=1 \catcode`)=2 \x_relax + \expandafter\expandafter\expandafter\gobble_parens + \iftrue\expandafter{\else}\fi} +\def\gobble_parens#1{\egroup} +\def\pl_real#1{\pl_realer(#1000)} +\def\pl_realer(#1.#2#3#4#5){#1#2#3#4} +\def\pl_rounded_real(#1.#2#3#4#5){ + \global\result=#1#2#3#4\relax + \ifnum \first_char#5= >4 + \global\advance \result + \if - \first_char#1= \m@ne \else \@ne \fi + \fi +} +\def\pl_int#1#2{ + \ifx#1C `#2 + \else\ifx#1D #2 + \else\ifx#1O '#2 + \else\ifx#1H "#2 + \else -1\errmessage{Unknown~PL~number~prefix~`#1'} + \fi\fi\fi\fi +} +\let\FAMILY=\ignore_parens +\let\FACE=\ignore_parens +\let\CHECKSUM=\ignore_parens +\def\HEADER~#1~#2~#3~#4~{} +\def\SEVENBITSAFEFLAG~#1~{} +\let\COMMENT=\ignore_parens +\let\LIG=\ignore_parens +\let\NEXTLARGER=\ignore_parens +\let\VARCHAR=\ignore_parens +\let\VTITLE=\ignore_parens +\let\MAPFONT=\ignore_parens +\let\MAP=\ignore_parens +\def\CODINGSCHEME{\bgroup\catcode`\)=12\x_relax\CODINGSCHEME_cont} +\def\CODINGSCHEME_cont#1){ + \egroup + \if_undefined{enc-#1}\then + \errhelp{The~encoding~for~`#1'~has~not~been~declared.^^J + You~should~declare~it~with~ + \string\declareencoding{#1}{ETXFILE}.^^J + Press~<RETURN>~to~carry~on~with~fingers~crossed,^^J + or~X~<RETURN>~to~exit.} + \errmessage{Undeclared~encoding~`#1'} + \else + \def\do_slot{\x_cs\let{name-\the\slot_number}\slot_name} + \def\do_boundary{\x_cs\let{name-BOUNDARYCHAR}\slot_name} + \catcode`\(=12 \catcode`\)=12 + \x_cs\inputetx{enc-#1}\x_relax + \catcode`\(=0 \catcode`\)=9 + \fi +} +\def\DESIGNSIZE~#1~#2~{ + \a_dimen=#2pt + \out_line{\string\setdim{designsize}{\the\a_dimen}} +} +\def\DESIGNUNITS~#1~#2~{ + \b_dimen=#2pt\x_relax + \ifdim 1pt=\b_dimen \else + \fontinsterror{PL-to-MTX}{Nondefault~unit~used~in~PL~file} + {You~may~continue,~but~the~metrics~for~this~font~will~be~wrong.} + \fi + \out_line{\string\setdim{designunits}{\the\b_dimen}} +} +\def\BOUNDARYCHAR~#1~#2~{ + \x_setint{\percent_char boundarychar}{\pl_int{#1}{#2}} +} +\def\pl_setfontdimen#1#2{\x_cs\def{fdimen-#1}{#2}} +\def\PARAMETER~#1~#2~R~#3~{ + \f_count=\pl_int{#1}{#2}\x_relax + \if_defined{fdimen-\the\f_count}\then + \pl_rounded_real(#3 0000) + \out_line{\string\setint{\csname fdimen-\the\f_count\endcsname} + {\the\result}} + \fi +} +\let\FONTDIMEN=\x_relax +\def\SLANT{\PARAMETER D~1~} +\pl_setfontdimen{1}{italicslant} +\def\SPACE{\PARAMETER D~2~} +\pl_setfontdimen{2}{interword} +\def\STRETCH{\PARAMETER D~3~} +\pl_setfontdimen{3}{stretchword} +\def\SHRINK{\PARAMETER D~4~} +\pl_setfontdimen{4}{shrinkword} +\def\XHEIGHT{\PARAMETER D~5~} +\pl_setfontdimen{5}{xheight} +\def\QUAD{\PARAMETER D~6~} +\pl_setfontdimen{6}{quad} +\def\EXTRASPACE{\PARAMETER D~7~} +\pl_setfontdimen{7}{extraspace} +\def\NUM#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~8~#2~#3~ + \or + \PARAMETER D~9~#2~#3~ + \or + \PARAMETER D~10~#2~#3~ + \fi +} +\def\DENOM#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~11~#2~#3~ + \or + \PARAMETER D~12~#2~#3~ + \fi +} +\def\SUP#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~13~#2~#3~ + \or + \PARAMETER D~14~#2~#3~ + \or + \PARAMETER D~15~#2~#3~ + \fi +} +\def\SUB#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~16~#2~#3~ + \or + \PARAMETER D~17~#2~#3~ + \fi +} +\def\SUPDROP{\PARAMETER D~18~} +\def\SUBDROP{\PARAMETER D~19~} +\def\AXISHEIGHT{\PARAMETER D~22~} +\def\DELIM#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~20~#2~#3~ + \or + \PARAMETER D~21~#2~#3~ + \fi +} +\def\DEFAULTRULETHICKNESS{\PARAMETER D~8~} +\def\BIGOPSPACING#1~#2~#3~{ + \ifcase #1\or + \PARAMETER D~9~#2~#3~ + \or + \PARAMETER D~10~#2~#3~ + \or + \PARAMETER D~11~#2~#3~ + \or + \PARAMETER D~12~#2~#3~ + \or + \PARAMETER D~13~#2~#3~ + \fi +} +\def\LABEL~#1{\ifx #1B + \expandafter\LABEL_boundarychar + \else + \expandafter\LABEL_slot \expandafter#1 + \fi +} +\def\LABEL_slot #1~#2~{ + \f_count=\pl_int{#1}{#2} + \edef\a_macro{\a_macro + \x_cs\do_if_defined{name-\the\f_count} + } +} +\def\LABEL_boundarychar OUNDARYCHAR{ + \edef\a_macro{\a_macro + \x_cs\do_if_defined{name-BOUNDARYCHAR} + } +} +\def\do_if_defined#1{\ifx #1\x_relax \else \do{#1} \fi} +\def\LIGTABLE{\let\do=\never_do\let\a_macro\empty_command} +\def\STOP{\let\a_macro\empty_command} +\def\SKIP~#1~#2~{\immediate\write16{Warning:~SKIP~instruction~ignored.}} +\def\KRN~#1~#2~R~#3~{ + \pl_rounded_real(#3 0000) + \edef\do{\noexpand\write_pl_krn{\pl_int{#1}{#2}}{\the\result}} + \a_macro + \let\do=\never_do +} +\def\write_pl_krn#1#2#3{ + \f_count=#1\x_relax + \x_cs\ifx{name-\the\f_count}\x_relax \else + \out_line{\string\setkern{#3} + {\csname name-\the\f_count\endcsname}{#2} + } + \fi +} +\def\CHARWD~R~#1~{\pl_rounded_real(#1 0000) \b_count=\result} +\def\CHARHT~R~#1~{\pl_rounded_real(#1 0000) \c_count=\result} +\def\CHARDP~R~#1~{\pl_rounded_real(#1 0000) \d_count=\result} +\def\CHARIC~R~#1~{\pl_rounded_real(#1 0000) \e_count=\result} +\def\CHARACTER~#1~#2~{ + \do_pl_glyph + \a_count=\pl_int{#1}{#2} + \b_count=0 + \c_count=0 + \d_count=0 + \e_count=0 + \let\do_pl_glyph=\write_pl_glyph +} +\def\write_pl_glyph{ + \x_cs\ifx{name-\the\a_count}\x_relax\else + \out_line{\string\setrawglyph + {\csname~name-\the\a_count\endcsname} + {\raw_font_name} + {\the\a_dimen} + {\the\a_count} + {\the\b_count} + {\the\c_count} + {\the\d_count} + {\the\e_count}} + \fi + } +\def\mtxtopl#1#2{{ + \let\setsomething_global=\x_relax + \open_out{#2.pl} + \top_of_pl_hook + \out_line{(COMMENT~raw~font~#2~created~by~fontinst~ + v\fontinstversion)} + \out_line{} + \out_line{(COMMENT~Filename:~#2.pl)} + \out_line{(COMMENT~Created~by:~tex~\jobname)} + \out_line{(COMMENT~Created~using:~\string\mtxtopl{#1}{#2})} + \out_line{} + \out_line{(COMMENT~This~file~can~be~turned~into~ + a~ligless~TeX~font~with)} + \out_line{(COMMENT~pltotfm~#2.pl~#2.tfm)} + \out_line{} + \out_line{(COMMENT~THIS~FILE~CAN~THEN~BE~DELETED.)} + \out_line{} + \out_line{(DESIGNSIZE~R~10.0)} + \out_line{} + \let\setglyph=\iffalse + \let\endsetglyph=\fi + \let\setkern=\gobble_three + \let\setscaledrawglyph=\first_pl_raw_glyph + \def\setscalednotglyph##1##2##3##4##5##6##7##8##9{} + \inputmtx{#1} + \out_line{} + \out_line{(COMMENT~END~OF~FILE~#2.pl)} + \close_out{Raw~font} +}} +\def\first_pl_raw_glyph#1#2#3#4{ + \out_line{(DESIGNUNITS~R~\make_factor{#4})} + \let\setscaledrawglyph=\pl_raw_glyph + \pl_raw_glyph{#1}{#2}{#3}{#4} +} +\def\pl_raw_glyph#1#2#3#4#5#6#7#8#9{ + \out_line{(CHARACTER~D~\number#5~\space(COMMENT~#1)} + \out_lline{(CHARWD~R~\make_factor{#6})} + \out_lline{(CHARHT~R~\make_factor{#7})} + \out_lline{(CHARDP~R~\make_factor{#8})} + \out_lline{(CHARIC~R~\make_factor{#9})} + \out_lline{)} +} +\def\transformfont#1#2{{ + \let\setsomething_global=\x_relax + \unsetstr{afm-name} + \unsetstr{etx-name} + \x_resetint{x-scale}{\one_thousand} + \x_resetint{y-scale}{\one_thousand} + \x_resetint{slant-scale}{0} + #2 + \ifisstr{afm-name}\then + \mtxtomtx{\str{afm-name}}{#1} + \mtxtopl{#1}{#1} + \else + \fontinsterror{Transformfont}{ + Failed~to~make~transformed~font~#1;\messagebreak + source~font~metrics~file~not~found + }\error_help_a + \fi +}} +\def\fromafm#1{ + \if_file_exists{#1.afm}\then + \x_setstr{afm-name}{#1} + \afmtomtx{#1}{#1} + \mtxtopl{#1}{#1} + \fi +} +\def\frommtx#1{ + \if_file_exists{#1.mtx}\then \x_setstr{afm-name}{#1} \fi +} +\def\frompl#1{ + \if_file_exists{#1.pl}\then + \x_setstr{afm-name}{#1} + \generalpltomtx{#1}{#1}{pl}{} + \fi +} +\def\fromplgivenetx#1#2{ + \if_file_exists{#1.pl}\then + \x_setstr{afm-name}{#1} + \generalpltomtx{#1}{#1}{pl}{#2} + \fi +} +\def\fromany#1{ + \x_cs\edef{s-afm-name}{#1} + \if_file_exists{#1.mtx}\then\else + \if_file_exists{#1.pl}\then + \generalpltomtx{#1}{#1}{pl}{} + \else + \if_file_exists{#1.afm}\then + \afmtomtx{#1}{#1} + \mtxtopl{#1}{#1} + \else + \if_file_exists{#1.vpl}\then + \generalpltomtx{#1}{#1}{vpl}{} + \else + \unsetstr{afm-name} + \fi\fi\fi\fi +} +\def\scalefont#1#2{ + \eval_expr_to\d_count{#1} + \x_resetint{x-scale}{\scale{\d_count}{\int{x-scale}}} + \x_resetint{y-scale}{\scale{\d_count}{\int{y-scale}}} + \x_resetint{slant-scale}{\scale{\d_count}{\int{slant-scale}}} + #2 +} +\def\xscalefont#1#2{ + \x_resetint{x-scale}{\scale{#1}{\int{x-scale}}} + #2 +} +\def\yscalefont#1#2{ + \eval_expr_to\d_count{#1} + \x_resetint{y-scale}{\scale{\d_count}{\int{y-scale}}} + \x_resetint{slant-scale}{\scale{\d_count}{\int{slant-scale}}} + #2 +} +\def\slantfont#1#2{ + \x_resetint{slant-scale}{ + \add{\scale{#1}{\int{x-scale}}}{\int{slant-scale}} + } + #2 +} +\def\reencodefont#1#2{ + #2 + \resetstr{etx-name}{#1} +} +\def\mtxtomtx#1#2{{ + \ifisstr{etx-name}\then + \def\do_slot{\x_cs\edef{slots-\slot_name}{\the\slot_number}} + \directfalse + \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{} + \mtxtomtx_redefinitions + \inputmtx{#1} + \out_line{} + \out_line{\endmetrics_text} + \close_out{Transformed~metrics} +}} +\def\mtxtomtx_redefinitions{ + \let\setint=\mtxtomtx_setint + \let\setdim=\mtxtomtx_setdim + \let\setstr=\mtxtomtx_setstr + \let\setscaledrawglyph=\mtxtomtx_setscaledrawglyph + \let\setscalednotglyph=\mtxtomtx_setscaledrawglyph + \let\setkern=\mtxtomtx_setkern + \let\setglyph=\mtxtomtx_setglyph + \let\glyphpcc=\mtxtomtx_glyphpcc + \let\samesize=\mtxtomtx_samesize + \let\endsetglyph=\mtxtomtx_endsetglyph + \def\aliased{\string\aliased} +} +\let\aliased=\second_of_two +\def\mtxtomtx_setint#1#2{ + \def\a_macro{#1} + \ifx \a_macro\italicslant_name + \eval_expr{#2} + \global\multiply \result \int{x-scale} + \a_count=\int{slant-scale} + \multiply \a_count \one_thousand + \advance \a_count \result + \divide \a_count \int{y-scale}\x_relax + \else + \def\do##1{ + \def\b_macro{##1} + \ifx \a_macro\b_macro \expandafter\if_false \fi + } + \gobble_one\iftrue \width_ints_list \if_true + \eval_expr_to\a_count{\scale{#2}{\int{y-scale}}} + \else + \eval_expr_to\a_count{\scale{#2}{\int{x-scale}}} + \fi + \fi + \out_line{\string\setint{#1}{\the\a_count}} +} +\def\italicslant_name{italicslant} +\def\width_ints_list{ + \do{interword}\do{stretchword}\do{shrinkword}\do{quad} + \do{extraspace}\do{digitwidth}\do{verticalstem} +} +\def\mtxtomtx_setdim#1#2{ + \out_line{\string\setdim{#1}{#2}} +} +\def\mtxtomtx_setstr#1#2{ + \out_line{\string\setstr{#1}{#2}} +} +\def\mtxtomtx_setscaledrawglyph#1#2#3#4#5#6#7#8#9{ + \eval_expr_to\a_count{\scale{#6}{\int{x-scale}}} + \eval_expr_to\b_count{\scale{#7}{\int{y-scale}}} + \eval_expr_to\c_count{\scale{#8}{\int{y-scale}}} + \eval_expr_to\d_count{#9} \eval_expr{#7} + \multiply \d_count \int{x-scale} + \global\multiply \result \int{slant-scale} + \global\advance \result \d_count + \rounded_thousandths + \d_count=\result + \eval_expr{\scale{#4}{\int{y-scale}}} + \ifisstr{etx-name}\then + \bgroup + \let\aliased=\first_of_two + \if_undefined{slots-#1}\then + \egroup \e_count=\m@ne + \else + \expandafter\egroup \expandafter\e_count + \csname slots-#1\endcsname + \fi + \else + \e_count=#5 + \fi + \out_line{ + \ifnum \e_count>\m@ne + \string\setscaledrawglyph + \else + \string\setscalednotglyph + \fi + {#1}{\raw_font_name}{#3}{\the\result}{\the\e_count} + {\the\a_count}{\the\b_count}{\the\c_count}{\the\d_count} + } +} +\def\mtxtomtx_setkern#1#2#3{ + \eval_expr{\scale{\int{x-scale}}{#3}} + \out_line{\string\setkern{#1}{#2}{\the\result}} +} +\def\mtxtomtx_setglyph#1{\out_line{\string\setglyph{#1}}} +\def\mtxtomtx_samesize#1{\out_lline{\string\samesize{#1}}} +\def\mtxtomtx_endsetglyph{\out_line{\string\endsetglyph}} +\def\mtxtomtx_glyphpcc#1#2#3{ + \eval_expr_to\b_count{\scale{\int{y-scale}}{#3}} + \eval_expr_to\a_count{#2} \eval_expr{#3} + \multiply \a_count \int{x-scale} + \global\multiply \result \int{slant-scale} + \global\advance \result \a_count + \rounded_thousandths + \out_lline{\string\glyphpcc{#1}{\the\result}{\the\b_count}} +} +\def\reglyphfonts{ + \begingroup + \let\setsomething_global=\x_relax + \x_setint{renameweight}{1} + \x_setint{killweight}{-10} + \setcommand\iftokeep##1\then{\ifnum -1<##1} +} +\def\endreglyphfonts{\endgroup} +\def\offmtxcommand#1{ + \x_cs\offcommand{reglyph_\expandafter\gobble_one\string#1} +} +\def\onmtxcommand#1{ + \x_cs\oncommand{reglyph_\expandafter\gobble_one\string#1} +} +\begingroup + \catcode`\-=11 + \gdef\renameglyph#1#2{ + \x_cs\edef{slots-#2}{ + \noexpand\rename_glyph{#1}\noexpand\i-renameweight + } + } +\endgroup +\def\renameglyphweighted#1#2#3{ + \eval_expr{#3} + \x_cs\edef{slots-#2}{\noexpand\rename_glyph{#1}{\the\result}} +} +\begingroup + \catcode`\-=11 + \gdef\killglyph#1{ + \x_cs\def{slots-#1}{\kill_glyph\i-killweight} + } +\endgroup +\def\killglyphweighted#1#2{ + \eval_expr{#2} + \x_cs\edef{slots-#1}{\noexpand\kill_glyph{\the\result}} +} +\def\reglyphfont#1#2{ + \fromany{#2} + \ifisstr{afm-name}\then + \reglyph_font{#1}{#2} + \else + \fontinsterror{Reglyph}{Could~not~find~font~metrics~for~#2.} + \error_help_a + \fi +} +\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{} + \reglyph_redefinitions + \inputmtx{#2} + \out_line{} + \out_line{\endmetrics_text} + \close_out{Reglyphed~metrics} +}} +\def\reglyph_redefinitions{ + \let\setint=\reglyph_setint + \let\setdim=\reglyph_setdim + \let\setstr=\reglyph_setstr + \let\setscaledrawglyph=\reglyph_setscaledrawglyph + \let\setscalednotglyph=\reglyph_setscaledrawglyph + \let\setkern=\reglyph_setkern + \let\setglyph=\reglyph_setglyph + \let\glyphpcc=\reglyph_glyphpcc + \let\samesize=\reglyph_samesize + \let\endsetglyph=\reglyph_endsetglyph +} +\def\reglyph_setint#1#2{\out_line{\string\setint{#1}{#2}}} +\def\reglyph_setdim#1#2{\out_line{\string\setdim{#1}{#2}}} +\def\reglyph_setstr#1#2{\out_line{\string\setstr{#1}{#2}}} +\newcount\command_survivance +\def\rename_glyph#1{\def\glyphname{#1}\kill_glyph} +\def\kill_glyph#1{\advance \command_survivance #1\x_relax} +\def\reglyph_setscaledrawglyph#1#2#3#4#5#6#7#8#9{ + \command_survivance=0 + \def\glyphname{#1} + \csname slots-#1\endcsname + \iftokeep\command_survivance\then + \out_line{ + \ifnum #5<\z@ + \string\setscalednotglyph + \else + \string\setscaledrawglyph + \fi + {\glyphname}{#2}{#3}{\number#4}{#5}{#6}{#7}{#8}{#9} + } + \fi +} +\def\reglyph_setkern#1#2#3{ + \command_survivance=0 + \def\glyphname{#1} + \csname slots-#1\endcsname + \let\a_macro=\glyphname + \def\glyphname{#2} + \csname slots-#2\endcsname + \iftokeep\command_survivance\then + \out_line{\string\setkern{\a_macro}{\glyphname}{#3}} + \fi +} +\def\reglyph_setglyph#1{ + \command_survivance=0 + \def\glyphname{#1} + \csname slots-#1\endcsname + \edef\a_macro{\noexpand\out_line{\string\setglyph{\glyphname}}} + \a_toks=\expandafter{\a_macro} +} +\x_cs\def{off-\string\reglyph_setglyph}#1{\gobble_glyph} +\def\reglyph_glyphpcc#1#2#3{ + \def\glyphname{#1} + \csname slots-#1\endcsname + \edef\a_macro{\noexpand\out_lline{ + \string\glyphpcc{\glyphname}{#2}{#3} + }} + \a_toks=\expandafter{\the\expandafter\a_toks \a_macro} +} +\def\reglyph_samesize#1{ + \def\glyphname{#1} + \csname slots-#1\endcsname + \edef\a_macro{\noexpand\out_lline{ + \string\samesize{\glyphname} + }} + \a_toks=\expandafter{\the\expandafter\a_toks \a_macro} +} +\def\reglyph_endsetglyph{ + \iftokeep\command_survivance\then + \the\a_toks + \out_line{\string\endsetglyph} + \fi + \a_toks={} +} +%%% From file: filtfam.dtx +\def\latinfamily#1#2{{ + \edef\a_macro{#1} + \expandafter\parse_family\a_macro + \empty_command\empty_command\end_parse_family + \installfonts + \if_file_exists{\raw_encoding.mtx}\then + \installfamily{\raw_encoding}{\latex_family}{#2} + \fi + \installfamily{OT1}{\latex_family}{#2} + \installfamily{T1}{\latex_family}{#2} + \installfamily{TS1}{\latex_family}{#2} + \latin_weights + \endinstallfonts +}} +\def\parse_family #1#2#3#4#5\end_parse_family{ + \gdef\font_family{#1#2#3} + \gdef\font_variant{#4#5} + \gdef\raw_variant{#4#5} + \gdef\latex_family{#1#2#3#4#5} + \_expert_false + \_oldstyle_false + \ifx#4x + \_expert_true + \gdef\raw_variant{#5} + \gdef\font_variant{#5} + %\setcommand\digit##1{##1} + \else\ifx#4j + \_expert_true + \_oldstyle_true + \gdef\raw_variant{#5} + \gdef\font_variant{#5} + %\setcommand\digit##1{##1oldstyle} + \else\ifx#49 + \gdef\latex_family{#1#2#3j#5} + \_expert_true + \_oldstyle_true + \gdef\raw_variant{#5} + \gdef\font_variant{#5} + %\setcommand\digit##1{##1oldstyle} + \else + \_expert_false + \_oldstyle_false + %\setcommand\digit##1{##1} + \fi\fi\fi + \if_oldstyle_ + \immediate\write16{INFO>~parse~family~<#1#2#3><#5>~(oldstyle)} + \else\if_expert_ + \immediate\write16{INFO>~parse~family~<#1#2#3><#5>~(expert)} + \else + \immediate\write16{INFO>~parse~family~<#1#2#3><#4#5>} + \fi\fi +} +\newif\if_expert_ +\newif\if_oldstyle_ +\def\latin_weight#1#2{ + \gdef\font_weight{#1}% + \gdef\latex_weight{#2}% + \latin_widths +} +\def\latin_width#1#2{ + \gdef\font_width{#1} + \gdef\latex_width{#2} + \latin_shapes +} +\def\latin_shape#1#2#3#4#5{ + \gdef\font_shape{#1} + \gdef\raw_shape{#2} + \gdef\encoding_shape{#3} + \if_oldstyle_ + \gdef\encoding_shape{#3\oldstyle_shape} + \fi + \gdef\latex_shape{#4} + \gdef\encoding_switches{#5} + \immediate\write16{ + INFO>~to~make~LaTeX~font~shape~<\latex_family, + \latex_weight,\latex_shape,\latex_width>~seek~ + \font_family\font_weight\raw_shape + \raw_variant\raw_encoding\font_width.mtx} + \csname fake_width_\font_width\endcsname + \csname fake_shape_\raw_shape\endcsname + \if_file_exists{ + \font_family\font_weight\raw_shape + \raw_variant\raw_encoding\font_width.mtx + }\then + \latin_encodings + \fi +} +\def\fake_shape_{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width.afm + }\then + \fake_shape_raw_encoding + \fi + \if_expert_ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width.afm + }\then + \fake_shape_expert_encoding + \fi + \fi + \if_oldstyle_ + \gdef\oldstyle_variant{\oldstyle_shape} + \if_file_exists{ + \font_family\font_weight\raw_shape\oldstyle_variant + \adobe_encoding\font_width.afm + }\then + \fake_shape_oldstyle_encoding + \else + \gdef\oldstyle_variant{\caps_shape} + \if_file_exists{ + \font_family\font_weight\raw_shape\oldstyle_variant + \adobe_encoding\font_width.afm + }\then + \fake_shape_oldstyle_encoding + \fi + \fi + \fi +} +\def\fake_shape_raw_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width>~from~ + <\font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width> + } + \transformfont{ + \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width + }{ + \reencodefont{\raw_encoding}{ + \fromafm{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width + } + } + } + \if_file_exists{ \raw_encoding.mtx }\then + \immediate\write16{ + INFO>~run~\string\installrawfont\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width> + <\font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding> + <\raw_encoding> + <\raw_encoding> + <\latex_family> + <\latex_weight\latex_width> + <\latex_shape>} + \installrawfont{ + \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width + }{ \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding + }{ \raw_encoding + }{ \raw_encoding + }{ \latex_family + }{ \latex_weight\latex_width + }{ \latex_shape + }{} + \fi + \fi +} +\def\fake_shape_expert_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width.mtx + }\then % no action required + \else + \fromafm{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width + } + \fi +} +\def\fake_shape_oldstyle_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_shape\oldstyle_variant + \adobe_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\raw_shape\oldstyle_variant + \raw_encoding\font_width>~from~ + <\font_family\font_weight\raw_shape\oldstyle_variant + \adobe_encoding\font_width> + } + \transformfont{ + \font_family\font_weight\raw_shape\oldstyle_variant + \raw_encoding\font_width + }{ + \reencodefont{\raw_encoding}{ + \fromafm{ + \font_family\font_weight\raw_shape\oldstyle_variant + \adobe_encoding\font_width + } + } + } + \fi +} +\def\fake_shape_c{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width.afm + }\then + \fake_shape_ + \else + % If real smallcaps font doesn't exist, fake it from the roman. + \gdef\raw_shape{} + \if_oldstyle_ + \gdef\encoding_shape{cj} + \else + \gdef\encoding_shape{c} + \fi + \fake_shape_ + \fi +} +\def\fake_shape_o{ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width.afm + }\then + \fake_shape_ + \else + \fake_shape_o_raw_encoding + \if_expert_ + \fake_shape_o_expert_encoding + \fi + \if_oldstyle_ + \fake_shape_o_oldstyle_encoding + \fi + \fi +} +\def\fake_shape_o_raw_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_variant + \raw_encoding\font_width.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width>~from~ + <\font_family\font_weight\raw_variant + \raw_encoding\font_width>~(faking~oblique) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~oblique~font~ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + \space from~ + \font_family\font_weight\raw_variant + \raw_encoding\font_width + } + \transformfont{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + }{ + \slantfont{\SlantAmount}{ + \frommtx{ + \font_family\font_weight\raw_variant + \raw_encoding\font_width + } + } + } + \if_file_exists{ \raw_encoding.mtx }\then + \immediate\write16{ + INFO>~run~\string\installrawfont\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width> + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding> + <\raw_encoding> + <\raw_encoding> + <\latex_family> + <\latex_weight\latex_width> + <\latex_shape>} + \installrawfont{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + }{ \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding + }{ \raw_encoding + }{ \raw_encoding + }{ \latex_family + }{ \latex_weight\latex_width + }{ \latex_shape + }{} + \fi + \fi + \fi +} +\def\fake_shape_o_expert_encoding{ + \if_file_exists{ + \font_family\font_weight\raw_variant + \expert_encoding\font_width.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width>~from~ + <\font_family\font_weight\raw_variant + \expert_encoding\font_width>~(faking~oblique) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~oblique~font~ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width + \space from~ + \font_family\font_weight\raw_variant + \expert_encoding\font_width + } + \transformfont{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width + }{ + \slantfont{\SlantAmount}{ + \frommtx{ + \font_family\font_weight\raw_variant + \expert_encoding\font_width + } + } + } + \fi + \fi +} +\def\fake_shape_o_oldstyle_encoding{ + \if_file_exists{ + \font_family\font_weight\oldstyle_variant + \raw_encoding\font_width.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\oldstyle_variant + \raw_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\oldstyle_variant + \raw_encoding\font_width>~from~ + <\font_family\font_weight\oldstyle_variant + \raw_encoding\font_width>~(faking~oblique) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~oblique~font~ + \font_family\font_weight\font_shape\oldstyle_variant + \raw_encoding\font_width + \space from~ + \font_family\font_weight\oldstyle_variant + \raw_encoding\font_width + } + \transformfont{ + \font_family\font_weight\font_shape\oldstyle_variant + \raw_encoding\font_width + }{ + \slantfont{\SlantAmount}{ + \frommtx{ + \font_family\font_weight\oldstyle_variant + \raw_encoding\font_width + } + } + } + \fi + \fi +} +\let\fake_shape_i\fake_shape_ % We must do this again! +\newif\if_fake_narrow_ +\_fake_narrow_false +\def\fakenarrow#1{ + \_fake_narrow_true + \gdef\fake_narrow_width{#1} +} +\def\fake_width_{} +\def\fake_width_c{} +\def\fake_width_n{ + \if_fake_narrow_ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \adobe_encoding\font_width.afm + }\then % no action required + \else + \fake_width_n_raw_encoding + \if_expert_ + \fake_width_n_expert_encoding + \fi + \fi + \fi +} +\def\fake_width_n_raw_encoding{ + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width>~from~ + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding>~(faking~narrow) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~narrow~font~ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + \space from~ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding + } + \transformfont{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + }{ + \xscalefont{\fake_narrow_width}{ + \frommtx{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding + } + } + } + \if_file_exists{ \raw_encoding.mtx }\then + \immediate\write16{ + INFO>~run~\string\installrawfont\space + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width> + <\font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding> + <\raw_encoding> + <\raw_encoding> + <\latex_family> + <\latex_weight\latex_width> + <\latex_shape>} + \installrawfont{ + \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width + }{ \font_family\font_weight\font_shape\raw_variant + \raw_encoding\font_width, + \raw_encoding + }{ \raw_encoding + }{ \raw_encoding + }{ \latex_family + }{ \latex_weight\latex_width + }{ \latex_shape + }{} + \fi + \fi + \fi +} +\def\fake_width_n_expert_encoding{ + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding.mtx + }\then + \if_file_exists{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width.mtx + }\then % no action required + \else + \immediate\write16{ + INFO>~run~\string\transformfont\space\space + <\font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width>~from~ + <\font_family\font_weight\font_shape\raw_variant + \expert_encoding>~(faking~narrow) + } + %%% WARNING: famtool.pl relies on this message format!!! + \immediate\write16{ + Faking~narrow~font~ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width + \space from~ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding + } + \transformfont{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding\font_width + }{ + \xscalefont{\fake_narrow_width}{ + \frommtx{ + \font_family\font_weight\font_shape\raw_variant + \expert_encoding + } + } + } + \fi + \fi +} +\def\latin_encoding#1#2#3#4#5{ + \gdef\latex_encoding{#4} + \gdef\latex_mtx{#5} + \if_oldstyle_ + \gdef\font_encoding{#3} + \else\if_expert_ + \gdef\font_encoding{#2} + \else + \gdef\font_encoding{#1} + \fi\fi + \gdef\expert_font{} + \gdef\oldstyle_font{} + \if_expert_ + \if_file_exists{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width.mtx + }\then + \gdef\expert_font{ + \font_family\font_weight\raw_shape\raw_variant + \expert_encoding\font_width, + } + \fi + \fi + \if_oldstyle_ + \if_file_exists{ + \font_family\font_weight\raw_shape\oldstyle_variant + \raw_variant\raw_encoding\font_width.mtx + }\then + \gdef\oldstyle_font{ + unsetnum, + \font_family\font_weight\raw_shape\oldstyle_variant + \raw_variant\raw_encoding\font_width, + resetosf, + } + \fi + \fi + \immediate\write16{ + INFO>~run~\string\installfont\space + <\font_family\font_weight\font_shape\font_variant + \font_encoding\font_width> + <\font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width, + \if_oldstyle_ + \ifx\raw_shape\caps_shape + resetosf, + \fi + \fi + \expert_font + \oldstyle_font + \latex_mtx> + <\latex_encoding\encoding_shape> + <\latex_encoding> + <\latex_family> + <\latex_weight\latex_width> + <\latex_shape>} + \installfont{ + \font_family\font_weight\font_shape\font_variant + \font_encoding\font_width + }{ + \font_family\font_weight\raw_shape\raw_variant + \raw_encoding\font_width, + \if_oldstyle_ + \ifx\raw_shape\caps_shape + resetosf, + \fi + \fi + \expert_font + \oldstyle_font + \latex_mtx + }{ + \latex_encoding\encoding_shape + }{ + \latex_encoding + }{ + \latex_family + }{ + \latex_weight\latex_width + }{ + \latex_shape + }{} +} +\def\latin_weights{ + \latin_weight{r}{m} + \latin_weight{k}{m} + \latin_weight{b}{b} + \latin_weight{s}{sb} + \latin_weight{d}{db} % was {d}{sb}, SPQR changed + \latin_weight{m}{mb} % was {m}{m}, UV changed + \latin_weight{c}{eb} % UV added + \latin_weight{h}{eb} % UV added + \latin_weight{x}{eb} + \latin_weight{u}{ub} + \latin_weight{l}{l} + %\latin_weight{j}{el} + %\latin_weight{a}{ul} % UV added +} +\def\latin_widths{ + \latin_width{}{} + \latin_width{n}{c} + %latin_width{c}{c} + %latin_width{x}{x} +} +\def\latin_shapes{ + \latin_shape{} {} {} {n} {\_textcomp_true } + \latin_shape{c}{c}{} {sc}{\_textcomp_false} + \latin_shape{o}{o}{} {sl}{\_textcomp_true } + \latin_shape{i}{i}{i}{it}{\_textcomp_true } +} +\def\latin_encodings{ + \latin_encoding{7t}{9t}{9o}{OT1}{newlatin} + \latin_encoding{8t}{9e}{9d}{T1} {newlatin} + \encoding_switches + \if_textcomp_ + \latin_encoding{8c}{9c}{9c}{TS1}{textcomp} + \fi +} +\newif\if_textcomp_ + +\def\raw_encoding{8r} +\def\adobe_encoding{8a} +\def\expert_encoding{8x} + +\def\caps_shape{c} +\def\oldstyle_shape{j} +\def\SlantAmount{167} +%%% From file: fimapgen.dtx +\def\mapfrags_subsystem{Map~fragments~writer} +\def\recordtransforms#1{\open_pout\transform_record_file{#1}} +\def\endrecordtransforms{ + \close_pout\transform_record_file{Font~transformation~records} +} +\chardef\transform_record_file=\closed_stream +\let\storemapdata=\gobble_three +\def\record_transform#1#2#3#4{ + \ifnum \transform_record_file=\closed_stream \else + \pout_line\transform_record_file{\string\storemapdata{#1}{#2}{#3}} + \fi + #4 \out_line{\string\storemapdata{#1}{#2}{#3}} \fi +} +\def\record_usage#1{ + \ifnum \transform_record_file=\closed_stream \else + \pout_line\transform_record_file{\string\makemapentry{#1}} + \fi +} +%%% From file: fibasics.dtx +\def\needsfontinstversion#1{{ + \a_dimen=#1pt + \b_dimen=\fontinstversion~pt\x_relax + \ifnum\a_dimen>\b_dimen + \immediate\write16{} + \immediate\write16{Warning:~This~file~needs~fontinst~version~#1.} + \immediate\write16{Warning:~You~are~using~version~ + \fontinstversion.} + \immediate\write16{Warning:~This~may~cause~errors.} + \immediate\write16{} + \fi +}} +\if_file_exists{fontinst.rc}\then + \primitiveinput fontinst.rc +\else + \immediate\write16{No~file~fontinst.rc.} +\fi +\normalcc +\endinput +%% +%% End of file `xfntinst.sty'. diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/6r.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/6r.etx new file mode 100644 index 00000000000..875e0b825b9 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/6r.etx @@ -0,0 +1,945 @@ +\relax + +\documentclass[twocolumn]{article} +\usepackage[koi8-r]{inputenc} +\usepackage[X2,T2A]{fontenc} +\usepackage{fontdoc} +\catcode`\`=13 \def`#1'{\textquoteleft{\UseTextSymbol{X2}{#1}}\textquoteright} + +\title{The \TeX Base2 (6r) encoding vector} +\author{Vladimir Volovich, Anatoliy Malyarenko} +\date{22 August 1999\\ +Version 0.1} + +\begin{document} + +\maketitle + +\section{Introduction} + +ãÅÌØ ÓÏÚÄÁÎÉÑ ËÏÄÉÒÏ×ËÉ \TeX Base2 (6r) ÄÏÌÖÎÁ ÂÙÔØ ÁÎÁÌÏÇÉÞÎÏÊ +ÃÅÌÉ ÓÏÚÄÁÎÉÑ ËÏÄÉÒÏ×ËÉ \TeX Base1 (8r). ÷ ÄÁÌØÎÅÊÛÅÍ Ñ ÂÕÄÕ +ÃÉÔÉÒÏ×ÁÔØ ÒÁÂÏÔÕ \cite[Ó.~387]{g} (×Ï ÉÚÂÅÖÁÎÉÅ ÎÅËÏÒÒÅËÔÎÏÇÏ ÐÅÒÅ×ÏÄÁ~--- × +ÏÒÉÇÉÎÁÌÅ). ãÉÔÉÒÏ×ÁÎÎÙÊ ÍÁÔÅÒÉÁÌ ÎÁÈÏÄÉÔÓÑ ÔÁËÖÅ × ÆÁÊÌÅ 8r.enc × +ËÁÞÅÓÔ×Å ËÏÍÍÅÎÔÁÒÉÑ. +\begin{quote} +The aim was to have available for typesetting all the characters +normally included in Type~1 fonts. This is effectively the +characters in Adobe Standard Encoding, plus ISO Latin~1, plus +extra characters available in Lucida Bright. +\end{quote} + +ñ ÐÒÅÄÌÁÇÁÀ ×ÚÑÔØ × ËÁÞÅÓÔ×Å ÂÁÚÏ×ÙÈ ÛÒÉÆÔÏ× ÛÒÉÆÔÙ ËÏÍÐÁÎÉÊ Adobe É +ðÁÒÁÇÒÁÆ. ðÕÓÔØ $A$~--- ÍÎÏÖÅÓÔ×Ï ÇÌÉÆÏ× Adobe Standard Cyrillic +Font Specification \cite{a}. ðÕÓÔØ $\{8r\}$~--- ÍÎÏÖÅÓÔ×Ï ÇÌÉÆÏ× ËÏÄÉÒÏ×ËÉ +\TeX Base1, Á $\{6r\}$~--- ÍÎÏÖÅÓÔ×Ï ÇÌÉÆÏ× ËÏÄÉÒÏ×ËÉ \TeX Base2. +We do not want to duplicate slots present in 8r encoding, in the 6r +encoding. +ôÏÇÄÁ ÄÏÌÖÎÏ ×ÙÐÏÌÎÑÔØÓÑ ÕÓÌÏ×ÉÅ +$$ +A\setminus\{8r\}\subset\{6r\}. +$$ +é ×Ó£ ÖÅ Ñ ÐÒÅÄÌÁÇÁÀ ÎÅ ×ËÌÀÞÁÔØ × $\{6r\}$ ÇÌÉÆÙ ÉÚ $A$, +ÐÒÉÓÕÔÓÔ×ÕÀÝÉÅ × ÍÁÔÅÍÁÔÉÞÅÓËÉÈ ÛÒÉÆÔÁÈ, Á ÉÍÅÎÎÏ: \emph{infinity, +partialdiff, notequal, approxequal, lessequal, radical}. üÔÉ ÇÌÉÆÙ +ÉÍÅÀÔ ÒÁÚÎÙÅ ÎÁÚ×ÁÎÉÑ × ÒÁÚÎÙÈ ÛÒÉÆÔÁÈ ÔÉÐÁ~1, ÐÏÜÔÏÍÕ Ñ +ÕÐÏÔÒÅÂÌÑÀ ÄÌÑ ÎÉÈ ÉÍÅÎÁ ÉÚ ËÏÄÉÒÏ×ËÉ X2, Á × ÓÌÕÞÁÅ +ÏÔÓÕÔÓÔ×ÉÑ~--- ÉÚ \cite{a} ÉÌÉ ÆÁÊÌÁ cyralias.mtx. + +ëÒÏÍÅ ÕËÁÚÁÎÎÙÈ ÇÌÉÆÏ×, Ñ ÄÏÂÁ×ÉÌ ÇÌÉÆÙ, ÐÒÉÓÕÔÓÔ×ÕÀÝÉÅ × ÛÒÉÆÔÁÈ, +ËÏÔÏÒÙÅ ËÏÍÐÁÎÉÑ "ðÁÒÁÇÒÁÆ" ÎÁÚÙ×ÁÅÔ Cyrillic Asian, Á ÔÁËÖÅ ÅÝ£ +ÎÅËÏÔÏÒÙÅ ÇÌÉÆÙ ÉÚ X2. ëÓÔÁÔÉ, Ñ ÓÞÉÔÁÀ, ÞÔÏ cyrfita É +cyrotld~--- ÒÁÚÎÙÅ ÂÕË×Ù, ÐÏÔÏÍÕ ÞÔÏ ÏÎÉ ÉÍÅÀÔ ÒÁÚÌÉÞÎÙÅ ÉÍÅÎÁ × +Unicode É × ÛÒÉÆÔÁÈ ËÏÍÐÁÎÉÉ "ðÁÒÁÇÒÁÆ". + +ðÒÏÄÏÌÖÕ ÃÉÔÉÒÏ×ÁÎÉÅ \cite{g}: +\begin{quote} +The Windows ANSI characters are almost all in their Windows +positions, since some Windows users cannot easily re-encode the +fonts and it makes no difference on other systems. +\end{quote} +ðÏ ÜÔÏÊ ÐÒÉÞÉÎÅ Ñ ÒÁÓÐÏÌÏÖÉÌ ÇÌÉÆÙ, ÐÒÉÎÁÄÌÅÖÁÛÉÅ ËÏÄÏ×ÏÊ ÓÔÒÁÎÉÃÅ +cp1251, ÎÁ Ó×ÏÉÈ ÍÅÓÔÁÈ. +\begin{quote} +The remaining characters are arbitrarily assigned to the lower +part of the range, avoiding 0, 10, and 13 to allow for software +that assumes that these are used for special operations. +\end{quote} +ðÏÜÔÏÍÕ É Ñ ÐÒÏÐÕÓÔÉÌ ÕËÁÚÁÎÎÙÅ ÐÏÚÉÃÉÉ. + +\begin{thebibliography}{9} + +\bibitem{a} Adobe Standard Cyrillic Font Specification, +http://www.adobe.com + +\bibitem{g} Goossens, M., Rahtz, S. and Mittelbach, F. 1997. +\emph{The \LaTeX Graphics Companion}, Reading, MA: +Addison--Wesley. + +\end{thebibliography} + +\encoding + +\needsfontinstversion{1.800} + +\comment{\section{Default values}} + +\setstr{codingscheme}{TEX BASE2 encoding - 6R} + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\comment{\section{The encoding}} + +\nextslot{3} + +\setslot{\lc{cyrBreve}{cyrbreve}} + \comment{The cyrillic breve accent.} +\endsetslot + +\setslot{\lc{cyrFlex}{cyrflex}} + \comment{Cyrillic circumflex.} +\endsetslot + +\setslot{\lc{dblGrave}{dblgrave}} + \comment{The cyrillic dblgrave accent.} +\endsetslot + +\nextslot{7} + +\setslot{\lc{DieresisAcute}{dieresisacute}} + \comment{The cyrillic dieresisacute accent.} +\endsetslot + +\setslot{\lc{DieresisGrave}{dieresisgrave}} + \comment{The cyrillic dieresisgrave accent.} +\endsetslot + +\nextslot{17} + +\setslot{\uc{Acute}{acute}} + \comment{The cyrillic Acute accent.} +\endsetslot + +\setslot{\uc{Caron}{caron}} + \comment{The Caron or h\'a\v cek accent.} +\endsetslot + +\setslot{\uc{cyrBreve}{cyrbreve}} + \comment{The cyrillic Breve accent.} +\endsetslot + +\setslot{\uc{cyrFlex}{cyrflex}} + \comment{Cyrillic Circumflex.} +\endsetslot + +\setslot{\uc{dblGrave}{dblgrave}} + \comment{The cyrillic dblGrave accent.} +\endsetslot + +\setslot{\uc{Dieresis}{dieresis}} + \comment{The cyrillic Dieresis accent.} +\endsetslot + +\setslot{\uc{DieresisAcute}{dieresisacute}} + \comment{The cyrillic DieresisAcute accent.} +\endsetslot + +\setslot{\uc{DieresisGrave}{dieresisgrave}} + \comment{The cyrillic DieresisGrave accent.} +\endsetslot + +\setslot{\uc{Grave}{grave}} + \comment{The cyrillic Grave accent.} +\endsetslot + +\setslot{\uc{Hungarumlaut}{hungarumlaut}} + \comment{The long Hungarian umlaut.} +\endsetslot + +\setslot{\uc{Macron}{macron}} + \comment{The Macron accent.} +\endsetslot + +\nextslot{32} + +\setslot{\uc{CYRAE}{cyrae}} + \comment{Cyrillic capital ligature a ie `\CYRAE'.} +\endsetslot + +\setslot{\uc{CYRGDSC}{cyrgdsc}} + \comment{Cyrillic capital letter ghe with descender `\CYRGDSC'.} +\endsetslot + +\setslot{\uc{CYRGHCRS}{cyrghcrs}} + \comment{Cyrillic capital letter ghe with stroke `\CYRGHCRS'.} +\endsetslot + +\setslot{\uc{CYRGHK}{cyrghk}} + \comment{Cyrillic capital letter ghe with middle hook `\CYRGHK'.} +\endsetslot + +\setslot{\uc{CYRABHCH}{cyrabhch}} + \comment{Cyrillic capital letter abkhasian che `\CYRABHCH'.} +\endsetslot + +\setslot{\uc{CYRABHCHDSC}{cyrabhchdsc}} + \comment{Cyrillic capital letter abkhasian che with descender `\CYRABHCHDSC'.} +\endsetslot + +\setslot{\uc{CYRSHHA}{cyrshha}} + \comment{Cyrillic capital letter shha `\CYRSHHA'.} +\endsetslot + +\setslot{\uc{CYRGDSC}{cyrgdsc}} + \comment{Cyrillic capital letter ghe with descender `\CYRGDSC'.} +\endsetslot + +\setslot{\uc{CYRABHDZE}{cyrabhdze}} + \comment{Cyrillic capital letter abkhasian dze `\CYRABHDZE'.} +\endsetslot + +\setslot{\uc{CYRZDSC}{cyrzdsc}} + \comment{Cyrillic capital letter ze with descender `\CYRZDSC'.} +\endsetslot + +\setslot{\uc{CYRKBEAK}{cyrkbeak}} + \comment{Cyrillic capital letter bashkir ka `\CYRKBEAK'.} +\endsetslot + +\setslot{\uc{CYRKDSC}{cyrkdsc}} + \comment{Cyrillic capital letter ka with descender `\CYRKDSC'.} +\endsetslot + +\setslot{\uc{CYRKHCRS}{cyrkhcrs}} + \comment{Cyrillic capital letter ka with stroke `\CYRKHCRS'.} +\endsetslot + +\setslot{\uc{CYRKHK}{cyrkhk}} + \comment{Cyrillic capital letter ka with hook `\CYRKHK'.} +\endsetslot + +\setslot{\uc{CYRKVCRS}{cyrkvcrs}} + \comment{Cyrillic capital letter ka with vertical stroke `\CYRKVCRS'.} +\endsetslot + +\setslot{\uc{CYRLDSC}{cyrldsc}} + \comment{Cyrillic capital letter el with descender `\CYRLDSC'.} +\endsetslot + +\setslot{\uc{CYRLHK}{cyrlhk}} + \comment{Cyrillic capital letter el with hook `\CYRLHK'.} +\endsetslot + +\setslot{\uc{CYRMDSC}{cyrmdsc}} + \comment{Cyrillic capital letter em with descender `\CYRMDSC'.} +\endsetslot + +\setslot{\uc{CYRNDSC}{cyrndsc}} + \comment{Cyrillic capital letter en with descender `\CYRNDSC'.} +\endsetslot + +\setslot{\uc{CYRNG}{cyrng}} + \comment{Cyrillic capital ligature en ghe `\CYRNG'.} +\endsetslot + +\setslot{\uc{CYRNHK}{cyrnhk}} + \comment{Cyrillic capital letter en with hook `\CYRNHK'.} +\endsetslot + +\setslot{\uc{CYRNLHK}{cyrnlhk}} + \comment{Cyrillic capital letter en with left hook `\CYRNLHK'.} +\endsetslot + +\setslot{\uc{CYRABHHA}{cyrabhha}} + \comment{Cyrillic capital letter abkhasian ha `\CYRABHHA'.} +\endsetslot + +\setslot{\uc{CYROTLD}{cyrotld}} + \comment{Cyrillic capital letter barred o `\CYROTLD'.} +\endsetslot + +\setslot{\uc{CYRPHK}{cyrphk}} + \comment{Cyrillic capital letter pe with middle hook `\CYRPHK'.} +\endsetslot + +\setslot{\uc{CYRRDSC}{cyrrdsc}} + \comment{Cyrillic capital letter er with descender `\CYRRDSC'.} +\endsetslot + +\setslot{\uc{CYRSDSC}{cyrsdsc}} + \comment{Cyrillic capital letter es with descender `\CYRSDSC'.} +\endsetslot + +\setslot{\uc{CYRTDSC}{cyrtdsc}} + \comment{Cyrillic capital letter te with descender `\CYRTDSC'.} +\endsetslot + +\setslot{\uc{CYRY}{cyry}} + \comment{Cyrillic capital letter straight u `\CYRY'.} +\endsetslot + +\setslot{\uc{CYRYHCRS}{cyryhcrs}} + \comment{Cyrillic capital letter straight u with stroke `\CYRYHCRS'.} +\endsetslot + +\setslot{\uc{CYRHDSC}{cyrhdsc}} + \comment{Cyrillic capital letter ha with descender `\CYRHDSC'.} +\endsetslot + +\setslot{\uc{CYRHHK}{cyrhhk}} + \comment{Cyrillic capital letter ha with hook `\CYRHHK'.} +\endsetslot + +\setslot{\uc{CYRCHLDSC}{cyrchldsc}} + \comment{Cyrillic capital letter khakassian che `\CYRCHLDSC'.} +\endsetslot + +\setslot{\uc{CYRCHRDSC}{cyrchrdsc}} + \comment{Cyrillic capital letter che with descender `\CYRCHRDSC'.} +\endsetslot + +\setslot{\uc{CYRCHVCRS}{cyrchvcrs}} + \comment{Cyrillic capital letter che with vertical stroke `\CYRCHVCRS'.} +\endsetslot + +\setslot{\uc{CYRSCHWA}{cyrschwa}} + \comment{Cyrillic capital letter schwa `\CYRSCHWA'.} +\endsetslot + +\setslot{\uc{CYRBYUS}{cyrbyus}} + \comment{Cyrillic capital letter big yus `\CYRBYUS'.} +\endsetslot + +\setslot{\uc{CYRFITA}{cyrfita}} + \comment{Cyrillic capital letter fita.} +\endsetslot + +\setslot{\uc{CYRIZH}{cyrizh}} + \comment{Cyrillic capital letter izhitsa `\CYRIZH'.} +\endsetslot + +\setslot{\uc{CYRYAT}{cyryat}} + \comment{Cyrillic capital letter yat `\CYRYAT'.} +\endsetslot + +\setslot{\uc{CYRQ}{cyrq}} + \comment{Cyrillic capital letter q `\CYRQ'.} +\endsetslot + +\setslot{\uc{CYRW}{cyrw}} + \comment{Cyrillic capital letter w `\CYRW'.} +\endsetslot + +\setslot{\uc{CYREPS}{cyreps}} + \comment{Cyrillic capital letter epsilon `\CYREPS'.} +\endsetslot + +\nextslot{80} + +\setslot{\lc{CYRAE}{cyrae}} + \comment{Cyrillic small ligature a ie `\cyrae'.} +\endsetslot + +\setslot{\lc{CYRGDSC}{cyrgdsc}} + \comment{Cyrillic small letter ghe with descender `\cyrgdsc'.} +\endsetslot + +\setslot{\lc{CYRGHCRS}{cyrghcrs}} + \comment{Cyrillic small letter ghe with stroke `\cyrghcrs'.} +\endsetslot + +\setslot{\lc{CYRGHK}{cyrghk}} + \comment{Cyrillic small letter ghe with middle hook `\cyrghk'.} +\endsetslot + +\setslot{\lc{CYRABHCH}{cyrabhch}} + \comment{Cyrillic small letter abkhasian che `\cyrabhch'.} +\endsetslot + +\setslot{\lc{CYRABHCHDSC}{cyrabhchdsc}} + \comment{Cyrillic small letter abkhasian che with descender `\cyrabhchdsc'.} +\endsetslot + +\setslot{\lc{CYRSHHA}{cyrshha}} + \comment{Cyrillic small letter shha `\cyrshha'.} +\endsetslot + +\setslot{\lc{CYRGDSC}{cyrgdsc}} + \comment{Cyrillic small letter ghe with descender `\cyrgdsc'.} +\endsetslot + +\setslot{\lc{CYRABHDZE}{cyrabhdze}} + \comment{Cyrillic small letter abkhasian dze `\cyrabhdze'.} +\endsetslot + +\setslot{\lc{CYRZDSC}{cyrzdsc}} + \comment{Cyrillic small letter ze with descender `\cyrzdsc'.} +\endsetslot + +\setslot{\lc{CYRKBEAK}{cyrkbeak}} + \comment{Cyrillic small letter bashkir ka `\cyrkbeak'.} +\endsetslot + +\setslot{\lc{CYRKDSC}{cyrkdsc}} + \comment{Cyrillic small letter ka with descender `\cyrkdsc'.} +\endsetslot + +\setslot{\lc{CYRKHCRS}{cyrkhcrs}} + \comment{Cyrillic small letter ka with stroke `\cyrkhcrs'.} +\endsetslot + +\setslot{\lc{CYRKHK}{cyrkhk}} + \comment{Cyrillic small letter ka with hook `\cyrkhk'.} +\endsetslot + +\setslot{\lc{CYRKVCRS}{cyrkvcrs}} + \comment{Cyrillic small letter ka with vertical stroke `\cyrkvcrs'.} +\endsetslot + +\setslot{\lc{CYRLDSC}{cyrldsc}} + \comment{Cyrillic small letter el with descender `\cyrldsc'.} +\endsetslot + +\setslot{\lc{CYRLHK}{cyrlhk}} + \comment{Cyrillic small letter el with hook `\cyrlhk'.} +\endsetslot + +\setslot{\lc{CYRMDSC}{cyrmdsc}} + \comment{Cyrillic small letter em with descender `\cyrmdsc'.} +\endsetslot + +\setslot{\lc{CYRNDSC}{cyrndsc}} + \comment{Cyrillic small letter en with descender `\cyrndsc'.} +\endsetslot + +\setslot{\lc{CYRNG}{cyrng}} + \comment{Cyrillic small ligature en ghe `\cyrng'.} +\endsetslot + +\setslot{\lc{CYRNHK}{cyrnhk}} + \comment{Cyrillic small letter en with hook `\cyrnhk'.} +\endsetslot + +\setslot{\lc{CYRNLHK}{cyrnlhk}} + \comment{Cyrillic small letter en with left hook `\cyrnlhk'.} +\endsetslot + +\setslot{\lc{CYRABHHA}{cyrabhha}} + \comment{Cyrillic small letter abkhasian ha `\cyrabhha'.} +\endsetslot + +\setslot{\lc{CYROTLD}{cyrotld}} + \comment{Cyrillic small letter barred o `\cyrotld'.} +\endsetslot + +\setslot{\lc{CYRPHK}{cyrphk}} + \comment{Cyrillic small letter pe with middle hook `\cyrphk'.} +\endsetslot + +\setslot{\lc{CYRRDSC}{cyrrdsc}} + \comment{Cyrillic small letter er with descender `\cyrrdsc'.} +\endsetslot + +\setslot{\lc{CYRSDSC}{cyrsdsc}} + \comment{Cyrillic small letter es with descender `\cyrsdsc'.} +\endsetslot + +\setslot{\lc{CYRTDSC}{cyrtdsc}} + \comment{Cyrillic small letter te with descender `\cyrtdsc'.} +\endsetslot + +\setslot{\lc{CYRY}{cyry}} + \comment{Cyrillic small letter straight u `\cyry'.} +\endsetslot + +\setslot{\lc{CYRYHCRS}{cyryhcrs}} + \comment{Cyrillic small letter straight u with stroke `\cyryhcrs'.} +\endsetslot + +\setslot{\lc{CYRHDSC}{cyrhdsc}} + \comment{Cyrillic small letter ha with descender `\cyrhdsc'.} +\endsetslot + +\setslot{\lc{CYRHHK}{cyrhhk}} + \comment{Cyrillic small letter ha with hook `\cyrhhk'.} +\endsetslot + +\setslot{\lc{CYRCHLDSC}{cyrchldsc}} + \comment{Cyrillic small letter khakassian che `\cyrchldsc'.} +\endsetslot + +\setslot{\lc{CYRCHRDSC}{cyrchrdsc}} + \comment{Cyrillic small letter che with descender `\cyrchrdsc'.} +\endsetslot + +\setslot{\lc{CYRCHVCRS}{cyrchvcrs}} + \comment{Cyrillic small letter che with vertical stroke `\cyrchvcrs'.} +\endsetslot + +\setslot{\lc{CYRSCHWA}{cyrschwa}} + \comment{Cyrillic small letter schwa `\cyrschwa'.} +\endsetslot + +\setslot{\lc{CYRBYUS}{cyrbyus}} + \comment{Cyrillic small letter big yus `\cyrbyus'.} +\endsetslot + +\setslot{\lc{CYRFITA}{cyrfita}} + \comment{Cyrillic small letter fita.} +\endsetslot + +\setslot{\lc{CYRIZH}{cyrizh}} + \comment{Cyrillic small letter izhitsa `\cyrizh'.} +\endsetslot + +\setslot{\lc{CYRYAT}{cyryat}} + \comment{Cyrillic small letter yat `\cyryat'.} +\endsetslot + +\setslot{\lc{CYRQ}{cyrq}} + \comment{Cyrillic small letter q `\cyrq'.} +\endsetslot + +\setslot{\lc{CYRW}{cyrw}} + \comment{Cyrillic small letter w `\cyrw'.} +\endsetslot + +\setslot{\lc{CYREPS}{cyreps}} + \comment{Cyrillic small letter epsilon `\cyreps'.} +\endsetslot + +\setslot{cyrvarb} + \comment{Serbian variant of the letter b.} +\endsetslot + +\setslot{cyrvard} + \comment{Serbian variant of the letter d.} +\endsetslot + +\setslot{cyrvarg} + \comment{Serbian variant of the letter g.} +\endsetslot + +\setslot{cyrvarp} + \comment{Serbian variant of the letter p.} +\endsetslot + +\setslot{cyrvart} + \comment{Serbian variant of the letter t.} +\endsetslot + +\setslot{\uc{CYRDJE}{cyrdje}} + \comment{Cyrillic capital letter dje `\CYRDJE'.} +\endsetslot + +\setslot{\uc{CYRGJE}{cyrgje}} + \comment{Cyrillic capital letter gje `\'\CYRG'.} +\endsetslot + +\nextslot{131} + +\setslot{\lc{CYRGJE}{cyrgje}} + \comment{Cyrillic small letter gje `\'\cyrg'.} +\endsetslot + +\nextslot{138} + +\setslot{\uc{CYRLJE}{cyrlje}} + \comment{Cyrillic capital letter lje `\CYRLJE'.} +\endsetslot + +\nextslot{140} + +\setslot{\uc{CYRNJE}{cyrnje}} + \comment{Cyrillic capital letter nje `\CYRNJE'.} +\endsetslot + +\setslot{\uc{CYRKJE}{cyrkje}} + \comment{Cyrillic capital letter kje.} +\endsetslot + +\setslot{\uc{CYRTSHE}{cyrtshe}} + \comment{Cyrillic capital letter tshe `\CYRTSHE'.} +\endsetslot + +\setslot{\uc{CYRDZHE}{cyrdzhe}} + \comment{Cyrillic capital letter dzhe `\CYRDZHE'.} +\endsetslot + +\setslot{\lc{CYRDJE}{cyrdje}} + \comment{Cyrillic small letter dje `\cyrdje'.} +\endsetslot + +\nextslot{154} + +\setslot{\lc{CYRLJE}{cyrlje}} + \comment{Cyrillic small letter lje `\cyrlje'.} +\endsetslot + +\nextslot{156} + +\setslot{\lc{CYRNJE}{cyrnje}} + \comment{Cyrillic small letter nje.} +\endsetslot + +\setslot{\lc{CYRKJE}{cyrkje}} + \comment{Cyrillic small letter kje.} +\endsetslot + +\setslot{\lc{CYRTSHE}{cyrtshe}} + \comment{Cyrillic small letter tshe `\cyrtshe'.} +\endsetslot + +\setslot{\lc{CYRDZHE}{cyrdzhe}} + \comment{Cyrillic small letter dzhe `\cyrdzhe'.} +\endsetslot + +\nextslot{161} + +\setslot{\uc{CYRUSHRT}{cyrushrt}} + \comment{Cyrillic capital letter short u `\CYRUSHRT'.} +\endsetslot + +\setslot{\lc{CYRUSHRT}{cyrushrt}} + \comment{Cyrillic small letter short u `\cyrushrt'.} +\endsetslot + +\setslot{\uc{CYRJE}{cyrje}} + \comment{Cyrillic capital letter je `\CYRJE'.} +\endsetslot + +\nextslot{165} + +\setslot{\uc{CYRGUP}{cyrgup}} + \comment{Cyrillic capital letter ghe with upturn `\CYRGUP'.} +\endsetslot + +\nextslot{168} + +\setslot{\uc{CYRYO}{cyryo}} + \comment{Cyrillic capital letter io `\CYRYO'.} +\endsetslot + +\nextslot{170} + +\setslot{\uc{CYRIE}{cyrie}} + \comment{Cyrillic capital letter ukrainian ie `\CYRIE'.} +\endsetslot + +\nextslot{175} + +\setslot{\uc{CYRYI}{cyryi}} + \comment{Cyrillic capital letter yi `\CYRYI'.} +\endsetslot + +\nextslot{178} + +\setslot{\uc{CYRII}{cyrii}} + \comment{Cyrillic capital letter byelorussian-ukrainian i `\CYRII'.} +\endsetslot + +\setslot{\lc{CYRII}{cyrii}} + \comment{Cyrillic small letter byelorussian-ukrainian i `\cyrii'.} +\endsetslot + +\setslot{\lc{CYRGUP}{cyrgup}} + \comment{Cyrillic small letter ghe with upturn `\cyrgup'.} +\endsetslot + +\nextslot{184} + +\setslot{\lc{CYRYO}{cyryo}} + \comment{Cyrillic small letter io `\cyryo'.} +\endsetslot + +\setslot{numero} + \comment{The numero sign `\textnumero', similar to the letter `N' + with a raised `o', unavailable in most PostScript fonts.} +\endsetslot + +\setslot{\lc{CYRIE}{cyrie}} + \comment{Cyrillic small letter ukrainian ie `\cyrie'.} +\endsetslot + +\nextslot{188} + +\setslot{\lc{CYRJE}{cyrje}} + \comment{Cyrillic small letter je `\cyrje'.} +\endsetslot + +\setslot{\uc{CYRDZE}{cyrdze}} + \comment{Cyrillic capital letter dze `\CYRDZE'.} +\endsetslot + +\setslot{\lc{CYRDZE}{cyrdze}} + \comment{Cyrillic small letter dze `\cyrdze'.} +\endsetslot + +\setslot{\lc{CYRYI}{cyryi}} + \comment{Cyrillic small letter yi `\cyryi'.} +\endsetslot + +\setslot{\uc{CYRA}{cyra}} + \comment{Cyrillic capital letter a `\CYRA'.} +\endsetslot + +\setslot{\uc{CYRB}{cyrb}} + \comment{Cyrillic capital letter be `\CYRB'.} +\endsetslot + +\setslot{\uc{CYRV}{cyrv}} + \comment{Cyrillic capital letter ve `\CYRV'.} +\endsetslot + +\setslot{\uc{CYRG}{cyrg}} + \comment{Cyrillic capital letter ghe `\CYRG'.} +\endsetslot + +\setslot{\uc{CYRD}{cyrd}} + \comment{Cyrillic capital letter de `\CYRD'.} +\endsetslot + +\setslot{\uc{CYRE}{cyre}} + \comment{Cyrillic capital letter ie `\CYRE'.} +\endsetslot + +\setslot{\uc{CYRZH}{cyrzh}} + \comment{Cyrillic capital letter zhe `\CYRZH'.} +\endsetslot + +\setslot{\uc{CYRZ}{cyrz}} + \comment{Cyrillic capital letter ze `\CYRZ'.} +\endsetslot + +\setslot{\uc{CYRI}{cyri}} + \comment{Cyrillic capital letter i `\CYRI'.} +\endsetslot + +\setslot{\uc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic capital letter short i `\CYRISHRT'.} +\endsetslot + +\setslot{\uc{CYRK}{cyrk}} + \comment{Cyrillic capital letter ka `\CYRK'.} +\endsetslot + +\setslot{\uc{CYRL}{cyrl}} + \comment{Cyrillic capital letter el `\CYRL'.} +\endsetslot + +\setslot{\uc{CYRM}{cyrm}} + \comment{Cyrillic capital letter em `\CYRM'.} +\endsetslot + +\setslot{\uc{CYRN}{cyrn}} + \comment{Cyrillic capital letter en `\CYRN'.} +\endsetslot + +\setslot{\uc{CYRO}{cyro}} + \comment{Cyrillic capital letter o `\CYRO'.} +\endsetslot + +\setslot{\uc{CYRP}{cyrp}} + \comment{Cyrillic capital letter pe `\CYRP'.} +\endsetslot + +\setslot{\uc{CYRR}{cyrr}} + \comment{Cyrillic capital letter er `\CYRR'.} +\endsetslot + +\setslot{\uc{CYRS}{cyrs}} + \comment{Cyrillic capital letter es `\CYRS'.} +\endsetslot + +\setslot{\uc{CYRT}{cyrt}} + \comment{Cyrillic capital letter te `\CYRT'.} +\endsetslot + +\setslot{\uc{CYRU}{cyru}} + \comment{Cyrillic capital letter u `\CYRU'.} +\endsetslot + +\setslot{\uc{CYRF}{cyrf}} + \comment{Cyrillic capital letter ef `\CYRF'.} +\endsetslot + +\setslot{\uc{CYRH}{cyrh}} + \comment{Cyrillic capital letter ha `\CYRH'.} +\endsetslot + +\setslot{\uc{CYRC}{cyrc}} + \comment{Cyrillic capital letter tse `\CYRC'.} +\endsetslot + +\setslot{\uc{CYRCH}{cyrch}} + \comment{Cyrillic capital letter che `\CYRCH'.} +\endsetslot + +\setslot{\uc{CYRSH}{cyrsh}} + \comment{Cyrillic capital letter sha `\CYRSH'.} +\endsetslot + +\setslot{\uc{CYRSHCH}{cyrshch}} + \comment{Cyrillic capital letter shcha `\CYRSHCH'.} +\endsetslot + +\setslot{\uc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic capital letter hard sign `\CYRHRDSN'.} +\endsetslot + +\setslot{\uc{CYRERY}{cyrery}} + \comment{Cyrillic capital letter yeru `\CYRERY'.} +\endsetslot + +\setslot{\uc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic capital letter soft sign `\CYRSFTSN'.} +\endsetslot + +\setslot{\uc{CYREREV}{cyrerev}} + \comment{Cyrillic capital letter e `\CYREREV'.} +\endsetslot + +\setslot{\uc{CYRYU}{cyryu}} + \comment{Cyrillic capital letter yu `\CYRYU'.} +\endsetslot + +\setslot{\uc{CYRYA}{cyrya}} + \comment{Cyrillic capital letter ya `\CYRYA'.} +\endsetslot + +\setslot{\lc{CYRA}{cyra}} + \comment{Cyrillic small letter a `\cyra'.} +\endsetslot + +\setslot{\lc{CYRB}{cyrb}} + \comment{Cyrillic small letter be `\cyrb'.} +\endsetslot + +\setslot{\lc{CYRV}{cyrv}} + \comment{Cyrillic small letter ve `\cyrv'.} +\endsetslot + +\setslot{\lc{CYRG}{cyrg}} + \comment{Cyrillic small letter ghe `\cyrg'.} +\endsetslot + +\setslot{\lc{CYRD}{cyrd}} + \comment{Cyrillic small letter de `\cyrd'.} +\endsetslot + +\setslot{\lc{CYRE}{cyre}} + \comment{Cyrillic small letter ie `\cyre'.} +\endsetslot + +\setslot{\lc{CYRZH}{cyrzh}} + \comment{Cyrillic small letter zhe `\cyrzh'.} +\endsetslot + +\setslot{\lc{CYRZ}{cyrz}} + \comment{Cyrillic small letter ze `\cyrz'.} +\endsetslot + +\setslot{\lc{CYRI}{cyri}} + \comment{Cyrillic small letter i `\cyri'.} +\endsetslot + +\setslot{\lc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic small letter short i `\cyrishrt'.} +\endsetslot + +\setslot{\lc{CYRK}{cyrk}} + \comment{Cyrillic small letter ka `\cyrk'.} +\endsetslot + +\setslot{\lc{CYRL}{cyrl}} + \comment{Cyrillic small letter el `\cyrl'.} +\endsetslot + +\setslot{\lc{CYRM}{cyrm}} + \comment{Cyrillic small letter em `\cyrm'.} +\endsetslot + +\setslot{\lc{CYRN}{cyrn}} + \comment{Cyrillic small letter en `\cyrn'.} +\endsetslot + +\setslot{\lc{CYRO}{cyro}} + \comment{Cyrillic small letter o `\cyro'.} +\endsetslot + +\setslot{\lc{CYRP}{cyrp}} + \comment{Cyrillic small letter pe `\cyrp'.} +\endsetslot + +\setslot{\lc{CYRR}{cyrr}} + \comment{Cyrillic small letter er `\cyrr'.} +\endsetslot + +\setslot{\lc{CYRS}{cyrs}} + \comment{Cyrillic small letter es `\cyrs'.} +\endsetslot + +\setslot{\lc{CYRT}{cyrt}} + \comment{Cyrillic small letter te `\cyrt'.} +\endsetslot + +\setslot{\lc{CYRU}{cyru}} + \comment{Cyrillic small letter u `\cyru'.} +\endsetslot + +\setslot{\lc{CYRF}{cyrf}} + \comment{Cyrillic small letter ef `\cyrf'.} +\endsetslot + +\setslot{\lc{CYRH}{cyrh}} + \comment{Cyrillic small letter ha `\cyrh'.} +\endsetslot + +\setslot{\lc{CYRC}{cyrc}} + \comment{Cyrillic small letter tse `\cyrc'.} +\endsetslot + +\setslot{\lc{CYRCH}{cyrch}} + \comment{Cyrillic small letter che `\cyrch'.} +\endsetslot + +\setslot{\lc{CYRSH}{cyrsh}} + \comment{Cyrillic small letter sha `\cyrsh'.} +\endsetslot + +\setslot{\lc{CYRSHCH}{cyrshch}} + \comment{Cyrillic small letter shcha `\cyrshch'.} +\endsetslot + +\setslot{\lc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic small letter hard sign `\cyrhrdsn'.} +\endsetslot + +\setslot{\lc{CYRERY}{cyrery}} + \comment{Cyrillic small letter yeru `\cyrery'.} +\endsetslot + +\setslot{\lc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic small letter soft sign `\cyrsftsn'.} +\endsetslot + +\setslot{\lc{CYREREV}{cyrerev}} + \comment{Cyrillic small letter e `\cyrerev'.} +\endsetslot + +\setslot{\lc{CYRYU}{cyryu}} + \comment{Cyrillic small letter yu `\cyryu'.} +\endsetslot + +\setslot{\lc{CYRYA}{cyrya}} + \comment{Cyrillic small letter ya `\cyrya'.} +\endsetslot + +\endencoding +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/README b/Master/texmf-dist/tex/fontinst/cyrfinst/README new file mode 100644 index 00000000000..e5214358b39 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/README @@ -0,0 +1,51 @@ +This directory contains files which provide support of Cyrillic fonts +and encodings for FONTINST. + +Several font encodings (with variants) are supported (all *.etx +files). Install all *.etx, *.mtx, *.tex files contained in this +directory and subdirectories to your texmf tree. In this package, we +support various glyph naming schemes (not only Adobe one). If you have +Cyrillic fonts which use different glyph names which are not supported +here, please send AFM files or information about glyph naming schemes, +so that those fonts will also be supported for using with +fontinst/cyrfinst. Please send additional glyph naming schemes used +in various Cyrillic fonts (type1, type3, truetype) to add into this +file. + +To use fontinst with Cyrillic, put the following lines in the +beginning of the fontinst job: + +\input fontinst.sty +\input fnstcorr +\input cyralias + +Then for all non-adobe fonts (with non-standard glyph names, or +speaking more strictly, for all fonts that require non-empty glyph +name prefix shown below) write: + +\aliasfonts{prefix1-}{prefix2}{font1,font2,% +font3,...,fontN} + +where "prefix1-" is a glyph name prefix defined in cyralias.tex; and +"prefix2" is a font name prefix (it may well be empty; it was only +made for space economy), so that font names are constructed by +concatenation of "prefix2" and "font*". This will generate mtx and pl +files for all specified fonts with T2 glyph names. + +Warning: the command \fromafm regenerates mtx file, so do not use this +command for fonts which require non-empty "prefix1-", --- use \frommtx +instead (or ensure to set \charnameprefix accordingly), or \fromany +in recent versions of fontinst. + +The idea behind glyph aliasing is that standard T2 cyrillic glyph +names could be used everywhere (cyrillic.mtx, *.etx, your local mtx +files, etc), and one file serves all possible non-standard glyph +names! We also consider this glyph aliasing mechanism as an important +way to correct glyph naming bugs in certain fonts. + +Note also, that one should process fontinst cyrillic files with LaTeX +(not Plain TeX). + +You can get nicely formatted sources of *.etx and *.mtx files by +processing them with LaTeX. E.g., "latex t2a.etx" will generate +"t2a.dvi" which documents the T2A encoding vector. diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/cyrillic.mtx b/Master/texmf-dist/tex/fontinst/cyrfinst/cyrillic.mtx new file mode 100644 index 00000000000..3a7dd11a433 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/cyrillic.mtx @@ -0,0 +1,829 @@ +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc} + +\title{The {\tt fontinst} cyrillic glyphs} +\author{Werner Lemberg, Vladimir Volovich} +\date{31 October 1998\\ +Version 0.2} + +\begin{document} +\maketitle + +\metrics + +\needsfontinstversion{1.800} + +% \unfakable is a glyph which can't be faked. + +\setcommand\unfakable#1{ + \setglyph{#1} + \ifisglyph{#1-not}\then + \moveup{\neg{\depth{#1-not}}} + \glyphrule{ + \width{#1-not} + }{ + \add{\depth{#1-not}}{\height{#1-not}} + } + \resetitalic{\italic{#1-not}} + \moveup{\depth{#1-not}} + \else + \glyphrule{500}{500} + \fi + \glyphwarning{missing glyph `#1'} + \endsetglyph +} + +% A top accent is set by placing the center of the accent at the given +% position along the width of the letter, raised up by the difference +% between the height of the letter and the xheight. + +\setcommand\topaccent#1#2#3{ + \push + \moveup{\max{0}{\sub{\height{#1}}{\int{xheight}}}} + \movert{\add{\sub{\scale{\width{#1}}{#3}}{\scale{\width{#2}}{500}}} + {\scale{\sub{\height{#1}}{\int{xheight}}}{\int{italicslant}}}} + \glyph{#2}{1000} + \pop + \glyph{#1}{1000} +} + +% A bottom accent is set by placing the center of the accent at the given +% position along the width of the letter. + +\setcommand\botaccent#1#2#3{ + \push + \movert{\sub{\scale{\width{#1}}{#3}}{\scale{\width{#2}}{500}}} + \glyph{#2}{1000} + \pop + \glyph{#1}{1000} +} + +% A c&sc glyph is created by shrinking the cap glyph, and adding extra +% space. + +\setcommand\cscglyph#1{ + \movert{\int{smallcapsextraspace}} + \glyph{#1}{\int{smallcapsscale}} + \movert{\int{smallcapsextraspace}} +} + +% A c&sc accent is created by moving a shrunk accent up by the +% difference between a scaled x and a scaled X. + +\setcommand\cscaccent#1{ + \moveup{\scale{\int{xheight}}{\sub{1000}{\int{smallcapsscale}}}} + \cscglyph{#1} + \moveup{\scale{\int{xheight}}{\sub{\int{smallcapsscale}}{1000}}} +} + +\comment{\section{Default values}} + +\setint{italicslant}{0} +\setint{xheight}{\height{x}} +\setint{capheight}{\height{A}} +\setint{ascender}{\height{d}} +\setint{descender}{\depth{g}} +\setint{underlinethickness}{40} +\setint{visiblespacedepth}{200} +\setint{visiblespacewidth}{400} +\setint{visiblespacesurround}{50} +\setint{smallcapsscale}{800} +\setint{smallcapskerning}{900} + +\ifisint{monowidth}\then + \setint{capspacing}{0} + \setint{smallcapsextraspace} + {\div{\scale{\width{x}}{\sub{1000}{\int{smallcapsscale}}}}{2}} +\else + \setint{capspacing}{50} + \setint{smallcapsextraspace}{0} +\fi + +\makeatletter +\setcommand\cyrglyph#1#2#3 { + \@for\temp@a:=#2\do{ + \ifisglyph{\temp@a}\then + \setglyph{#1}\glyph{\temp@a}{1000}\endsetglyph + \fi + } + \unfakable{#1} + \csname cyr@extra@#3\endcsname{#1} +} +\let\cyr@extra@\@gobble +\expandafter\def\csname cyr@extra@*\endcsname#1{ + \setglyph{#1small} + \cscglyph{#1} + \endsetglyph + \setleftrightkerning{#1small}{#1}{\int{smallcapskerning}} +} +\def\cyr@extra@A#1{ + \setglyph{#1small} + \cscaccent{#1} + \endsetglyph +} +\makeatother + +\unfakable{cedilla} +\unfakable{acute} +\unfakable{dieresis} +\unfakable{breve} +\unfakable{dotlessi} +\unfakable{endash} +\unfakable{emdash} +\cyrglyph{currency}{} +\cyrglyph{angleleft}{} +\cyrglyph{angleright}{} + +% MODIFIER LETTER LOW GRAVE ACCENT +\cyrglyph{gravecross}{} + +% MODIFIER LETTER LOW ACUTE ACCENT +\cyrglyph{acutecross}{} + +% COMBINING SHORT STROKE OVERLAY +\cyrglyph{hcross}{} + +% CAPITAL CYRILLIC BREVE +\cyrglyph{cyrBreve}{}A + +% CAPITAL CYRILLIC CIRCUMFLEX +\cyrglyph{cyrFlex}{}A + +% CAPITAL DOUBLE GRAVE ACCENT +\cyrglyph{dblGrave}{}A + +% CYRILLIC BREVE +\cyrglyph{cyrbreve}{breve}A + +% CYRILLIC CIRCUMFLEX +\cyrglyph{cyrflex}{}A + +% DOUBLE GRAVE ACCENT +\cyrglyph{dblgrave}{}A + +% CYRILLIC CAPITAL LETTER IO +\setglyph{CYRYO}\topaccent{CYRE}{dieresis}{500}\endsetglyph +\cyrglyph{CYRYO}{}* + +% CYRILLIC CAPITAL LETTER DJE +\cyrglyph{CYRDJE}{}* + +% CYRILLIC CAPITAL LETTER GJE +\setglyph{CYRGJE}\topaccent{CYRG}{acute}{500}\endsetglyph +\cyrglyph{CYRGJE}{}* + +% CYRILLIC CAPITAL LETTER UKRAINIAN IE +\cyrglyph{CYRIE}{}* + +% CYRILLIC CAPITAL LETTER DZE +\cyrglyph{CYRDZE}{S}* + +% CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +\cyrglyph{CYRII}{I}* + +% CYRILLIC CAPITAL LETTER YI +\setglyph{CYRYI}\topaccent{I}{dieresis}{500}\endsetglyph +\cyrglyph{CYRYI}{}* + +% CYRILLIC CAPITAL LETTER JE +\cyrglyph{CYRJE}{J}* + +% CYRILLIC CAPITAL LETTER LJE +\cyrglyph{CYRLJE}{}* + +% CYRILLIC CAPITAL LETTER NJE +\cyrglyph{CYRNJE}{}* + +% CYRILLIC CAPITAL LETTER TSHE +\cyrglyph{CYRTSHE}{}* + +% CYRILLIC CAPITAL LETTER KJE +\setglyph{CYRKJE}\topaccent{CYRK}{acute}{500}\endsetglyph +\cyrglyph{CYRKJE}{}* + +% CYRILLIC CAPITAL LETTER SHORT U +\setglyph{CYRUSHRT}\topaccent{CYRU}{cyrbreve}{500}\endsetglyph +\cyrglyph{CYRUSHRT}{}* + +% CYRILLIC CAPITAL LETTER DZHE +\cyrglyph{CYRDZHE}{}* + +% CYRILLIC CAPITAL LETTER A +\cyrglyph{CYRA}{}* + +% CYRILLIC CAPITAL LETTER BE +\cyrglyph{CYRB}{}* + +% CYRILLIC CAPITAL LETTER VE +\cyrglyph{CYRV}{}* + +% CYRILLIC CAPITAL LETTER GHE +\cyrglyph{CYRG}{}* + +% CYRILLIC CAPITAL LETTER DE +\cyrglyph{CYRD}{}* + +% CYRILLIC CAPITAL LETTER IE +\cyrglyph{CYRE}{}* + +% CYRILLIC CAPITAL LETTER ZHE +\cyrglyph{CYRZH}{}* + +% CYRILLIC CAPITAL LETTER ZE +\cyrglyph{CYRZ}{}* + +% CYRILLIC CAPITAL LETTER I +\cyrglyph{CYRI}{}* + +% CYRILLIC CAPITAL LETTER SHORT I +\cyrglyph{CYRISHRT}{}* + +% CYRILLIC CAPITAL LETTER KA +\cyrglyph{CYRK}{}* + +% CYRILLIC CAPITAL LETTER EL +\cyrglyph{CYRL}{}* + +% CYRILLIC CAPITAL LETTER EM +\cyrglyph{CYRM}{}* + +% CYRILLIC CAPITAL LETTER EN +\cyrglyph{CYRN}{}* + +% CYRILLIC CAPITAL LETTER O +\cyrglyph{CYRO}{}* + +% CYRILLIC CAPITAL LETTER PE +\cyrglyph{CYRP}{}* + +% CYRILLIC CAPITAL LETTER ER +\cyrglyph{CYRR}{}* + +% CYRILLIC CAPITAL LETTER ES +\cyrglyph{CYRS}{}* + +% CYRILLIC CAPITAL LETTER TE +\cyrglyph{CYRT}{}* + +% CYRILLIC CAPITAL LETTER U +\cyrglyph{CYRU}{}* + +% CYRILLIC CAPITAL LETTER EF +\cyrglyph{CYRF}{}* + +% CYRILLIC CAPITAL LETTER HA +\cyrglyph{CYRH}{}* + +% CYRILLIC CAPITAL LETTER TSE +\cyrglyph{CYRC}{}* + +% CYRILLIC CAPITAL LETTER CHE +\cyrglyph{CYRCH}{}* + +% CYRILLIC CAPITAL LETTER SHA +\cyrglyph{CYRSH}{}* + +% CYRILLIC CAPITAL LETTER SHCHA +\cyrglyph{CYRSHCH}{}* + +% CYRILLIC CAPITAL LETTER HARD SIGN +\cyrglyph{CYRHRDSN}{}* + +% CYRILLIC CAPITAL LETTER YERU +\cyrglyph{CYRERY}{}* + +% CYRILLIC CAPITAL LETTER SOFT SIGN +\cyrglyph{CYRSFTSN}{}* + +% CYRILLIC CAPITAL LETTER E +\cyrglyph{CYREREV}{}* + +% CYRILLIC CAPITAL LETTER YU +\cyrglyph{CYRYU}{}* + +% CYRILLIC CAPITAL LETTER YA +\cyrglyph{CYRYA}{}* + +% CYRILLIC SMALL LETTER A +\cyrglyph{cyra}{} + +% CYRILLIC SMALL LETTER BE +\cyrglyph{cyrb}{} + +% CYRILLIC SMALL LETTER VE +\cyrglyph{cyrv}{} + +% CYRILLIC SMALL LETTER GHE +\cyrglyph{cyrg}{} + +% CYRILLIC SMALL LETTER DE +\cyrglyph{cyrd}{} + +% CYRILLIC SMALL LETTER IE +\cyrglyph{cyre}{} + +% CYRILLIC SMALL LETTER ZHE +\cyrglyph{cyrzh}{} + +% CYRILLIC SMALL LETTER ZE +\cyrglyph{cyrz}{} + +% CYRILLIC SMALL LETTER I +\cyrglyph{cyri}{} + +% CYRILLIC SMALL LETTER SHORT I +\cyrglyph{cyrishrt}{} + +% CYRILLIC SMALL LETTER KA +\cyrglyph{cyrk}{} + +% CYRILLIC SMALL LETTER EL +\cyrglyph{cyrl}{} + +% CYRILLIC SMALL LETTER EM +\cyrglyph{cyrm}{} + +% CYRILLIC SMALL LETTER EN +\cyrglyph{cyrn}{} + +% CYRILLIC SMALL LETTER O +\cyrglyph{cyro}{} + +% CYRILLIC SMALL LETTER PE +\cyrglyph{cyrp}{} + +% CYRILLIC SMALL LETTER ER +\cyrglyph{cyrr}{} + +% CYRILLIC SMALL LETTER ES +\cyrglyph{cyrs}{} + +% CYRILLIC SMALL LETTER TE +\cyrglyph{cyrt}{} + +% CYRILLIC SMALL LETTER U +\cyrglyph{cyru}{} + +% CYRILLIC SMALL LETTER EF +\cyrglyph{cyrf}{} + +% CYRILLIC SMALL LETTER HA +\cyrglyph{cyrh}{} + +% CYRILLIC SMALL LETTER TSE +\cyrglyph{cyrc}{} + +% CYRILLIC SMALL LETTER CHE +\cyrglyph{cyrch}{} + +% CYRILLIC SMALL LETTER SHA +\cyrglyph{cyrsh}{} + +% CYRILLIC SMALL LETTER SHCHA +\cyrglyph{cyrshch}{} + +% CYRILLIC SMALL LETTER HARD SIGN +\cyrglyph{cyrhrdsn}{} + +% CYRILLIC SMALL LETTER YERU +\cyrglyph{cyrery}{} + +% CYRILLIC SMALL LETTER SOFT SIGN +\cyrglyph{cyrsftsn}{} + +% CYRILLIC SMALL LETTER E +\cyrglyph{cyrerev}{} + +% CYRILLIC SMALL LETTER YU +\cyrglyph{cyryu}{} + +% CYRILLIC SMALL LETTER YA +\cyrglyph{cyrya}{} + +% CYRILLIC SMALL LETTER IO +\setglyph{cyryo}\topaccent{cyre}{dieresis}{500}\endsetglyph +\cyrglyph{cyryo}{} + +% CYRILLIC SMALL LETTER DJE +\cyrglyph{cyrdje}{} + +% CYRILLIC SMALL LETTER GJE +\setglyph{cyrgje}\topaccent{cyrg}{acute}{500}\endsetglyph +\cyrglyph{cyrgje}{} + +% CYRILLIC SMALL LETTER UKRAINIAN IE +\cyrglyph{cyrie}{} + +% CYRILLIC SMALL LETTER DZE +\cyrglyph{cyrdze}{s} + +% CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +\cyrglyph{cyrii}{i} + +% CYRILLIC SMALL LETTER YI +\setglyph{cyryi}\topaccent{dotlessi}{dieresis}{500}\endsetglyph +\cyrglyph{cyryi}{} + +% CYRILLIC SMALL LETTER JE +\cyrglyph{cyrje}{j} + +% CYRILLIC SMALL LETTER LJE +\cyrglyph{cyrlje}{} + +% CYRILLIC SMALL LETTER NJE +\cyrglyph{cyrnje}{} + +% CYRILLIC SMALL LETTER TSHE +\cyrglyph{cyrtshe}{} + +% CYRILLIC SMALL LETTER KJE +\setglyph{cyrkje}\topaccent{cyrk}{acute}{500}\endsetglyph +\cyrglyph{cyrkje}{} + +% CYRILLIC SMALL LETTER SHORT U +\setglyph{cyrushrt}\topaccent{cyru}{cyrbreve}{500}\endsetglyph +\cyrglyph{cyrushrt}{} + +% CYRILLIC SMALL LETTER DZHE +\cyrglyph{cyrdzhe}{} + +% CYRILLIC CAPITAL LETTER YAT +\cyrglyph{CYRYAT}{}* + +% CYRILLIC SMALL LETTER YAT +\cyrglyph{cyryat}{} + +% CYRILLIC CAPITAL LETTER BIG YUS +\cyrglyph{CYRBYUS}{}* + +% CYRILLIC SMALL LETTER BIG YUS +\cyrglyph{cyrbyus}{} + +% CYRILLIC CAPITAL LETTER FITA +\cyrglyph{CYRFITA}{CYROTLD}* + +% CYRILLIC SMALL LETTER FITA +\cyrglyph{cyrfita}{cyrotld} + +% CYRILLIC CAPITAL LETTER BARRED O +\cyrglyph{CYROTLD}{CYRFITA}* + +% CYRILLIC SMALL LETTER BARRED O +\cyrglyph{cyrotld}{cyrfita} + +% CYRILLIC CAPITAL LETTER IZHITSA +\cyrglyph{CYRIZH}{}* + +% CYRILLIC SMALL LETTER IZHITSA +\cyrglyph{cyrizh}{} + +% CYRILLIC CAPITAL LETTER GHE WITH UPTURN +\cyrglyph{CYRGUP}{CYRG}* + +% CYRILLIC SMALL LETTER GHE WITH UPTURN +\cyrglyph{cyrgup}{cyrg} + +% CYRILLIC CAPITAL LETTER GHE WITH STROKE +\cyrglyph{CYRGHCRS}{}* + +% CYRILLIC SMALL LETTER GHE WITH STROKE +\cyrglyph{cyrghcrs}{} + +% CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK +\cyrglyph{CYRGHK}{}* + +% CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK +\cyrglyph{cyrghk}{} + +% CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER +\cyrglyph{CYRZHDSC}{}* + +% CYRILLIC SMALL LETTER ZHE WITH DESCENDER +\cyrglyph{cyrzhdsc}{} + +% CYRILLIC CAPITAL LETTER ZE WITH DESCENDER +\setglyph{CYRZDSC}\botaccent{CYRZ}{cedilla}{500}\endsetglyph +\cyrglyph{CYRZDSC}{}* + +% CYRILLIC SMALL LETTER ZE WITH DESCENDER +\setglyph{cyrzdsc}\botaccent{cyrz}{cedilla}{500}\endsetglyph +\cyrglyph{cyrzdsc}{} + +% CYRILLIC CAPITAL LETTER KA WITH DESCENDER +\cyrglyph{CYRKDSC}{}* + +% CYRILLIC SMALL LETTER KA WITH DESCENDER +\cyrglyph{cyrkdsc}{} + +% CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE +\cyrglyph{CYRKVCRS}{}* + +% CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE +\cyrglyph{cyrkvcrs}{} + +% CYRILLIC CAPITAL LETTER KA WITH STROKE +\cyrglyph{CYRKHCRS}{}* + +% CYRILLIC SMALL LETTER KA WITH STROKE +\cyrglyph{cyrkhcrs}{} + +% CYRILLIC CAPITAL LETTER BASHKIR KA +\cyrglyph{CYRKBEAK}{}* + +% CYRILLIC SMALL LETTER BASHKIR KA +\cyrglyph{cyrkbeak}{} + +% CYRILLIC CAPITAL LETTER EN WITH DESCENDER +\cyrglyph{CYRNDSC}{}* + +% CYRILLIC SMALL LETTER EN WITH DESCENDER +\cyrglyph{cyrndsc}{} + +% CYRILLIC CAPITAL LIGATURE EN GHE +\cyrglyph{CYRNG}{}* + +% CYRILLIC SMALL LIGATURE EN GHE +\cyrglyph{cyrng}{} + +% CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK +\cyrglyph{CYRPHK}{}* + +% CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK +\cyrglyph{cyrphk}{} + +% CYRILLIC CAPITAL LETTER ABKHASIAN HA +\cyrglyph{CYRABHHA}{}* + +% CYRILLIC SMALL LETTER ABKHASIAN HA +\cyrglyph{cyrabhha}{} + +% CYRILLIC CAPITAL LETTER ES WITH DESCENDER +\setglyph{CYRSDSC}\botaccent{CYRS}{cedilla}{500}\endsetglyph +\cyrglyph{CYRSDSC}{}* + +% CYRILLIC SMALL LETTER ES WITH DESCENDER +\setglyph{cyrsdsc}\botaccent{cyrs}{cedilla}{500}\endsetglyph +\cyrglyph{cyrsdsc}{} + +% CYRILLIC CAPITAL LETTER TE WITH DESCENDER +\cyrglyph{CYRTDSC}{}* + +% CYRILLIC SMALL LETTER TE WITH DESCENDER +\cyrglyph{cyrtdsc}{} + +% CYRILLIC CAPITAL LETTER STRAIGHT U +\cyrglyph{CYRY}{}* + +% CYRILLIC SMALL LETTER STRAIGHT U +\cyrglyph{cyry}{} + +% CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE +\cyrglyph{CYRYHCRS}{}* + +% CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE +\cyrglyph{cyryhcrs}{} + +% CYRILLIC CAPITAL LETTER HA WITH DESCENDER +\cyrglyph{CYRHDSC}{}* + +% CYRILLIC SMALL LETTER HA WITH DESCENDER +\cyrglyph{cyrhdsc}{} + +% CYRILLIC CAPITAL LIGATURE TE TSE +\cyrglyph{CYRTETSE}{}* + +% CYRILLIC SMALL LIGATURE TE TSE +\cyrglyph{cyrtetse}{} + +% CYRILLIC CAPITAL LETTER CHE WITH DESCENDER +\cyrglyph{CYRCHRDSC}{}* + +% CYRILLIC SMALL LETTER CHE WITH DESCENDER +\cyrglyph{cyrchrdsc}{} + +% CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE +\cyrglyph{CYRCHVCRS}{}* + +% CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE +\cyrglyph{cyrchvcrs}{} + +% CYRILLIC CAPITAL LETTER SHHA +\cyrglyph{CYRSHHA}{}* + +% CYRILLIC SMALL LETTER SHHA +\cyrglyph{cyrshha}{} + +% CYRILLIC CAPITAL LETTER ABKHASIAN CHE +\cyrglyph{CYRABHCH}{}* + +% CYRILLIC SMALL LETTER ABKHASIAN CHE +\cyrglyph{cyrabhch}{} + +% CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER +\cyrglyph{CYRABHCHDSC}{}* + +% CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER +\cyrglyph{cyrabhchdsc}{} + +% CYRILLIC LETTER PALOCHKA +\cyrglyph{CYRpalochka}{I} + +% CYRILLIC CAPITAL LETTER KA WITH HOOK +\cyrglyph{CYRKHK}{}* + +% CYRILLIC SMALL LETTER KA WITH HOOK +\cyrglyph{cyrkhk}{} + +% CYRILLIC CAPITAL LETTER EN WITH HOOK +\cyrglyph{CYRNHK}{}* + +% CYRILLIC SMALL LETTER EN WITH HOOK +\cyrglyph{cyrnhk}{} + +% CYRILLIC CAPITAL LETTER KHAKASSIAN CHE +\cyrglyph{CYRCHLDSC}{}* + +% CYRILLIC SMALL LETTER KHAKASSIAN CHE +\cyrglyph{cyrchldsc}{} + +% CYRILLIC CAPITAL LIGATURE A IE +\cyrglyph{CYRAE}{AE}* + +% CYRILLIC SMALL LIGATURE A IE +\cyrglyph{cyrae}{ae} + +% CYRILLIC CAPITAL LETTER SCHWA +\cyrglyph{CYRSCHWA}{}* + +% CYRILLIC SMALL LETTER SCHWA +\cyrglyph{cyrschwa}{} + +% CYRILLIC CAPITAL LETTER ABKHASIAN DZE +\cyrglyph{CYRABHDZE}{}* + +% CYRILLIC SMALL LETTER ABKHASIAN DZE +\cyrglyph{cyrabhdze}{} + +% CYRILLIC CAPITAL LETTER ER WITH HOOK +\cyrglyph{CYRRHK}{}* + +% CYRILLIC SMALL LETTER ER WITH HOOK +\cyrglyph{cyrrhk}{} + +% NUMERO SIGN +\cyrglyph{numero}{} + +% LEFT-POINTING ANGLE BRACKET +\cyrglyph{cyrlangle}{angleleft} + +% RIGHT-POINTING ANGLE BRACKET +\cyrglyph{cyrrangle}{angleright} + +% CYRILLIC CAPITAL LETTER DELTA +\cyrglyph{CYRDELTA}{}* + +% CYRILLIC CAPITAL LETTER EPSILON +\cyrglyph{CYREPS}{}* + +% CYRILLIC CAPITAL LETTER GHE WITH DESCENDER +\cyrglyph{CYRGDSC}{}* + +% CYRILLIC CAPITAL LETTER GHE WITH STROKE AND DESCENDER +\cyrglyph{CYRGDSCHCRS}{}* + +% CYRILLIC CAPITAL LETTER HA WITH STROKE +\cyrglyph{CYRHHCRS}{}* + +% CYRILLIC CAPITAL LETTER HA WITH HOOK +\cyrglyph{CYRHHK}{}* + +% CYRILLIC CAPITAL LETTER EL WITH DESCENDER +\cyrglyph{CYRLDSC}{}* + +% CYRILLIC CAPITAL LETTER EL WITH HOOK +\cyrglyph{CYRLHK}{}* + +% CYRILLIC CAPITAL LETTER EM WITH DESCENDER +\cyrglyph{CYRMDSC}{}* + +% CYRILLIC CAPITAL LETTER EM WITH HOOK +\cyrglyph{CYRMHK}{}* + +% CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK +\cyrglyph{CYRNLHK}{}* + +% CYRILLIC CAPITAL LETTER Q +\cyrglyph{CYRQ}{Q}* + +% CYRILLIC CAPITAL LETTER ER WITH DESCENDER +\cyrglyph{CYRRDSC}{}* + +% CYRILLIC CAPITAL LETTER ER WITH STROKE +\cyrglyph{CYRRTICK}{}* + +% CYRILLIC CAPITAL LETTER ES WITH STROKE +\cyrglyph{CYRSACRS}{}* + +% CYRILLIC CAPITAL LETTER W +\cyrglyph{CYRW}{W}* + +% CYRILLIC SMALL LETTER DELTA +\cyrglyph{cyrdelta}{} + +% CYRILLIC SMALL LETTER EPSILON +\cyrglyph{cyreps}{} + +% CYRILLIC SMALL LETTER GHE WITH DESCENDER +\cyrglyph{cyrgdsc}{} + +% CYRILLIC SMALL LETTER GHE WITH STROKE AND DESCENDER +\cyrglyph{cyrgdschcrs}{} + +% CYRILLIC SMALL LETTER HA WITH STROKE +\cyrglyph{cyrhhcrs}{} + +% CYRILLIC SMALL LETTER HA WITH HOOK +\cyrglyph{cyrhhk}{} + +% CYRILLIC SMALL LETTER EL WITH DESCENDER +\cyrglyph{cyrldsc}{} + +% CYRILLIC SMALL LETTER EL WITH HOOK +\cyrglyph{cyrlhk}{} + +% CYRILLIC SMALL LETTER EM WITH DESCENDER +\cyrglyph{cyrmdsc}{} + +% CYRILLIC SMALL LETTER EM WITH HOOK +\cyrglyph{cyrmhk}{} + +% CYRILLIC SMALL LETTER EN WITH LEFT HOOK +\cyrglyph{cyrnlhk}{} + +% CYRILLIC SMALL LETTER Q +\cyrglyph{cyrq}{q} + +% CYRILLIC SMALL LETTER ER WITH DESCENDER +\cyrglyph{cyrrdsc}{} + +% CYRILLIC SMALL LETTER ER WITH STROKE +\cyrglyph{cyrrtick}{} + +% CYRILLIC SMALL LETTER ES WITH STROKE +\cyrglyph{cyrsacrs}{} + +% CYRILLIC SMALL LETTER W +\cyrglyph{cyrw}{w} + +% CYRILLIC EM DASH +\setglyph{cyrdash} + \ifisint{monowidth}\then + \glyph{hyphen}{1000} + \glyph{hyphen}{1000} + \else + \glyph{emdash}{1000} + \fi +\endsetglyph + +% CYRILLIC SMALL LETTER GHE VARIANT +\cyrglyph{cyrvarg}{} + +% CYRILLIC SMALL LETTER BE VARIANT +\cyrglyph{cyrvarb}{} + +% CYRILLIC SMALL LETTER DE VARIANT +\cyrglyph{cyrvard}{} + +% CYRILLIC SMALL LETTER PE VARIANT +\cyrglyph{cyrvarp}{} + +% CYRILLIC SMALL LETTER TE VARIANT +\cyrglyph{cyrvart}{} + +% monotype-only variant glyphs + +% CYRILLIC CAPITAL LETTER ZHE BULGARIAN +\cyrglyph{CYRZHBULG}{}* + +% CYRILLIC SMALL LETTER ZHE BULGARIAN +\cyrglyph{cyrzhbulg}{} + +% CYRILLIC SMALL LETTER EF VARIANT +\cyrglyph{cyrvarf}{} + +% CYRILLIC SMALL LETTER EM VARIANT +\cyrglyph{cyrvarm}{} + +% CYRILLIC SMALL LETTER ZHE VARIANT +\cyrglyph{cyrvarzh}{} + +% CYRILLIC SMALL LETTER VE VARIANT +\cyrglyph{cyrvarv}{} + +% CYRILLIC SMALL LETTER TSE VARIANT +\cyrglyph{cyrvarc}{} + +\endmetrics +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyc.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyc.etx new file mode 100644 index 00000000000..62a85186c92 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyc.etx @@ -0,0 +1,47 @@ +\relax + +% LCYc.etx -- install an LCY-encoded faked small-caps font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default LCY.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} +\setcommand\currency{dollar} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{0} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\else + \setint{letterspacing}{\int{smallcapsspacing}} +\fi + +\inputetx{LCY} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyci.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyci.etx new file mode 100644 index 00000000000..9679f33bb7f --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyci.etx @@ -0,0 +1,47 @@ +\relax + +% LCYci.etx -- install an LCY-encoded faked italic small-caps font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default LCY.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} +\setcommand\currency{sterling} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{0} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\else + \setint{letterspacing}{\int{smallcapsspacing}} +\fi + +\inputetx{LCY} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcycij.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcycij.etx new file mode 100644 index 00000000000..2d4e2e2a6a7 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcycij.etx @@ -0,0 +1,48 @@ +\relax + +% LCYcij.etx -- install an LCY-encoded faked italic small-caps +% & oldstyle font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default LCY.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} +\setcommand\currency{sterling} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{0} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\else + \setint{letterspacing}{\int{smallcapsspacing}} +\fi + +\inputetx{LCY} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcycj.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcycj.etx new file mode 100644 index 00000000000..853fe71833c --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcycj.etx @@ -0,0 +1,47 @@ +\relax + +% LCYcj.etx -- install an LCY-encoded faked small-caps & oldstyle font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default LCY.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} +\setcommand\currency{dollar} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{0} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\else + \setint{letterspacing}{\int{smallcapsspacing}} +\fi + +\inputetx{LCY} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyctt.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyctt.etx new file mode 100644 index 00000000000..d20f92a6361 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyctt.etx @@ -0,0 +1,48 @@ +\relax + +% LCYctt.etx -- install an LCY-encoded faked typewriter small-caps font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default LCY.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} +\setcommand\tty{y} +\setcommand\currency{dollar} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsspacing} + {\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}} +\else + \setint{smallcapsspacing}{100} +\fi + +\setglyph{everyglyph} + \movert{\div{\int{smallcapsspacing}}{2}} +\endsetglyph + +\setglyph{everyendglyph} + \movert{\div{\int{smallcapsspacing}}{2}} +\endsetglyph + +\inputetx{LCY} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyi.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyi.etx new file mode 100644 index 00000000000..d591b32b01e --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyi.etx @@ -0,0 +1,19 @@ +\relax + +% LCYi.etx -- install an LCY-encoded italic font +% +% We _do_ need to distinguish between upright and italic in LCY, +% because of `sterling' and `dollar' sharing the same slot. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} +\setcommand\currency{sterling} + +\inputetx{LCY} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyij.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyij.etx new file mode 100644 index 00000000000..b501311133d --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyij.etx @@ -0,0 +1,19 @@ +\relax + +% LCYij.etx -- install an LCY-encoded italic font with oldstyle digits +% +% We _do_ need to distinguish between upright and italic in LCY, +% because of `sterling' and `dollar' sharing the same slot. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} +\setcommand\currency{sterling} + +\inputetx{LCY} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyitt.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyitt.etx new file mode 100644 index 00000000000..bd16d5125ba --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyitt.etx @@ -0,0 +1,20 @@ +\relax + +% LCYitt.etx -- install an LCY-encoded italic typewriter font +% +% We _do_ need to distinguish between upright and italic in LCY, +% because of `sterling' and `dollar' sharing the same slot. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} +\setcommand\tty{y} +\setcommand\currency{sterling} + +\inputetx{LCY} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyj.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyj.etx new file mode 100644 index 00000000000..f20187b3b24 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcyj.etx @@ -0,0 +1,19 @@ +\relax + +% LCYj.etx -- install an LCY-encoded upright font with oldstyle digits +% +% We _do_ need to distinguish between upright and italic in LCY, +% because of `sterling' and `dollar' sharing the same slot. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} +\setcommand\currency{dollar} + +\inputetx{LCY} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcytt.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcytt.etx new file mode 100644 index 00000000000..4b476fb3d47 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/lcytt.etx @@ -0,0 +1,20 @@ +\relax + +% LCYtt.etx -- install an LCY-encoded typewriter font +% +% We _do_ need to distinguish between upright and italic in LCY, +% because of `sterling' and `dollar' sharing the same slot. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} +\setcommand\tty{y} +\setcommand\currency{dollar} + +\inputetx{LCY} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2c.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2c.etx new file mode 100644 index 00000000000..7b18d90746d --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2c.etx @@ -0,0 +1,46 @@ +\relax + +% OT2c.etx -- install a OT2-encoded faked small-caps font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default OT2.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{0} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\else + \setint{letterspacing}{\int{smallcapsspacing}} +\fi + +\inputetx{OT2} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2cj.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2cj.etx new file mode 100644 index 00000000000..9f0d9a38b6c --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2cj.etx @@ -0,0 +1,46 @@ +\relax + +% OT2cj.etx -- install a OT2-encoded faked small-caps & oldstyle font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default OT2.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{0} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\else + \setint{letterspacing}{\int{smallcapsspacing}} +\fi + +\inputetx{OT2} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2i.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2i.etx new file mode 100644 index 00000000000..8473e9a767f --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2i.etx @@ -0,0 +1,18 @@ +\relax + +% OT2i.etx -- install a OT2-encoded italic font +% +% We do not need to distinguish between upright and italic in OT2, +% hence we simply call OT2.etx with default parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\inputetx{OT2} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2ij.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2ij.etx new file mode 100644 index 00000000000..a635ea1cfe4 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2ij.etx @@ -0,0 +1,20 @@ +\relax + +% OT2ij.etx -- install a OT2-encoded italic font with oldstyle digits +% +% We do not need to distinguish between upright and italic in OT2, +% hence we simply call OT2.etx with oldstyle parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +\inputetx{OT2} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2j.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2j.etx new file mode 100644 index 00000000000..bf5793c26aa --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/ot2j.etx @@ -0,0 +1,20 @@ +\relax + +% OT2j.etx -- install a OT2-encoded upright font with oldstyle digits +% +% We do not need to distinguish between upright and italic in OT2, +% hence we simply call OT2.etx with oldstyle parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +\inputetx{OT2} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2ac.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2ac.etx new file mode 100644 index 00000000000..89940040f01 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2ac.etx @@ -0,0 +1,46 @@ +\relax + +% T2Ac.etx -- install a T2A-encoded faked small-caps font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default T2A.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#1small} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1spaced} +\setcommand\digit#1{#1} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{50} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\fi + +\inputetx{T2A} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2acj.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2acj.etx new file mode 100644 index 00000000000..f5964e92e2b --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2acj.etx @@ -0,0 +1,46 @@ +\relax + +% T2Acj.etx -- install a T2A-encoded faked small-caps & oldstyle font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default T2A.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#1small} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1spaced} +\setcommand\digit#1{#1oldstyle} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{50} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\fi + +\inputetx{T2A} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2ai.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2ai.etx new file mode 100644 index 00000000000..f615e2ebf23 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2ai.etx @@ -0,0 +1,20 @@ +\relax + +% T2Ai.etx -- install a T2A-encoded italic font +% +% We do not need to distinguish between upright and italic in T2A, +% hence we simply call T2A.etx with default parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\inputetx{T2A} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2aij.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2aij.etx new file mode 100644 index 00000000000..aff193d9424 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2aij.etx @@ -0,0 +1,20 @@ +\relax + +% T2Aij.etx -- install a T2A-encoded italic font with oldstyle digits +% +% We do not need to distinguish between upright and italic in T2A, +% hence we simply call T2A.etx with oldstyle parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +\inputetx{T2A} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2aj.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2aj.etx new file mode 100644 index 00000000000..67d5813bc44 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2aj.etx @@ -0,0 +1,20 @@ +\relax + +% T2Aj.etx -- install a T2A-encoded upright font with oldstyle digits +% +% We do not need to distinguish between upright and italic in T2A, +% hence we simply call T2A.etx with oldstyle parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +\inputetx{T2A} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bc.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bc.etx new file mode 100644 index 00000000000..6e48e3eadbe --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bc.etx @@ -0,0 +1,46 @@ +\relax + +% T2Bc.etx -- install a T2B-encoded faked small-caps font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default T2B.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#1small} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1spaced} +\setcommand\digit#1{#1} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{50} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\fi + +\inputetx{T2B} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bcj.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bcj.etx new file mode 100644 index 00000000000..c9a0cbba825 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bcj.etx @@ -0,0 +1,46 @@ +\relax + +% T2Bcj.etx -- install a T2B-encoded faked small-caps & oldstyle font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default T2B.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#1small} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1spaced} +\setcommand\digit#1{#1oldstyle} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{50} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\fi + +\inputetx{T2B} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bi.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bi.etx new file mode 100644 index 00000000000..27f2f3fc9a4 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bi.etx @@ -0,0 +1,20 @@ +\relax + +% T2Bi.etx -- install a T2B-encoded italic font +% +% We do not need to distinguish between upright and italic in T2B, +% hence we simply call T2B.etx with default parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\inputetx{T2B} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bij.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bij.etx new file mode 100644 index 00000000000..d6bf83fd55a --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bij.etx @@ -0,0 +1,20 @@ +\relax + +% T2Bij.etx -- install a T2B-encoded italic font with oldstyle digits +% +% We do not need to distinguish between upright and italic in T2B, +% hence we simply call T2B.etx with oldstyle parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +\inputetx{T2B} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bj.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bj.etx new file mode 100644 index 00000000000..0a242585eb5 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2bj.etx @@ -0,0 +1,20 @@ +\relax + +% T2Bj.etx -- install a T2B-encoded upright font with oldstyle digits +% +% We do not need to distinguish between upright and italic in T2B, +% hence we simply call T2B.etx with oldstyle parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +\inputetx{T2B} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2cc.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2cc.etx new file mode 100644 index 00000000000..92ec06376de --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2cc.etx @@ -0,0 +1,46 @@ +\relax + +% T2Cc.etx -- install a T2C-encoded faked small-caps font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default T2C.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#1small} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1spaced} +\setcommand\digit#1{#1} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{50} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\fi + +\inputetx{T2C} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2ccj.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2ccj.etx new file mode 100644 index 00000000000..95192940307 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2ccj.etx @@ -0,0 +1,46 @@ +\relax + +% T2Ccj.etx -- install a T2C-encoded faked small-caps & oldstyle font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default T2C.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#1small} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1spaced} +\setcommand\digit#1{#1oldstyle} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{50} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\fi + +\inputetx{T2C} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2ci.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2ci.etx new file mode 100644 index 00000000000..323d6db8337 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2ci.etx @@ -0,0 +1,20 @@ +\relax + +% T2Ci.etx -- install a T2C-encoded italic font +% +% We do not need to distinguish between upright and italic in T2C, +% hence we simply call T2C.etx with default parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\inputetx{T2C} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2cij.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2cij.etx new file mode 100644 index 00000000000..050ff110f0e --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2cij.etx @@ -0,0 +1,20 @@ +\relax + +% T2Cij.etx -- install a T2C-encoded italic font with oldstyle digits +% +% We do not need to distinguish between upright and italic in T2C, +% hence we simply call T2C.etx with oldstyle parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +\inputetx{T2C} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2cj.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2cj.etx new file mode 100644 index 00000000000..5c8955a6588 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/t2cj.etx @@ -0,0 +1,20 @@ +\relax + +% T2Cj.etx -- install a T2C-encoded upright font with oldstyle digits +% +% We do not need to distinguish between upright and italic in T2C, +% hence we simply call T2C.etx with oldstyle parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +\inputetx{T2C} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2c.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2c.etx new file mode 100644 index 00000000000..1ee91450176 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2c.etx @@ -0,0 +1,46 @@ +\relax + +% X2c.etx -- install a X2-encoded faked small-caps font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default X2.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#1small} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1spaced} +\setcommand\digit#1{#1} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{50} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\fi + +\inputetx{X2} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2cj.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2cj.etx new file mode 100644 index 00000000000..fa88c0b71e4 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2cj.etx @@ -0,0 +1,46 @@ +\relax + +% X2cj.etx -- install a X2-encoded faked small-caps & oldstyle font +% +% This is used exclusively to install faked small-caps fonts; +% real small caps fonts are installed using the default X2.etx. + +\encoding + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#1small} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1spaced} +\setcommand\digit#1{#1oldstyle} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{50} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\fi + +\inputetx{X2} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2i.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2i.etx new file mode 100644 index 00000000000..e85eab97694 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2i.etx @@ -0,0 +1,20 @@ +\relax + +% X2i.etx -- install a X2-encoded italic font +% +% We do not need to distinguish between upright and italic in X2, +% hence we simply call X2.etx with default parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\inputetx{X2} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2ij.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2ij.etx new file mode 100644 index 00000000000..06e8caa0fce --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2ij.etx @@ -0,0 +1,20 @@ +\relax + +% X2ij.etx -- install a X2-encoded italic font with oldstyle digits +% +% We do not need to distinguish between upright and italic in X2, +% hence we simply call X2.etx with oldstyle parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +\inputetx{X2} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2j.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2j.etx new file mode 100644 index 00000000000..00ece78d31b --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/derivatives/x2j.etx @@ -0,0 +1,20 @@ +\relax + +% X2j.etx -- install a X2-encoded upright font with oldstyle digits +% +% We do not need to distinguish between upright and italic in X2, +% hence we simply call X2.etx with oldstyle parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +\inputetx{X2} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/etc/alias-cmc.tex b/Master/texmf-dist/tex/fontinst/cyrfinst/etc/alias-cmc.tex new file mode 100644 index 00000000000..656cff9ea7d --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/etc/alias-cmc.tex @@ -0,0 +1,70 @@ +% aliases for type1 paradissa cyrillic fonts (obsolete) +\galias{guillemotleft}{cmc-AE} +\galias{guillemotright}{cmc-OE} +\galias{CYRYO}{cmc-questiondown,cmc-greater} +\galias{CYRA}{cmc-a} +\galias{CYRB}{cmc-b} +\galias{CYRV}{cmc-w} +\galias{CYRG}{cmc-g} +\galias{CYRD}{cmc-d} +\galias{CYRE}{cmc-e} +\galias{CYRZH}{cmc-v} +\galias{CYRZ}{cmc-z} +\galias{CYRI}{cmc-i} +\galias{CYRISHRT}{cmc-j} +\galias{CYRK}{cmc-k} +\galias{CYRL}{cmc-l} +\galias{CYRM}{cmc-m} +\galias{CYRN}{cmc-n} +\galias{CYRO}{cmc-o} +\galias{CYRP}{cmc-p} +\galias{CYRR}{cmc-r} +\galias{CYRS}{cmc-s} +\galias{CYRT}{cmc-t} +\galias{CYRU}{cmc-u} +\galias{CYRF}{cmc-f} +\galias{CYRH}{cmc-h} +\galias{CYRC}{cmc-c} +\galias{CYRCH}{cmc-tilde,cmc-asciitilde} +\galias{CYRSH}{cmc-endash,cmc-braceleft} +\galias{CYRSHCH}{cmc-hungarumlaut,cmc-braceright} +\galias{CYRHRDSN}{cmc-dieresis} +\galias{CYRERY}{cmc-y} +\galias{CYRSFTSN}{cmc-x} +\galias{CYREREV}{cmc-emdash,cmc-bar} +\galias{CYRYU}{cmc-quoteleft} +\galias{CYRYA}{cmc-q} +\galias{cyra}{cmc-A} +\galias{cyrb}{cmc-B} +\galias{cyrv}{cmc-W} +\galias{cyrg}{cmc-G} +\galias{cyrd}{cmc-D} +\galias{cyre}{cmc-E} +\galias{cyrzh}{cmc-V} +\galias{cyrz}{cmc-Z} +\galias{cyri}{cmc-I} +\galias{cyrishrt}{cmc-J} +\galias{cyrk}{cmc-K} +\galias{cyrl}{cmc-L} +\galias{cyrm}{cmc-M} +\galias{cyrn}{cmc-N} +\galias{cyro}{cmc-O} +\galias{cyrp}{cmc-P} +\galias{cyrr}{cmc-R} +\galias{cyrs}{cmc-S} +\galias{cyrt}{cmc-T} +\galias{cyru}{cmc-U} +\galias{cyrf}{cmc-F} +\galias{cyrh}{cmc-H} +\galias{cyrc}{cmc-C} +\galias{cyrch}{cmc-circumflex,cmc-asciicircum} +\galias{cyrsh}{cmc-bracketleft} +\galias{cyrshch}{cmc-bracketright} +\galias{cyrhrdsn}{cmc-dotaccent,cmc-underscore} +\galias{cyrery}{cmc-Y} +\galias{cyrsftsn}{cmc-X} +\galias{cyrerev}{cmc-quotedblleft,cmc-backslash} +\galias{cyryu}{cmc-at} +\galias{cyrya}{cmc-Q} +\galias{cyryo}{cmc-exclamdown} +\galias{numero}{cmc-germandbls} diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/etc/alias-wncy.tex b/Master/texmf-dist/tex/fontinst/cyrfinst/etc/alias-wncy.tex new file mode 100644 index 00000000000..fca40602bb8 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/etc/alias-wncy.tex @@ -0,0 +1,94 @@ +% aliases for type1 AMS CM cyrillic fonts +% (not needed as metrics should be taken from TFM files) +\galias{CYRYO}{wncy-Yo} +\galias{CYRDJE}{wncy-Dj} +\galias{CYRIE}{wncy-Ye} +\galias{CYRDZE}{wncy-Zelo} +\galias{CYRII}{wncy-Iroman} +\galias{CYRJE}{wncy-J} +\galias{CYRLJE}{wncy-Lj} +\galias{CYRNJE}{wncy-Nj} +\galias{CYRTSHE}{wncy-Tsoft} +\galias{CYRDZHE}{wncy-Dzh} +\galias{CYRA}{wncy-A} +\galias{CYRB}{wncy-B} +\galias{CYRV}{wncy-V} +\galias{CYRG}{wncy-G} +\galias{CYRD}{wncy-D} +\galias{CYRE}{wncy-E} +\galias{CYRZH}{wncy-Zhe} +\galias{CYRZ}{wncy-Z} +\galias{CYRI}{wncy-I} +\galias{CYRISHRT}{wncy-Ishort} +\galias{CYRK}{wncy-K} +\galias{CYRL}{wncy-L} +\galias{CYRM}{wncy-M} +\galias{CYRN}{wncy-N} +\galias{CYRO}{wncy-O} +\galias{CYRP}{wncy-P} +\galias{CYRR}{wncy-R} +\galias{CYRS}{wncy-S} +\galias{CYRT}{wncy-T} +\galias{CYRU}{wncy-U} +\galias{CYRF}{wncy-F} +\galias{CYRH}{wncy-H} +\galias{CYRC}{wncy-C} +\galias{CYRCH}{wncy-Q} +\galias{CYRSH}{wncy-X} +\galias{CYRSHCH}{wncy-W} +\galias{CYRHRDSN}{wncy-Hard} +\galias{CYRERY}{wncy-Y} +\galias{CYRSFTSN}{wncy-Soft} +\galias{CYREREV}{wncy-Ze} +\galias{CYRYU}{wncy-Yu} +\galias{CYRYA}{wncy-Ya} +\galias{cyra}{wncy-a} +\galias{cyrb}{wncy-b} +\galias{cyrv}{wncy-v} +\galias{cyrg}{wncy-g} +\galias{cyrd}{wncy-d} +\galias{cyre}{wncy-e} +\galias{cyrzh}{wncy-zhe} +\galias{cyrz}{wncy-z} +\galias{cyri}{wncy-i} +\galias{cyrishrt}{wncy-ishort} +\galias{cyrk}{wncy-k} +\galias{cyrl}{wncy-l} +\galias{cyrm}{wncy-m} +\galias{cyrn}{wncy-n} +\galias{cyro}{wncy-o} +\galias{cyrp}{wncy-p} +\galias{cyrr}{wncy-r} +\galias{cyrs}{wncy-s} +\galias{cyrt}{wncy-t} +\galias{cyru}{wncy-u} +\galias{cyrf}{wncy-f} +\galias{cyrh}{wncy-h} +\galias{cyrc}{wncy-c} +\galias{cyrch}{wncy-q} +\galias{cyrsh}{wncy-x} +\galias{cyrshch}{wncy-w} +\galias{cyrhrdsn}{wncy-hard} +\galias{cyrery}{wncy-y} +\galias{cyrsftsn}{wncy-soft} +\galias{cyrerev}{wncy-ze} +\galias{cyryu}{wncy-yu} +\galias{cyrya}{wncy-ya} +\galias{cyryo}{wncy-yo} +\galias{cyrdje}{wncy-dj} +\galias{cyrie}{wncy-ye} +\galias{cyrdze}{wncy-zelo} +\galias{cyrii}{wncy-iroman} +\galias{cyrje}{wncy-j} +\galias{cyrlje}{wncy-lj} +\galias{cyrnje}{wncy-nj} +\galias{cyrtshe}{wncy-tsoft} +\galias{cyrdzhe}{wncy-dzh} +\galias{CYRYAT}{wncy-Yatz} +\galias{cyryat}{wncy-yatz} +\galias{CYRFITA}{wncy-Fita} +\galias{cyrfita}{wncy-fita} +\galias{CYRIZH}{wncy-Izhitsa} +\galias{cyrizh}{wncy-izhitsa} +\galias{numero}{wncy-number} +\galias{cyrbreve}{wncy-breve1} diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/etc/cyralias.tex b/Master/texmf-dist/tex/fontinst/cyrfinst/etc/cyralias.tex new file mode 100644 index 00000000000..611b695f585 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/etc/cyralias.tex @@ -0,0 +1,223 @@ +% aliases for type1 cyrillic fonts: adobe, urw, monotype +\galias{bar}{mt-vertical} +\galias{guilsinglleft}{quilsinglleft} +\galias{guilsinglright}{quilsinglright} +\galias{CYRYO}{afii10023,urw-cyrYEdieresis,mt-Jehstdieresis} +\galias{CYRDJE}{afii10051,urw-cyrTY,mt-Djsche} +\galias{CYRGJE}{afii10052,urw-cyrGacute,mt-Glagolmac} +\galias{CYRIE}{afii10053,urw-cyrsovYE,mt-Ye} +\galias{CYRDZE}{afii10054,urw-cyrDZ,mt-Zelo} +\galias{CYRII}{afii10055,urw-cyrsovI,mt-I} +\galias{CYRYI}{afii10056,urw-cyrsovIdieresis,mt-Idieresis} +\galias{CYRJE}{afii10057,urw-cyrJ,mt-Je} +\galias{CYRLJE}{afii10058,urw-cyrLY,mt-Elj} +\galias{CYRNJE}{afii10059,urw-cyrNY,mt-Nj} +\galias{CYRTSHE}{afii10060,urw-cyrDY,mt-Tjsche} +\galias{CYRKJE}{afii10061,urw-cyrKacute,mt-Kakoacute} +\galias{CYRUSHRT}{afii10062,urw-cyrUbreve,mt-Ubreve} +\galias{CYRDZHE}{afii10145,urw-cyrDZH,mt-Dsche} +\galias{CYRA}{afii10017,urw-cyrA,mt-As} +\galias{CYRB}{afii10018,urw-cyrB,mt-Buki} +\galias{CYRV}{afii10019,urw-cyrV,mt-Wjedi} +\galias{CYRG}{afii10020,urw-cyrG,mt-Glagol} +\galias{CYRD}{afii10021,urw-cyrD,mt-Dobro} +\galias{CYRE}{afii10022,urw-cyrYE,mt-Jehst} +\galias{CYRZH}{afii10024,urw-cyrZH,mt-Schiwete} +\galias{CYRZ}{afii10025,urw-cyrZ,mt-Semlja} +\galias{CYRI}{afii10026,urw-cyrI,mt-Ische} +\galias{CYRISHRT}{afii10027,urw-cyrIbreve,mt-Ischedipthong} +\galias{CYRK}{afii10028,urw-cyrK,mt-Kako} +\galias{CYRL}{afii10029,urw-cyrL,mt-Ljudi} +\galias{CYRM}{afii10030,urw-cyrM,mt-Muislete} +\galias{CYRN}{afii10031,urw-cyrN,mt-Nasche} +\galias{CYRO}{afii10032,urw-cyrO,mt-On} +\galias{CYRP}{afii10033,urw-cyrP,mt-Pakoy} +\galias{CYRR}{afii10034,urw-cyrR,mt-Rzui} +\galias{CYRS}{afii10035,urw-cyrS,mt-Ssiowo} +\galias{CYRT}{afii10036,urw-cyrT,mt-Twerdo} +\galias{CYRU}{afii10037,urw-cyrU,mt-U} +\galias{CYRF}{afii10038,urw-cyrF,mt-Fert} +\galias{CYRH}{afii10039,urw-cyrKH,mt-Chherr} +\galias{CYRC}{afii10040,urw-cyrTS,mt-Zui} +\galias{CYRCH}{afii10041,urw-cyrCH,mt-Tscherw} +\galias{CYRSH}{afii10042,urw-cyrSH,mt-Scha} +\galias{CYRSHCH}{afii10043,urw-cyrSHCH,mt-Schtscha} +\galias{CYRHRDSN}{afii10044,urw-cyrHARDsign,mt-Jerr} +\galias{CYRERY}{afii10045,urw-cyrYERU,mt-Jerui} +\galias{CYRSFTSN}{afii10046,urw-cyrSOFTsign,mt-Jher} +\galias{CYREREV}{afii10047,urw-cyrE,mt-E} +\galias{CYRYU}{afii10048,urw-cyrYU,mt-Ju} +\galias{CYRYA}{afii10049,urw-cyrYA,mt-Ja} +\galias{cyra}{afii10065,urw-cyra,mt-as} +\galias{cyrb}{afii10066,urw-cyrb,mt-buki} +\galias{cyrv}{afii10067,urw-cyrv,mt-wjedi} +\galias{cyrg}{afii10068,urw-cyrg,mt-glagol} +\galias{cyrd}{afii10069,urw-cyrd,mt-dobro} +\galias{cyre}{afii10070,urw-cyrye,mt-jehst} +\galias{cyrzh}{afii10072,urw-cyrzh,mt-schiwete} +\galias{cyrz}{afii10073,urw-cyrz,mt-semlja} +\galias{cyri}{afii10074,urw-cyri,mt-ische} +\galias{cyrishrt}{afii10075,urw-cyribreve,mt-ischedipthong} +\galias{cyrk}{afii10076,urw-cyrk,mt-kako} +\galias{cyrl}{afii10077,urw-cyrl,mt-ljudi} +\galias{cyrm}{afii10078,urw-cyrm,mt-muislette} +\galias{cyrn}{afii10079,urw-cyrn,mt-nasch} +\galias{cyro}{afii10080,urw-cyro,mt-on} +\galias{cyrp}{afii10081,urw-cyrp,mt-pakoy} +\galias{cyrr}{afii10082,urw-cyrr,mt-rzui} +\galias{cyrs}{afii10083,urw-cyrs,mt-ssiowo} +\galias{cyrt}{afii10084,urw-cyrt,mt-twerdo} +\galias{cyru}{afii10085,urw-cyru,mt-u} +\galias{cyrf}{afii10086,urw-cyrf,mt-fert} +\galias{cyrh}{afii10087,urw-cyrkh,mt-chherr} +\galias{cyrc}{afii10088,urw-cyrts,mt-zui} +\galias{cyrch}{afii10089,urw-cyrch,mt-tscherw} +\galias{cyrsh}{afii10090,urw-cyrsh,mt-scha} +\galias{cyrshch}{afii10091,urw-cyrshch,mt-schtscha} +\galias{cyrhrdsn}{afii10092,urw-cyrhardsign,mt-jerr} +\galias{cyrery}{afii10093,urw-cyryeru,mt-jerui} +\galias{cyrsftsn}{afii10094,urw-cyrsoftsign,mt-jher} +\galias{cyrerev}{afii10095,urw-cyre,mt-e} +\galias{cyryu}{afii10096,urw-cyryu,mt-ju} +\galias{cyrya}{afii10097,urw-cyrya,mt-ja} +\galias{cyryo}{afii10071,urw-cyryedieresis,mt-jehstdieresis} +\galias{cyrdje}{afii10099,urw-cyrty,mt-djsche} +\galias{cyrgje}{afii10100,urw-cyrgacute,mt-glagolmac} +\galias{cyrie}{afii10101,urw-cyrsovye,mt-ye} +\galias{cyrdze}{afii10102,urw-cyrdz,mt-zelo} +\galias{cyrii}{afii10103,urw-cyrsovi,mt-i} +\galias{cyryi}{afii10104,urw-cyrsovidieresis,mt-idieresis} +\galias{cyrje}{afii10105,urw-cyrj,mt-je} +\galias{cyrlje}{afii10106,urw-cyrly,mt-elj} +\galias{cyrnje}{afii10107,urw-cyrny,mt-nj} +\galias{cyrtshe}{afii10108,urw-cyrdy,mt-tjsche} +\galias{cyrkje}{afii10109,urw-cyrkacute,mt-kakoacute} +\galias{cyrushrt}{afii10110,urw-cyrubreve,mt-ubreve} +\galias{cyrdzhe}{afii10193,urw-cyrdzh,mt-dsche} +\galias{CYRYAT}{afii10146,mt-Jat} +\galias{cyryat}{afii10194,mt-jat} +\galias{CYRFITA}{afii10147,mt-Fita} +\galias{cyrfita}{afii10195,mt-fita} +\galias{CYRIZH}{afii10148,mt-Jschiza} +\galias{cyrizh}{afii10196,mt-jschiza} +\galias{CYRGUP}{afii10050,urw-cyrsovG} +\galias{cyrgup}{afii10098,urw-cyrsovg} +\galias{cyrschwa}{afii10846} +\galias{numero}{afii61352,urw-numero,mt-nosign} +%\galias{cyrlangle}{angleleft} +%\galias{cyrrangle}{angleright} +\galias{cyrvarg}{afii10063,mt-glagolserb} +\galias{cyrvarb}{afii10064,mt-bukiserb} +\galias{cyrvard}{afii10192,mt-dobroserb} +\galias{cyrvarp}{afii10831,mt-pakoyserb} +\galias{cyrvart}{afii10832,mt-twerdoserb} +\galias{CYRZHBULG}{mt-Schiwetebulg} +\galias{cyrzhbulg}{mt-schiwetebulg} +\galias{cyrvarf}{mt-fertserb} +\galias{cyrvarm}{mt-muisletteserb} +\galias{cyrvarzh}{mt-schiweteserb} +\galias{cyrvarv}{mt-wjediserb} +\galias{cyrvarc}{mt-zuiserb} + +% cyrillic acute vowel glyphs present in monotype fonts: +\galias{CYRAacute}{mt-Asacute} +\galias{CYREREVacute}{mt-Eacute} +\galias{CYRIacute}{mt-Ischeacute} +\galias{CYRYAacute}{mt-Jaacute} +\galias{CYREacute}{mt-Jehstacute} +\galias{CYRERYacute}{mt-Jeruiacute} +\galias{CYRYUacute}{mt-Juacute} +\galias{CYROacute}{mt-Onacute} +\galias{CYRUacute}{mt-Uacute} +\galias{CYRIEacute}{mt-Yeacute} +\galias{cyraacute}{mt-asacute} +\galias{cyrerevacute}{mt-eacute} +\galias{cyriacute}{mt-ischeacute} +\galias{cyryaacute}{mt-jaacute} +\galias{cyreacute}{mt-jehstacute} +\galias{cyreryacute}{mt-jeruiacute} +\galias{cyryuacute}{mt-juacute} +\galias{cyroacute}{mt-onacute} +\galias{cyruacute}{mt-uacute} +\galias{cyrieacute}{mt-yeacute} + +% ParaType Cyrillic Asian fonts (thanks to Anatoliy A. Malyarenko): +\galias{CYRCHVCRS}{cyrCHverticalbar,par1-cyrCHvbar,par2-CyrTchBar} +\galias{cyrchvcrs}{cyrchverticalbar,par1-cyrchvbar,par2-cyrTchBar} +\galias{CYRGHCRS}{cyrGbar,par1-cyrGbar,par2-CyrGCross} +\galias{cyrghcrs}{cyrgbar,par1-cyrgbar,par2-cyrGCross} +\galias{CYRHDSC}{cyrKHrightdesc,par1-cyrKHtail,par2-CyrXMark} +\galias{cyrhdsc}{cyrkhrightdesc,par1-cyrkhtail,par2-cyrXMark} +\galias{CYRKBEAK}{cyrreversedGK,par1-cyrKarm,par2-CyrKBack} +\galias{cyrkbeak}{cyrreversedgk,par1-cyrkarm,par2-cyrKBack} +\galias{CYRKDSC}{cyrKrightdesc,par1-cyrKtail,par2-CyrKMark} +\galias{cyrkdsc}{cyrkrightdesc,par1-cyrktail,par2-cyrKMark} +\galias{CYRKVCRS}{cyrKverticalbar,par1-cyrKvbar,par2-CyrKBar} +\galias{cyrkvcrs}{cyrkverticalbar,par1-cyrkvbar,par2-cyrKBar} +\galias{CYRNDSC}{cyrNrightdesc,par1-cyrNtail,par2-CyrHMark} +\galias{cyrndsc}{cyrnrightdesc,par1-cyrntail,par2-cyrHMark} +\galias{CYROTLD}{cyrObar,par1-cyrOE,par2-cyrOE} +\galias{cyrotld}{cyrobar,par1-cyroe,par2-cyroe} +\galias{CYRSCHWA}{cyrinvE,par1-cyrINVE,par2-CyrUpDnECap} +\galias{cyrschwa}{cyrinve,par1-cyrinve,par2-cyrUpDnE} +\galias{CYRSDSC}{cyrCtail,par1-cyrCtail,par2-CTail} +\galias{cyrsdsc}{cyrctail,par1-cyrctail,par2-cTail} +\galias{CYRSHHA}{cyrH,par1-cyrH,par2-CyrHCap} +\galias{cyrshha}{cyrh,par1-cyrh,par2-cyrHCap} +\galias{CYRY}{cyrstraightU,par1-cyrUE,par2-CyrCloseY} +\galias{cyry}{cyrstraightu,par1-cyrue,par2-cyrCloseY} +\galias{CYRYHCRS}{cyrstraightUbar,par1-cyrUEbar,par2-CyrCloseYCross} +\galias{cyryhcrs}{cyrstraightubar,par1-cyruebar,par2-cyrCloseYCross} +\galias{CYRZDSC}{cyrZtail,par1-cyrZtail,par2-Cyr3Tail} +\galias{cyrzdsc}{cyrztail,par1-cyrztail,par2-cyr3Tail} +\galias{CYRZHDSC}{cyrZHrightdesc,par1-cyrZHtail,par2-CyrZhMark} +\galias{cyrzhdsc}{cyrzhrightdesc,par1-cyrzhtail,par2-cyrZhMark} + +% ParaType's ITC New Baskerville Roman Expert SmallCaps Cyrillic: +\galias{CYRGJEsmall}{afii10052s} +\galias{CYRDJEsmall}{afii10051s} +\galias{CYRLJEsmall}{afii10058s} +\galias{CYRNJEsmall}{afii10059s} +\galias{CYRKJEsmall}{afii10061s} +\galias{CYRTSHEsmall}{afii10060s} +\galias{CYRDZHEsmall}{afii10145s} +\galias{CYRUSHRTsmall}{afii10062s} +\galias{CYRIIsmall}{afii10055s} +\galias{CYRGUPsmall}{afii10050s} +\galias{CYRYOsmall}{afii10023s} +\galias{CYRIEsmall}{afii10053s} +\galias{CYRJEsmall}{afii10057s} +\galias{CYRDZEsmall}{afii10054s} +\galias{CYRYIsmall}{afii10056s} +\galias{CYRAsmall}{afii10017s} +\galias{CYRBsmall}{afii10018s} +\galias{CYRVsmall}{afii10019s} +\galias{CYRGsmall}{afii10020s} +\galias{CYRDsmall}{afii10021s} +\galias{CYREsmall}{afii10022s} +\galias{CYRZHsmall}{afii10024s} +\galias{CYRZsmall}{afii10025s} +\galias{CYRIsmall}{afii10026s} +\galias{CYRISHRTsmall}{afii10027s} +\galias{CYRKsmall}{afii10028s} +\galias{CYRLsmall}{afii10029s} +\galias{CYRMsmall}{afii10030s} +\galias{CYRNsmall}{afii10031s} +\galias{CYROsmall}{afii10032s} +\galias{CYRPsmall}{afii10033s} +\galias{CYRRsmall}{afii10034s} +\galias{CYRSsmall}{afii10035s} +\galias{CYRTsmall}{afii10036s} +\galias{CYRUsmall}{afii10037s} +\galias{CYRFsmall}{afii10038s} +\galias{CYRHsmall}{afii10039s} +\galias{CYRCsmall}{afii10040s} +\galias{CYRCHsmall}{afii10041s} +\galias{CYRSHsmall}{afii10042s} +\galias{CYRSHCHsmall}{afii10043s} +\galias{CYRHRDSNsmall}{afii10044s} +\galias{CYRERYsmall}{afii10045s} +\galias{CYRSFTSNsmall}{afii10046s} +\galias{CYREREVsmall}{afii10047s} +\galias{CYRYUsmall}{afii10048s} +\galias{CYRYAsmall}{afii10049s} diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/etc/fnstcorr.tex b/Master/texmf-dist/tex/fontinst/cyrfinst/etc/fnstcorr.tex new file mode 100644 index 00000000000..c49df3c04bd --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/etc/fnstcorr.tex @@ -0,0 +1,38 @@ +\needsfontinstversion{1.926} +\fontinstcc + +\let\charnameprefix\empty +\def\charnamealias#1{% + \@ifundefined{GN@\charnameprefix#1}% + {\@ifundefined{GN@#1}{#1}{\csname GN@#1\endcsname}}% was just {#1} + {\csname GN@\charnameprefix#1\endcsname}} +\def\init_cc#1{% + \out_line{\string\setglyph{\charnamealias{#1}}} + \edef\char_name{\charnamealias{#1}} +} +\list_def{N}(#1){\edef\char_name{\charnamealias{#1}}} +\afm_def{KP}(#1~#2~#3~#4){ + \if\first_char#1=.\else + \if\first_char#2=.\else + \afm_length\a_count{#3} + \ifnum \a_count>\minimum_kern + \out_line{\string\setkern{\charnamealias{#1}}{\charnamealias{#2}}{\the\a_count}} + \else\ifnum \a_count<-\minimum_kern + \out_line{\string\setkern{\charnamealias{#1}}{\charnamealias{#2}}{\the\a_count}} + \fi\fi + \fi\fi +} +\afm_let{KPX}{KP} + +\def\galias#1#2{\def\temp@a{#1}% + \@for\temp@b:=#2\do{\expandafter\let\csname GN@\temp@b\endcsname\temp@a}} +\def\aliasfonts#1#2#3{% + \def\charnameprefix{#1}% + \@for\temp@font:=#3\do + {\afmtomtx{#2\temp@font}{#2\temp@font}\mtxtopl{#2\temp@font}{#2\temp@font}}% + \let\charnameprefix\empty +} + +\normalcc + +\endinput diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/etc/showenc b/Master/texmf-dist/tex/fontinst/cyrfinst/etc/showenc new file mode 100644 index 00000000000..ef0ca64104c --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/etc/showenc @@ -0,0 +1,18 @@ +#!/bin/sh +# sample usage: +# showenc T2A +# showenc OT1 '\setint{monowidth}{1}' + +latex << EOF | perl -ne 'next if (!s/^SLOT: //); s,\n,\0,; $q.=$_; + END { $_=$q; s,\0\[LIG] ([^\0]*), L $1,g; s,\0,\n,g; print }' +\input fontinst.sty +\catcode\`\_=11 +$2 +\def\setint#1#2{} +\def\setslot#1{\edef\slot_name{#1}\do_slot + \typeout{SLOT: \the\slot_number\space\slot_name\space;}} +\def\ligature#1#2#3{\typeout{SLOT: [#1] #2 #3 ;}\vpl_ligature{#1}{#2}{#3}} +\inputetx{$1} +\bye +EOF +rm -f fontinst.log diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/lcy-hi.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/lcy-hi.etx new file mode 100644 index 00000000000..3cc5a4772dc --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/lcy-hi.etx @@ -0,0 +1,347 @@ +\relax + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} + +\nextslot{"80} + +\setslot{\uc{CYRA}{cyra}} + \comment{Cyrillic capital letter a `\CYRA'.} +\endsetslot + +\setslot{\uc{CYRB}{cyrb}} + \comment{Cyrillic capital letter be `\CYRB'.} +\endsetslot + +\setslot{\uc{CYRV}{cyrv}} + \comment{Cyrillic capital letter ve `\CYRV'.} +\endsetslot + +\setslot{\uc{CYRG}{cyrg}} + \comment{Cyrillic capital letter ghe `\CYRG'.} +\endsetslot + +\setslot{\uc{CYRD}{cyrd}} + \comment{Cyrillic capital letter de `\CYRD'.} +\endsetslot + +\setslot{\uc{CYRE}{cyre}} + \comment{Cyrillic capital letter ie `\CYRE'.} +\endsetslot + +\setslot{\uc{CYRZH}{cyrzh}} + \comment{Cyrillic capital letter zhe `\CYRZH'.} +\endsetslot + +\setslot{\uc{CYRZ}{cyrz}} + \comment{Cyrillic capital letter ze `\CYRZ'.} +\endsetslot + +\setslot{\uc{CYRI}{cyri}} + \comment{Cyrillic capital letter i `\CYRI'.} +\endsetslot + +\setslot{\uc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic capital letter short i `\CYRISHRT'.} +\endsetslot + +\setslot{\uc{CYRK}{cyrk}} + \comment{Cyrillic capital letter ka `\CYRK'.} +\endsetslot + +\setslot{\uc{CYRL}{cyrl}} + \comment{Cyrillic capital letter el `\CYRL'.} +\endsetslot + +\setslot{\uc{CYRM}{cyrm}} + \comment{Cyrillic capital letter em `\CYRM'.} +\endsetslot + +\setslot{\uc{CYRN}{cyrn}} + \comment{Cyrillic capital letter en `\CYRN'.} +\endsetslot + +\setslot{\uc{CYRO}{cyro}} + \comment{Cyrillic capital letter o `\CYRO'.} +\endsetslot + +\setslot{\uc{CYRP}{cyrp}} + \comment{Cyrillic capital letter pe `\CYRP'.} +\endsetslot + +\setslot{\uc{CYRR}{cyrr}} + \comment{Cyrillic capital letter er `\CYRR'.} +\endsetslot + +\setslot{\uc{CYRS}{cyrs}} + \comment{Cyrillic capital letter es `\CYRS'.} +\endsetslot + +\setslot{\uc{CYRT}{cyrt}} + \comment{Cyrillic capital letter te `\CYRT'.} +\endsetslot + +\setslot{\uc{CYRU}{cyru}} + \comment{Cyrillic capital letter u `\CYRU'.} +\endsetslot + +\setslot{\uc{CYRF}{cyrf}} + \comment{Cyrillic capital letter ef `\CYRF'.} +\endsetslot + +\setslot{\uc{CYRH}{cyrh}} + \comment{Cyrillic capital letter ha `\CYRH'.} +\endsetslot + +\setslot{\uc{CYRC}{cyrc}} + \comment{Cyrillic capital letter tse `\CYRC'.} +\endsetslot + +\setslot{\uc{CYRCH}{cyrch}} + \comment{Cyrillic capital letter che `\CYRCH'.} +\endsetslot + +\setslot{\uc{CYRSH}{cyrsh}} + \comment{Cyrillic capital letter sha `\CYRSH'.} +\endsetslot + +\setslot{\uc{CYRSHCH}{cyrshch}} + \comment{Cyrillic capital letter shcha `\CYRSHCH'.} +\endsetslot + +\setslot{\uc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic capital letter hard sign `\CYRHRDSN'.} +\endsetslot + +\setslot{\uc{CYRERY}{cyrery}} + \comment{Cyrillic capital letter yeru `\CYRERY'.} +\endsetslot + +\setslot{\uc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic capital letter soft sign `\CYRSFTSN'.} +\endsetslot + +\setslot{\uc{CYREREV}{cyrerev}} + \comment{Cyrillic capital letter e `\CYREREV'.} +\endsetslot + +\setslot{\uc{CYRYU}{cyryu}} + \comment{Cyrillic capital letter yu `\CYRYU'.} +\endsetslot + +\setslot{\uc{CYRYA}{cyrya}} + \comment{Cyrillic capital letter ya `\CYRYA'.} +\endsetslot + +\setslot{\lc{CYRA}{cyra}} + \comment{Cyrillic small letter a `\cyra'.} +\endsetslot + +\setslot{\lc{CYRB}{cyrb}} + \comment{Cyrillic small letter be `\cyrb'.} +\endsetslot + +\setslot{\lc{CYRV}{cyrv}} + \comment{Cyrillic small letter ve `\cyrv'.} +\endsetslot + +\setslot{\lc{CYRG}{cyrg}} + \comment{Cyrillic small letter ghe `\cyrg'.} +\endsetslot + +\setslot{\lc{CYRD}{cyrd}} + \comment{Cyrillic small letter de `\cyrd'.} +\endsetslot + +\setslot{\lc{CYRE}{cyre}} + \comment{Cyrillic small letter ie `\cyre'.} +\endsetslot + +\setslot{\lc{CYRZH}{cyrzh}} + \comment{Cyrillic small letter zhe `\cyrzh'.} +\endsetslot + +\setslot{\lc{CYRZ}{cyrz}} + \comment{Cyrillic small letter ze `\cyrz'.} +\endsetslot + +\setslot{\lc{CYRI}{cyri}} + \comment{Cyrillic small letter i `\cyri'.} +\endsetslot + +\setslot{\lc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic small letter short i `\cyrishrt'.} +\endsetslot + +\setslot{\lc{CYRK}{cyrk}} + \comment{Cyrillic small letter ka `\cyrk'.} +\endsetslot + +\setslot{\lc{CYRL}{cyrl}} + \comment{Cyrillic small letter el `\cyrl'.} +\endsetslot + +\setslot{\lc{CYRM}{cyrm}} + \comment{Cyrillic small letter em `\cyrm'.} +\endsetslot + +\setslot{\lc{CYRN}{cyrn}} + \comment{Cyrillic small letter en `\cyrn'.} +\endsetslot + +\setslot{\lc{CYRO}{cyro}} + \comment{Cyrillic small letter o `\cyro'.} +\endsetslot + +\setslot{\lc{CYRP}{cyrp}} + \comment{Cyrillic small letter pe `\cyrp'.} +\endsetslot + +\nextslot{"C4} + +\setslot{cyrdash} + \comment{Cyrillic em dash---longer than endash, but shorter + than english emdash: `\cyrdash'.} +\endsetslot + +\setslot{currency} + \comment{The international currency sign, `\textcurrency'.} +\endsetslot + +\nextslot{"E0} + +\setslot{\lc{CYRR}{cyrr}} + \comment{Cyrillic small letter er `\cyrr'.} +\endsetslot + +\setslot{\lc{CYRS}{cyrs}} + \comment{Cyrillic small letter es `\cyrs'.} +\endsetslot + +\setslot{\lc{CYRT}{cyrt}} + \comment{Cyrillic small letter te `\cyrt'.} +\endsetslot + +\setslot{\lc{CYRU}{cyru}} + \comment{Cyrillic small letter u `\cyru'.} +\endsetslot + +\setslot{\lc{CYRF}{cyrf}} + \comment{Cyrillic small letter ef `\cyrf'.} +\endsetslot + +\setslot{\lc{CYRH}{cyrh}} + \comment{Cyrillic small letter ha `\cyrh'.} +\endsetslot + +\setslot{\lc{CYRC}{cyrc}} + \comment{Cyrillic small letter tse `\cyrc'.} +\endsetslot + +\setslot{\lc{CYRCH}{cyrch}} + \comment{Cyrillic small letter che `\cyrch'.} +\endsetslot + +\setslot{\lc{CYRSH}{cyrsh}} + \comment{Cyrillic small letter sha `\cyrsh'.} +\endsetslot + +\setslot{\lc{CYRSHCH}{cyrshch}} + \comment{Cyrillic small letter shcha `\cyrshch'.} +\endsetslot + +\setslot{\lc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic small letter hard sign `\cyrhrdsn'.} +\endsetslot + +\setslot{\lc{CYRERY}{cyrery}} + \comment{Cyrillic small letter yeru `\cyrery'.} +\endsetslot + +\setslot{\lc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic small letter soft sign `\cyrsftsn'.} +\endsetslot + +\setslot{\lc{CYREREV}{cyrerev}} + \comment{Cyrillic small letter e `\cyrerev'.} +\endsetslot + +\setslot{\lc{CYRYU}{cyryu}} + \comment{Cyrillic small letter yu `\cyryu'.} +\endsetslot + +\setslot{\lc{CYRYA}{cyrya}} + \comment{Cyrillic small letter ya `\cyrya'.} +\endsetslot + +\setslot{\uc{CYRYO}{cyryo}} + \comment{Cyrillic capital letter io `\CYRYO'.} +\endsetslot + +\setslot{\lc{CYRYO}{cyryo}} + \comment{Cyrillic small letter io `\cyryo'.} +\endsetslot + +\setslot{\uc{CYRGUP}{cyrgup}} + \comment{Cyrillic capital letter ghe with upturn `\CYRGUP'.} +\endsetslot + +\setslot{\lc{CYRGUP}{cyrgup}} + \comment{Cyrillic small letter ghe with upturn `\cyrgup'.} +\endsetslot + +\setslot{\uc{CYRIE}{cyrie}} + \comment{Cyrillic capital letter ukrainian ie `\CYRIE'.} +\endsetslot + +\setslot{\lc{CYRIE}{cyrie}} + \comment{Cyrillic small letter ukrainian ie `\cyrie'.} +\endsetslot + +\setslot{\uc{CYRII}{cyrii}} + \comment{Cyrillic capital letter byelorussian-ukrainian i `\CYRII'.} +\endsetslot + +\setslot{\lc{CYRII}{cyrii}} + \comment{Cyrillic small letter byelorussian-ukrainian i `\cyrii'.} +\endsetslot + +\setslot{\uc{CYRYI}{cyryi}} + \comment{Cyrillic capital letter yi `\CYRYI'.} +\endsetslot + +\setslot{\lc{CYRYI}{cyryi}} + \comment{Cyrillic small letter yi `\cyryi'.} +\endsetslot + +\setslot{\uc{CYRUSHRT}{cyrushrt}} + \comment{Cyrillic capital letter short u `\CYRUSHRT'.} +\endsetslot + +\setslot{\lc{CYRUSHRT}{cyrushrt}} + \comment{Cyrillic small letter short u `\cyrushrt'.} +\endsetslot + +\setslot{numero} + \comment{The numero sign `\textnumero', similar to the letter `N' + with a raised `o', unavailable in most PostScript fonts.} +\endsetslot + +\setslot{guillemotleft} + \comment{A Cyrillic double opening quote mark `\guillemotleft', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{guillemotright} + \comment{A Cyrillic double closing quote mark `\guillemotright', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{quotedblbase} + \comment{A German double quote mark `\quotedblbase' similar to two commas, + but with tighter letterspacing and different sidebearings.} +\endsetslot + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/lcy.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/lcy.etx new file mode 100644 index 00000000000..783b87d4bbb --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/lcy.etx @@ -0,0 +1,815 @@ +\relax + +\documentclass[twocolumn]{article} +\usepackage[LCY]{fontenc} +\usepackage{fontdoc} + +\title{The \TeX\ Cyrillic LCY text encoding vector} +\author{Werner Lemberg, Vladimir Volovich} +\date{15 October 1998\\ +Version 0.1} + +\begin{document} +\maketitle + +\section{Introduction} + +This document describes the \TeX\ text Cyrillic (LCY) encoding. It is +an 8-bit extension of the OT1 encoding, so the first 128 slots fully +coincide with OT1, and this part of file was taken from `ot1.etx' by +Alan Jeffrey and Ulrik Vieth. This font encoding is not standard (as +follows from it's name), but is important e.g.\ for Plain TeX-based +macro packages for Cyrillic typesetting. This encoding is close to the +so-called `New Alternative Variant' of the Microsoft MS-DOS cp866 +Cyrillic encoding, and supports at least Russian, Ukrainian and +Byelorussian glyph repertory. + +To use this encoding, you should define the following macros: +\begin{itemize} +\item \verb|\lc{A}{a}| should return the name of a lower-case + glyph, for example `{\tt a}' or `{\tt Asmall}'. + +\item \verb|\uc{A}{a}| should return the name of an upper-case + glyph, for example `{\tt A}' or `{\tt Amedium}'. + +\item \verb|\lclig{FI}{fi}| should return the name of a lower-case + ligature, for example `{\tt fi}' or `{\tt FIsmall}'. + +\item \verb|\uclig{FI}{fi}| should return the name of an upper-case + ligature, for example `{\tt FI}' or `{\tt FImedium}'. + +\item \verb|\digit{zero}| should return the name of a digit, for + example `{\tt zero}' or `{\tt zerooldstyle}'. + +\item \verb|\tty| should be `y' if the encoding is \TeX\ typewriter + (cmtt) encoding, and `n' otherwise. + +\item \verb|\currency| should be the name of the currency glyph, either + `sterling' or `dollar'. +\end{itemize} +These should all expand in the mouth, otherwise you may get error +messages! + +For example, to get the standard upper and lower case font, you should +define: +\begin{verbatim} + \setcommand\lc#1#2{#2} + \setcommand\uc#1#2{#1} + \setcommand\lclig#1#2{#2} + \setcommand\uclig#1#2{#1} + \setcommand\digit#1{#1} + \setcommand\tty{n} + \setcommand\currency{dollar} +\end{verbatim} +To get a caps and small caps font with old style digits and letter +spacing, you should define: +\begin{verbatim} + \setcommand\lc#1#2{#1small} + \setcommand\uc#1#2{#1} + \setcommand\lclig#1#2{#2small} + \setcommand\uclig#1#2{#1spaced} + \setcommand\digit#1{#1oldstyle} + \setcommand\tty{n} + \setcommand\currency{dollar} +\end{verbatim} +To get an all-caps font with medium-cap composite letters and letter +spacing, you should define: +\begin{verbatim} + \setcommand\lc#1#2{#1} + \setcommand\uc#1#2{#1} + \setcommand\lclig#1#2{#1spaced} + \setcommand\uclig#1#2{#1spaced} + \setcommand\digit#1{#1} + \setcommand\tty{n} + \setcommand\currency{dollar} +\end{verbatim} +This document describes the upper and lower case encoding. + +\encoding + +\needsfontinstversion{1.800} + + +\comment{\section{Default values}} + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} +\ifisint{monowidth}\then + \setcommand\tty{y} +\else + \setcommand\tty{n} +\fi +\setcommand\currency{dollar} + +\if \tty y + \setstr{codingscheme}{TEX CYRILLIC TYPEWRITER TEXT} +\else + \setstr{codingscheme}{TEX CYRILLIC TEXT} +\fi + +\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 + + +\comment{\section{Default font dimensions}} + +\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{monowidth}\then + \setint{fontdimen(7)}{\int{interword}} % extra space after . +\else + \setint{fontdimen(7)}{\scale{\int{interword}}{240}}% extra space after . +\fi + +\comment{\section{The encoding} + There are 130 glyphs in this encoding. 128 of these are in Knuth's CM + encoding, and the other two are `\l' and `\L', which are composite + letters in CM, but are single glyphs in almost every other font.} + +\setslot{Gamma} + \comment{The greek letter `$\Gamma$'.} +\endsetslot + +\setslot{Delta} + \comment{The greek letter `$\Delta$'.} +\endsetslot + +\setslot{Theta} + \comment{The greek letter `$\Theta$'.} +\endsetslot + +\setslot{Lambda} + \comment{The greek letter `$\Lambda$'.} +\endsetslot + +\setslot{Xi} + \comment{The greek letter `$\Xi$'.} +\endsetslot + +\setslot{Pi} + \comment{The greek letter `$\Pi$'.} +\endsetslot + +\setslot{Sigma} + \comment{The greek letter `$\Sigma$'.} +\endsetslot + +\setslot{Upsilon} + \comment{The greek letter `$\Upsilon$' named `Upsilon1' by Adobe.} +\endsetslot + +\setslot{Phi} + \comment{The greek letter `$\Phi$'.} +\endsetslot + +\setslot{Psi} + \comment{The greek letter `$\Psi$'.} +\endsetslot + +\setslot{Omega} + \comment{The greek letter `$\Omega$'.} +\endsetslot + +\if \tty y + +\setslot{arrowup} + \comment{An upwards-facing arrow `$\uparrow$'.} +\endsetslot + +\setslot{arrowdown} + \comment{A downwards-facing arrow `$\downarrow$'.} +\endsetslot + +\setslot{quotesingle} + \comment{The `neutral' single quotation mark `{\tt\char`\'}', for use + with monowidth fonts.} +\endsetslot + +\setslot{exclamdown} + \comment{The Spanish punctuation mark `!`'.} +\endsetslot + +\setslot{questiondown} + \comment{The Spanish punctuation mark `?`'.} +\endsetslot + +\else + +\setslot{\lclig{FF}{ff}} + \ligature{LIG}{\lc{I}{i}}{\lclig{FFI}{ffi}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FFL}{ffl}} + \comment{The `ff' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FI}{fi}} + \comment{The `fi' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FL}{fl}} + \comment{The `fl' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFI}{ffi}} + \comment{The `ffi' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFL}{ffl}} + \comment{The `ffl' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\fi + +\setslot{\lc{dotlessI}{dotlessi}} + \comment{A dotless i `\i', used to produce accented letters such as + `\=\i'.} +\endsetslot + +\setslot{\lc{dotlessJ}{dotlessj}} + \comment{A dotless j `\j', used to produce accented letters such as + `\=\j'. Most non-\TeX\ fonts do not have this glyph.} +\endsetslot + +\setslot{grave} + \comment{The grave accent `\`a'.} +\endsetslot + +\setslot{acute} + \comment{The acute accent `\'a'.} +\endsetslot + +\setslot{caron} + \comment{The caron or h\'a\v cek accent `\v a'.} +\endsetslot + +\setslot{breve} + \comment{The breve accent `\u a'.} +\endsetslot + +\setslot{macron} + \comment{The macron accent `\=a'.} +\endsetslot + +\setslot{ringfitted} + \comment{The ring accent `\aa', fitted to be the same width as an + upper case `A'.} +\endsetslot + +\setslot{cedilla} + \comment{The cedilla accent `\c a'.} +\endsetslot + +\setslot{\lc{SS}{germandbls}} + \comment{The letter `\ss'.} +\endsetslot + +\setslot{\lc{AE}{ae}} + \comment{The letter `\ae'. This is a single letter, and should not be + faked with `ae'.} +\endsetslot + +\setslot{\lc{OE}{oe}} + \comment{The letter `\oe'. This is a single letter, and should not be + faked with `oe'.} +\endsetslot + +\setslot{\lc{Oslash}{oslash}} + \comment{The letter `\o'.} +\endsetslot + +\setslot{\uc{AE}{ae}} + \comment{The letter `\AE'. This is a single letter, and should not be + faked with `AE'.} +\endsetslot + +\setslot{\uc{OE}{oe}} + \comment{The letter `\OE'. This is a single letter, and should not be + faked with `OE'.} +\endsetslot + +\setslot{\uc{Oslash}{oslash}} + \comment{The letter `\o'.} +\endsetslot + +\if \tty y + +\setslot{visiblespace} + \comment{A visible space glyph `{\tt\char`\ }'.} +\endsetslot + +\else + +\setslot{lslashslash} +% \ligature{LIG}{\lc{L}{l}}{\lc{Lslash}{lslash}} +% \ligature{LIG}{\uc{L}{l}}{\uc{Lslash}{lslash}} + \comment{The slash used to make `\l' and `\L'. Since most fonts do + not have a separate glyph for this, I've added ligatures to `\l' + and `\L'.} +\endsetslot + +\fi + +\setslot{exclam} + \ligature{LIG}{quoteleft}{exclamdown} + \comment{The exclamation mark `!'.} +\endsetslot + +\if \tty y + +\setslot{quotedbl} + \comment{The `neutral' quotation mark `{\tt\char`\"}', included for + use in monowidth fonts, or for setting computer programs.} +\endsetslot + +\else + +\setslot{quotedblright} + \comment{An English double closing quote mark `\,''\,'.} +\endsetslot + +\fi + +\setslot{numbersign} + \comment{The hash sign `\#'.} +\endsetslot + +\setslot{\currency} + \comment{Either the dollar sign `\$' or the pound sign `\pounds', + depending on the font.} +\endsetslot + +\setslot{percent} + \comment{The percent sign `\%'.} +\endsetslot + +\setslot{ampersand} + \comment{The ampersand sign `\&'.} +\endsetslot + +\setslot{quoteright} + \if \tty y \else \ligature{LIG}{quoteright}{quotedblright} \fi + \comment{The English closing quotation mark `\,'\,'.} +\endsetslot + +\setslot{parenleft} + \comment{The opening parenthesis `('.} +\endsetslot + +\setslot{parenright} + \comment{The closing parenthesis `)'.} +\endsetslot + +\setslot{asterisk} + \comment{The raised asterisk `*'.} +\endsetslot + +\setslot{plus} + \comment{The addition sign `+'.} +\endsetslot + +\setslot{comma} + \comment{The comma `,'.} +\endsetslot + +\setslot{hyphen} + \if \tty y \else \ligature{LIG}{hyphen}{rangedash} \fi + \comment{The hyphen `-'.} +\endsetslot + +\setslot{period} + \comment{The full point `.'.} +\endsetslot + +\setslot{slash} + \comment{The forward oblique `/'.} +\endsetslot + +\setslot{\digit{zero}} + \comment{The number zero `0'. This (and all the other numerals) may be + old style or ranging digits.} +\endsetslot + +\setslot{\digit{one}} + \comment{The number one `1'.} +\endsetslot + +\setslot{\digit{two}} + \comment{The number two `2'.} +\endsetslot + +\setslot{\digit{three}} + \comment{The number three `3'.} +\endsetslot + +\setslot{\digit{four}} + \comment{The number four `4'.} +\endsetslot + +\setslot{\digit{five}} + \comment{The number five `5'.} +\endsetslot + +\setslot{\digit{six}} + \comment{The number six `6'.} +\endsetslot + +\setslot{\digit{seven}} + \comment{The number seven `7'.} +\endsetslot + +\setslot{\digit{eight}} + \comment{The number eight `8'.} +\endsetslot + +\setslot{\digit{nine}} + \comment{The number nine `9'.} +\endsetslot + +\setslot{colon} + \comment{The colon punctuation mark `:'.} +\endsetslot + +\setslot{semicolon} + \comment{The semi-colon punctuation mark `;'.} +\endsetslot + +\if \tty y + +\setslot{less} + \ligature{LIG}{less}{guillemotleft} + \comment{The less-than sign `$<$'.} +\endsetslot + +\setslot{equal} + \comment{The equals sign `='.} +\endsetslot + +\setslot{greater} + \ligature{LIG}{greater}{guillemotright} + \comment{The greater-than sign `$>$'.} +\endsetslot + +\else + +\setslot{exclamdown} + \comment{The Spanish punctuation mark `!`'.} +\endsetslot + +\setslot{equal} + \comment{The equals sign `='.} +\endsetslot + +\setslot{questiondown} + \comment{The Spanish punctuation mark `?`'.} +\endsetslot + +\fi + +\setslot{question} + \ligature{LIG}{quoteleft}{questiondown} + \comment{The question mark `?'.} +\endsetslot + +\setslot{at} + \comment{The at sign `@'.} +\endsetslot + +\setslot{\uc{A}{a}} + \comment{The letter `{A}'.} +\endsetslot + +\setslot{\uc{B}{b}} + \comment{The letter `{B}'.} +\endsetslot + +\setslot{\uc{C}{c}} + \comment{The letter `{C}'.} +\endsetslot + +\setslot{\uc{D}{d}} + \comment{The letter `{D}'.} +\endsetslot + +\setslot{\uc{E}{e}} + \comment{The letter `{E}'.} +\endsetslot + +\setslot{\uc{F}{f}} + \comment{The letter `{F}'.} +\endsetslot + +\setslot{\uc{G}{g}} + \comment{The letter `{G}'.} +\endsetslot + +\setslot{\uc{H}{h}} + \comment{The letter `{H}'.} +\endsetslot + +\setslot{\uc{I}{i}} + \comment{The letter `{I}'.} +\endsetslot + +\setslot{\uc{J}{j}} + \comment{The letter `{J}'.} +\endsetslot + +\setslot{\uc{K}{k}} + \comment{The letter `{K}'.} +\endsetslot + +\setslot{\uc{L}{l}} + \comment{The letter `{L}'.} +\endsetslot + +\setslot{\uc{M}{m}} + \comment{The letter `{M}'.} +\endsetslot + +\setslot{\uc{N}{n}} + \comment{The letter `{N}'.} +\endsetslot + +\setslot{\uc{O}{o}} + \comment{The letter `{O}'.} +\endsetslot + +\setslot{\uc{P}{p}} + \comment{The letter `{P}'.} +\endsetslot + +\setslot{\uc{Q}{q}} + \comment{The letter `{Q}'.} +\endsetslot + +\setslot{\uc{R}{r}} + \comment{The letter `{R}'.} +\endsetslot + +\setslot{\uc{S}{s}} + \comment{The letter `{S}'.} +\endsetslot + +\setslot{\uc{T}{t}} + \comment{The letter `{T}'.} +\endsetslot + +\setslot{\uc{U}{u}} + \comment{The letter `{U}'.} +\endsetslot + +\setslot{\uc{V}{v}} + \comment{The letter `{V}'.} +\endsetslot + +\setslot{\uc{W}{w}} + \comment{The letter `{W}'.} +\endsetslot + +\setslot{\uc{X}{x}} + \comment{The letter `{X}'.} +\endsetslot + +\setslot{\uc{Y}{y}} + \comment{The letter `{Y}'.} +\endsetslot + +\setslot{\uc{Z}{z}} + \comment{The letter `{Z}'.} +\endsetslot + +\setslot{bracketleft} + \comment{The opening square bracket `['.} +\endsetslot + +\if \tty y + +\setslot{backslash} + \comment{The backwards oblique `$\backslash$'.} +\endsetslot + +\else + +\setslot{quotedblleft} + \comment{An English double opening quote mark `\,``\,'.} +\endsetslot + +\fi + +\setslot{bracketright} + \comment{The closing square bracket `]'.} +\endsetslot + +\setslot{circumflex} + \comment{The circumflex accent `\^ a'.} +\endsetslot + +\if \tty y + +\setslot{underscore} + \comment{The ASCII underline character `{\tt\char`\_}', usually set on + the baseline.} +\endsetslot + +\else + +\setslot{dotaccent} + \comment{The dot accent `\.a'.} +\endsetslot + +\fi + +\setslot{quoteleft} + \if \tty y \else \ligature{LIG}{quoteleft}{quotedblleft} \fi + \comment{The English opening single quotation mark `\,`\,'.} +\endsetslot + +\setslot{\lc{A}{a}} + \comment{The letter `{a}'.} +\endsetslot + +\setslot{\lc{B}{b}} + \comment{The letter `{b}'.} +\endsetslot + +\setslot{\lc{C}{c}} + \comment{The letter `{c}'.} +\endsetslot + +\setslot{\lc{D}{d}} + \comment{The letter `{d}'.} +\endsetslot + +\setslot{\lc{E}{e}} + \comment{The letter `{e}'.} +\endsetslot + +\setslot{\lc{F}{f}} +\if \tty y \else + \ligature{LIG}{\lc{I}{i}}{\lclig{FI}{fi}} + \ligature{LIG}{\lc{F}{f}}{\lclig{FF}{ff}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FL}{fl}} +\fi + \comment{The letter `{f}'.} +\endsetslot + +\setslot{\lc{G}{g}} + \comment{The letter `{g}'.} +\endsetslot + +\setslot{\lc{H}{h}} + \comment{The letter `{h}'.} +\endsetslot + +\setslot{\lc{I}{i}} + \comment{The letter `{i}'.} +\endsetslot + +\setslot{\lc{J}{j}} + \comment{The letter `{j}'.} +\endsetslot + +\setslot{\lc{K}{k}} + \comment{The letter `{k}'.} +\endsetslot + +\setslot{\lc{L}{l}} + \comment{The letter `{l}'.} +\endsetslot + +\setslot{\lc{M}{m}} + \comment{The letter `{m}'.} +\endsetslot + +\setslot{\lc{N}{n}} + \comment{The letter `{n}'.} +\endsetslot + +\setslot{\lc{O}{o}} + \comment{The letter `{o}'.} +\endsetslot + +\setslot{\lc{P}{p}} + \comment{The letter `{p}'.} +\endsetslot + +\setslot{\lc{Q}{q}} + \comment{The letter `{q}'.} +\endsetslot + +\setslot{\lc{R}{r}} + \comment{The letter `{r}'.} +\endsetslot + +\setslot{\lc{S}{s}} + \comment{The letter `{s}'.} +\endsetslot + +\setslot{\lc{T}{t}} + \comment{The letter `{t}'.} +\endsetslot + +\setslot{\lc{U}{u}} + \comment{The letter `{u}'.} +\endsetslot + +\setslot{\lc{V}{v}} + \comment{The letter `{v}'.} +\endsetslot + +\setslot{\lc{W}{w}} + \comment{The letter `{w}'.} +\endsetslot + +\setslot{\lc{X}{x}} + \comment{The letter `{x}'.} +\endsetslot + +\setslot{\lc{Y}{y}} + \comment{The letter `{y}'.} +\endsetslot + +\setslot{\lc{Z}{z}} + \comment{The letter `{z}'.} +\endsetslot + +\if \tty y + +\setslot{braceleft} + \comment{The opening curly brace `\{'.} +\endsetslot + +\setslot{bar} + \comment{The ASCII vertical bar `$|$'. This is + included for compatibility with typewriter fonts used for computer + listings.} +\endsetslot + +\setslot{braceright} + \comment{The closing curly brace `\}'.} +\endsetslot + +\else + +\setslot{rangedash} + \ligature{LIG}{hyphen}{punctdash} + \comment{The number range dash `1--9'. In a monowidth font, this + might be set as `{\tt 1{-}9}'.} +\endsetslot + +\setslot{punctdash} + \comment{The punctuation dash `Oh---boy.' In a monowidth font, this + might be set as `{\tt Oh{-}{-}boy.}'} +\endsetslot + +\setslot{hungarumlaut} + \comment{The long Hungarian umlaut `\H a'.} +\endsetslot + +\fi + +\setslot{tilde} + \comment{The tilde accent `\~a'.} +\endsetslot + +\setslot{dieresis} + \comment{The umlaut or dieresis accent `\"a'.} +\endsetslot + +\comment{\subsection{Cyrillic part of the LCY encoding} + It can be used also as a separate encoding (LCY-hi) to build + virtual fonts.} + +\inputetx{LCY-hi} + +\endencoding +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/ot2.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/ot2.etx new file mode 100644 index 00000000000..3677b80a555 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/ot2.etx @@ -0,0 +1,703 @@ +\relax + +\documentclass[twocolumn]{article} +\usepackage[OT2,OT1]{fontenc} +\usepackage{fontdoc} +\catcode`\`=13 \def`#1'{\textquoteleft{\UseTextSymbol{OT2}{#1}}\textquoteright} + +\title{The \TeX\ Cyrillic OT2 text encoding vector} +\author{Werner Lemberg, Vladimir Volovich} +\date{15 December 1999\\ +Version 0.3} + +\begin{document} +\maketitle +\section{Introduction} + +This document describes the \TeX\ Cyrillic OT2 encoding vector, +which is used e.~g.\ in AMS Washington Cyrillic fonts (wncy*), +and in LH Cyrillic fonts (wn*). + +Ligatures fully correspond to wncy* fonts. + +\encoding + +\needsfontinstversion{1.800} + +\comment{\section{Default values}} + +% a hook to suppress WN ligatures (cf. WL fonts at CTAN:fonts/amsfonts/cyr-alt) +\ifx\wnlig\undefined\def\wnlig{\ligature}\fi + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\digit#1{#1} +\ifisint{monowidth}\then + \setcommand\tty{y} +\else + \setcommand\tty{n} +\fi + +\if \tty y + \setstr{codingscheme}{TEX CYRILLIC FONT ENCODING - OT2tt} +\else + \setstr{codingscheme}{TEX CYRILLIC FONT ENCODING - OT2} +\fi + +\setint{italicslant}{0} + +\ifisglyph{cyrh}\then + \setint{xheight}{\height{cyrh}} +\else + \setint{xheight}{500} +\fi + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{cyrii}\then + \setint{interword}{\width{cyrii}} +\else + \setint{interword}{333} +\fi\fi + +\comment{\section{Default font dimensions}} + +\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{monowidth}\then + \setint{fontdimen(7)}{\int{interword}} % extra space after . +\else + \setint{fontdimen(7)}{\scale{\int{interword}}{240}}% extra space after . +\fi + +\comment{\section{The encoding}} + +\setslot{\uc{CYRNJE}{cyrnje}} + \comment{Cyrillic capital letter nje `\CYRNJE'.} +\endsetslot + +\setslot{\uc{CYRLJE}{cyrlje}} + \comment{Cyrillic capital letter lje `\CYRLJE'.} +\endsetslot + +\setslot{\uc{CYRDZHE}{cyrdzhe}} + \comment{Cyrillic capital letter dzhe `\CYRDZHE'.} +\endsetslot + +\setslot{\uc{CYREREV}{cyrerev}} + \comment{Cyrillic capital letter e `\CYREREV'.} +\endsetslot + +\setslot{\uc{CYRII}{cyrii}} + \comment{Cyrillic capital letter byelorussian-ukrainian i `\CYRII'.} +\endsetslot + +\setslot{\uc{CYRIE}{cyrie}} + \comment{Cyrillic capital letter ukrainian ie `\CYRIE'.} +\endsetslot + +\setslot{\uc{CYRDJE}{cyrdje}} + \comment{Cyrillic capital letter dje `\CYRDJE'.} +\endsetslot + +\setslot{\uc{CYRTSHE}{cyrtshe}} + \comment{Cyrillic capital letter tshe `\CYRTSHE'.} +\endsetslot + +\setslot{\lc{CYRNJE}{cyrnje}} + \comment{Cyrillic small letter nje `\cyrnje'.} +\endsetslot + +\setslot{\lc{CYRLJE}{cyrlje}} + \comment{Cyrillic small letter lje `\cyrlje'.} +\endsetslot + +\setslot{\lc{CYRDZHE}{cyrdzhe}} + \comment{Cyrillic small letter dzhe `\cyrdzhe'.} +\endsetslot + +\setslot{\lc{CYREREV}{cyrerev}} + \comment{Cyrillic small letter e `\cyrerev'.} +\endsetslot + +\setslot{\lc{CYRII}{cyrii}} + \comment{Cyrillic small letter byelorussian-ukrainian i `\cyrii'.} +\endsetslot + +\setslot{\lc{CYRIE}{cyrie}} + \comment{Cyrillic small letter ukrainian ie `\cyrie'.} +\endsetslot + +\setslot{\lc{CYRDJE}{cyrdje}} + \comment{Cyrillic small letter dje `\cyrdje'.} +\endsetslot + +\setslot{\lc{CYRTSHE}{cyrtshe}} + \comment{Cyrillic small letter tshe `\cyrtshe'.} +\endsetslot + +\setslot{\uc{CYRYU}{cyryu}} + \comment{Cyrillic capital letter yu `\CYRYU'.} +\endsetslot + +\setslot{\uc{CYRZH}{cyrzh}} + \comment{Cyrillic capital letter zhe `\CYRZH'.} +\endsetslot + +\setslot{\uc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic capital letter short i `\CYRISHRT'.} +\endsetslot + +\setslot{\uc{CYRYO}{cyryo}} + \comment{Cyrillic capital letter io `\CYRYO'.} +\endsetslot + +\setslot{\uc{CYRIZH}{cyrizh}} + \comment{Cyrillic capital letter izhitsa `\CYRIZH'.} +\endsetslot + +\setslot{\uc{CYRFITA}{cyrfita}} + \comment{Cyrillic capital letter fita `\CYRFITA'.} +\endsetslot + +\setslot{\uc{CYRDZE}{cyrdze}} + \comment{Cyrillic capital letter dze `\CYRDZE'.} +\endsetslot + +\setslot{\uc{CYRYA}{cyrya}} + \comment{Cyrillic capital letter ya `\CYRYA'.} +\endsetslot + +\setslot{\lc{CYRYU}{cyryu}} + \comment{Cyrillic small letter yu `\cyryu'.} +\endsetslot + +\setslot{\lc{CYRZH}{cyrzh}} + \comment{Cyrillic small letter zhe `\cyrzh'.} +\endsetslot + +\setslot{\lc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic small letter short i `\cyrishrt'.} +\endsetslot + +\setslot{\lc{CYRYO}{cyryo}} + \comment{Cyrillic small letter io `\cyryo'.} +\endsetslot + +\setslot{\lc{CYRIZH}{cyrizh}} + \comment{Cyrillic small letter izhitsa `\cyrizh'.} +\endsetslot + +\setslot{\lc{CYRFITA}{cyrfita}} + \comment{Cyrillic small letter fita `\cyrfita'.} +\endsetslot + +\setslot{\lc{CYRDZE}{cyrdze}} + \comment{Cyrillic small letter dze `\cyrdze'.} +\endsetslot + +\setslot{\lc{CYRYA}{cyrya}} + \comment{Cyrillic small letter ya `\cyrya'.} +\endsetslot + +\setslot{\lc{Dieresis}{dieresis}} + \comment{The umlaut or dieresis accent `\"{}'.} +\endsetslot + +\setslot{exclam} + \comment{The exclamation mark `!'.} +\endsetslot + +\if \tty y + +\setslot{quotedbl} + \comment{The `neutral' quotation mark `{\tt"}', included for + use in monowidth fonts, or for setting computer programs.} +\endsetslot + +\else + +\setslot{quotedblright} + \comment{The English closing quote mark `\,\textquotedblright\,'.} +\endsetslot + +\fi + +\setslot{\uc{CYRYAT}{cyryat}} + \comment{Cyrillic capital letter yat `\CYRYAT'.} +\endsetslot + +\setslot{\lc{cyrBreve}{cyrbreve}} + \comment{Cyrillic breve `\U{}'.} +\endsetslot + +\setslot{percent} + \comment{The percent sign `\%'.} +\endsetslot + +\setslot{\lc{Acute}{acute}} + \comment{The acute accent `\'{}'.} +\endsetslot + +\setslot{quoteright} + \if \tty y \else \ligature{LIG}{quoteright}{quotedblright} \fi + \comment{The English closing single quote mark `\,\textquoteright\,'.} +\endsetslot + +\setslot{parenleft} + \comment{The opening parenthesis `('.} +\endsetslot + +\setslot{parenright} + \comment{The closing parenthesis `)'.} +\endsetslot + +\setslot{asterisk} + \comment{The raised asterisk `*'.} +\endsetslot + +\setslot{\lc{CYRYAT}{cyryat}} + \comment{Cyrillic small letter yat `\cyryat'.} +\endsetslot + +\setslot{comma} + \comment{The comma `,'.} +\endsetslot + +\setslot{hyphen} + \ligature{LIG}{hyphen}{endash} + \comment{The hyphen `-'.} +\endsetslot + +\setslot{period} + \comment{The period `.'.} +\endsetslot + +\setslot{slash} + \comment{The forward oblique `/'.} +\endsetslot + +\setslot{\digit{zero}} + \comment{The number `0'. This (and all the other numerals) may be + old style or ranging digits.} +\endsetslot + +\setslot{\digit{one}} + \comment{The number `1'.} +\endsetslot + +\setslot{\digit{two}} + \comment{The number `2'.} +\endsetslot + +\setslot{\digit{three}} + \comment{The number `3'.} +\endsetslot + +\setslot{\digit{four}} + \comment{The number `4'.} +\endsetslot + +\setslot{\digit{five}} + \comment{The number `5'.} +\endsetslot + +\setslot{\digit{six}} + \wnlig{LIG}{\lc{CYRH}{cyrh}}{\uc{CYRSHCH}{cyrshch}} + \wnlig{LIG}{\uc{CYRH}{cyrh}}{\uc{CYRSHCH}{cyrshch}} + \comment{The number `6'.} +\endsetslot + +\setslot{\digit{seven}} + \wnlig{LIG}{\lc{CYRH}{cyrh}}{\lc{CYRSHCH}{cyrshch}} + \comment{The number `7'.} +\endsetslot + +\setslot{\digit{eight}} + \comment{The number `8'.} +\endsetslot + +\setslot{\digit{nine}} + \comment{The number `9'.} +\endsetslot + +\setslot{colon} + \comment{The colon punctuation mark `:'.} +\endsetslot + +\setslot{semicolon} + \comment{The semi-colon punctuation mark `;'.} +\endsetslot + +\setslot{guillemotleft} + \comment{A Cyrillic double opening quote mark `\guillemotleft', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\lc{dotlessI}{dotlessi}} + \comment{A dotless i `\i', used to produce accented letters such as + `\=\i'.} +\endsetslot + +\setslot{guillemotright} + \comment{A Cyrillic double closing quote mark `\guillemotright', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{question} + \comment{The question mark `?'.} +\endsetslot + +\setslot{\lc{Breve}{breve}} + \comment{The breve accent `\u{}'.} +\endsetslot + +\setslot{\uc{CYRA}{cyra}} + \comment{Cyrillic capital letter a `\CYRA'.} +\endsetslot + +\setslot{\uc{CYRB}{cyrb}} + \comment{Cyrillic capital letter be `\CYRB'.} +\endsetslot + +\setslot{\uc{CYRC}{cyrc}} + \wnlig{LIG}{\digit{one}}{\uc{CYRTSHE}{cyrtshe}} + \wnlig{LIG}{\uc{CYRH}{cyrh}}{\uc{CYRCH}{cyrch}} + \wnlig{LIG}{\lc{CYRH}{cyrh}}{\uc{CYRCH}{cyrch}} + \comment{Cyrillic capital letter tse `\CYRC'.} +\endsetslot + +\setslot{\uc{CYRD}{cyrd}} + \wnlig{LIG}{\digit{one}}{\uc{CYRDJE}{cyrdje}} + \wnlig{LIG}{\digit{two}}{\uc{CYRDZHE}{cyrdzhe}} + \wnlig{LIG}{\digit{three}}{\uc{CYRDZE}{cyrdze}} + \wnlig{LIG}{\uc{CYRJE}{cyrje}}{\uc{CYRDJE}{cyrdje}} + \wnlig{LIG}{\lc{CYRJE}{cyrje}}{\uc{CYRDJE}{cyrdje}} + \comment{Cyrillic capital letter de `\CYRD'.} +\endsetslot + +\setslot{\uc{CYRE}{cyre}} + \wnlig{LIG}{\digit{zero}}{\uc{CYRYO}{cyryo}} + \wnlig{LIG}{\digit{one}}{\uc{CYREREV}{cyrerev}} + \wnlig{LIG}{\digit{two}}{\uc{CYRIE}{cyrie}} + \comment{Cyrillic capital letter ie `\CYRE'.} +\endsetslot + +\setslot{\uc{CYRF}{cyrf}} + \comment{Cyrillic capital letter ef `\CYRF'.} +\endsetslot + +\setslot{\uc{CYRG}{cyrg}} + \comment{Cyrillic capital letter ghe `\CYRG'.} +\endsetslot + +\setslot{\uc{CYRH}{cyrh}} + \comment{Cyrillic capital letter ha `\CYRH'.} +\endsetslot + +\setslot{\uc{CYRI}{cyri}} + \wnlig{LIG}{\digit{zero}}{\uc{CYRISHRT}{cyrishrt}} + \wnlig{LIG}{\digit{one}}{\uc{CYRII}{cyrii}} + \comment{Cyrillic capital letter i `\CYRI'.} +\endsetslot + +\setslot{\uc{CYRJE}{cyrje}} + \wnlig{LIG}{\digit{one}}{\uc{CYRYA}{cyrya}} + \wnlig{LIG}{\digit{two}}{\uc{CYRYU}{cyryu}} + \comment{Cyrillic capital letter je `\CYRJE'.} +\endsetslot + +\setslot{\uc{CYRK}{cyrk}} + \wnlig{LIG}{\uc{CYRH}{cyrh}}{\uc{CYRH}{cyrh}} + \wnlig{LIG}{\lc{CYRH}{cyrh}}{\uc{CYRH}{cyrh}} + \comment{Cyrillic capital letter ka `\CYRK'.} +\endsetslot + +\setslot{\uc{CYRL}{cyrl}} + \wnlig{LIG}{\digit{one}}{\uc{CYRLJE}{cyrlje}} + \wnlig{LIG}{\uc{CYRJE}{cyrje}}{\uc{CYRLJE}{cyrlje}} + \wnlig{LIG}{\lc{CYRJE}{cyrje}}{\uc{CYRLJE}{cyrlje}} + \comment{Cyrillic capital letter el `\CYRL'.} +\endsetslot + +\setslot{\uc{CYRM}{cyrm}} + \comment{Cyrillic capital letter em `\CYRM'.} +\endsetslot + +\setslot{\uc{CYRN}{cyrn}} + \wnlig{LIG}{\digit{zero}}{numero} + \wnlig{LIG}{\digit{one}}{\uc{CYRNJE}{cyrnje}} + \wnlig{LIG}{\uc{CYRJE}{cyrje}}{\uc{CYRNJE}{cyrnje}} + \wnlig{LIG}{\lc{CYRJE}{cyrje}}{\uc{CYRNJE}{cyrnje}} + \comment{Cyrillic capital letter en `\CYRN'.} +\endsetslot + +\setslot{\uc{CYRO}{cyro}} + \comment{Cyrillic capital letter o `\CYRO'.} +\endsetslot + +\setslot{\uc{CYRP}{cyrp}} + \wnlig{LIG}{\digit{one}}{\uc{CYRSFTSN}{cyrsftsn}} + \wnlig{LIG}{\digit{two}}{\uc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic capital letter pe `\CYRP'.} +\endsetslot + +\setslot{\uc{CYRCH}{cyrch}} + \comment{Cyrillic capital letter che `\CYRCH'.} +\endsetslot + +\setslot{\uc{CYRR}{cyrr}} + \comment{Cyrillic capital letter er `\CYRR'.} +\endsetslot + +\setslot{\uc{CYRS}{cyrs}} + \wnlig{LIG}{\uc{CYRH}{cyrh}}{\uc{CYRSH}{cyrsh}} + \wnlig{LIG}{\lc{CYRH}{cyrh}}{\uc{CYRSH}{cyrsh}} + \comment{Cyrillic capital letter es `\CYRS'.} +\endsetslot + +\setslot{\uc{CYRT}{cyrt}} + \wnlig{LIG}{\uc{CYRS}{cyrs}}{\uc{CYRC}{cyrc}} + \wnlig{LIG}{\lc{CYRS}{cyrs}}{\uc{CYRC}{cyrc}} + \comment{Cyrillic capital letter te `\CYRT'.} +\endsetslot + +\setslot{\uc{CYRU}{cyru}} + \comment{Cyrillic capital letter u `\CYRU'.} +\endsetslot + +\setslot{\uc{CYRV}{cyrv}} + \comment{Cyrillic capital letter ve `\CYRV'.} +\endsetslot + +\setslot{\uc{CYRSHCH}{cyrshch}} + \comment{Cyrillic capital letter shcha `\CYRSHCH'.} +\endsetslot + +\setslot{\uc{CYRSH}{cyrsh}} + \wnlig{LIG}{\uc{CYRCH}{cyrch}}{\uc{CYRSHCH}{cyrshch}} + \wnlig{LIG}{\lc{CYRCH}{cyrch}}{\uc{CYRSHCH}{cyrshch}} + \wnlig{LIG}{\uc{CYRC}{cyrc}}{\digit{six}} + \wnlig{LIG}{\lc{CYRC}{cyrc}}{\digit{six}} + \comment{Cyrillic capital letter sha `\CYRSH'.} +\endsetslot + +\setslot{\uc{CYRERY}{cyrery}} + \wnlig{LIG}{\uc{CYRA}{cyra}}{\uc{CYRYA}{cyrya}} + \wnlig{LIG}{\lc{CYRA}{cyra}}{\uc{CYRYA}{cyrya}} + \wnlig{LIG}{\uc{CYRU}{cyru}}{\uc{CYRYU}{cyryu}} + \wnlig{LIG}{\lc{CYRU}{cyru}}{\uc{CYRYU}{cyryu}} + \comment{Cyrillic capital letter yeru `\CYRERY'.} +\endsetslot + +\setslot{\uc{CYRZ}{cyrz}} + \wnlig{LIG}{\digit{one}}{\uc{CYRZH}{cyrzh}} + \wnlig{LIG}{\uc{CYRH}{cyrh}}{\uc{CYRZH}{cyrzh}} + \wnlig{LIG}{\lc{CYRH}{cyrh}}{\uc{CYRZH}{cyrzh}} + \comment{Cyrillic capital letter ze `\CYRZ'.} +\endsetslot + +\setslot{bracketleft} + \wnlig{LIG}{bracketleft}{guillemotleft} + \comment{The opening square bracket `['.} +\endsetslot + +\if \tty y + +\setslot{backslash} + \comment{The backwards oblique `\textbackslash'.} +\endsetslot + +\else + +\setslot{quotedblleft} + \comment{The English opening quote mark `\,\textquotedblleft\,'.} +\endsetslot + +\fi + +\setslot{bracketright} + \wnlig{LIG}{bracketright}{guillemotright} + \comment{The closing square bracket `]'.} +\endsetslot + +\setslot{\uc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic capital letter soft sign `\CYRSFTSN'.} +\endsetslot + +\setslot{\uc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic capital letter hard sign `\CYRHRDSN'.} +\endsetslot + +\setslot{quoteleft} + \if \tty y \else \wnlig{LIG}{quoteleft}{quotedblleft} \fi + \comment{The English opening single quote mark `\,\textquoteleft\,'.} +\endsetslot + +\setslot{\lc{CYRA}{cyra}} + \comment{Cyrillic small letter a `\cyra'.} +\endsetslot + +\setslot{\lc{CYRB}{cyrb}} + \comment{Cyrillic small letter be `\cyrb'.} +\endsetslot + +\setslot{\lc{CYRC}{cyrc}} + \wnlig{LIG}{\digit{one}}{\lc{CYRTSHE}{cyrtshe}} + \wnlig{LIG}{\lc{CYRH}{cyrh}}{\lc{CYRCH}{cyrch}} + \comment{Cyrillic small letter tse `\cyrc'.} +\endsetslot + +\setslot{\lc{CYRD}{cyrd}} + \wnlig{LIG}{\digit{one}}{\lc{CYRDJE}{cyrdje}} + \wnlig{LIG}{\digit{two}}{\lc{CYRDZHE}{cyrdzhe}} + \wnlig{LIG}{\digit{three}}{\lc{CYRDZE}{cyrdze}} + \wnlig{LIG}{\lc{CYRJE}{cyrje}}{\lc{CYRDJE}{cyrdje}} + \comment{Cyrillic small letter de `\cyrd'.} +\endsetslot + +\setslot{\lc{CYRE}{cyre}} + \wnlig{LIG}{\digit{zero}}{\lc{CYRYO}{cyryo}} + \wnlig{LIG}{\digit{one}}{\lc{CYREREV}{cyrerev}} + \wnlig{LIG}{\digit{two}}{\lc{CYRIE}{cyrie}} + \comment{Cyrillic small letter ie `\cyre'.} +\endsetslot + +\setslot{\lc{CYRF}{cyrf}} + \comment{Cyrillic small letter ef `\cyrf'.} +\endsetslot + +\setslot{\lc{CYRG}{cyrg}} + \comment{Cyrillic small letter ghe `\cyrg'.} +\endsetslot + +\setslot{\lc{CYRH}{cyrh}} + \comment{Cyrillic small letter ha `\cyrh'.} +\endsetslot + +\setslot{\lc{CYRI}{cyri}} + \wnlig{LIG}{\digit{zero}}{\lc{CYRISHRT}{cyrishrt}} + \wnlig{LIG}{\digit{one}}{\lc{CYRII}{cyrii}} + \comment{Cyrillic small letter i `\cyri'.} +\endsetslot + +\setslot{\lc{CYRJE}{cyrje}} + \wnlig{LIG}{\digit{one}}{\lc{CYRYA}{cyrya}} + \wnlig{LIG}{\digit{two}}{\lc{CYRYU}{cyryu}} + \comment{Cyrillic small letter je `\cyrje'.} +\endsetslot + +\setslot{\lc{CYRK}{cyrk}} + \wnlig{LIG}{\lc{CYRH}{cyrh}}{\lc{CYRH}{cyrh}} + \comment{Cyrillic small letter ka `\cyrk'.} +\endsetslot + +\setslot{\lc{CYRL}{cyrl}} + \wnlig{LIG}{\digit{one}}{\lc{CYRLJE}{cyrlje}} + \wnlig{LIG}{\lc{CYRJE}{cyrje}}{\lc{CYRLJE}{cyrlje}} + \comment{Cyrillic small letter el `\cyrl'.} +\endsetslot + +\setslot{\lc{CYRM}{cyrm}} + \comment{Cyrillic small letter em `\cyrm'.} +\endsetslot + +\setslot{\lc{CYRN}{cyrn}} + \wnlig{LIG}{\digit{one}}{\lc{CYRNJE}{cyrnje}} + \wnlig{LIG}{\lc{CYRJE}{cyrje}}{\lc{CYRNJE}{cyrnje}} + \comment{Cyrillic small letter en `\cyrn'.} +\endsetslot + +\setslot{\lc{CYRO}{cyro}} + \comment{Cyrillic small letter o `\cyro'.} +\endsetslot + +\setslot{\lc{CYRP}{cyrp}} + \wnlig{LIG}{\digit{one}}{\lc{CYRSFTSN}{cyrsftsn}} + \wnlig{LIG}{\digit{two}}{\lc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic small letter pe `\cyrp'.} +\endsetslot + +\setslot{\lc{CYRCH}{cyrch}} + \comment{Cyrillic small letter che `\cyrch'.} +\endsetslot + +\setslot{\lc{CYRR}{cyrr}} + \comment{Cyrillic small letter er `\cyrr'.} +\endsetslot + +\setslot{\lc{CYRS}{cyrs}} + \wnlig{LIG}{\lc{CYRH}{cyrh}}{\lc{CYRSH}{cyrsh}} + \comment{Cyrillic small letter es `\cyrs'.} +\endsetslot + +\setslot{\lc{CYRT}{cyrt}} + \wnlig{LIG}{\lc{CYRS}{cyrs}}{\lc{CYRC}{cyrc}} + \comment{Cyrillic small letter te `\cyrt'.} +\endsetslot + +\setslot{\lc{CYRU}{cyru}} + \comment{Cyrillic small letter u `\cyru'.} +\endsetslot + +\setslot{\lc{CYRV}{cyrv}} + \comment{Cyrillic small letter ve `\cyrv'.} +\endsetslot + +\setslot{\lc{CYRSHCH}{cyrshch}} + \comment{Cyrillic small letter shcha `\cyrshch'.} +\endsetslot + +\setslot{\lc{CYRSH}{cyrsh}} + \wnlig{LIG}{\lc{CYRCH}{cyrch}}{\lc{CYRSHCH}{cyrshch}} + \wnlig{LIG}{\lc{CYRC}{cyrc}}{\digit{seven}} + \comment{Cyrillic small letter sha `\cyrsh'.} +\endsetslot + +\setslot{\lc{CYRERY}{cyrery}} + \wnlig{LIG}{\lc{CYRA}{cyra}}{\lc{CYRYA}{cyrya}} + \wnlig{LIG}{\lc{CYRU}{cyru}}{\lc{CYRYU}{cyryu}} + \comment{Cyrillic small letter yeru `\cyrery'.} +\endsetslot + +\setslot{\lc{CYRZ}{cyrz}} + \wnlig{LIG}{\digit{one}}{\lc{CYRZH}{cyrzh}} + \wnlig{LIG}{\lc{CYRH}{cyrh}}{\lc{CYRZH}{cyrzh}} + \comment{Cyrillic small letter ze `\cyrz'.} +\endsetslot + +\setslot{endash} + \if \tty y \else \ligature{LIG}{hyphen}{emdash} \fi + \comment{The number range dash `1--9'. In a monowidth font, this + might be set as `{\tt 1{-}9}'.} +\endsetslot + +\setslot{emdash} + \comment{Cyrillic em dash---longer than endash, but shorter + than english emdash: `\cyrdash'.} +\endsetslot + +\setslot{numero} + \comment{The numero sign `\textnumero', similar to the letter `N' + with a raised `o', unavailable in most PostScript fonts.} +\endsetslot + +\setslot{\lc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic small letter soft sign `\cyrsftsn'.} +\endsetslot + +\setslot{\lc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic small letter hard sign `\cyrhrdsn'.} +\endsetslot + +\endencoding +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/t2a.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/t2a.etx new file mode 100644 index 00000000000..00ebb267b11 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/t2a.etx @@ -0,0 +1,1284 @@ +\relax + +\documentclass[twocolumn]{article} +\usepackage[T2A]{fontenc} +\usepackage{fontdoc} + +\title{The \TeX\ Cyrillic T2A text encoding vector} +\author{Werner Lemberg, Vladimir Volovich} +\date{17 July 1998\\ +Version 0.1} + +\begin{document} + +\maketitle + +\section{Introduction} + +This document describes the Cyrillic T2A text encoding. +The latin part of this file is based on `t1.etx' by +Alan Jeffrey, Sebastian Rahtz, Ulrik Vieth. + +To use this encoding, you should define the following macros: +\begin{itemize} +\item \verb|\lc{A}{a}| should return the name of a lower-case + glyph, for example `{\tt a}' or `{\tt Asmall}'. + +\item \verb|\uc{A}{a}| should return the name of an upper-case + glyph, for example `{\tt A}' or `{\tt Amedium}'. + +\item \verb|\lctop{Aacute}{aacute}| should return the name of a + lower-case composite glyph formed from putting a diacritical above + a letter, for example `{\tt aacute}' or `{\tt Aacutesmall}'. + +\item \verb|\uctop{Aacute}{aacute}| should return the name of an + upper-case composite glyph formed from putting a diacritical above + a letter, for example `{\tt Aacute}' or `{\tt Aacutemedium}'. + +\item \verb|\lclig{FI}{fi}| should return the name of a lower-case + ligature, for example `{\tt fi}' or `{\tt FIsmall}'. + +\item \verb|\uclig{FI}{fi}| should return the name of an upper-case + ligature, for example `{\tt FI}' or `{\tt FImedium}'. + +\item \verb|\digit{zero}| should return the name of a digit, for + example `{\tt zero}' or `{\tt zerooldstyle}'. +\end{itemize} +These should all expand in the mouth, otherwise you may get error +messages! + +For example, to get the standard upper and lower case font, you should +define: +\begin{verbatim} + \setcommand\lc#1#2{#2} + \setcommand\uc#1#2{#1} + \setcommand\lctop#1#2{#2} + \setcommand\uctop#1#2{#1} + \setcommand\lclig#1#2{#2} + \setcommand\uclig#1#2{#1} + \setcommand\digit#1{#1} +\end{verbatim} +To get a caps and small caps font with old style digits and letter +spacing, you should define: +\begin{verbatim} + \setcommand\lc#1#2{#1small} + \setcommand\uc#1#2{#1} + \setcommand\lctop#1#2{#1small} + \setcommand\uctop#1#2{#1} + \setcommand\lclig#1#2{#2small} + \setcommand\uclig#1#2{#1spaced} + \setcommand\digit#1{#1oldstyle} +\end{verbatim} +To get an all-caps font with medium-cap composite letters and letter +spacing, you should define: +\begin{verbatim} + \setcommand\lc#1#2{#1} + \setcommand\uc#1#2{#1} + \setcommand\lctop#1#2{#1medium} + \setcommand\uctop#1#2{#1medium} + \setcommand\lclig#1#2{#1spaced} + \setcommand\uclig#1#2{#1spaced} + \setcommand\digit#1{#1} +\end{verbatim} +This document describes the upper and lower case encoding. + +\encoding + +\needsfontinstversion{1.800} + +\comment{\section{Default values}} + +\setstr{codingscheme}{TEX CYRILLIC FONT ENCODING - T2A} + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\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 + +% added by Thierry Bouche <Thierry.Bouche@ujf-grenoble.fr> +% 1997/02/07 to calculate values for extra EC fontdimens +% Amended by SPQR 1997/02/09 +\ifisglyph{X}\then + \setint{capheight}{\height{X}} +\else + \setint{capheight}{750} +\fi + +\ifisglyph{d}\then + \setint{ascender}{\height{d}} +\else + \ifisint{capheight}\then + \setint{ascender}{\int{capheight}} + \else + \setint{ascender}{750} +\fi\fi + +\ifisglyph{Aring}\then + \setint{acccapheight}{\height{Aring}} +\else + \setint{acccapheight}{999} +\fi + +\ifisint{descender_neg}\then + \setint{descender}{\neg{\int{descender_neg}}} + \else + \ifisglyph{p}\then + \setint{descender}{\depth{p}} + \else + \setint{descender}{250} + \fi +\fi + +\ifisglyph{Aring}\then + \setint{maxheight}{\height{Aring}} +\else + \setint{maxheight}{1000} +\fi + +\ifisint{maxdepth_neg}\then + \setint{maxdepth}{\neg{\int{maxdepth_neg}}} +\else + \ifisglyph{j}\then + \setint{maxdepth}{\depth{j}} + \else + \setint{maxdepth}{250} + \fi +\fi + +\ifisglyph{six}\then + \setint{digitwidth}{\width{six}} +\else + \setint{digitwidth}{500} +\fi + +\setint{capstem}{0} % not in AFM files +\setint{baselineskip}{1200} +% end changes by Thierry + + +\comment{\section{Default font dimensions}} + +\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{monowidth}\then + \setint{fontdimen(7)}{\int{interword}} % extra space after . +\else + \setint{fontdimen(7)}{\scale{\int{interword}}{240}}% extra space after . +\fi +% added by Thierry Bouche <Thierry.Bouche@ujf-grenoble.fr> 1997/02/07 +\setint{fontdimen(8)}{\int{capheight}} % cap height +\setint{fontdimen(9)}{\int{ascender}} % ascender +\setint{fontdimen(10)}{\int{acccapheight}} % accented cap height +\setint{fontdimen(11)}{\int{descender}} % descender's depth +\setint{fontdimen(12)}{\int{maxheight}} % max height +\setint{fontdimen(13)}{\int{maxdepth}} % max depth +\setint{fontdimen(14)}{\int{digitwidth}} % digit width +\setint{fontdimen(15)}{\int{capstem}} % cap_stem +\setint{fontdimen(16)}{\int{baselineskip}} % baselineskip + + +\comment{\section{The encoding} + There are 256 glyphs in this encoding.} + +\setslot{\lc{Grave}{grave}} + \comment{The grave accent `\`{}'.} +\endsetslot + +\setslot{\lc{Acute}{acute}} + \comment{The acute accent `\'{}'.} +\endsetslot + +\setslot{\lc{Circumflex}{circumflex}} + \comment{The circumflex accent `\^{}'.} +\endsetslot + +\setslot{\lc{Tilde}{tilde}} + \comment{The tilde accent `\~{}'.} +\endsetslot + +\setslot{\lc{Dieresis}{dieresis}} + \comment{The umlaut or dieresis accent `\"{}'.} +\endsetslot + +\setslot{\lc{Hungarumlaut}{hungarumlaut}} + \comment{The long Hungarian umlaut `\H{}'.} +\endsetslot + +\setslot{\lc{Ring}{ring}} + \comment{The ring accent `\r{}'.} +\endsetslot + +\setslot{\lc{Caron}{caron}} + \comment{The caron or h\'a\v cek accent `\v{}'.} +\endsetslot + +\setslot{\lc{Breve}{breve}} + \comment{The breve accent `\u{}'.} +\endsetslot + +\setslot{\lc{Macron}{macron}} + \comment{The macron accent `\={}'.} +\endsetslot + +\setslot{\lc{Dotaccent}{dotaccent}} + \comment{The dot accent `\.{}'.} +\endsetslot + +\setslot{\lc{Cedilla}{cedilla}} + \comment{The cedilla accent `\c{}'.} +\endsetslot + +\setslot{\lc{Ogonek}{ogonek}} + \comment{The ogonek accent `\k{}'.} +\endsetslot + +\setslot{CYRpalochka} + \comment{Cyrillic letter palochka `\CYRpalochka'.} +\endsetslot + +\setslot{angleleft} + \comment{Left-pointing (cyrillic) angle bracket `\cyrlangle'.} +\endsetslot + +\setslot{angleright} + \comment{Right-pointing (cyrillic) angle bracket `\cyrrangle'.} +\endsetslot + +\setslot{quotedblleft} + \comment{The English opening quote mark `\,\textquotedblleft\,'.} +\endsetslot + +\setslot{quotedblright} + \comment{The English closing quote mark `\,\textquotedblright\,'.} +\endsetslot + +\setslot{\lc{cyrFlex}{cyrflex}} + \comment{Cyrillic circumflex `\f{}'.} +\endsetslot + +\setslot{\lc{dblGrave}{dblgrave}} + \comment{Double grave accent `\C{}'.} +\endsetslot + +\setslot{\lc{cyrBreve}{cyrbreve}} + \comment{Cyrillic breve `\U{}'.} +\endsetslot + +\setslot{rangedash} + \ligature{LIG}{hyphen}{cyrdash} + \comment{The number range dash `1--9'. In a monowidth font, this + might be set as `{\tt 1{-}9}'.} +\endsetslot + +\setslot{cyrdash} + \comment{Cyrillic em dash---longer than endash, but shorter + than english emdash: `\cyrdash'.} +\endsetslot + +\setslot{compwordmark} + \comment{An invisible glyph, with zero width and depth, but the + height of lowercase letters without ascenders. + It is used to stop ligaturing in words like `shelf{}ful'.} +\endsetslot + +\setslot{perthousandzero} + \comment{A glyph which is placed after `\%' to produce a + `per-thousand', or twice to produce `per-ten-thousand'. + Your guess is as good as mine as to what this glyph should look + like in a monowidth font.} +\endsetslot + +\setslot{\lc{dotlessI}{dotlessi}} + \comment{A dotless i `\i', used to produce accented letters such as + `\=\i'.} +\endsetslot + +\setslot{\lc{dotlessJ}{dotlessj}} + \comment{A dotless j `\j', used to produce accented letters such as + `\=\j'. Most non-\TeX\ fonts do not have this glyph.} +\endsetslot + +\setslot{\lclig{FF}{ff}} + \ligature{LIG}{\lc{I}{i}}{\lclig{FFI}{ffi}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FFL}{ffl}} + \comment{The `ff' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FI}{fi}} + \comment{The `fi' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FL}{fl}} + \comment{The `fl' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFI}{ffi}} + \comment{The `ffi' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFL}{ffl}} + \comment{The `ffl' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\setslot{visiblespace} + \comment{A visible space glyph `\textvisiblespace'.} +\endsetslot + +\setslot{exclam} + \comment{The exclamation mark `!'.} +\endsetslot + +\setslot{quotedbl} + \comment{The `neutral' double quotation mark `\,\textquotedbl\,', + included for use in monowidth fonts, or for setting computer + programs. Note that the inclusion of this glyph in this slot + means that \TeX\ documents which used `{\tt"}' as an + input character will no longer work.} +\endsetslot + +\setslot{numbersign} + \comment{The hash sign `\#'.} +\endsetslot + +\setslot{dollar} + \comment{The dollar sign `\$'.} +\endsetslot + +\setslot{percent} + \comment{The percent sign `\%'.} +\endsetslot + +\setslot{ampersand} + \comment{The ampersand sign `\&'.} +\endsetslot + +\setslot{quoteright} + \ligature{LIG}{quoteright}{quotedblright} + \comment{The English closing single quote mark `\,\textquoteright\,'.} +\endsetslot + +\setslot{parenleft} + \comment{The opening parenthesis `('.} +\endsetslot + +\setslot{parenright} + \comment{The closing parenthesis `)'.} +\endsetslot + +\setslot{asterisk} + \comment{The raised asterisk `*'.} +\endsetslot + +\setslot{plus} + \comment{The addition sign `+'.} +\endsetslot + +\setslot{comma} + \ligature{LIG}{comma}{quotedblbase} + \comment{The comma `,'.} +\endsetslot + +\setslot{hyphen} + \ligature{LIG}{hyphen}{rangedash} + \ligature{LIG}{hyphenchar}{hyphenchar} + \comment{The hyphen `-'.} +\endsetslot + +\setslot{period} + \comment{The period `.'.} +\endsetslot + +\setslot{slash} + \comment{The forward oblique `/'.} +\endsetslot + +\setslot{\digit{zero}} + \comment{The number `0'. This (and all the other numerals) may be + old style or ranging digits.} +\endsetslot + +\setslot{\digit{one}} + \comment{The number `1'.} +\endsetslot + +\setslot{\digit{two}} + \comment{The number `2'.} +\endsetslot + +\setslot{\digit{three}} + \comment{The number `3'.} +\endsetslot + +\setslot{\digit{four}} + \comment{The number `4'.} +\endsetslot + +\setslot{\digit{five}} + \comment{The number `5'.} +\endsetslot + +\setslot{\digit{six}} + \comment{The number `6'.} +\endsetslot + +\setslot{\digit{seven}} + \comment{The number `7'.} +\endsetslot + +\setslot{\digit{eight}} + \comment{The number `8'.} +\endsetslot + +\setslot{\digit{nine}} + \comment{The number `9'.} +\endsetslot + +\setslot{colon} + \comment{The colon punctuation mark `:'.} +\endsetslot + +\setslot{semicolon} + \comment{The semi-colon punctuation mark `;'.} +\endsetslot + +\setslot{less} + \ligature{LIG}{less}{guillemotleft} + \comment{The less-than sign `\textless'.} +\endsetslot + +\setslot{equal} + \comment{The equals sign `='.} +\endsetslot + +\setslot{greater} + \ligature{LIG}{greater}{guillemotright} + \comment{The greater-than sign `\textgreater'.} +\endsetslot + +\setslot{question} + \comment{The question mark `?'.} +\endsetslot + +\setslot{at} + \comment{The at sign `@'.} +\endsetslot + +\setslot{\uc{A}{a}} + \comment{The letter `A'.} +\endsetslot + +\setslot{\uc{B}{b}} + \comment{The letter `B'.} +\endsetslot + +\setslot{\uc{C}{c}} + \comment{The letter `C'.} +\endsetslot + +\setslot{\uc{D}{d}} + \comment{The letter `D'.} +\endsetslot + +\setslot{\uc{E}{e}} + \comment{The letter `E'.} +\endsetslot + +\setslot{\uc{F}{f}} + \comment{The letter `F'.} +\endsetslot + +\setslot{\uc{G}{g}} + \comment{The letter `G'.} +\endsetslot + +\setslot{\uc{H}{h}} + \comment{The letter `H'.} +\endsetslot + +\setslot{\uc{I}{i}} + \comment{The letter `I'.} +\endsetslot + +\setslot{\uc{J}{j}} + \comment{The letter `J'.} +\endsetslot + +\setslot{\uc{K}{k}} + \comment{The letter `K'.} +\endsetslot + +\setslot{\uc{L}{l}} + \comment{The letter `L'.} +\endsetslot + +\setslot{\uc{M}{m}} + \comment{The letter `M'.} +\endsetslot + +\setslot{\uc{N}{n}} + \comment{The letter `N'.} +\endsetslot + +\setslot{\uc{O}{o}} + \comment{The letter `O'.} +\endsetslot + +\setslot{\uc{P}{p}} + \comment{The letter `P'.} +\endsetslot + +\setslot{\uc{Q}{q}} + \comment{The letter `Q'.} +\endsetslot + +\setslot{\uc{R}{r}} + \comment{The letter `R'.} +\endsetslot + +\setslot{\uc{S}{s}} + \comment{The letter `S'.} +\endsetslot + +\setslot{\uc{T}{t}} + \comment{The letter `T'.} +\endsetslot + +\setslot{\uc{U}{u}} + \comment{The letter `U'.} +\endsetslot + +\setslot{\uc{V}{v}} + \comment{The letter `V'.} +\endsetslot + +\setslot{\uc{W}{w}} + \comment{The letter `W'.} +\endsetslot + +\setslot{\uc{X}{x}} + \comment{The letter `X'.} +\endsetslot + +\setslot{\uc{Y}{y}} + \comment{The letter `Y'.} +\endsetslot + +\setslot{\uc{Z}{z}} + \comment{The letter `Z'.} +\endsetslot + +\setslot{bracketleft} + \comment{The opening square bracket `['.} +\endsetslot + +\setslot{backslash} + \comment{The backwards oblique `\textbackslash'.} +\endsetslot + +\setslot{bracketright} + \comment{The closing square bracket `]'.} +\endsetslot + +\setslot{asciicircum} + \comment{The ASCII upward-pointing arrow head `\textasciicircum'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{underscore} + \comment{The ASCII underline character `\textunderscore', usually + set on the baseline. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{quoteleft} + \ligature{LIG}{quoteleft}{quotedblleft} + \comment{The English opening single quote mark `\,\textquoteleft\,'.} +\endsetslot + +\setslot{\lc{A}{a}} + \comment{The letter `a'.} +\endsetslot + +\setslot{\lc{B}{b}} + \comment{The letter `b'.} +\endsetslot + +\setslot{\lc{C}{c}} + \comment{The letter `c'.} +\endsetslot + +\setslot{\lc{D}{d}} + \comment{The letter `d'.} +\endsetslot + +\setslot{\lc{E}{e}} + \comment{The letter `e'.} +\endsetslot + +\setslot{\lc{F}{f}} +\ifisint{monowidth}\then\else + \ligature{LIG}{\lc{I}{i}}{\lclig{FI}{fi}} + \ligature{LIG}{\lc{F}{f}}{\lclig{FF}{ff}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FL}{fl}} +\fi + \comment{The letter `f'.} +\endsetslot + +\setslot{\lc{G}{g}} + \comment{The letter `g'.} +\endsetslot + +\setslot{\lc{H}{h}} + \comment{The letter `h'.} +\endsetslot + +\setslot{\lc{I}{i}} + \comment{The letter `i'.} +\endsetslot + +\setslot{\lc{J}{j}} + \comment{The letter `j'.} +\endsetslot + +\setslot{\lc{K}{k}} + \comment{The letter `k'.} +\endsetslot + +\setslot{\lc{L}{l}} + \comment{The letter `l'.} +\endsetslot + +\setslot{\lc{M}{m}} + \comment{The letter `m'.} +\endsetslot + +\setslot{\lc{N}{n}} + \comment{The letter `n'.} +\endsetslot + +\setslot{\lc{O}{o}} + \comment{The letter `o'.} +\endsetslot + +\setslot{\lc{P}{p}} + \comment{The letter `p'.} +\endsetslot + +\setslot{\lc{Q}{q}} + \comment{The letter `q'.} +\endsetslot + +\setslot{\lc{R}{r}} + \comment{The letter `r'.} +\endsetslot + +\setslot{\lc{S}{s}} + \comment{The letter `s'.} +\endsetslot + +\setslot{\lc{T}{t}} + \comment{The letter `t'.} +\endsetslot + +\setslot{\lc{U}{u}} + \comment{The letter `u'.} +\endsetslot + +\setslot{\lc{V}{v}} + \comment{The letter `v'.} +\endsetslot + +\setslot{\lc{W}{w}} + \comment{The letter `w'.} +\endsetslot + +\setslot{\lc{X}{x}} + \comment{The letter `x'.} +\endsetslot + +\setslot{\lc{Y}{y}} + \comment{The letter `y'.} +\endsetslot + +\setslot{\lc{Z}{z}} + \comment{The letter `z'.} +\endsetslot + +\setslot{braceleft} + \comment{The opening curly brace `\textbraceleft'.} +\endsetslot + +\setslot{bar} + \comment{The ASCII vertical bar `\textbar'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{braceright} + \comment{The closing curly brace `\textbraceright'.} +\endsetslot + +\setslot{asciitilde} + \comment{The ASCII tilde `\textasciitilde'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{hyphenchar} + \comment{The glyph used for hyphenation in this font, which will + almost always be the same as `hyphen'.} +\endsetslot + +\setslot{\uc{CYRGUP}{cyrgup}} + \comment{Cyrillic capital letter ghe with upturn `\CYRGUP'.} +\endsetslot + +\setslot{\uc{CYRGHCRS}{cyrghcrs}} + \comment{Cyrillic capital letter ghe with stroke `\CYRGHCRS'.} +\endsetslot + +\setslot{\uc{CYRDJE}{cyrdje}} + \comment{Cyrillic capital letter dje `\CYRDJE'.} +\endsetslot + +\setslot{\uc{CYRTSHE}{cyrtshe}} + \comment{Cyrillic capital letter tshe `\CYRTSHE'.} +\endsetslot + +\setslot{\uc{CYRSHHA}{cyrshha}} + \comment{Cyrillic capital letter shha `\CYRSHHA'.} +\endsetslot + +\setslot{\uc{CYRZHDSC}{cyrzhdsc}} + \comment{Cyrillic capital letter zhe with descender `\CYRZHDSC'.} +\endsetslot + +\setslot{\uc{CYRZDSC}{cyrzdsc}} + \comment{Cyrillic capital letter ze with descender `\CYRZDSC'.} +\endsetslot + +\setslot{\uc{CYRLJE}{cyrlje}} + \comment{Cyrillic capital letter lje `\CYRLJE'.} +\endsetslot + +\setslot{\uc{CYRYI}{cyryi}} + \comment{Cyrillic capital letter yi `\CYRYI'.} +\endsetslot + +\setslot{\uc{CYRKDSC}{cyrkdsc}} + \comment{Cyrillic capital letter ka with descender `\CYRKDSC'.} +\endsetslot + +\setslot{\uc{CYRKBEAK}{cyrkbeak}} + \comment{Cyrillic capital letter bashkir ka `\CYRKBEAK'.} +\endsetslot + +\setslot{\uc{CYRKVCRS}{cyrkvcrs}} + \comment{Cyrillic capital letter ka with vertical stroke `\CYRKVCRS'.} +\endsetslot + +\setslot{\uc{CYRAE}{cyrae}} + \comment{Cyrillic capital ligature a ie `\CYRAE'.} +\endsetslot + +\setslot{\uc{CYRNDSC}{cyrndsc}} + \comment{Cyrillic capital letter en with descender `\CYRNDSC'.} +\endsetslot + +\setslot{\uc{CYRNG}{cyrng}} + \comment{Cyrillic capital ligature en ghe `\CYRNG'.} +\endsetslot + +\setslot{\uc{CYRDZE}{cyrdze}} + \comment{Cyrillic capital letter dze `\CYRDZE'.} +\endsetslot + +\setslot{\uc{CYROTLD}{cyrotld}} + \comment{Cyrillic capital letter barred o `\CYROTLD'.} +\endsetslot + +\setslot{\uc{CYRSDSC}{cyrsdsc}} + \comment{Cyrillic capital letter es with descender `\CYRSDSC'.} +\endsetslot + +\setslot{\uc{CYRUSHRT}{cyrushrt}} + \comment{Cyrillic capital letter short u `\CYRUSHRT'.} +\endsetslot + +\setslot{\uc{CYRY}{cyry}} + \comment{Cyrillic capital letter straight u `\CYRY'.} +\endsetslot + +\setslot{\uc{CYRYHCRS}{cyryhcrs}} + \comment{Cyrillic capital letter straight u with stroke `\CYRYHCRS'.} +\endsetslot + +\setslot{\uc{CYRHDSC}{cyrhdsc}} + \comment{Cyrillic capital letter ha with descender `\CYRHDSC'.} +\endsetslot + +\setslot{\uc{CYRDZHE}{cyrdzhe}} + \comment{Cyrillic capital letter dzhe `\CYRDZHE'.} +\endsetslot + +\setslot{\uc{CYRCHVCRS}{cyrchvcrs}} + \comment{Cyrillic capital letter che with vertical stroke `\CYRCHVCRS'.} +\endsetslot + +\setslot{\uc{CYRCHRDSC}{cyrchrdsc}} + \comment{Cyrillic capital letter che with descender `\CYRCHRDSC'.} +\endsetslot + +\setslot{\uc{CYRIE}{cyrie}} + \comment{Cyrillic capital letter ukrainian ie `\CYRIE'.} +\endsetslot + +\setslot{\uc{CYRSCHWA}{cyrschwa}} + \comment{Cyrillic capital letter schwa `\CYRSCHWA'.} +\endsetslot + +\setslot{\uc{CYRNJE}{cyrnje}} + \comment{Cyrillic capital letter nje `\CYRNJE'.} +\endsetslot + +\setslot{\uc{CYRYO}{cyryo}} + \comment{Cyrillic capital letter io `\CYRYO'.} +\endsetslot + +\setslot{numero} + \comment{The numero sign `\textnumero', similar to the letter `N' + with a raised `o', unavailable in most PostScript fonts.} +\endsetslot + +\setslot{currency} + \comment{The international currency sign, `\textcurrency'.} +\endsetslot + +\setslot{section} + \comment{The section mark `\textsection'.} +\endsetslot + +\setslot{\lc{CYRGUP}{cyrgup}} + \comment{Cyrillic small letter ghe with upturn `\cyrgup'.} +\endsetslot + +\setslot{\lc{CYRGHCRS}{cyrghcrs}} + \comment{Cyrillic small letter ghe with stroke `\cyrghcrs'.} +\endsetslot + +\setslot{\lc{CYRDJE}{cyrdje}} + \comment{Cyrillic small letter dje `\cyrdje'.} +\endsetslot + +\setslot{\lc{CYRTSHE}{cyrtshe}} + \comment{Cyrillic small letter tshe `\cyrtshe'.} +\endsetslot + +\setslot{\lc{CYRSHHA}{cyrshha}} + \comment{Cyrillic small letter shha `\cyrshha'.} +\endsetslot + +\setslot{\lc{CYRZHDSC}{cyrzhdsc}} + \comment{Cyrillic small letter zhe with descender `\cyrzhdsc'.} +\endsetslot + +\setslot{\lc{CYRZDSC}{cyrzdsc}} + \comment{Cyrillic small letter ze with descender `\cyrzdsc'.} +\endsetslot + +\setslot{\lc{CYRLJE}{cyrlje}} + \comment{Cyrillic small letter lje `\cyrlje'.} +\endsetslot + +\setslot{\lc{CYRYI}{cyryi}} + \comment{Cyrillic small letter yi `\cyryi'.} +\endsetslot + +\setslot{\lc{CYRKDSC}{cyrkdsc}} + \comment{Cyrillic small letter ka with descender `\cyrkdsc'.} +\endsetslot + +\setslot{\lc{CYRKBEAK}{cyrkbeak}} + \comment{Cyrillic small letter bashkir ka `\cyrkbeak'.} +\endsetslot + +\setslot{\lc{CYRKVCRS}{cyrkvcrs}} + \comment{Cyrillic small letter ka with vertical stroke `\cyrkvcrs'.} +\endsetslot + +\setslot{\lc{CYRAE}{cyrae}} + \comment{Cyrillic small ligature a ie `\cyrae'.} +\endsetslot + +\setslot{\lc{CYRNDSC}{cyrndsc}} + \comment{Cyrillic small letter en with descender `\cyrndsc'.} +\endsetslot + +\setslot{\lc{CYRNG}{cyrng}} + \comment{Cyrillic small ligature en ghe `\cyrng'.} +\endsetslot + +\setslot{\lc{CYRDZE}{cyrdze}} + \comment{Cyrillic small letter dze `\cyrdze'.} +\endsetslot + +\setslot{\lc{CYROTLD}{cyrotld}} + \comment{Cyrillic small letter barred o `\cyrotld'.} +\endsetslot + +\setslot{\lc{CYRSDSC}{cyrsdsc}} + \comment{Cyrillic small letter es with descender `\cyrsdsc'.} +\endsetslot + +\setslot{\lc{CYRUSHRT}{cyrushrt}} + \comment{Cyrillic small letter short u `\cyrushrt'.} +\endsetslot + +\setslot{\lc{CYRY}{cyry}} + \comment{Cyrillic small letter straight u `\cyry'.} +\endsetslot + +\setslot{\lc{CYRYHCRS}{cyryhcrs}} + \comment{Cyrillic small letter straight u with stroke `\cyryhcrs'.} +\endsetslot + +\setslot{\lc{CYRHDSC}{cyrhdsc}} + \comment{Cyrillic small letter ha with descender `\cyrhdsc'.} +\endsetslot + +\setslot{\lc{CYRDZHE}{cyrdzhe}} + \comment{Cyrillic small letter dzhe `\cyrdzhe'.} +\endsetslot + +\setslot{\lc{CYRCHVCRS}{cyrchvcrs}} + \comment{Cyrillic small letter che with vertical stroke `\cyrchvcrs'.} +\endsetslot + +\setslot{\lc{CYRCHRDSC}{cyrchrdsc}} + \comment{Cyrillic small letter che with descender `\cyrchrdsc'.} +\endsetslot + +\setslot{\lc{CYRIE}{cyrie}} + \comment{Cyrillic small letter ukrainian ie `\cyrie'.} +\endsetslot + +\setslot{\lc{CYRSCHWA}{cyrschwa}} + \comment{Cyrillic small letter schwa `\cyrschwa'.} +\endsetslot + +\setslot{\lc{CYRNJE}{cyrnje}} + \comment{Cyrillic small letter nje `\cyrnje'.} +\endsetslot + +\setslot{\lc{CYRYO}{cyryo}} + \comment{Cyrillic small letter io `\cyryo'.} +\endsetslot + +\setslot{quotedblbase} + \comment{A German double quote mark `\quotedblbase' similar to two commas, + but with tighter letterspacing and different sidebearings.} +\endsetslot + +\setslot{guillemotleft} + \comment{A Cyrillic double opening quote mark `\guillemotleft', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{guillemotright} + \comment{A Cyrillic double closing quote mark `\guillemotright', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\uc{CYRA}{cyra}} + \comment{Cyrillic capital letter a `\CYRA'.} +\endsetslot + +\setslot{\uc{CYRB}{cyrb}} + \comment{Cyrillic capital letter be `\CYRB'.} +\endsetslot + +\setslot{\uc{CYRV}{cyrv}} + \comment{Cyrillic capital letter ve `\CYRV'.} +\endsetslot + +\setslot{\uc{CYRG}{cyrg}} + \comment{Cyrillic capital letter ghe `\CYRG'.} +\endsetslot + +\setslot{\uc{CYRD}{cyrd}} + \comment{Cyrillic capital letter de `\CYRD'.} +\endsetslot + +\setslot{\uc{CYRE}{cyre}} + \comment{Cyrillic capital letter ie `\CYRE'.} +\endsetslot + +\setslot{\uc{CYRZH}{cyrzh}} + \comment{Cyrillic capital letter zhe `\CYRZH'.} +\endsetslot + +\setslot{\uc{CYRZ}{cyrz}} + \comment{Cyrillic capital letter ze `\CYRZ'.} +\endsetslot + +\setslot{\uc{CYRI}{cyri}} + \comment{Cyrillic capital letter i `\CYRI'.} +\endsetslot + +\setslot{\uc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic capital letter short i `\CYRISHRT'.} +\endsetslot + +\setslot{\uc{CYRK}{cyrk}} + \comment{Cyrillic capital letter ka `\CYRK'.} +\endsetslot + +\setslot{\uc{CYRL}{cyrl}} + \comment{Cyrillic capital letter el `\CYRL'.} +\endsetslot + +\setslot{\uc{CYRM}{cyrm}} + \comment{Cyrillic capital letter em `\CYRM'.} +\endsetslot + +\setslot{\uc{CYRN}{cyrn}} + \comment{Cyrillic capital letter en `\CYRN'.} +\endsetslot + +\setslot{\uc{CYRO}{cyro}} + \comment{Cyrillic capital letter o `\CYRO'.} +\endsetslot + +\setslot{\uc{CYRP}{cyrp}} + \comment{Cyrillic capital letter pe `\CYRP'.} +\endsetslot + +\setslot{\uc{CYRR}{cyrr}} + \comment{Cyrillic capital letter er `\CYRR'.} +\endsetslot + +\setslot{\uc{CYRS}{cyrs}} + \comment{Cyrillic capital letter es `\CYRS'.} +\endsetslot + +\setslot{\uc{CYRT}{cyrt}} + \comment{Cyrillic capital letter te `\CYRT'.} +\endsetslot + +\setslot{\uc{CYRU}{cyru}} + \comment{Cyrillic capital letter u `\CYRU'.} +\endsetslot + +\setslot{\uc{CYRF}{cyrf}} + \comment{Cyrillic capital letter ef `\CYRF'.} +\endsetslot + +\setslot{\uc{CYRH}{cyrh}} + \comment{Cyrillic capital letter ha `\CYRH'.} +\endsetslot + +\setslot{\uc{CYRC}{cyrc}} + \comment{Cyrillic capital letter tse `\CYRC'.} +\endsetslot + +\setslot{\uc{CYRCH}{cyrch}} + \comment{Cyrillic capital letter che `\CYRCH'.} +\endsetslot + +\setslot{\uc{CYRSH}{cyrsh}} + \comment{Cyrillic capital letter sha `\CYRSH'.} +\endsetslot + +\setslot{\uc{CYRSHCH}{cyrshch}} + \comment{Cyrillic capital letter shcha `\CYRSHCH'.} +\endsetslot + +\setslot{\uc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic capital letter hard sign `\CYRHRDSN'.} +\endsetslot + +\setslot{\uc{CYRERY}{cyrery}} + \comment{Cyrillic capital letter yeru `\CYRERY'.} +\endsetslot + +\setslot{\uc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic capital letter soft sign `\CYRSFTSN'.} +\endsetslot + +\setslot{\uc{CYREREV}{cyrerev}} + \comment{Cyrillic capital letter e `\CYREREV'.} +\endsetslot + +\setslot{\uc{CYRYU}{cyryu}} + \comment{Cyrillic capital letter yu `\CYRYU'.} +\endsetslot + +\setslot{\uc{CYRYA}{cyrya}} + \comment{Cyrillic capital letter ya `\CYRYA'.} +\endsetslot + +\setslot{\lc{CYRA}{cyra}} + \comment{Cyrillic small letter a `\cyra'.} +\endsetslot + +\setslot{\lc{CYRB}{cyrb}} + \comment{Cyrillic small letter be `\cyrb'.} +\endsetslot + +\setslot{\lc{CYRV}{cyrv}} + \comment{Cyrillic small letter ve `\cyrv'.} +\endsetslot + +\setslot{\lc{CYRG}{cyrg}} + \comment{Cyrillic small letter ghe `\cyrg'.} +\endsetslot + +\setslot{\lc{CYRD}{cyrd}} + \comment{Cyrillic small letter de `\cyrd'.} +\endsetslot + +\setslot{\lc{CYRE}{cyre}} + \comment{Cyrillic small letter ie `\cyre'.} +\endsetslot + +\setslot{\lc{CYRZH}{cyrzh}} + \comment{Cyrillic small letter zhe `\cyrzh'.} +\endsetslot + +\setslot{\lc{CYRZ}{cyrz}} + \comment{Cyrillic small letter ze `\cyrz'.} +\endsetslot + +\setslot{\lc{CYRI}{cyri}} + \comment{Cyrillic small letter i `\cyri'.} +\endsetslot + +\setslot{\lc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic small letter short i `\cyrishrt'.} +\endsetslot + +\setslot{\lc{CYRK}{cyrk}} + \comment{Cyrillic small letter ka `\cyrk'.} +\endsetslot + +\setslot{\lc{CYRL}{cyrl}} + \comment{Cyrillic small letter el `\cyrl'.} +\endsetslot + +\setslot{\lc{CYRM}{cyrm}} + \comment{Cyrillic small letter em `\cyrm'.} +\endsetslot + +\setslot{\lc{CYRN}{cyrn}} + \comment{Cyrillic small letter en `\cyrn'.} +\endsetslot + +\setslot{\lc{CYRO}{cyro}} + \comment{Cyrillic small letter o `\cyro'.} +\endsetslot + +\setslot{\lc{CYRP}{cyrp}} + \comment{Cyrillic small letter pe `\cyrp'.} +\endsetslot + +\setslot{\lc{CYRR}{cyrr}} + \comment{Cyrillic small letter er `\cyrr'.} +\endsetslot + +\setslot{\lc{CYRS}{cyrs}} + \comment{Cyrillic small letter es `\cyrs'.} +\endsetslot + +\setslot{\lc{CYRT}{cyrt}} + \comment{Cyrillic small letter te `\cyrt'.} +\endsetslot + +\setslot{\lc{CYRU}{cyru}} + \comment{Cyrillic small letter u `\cyru'.} +\endsetslot + +\setslot{\lc{CYRF}{cyrf}} + \comment{Cyrillic small letter ef `\cyrf'.} +\endsetslot + +\setslot{\lc{CYRH}{cyrh}} + \comment{Cyrillic small letter ha `\cyrh'.} +\endsetslot + +\setslot{\lc{CYRC}{cyrc}} + \comment{Cyrillic small letter tse `\cyrc'.} +\endsetslot + +\setslot{\lc{CYRCH}{cyrch}} + \comment{Cyrillic small letter che `\cyrch'.} +\endsetslot + +\setslot{\lc{CYRSH}{cyrsh}} + \comment{Cyrillic small letter sha `\cyrsh'.} +\endsetslot + +\setslot{\lc{CYRSHCH}{cyrshch}} + \comment{Cyrillic small letter shcha `\cyrshch'.} +\endsetslot + +\setslot{\lc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic small letter hard sign `\cyrhrdsn'.} +\endsetslot + +\setslot{\lc{CYRERY}{cyrery}} + \comment{Cyrillic small letter yeru `\cyrery'.} +\endsetslot + +\setslot{\lc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic small letter soft sign `\cyrsftsn'.} +\endsetslot + +\setslot{\lc{CYREREV}{cyrerev}} + \comment{Cyrillic small letter e `\cyrerev'.} +\endsetslot + +\setslot{\lc{CYRYU}{cyryu}} + \comment{Cyrillic small letter yu `\cyryu'.} +\endsetslot + +\setslot{\lc{CYRYA}{cyrya}} + \comment{Cyrillic small letter ya `\cyrya'.} +\endsetslot + +\endencoding +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/t2b.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/t2b.etx new file mode 100644 index 00000000000..8553be302a4 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/t2b.etx @@ -0,0 +1,1284 @@ +\relax + +\documentclass[twocolumn]{article} +\usepackage[T2B]{fontenc} +\usepackage{fontdoc} + +\title{The \TeX\ Cyrillic T2B text encoding vector} +\author{Werner Lemberg, Vladimir Volovich} +\date{17 July 1998\\ +Version 0.1} + +\begin{document} + +\maketitle + +\section{Introduction} + +This document describes the Cyrillic T2B text encoding. +The latin part of this file is based on `t1.etx' by +Alan Jeffrey, Sebastian Rahtz, Ulrik Vieth. + +To use this encoding, you should define the following macros: +\begin{itemize} +\item \verb|\lc{A}{a}| should return the name of a lower-case + glyph, for example `{\tt a}' or `{\tt Asmall}'. + +\item \verb|\uc{A}{a}| should return the name of an upper-case + glyph, for example `{\tt A}' or `{\tt Amedium}'. + +\item \verb|\lctop{Aacute}{aacute}| should return the name of a + lower-case composite glyph formed from putting a diacritical above + a letter, for example `{\tt aacute}' or `{\tt Aacutesmall}'. + +\item \verb|\uctop{Aacute}{aacute}| should return the name of an + upper-case composite glyph formed from putting a diacritical above + a letter, for example `{\tt Aacute}' or `{\tt Aacutemedium}'. + +\item \verb|\lclig{FI}{fi}| should return the name of a lower-case + ligature, for example `{\tt fi}' or `{\tt FIsmall}'. + +\item \verb|\uclig{FI}{fi}| should return the name of an upper-case + ligature, for example `{\tt FI}' or `{\tt FImedium}'. + +\item \verb|\digit{zero}| should return the name of a digit, for + example `{\tt zero}' or `{\tt zerooldstyle}'. +\end{itemize} +These should all expand in the mouth, otherwise you may get error +messages! + +For example, to get the standard upper and lower case font, you should +define: +\begin{verbatim} + \setcommand\lc#1#2{#2} + \setcommand\uc#1#2{#1} + \setcommand\lctop#1#2{#2} + \setcommand\uctop#1#2{#1} + \setcommand\lclig#1#2{#2} + \setcommand\uclig#1#2{#1} + \setcommand\digit#1{#1} +\end{verbatim} +To get a caps and small caps font with old style digits and letter +spacing, you should define: +\begin{verbatim} + \setcommand\lc#1#2{#1small} + \setcommand\uc#1#2{#1} + \setcommand\lctop#1#2{#1small} + \setcommand\uctop#1#2{#1} + \setcommand\lclig#1#2{#2small} + \setcommand\uclig#1#2{#1spaced} + \setcommand\digit#1{#1oldstyle} +\end{verbatim} +To get an all-caps font with medium-cap composite letters and letter +spacing, you should define: +\begin{verbatim} + \setcommand\lc#1#2{#1} + \setcommand\uc#1#2{#1} + \setcommand\lctop#1#2{#1medium} + \setcommand\uctop#1#2{#1medium} + \setcommand\lclig#1#2{#1spaced} + \setcommand\uclig#1#2{#1spaced} + \setcommand\digit#1{#1} +\end{verbatim} +This document describes the upper and lower case encoding. + +\encoding + +\needsfontinstversion{1.800} + +\comment{\section{Default values}} + +\setstr{codingscheme}{TEX CYRILLIC FONT ENCODING - T2B} + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\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 + +% added by Thierry Bouche <Thierry.Bouche@ujf-grenoble.fr> +% 1997/02/07 to calculate values for extra EC fontdimens +% Amended by SPQR 1997/02/09 +\ifisglyph{X}\then + \setint{capheight}{\height{X}} +\else + \setint{capheight}{750} +\fi + +\ifisglyph{d}\then + \setint{ascender}{\height{d}} +\else + \ifisint{capheight}\then + \setint{ascender}{\int{capheight}} + \else + \setint{ascender}{750} +\fi\fi + +\ifisglyph{Aring}\then + \setint{acccapheight}{\height{Aring}} +\else + \setint{acccapheight}{999} +\fi + +\ifisint{descender_neg}\then + \setint{descender}{\neg{\int{descender_neg}}} + \else + \ifisglyph{p}\then + \setint{descender}{\depth{p}} + \else + \setint{descender}{250} + \fi +\fi + +\ifisglyph{Aring}\then + \setint{maxheight}{\height{Aring}} +\else + \setint{maxheight}{1000} +\fi + +\ifisint{maxdepth_neg}\then + \setint{maxdepth}{\neg{\int{maxdepth_neg}}} +\else + \ifisglyph{j}\then + \setint{maxdepth}{\depth{j}} + \else + \setint{maxdepth}{250} + \fi +\fi + +\ifisglyph{six}\then + \setint{digitwidth}{\width{six}} +\else + \setint{digitwidth}{500} +\fi + +\setint{capstem}{0} % not in AFM files +\setint{baselineskip}{1200} +% end changes by Thierry + + +\comment{\section{Default font dimensions}} + +\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{monowidth}\then + \setint{fontdimen(7)}{\int{interword}} % extra space after . +\else + \setint{fontdimen(7)}{\scale{\int{interword}}{240}}% extra space after . +\fi +% added by Thierry Bouche <Thierry.Bouche@ujf-grenoble.fr> 1997/02/07 +\setint{fontdimen(8)}{\int{capheight}} % cap height +\setint{fontdimen(9)}{\int{ascender}} % ascender +\setint{fontdimen(10)}{\int{acccapheight}} % accented cap height +\setint{fontdimen(11)}{\int{descender}} % descender's depth +\setint{fontdimen(12)}{\int{maxheight}} % max height +\setint{fontdimen(13)}{\int{maxdepth}} % max depth +\setint{fontdimen(14)}{\int{digitwidth}} % digit width +\setint{fontdimen(15)}{\int{capstem}} % cap_stem +\setint{fontdimen(16)}{\int{baselineskip}} % baselineskip + + +\comment{\section{The encoding} + There are 256 glyphs in this encoding.} + +\setslot{\lc{Grave}{grave}} + \comment{The grave accent `\`{}'.} +\endsetslot + +\setslot{\lc{Acute}{acute}} + \comment{The acute accent `\'{}'.} +\endsetslot + +\setslot{\lc{Circumflex}{circumflex}} + \comment{The circumflex accent `\^{}'.} +\endsetslot + +\setslot{\lc{Tilde}{tilde}} + \comment{The tilde accent `\~{}'.} +\endsetslot + +\setslot{\lc{Dieresis}{dieresis}} + \comment{The umlaut or dieresis accent `\"{}'.} +\endsetslot + +\setslot{\lc{Hungarumlaut}{hungarumlaut}} + \comment{The long Hungarian umlaut `\H{}'.} +\endsetslot + +\setslot{\lc{Ring}{ring}} + \comment{The ring accent `\r{}'.} +\endsetslot + +\setslot{\lc{Caron}{caron}} + \comment{The caron or h\'a\v cek accent `\v{}'.} +\endsetslot + +\setslot{\lc{Breve}{breve}} + \comment{The breve accent `\u{}'.} +\endsetslot + +\setslot{\lc{Macron}{macron}} + \comment{The macron accent `\={}'.} +\endsetslot + +\setslot{\lc{Dotaccent}{dotaccent}} + \comment{The dot accent `\.{}'.} +\endsetslot + +\setslot{\lc{Cedilla}{cedilla}} + \comment{The cedilla accent `\c{}'.} +\endsetslot + +\setslot{\lc{Ogonek}{ogonek}} + \comment{The ogonek accent `\k{}'.} +\endsetslot + +\setslot{CYRpalochka} + \comment{Cyrillic letter palochka `\CYRpalochka'.} +\endsetslot + +\setslot{angleleft} + \comment{Left-pointing (cyrillic) angle bracket `\cyrlangle'.} +\endsetslot + +\setslot{angleright} + \comment{Right-pointing (cyrillic) angle bracket `\cyrrangle'.} +\endsetslot + +\setslot{quotedblleft} + \comment{The English opening quote mark `\,\textquotedblleft\,'.} +\endsetslot + +\setslot{quotedblright} + \comment{The English closing quote mark `\,\textquotedblright\,'.} +\endsetslot + +\setslot{\lc{cyrFlex}{cyrflex}} + \comment{Cyrillic circumflex `\f{}'.} +\endsetslot + +\setslot{\lc{dblGrave}{dblgrave}} + \comment{Double grave accent `\C{}'.} +\endsetslot + +\setslot{\lc{cyrBreve}{cyrbreve}} + \comment{Cyrillic breve `\U{}'.} +\endsetslot + +\setslot{rangedash} + \ligature{LIG}{hyphen}{cyrdash} + \comment{The number range dash `1--9'. In a monowidth font, this + might be set as `{\tt 1{-}9}'.} +\endsetslot + +\setslot{cyrdash} + \comment{Cyrillic em dash---longer than endash, but shorter + than english emdash: `\cyrdash'.} +\endsetslot + +\setslot{compwordmark} + \comment{An invisible glyph, with zero width and depth, but the + height of lowercase letters without ascenders. + It is used to stop ligaturing in words like `shelf{}ful'.} +\endsetslot + +\setslot{perthousandzero} + \comment{A glyph which is placed after `\%' to produce a + `per-thousand', or twice to produce `per-ten-thousand'. + Your guess is as good as mine as to what this glyph should look + like in a monowidth font.} +\endsetslot + +\setslot{\lc{dotlessI}{dotlessi}} + \comment{A dotless i `\i', used to produce accented letters such as + `\=\i'.} +\endsetslot + +\setslot{\lc{dotlessJ}{dotlessj}} + \comment{A dotless j `\j', used to produce accented letters such as + `\=\j'. Most non-\TeX\ fonts do not have this glyph.} +\endsetslot + +\setslot{\lclig{FF}{ff}} + \ligature{LIG}{\lc{I}{i}}{\lclig{FFI}{ffi}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FFL}{ffl}} + \comment{The `ff' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FI}{fi}} + \comment{The `fi' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FL}{fl}} + \comment{The `fl' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFI}{ffi}} + \comment{The `ffi' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFL}{ffl}} + \comment{The `ffl' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\setslot{visiblespace} + \comment{A visible space glyph `\textvisiblespace'.} +\endsetslot + +\setslot{exclam} + \comment{The exclamation mark `!'.} +\endsetslot + +\setslot{quotedbl} + \comment{The `neutral' double quotation mark `\,\textquotedbl\,', + included for use in monowidth fonts, or for setting computer + programs. Note that the inclusion of this glyph in this slot + means that \TeX\ documents which used `{\tt"}' as an + input character will no longer work.} +\endsetslot + +\setslot{numbersign} + \comment{The hash sign `\#'.} +\endsetslot + +\setslot{dollar} + \comment{The dollar sign `\$'.} +\endsetslot + +\setslot{percent} + \comment{The percent sign `\%'.} +\endsetslot + +\setslot{ampersand} + \comment{The ampersand sign `\&'.} +\endsetslot + +\setslot{quoteright} + \ligature{LIG}{quoteright}{quotedblright} + \comment{The English closing single quote mark `\,\textquoteright\,'.} +\endsetslot + +\setslot{parenleft} + \comment{The opening parenthesis `('.} +\endsetslot + +\setslot{parenright} + \comment{The closing parenthesis `)'.} +\endsetslot + +\setslot{asterisk} + \comment{The raised asterisk `*'.} +\endsetslot + +\setslot{plus} + \comment{The addition sign `+'.} +\endsetslot + +\setslot{comma} + \ligature{LIG}{comma}{quotedblbase} + \comment{The comma `,'.} +\endsetslot + +\setslot{hyphen} + \ligature{LIG}{hyphen}{rangedash} + \ligature{LIG}{hyphenchar}{hyphenchar} + \comment{The hyphen `-'.} +\endsetslot + +\setslot{period} + \comment{The period `.'.} +\endsetslot + +\setslot{slash} + \comment{The forward oblique `/'.} +\endsetslot + +\setslot{\digit{zero}} + \comment{The number `0'. This (and all the other numerals) may be + old style or ranging digits.} +\endsetslot + +\setslot{\digit{one}} + \comment{The number `1'.} +\endsetslot + +\setslot{\digit{two}} + \comment{The number `2'.} +\endsetslot + +\setslot{\digit{three}} + \comment{The number `3'.} +\endsetslot + +\setslot{\digit{four}} + \comment{The number `4'.} +\endsetslot + +\setslot{\digit{five}} + \comment{The number `5'.} +\endsetslot + +\setslot{\digit{six}} + \comment{The number `6'.} +\endsetslot + +\setslot{\digit{seven}} + \comment{The number `7'.} +\endsetslot + +\setslot{\digit{eight}} + \comment{The number `8'.} +\endsetslot + +\setslot{\digit{nine}} + \comment{The number `9'.} +\endsetslot + +\setslot{colon} + \comment{The colon punctuation mark `:'.} +\endsetslot + +\setslot{semicolon} + \comment{The semi-colon punctuation mark `;'.} +\endsetslot + +\setslot{less} + \ligature{LIG}{less}{guillemotleft} + \comment{The less-than sign `\textless'.} +\endsetslot + +\setslot{equal} + \comment{The equals sign `='.} +\endsetslot + +\setslot{greater} + \ligature{LIG}{greater}{guillemotright} + \comment{The greater-than sign `\textgreater'.} +\endsetslot + +\setslot{question} + \comment{The question mark `?'.} +\endsetslot + +\setslot{at} + \comment{The at sign `@'.} +\endsetslot + +\setslot{\uc{A}{a}} + \comment{The letter `A'.} +\endsetslot + +\setslot{\uc{B}{b}} + \comment{The letter `B'.} +\endsetslot + +\setslot{\uc{C}{c}} + \comment{The letter `C'.} +\endsetslot + +\setslot{\uc{D}{d}} + \comment{The letter `D'.} +\endsetslot + +\setslot{\uc{E}{e}} + \comment{The letter `E'.} +\endsetslot + +\setslot{\uc{F}{f}} + \comment{The letter `F'.} +\endsetslot + +\setslot{\uc{G}{g}} + \comment{The letter `G'.} +\endsetslot + +\setslot{\uc{H}{h}} + \comment{The letter `H'.} +\endsetslot + +\setslot{\uc{I}{i}} + \comment{The letter `I'.} +\endsetslot + +\setslot{\uc{J}{j}} + \comment{The letter `J'.} +\endsetslot + +\setslot{\uc{K}{k}} + \comment{The letter `K'.} +\endsetslot + +\setslot{\uc{L}{l}} + \comment{The letter `L'.} +\endsetslot + +\setslot{\uc{M}{m}} + \comment{The letter `M'.} +\endsetslot + +\setslot{\uc{N}{n}} + \comment{The letter `N'.} +\endsetslot + +\setslot{\uc{O}{o}} + \comment{The letter `O'.} +\endsetslot + +\setslot{\uc{P}{p}} + \comment{The letter `P'.} +\endsetslot + +\setslot{\uc{Q}{q}} + \comment{The letter `Q'.} +\endsetslot + +\setslot{\uc{R}{r}} + \comment{The letter `R'.} +\endsetslot + +\setslot{\uc{S}{s}} + \comment{The letter `S'.} +\endsetslot + +\setslot{\uc{T}{t}} + \comment{The letter `T'.} +\endsetslot + +\setslot{\uc{U}{u}} + \comment{The letter `U'.} +\endsetslot + +\setslot{\uc{V}{v}} + \comment{The letter `V'.} +\endsetslot + +\setslot{\uc{W}{w}} + \comment{The letter `W'.} +\endsetslot + +\setslot{\uc{X}{x}} + \comment{The letter `X'.} +\endsetslot + +\setslot{\uc{Y}{y}} + \comment{The letter `Y'.} +\endsetslot + +\setslot{\uc{Z}{z}} + \comment{The letter `Z'.} +\endsetslot + +\setslot{bracketleft} + \comment{The opening square bracket `['.} +\endsetslot + +\setslot{backslash} + \comment{The backwards oblique `\textbackslash'.} +\endsetslot + +\setslot{bracketright} + \comment{The closing square bracket `]'.} +\endsetslot + +\setslot{asciicircum} + \comment{The ASCII upward-pointing arrow head `\textasciicircum'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{underscore} + \comment{The ASCII underline character `\textunderscore', usually + set on the baseline. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{quoteleft} + \ligature{LIG}{quoteleft}{quotedblleft} + \comment{The English opening single quote mark `\,\textquoteleft\,'.} +\endsetslot + +\setslot{\lc{A}{a}} + \comment{The letter `a'.} +\endsetslot + +\setslot{\lc{B}{b}} + \comment{The letter `b'.} +\endsetslot + +\setslot{\lc{C}{c}} + \comment{The letter `c'.} +\endsetslot + +\setslot{\lc{D}{d}} + \comment{The letter `d'.} +\endsetslot + +\setslot{\lc{E}{e}} + \comment{The letter `e'.} +\endsetslot + +\setslot{\lc{F}{f}} +\ifisint{monowidth}\then\else + \ligature{LIG}{\lc{I}{i}}{\lclig{FI}{fi}} + \ligature{LIG}{\lc{F}{f}}{\lclig{FF}{ff}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FL}{fl}} +\fi + \comment{The letter `f'.} +\endsetslot + +\setslot{\lc{G}{g}} + \comment{The letter `g'.} +\endsetslot + +\setslot{\lc{H}{h}} + \comment{The letter `h'.} +\endsetslot + +\setslot{\lc{I}{i}} + \comment{The letter `i'.} +\endsetslot + +\setslot{\lc{J}{j}} + \comment{The letter `j'.} +\endsetslot + +\setslot{\lc{K}{k}} + \comment{The letter `k'.} +\endsetslot + +\setslot{\lc{L}{l}} + \comment{The letter `l'.} +\endsetslot + +\setslot{\lc{M}{m}} + \comment{The letter `m'.} +\endsetslot + +\setslot{\lc{N}{n}} + \comment{The letter `n'.} +\endsetslot + +\setslot{\lc{O}{o}} + \comment{The letter `o'.} +\endsetslot + +\setslot{\lc{P}{p}} + \comment{The letter `p'.} +\endsetslot + +\setslot{\lc{Q}{q}} + \comment{The letter `q'.} +\endsetslot + +\setslot{\lc{R}{r}} + \comment{The letter `r'.} +\endsetslot + +\setslot{\lc{S}{s}} + \comment{The letter `s'.} +\endsetslot + +\setslot{\lc{T}{t}} + \comment{The letter `t'.} +\endsetslot + +\setslot{\lc{U}{u}} + \comment{The letter `u'.} +\endsetslot + +\setslot{\lc{V}{v}} + \comment{The letter `v'.} +\endsetslot + +\setslot{\lc{W}{w}} + \comment{The letter `w'.} +\endsetslot + +\setslot{\lc{X}{x}} + \comment{The letter `x'.} +\endsetslot + +\setslot{\lc{Y}{y}} + \comment{The letter `y'.} +\endsetslot + +\setslot{\lc{Z}{z}} + \comment{The letter `z'.} +\endsetslot + +\setslot{braceleft} + \comment{The opening curly brace `\textbraceleft'.} +\endsetslot + +\setslot{bar} + \comment{The ASCII vertical bar `\textbar'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{braceright} + \comment{The closing curly brace `\textbraceright'.} +\endsetslot + +\setslot{asciitilde} + \comment{The ASCII tilde `\textasciitilde'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{hyphenchar} + \comment{The glyph used for hyphenation in this font, which will + almost always be the same as `hyphen'.} +\endsetslot + +\setslot{\uc{CYRGDSCHCRS}{cyrgdschcrs}} + \comment{ `\CYRGDSCHCRS'.} +\endsetslot + +\setslot{\uc{CYRGHCRS}{cyrghcrs}} + \comment{Cyrillic capital letter ghe with stroke `\CYRGHCRS'.} +\endsetslot + +\setslot{\uc{CYRGDSC}{cyrgdsc}} + \comment{ `\CYRGDSC'.} +\endsetslot + +\setslot{\uc{CYRGHK}{cyrghk}} + \comment{Cyrillic capital letter ghe with middle hook `\CYRGHK'.} +\endsetslot + +\setslot{\uc{CYRSHHA}{cyrshha}} + \comment{Cyrillic capital letter shha `\CYRSHHA'.} +\endsetslot + +\setslot{\uc{CYRZHDSC}{cyrzhdsc}} + \comment{Cyrillic capital letter zhe with descender `\CYRZHDSC'.} +\endsetslot + +\setslot{\uc{CYRDELTA}{cyrdelta}} + \comment{ `\CYRDELTA'.} +\endsetslot + +\setslot{\uc{CYRABHDZE}{cyrabhdze}} + \comment{Cyrillic capital letter abkhasian dze `\CYRABHDZE'.} +\endsetslot + +\setslot{\uc{CYRLJE}{cyrlje}} + \comment{Cyrillic capital letter lje `\CYRLJE'.} +\endsetslot + +\setslot{\uc{CYRKDSC}{cyrkdsc}} + \comment{Cyrillic capital letter ka with descender `\CYRKDSC'.} +\endsetslot + +\setslot{\uc{CYRLDSC}{cyrldsc}} + \comment{ `\CYRLDSC'.} +\endsetslot + +\setslot{\uc{CYRKHK}{cyrkhk}} + \comment{Cyrillic capital letter ka with hook `\CYRKHK'.} +\endsetslot + +\setslot{\uc{CYRLHK}{cyrlhk}} + \comment{ `\CYRLHK'.} +\endsetslot + +\setslot{\uc{CYRNDSC}{cyrndsc}} + \comment{Cyrillic capital letter en with descender `\CYRNDSC'.} +\endsetslot + +\setslot{\uc{CYRNG}{cyrng}} + \comment{Cyrillic capital ligature en ghe `\CYRNG'.} +\endsetslot + +\setslot{\uc{CYRNHK}{cyrnhk}} + \comment{Cyrillic capital letter en with hook `\CYRNHK'.} +\endsetslot + +\setslot{\uc{CYROTLD}{cyrotld}} + \comment{Cyrillic capital letter barred o `\CYROTLD'.} +\endsetslot + +\setslot{\uc{CYRSACRS}{cyrsacrs}} + \comment{ `\CYRSACRS'.} +\endsetslot + +\setslot{\uc{CYRUSHRT}{cyrushrt}} + \comment{Cyrillic capital letter short u `\CYRUSHRT'.} +\endsetslot + +\setslot{\uc{CYRY}{cyry}} + \comment{Cyrillic capital letter straight u `\CYRY'.} +\endsetslot + +\setslot{\uc{CYRHHCRS}{cyrhhcrs}} + \comment{ `\CYRHHCRS'.} +\endsetslot + +\setslot{\uc{CYRHDSC}{cyrhdsc}} + \comment{Cyrillic capital letter ha with descender `\CYRHDSC'.} +\endsetslot + +\setslot{\uc{CYRHHK}{cyrhhk}} + \comment{ `\CYRHHK'.} +\endsetslot + +\setslot{\uc{CYRCHLDSC}{cyrchldsc}} + \comment{Cyrillic capital letter khakassian che `\CYRCHLDSC'.} +\endsetslot + +\setslot{\uc{CYRCHRDSC}{cyrchrdsc}} + \comment{Cyrillic capital letter che with descender `\CYRCHRDSC'.} +\endsetslot + +\setslot{\uc{CYRNJE}{cyrnje}} + \comment{Cyrillic capital letter nje `\CYRNJE'.} +\endsetslot + +\setslot{\uc{CYRSCHWA}{cyrschwa}} + \comment{Cyrillic capital letter schwa `\CYRSCHWA'.} +\endsetslot + +\setslot{\uc{CYREPS}{cyreps}} + \comment{ `\CYREPS'.} +\endsetslot + +\setslot{\uc{CYRYO}{cyryo}} + \comment{Cyrillic capital letter io `\CYRYO'.} +\endsetslot + +\setslot{numero} + \comment{The numero sign `\textnumero', similar to the letter `N' + with a raised `o', unavailable in most PostScript fonts.} +\endsetslot + +\setslot{currency} + \comment{The international currency sign, `\textcurrency'.} +\endsetslot + +\setslot{section} + \comment{The section mark `\textsection'.} +\endsetslot + +\setslot{\lc{CYRGDSCHCRS}{cyrgdschcrs}} + \comment{ `\cyrgdschcrs'.} +\endsetslot + +\setslot{\lc{CYRGHCRS}{cyrghcrs}} + \comment{Cyrillic small letter ghe with stroke `\cyrghcrs'.} +\endsetslot + +\setslot{\lc{CYRGDSC}{cyrgdsc}} + \comment{ `\cyrgdsc'.} +\endsetslot + +\setslot{\lc{CYRGHK}{cyrghk}} + \comment{Cyrillic small letter ghe with middle hook `\cyrghk'.} +\endsetslot + +\setslot{\lc{CYRSHHA}{cyrshha}} + \comment{Cyrillic small letter shha `\cyrshha'.} +\endsetslot + +\setslot{\lc{CYRZHDSC}{cyrzhdsc}} + \comment{Cyrillic small letter zhe with descender `\cyrzhdsc'.} +\endsetslot + +\setslot{\lc{CYRDELTA}{cyrdelta}} + \comment{ `\cyrdelta'.} +\endsetslot + +\setslot{\lc{CYRABHDZE}{cyrabhdze}} + \comment{Cyrillic small letter abkhasian dze `\cyrabhdze'.} +\endsetslot + +\setslot{\lc{CYRLJE}{cyrlje}} + \comment{Cyrillic small letter lje `\cyrlje'.} +\endsetslot + +\setslot{\lc{CYRKDSC}{cyrkdsc}} + \comment{Cyrillic small letter ka with descender `\cyrkdsc'.} +\endsetslot + +\setslot{\lc{CYRLDSC}{cyrldsc}} + \comment{ `\cyrldsc'.} +\endsetslot + +\setslot{\lc{CYRKHK}{cyrkhk}} + \comment{Cyrillic small letter ka with hook `\cyrkhk'.} +\endsetslot + +\setslot{\lc{CYRLHK}{cyrlhk}} + \comment{ `\cyrlhk'.} +\endsetslot + +\setslot{\lc{CYRNDSC}{cyrndsc}} + \comment{Cyrillic small letter en with descender `\cyrndsc'.} +\endsetslot + +\setslot{\lc{CYRNG}{cyrng}} + \comment{Cyrillic small ligature en ghe `\cyrng'.} +\endsetslot + +\setslot{\lc{CYRNHK}{cyrnhk}} + \comment{Cyrillic small letter en with hook `\cyrnhk'.} +\endsetslot + +\setslot{\lc{CYROTLD}{cyrotld}} + \comment{Cyrillic small letter barred o `\cyrotld'.} +\endsetslot + +\setslot{\lc{CYRSACRS}{cyrsacrs}} + \comment{ `\cyrsacrs'.} +\endsetslot + +\setslot{\lc{CYRUSHRT}{cyrushrt}} + \comment{Cyrillic small letter short u `\cyrushrt'.} +\endsetslot + +\setslot{\lc{CYRY}{cyry}} + \comment{Cyrillic small letter straight u `\cyry'.} +\endsetslot + +\setslot{\lc{CYRHHCRS}{cyrhhcrs}} + \comment{ `\cyrhhcrs'.} +\endsetslot + +\setslot{\lc{CYRHDSC}{cyrhdsc}} + \comment{Cyrillic small letter ha with descender `\cyrhdsc'.} +\endsetslot + +\setslot{\lc{CYRHHK}{cyrhhk}} + \comment{ `\cyrhhk'.} +\endsetslot + +\setslot{\lc{CYRCHLDSC}{cyrchldsc}} + \comment{Cyrillic small letter khakassian che `\cyrchldsc'.} +\endsetslot + +\setslot{\lc{CYRCHRDSC}{cyrchrdsc}} + \comment{Cyrillic small letter che with descender `\cyrchrdsc'.} +\endsetslot + +\setslot{\lc{CYRNJE}{cyrnje}} + \comment{Cyrillic small letter nje `\cyrnje'.} +\endsetslot + +\setslot{\lc{CYRSCHWA}{cyrschwa}} + \comment{Cyrillic small letter schwa `\cyrschwa'.} +\endsetslot + +\setslot{\lc{CYREPS}{cyreps}} + \comment{ `\cyreps'.} +\endsetslot + +\setslot{\lc{CYRYO}{cyryo}} + \comment{Cyrillic small letter io `\cyryo'.} +\endsetslot + +\setslot{quotedblbase} + \comment{A German double quote mark `\quotedblbase' similar to two commas, + but with tighter letterspacing and different sidebearings.} +\endsetslot + +\setslot{guillemotleft} + \comment{A Cyrillic double opening quote mark `\guillemotleft', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{guillemotright} + \comment{A Cyrillic double closing quote mark `\guillemotright', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\uc{CYRA}{cyra}} + \comment{Cyrillic capital letter a `\CYRA'.} +\endsetslot + +\setslot{\uc{CYRB}{cyrb}} + \comment{Cyrillic capital letter be `\CYRB'.} +\endsetslot + +\setslot{\uc{CYRV}{cyrv}} + \comment{Cyrillic capital letter ve `\CYRV'.} +\endsetslot + +\setslot{\uc{CYRG}{cyrg}} + \comment{Cyrillic capital letter ghe `\CYRG'.} +\endsetslot + +\setslot{\uc{CYRD}{cyrd}} + \comment{Cyrillic capital letter de `\CYRD'.} +\endsetslot + +\setslot{\uc{CYRE}{cyre}} + \comment{Cyrillic capital letter ie `\CYRE'.} +\endsetslot + +\setslot{\uc{CYRZH}{cyrzh}} + \comment{Cyrillic capital letter zhe `\CYRZH'.} +\endsetslot + +\setslot{\uc{CYRZ}{cyrz}} + \comment{Cyrillic capital letter ze `\CYRZ'.} +\endsetslot + +\setslot{\uc{CYRI}{cyri}} + \comment{Cyrillic capital letter i `\CYRI'.} +\endsetslot + +\setslot{\uc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic capital letter short i `\CYRISHRT'.} +\endsetslot + +\setslot{\uc{CYRK}{cyrk}} + \comment{Cyrillic capital letter ka `\CYRK'.} +\endsetslot + +\setslot{\uc{CYRL}{cyrl}} + \comment{Cyrillic capital letter el `\CYRL'.} +\endsetslot + +\setslot{\uc{CYRM}{cyrm}} + \comment{Cyrillic capital letter em `\CYRM'.} +\endsetslot + +\setslot{\uc{CYRN}{cyrn}} + \comment{Cyrillic capital letter en `\CYRN'.} +\endsetslot + +\setslot{\uc{CYRO}{cyro}} + \comment{Cyrillic capital letter o `\CYRO'.} +\endsetslot + +\setslot{\uc{CYRP}{cyrp}} + \comment{Cyrillic capital letter pe `\CYRP'.} +\endsetslot + +\setslot{\uc{CYRR}{cyrr}} + \comment{Cyrillic capital letter er `\CYRR'.} +\endsetslot + +\setslot{\uc{CYRS}{cyrs}} + \comment{Cyrillic capital letter es `\CYRS'.} +\endsetslot + +\setslot{\uc{CYRT}{cyrt}} + \comment{Cyrillic capital letter te `\CYRT'.} +\endsetslot + +\setslot{\uc{CYRU}{cyru}} + \comment{Cyrillic capital letter u `\CYRU'.} +\endsetslot + +\setslot{\uc{CYRF}{cyrf}} + \comment{Cyrillic capital letter ef `\CYRF'.} +\endsetslot + +\setslot{\uc{CYRH}{cyrh}} + \comment{Cyrillic capital letter ha `\CYRH'.} +\endsetslot + +\setslot{\uc{CYRC}{cyrc}} + \comment{Cyrillic capital letter tse `\CYRC'.} +\endsetslot + +\setslot{\uc{CYRCH}{cyrch}} + \comment{Cyrillic capital letter che `\CYRCH'.} +\endsetslot + +\setslot{\uc{CYRSH}{cyrsh}} + \comment{Cyrillic capital letter sha `\CYRSH'.} +\endsetslot + +\setslot{\uc{CYRSHCH}{cyrshch}} + \comment{Cyrillic capital letter shcha `\CYRSHCH'.} +\endsetslot + +\setslot{\uc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic capital letter hard sign `\CYRHRDSN'.} +\endsetslot + +\setslot{\uc{CYRERY}{cyrery}} + \comment{Cyrillic capital letter yeru `\CYRERY'.} +\endsetslot + +\setslot{\uc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic capital letter soft sign `\CYRSFTSN'.} +\endsetslot + +\setslot{\uc{CYREREV}{cyrerev}} + \comment{Cyrillic capital letter e `\CYREREV'.} +\endsetslot + +\setslot{\uc{CYRYU}{cyryu}} + \comment{Cyrillic capital letter yu `\CYRYU'.} +\endsetslot + +\setslot{\uc{CYRYA}{cyrya}} + \comment{Cyrillic capital letter ya `\CYRYA'.} +\endsetslot + +\setslot{\lc{CYRA}{cyra}} + \comment{Cyrillic small letter a `\cyra'.} +\endsetslot + +\setslot{\lc{CYRB}{cyrb}} + \comment{Cyrillic small letter be `\cyrb'.} +\endsetslot + +\setslot{\lc{CYRV}{cyrv}} + \comment{Cyrillic small letter ve `\cyrv'.} +\endsetslot + +\setslot{\lc{CYRG}{cyrg}} + \comment{Cyrillic small letter ghe `\cyrg'.} +\endsetslot + +\setslot{\lc{CYRD}{cyrd}} + \comment{Cyrillic small letter de `\cyrd'.} +\endsetslot + +\setslot{\lc{CYRE}{cyre}} + \comment{Cyrillic small letter ie `\cyre'.} +\endsetslot + +\setslot{\lc{CYRZH}{cyrzh}} + \comment{Cyrillic small letter zhe `\cyrzh'.} +\endsetslot + +\setslot{\lc{CYRZ}{cyrz}} + \comment{Cyrillic small letter ze `\cyrz'.} +\endsetslot + +\setslot{\lc{CYRI}{cyri}} + \comment{Cyrillic small letter i `\cyri'.} +\endsetslot + +\setslot{\lc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic small letter short i `\cyrishrt'.} +\endsetslot + +\setslot{\lc{CYRK}{cyrk}} + \comment{Cyrillic small letter ka `\cyrk'.} +\endsetslot + +\setslot{\lc{CYRL}{cyrl}} + \comment{Cyrillic small letter el `\cyrl'.} +\endsetslot + +\setslot{\lc{CYRM}{cyrm}} + \comment{Cyrillic small letter em `\cyrm'.} +\endsetslot + +\setslot{\lc{CYRN}{cyrn}} + \comment{Cyrillic small letter en `\cyrn'.} +\endsetslot + +\setslot{\lc{CYRO}{cyro}} + \comment{Cyrillic small letter o `\cyro'.} +\endsetslot + +\setslot{\lc{CYRP}{cyrp}} + \comment{Cyrillic small letter pe `\cyrp'.} +\endsetslot + +\setslot{\lc{CYRR}{cyrr}} + \comment{Cyrillic small letter er `\cyrr'.} +\endsetslot + +\setslot{\lc{CYRS}{cyrs}} + \comment{Cyrillic small letter es `\cyrs'.} +\endsetslot + +\setslot{\lc{CYRT}{cyrt}} + \comment{Cyrillic small letter te `\cyrt'.} +\endsetslot + +\setslot{\lc{CYRU}{cyru}} + \comment{Cyrillic small letter u `\cyru'.} +\endsetslot + +\setslot{\lc{CYRF}{cyrf}} + \comment{Cyrillic small letter ef `\cyrf'.} +\endsetslot + +\setslot{\lc{CYRH}{cyrh}} + \comment{Cyrillic small letter ha `\cyrh'.} +\endsetslot + +\setslot{\lc{CYRC}{cyrc}} + \comment{Cyrillic small letter tse `\cyrc'.} +\endsetslot + +\setslot{\lc{CYRCH}{cyrch}} + \comment{Cyrillic small letter che `\cyrch'.} +\endsetslot + +\setslot{\lc{CYRSH}{cyrsh}} + \comment{Cyrillic small letter sha `\cyrsh'.} +\endsetslot + +\setslot{\lc{CYRSHCH}{cyrshch}} + \comment{Cyrillic small letter shcha `\cyrshch'.} +\endsetslot + +\setslot{\lc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic small letter hard sign `\cyrhrdsn'.} +\endsetslot + +\setslot{\lc{CYRERY}{cyrery}} + \comment{Cyrillic small letter yeru `\cyrery'.} +\endsetslot + +\setslot{\lc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic small letter soft sign `\cyrsftsn'.} +\endsetslot + +\setslot{\lc{CYREREV}{cyrerev}} + \comment{Cyrillic small letter e `\cyrerev'.} +\endsetslot + +\setslot{\lc{CYRYU}{cyryu}} + \comment{Cyrillic small letter yu `\cyryu'.} +\endsetslot + +\setslot{\lc{CYRYA}{cyrya}} + \comment{Cyrillic small letter ya `\cyrya'.} +\endsetslot + +\endencoding +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/t2c.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/t2c.etx new file mode 100644 index 00000000000..4f2d5f99b84 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/t2c.etx @@ -0,0 +1,1284 @@ +\relax + +\documentclass[twocolumn]{article} +\usepackage[T2C]{fontenc} +\usepackage{fontdoc} + +\title{The \TeX\ Cyrillic T2C text encoding vector} +\author{Werner Lemberg, Vladimir Volovich} +\date{17 July 1998\\ +Version 0.1} + +\begin{document} + +\maketitle + +\section{Introduction} + +This document describes the Cyrillic T2C text encoding. +The latin part of this file is based on `t1.etx' by +Alan Jeffrey, Sebastian Rahtz, Ulrik Vieth. + +To use this encoding, you should define the following macros: +\begin{itemize} +\item \verb|\lc{A}{a}| should return the name of a lower-case + glyph, for example `{\tt a}' or `{\tt Asmall}'. + +\item \verb|\uc{A}{a}| should return the name of an upper-case + glyph, for example `{\tt A}' or `{\tt Amedium}'. + +\item \verb|\lctop{Aacute}{aacute}| should return the name of a + lower-case composite glyph formed from putting a diacritical above + a letter, for example `{\tt aacute}' or `{\tt Aacutesmall}'. + +\item \verb|\uctop{Aacute}{aacute}| should return the name of an + upper-case composite glyph formed from putting a diacritical above + a letter, for example `{\tt Aacute}' or `{\tt Aacutemedium}'. + +\item \verb|\lclig{FI}{fi}| should return the name of a lower-case + ligature, for example `{\tt fi}' or `{\tt FIsmall}'. + +\item \verb|\uclig{FI}{fi}| should return the name of an upper-case + ligature, for example `{\tt FI}' or `{\tt FImedium}'. + +\item \verb|\digit{zero}| should return the name of a digit, for + example `{\tt zero}' or `{\tt zerooldstyle}'. +\end{itemize} +These should all expand in the mouth, otherwise you may get error +messages! + +For example, to get the standard upper and lower case font, you should +define: +\begin{verbatim} + \setcommand\lc#1#2{#2} + \setcommand\uc#1#2{#1} + \setcommand\lctop#1#2{#2} + \setcommand\uctop#1#2{#1} + \setcommand\lclig#1#2{#2} + \setcommand\uclig#1#2{#1} + \setcommand\digit#1{#1} +\end{verbatim} +To get a caps and small caps font with old style digits and letter +spacing, you should define: +\begin{verbatim} + \setcommand\lc#1#2{#1small} + \setcommand\uc#1#2{#1} + \setcommand\lctop#1#2{#1small} + \setcommand\uctop#1#2{#1} + \setcommand\lclig#1#2{#2small} + \setcommand\uclig#1#2{#1spaced} + \setcommand\digit#1{#1oldstyle} +\end{verbatim} +To get an all-caps font with medium-cap composite letters and letter +spacing, you should define: +\begin{verbatim} + \setcommand\lc#1#2{#1} + \setcommand\uc#1#2{#1} + \setcommand\lctop#1#2{#1medium} + \setcommand\uctop#1#2{#1medium} + \setcommand\lclig#1#2{#1spaced} + \setcommand\uclig#1#2{#1spaced} + \setcommand\digit#1{#1} +\end{verbatim} +This document describes the upper and lower case encoding. + +\encoding + +\needsfontinstversion{1.800} + +\comment{\section{Default values}} + +\setstr{codingscheme}{TEX CYRILLIC FONT ENCODING - T2C} + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\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 + +% added by Thierry Bouche <Thierry.Bouche@ujf-grenoble.fr> +% 1997/02/07 to calculate values for extra EC fontdimens +% Amended by SPQR 1997/02/09 +\ifisglyph{X}\then + \setint{capheight}{\height{X}} +\else + \setint{capheight}{750} +\fi + +\ifisglyph{d}\then + \setint{ascender}{\height{d}} +\else + \ifisint{capheight}\then + \setint{ascender}{\int{capheight}} + \else + \setint{ascender}{750} +\fi\fi + +\ifisglyph{Aring}\then + \setint{acccapheight}{\height{Aring}} +\else + \setint{acccapheight}{999} +\fi + +\ifisint{descender_neg}\then + \setint{descender}{\neg{\int{descender_neg}}} + \else + \ifisglyph{p}\then + \setint{descender}{\depth{p}} + \else + \setint{descender}{250} + \fi +\fi + +\ifisglyph{Aring}\then + \setint{maxheight}{\height{Aring}} +\else + \setint{maxheight}{1000} +\fi + +\ifisint{maxdepth_neg}\then + \setint{maxdepth}{\neg{\int{maxdepth_neg}}} +\else + \ifisglyph{j}\then + \setint{maxdepth}{\depth{j}} + \else + \setint{maxdepth}{250} + \fi +\fi + +\ifisglyph{six}\then + \setint{digitwidth}{\width{six}} +\else + \setint{digitwidth}{500} +\fi + +\setint{capstem}{0} % not in AFM files +\setint{baselineskip}{1200} +% end changes by Thierry + + +\comment{\section{Default font dimensions}} + +\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{monowidth}\then + \setint{fontdimen(7)}{\int{interword}} % extra space after . +\else + \setint{fontdimen(7)}{\scale{\int{interword}}{240}}% extra space after . +\fi +% added by Thierry Bouche <Thierry.Bouche@ujf-grenoble.fr> 1997/02/07 +\setint{fontdimen(8)}{\int{capheight}} % cap height +\setint{fontdimen(9)}{\int{ascender}} % ascender +\setint{fontdimen(10)}{\int{acccapheight}} % accented cap height +\setint{fontdimen(11)}{\int{descender}} % descender's depth +\setint{fontdimen(12)}{\int{maxheight}} % max height +\setint{fontdimen(13)}{\int{maxdepth}} % max depth +\setint{fontdimen(14)}{\int{digitwidth}} % digit width +\setint{fontdimen(15)}{\int{capstem}} % cap_stem +\setint{fontdimen(16)}{\int{baselineskip}} % baselineskip + + +\comment{\section{The encoding} + There are 256 glyphs in this encoding.} + +\setslot{\lc{Grave}{grave}} + \comment{The grave accent `\`{}'.} +\endsetslot + +\setslot{\lc{Acute}{acute}} + \comment{The acute accent `\'{}'.} +\endsetslot + +\setslot{\lc{Circumflex}{circumflex}} + \comment{The circumflex accent `\^{}'.} +\endsetslot + +\setslot{\lc{Tilde}{tilde}} + \comment{The tilde accent `\~{}'.} +\endsetslot + +\setslot{\lc{Dieresis}{dieresis}} + \comment{The umlaut or dieresis accent `\"{}'.} +\endsetslot + +\setslot{\lc{Hungarumlaut}{hungarumlaut}} + \comment{The long Hungarian umlaut `\H{}'.} +\endsetslot + +\setslot{\lc{Ring}{ring}} + \comment{The ring accent `\r{}'.} +\endsetslot + +\setslot{\lc{Caron}{caron}} + \comment{The caron or h\'a\v cek accent `\v{}'.} +\endsetslot + +\setslot{\lc{Breve}{breve}} + \comment{The breve accent `\u{}'.} +\endsetslot + +\setslot{\lc{Macron}{macron}} + \comment{The macron accent `\={}'.} +\endsetslot + +\setslot{\lc{Dotaccent}{dotaccent}} + \comment{The dot accent `\.{}'.} +\endsetslot + +\setslot{\lc{Cedilla}{cedilla}} + \comment{The cedilla accent `\c{}'.} +\endsetslot + +\setslot{\lc{Ogonek}{ogonek}} + \comment{The ogonek accent `\k{}'.} +\endsetslot + +\setslot{CYRpalochka} + \comment{Cyrillic letter palochka `\CYRpalochka'.} +\endsetslot + +\setslot{angleleft} + \comment{Left-pointing (cyrillic) angle bracket `\cyrlangle'.} +\endsetslot + +\setslot{angleright} + \comment{Right-pointing (cyrillic) angle bracket `\cyrrangle'.} +\endsetslot + +\setslot{quotedblleft} + \comment{The English opening quote mark `\,\textquotedblleft\,'.} +\endsetslot + +\setslot{quotedblright} + \comment{The English closing quote mark `\,\textquotedblright\,'.} +\endsetslot + +\setslot{\lc{cyrFlex}{cyrflex}} + \comment{Cyrillic circumflex `\f{}'.} +\endsetslot + +\setslot{\lc{dblGrave}{dblgrave}} + \comment{Double grave accent `\C{}'.} +\endsetslot + +\setslot{\lc{cyrBreve}{cyrbreve}} + \comment{Cyrillic breve `\U{}'.} +\endsetslot + +\setslot{rangedash} + \ligature{LIG}{hyphen}{cyrdash} + \comment{The number range dash `1--9'. In a monowidth font, this + might be set as `{\tt 1{-}9}'.} +\endsetslot + +\setslot{cyrdash} + \comment{Cyrillic em dash---longer than endash, but shorter + than english emdash: `\cyrdash'.} +\endsetslot + +\setslot{compwordmark} + \comment{An invisible glyph, with zero width and depth, but the + height of lowercase letters without ascenders. + It is used to stop ligaturing in words like `shelf{}ful'.} +\endsetslot + +\setslot{perthousandzero} + \comment{A glyph which is placed after `\%' to produce a + `per-thousand', or twice to produce `per-ten-thousand'. + Your guess is as good as mine as to what this glyph should look + like in a monowidth font.} +\endsetslot + +\setslot{\lc{dotlessI}{dotlessi}} + \comment{A dotless i `\i', used to produce accented letters such as + `\=\i'.} +\endsetslot + +\setslot{\lc{dotlessJ}{dotlessj}} + \comment{A dotless j `\j', used to produce accented letters such as + `\=\j'. Most non-\TeX\ fonts do not have this glyph.} +\endsetslot + +\setslot{\lclig{FF}{ff}} + \ligature{LIG}{\lc{I}{i}}{\lclig{FFI}{ffi}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FFL}{ffl}} + \comment{The `ff' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FI}{fi}} + \comment{The `fi' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FL}{fl}} + \comment{The `fl' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFI}{ffi}} + \comment{The `ffi' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFL}{ffl}} + \comment{The `ffl' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\setslot{visiblespace} + \comment{A visible space glyph `\textvisiblespace'.} +\endsetslot + +\setslot{exclam} + \comment{The exclamation mark `!'.} +\endsetslot + +\setslot{quotedbl} + \comment{The `neutral' double quotation mark `\,\textquotedbl\,', + included for use in monowidth fonts, or for setting computer + programs. Note that the inclusion of this glyph in this slot + means that \TeX\ documents which used `{\tt"}' as an + input character will no longer work.} +\endsetslot + +\setslot{numbersign} + \comment{The hash sign `\#'.} +\endsetslot + +\setslot{dollar} + \comment{The dollar sign `\$'.} +\endsetslot + +\setslot{percent} + \comment{The percent sign `\%'.} +\endsetslot + +\setslot{ampersand} + \comment{The ampersand sign `\&'.} +\endsetslot + +\setslot{quoteright} + \ligature{LIG}{quoteright}{quotedblright} + \comment{The English closing single quote mark `\,\textquoteright\,'.} +\endsetslot + +\setslot{parenleft} + \comment{The opening parenthesis `('.} +\endsetslot + +\setslot{parenright} + \comment{The closing parenthesis `)'.} +\endsetslot + +\setslot{asterisk} + \comment{The raised asterisk `*'.} +\endsetslot + +\setslot{plus} + \comment{The addition sign `+'.} +\endsetslot + +\setslot{comma} + \ligature{LIG}{comma}{quotedblbase} + \comment{The comma `,'.} +\endsetslot + +\setslot{hyphen} + \ligature{LIG}{hyphen}{rangedash} + \ligature{LIG}{hyphenchar}{hyphenchar} + \comment{The hyphen `-'.} +\endsetslot + +\setslot{period} + \comment{The period `.'.} +\endsetslot + +\setslot{slash} + \comment{The forward oblique `/'.} +\endsetslot + +\setslot{\digit{zero}} + \comment{The number `0'. This (and all the other numerals) may be + old style or ranging digits.} +\endsetslot + +\setslot{\digit{one}} + \comment{The number `1'.} +\endsetslot + +\setslot{\digit{two}} + \comment{The number `2'.} +\endsetslot + +\setslot{\digit{three}} + \comment{The number `3'.} +\endsetslot + +\setslot{\digit{four}} + \comment{The number `4'.} +\endsetslot + +\setslot{\digit{five}} + \comment{The number `5'.} +\endsetslot + +\setslot{\digit{six}} + \comment{The number `6'.} +\endsetslot + +\setslot{\digit{seven}} + \comment{The number `7'.} +\endsetslot + +\setslot{\digit{eight}} + \comment{The number `8'.} +\endsetslot + +\setslot{\digit{nine}} + \comment{The number `9'.} +\endsetslot + +\setslot{colon} + \comment{The colon punctuation mark `:'.} +\endsetslot + +\setslot{semicolon} + \comment{The semi-colon punctuation mark `;'.} +\endsetslot + +\setslot{less} + \ligature{LIG}{less}{guillemotleft} + \comment{The less-than sign `\textless'.} +\endsetslot + +\setslot{equal} + \comment{The equals sign `='.} +\endsetslot + +\setslot{greater} + \ligature{LIG}{greater}{guillemotright} + \comment{The greater-than sign `\textgreater'.} +\endsetslot + +\setslot{question} + \comment{The question mark `?'.} +\endsetslot + +\setslot{at} + \comment{The at sign `@'.} +\endsetslot + +\setslot{\uc{A}{a}} + \comment{The letter `A'.} +\endsetslot + +\setslot{\uc{B}{b}} + \comment{The letter `B'.} +\endsetslot + +\setslot{\uc{C}{c}} + \comment{The letter `C'.} +\endsetslot + +\setslot{\uc{D}{d}} + \comment{The letter `D'.} +\endsetslot + +\setslot{\uc{E}{e}} + \comment{The letter `E'.} +\endsetslot + +\setslot{\uc{F}{f}} + \comment{The letter `F'.} +\endsetslot + +\setslot{\uc{G}{g}} + \comment{The letter `G'.} +\endsetslot + +\setslot{\uc{H}{h}} + \comment{The letter `H'.} +\endsetslot + +\setslot{\uc{I}{i}} + \comment{The letter `I'.} +\endsetslot + +\setslot{\uc{J}{j}} + \comment{The letter `J'.} +\endsetslot + +\setslot{\uc{K}{k}} + \comment{The letter `K'.} +\endsetslot + +\setslot{\uc{L}{l}} + \comment{The letter `L'.} +\endsetslot + +\setslot{\uc{M}{m}} + \comment{The letter `M'.} +\endsetslot + +\setslot{\uc{N}{n}} + \comment{The letter `N'.} +\endsetslot + +\setslot{\uc{O}{o}} + \comment{The letter `O'.} +\endsetslot + +\setslot{\uc{P}{p}} + \comment{The letter `P'.} +\endsetslot + +\setslot{\uc{Q}{q}} + \comment{The letter `Q'.} +\endsetslot + +\setslot{\uc{R}{r}} + \comment{The letter `R'.} +\endsetslot + +\setslot{\uc{S}{s}} + \comment{The letter `S'.} +\endsetslot + +\setslot{\uc{T}{t}} + \comment{The letter `T'.} +\endsetslot + +\setslot{\uc{U}{u}} + \comment{The letter `U'.} +\endsetslot + +\setslot{\uc{V}{v}} + \comment{The letter `V'.} +\endsetslot + +\setslot{\uc{W}{w}} + \comment{The letter `W'.} +\endsetslot + +\setslot{\uc{X}{x}} + \comment{The letter `X'.} +\endsetslot + +\setslot{\uc{Y}{y}} + \comment{The letter `Y'.} +\endsetslot + +\setslot{\uc{Z}{z}} + \comment{The letter `Z'.} +\endsetslot + +\setslot{bracketleft} + \comment{The opening square bracket `['.} +\endsetslot + +\setslot{backslash} + \comment{The backwards oblique `\textbackslash'.} +\endsetslot + +\setslot{bracketright} + \comment{The closing square bracket `]'.} +\endsetslot + +\setslot{asciicircum} + \comment{The ASCII upward-pointing arrow head `\textasciicircum'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{underscore} + \comment{The ASCII underline character `\textunderscore', usually + set on the baseline. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{quoteleft} + \ligature{LIG}{quoteleft}{quotedblleft} + \comment{The English opening single quote mark `\,\textquoteleft\,'.} +\endsetslot + +\setslot{\lc{A}{a}} + \comment{The letter `a'.} +\endsetslot + +\setslot{\lc{B}{b}} + \comment{The letter `b'.} +\endsetslot + +\setslot{\lc{C}{c}} + \comment{The letter `c'.} +\endsetslot + +\setslot{\lc{D}{d}} + \comment{The letter `d'.} +\endsetslot + +\setslot{\lc{E}{e}} + \comment{The letter `e'.} +\endsetslot + +\setslot{\lc{F}{f}} +\ifisint{monowidth}\then\else + \ligature{LIG}{\lc{I}{i}}{\lclig{FI}{fi}} + \ligature{LIG}{\lc{F}{f}}{\lclig{FF}{ff}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FL}{fl}} +\fi + \comment{The letter `f'.} +\endsetslot + +\setslot{\lc{G}{g}} + \comment{The letter `g'.} +\endsetslot + +\setslot{\lc{H}{h}} + \comment{The letter `h'.} +\endsetslot + +\setslot{\lc{I}{i}} + \comment{The letter `i'.} +\endsetslot + +\setslot{\lc{J}{j}} + \comment{The letter `j'.} +\endsetslot + +\setslot{\lc{K}{k}} + \comment{The letter `k'.} +\endsetslot + +\setslot{\lc{L}{l}} + \comment{The letter `l'.} +\endsetslot + +\setslot{\lc{M}{m}} + \comment{The letter `m'.} +\endsetslot + +\setslot{\lc{N}{n}} + \comment{The letter `n'.} +\endsetslot + +\setslot{\lc{O}{o}} + \comment{The letter `o'.} +\endsetslot + +\setslot{\lc{P}{p}} + \comment{The letter `p'.} +\endsetslot + +\setslot{\lc{Q}{q}} + \comment{The letter `q'.} +\endsetslot + +\setslot{\lc{R}{r}} + \comment{The letter `r'.} +\endsetslot + +\setslot{\lc{S}{s}} + \comment{The letter `s'.} +\endsetslot + +\setslot{\lc{T}{t}} + \comment{The letter `t'.} +\endsetslot + +\setslot{\lc{U}{u}} + \comment{The letter `u'.} +\endsetslot + +\setslot{\lc{V}{v}} + \comment{The letter `v'.} +\endsetslot + +\setslot{\lc{W}{w}} + \comment{The letter `w'.} +\endsetslot + +\setslot{\lc{X}{x}} + \comment{The letter `x'.} +\endsetslot + +\setslot{\lc{Y}{y}} + \comment{The letter `y'.} +\endsetslot + +\setslot{\lc{Z}{z}} + \comment{The letter `z'.} +\endsetslot + +\setslot{braceleft} + \comment{The opening curly brace `\textbraceleft'.} +\endsetslot + +\setslot{bar} + \comment{The ASCII vertical bar `\textbar'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{braceright} + \comment{The closing curly brace `\textbraceright'.} +\endsetslot + +\setslot{asciitilde} + \comment{The ASCII tilde `\textasciitilde'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{hyphenchar} + \comment{The glyph used for hyphenation in this font, which will + almost always be the same as `hyphen'.} +\endsetslot + +\setslot{\uc{CYRPHK}{cyrphk}} + \comment{Cyrillic capital letter pe with middle hook `\CYRPHK'.} +\endsetslot + +\setslot{\uc{CYRTETSE}{cyrtetse}} + \comment{Cyrillic capital ligature te tse `\CYRTETSE'.} +\endsetslot + +\setslot{\uc{CYRTDSC}{cyrtdsc}} + \comment{Cyrillic capital letter te with descender `\CYRTDSC'.} +\endsetslot + +\setslot{\uc{CYRGHK}{cyrghk}} + \comment{Cyrillic capital letter ghe with middle hook `\CYRGHK'.} +\endsetslot + +\setslot{\uc{CYRSHHA}{cyrshha}} + \comment{Cyrillic capital letter shha `\CYRSHHA'.} +\endsetslot + +\setslot{\uc{CYRRDSC}{cyrrdsc}} + \comment{ `\CYRRDSC'.} +\endsetslot + +\setslot{\uc{CYRRTICK}{cyrrtick}} + \comment{ `\CYRRTICK'.} +\endsetslot + +\setslot{\uc{CYRABHDZE}{cyrabhdze}} + \comment{Cyrillic capital letter abkhasian dze `\CYRABHDZE'.} +\endsetslot + +\setslot{\uc{CYRMDSC}{cyrmdsc}} + \comment{ `\CYRMDSC'.} +\endsetslot + +\setslot{\uc{CYRKDSC}{cyrkdsc}} + \comment{Cyrillic capital letter ka with descender `\CYRKDSC'.} +\endsetslot + +\setslot{\uc{CYRLDSC}{cyrldsc}} + \comment{ `\CYRLDSC'.} +\endsetslot + +\setslot{\uc{CYRKHCRS}{cyrkhcrs}} + \comment{Cyrillic capital letter ka with stroke `\CYRKHCRS'.} +\endsetslot + +\setslot{\uc{CYRLHK}{cyrlhk}} + \comment{ `\CYRLHK'.} +\endsetslot + +\setslot{\uc{CYRNDSC}{cyrndsc}} + \comment{Cyrillic capital letter en with descender `\CYRNDSC'.} +\endsetslot + +\setslot{\uc{CYRMHK}{cyrmhk}} + \comment{ `\CYRMHK'.} +\endsetslot + +\setslot{\uc{CYRNHK}{cyrnhk}} + \comment{Cyrillic capital letter en with hook `\CYRNHK'.} +\endsetslot + +\setslot{\uc{CYROTLD}{cyrotld}} + \comment{Cyrillic capital letter barred o `\CYROTLD'.} +\endsetslot + +\setslot{\uc{CYRABHCH}{cyrabhch}} + \comment{Cyrillic capital letter abkhasian che `\CYRABHCH'.} +\endsetslot + +\setslot{\uc{CYRABHCHDSC}{cyrabhchdsc}} + \comment{Cyrillic capital letter abkhasian che with descender `\CYRABHCHDSC'.} +\endsetslot + +\setslot{\uc{CYRSEMISFTSN}{cyrsemisftsn}} + \comment{Cyrillic capital semi soft sign `\CYRSEMISFTSN'.} +\endsetslot + +\setslot{\uc{CYRISHRTDSC}{cyrishrtdsc}} + \comment{Cyrillic capital letter short i with descender `\CYRISHRTDSC'.} +\endsetslot + +\setslot{\uc{CYRHDSC}{cyrhdsc}} + \comment{Cyrillic capital letter ha with descender `\CYRHDSC'.} +\endsetslot + +\setslot{\uc{CYRDZHE}{cyrdzhe}} + \comment{Cyrillic capital letter dzhe `\CYRDZHE'.} +\endsetslot + +\setslot{\uc{CYRABHHA}{cyrabhha}} + \comment{Cyrillic capital letter abkhasian ha `\CYRABHHA'.} +\endsetslot + +\setslot{\uc{CYRCHRDSC}{cyrchrdsc}} + \comment{Cyrillic capital letter che with descender `\CYRCHRDSC'.} +\endsetslot + +\setslot{\uc{CYRNLHK}{cyrnlhk}} + \comment{ `\CYRNLHK'.} +\endsetslot + +\setslot{\uc{CYRSCHWA}{cyrschwa}} + \comment{Cyrillic capital letter schwa `\CYRSCHWA'.} +\endsetslot + +\setslot{\uc{CYRRHK}{cyrrhk}} + \comment{Cyrillic capital letter er with hook `\CYRRHK'.} +\endsetslot + +\setslot{\uc{CYRYO}{cyryo}} + \comment{Cyrillic capital letter io `\CYRYO'.} +\endsetslot + +\setslot{numero} + \comment{The numero sign `\textnumero', similar to the letter `N' + with a raised `o', unavailable in most PostScript fonts.} +\endsetslot + +\setslot{currency} + \comment{The international currency sign, `\textcurrency'.} +\endsetslot + +\setslot{section} + \comment{The section mark `\textsection'.} +\endsetslot + +\setslot{\lc{CYRPHK}{cyrphk}} + \comment{Cyrillic small letter pe with middle hook `\cyrphk'.} +\endsetslot + +\setslot{\lc{CYRTETSE}{cyrtetse}} + \comment{Cyrillic small ligature te tse `\cyrtetse'.} +\endsetslot + +\setslot{\lc{CYRTDSC}{cyrtdsc}} + \comment{Cyrillic small letter te with descender `\cyrtdsc'.} +\endsetslot + +\setslot{\lc{CYRGHK}{cyrghk}} + \comment{Cyrillic small letter ghe with middle hook `\cyrghk'.} +\endsetslot + +\setslot{\lc{CYRSHHA}{cyrshha}} + \comment{Cyrillic small letter shha `\cyrshha'.} +\endsetslot + +\setslot{\lc{CYRRDSC}{cyrrdsc}} + \comment{ `\cyrrdsc'.} +\endsetslot + +\setslot{\lc{CYRRTICK}{cyrrtick}} + \comment{ `\cyrrtick'.} +\endsetslot + +\setslot{\lc{CYRABHDZE}{cyrabhdze}} + \comment{Cyrillic small letter abkhasian dze `\cyrabhdze'.} +\endsetslot + +\setslot{\lc{CYRMDSC}{cyrmdsc}} + \comment{ `\cyrmdsc'.} +\endsetslot + +\setslot{\lc{CYRKDSC}{cyrkdsc}} + \comment{Cyrillic small letter ka with descender `\cyrkdsc'.} +\endsetslot + +\setslot{\lc{CYRLDSC}{cyrldsc}} + \comment{ `\cyrldsc'.} +\endsetslot + +\setslot{\lc{CYRKHCRS}{cyrkhcrs}} + \comment{Cyrillic small letter ka with stroke `\cyrkhcrs'.} +\endsetslot + +\setslot{\lc{CYRLHK}{cyrlhk}} + \comment{ `\cyrlhk'.} +\endsetslot + +\setslot{\lc{CYRNDSC}{cyrndsc}} + \comment{Cyrillic small letter en with descender `\cyrndsc'.} +\endsetslot + +\setslot{\lc{CYRMHK}{cyrmhk}} + \comment{ `\cyrmhk'.} +\endsetslot + +\setslot{\lc{CYRNHK}{cyrnhk}} + \comment{Cyrillic small letter en with hook `\cyrnhk'.} +\endsetslot + +\setslot{\lc{CYROTLD}{cyrotld}} + \comment{Cyrillic small letter barred o `\cyrotld'.} +\endsetslot + +\setslot{\lc{CYRABHCH}{cyrabhch}} + \comment{Cyrillic small letter abkhasian che `\cyrabhch'.} +\endsetslot + +\setslot{\lc{CYRABHCHDSC}{cyrabhchdsc}} + \comment{Cyrillic small letter abkhasian che with descender `\cyrabhchdsc'.} +\endsetslot + +\setslot{\lc{CYRSEMISFTSN}{cyrsemisftsn}} + \comment{Cyrillic small letter semi soft sign `\cyrsemisftsn'.} +\endsetslot + +\setslot{\lc{CYRISHRTDSC}{cyrishrtdsc}} + \comment{Cyrillic small letter short i with descender `\cyrishrtdsc'.} +\endsetslot + +\setslot{\lc{CYRHDSC}{cyrhdsc}} + \comment{Cyrillic small letter ha with descender `\cyrhdsc'.} +\endsetslot + +\setslot{\lc{CYRDZHE}{cyrdzhe}} + \comment{Cyrillic small letter dzhe `\cyrdzhe'.} +\endsetslot + +\setslot{\lc{CYRABHHA}{cyrabhha}} + \comment{Cyrillic small letter abkhasian ha `\cyrabhha'.} +\endsetslot + +\setslot{\lc{CYRCHRDSC}{cyrchrdsc}} + \comment{Cyrillic small letter che with descender `\cyrchrdsc'.} +\endsetslot + +\setslot{\lc{CYRNLHK}{cyrnlhk}} + \comment{ `\cyrnlhk'.} +\endsetslot + +\setslot{\lc{CYRSCHWA}{cyrschwa}} + \comment{Cyrillic small letter schwa `\cyrschwa'.} +\endsetslot + +\setslot{\lc{CYRRHK}{cyrrhk}} + \comment{Cyrillic small letter er with hook `\cyrrhk'.} +\endsetslot + +\setslot{\lc{CYRYO}{cyryo}} + \comment{Cyrillic small letter io `\cyryo'.} +\endsetslot + +\setslot{quotedblbase} + \comment{A German double quote mark `\quotedblbase' similar to two commas, + but with tighter letterspacing and different sidebearings.} +\endsetslot + +\setslot{guillemotleft} + \comment{A Cyrillic double opening quote mark `\guillemotleft', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{guillemotright} + \comment{A Cyrillic double closing quote mark `\guillemotright', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\uc{CYRA}{cyra}} + \comment{Cyrillic capital letter a `\CYRA'.} +\endsetslot + +\setslot{\uc{CYRB}{cyrb}} + \comment{Cyrillic capital letter be `\CYRB'.} +\endsetslot + +\setslot{\uc{CYRV}{cyrv}} + \comment{Cyrillic capital letter ve `\CYRV'.} +\endsetslot + +\setslot{\uc{CYRG}{cyrg}} + \comment{Cyrillic capital letter ghe `\CYRG'.} +\endsetslot + +\setslot{\uc{CYRD}{cyrd}} + \comment{Cyrillic capital letter de `\CYRD'.} +\endsetslot + +\setslot{\uc{CYRE}{cyre}} + \comment{Cyrillic capital letter ie `\CYRE'.} +\endsetslot + +\setslot{\uc{CYRZH}{cyrzh}} + \comment{Cyrillic capital letter zhe `\CYRZH'.} +\endsetslot + +\setslot{\uc{CYRZ}{cyrz}} + \comment{Cyrillic capital letter ze `\CYRZ'.} +\endsetslot + +\setslot{\uc{CYRI}{cyri}} + \comment{Cyrillic capital letter i `\CYRI'.} +\endsetslot + +\setslot{\uc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic capital letter short i `\CYRISHRT'.} +\endsetslot + +\setslot{\uc{CYRK}{cyrk}} + \comment{Cyrillic capital letter ka `\CYRK'.} +\endsetslot + +\setslot{\uc{CYRL}{cyrl}} + \comment{Cyrillic capital letter el `\CYRL'.} +\endsetslot + +\setslot{\uc{CYRM}{cyrm}} + \comment{Cyrillic capital letter em `\CYRM'.} +\endsetslot + +\setslot{\uc{CYRN}{cyrn}} + \comment{Cyrillic capital letter en `\CYRN'.} +\endsetslot + +\setslot{\uc{CYRO}{cyro}} + \comment{Cyrillic capital letter o `\CYRO'.} +\endsetslot + +\setslot{\uc{CYRP}{cyrp}} + \comment{Cyrillic capital letter pe `\CYRP'.} +\endsetslot + +\setslot{\uc{CYRR}{cyrr}} + \comment{Cyrillic capital letter er `\CYRR'.} +\endsetslot + +\setslot{\uc{CYRS}{cyrs}} + \comment{Cyrillic capital letter es `\CYRS'.} +\endsetslot + +\setslot{\uc{CYRT}{cyrt}} + \comment{Cyrillic capital letter te `\CYRT'.} +\endsetslot + +\setslot{\uc{CYRU}{cyru}} + \comment{Cyrillic capital letter u `\CYRU'.} +\endsetslot + +\setslot{\uc{CYRF}{cyrf}} + \comment{Cyrillic capital letter ef `\CYRF'.} +\endsetslot + +\setslot{\uc{CYRH}{cyrh}} + \comment{Cyrillic capital letter ha `\CYRH'.} +\endsetslot + +\setslot{\uc{CYRC}{cyrc}} + \comment{Cyrillic capital letter tse `\CYRC'.} +\endsetslot + +\setslot{\uc{CYRCH}{cyrch}} + \comment{Cyrillic capital letter che `\CYRCH'.} +\endsetslot + +\setslot{\uc{CYRSH}{cyrsh}} + \comment{Cyrillic capital letter sha `\CYRSH'.} +\endsetslot + +\setslot{\uc{CYRSHCH}{cyrshch}} + \comment{Cyrillic capital letter shcha `\CYRSHCH'.} +\endsetslot + +\setslot{\uc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic capital letter hard sign `\CYRHRDSN'.} +\endsetslot + +\setslot{\uc{CYRERY}{cyrery}} + \comment{Cyrillic capital letter yeru `\CYRERY'.} +\endsetslot + +\setslot{\uc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic capital letter soft sign `\CYRSFTSN'.} +\endsetslot + +\setslot{\uc{CYREREV}{cyrerev}} + \comment{Cyrillic capital letter e `\CYREREV'.} +\endsetslot + +\setslot{\uc{CYRYU}{cyryu}} + \comment{Cyrillic capital letter yu `\CYRYU'.} +\endsetslot + +\setslot{\uc{CYRYA}{cyrya}} + \comment{Cyrillic capital letter ya `\CYRYA'.} +\endsetslot + +\setslot{\lc{CYRA}{cyra}} + \comment{Cyrillic small letter a `\cyra'.} +\endsetslot + +\setslot{\lc{CYRB}{cyrb}} + \comment{Cyrillic small letter be `\cyrb'.} +\endsetslot + +\setslot{\lc{CYRV}{cyrv}} + \comment{Cyrillic small letter ve `\cyrv'.} +\endsetslot + +\setslot{\lc{CYRG}{cyrg}} + \comment{Cyrillic small letter ghe `\cyrg'.} +\endsetslot + +\setslot{\lc{CYRD}{cyrd}} + \comment{Cyrillic small letter de `\cyrd'.} +\endsetslot + +\setslot{\lc{CYRE}{cyre}} + \comment{Cyrillic small letter ie `\cyre'.} +\endsetslot + +\setslot{\lc{CYRZH}{cyrzh}} + \comment{Cyrillic small letter zhe `\cyrzh'.} +\endsetslot + +\setslot{\lc{CYRZ}{cyrz}} + \comment{Cyrillic small letter ze `\cyrz'.} +\endsetslot + +\setslot{\lc{CYRI}{cyri}} + \comment{Cyrillic small letter i `\cyri'.} +\endsetslot + +\setslot{\lc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic small letter short i `\cyrishrt'.} +\endsetslot + +\setslot{\lc{CYRK}{cyrk}} + \comment{Cyrillic small letter ka `\cyrk'.} +\endsetslot + +\setslot{\lc{CYRL}{cyrl}} + \comment{Cyrillic small letter el `\cyrl'.} +\endsetslot + +\setslot{\lc{CYRM}{cyrm}} + \comment{Cyrillic small letter em `\cyrm'.} +\endsetslot + +\setslot{\lc{CYRN}{cyrn}} + \comment{Cyrillic small letter en `\cyrn'.} +\endsetslot + +\setslot{\lc{CYRO}{cyro}} + \comment{Cyrillic small letter o `\cyro'.} +\endsetslot + +\setslot{\lc{CYRP}{cyrp}} + \comment{Cyrillic small letter pe `\cyrp'.} +\endsetslot + +\setslot{\lc{CYRR}{cyrr}} + \comment{Cyrillic small letter er `\cyrr'.} +\endsetslot + +\setslot{\lc{CYRS}{cyrs}} + \comment{Cyrillic small letter es `\cyrs'.} +\endsetslot + +\setslot{\lc{CYRT}{cyrt}} + \comment{Cyrillic small letter te `\cyrt'.} +\endsetslot + +\setslot{\lc{CYRU}{cyru}} + \comment{Cyrillic small letter u `\cyru'.} +\endsetslot + +\setslot{\lc{CYRF}{cyrf}} + \comment{Cyrillic small letter ef `\cyrf'.} +\endsetslot + +\setslot{\lc{CYRH}{cyrh}} + \comment{Cyrillic small letter ha `\cyrh'.} +\endsetslot + +\setslot{\lc{CYRC}{cyrc}} + \comment{Cyrillic small letter tse `\cyrc'.} +\endsetslot + +\setslot{\lc{CYRCH}{cyrch}} + \comment{Cyrillic small letter che `\cyrch'.} +\endsetslot + +\setslot{\lc{CYRSH}{cyrsh}} + \comment{Cyrillic small letter sha `\cyrsh'.} +\endsetslot + +\setslot{\lc{CYRSHCH}{cyrshch}} + \comment{Cyrillic small letter shcha `\cyrshch'.} +\endsetslot + +\setslot{\lc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic small letter hard sign `\cyrhrdsn'.} +\endsetslot + +\setslot{\lc{CYRERY}{cyrery}} + \comment{Cyrillic small letter yeru `\cyrery'.} +\endsetslot + +\setslot{\lc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic small letter soft sign `\cyrsftsn'.} +\endsetslot + +\setslot{\lc{CYREREV}{cyrerev}} + \comment{Cyrillic small letter e `\cyrerev'.} +\endsetslot + +\setslot{\lc{CYRYU}{cyryu}} + \comment{Cyrillic small letter yu `\cyryu'.} +\endsetslot + +\setslot{\lc{CYRYA}{cyrya}} + \comment{Cyrillic small letter ya `\cyrya'.} +\endsetslot + +\endencoding +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/cyrfinst/x2.etx b/Master/texmf-dist/tex/fontinst/cyrfinst/x2.etx new file mode 100644 index 00000000000..176554539ce --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/cyrfinst/x2.etx @@ -0,0 +1,1102 @@ +\relax + +\documentclass[twocolumn]{article} +\usepackage[X2,OT1]{fontenc} +\usepackage{fontdoc} +\useexamplefont{rxrm1000} +\catcode`\`=13 \def`#1'{\textquoteleft{\UseTextSymbol{X2}{#1}}\textquoteright} + +\title{The \TeX\ Cyrillic X2 text encoding vector} +\author{Werner Lemberg, Vladimir Volovich} +\date{17 July 1998\\ +Version 0.1} + +\begin{document} + +\maketitle + +\section{Introduction} + +This document describes the Cyrillic X2 text encoding. + + +\encoding + +\needsfontinstversion{1.800} + +\comment{\section{Default values}} + +\setstr{codingscheme}{TEX CYRILLIC FONT ENCODING - X2} + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + + +\comment{\section{The encoding} + There are 256 glyphs in this encoding.} + +\setslot{\lc{Grave}{grave}} + \comment{The grave accent `\`{}'.} +\endsetslot + +\setslot{\lc{Acute}{acute}} + \comment{The acute accent `\'{}'.} +\endsetslot + +\setslot{\lc{Circumflex}{circumflex}} + \comment{The circumflex accent `\^{}'.} +\endsetslot + +\setslot{\lc{Tilde}{tilde}} + \comment{The tilde accent `\~{}'.} +\endsetslot + +\setslot{\lc{Dieresis}{dieresis}} + \comment{The umlaut or dieresis accent `\"{}'.} +\endsetslot + +\setslot{\lc{Hungarumlaut}{hungarumlaut}} + \comment{The long Hungarian umlaut `\H{}'.} +\endsetslot + +\setslot{\lc{Ring}{ring}} + \comment{The ring accent `\r{}'.} +\endsetslot + +\setslot{\lc{Caron}{caron}} + \comment{The caron or h\'a\v cek accent `\v{}'.} +\endsetslot + +\setslot{\lc{Breve}{breve}} + \comment{The breve accent `\u{}'.} +\endsetslot + +\setslot{\lc{Macron}{macron}} + \comment{The macron accent `\={}'.} +\endsetslot + +\setslot{\lc{Dotaccent}{dotaccent}} + \comment{The dot accent `\.{}'.} +\endsetslot + +\setslot{\lc{Cedilla}{cedilla}} + \comment{The cedilla accent `\c{}'.} +\endsetslot + +\setslot{\lc{Ogonek}{ogonek}} + \comment{The ogonek accent `\k{}'.} +\endsetslot + +\setslot{CYRpalochka} + \comment{Cyrillic letter palochka `\CYRpalochka'.} +\endsetslot + +\setslot{angleleft} + \comment{Left-pointing (cyrillic) angle bracket `\cyrlangle'.} +\endsetslot + +\setslot{angleright} + \comment{Right-pointing (cyrillic) angle bracket `\cyrrangle'.} +\endsetslot + +\setslot{quotedblleft} + \comment{The English opening quote mark `\,\textquotedblleft\,'.} +\endsetslot + +\setslot{quotedblright} + \comment{The English closing quote mark `\,\textquotedblright\,'.} +\endsetslot + +\setslot{\lc{cyrFlex}{cyrflex}} + \comment{Cyrillic circumflex `\f{}'.} +\endsetslot + +\setslot{\lc{dblGrave}{dblgrave}} + \comment{Double grave accent `\C{}'.} +\endsetslot + +\setslot{\lc{cyrBreve}{cyrbreve}} + \comment{Cyrillic breve `\U{}'.} +\endsetslot + +\setslot{rangedash} + \ligature{LIG}{hyphen}{cyrdash} + \comment{The number range dash `1--9'. In a monowidth font, this + might be set as `{\tt 1{-}9}'.} +\endsetslot + +\setslot{cyrdash} + \comment{Cyrillic em dash---longer than endash, but shorter + than english emdash: `\cyrdash'.} +\endsetslot + +\setslot{compwordmark} + \comment{An invisible glyph, with zero width and depth, but the + height of lowercase letters without ascenders. + It is used to stop ligaturing in words like `shelf{}ful'.} +\endsetslot + +\setslot{perthousandzero} + \comment{A glyph which is placed after `\%' to produce a + `per-thousand', or twice to produce `per-ten-thousand'. + Your guess is as good as mine as to what this glyph should look + like in a monowidth font.} +\endsetslot + +\setslot{gravecross} + \comment{Modifier letter low grave accent `\slotexample'.} +\endsetslot + +\setslot{acutecross} + \comment{Modifier letter low acute accent `\slotexample'.} +\endsetslot + +\setslot{hcross} + \comment{Combining short stroke overlay `\slotexample'.} +\endsetslot + +\setslot{\uc{CYRDELTA}{cyrdelta}} + \comment{Cyrillic capital letter delta `\CYRDELTA'.} +\endsetslot + +\setslot{\lc{CYRDELTA}{cyrdelta}} + \comment{Cyrillic small letter delta `\cyrdelta'.} +\endsetslot + +\setslot{\uc{CYRNLHK}{cyrnlhk}} + \comment{Cyrillic capital letter en with left hook `\CYRNLHK'.} +\endsetslot + +\setslot{\lc{CYRNLHK}{cyrnlhk}} + \comment{Cyrillic small letter en with left hook `\cyrnlhk'.} +\endsetslot + +\setslot{visiblespace} + \comment{A visible space glyph `\textvisiblespace'.} +\endsetslot + +\setslot{exclam} + \comment{The exclamation mark `!'.} +\endsetslot + +\setslot{quotedbl} + \comment{The `neutral' double quotation mark `\,\textquotedbl\,', + included for use in monowidth fonts, or for setting computer + programs. Note that the inclusion of this glyph in this slot + means that \TeX\ documents which used `{\tt"}' as an + input character will no longer work.} +\endsetslot + +\setslot{numbersign} + \comment{The hash sign `\#'.} +\endsetslot + +\setslot{dollar} + \comment{The dollar sign `\$'.} +\endsetslot + +\setslot{percent} + \comment{The percent sign `\%'.} +\endsetslot + +\setslot{ampersand} + \comment{The ampersand sign `\&'.} +\endsetslot + +\setslot{quoteright} + \ligature{LIG}{quoteright}{quotedblright} + \comment{The English closing single quote mark `\,\textquoteright\,'.} +\endsetslot + +\setslot{parenleft} + \comment{The opening parenthesis `('.} +\endsetslot + +\setslot{parenright} + \comment{The closing parenthesis `)'.} +\endsetslot + +\setslot{asterisk} + \comment{The raised asterisk `*'.} +\endsetslot + +\setslot{plus} + \comment{The addition sign `+'.} +\endsetslot + +\setslot{comma} + \ligature{LIG}{comma}{quotedblbase} + \comment{The comma `,'.} +\endsetslot + +\setslot{hyphen} + \ligature{LIG}{hyphen}{rangedash} + \ligature{LIG}{hyphenchar}{hyphenchar} + \comment{The hyphen `-'.} +\endsetslot + +\setslot{period} + \comment{The period `.'.} +\endsetslot + +\setslot{slash} + \comment{The forward oblique `/'.} +\endsetslot + +\setslot{\digit{zero}} + \comment{The number `0'. This (and all the other numerals) may be + old style or ranging digits.} +\endsetslot + +\setslot{\digit{one}} + \comment{The number `1'.} +\endsetslot + +\setslot{\digit{two}} + \comment{The number `2'.} +\endsetslot + +\setslot{\digit{three}} + \comment{The number `3'.} +\endsetslot + +\setslot{\digit{four}} + \comment{The number `4'.} +\endsetslot + +\setslot{\digit{five}} + \comment{The number `5'.} +\endsetslot + +\setslot{\digit{six}} + \comment{The number `6'.} +\endsetslot + +\setslot{\digit{seven}} + \comment{The number `7'.} +\endsetslot + +\setslot{\digit{eight}} + \comment{The number `8'.} +\endsetslot + +\setslot{\digit{nine}} + \comment{The number `9'.} +\endsetslot + +\setslot{colon} + \comment{The colon punctuation mark `:'.} +\endsetslot + +\setslot{semicolon} + \comment{The semi-colon punctuation mark `;'.} +\endsetslot + +\setslot{less} + \ligature{LIG}{less}{guillemotleft} + \comment{The less-than sign `\textless'.} +\endsetslot + +\setslot{equal} + \comment{The equals sign `='.} +\endsetslot + +\setslot{greater} + \ligature{LIG}{greater}{guillemotright} + \comment{The greater-than sign `\textgreater'.} +\endsetslot + +\setslot{question} + \comment{The question mark `?'.} +\endsetslot + +\setslot{at} + \comment{The at sign `@'.} +\endsetslot + +\setslot{\uc{CYRAE}{cyrae}} + \comment{Cyrillic capital ligature a ie `\CYRAE'.} +\endsetslot + +\setslot{\uc{CYRDJE}{cyrdje}} + \comment{Cyrillic capital letter dje `\CYRDJE'.} +\endsetslot + +\setslot{\uc{CYRTSHE}{cyrtshe}} + \comment{Cyrillic capital letter tshe `\CYRTSHE'.} +\endsetslot + +\setslot{\uc{CYRABHCH}{cyrabhch}} + \comment{Cyrillic capital letter abkhasian che `\CYRABHCH'.} +\endsetslot + +\setslot{\uc{CYRABHCHDSC}{cyrabhchdsc}} + \comment{Cyrillic capital letter abkhasian che with descender `\CYRABHCHDSC'.} +\endsetslot + +\setslot{\uc{CYRKVCRS}{cyrkvcrs}} + \comment{Cyrillic capital letter ka with vertical stroke `\CYRKVCRS'.} +\endsetslot + +\setslot{\uc{CYRKHCRS}{cyrkhcrs}} + \comment{Cyrillic capital letter ka with stroke `\CYRKHCRS'.} +\endsetslot + +\setslot{\uc{CYRLDSC}{cyrldsc}} + \comment{Cyrillic capital letter el with descender `\CYRLDSC'.} +\endsetslot + +\setslot{\uc{CYRII}{cyrii}} + \comment{Cyrillic capital letter byelorussian-ukrainian i `\CYRII'.} +\endsetslot + +\setslot{\uc{CYRJE}{cyrje}} + \comment{Cyrillic capital letter je `\CYRJE'.} +\endsetslot + +\setslot{\uc{CYRLJE}{cyrlje}} + \comment{Cyrillic capital letter lje `\CYRLJE'.} +\endsetslot + +\setslot{\uc{CYRMDSC}{cyrmdsc}} + \comment{Cyrillic capital letter em with descender `\CYRMDSC'.} +\endsetslot + +\setslot{\uc{CYRNJE}{cyrnje}} + \comment{Cyrillic capital letter nje `\CYRNJE'.} +\endsetslot + +\setslot{\uc{CYRABHHA}{cyrabhha}} + \comment{Cyrillic capital letter abkhasian ha `\CYRABHHA'.} +\endsetslot + +\setslot{\uc{CYRPHK}{cyrphk}} + \comment{Cyrillic capital letter pe with middle hook `\CYRPHK'.} +\endsetslot + +\setslot{\uc{CYRRDSC}{cyrrdsc}} + \comment{Cyrillic capital letter er with descender `\CYRRDSC'.} +\endsetslot + +\setslot{\uc{CYRQ}{cyrq}} + \comment{Cyrillic capital letter q `\CYRQ'.} +\endsetslot + +\setslot{\uc{CYRTDSC}{cyrtdsc}} + \comment{Cyrillic capital letter te with descender `\CYRTDSC'.} +\endsetslot + +\setslot{\uc{CYRDZE}{cyrdze}} + \comment{Cyrillic capital letter dze `\CYRDZE'.} +\endsetslot + +\setslot{\uc{CYRTETSE}{cyrtetse}} + \comment{Cyrillic capital ligature te tse `\CYRTETSE'.} +\endsetslot + +\setslot{\uc{CYRDZHE}{cyrdzhe}} + \comment{Cyrillic capital letter dzhe `\CYRDZHE'.} +\endsetslot + +\setslot{\uc{CYRCHVCRS}{cyrchvcrs}} + \comment{Cyrillic capital letter che with vertical stroke `\CYRCHVCRS'.} +\endsetslot + +\setslot{\uc{CYRW}{cyrw}} + \comment{Cyrillic capital letter w `\CYRW'.} +\endsetslot + +\setslot{\uc{CYRYAT}{cyryat}} + \comment{Cyrillic capital letter yat `\CYRYAT'.} +\endsetslot + +\setslot{\uc{CYRBYUS}{cyrbyus}} + \comment{Cyrillic capital letter big yus `\CYRBYUS'.} +\endsetslot + +\setslot{\uc{CYRIZH}{cyrizh}} + \comment{Cyrillic capital letter izhitsa `\CYRIZH'.} +\endsetslot + +\setslot{bracketleft} + \comment{The opening square bracket `['.} +\endsetslot + +\setslot{backslash} + \comment{The backwards oblique `\textbackslash'.} +\endsetslot + +\setslot{bracketright} + \comment{The closing square bracket `]'.} +\endsetslot + +\setslot{asciicircum} + \comment{The ASCII upward-pointing arrow head `\textasciicircum'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{underscore} + \comment{The ASCII underline character `\textunderscore', usually + set on the baseline. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{quoteleft} + \ligature{LIG}{quoteleft}{quotedblleft} + \comment{The English opening single quote mark `\,\textquoteleft\,'.} +\endsetslot + +\setslot{\lc{CYRAE}{cyrae}} + \comment{Cyrillic small ligature a ie `\cyrae'.} +\endsetslot + +\setslot{\lc{CYRDJE}{cyrdje}} + \comment{Cyrillic small letter dje `\cyrdje'.} +\endsetslot + +\setslot{\lc{CYRTSHE}{cyrtshe}} + \comment{Cyrillic small letter tshe `\cyrtshe'.} +\endsetslot + +\setslot{\lc{CYRABHCH}{cyrabhch}} + \comment{Cyrillic small letter abkhasian che `\cyrabhch'.} +\endsetslot + +\setslot{\lc{CYRABHCHDSC}{cyrabhchdsc}} + \comment{Cyrillic small letter abkhasian che with descender `\cyrabhchdsc'.} +\endsetslot + +\setslot{\lc{CYRKVCRS}{cyrkvcrs}} + \comment{Cyrillic small letter ka with vertical stroke `\cyrkvcrs'.} +\endsetslot + +\setslot{\lc{CYRKHCRS}{cyrkhcrs}} + \comment{Cyrillic small letter ka with stroke `\cyrkhcrs'.} +\endsetslot + +\setslot{\lc{CYRLDSC}{cyrldsc}} + \comment{Cyrillic small letter el with descender `\cyrldsc'.} +\endsetslot + +\setslot{\lc{CYRII}{cyrii}} + \comment{Cyrillic small letter byelorussian-ukrainian i `\cyrii'.} +\endsetslot + +\setslot{\lc{CYRJE}{cyrje}} + \comment{Cyrillic small letter je `\cyrje'.} +\endsetslot + +\setslot{\lc{CYRLJE}{cyrlje}} + \comment{Cyrillic small letter lje `\cyrlje'.} +\endsetslot + +\setslot{\lc{CYRMDSC}{cyrmdsc}} + \comment{Cyrillic small letter em with descender `\cyrmdsc'.} +\endsetslot + +\setslot{\lc{CYRNJE}{cyrnje}} + \comment{Cyrillic small letter nje `\cyrnje'.} +\endsetslot + +\setslot{\lc{CYRABHHA}{cyrabhha}} + \comment{Cyrillic small letter abkhasian ha `\cyrabhha'.} +\endsetslot + +\setslot{\lc{CYRPHK}{cyrphk}} + \comment{Cyrillic small letter pe with middle hook `\cyrphk'.} +\endsetslot + +\setslot{\lc{CYRRDSC}{cyrrdsc}} + \comment{Cyrillic small letter er with descender `\cyrrdsc'.} +\endsetslot + +\setslot{\lc{CYRQ}{cyrq}} + \comment{Cyrillic small letter q `\cyrq'.} +\endsetslot + +\setslot{\lc{CYRTDSC}{cyrtdsc}} + \comment{Cyrillic small letter te with descender `\cyrtdsc'.} +\endsetslot + +\setslot{\lc{CYRDZE}{cyrdze}} + \comment{Cyrillic small letter dze `\cyrdze'.} +\endsetslot + +\setslot{\lc{CYRTETSE}{cyrtetse}} + \comment{Cyrillic small ligature te tse `\cyrtetse'.} +\endsetslot + +\setslot{\lc{CYRDZHE}{cyrdzhe}} + \comment{Cyrillic small letter dzhe `\cyrdzhe'.} +\endsetslot + +\setslot{\lc{CYRCHVCRS}{cyrchvcrs}} + \comment{Cyrillic small letter che with vertical stroke `\cyrchvcrs'.} +\endsetslot + +\setslot{\lc{CYRW}{cyrw}} + \comment{Cyrillic small letter w `\cyrw'.} +\endsetslot + +\setslot{\lc{CYRYAT}{cyryat}} + \comment{Cyrillic small letter yat `\cyryat'.} +\endsetslot + +\setslot{\lc{CYRBYUS}{cyrbyus}} + \comment{Cyrillic small letter big yus `\cyrbyus'.} +\endsetslot + +\setslot{\lc{CYRIZH}{cyrizh}} + \comment{Cyrillic small letter izhitsa `\cyrizh'.} +\endsetslot + +\setslot{braceleft} + \comment{The opening curly brace `\textbraceleft'.} +\endsetslot + +\setslot{bar} + \comment{The ASCII vertical bar `\textbar'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{braceright} + \comment{The closing curly brace `\textbraceright'.} +\endsetslot + +\setslot{asciitilde} + \comment{The ASCII tilde `\textasciitilde'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{hyphenchar} + \comment{The glyph used for hyphenation in this font, which will + almost always be the same as `hyphen'.} +\endsetslot + +\setslot{\uc{CYRGUP}{cyrgup}} + \comment{Cyrillic capital letter ghe with upturn `\CYRGUP'.} +\endsetslot + +\setslot{\uc{CYRGHCRS}{cyrghcrs}} + \comment{Cyrillic capital letter ghe with stroke `\CYRGHCRS'.} +\endsetslot + +\setslot{\uc{CYRGDSC}{cyrgdsc}} + \comment{Cyrillic capital letter ghe with descender `\CYRGDSC'.} +\endsetslot + +\setslot{\uc{CYRGHK}{cyrghk}} + \comment{Cyrillic capital letter ghe with middle hook `\CYRGHK'.} +\endsetslot + +\setslot{\uc{CYRSHHA}{cyrshha}} + \comment{Cyrillic capital letter shha `\CYRSHHA'.} +\endsetslot + +\setslot{\uc{CYRZHDSC}{cyrzhdsc}} + \comment{Cyrillic capital letter zhe with descender `\CYRZHDSC'.} +\endsetslot + +\setslot{\uc{CYRZDSC}{cyrzdsc}} + \comment{Cyrillic capital letter ze with descender `\CYRZDSC'.} +\endsetslot + +\setslot{\uc{CYRABHDZE}{cyrabhdze}} + \comment{Cyrillic capital letter abkhasian dze `\CYRABHDZE'.} +\endsetslot + +\setslot{\uc{CYRYI}{cyryi}} + \comment{Cyrillic capital letter yi `\CYRYI'.} +\endsetslot + +\setslot{\uc{CYRKDSC}{cyrkdsc}} + \comment{Cyrillic capital letter ka with descender `\CYRKDSC'.} +\endsetslot + +\setslot{\uc{CYRKBEAK}{cyrkbeak}} + \comment{Cyrillic capital letter bashkir ka `\CYRKBEAK'.} +\endsetslot + +\setslot{\uc{CYRKHK}{cyrkhk}} + \comment{Cyrillic capital letter ka with hook `\CYRKHK'.} +\endsetslot + +\setslot{\uc{CYRLHK}{cyrlhk}} + \comment{Cyrillic capital letter el with hook `\CYRLHK'.} +\endsetslot + +\setslot{\uc{CYRNDSC}{cyrndsc}} + \comment{Cyrillic capital letter en with descender `\CYRNDSC'.} +\endsetslot + +\setslot{\uc{CYRNG}{cyrng}} + \comment{Cyrillic capital ligature en ghe `\CYRNG'.} +\endsetslot + +\setslot{\uc{CYRNHK}{cyrnhk}} + \comment{Cyrillic capital letter en with hook `\CYRNHK'.} +\endsetslot + +\setslot{\uc{CYROTLD}{cyrotld}} + \comment{Cyrillic capital letter barred o `\CYROTLD'.} +\endsetslot + +\setslot{\uc{CYRSDSC}{cyrsdsc}} + \comment{Cyrillic capital letter es with descender `\CYRSDSC'.} +\endsetslot + +\setslot{\uc{CYRUSHRT}{cyrushrt}} + \comment{Cyrillic capital letter short u `\CYRUSHRT'.} +\endsetslot + +\setslot{\uc{CYRY}{cyry}} + \comment{Cyrillic capital letter straight u `\CYRY'.} +\endsetslot + +\setslot{\uc{CYRYHCRS}{cyryhcrs}} + \comment{Cyrillic capital letter straight u with stroke `\CYRYHCRS'.} +\endsetslot + +\setslot{\uc{CYRHDSC}{cyrhdsc}} + \comment{Cyrillic capital letter ha with descender `\CYRHDSC'.} +\endsetslot + +\setslot{\uc{CYRHHK}{cyrhhk}} + \comment{Cyrillic capital letter ha with hook `\CYRHHK'.} +\endsetslot + +\setslot{\uc{CYRCHLDSC}{cyrchldsc}} + \comment{Cyrillic capital letter khakassian che `\CYRCHLDSC'.} +\endsetslot + +\setslot{\uc{CYRCHRDSC}{cyrchrdsc}} + \comment{Cyrillic capital letter che with descender `\CYRCHRDSC'.} +\endsetslot + +\setslot{\uc{CYRIE}{cyrie}} + \comment{Cyrillic capital letter ukrainian ie `\CYRIE'.} +\endsetslot + +\setslot{\uc{CYRSCHWA}{cyrschwa}} + \comment{Cyrillic capital letter schwa `\CYRSCHWA'.} +\endsetslot + +\setslot{\uc{CYREPS}{cyreps}} + \comment{Cyrillic capital letter epsilon `\CYREPS'.} +\endsetslot + +\setslot{\uc{CYRYO}{cyryo}} + \comment{Cyrillic capital letter io `\CYRYO'.} +\endsetslot + +\setslot{numero} + \comment{The numero sign `\textnumero', similar to the letter `N' + with a raised `o', unavailable in most PostScript fonts.} +\endsetslot + +\setslot{currency} + \comment{The international currency sign, `\textcurrency'.} +\endsetslot + +\setslot{section} + \comment{The section mark `\textsection'.} +\endsetslot + +\setslot{\lc{CYRGUP}{cyrgup}} + \comment{Cyrillic small letter ghe with upturn `\cyrgup'.} +\endsetslot + +\setslot{\lc{CYRGHCRS}{cyrghcrs}} + \comment{Cyrillic small letter ghe with stroke `\cyrghcrs'.} +\endsetslot + +\setslot{\lc{CYRGDSC}{cyrgdsc}} + \comment{Cyrillic small letter ghe with descender `\cyrgdsc'.} +\endsetslot + +\setslot{\lc{CYRGHK}{cyrghk}} + \comment{Cyrillic small letter ghe with middle hook `\cyrghk'.} +\endsetslot + +\setslot{\lc{CYRSHHA}{cyrshha}} + \comment{Cyrillic small letter shha `\cyrshha'.} +\endsetslot + +\setslot{\lc{CYRZHDSC}{cyrzhdsc}} + \comment{Cyrillic small letter zhe with descender `\cyrzhdsc'.} +\endsetslot + +\setslot{\lc{CYRZDSC}{cyrzdsc}} + \comment{Cyrillic small letter ze with descender `\cyrzdsc'.} +\endsetslot + +\setslot{\lc{CYRABHDZE}{cyrabhdze}} + \comment{Cyrillic small letter abkhasian dze `\cyrabhdze'.} +\endsetslot + +\setslot{\lc{CYRYI}{cyryi}} + \comment{Cyrillic small letter yi `\cyryi'.} +\endsetslot + +\setslot{\lc{CYRKDSC}{cyrkdsc}} + \comment{Cyrillic small letter ka with descender `\cyrkdsc'.} +\endsetslot + +\setslot{\lc{CYRKBEAK}{cyrkbeak}} + \comment{Cyrillic small letter bashkir ka `\cyrkbeak'.} +\endsetslot + +\setslot{\lc{CYRKHK}{cyrkhk}} + \comment{Cyrillic small letter ka with hook `\cyrkhk'.} +\endsetslot + +\setslot{\lc{CYRLHK}{cyrlhk}} + \comment{Cyrillic small letter el with hook `\cyrlhk'.} +\endsetslot + +\setslot{\lc{CYRNDSC}{cyrndsc}} + \comment{Cyrillic small letter en with descender `\cyrndsc'.} +\endsetslot + +\setslot{\lc{CYRNG}{cyrng}} + \comment{Cyrillic small ligature en ghe `\cyrng'.} +\endsetslot + +\setslot{\lc{CYRNHK}{cyrnhk}} + \comment{Cyrillic small letter en with hook `\cyrnhk'.} +\endsetslot + +\setslot{\lc{CYROTLD}{cyrotld}} + \comment{Cyrillic small letter barred o `\cyrotld'.} +\endsetslot + +\setslot{\lc{CYRSDSC}{cyrsdsc}} + \comment{Cyrillic small letter es with descender `\cyrsdsc'.} +\endsetslot + +\setslot{\lc{CYRUSHRT}{cyrushrt}} + \comment{Cyrillic small letter short u `\cyrushrt'.} +\endsetslot + +\setslot{\lc{CYRY}{cyry}} + \comment{Cyrillic small letter straight u `\cyry'.} +\endsetslot + +\setslot{\lc{CYRYHCRS}{cyryhcrs}} + \comment{Cyrillic small letter straight u with stroke `\cyryhcrs'.} +\endsetslot + +\setslot{\lc{CYRHDSC}{cyrhdsc}} + \comment{Cyrillic small letter ha with descender `\cyrhdsc'.} +\endsetslot + +\setslot{\lc{CYRHHK}{cyrhhk}} + \comment{Cyrillic small letter ha with hook `\cyrhhk'.} +\endsetslot + +\setslot{\lc{CYRCHLDSC}{cyrchldsc}} + \comment{Cyrillic small letter khakassian che `\cyrchldsc'.} +\endsetslot + +\setslot{\lc{CYRCHRDSC}{cyrchrdsc}} + \comment{Cyrillic small letter che with descender `\cyrchrdsc'.} +\endsetslot + +\setslot{\lc{CYRIE}{cyrie}} + \comment{Cyrillic small letter ukrainian ie `\cyrie'.} +\endsetslot + +\setslot{\lc{CYRSCHWA}{cyrschwa}} + \comment{Cyrillic small letter schwa `\cyrschwa'.} +\endsetslot + +\setslot{\lc{CYREPS}{cyreps}} + \comment{Cyrillic small letter epsilon `\cyreps'.} +\endsetslot + +\setslot{\lc{CYRYO}{cyryo}} + \comment{Cyrillic small letter io `\cyryo'.} +\endsetslot + +\setslot{quotedblbase} + \comment{A German double quote mark `\quotedblbase' similar to two commas, + but with tighter letterspacing and different sidebearings.} +\endsetslot + +\setslot{guillemotleft} + \comment{A Cyrillic double opening quote mark `\guillemotleft', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{guillemotright} + \comment{A Cyrillic double closing quote mark `\guillemotright', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\uc{CYRA}{cyra}} + \comment{Cyrillic capital letter a `\CYRA'.} +\endsetslot + +\setslot{\uc{CYRB}{cyrb}} + \comment{Cyrillic capital letter be `\CYRB'.} +\endsetslot + +\setslot{\uc{CYRV}{cyrv}} + \comment{Cyrillic capital letter ve `\CYRV'.} +\endsetslot + +\setslot{\uc{CYRG}{cyrg}} + \comment{Cyrillic capital letter ghe `\CYRG'.} +\endsetslot + +\setslot{\uc{CYRD}{cyrd}} + \comment{Cyrillic capital letter de `\CYRD'.} +\endsetslot + +\setslot{\uc{CYRE}{cyre}} + \comment{Cyrillic capital letter ie `\CYRE'.} +\endsetslot + +\setslot{\uc{CYRZH}{cyrzh}} + \comment{Cyrillic capital letter zhe `\CYRZH'.} +\endsetslot + +\setslot{\uc{CYRZ}{cyrz}} + \comment{Cyrillic capital letter ze `\CYRZ'.} +\endsetslot + +\setslot{\uc{CYRI}{cyri}} + \comment{Cyrillic capital letter i `\CYRI'.} +\endsetslot + +\setslot{\uc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic capital letter short i `\CYRISHRT'.} +\endsetslot + +\setslot{\uc{CYRK}{cyrk}} + \comment{Cyrillic capital letter ka `\CYRK'.} +\endsetslot + +\setslot{\uc{CYRL}{cyrl}} + \comment{Cyrillic capital letter el `\CYRL'.} +\endsetslot + +\setslot{\uc{CYRM}{cyrm}} + \comment{Cyrillic capital letter em `\CYRM'.} +\endsetslot + +\setslot{\uc{CYRN}{cyrn}} + \comment{Cyrillic capital letter en `\CYRN'.} +\endsetslot + +\setslot{\uc{CYRO}{cyro}} + \comment{Cyrillic capital letter o `\CYRO'.} +\endsetslot + +\setslot{\uc{CYRP}{cyrp}} + \comment{Cyrillic capital letter pe `\CYRP'.} +\endsetslot + +\setslot{\uc{CYRR}{cyrr}} + \comment{Cyrillic capital letter er `\CYRR'.} +\endsetslot + +\setslot{\uc{CYRS}{cyrs}} + \comment{Cyrillic capital letter es `\CYRS'.} +\endsetslot + +\setslot{\uc{CYRT}{cyrt}} + \comment{Cyrillic capital letter te `\CYRT'.} +\endsetslot + +\setslot{\uc{CYRU}{cyru}} + \comment{Cyrillic capital letter u `\CYRU'.} +\endsetslot + +\setslot{\uc{CYRF}{cyrf}} + \comment{Cyrillic capital letter ef `\CYRF'.} +\endsetslot + +\setslot{\uc{CYRH}{cyrh}} + \comment{Cyrillic capital letter ha `\CYRH'.} +\endsetslot + +\setslot{\uc{CYRC}{cyrc}} + \comment{Cyrillic capital letter tse `\CYRC'.} +\endsetslot + +\setslot{\uc{CYRCH}{cyrch}} + \comment{Cyrillic capital letter che `\CYRCH'.} +\endsetslot + +\setslot{\uc{CYRSH}{cyrsh}} + \comment{Cyrillic capital letter sha `\CYRSH'.} +\endsetslot + +\setslot{\uc{CYRSHCH}{cyrshch}} + \comment{Cyrillic capital letter shcha `\CYRSHCH'.} +\endsetslot + +\setslot{\uc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic capital letter hard sign `\CYRHRDSN'.} +\endsetslot + +\setslot{\uc{CYRERY}{cyrery}} + \comment{Cyrillic capital letter yeru `\CYRERY'.} +\endsetslot + +\setslot{\uc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic capital letter soft sign `\CYRSFTSN'.} +\endsetslot + +\setslot{\uc{CYREREV}{cyrerev}} + \comment{Cyrillic capital letter e `\CYREREV'.} +\endsetslot + +\setslot{\uc{CYRYU}{cyryu}} + \comment{Cyrillic capital letter yu `\CYRYU'.} +\endsetslot + +\setslot{\uc{CYRYA}{cyrya}} + \comment{Cyrillic capital letter ya `\CYRYA'.} +\endsetslot + +\setslot{\lc{CYRA}{cyra}} + \comment{Cyrillic small letter a `\cyra'.} +\endsetslot + +\setslot{\lc{CYRB}{cyrb}} + \comment{Cyrillic small letter be `\cyrb'.} +\endsetslot + +\setslot{\lc{CYRV}{cyrv}} + \comment{Cyrillic small letter ve `\cyrv'.} +\endsetslot + +\setslot{\lc{CYRG}{cyrg}} + \comment{Cyrillic small letter ghe `\cyrg'.} +\endsetslot + +\setslot{\lc{CYRD}{cyrd}} + \comment{Cyrillic small letter de `\cyrd'.} +\endsetslot + +\setslot{\lc{CYRE}{cyre}} + \comment{Cyrillic small letter ie `\cyre'.} +\endsetslot + +\setslot{\lc{CYRZH}{cyrzh}} + \comment{Cyrillic small letter zhe `\cyrzh'.} +\endsetslot + +\setslot{\lc{CYRZ}{cyrz}} + \comment{Cyrillic small letter ze `\cyrz'.} +\endsetslot + +\setslot{\lc{CYRI}{cyri}} + \comment{Cyrillic small letter i `\cyri'.} +\endsetslot + +\setslot{\lc{CYRISHRT}{cyrishrt}} + \comment{Cyrillic small letter short i `\cyrishrt'.} +\endsetslot + +\setslot{\lc{CYRK}{cyrk}} + \comment{Cyrillic small letter ka `\cyrk'.} +\endsetslot + +\setslot{\lc{CYRL}{cyrl}} + \comment{Cyrillic small letter el `\cyrl'.} +\endsetslot + +\setslot{\lc{CYRM}{cyrm}} + \comment{Cyrillic small letter em `\cyrm'.} +\endsetslot + +\setslot{\lc{CYRN}{cyrn}} + \comment{Cyrillic small letter en `\cyrn'.} +\endsetslot + +\setslot{\lc{CYRO}{cyro}} + \comment{Cyrillic small letter o `\cyro'.} +\endsetslot + +\setslot{\lc{CYRP}{cyrp}} + \comment{Cyrillic small letter pe `\cyrp'.} +\endsetslot + +\setslot{\lc{CYRR}{cyrr}} + \comment{Cyrillic small letter er `\cyrr'.} +\endsetslot + +\setslot{\lc{CYRS}{cyrs}} + \comment{Cyrillic small letter es `\cyrs'.} +\endsetslot + +\setslot{\lc{CYRT}{cyrt}} + \comment{Cyrillic small letter te `\cyrt'.} +\endsetslot + +\setslot{\lc{CYRU}{cyru}} + \comment{Cyrillic small letter u `\cyru'.} +\endsetslot + +\setslot{\lc{CYRF}{cyrf}} + \comment{Cyrillic small letter ef `\cyrf'.} +\endsetslot + +\setslot{\lc{CYRH}{cyrh}} + \comment{Cyrillic small letter ha `\cyrh'.} +\endsetslot + +\setslot{\lc{CYRC}{cyrc}} + \comment{Cyrillic small letter tse `\cyrc'.} +\endsetslot + +\setslot{\lc{CYRCH}{cyrch}} + \comment{Cyrillic small letter che `\cyrch'.} +\endsetslot + +\setslot{\lc{CYRSH}{cyrsh}} + \comment{Cyrillic small letter sha `\cyrsh'.} +\endsetslot + +\setslot{\lc{CYRSHCH}{cyrshch}} + \comment{Cyrillic small letter shcha `\cyrshch'.} +\endsetslot + +\setslot{\lc{CYRHRDSN}{cyrhrdsn}} + \comment{Cyrillic small letter hard sign `\cyrhrdsn'.} +\endsetslot + +\setslot{\lc{CYRERY}{cyrery}} + \comment{Cyrillic small letter yeru `\cyrery'.} +\endsetslot + +\setslot{\lc{CYRSFTSN}{cyrsftsn}} + \comment{Cyrillic small letter soft sign `\cyrsftsn'.} +\endsetslot + +\setslot{\lc{CYREREV}{cyrerev}} + \comment{Cyrillic small letter e `\cyrerev'.} +\endsetslot + +\setslot{\lc{CYRYU}{cyryu}} + \comment{Cyrillic small letter yu `\cyryu'.} +\endsetslot + +\setslot{\lc{CYRYA}{cyrya}} + \comment{Cyrillic small letter ya `\cyrya'.} +\endsetslot + +\endencoding +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/latinetx/8r.etx b/Master/texmf-dist/tex/fontinst/latinetx/8r.etx new file mode 100644 index 00000000000..c4592964f0f --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/8r.etx @@ -0,0 +1,1354 @@ +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = "Alan Jeffrey and Sebastian Rahtz and +%%% Constantin Kahn and Ulrik Vieth and +%%% Lars Hellstr{\"o}m and Walter Schmidt +%%% and Philipp Lehman", +%%% version = "2.0", +%%% date = "2003-02-09", +%%% time = "17:13:33 +01:00", +%%% filename = "8r.etx", +%%% email = "fontinst@tug.org", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, raw, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the 8r encoding as a TeX font encoding +%%% file, for use with the fontinst utility. +%%% It implements the TeX Base1 encoding.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== +\relax + +\documentclass[twocolumn]{article} +\usepackage[TS1,T1]{fontenc} +\usepackage{textcomp} +\usepackage{fontdoc}[2001/03/16] +\usepackage{amsfonts} + +\title{The \TeX\ Base~1 encoding vector} +\author{Alan~Jeffrey\and Sebastian~Rahtz\and Constantin~Kahn\and + Ulrik~Vieth\and Lars~Hellstr\"om\and Walter~Schmidt\and + Philipp~Lehman} +\date{9 February 2003\\Version 2.0} + +\showbranches + +\begin{document} +\maketitle + +\section{Introduction} + +This document describes the \TeX{}Base1 encoding vector, also known +as the \texttt{8r} encoding. + +\encoding + +\needsfontinstversion{1.924} + +\begincomment +\section{Default values} +\endcomment + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\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 + +\ifisint{monowidth}\then + \setint{stretchword}{0} + \setint{shrinkword}{0} + \setint{extraspace}{\int{interword}} + \setint{ligaturing}{0} +\Else + \setint{stretchword}{\scale{\int{interword}}{600}} + \setint{shrinkword}{\scale{\int{interword}}{240}} + \setint{extraspace}{\scale{\int{interword}}{240}} + \setint{ligaturing}{1} +\Fi +\setint{quad}{1000} + + +\begincomment +\section{Font parameters} +\endcomment + +\setstr{codingscheme}{TEXBASE1ENCODING} + + +\setfontdimen{1}{italicslant} % italic slant +\setfontdimen{2}{interword} % interword space +\setfontdimen{3}{stretchword} % interword stretch +\setfontdimen{4}{shrinkword} % interword shrink +\setfontdimen{5}{xheight} % x-height +\setfontdimen{6}{quad} % quad +\setfontdimen{7}{extraspace} % extra space after . + + +\begincomment +\section{The encoding} + +\subsection{The ASCII control range} + +The layout of the first 32 slots is rather arbitrary, except +that is was carefully chosen to avoid the potentially dangerous +slots 0 (NUL), 10 (LF) and 13 (CR). +\endcomment + +\nextslot{1} +\setslot{dotaccent} + \comment{The dot accent `\.{}'.} +\endsetslot + +\setslot{\lclig{FI}{fi}} + \comment{The `fi' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FL}{fl}} + \comment{The `fl' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{fraction} + \comment{The fraction slash `\textfractionsolidus'.} +\endsetslot + +\setslot{hungarumlaut} + \comment{The long Hungarian umlaut `\H{}'.} +\endsetslot + +\setslot{\uc{Lslash}{lslash}} + \comment{The letter `\L'.} +\endsetslot + +\setslot{\lc{Lslash}{lslash}} + \comment{The letter `\l'.} +\endsetslot + +\setslot{ogonek} + \comment{The ogonek accent `\k{}'.} +\endsetslot + +\setslot{ring} + \comment{The ring accent `\r{}'.} +\endsetslot + +\nextslot{11} +\setslot{breve} + \comment{The breve accent `\u{}'.} +\endsetslot + +\setslot{minus} + \comment{The subtraction sign `\textminus'.} +\endsetslot + +\nextslot{14} +\setslot{\uctop{Zcaron}{zcaron}} + \comment{The letter `\v Z'.} +\endsetslot + +\setslot{\lctop{Zcaron}{zcaron}} + \comment{The letter `\v z'.} +\endsetslot + +\setslot{caron} + \comment{The caron or h\'a\v cek accent `\v{}'.} +\endsetslot + +\setslot{\lc{dotlessI}{dotlessi}} + \comment{A dotless i `\i', used to produce accented letters such as + `\=\i'.} +\endsetslot + +\setslot{\lc{dotlessJ}{dotlessj}} + \comment{A dotless j `\j', used to produce accented letters such as + `\=\j'. Most non-\TeX\ fonts do not have this glyph.} +\endsetslot + +\setslot{\lclig{FF}{ff}} + \comment{The `ff' ligature. It should be two characters wide in a + monowidth font.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{\lc{I}{i}}{\lclig{FFI}{ffi}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FFL}{ffl}} + \Fi +\endsetslot + +\setslot{\lclig{FFI}{ffi}} + \comment{The `ffi' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFL}{ffl}} + \comment{The `ffl' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\begincomment + \begin{trivlist}\item + The following eight slots, 22--29, incorporate glyphs found in + MacRoman encoding, in no particular order. + \end{trivlist} +\endcomment + +\setslot{notequal} + \comment{The `not equal to' symbol `$\neq$'.} +\endsetslot + +\setslot{infinity} + \comment{The infinity symbol `$\infty$'.} +\endsetslot + +\setslot{lessequal} + \comment{The `less-than or equal to' symbol `$\leq$'.} +\endsetslot + +\setslot{greaterequal} + \comment{The `great-than or equal to' symbol `$\geq$'.} +\endsetslot + +\setslot{partialdiff} + \comment{The partial differential symbol `$\partial$'.} +\endsetslot + +\setslot{summation} + \comment{The $n$-ary summation symbol `$\Sigma$', similar to the greek + capital letter sigma.} +\endsetslot + +\setslot{product} + \comment{The $n$-ary product symbol `$\Pi$', similar to the greek + capital letter pi.} +\endsetslot + +\setslot{pi} + \comment{The mathematical constant `$\pi$'.} +\endsetslot + +\setslot{grave} + \comment{The grave accent `\`{}'.} +\endsetslot + +\setslot{quotesingle} + \comment{The `neutral' single quote mark `\,\textquotesingle\,', + included for use in monowidth fonts, or for setting computer + programs.} +\endsetslot + +\begincomment +\subsection{The visible ASCII range} +The following 96 slots, 32--127, are based on standard ASCII (as +interpreted in \textit{The \TeX book}). +\endcomment + +\nextslot{32} +\setslot{space} + \comment{The space character.} +\endsetslot + +\setslot{exclam} + \comment{The exclamation mark `!'.} + \ligature{LIG}{quoteleft}{exclamdown} +\endsetslot + +\setslot{quotedbl} + \comment{The `neutral' double quote mark `\,\textquotedbl\,', + included for use in monowidth fonts, or for setting computer + programs.} +\endsetslot + +\setslot{numbersign} + \comment{The hash sign `\#'.} +\endsetslot + +\setslot{dollar} + \comment{The dollar sign `\$'.} +\endsetslot + +\setslot{percent} + \comment{The percent sign `\%'.} +\endsetslot + +\setslot{ampersand} + \comment{The ampersand sign `\&'.} +\endsetslot + +\setslot{quoteright} + \comment{The English closing quote mark `\,\textquoteright\,'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{quoteright}{quotedblright} + \Fi +\endsetslot + +\setslot{parenleft} + \comment{The opening parenthesis `('.} +\endsetslot + +\setslot{parenright} + \comment{The closing parenthesis `)'.} +\endsetslot + +\setslot{asterisk} + \comment{The raised asterisk `*'.} +\endsetslot + +\setslot{plus} + \comment{The addition sign `+'.} +\endsetslot + +\setslot{comma} + \comment{The comma `,'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{comma}{quotedblbase} + \Fi +\endsetslot + +\setslot{hyphen} + \comment{The hyphen `-'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{hyphen}{endash} + \Fi +\endsetslot + +\setslot{period} + \comment{The period `.'.} +\endsetslot + +\setslot{slash} + \comment{The forward oblique `/'.} +\endsetslot + +\setslot{\digit{zero}} + \comment{The number `0'. This (and all the other numerals) may be + old style or ranging digits.} +\endsetslot + +\setslot{\digit{one}} + \comment{The number `1'.} +\endsetslot + +\setslot{\digit{two}} + \comment{The number `2'.} +\endsetslot + +\setslot{\digit{three}} + \comment{The number `3'.} +\endsetslot + +\setslot{\digit{four}} + \comment{The number `4'.} +\endsetslot + +\setslot{\digit{five}} + \comment{The number `5'.} +\endsetslot + +\setslot{\digit{six}} + \comment{The number `6'.} +\endsetslot + +\setslot{\digit{seven}} + \comment{The number `7'.} +\endsetslot + +\setslot{\digit{eight}} + \comment{The number `8'.} +\endsetslot + +\setslot{\digit{nine}} + \comment{The number `9'.} +\endsetslot + +\setslot{colon} + \comment{The colon `:'.} +\endsetslot + +\setslot{semicolon} + \comment{The semi-colon `;'.} +\endsetslot + +\setslot{less} + \comment{The less-than sign `\textless'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{less}{guillemotleft} + \Fi +\endsetslot + +\setslot{equal} + \comment{The equals sign `='.} +\endsetslot + +\setslot{greater} + \comment{The greater-than sign `\textgreater'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{greater}{guillemotright} + \Fi +\endsetslot + +\setslot{question} + \comment{The question mark `?'.} + \ligature{LIG}{quoteleft}{questiondown} +\endsetslot + +\setslot{at} + \comment{The at sign `@'.} +\endsetslot + +\setslot{\uc{A}{a}} + \comment{The letter `A'.} +\endsetslot + +\setslot{\uc{B}{b}} + \comment{The letter `B'.} +\endsetslot + +\setslot{\uc{C}{c}} + \comment{The letter `C'.} +\endsetslot + +\setslot{\uc{D}{d}} + \comment{The letter `D'.} +\endsetslot + +\setslot{\uc{E}{e}} + \comment{The letter `E'.} +\endsetslot + +\setslot{\uc{F}{f}} + \comment{The letter `F'.} +\endsetslot + +\setslot{\uc{G}{g}} + \comment{The letter `G'.} +\endsetslot + +\setslot{\uc{H}{h}} + \comment{The letter `H'.} +\endsetslot + +\setslot{\uc{I}{i}} + \comment{The letter `I'.} +\endsetslot + +\setslot{\uc{J}{j}} + \comment{The letter `J'.} +\endsetslot + +\setslot{\uc{K}{k}} + \comment{The letter `K'.} +\endsetslot + +\setslot{\uc{L}{l}} + \comment{The letter `L'.} +\endsetslot + +\setslot{\uc{M}{m}} + \comment{The letter `M'.} +\endsetslot + +\setslot{\uc{N}{n}} + \comment{The letter `N'.} +\endsetslot + +\setslot{\uc{O}{o}} + \comment{The letter `O'.} +\endsetslot + +\setslot{\uc{P}{p}} + \comment{The letter `P'.} +\endsetslot + +\setslot{\uc{Q}{q}} + \comment{The letter `Q'.} +\endsetslot + +\setslot{\uc{R}{r}} + \comment{The letter `R'.} +\endsetslot + +\setslot{\uc{S}{s}} + \comment{The letter `S'.} +\endsetslot + +\setslot{\uc{T}{t}} + \comment{The letter `T'.} +\endsetslot + +\setslot{\uc{U}{u}} + \comment{The letter `U'.} +\endsetslot + +\setslot{\uc{V}{v}} + \comment{The letter `V'.} +\endsetslot + +\setslot{\uc{W}{w}} + \comment{The letter `W'.} +\endsetslot + +\setslot{\uc{X}{x}} + \comment{The letter `X'.} +\endsetslot + +\setslot{\uc{Y}{y}} + \comment{The letter `Y'.} +\endsetslot + +\setslot{\uc{Z}{z}} + \comment{The letter `Z'.} +\endsetslot + +\setslot{bracketleft} + \comment{The opening square bracket `['.} +\endsetslot + +\setslot{backslash} + \comment{The backwards oblique `\textbackslash'.} +\endsetslot + +\setslot{bracketright} + \comment{The closing square bracket `]'.} +\endsetslot + +\setslot{asciicircum} + \comment{The ASCII upward-pointing arrow head `\textasciicircum'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{underscore} + \comment{The ASCII underline character `\textunderscore', usually + set on the baseline. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{quoteleft} + \comment{The English opening single quote mark `\,\textquoteleft\,'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{quoteleft}{quotedblleft} + \Fi +\endsetslot + +\setslot{\lc{A}{a}} + \comment{The letter `a'.} +\endsetslot + +\setslot{\lc{B}{b}} + \comment{The letter `b'.} +\endsetslot + +\setslot{\lc{C}{c}} + \comment{The letter `c'.} +\endsetslot + +\setslot{\lc{D}{d}} + \comment{The letter `d'.} +\endsetslot + +\setslot{\lc{E}{e}} + \comment{The letter `e'.} +\endsetslot + +\setslot{\lc{F}{f}} + \comment{The letter `f'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{\lc{I}{i}}{\lclig{FI}{fi}} + \ligature{LIG}{\lc{F}{f}}{\lclig{FF}{ff}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FL}{fl}} + \Fi +\endsetslot + +\setslot{\lc{G}{g}} + \comment{The letter `g'.} +\endsetslot + +\setslot{\lc{H}{h}} + \comment{The letter `h'.} +\endsetslot + +\setslot{\lc{I}{i}} + \comment{The letter `i'.} +\endsetslot + +\setslot{\lc{J}{j}} + \comment{The letter `j'.} +\endsetslot + +\setslot{\lc{K}{k}} + \comment{The letter `k'.} +\endsetslot + +\setslot{\lc{L}{l}} + \comment{The letter `l'.} +\endsetslot + +\setslot{\lc{M}{m}} + \comment{The letter `m'.} +\endsetslot + +\setslot{\lc{N}{n}} + \comment{The letter `n'.} +\endsetslot + +\setslot{\lc{O}{o}} + \comment{The letter `o'.} +\endsetslot + +\setslot{\lc{P}{p}} + \comment{The letter `p'.} +\endsetslot + +\setslot{\lc{Q}{q}} + \comment{The letter `q'.} +\endsetslot + +\setslot{\lc{R}{r}} + \comment{The letter `r'.} +\endsetslot + +\setslot{\lc{S}{s}} + \comment{The letter `s'.} +\endsetslot + +\setslot{\lc{T}{t}} + \comment{The letter `t'.} +\endsetslot + +\setslot{\lc{U}{u}} + \comment{The letter `u'.} +\endsetslot + +\setslot{\lc{V}{v}} + \comment{The letter `v'.} +\endsetslot + +\setslot{\lc{W}{w}} + \comment{The letter `w'.} +\endsetslot + +\setslot{\lc{X}{x}} + \comment{The letter `x'.} +\endsetslot + +\setslot{\lc{Y}{y}} + \comment{The letter `y'.} +\endsetslot + +\setslot{\lc{Z}{z}} + \comment{The letter `z'.} +\endsetslot + +\setslot{braceleft} + \comment{The opening curly brace `\textbraceleft'.} +\endsetslot + +\setslot{bar} + \comment{The ASCII vertical bar `\textbar'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{braceright} + \comment{The closing curly brace `\textbraceright'.} +\endsetslot + +\setslot{asciitilde} + \comment{The ASCII tilde `\textasciitilde'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\begincomment +\subsection{The Windows ANSI range} +The following 32 slots, 128--159, are mostly based on +Windows ANSI. Slots 129, 141--143, and 157--158 incorporate glyphs +found in MacRoman encoding, in no particular order. +\endcomment + +\nextslot{128} +\setslot{Euro} + \comment{The European currency sign `\texteuro'.} +\endsetslot + +\setslot{integral} + \comment{The integral symbol.} +\endsetslot + +\setslot{quotesinglbase} + \comment{A German single quote mark `\quotesinglbase' similar to a comma, + but with different sidebearings.} +\endsetslot + +\setslot{florin} + \comment{The florin sign, similar to an italic letter `\textflorin'.} +\endsetslot + +\setslot{quotedblbase} + \comment{A German double quote mark `\quotedblbase' similar to two commas, + but with tighter letterspacing and different sidebearings.} +\endsetslot + +\setslot{ellipsis} + \comment{The ellipsis `\textellipsis'.} +\endsetslot + +\setslot{dagger} + \comment{The single dagger `\textdagger'.} +\endsetslot + +\setslot{daggerdbl} + \comment{The double dagger `\textdaggerdbl'.} +\endsetslot + +\setslot{circumflex} + \comment{The circumflex accent `\^{}'.} +\endsetslot + +\setslot{perthousand} + \comment{The perthousand sign `\textperthousand', + similar to `\%' with an extra zero.} +\endsetslot + +\setslot{\uctop{Scaron}{scaron}} + \comment{The letter `\v S'.} +\endsetslot + +\setslot{guilsinglleft} + \comment{A French single opening quote mark `\guilsinglleft', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\uc{OE}{oe}} + \comment{The letter `\OE'. + This is a single letter, and should not be faked with `OE'.} +\endsetslot + +\setslot{Omega} + \comment{The greek capital letter omega, the Ohm sign `\textohm'.} +\endsetslot + +\setslot{radical} + \comment{The radical sign `\textsurd'.} +\endsetslot + +\setslot{approxequal} + \comment{The `approximately equal to' symbol `$\approx$'.} +\endsetslot + +\iffalse +\nextslot{145} +\setslot{quoteleft-unused} + \comment{The English opening single quote mark `\,\textquoteleft\,'.} +\endsetslot + +\setslot{quoteright-unused} + \comment{The English closing single quote mark `\,\textquoteright\,'.} +\endsetslot +\fi + +\nextslot{147} +\setslot{quotedblleft} + \comment{The English opening double quote mark `\,\textquotedblleft\,'.} +\endsetslot + +\setslot{quotedblright} + \comment{The English closing double quote mark `\,\textquotedblright\,'.} +\endsetslot + +\setslot{bullet} + \comment{The centered bullet `\textbullet'.} +\endsetslot + +\setslot{endash} + \comment{The en-dash `\textendash'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{hyphen}{emdash} + \Fi +\endsetslot + +\setslot{emdash} + \comment{The em-dash `\textemdash'.} +\endsetslot + +\setslot{tilde} + \comment{The tilde accent `\~{}'.} +\endsetslot + +\setslot{trademark} + \comment{The trademark sign, similar to the raised letters `TM'.} +\endsetslot + +\setslot{\lctop{Scaron}{scaron}} + \comment{The letter `\v s'.} +\endsetslot + +\setslot{guilsinglright} + \comment{A French single closing quote mark `\guilsinglright', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\lc{OE}{oe}} + \comment{The letter `\oe'. + This is a single letter, and should not be faked with `oe'.} +\endsetslot + +\setslot{Delta} + \comment{The forward difference symbol `$\Delta$' similar to the + greek capital letter delta.} +\endsetslot + +\setslot{lozenge} + \comment{The lozenge symbol `$\lozenge$'.} +\endsetslot + +\setslot{\uctop{Ydieresis}{ydieresis}} + \comment{The letter `\"Y'.} +\endsetslot + +\begincomment +\subsection{The low ISO latin 1 range} +The following 32 slots, 160--191, are based on ISO Latin~1, +which is identical to Windows ANSI in this plane. +\endcomment + +% % This is commented out since the \texttt{8r.enc} encoding vector +% % does not (at least not currently) place any glyph in this slot. +% +% \ifdirect +% \nextslot{160} +% \setslot{space} +% \comment{The (non-breaking) space character.} +% \endsetslot +% \Fi + +\nextslot{161} +\setslot{exclamdown} + \comment{The Spanish punctuation mark `!`'.} +\endsetslot + +\setslot{cent} + \comment{The cent sign `\textcent'.} +\endsetslot + +\setslot{sterling} + \comment{The British currency sign, `\textsterling'.} +\endsetslot + +\setslot{currency} + \comment{The international currency sign, `\textcurrency'.} +\endsetslot + +\setslot{yen} + \comment{The Japanese currency sign, `\textyen'.} +\endsetslot + +\setslot{brokenbar} + \comment{A broken vertical bar, `\textbrokenbar', + similar to `\textbar' with a gap through the middle.} +\endsetslot + +\setslot{section} + \comment{The section mark `\textsection'.} +\endsetslot + +\setslot{dieresis} + \comment{The umlaut or dieresis accent `\"{}'.} +\endsetslot + +\setslot{copyright} + \comment{The copyright sign `\textcopyright', + similar to a small `C' enclosed by a circle.} +\endsetslot + +\setslot{ordfeminine} + \comment{The raised letter `\textordfeminine'.} +\endsetslot + +\setslot{guillemotleft} + \comment{A French double opening quote mark `\guillemotleft', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{logicalnot} + \comment{The logical not sign `\textlnot'.} +\endsetslot + +\ifdirect + +\setslot{hyphen} + \comment{\texttt{8r.enc} puts \texttt{hyphen} in this slot as + well, because it is the position of the latin-1 ``soft + hyphen''.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{hyphen}{endash} + \Fi +\endsetslot + +\Fi + +\nextslot{174} +\setslot{registered} + \comment{The registered trademark sign `\textregistered', + similar to a small `R' enclosed by a circle.} +\endsetslot + +\setslot{macron} + \comment{The macron accent `\={}'.} +\endsetslot + +\setslot{degree} + \comment{The degree sign `\textdegree'.} +\endsetslot + +\setslot{plusminus} + \comment{The plus or minus sign `\textpm'.} +\endsetslot + +\setslot{twosuperior} + \comment{The raised digit `\texttwosuperior'.} +\endsetslot + +\setslot{threesuperior} + \comment{The raised digit `\textthreesuperior'.} +\endsetslot + +\setslot{acute} + \comment{The acute accent `\'{}'.} +\endsetslot + +\setslot{mu} + \comment{The lowercase Greek letter `\textmu', intended + for use as a prefix `micro' in physical units.} +\endsetslot + +\setslot{paragraph} + \comment{The paragraph mark `\textparagraph'.} +\endsetslot + +\setslot{periodcentered} + \comment{The centered period `\textperiodcentered'.} +\endsetslot + +\setslot{cedilla} + \comment{The cedilla accent `\c{}'.} +\endsetslot + +\setslot{onesuperior} + \comment{The raised digit `\textonesuperior'.} +\endsetslot + +\setslot{ordmasculine} + \comment{The raised letter `\textordmasculine'.} +\endsetslot + +\setslot{guillemotright} + \comment{A French double closing quote mark `\guillemotright', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{onequarter} + \comment{The fraction `\textonequarter'.} +\endsetslot + +\setslot{onehalf} + \comment{The fraction `\textonehalf'.} +\endsetslot + +\setslot{threequarters} + \comment{The fraction `\textthreequarters'.} +\endsetslot + +\setslot{questiondown} + \comment{The Spanish punctuation mark `?`'.} +\endsetslot + +\begincomment +\subsection{The high ISO latin 1 range} +The remaining 64 slots, 192--255, are again based on ISO Latin~1. +\endcomment + +\nextslot{192} +\setslot{\uctop{Agrave}{agrave}} + \comment{The letter `\`A'.} +\endsetslot + +\setslot{\uctop{Aacute}{aacute}} + \comment{The letter `\'A'.} +\endsetslot + +\setslot{\uctop{Acircumflex}{acircumflex}} + \comment{The letter `\^A'.} +\endsetslot + +\setslot{\uctop{Atilde}{atilde}} + \comment{The letter `\~A'.} +\endsetslot + +\setslot{\uctop{Adieresis}{adieresis}} + \comment{The letter `\"A'.} +\endsetslot + +\setslot{\uctop{Aring}{aring}} + \comment{The letter `\AA'.} +\endsetslot + +\setslot{\uc{AE}{ae}} + \comment{The letter `\AE'. + This is a single letter, and should not be faked with `AE'.} +\endsetslot + +\setslot{\uc{Ccedilla}{ccedilla}} + \comment{The letter `\c C'.} +\endsetslot + +\setslot{\uctop{Egrave}{egrave}} + \comment{The letter `\`E'.} +\endsetslot + +\setslot{\uctop{Eacute}{eacute}} + \comment{The letter `\'E'.} +\endsetslot + +\setslot{\uctop{Ecircumflex}{ecircumflex}} + \comment{The letter `\^E'.} +\endsetslot + +\setslot{\uctop{Edieresis}{edieresis}} + \comment{The letter `\"E'.} +\endsetslot + +\setslot{\uctop{Igrave}{igrave}} + \comment{The letter `\`I'.} +\endsetslot + +\setslot{\uctop{Iacute}{iacute}} + \comment{The letter `\'I'.} +\endsetslot + +\setslot{\uctop{Icircumflex}{icircumflex}} + \comment{The letter `\^I'.} +\endsetslot + +\setslot{\uctop{Idieresis}{idieresis}} + \comment{The letter `\"I'.} +\endsetslot + +\setslot{\uc{Eth}{eth}} + \comment{The Icelandic capital letter `Eth' similar to a `D' + with a horizontal bar through the stem. It is unavailable + in \plain\ \TeX.} +\endsetslot + +\setslot{\uctop{Ntilde}{ntilde}} + \comment{The letter `\~N'.} +\endsetslot + +\setslot{\uctop{Ograve}{ograve}} + \comment{The letter `\`O'.} +\endsetslot + +\setslot{\uctop{Oacute}{oacute}} + \comment{The letter `\'O'.} +\endsetslot + +\setslot{\uctop{Ocircumflex}{ocircumflex}} + \comment{The letter `\^O'.} +\endsetslot + +\setslot{\uctop{Otilde}{otilde}} + \comment{The letter `\~O'.} +\endsetslot + +\setslot{\uctop{Odieresis}{odieresis}} + \comment{The letter `\"O'.} +\endsetslot + +\setslot{multiply} + \comment{The multiplication sign `\texttimes'.} +\endsetslot + +\setslot{\uc{Oslash}{oslash}} + \comment{The letter `\O'.} +\endsetslot + +\setslot{\uctop{Ugrave}{ugrave}} + \comment{The letter `\`U'.} +\endsetslot + +\setslot{\uctop{Uacute}{uacute}} + \comment{The letter `\'U'.} +\endsetslot + +\setslot{\uctop{Ucircumflex}{ucircumflex}} + \comment{The letter `\^U'.} +\endsetslot + +\setslot{\uctop{Udieresis}{udieresis}} + \comment{The letter `\"U'.} +\endsetslot + +\setslot{\uctop{Yacute}{yacute}} + \comment{The letter `\'Y'.} +\endsetslot + +\setslot{\uc{Thorn}{thorn}} + \comment{The Icelandic capital letter `Thorn', similar to a `P' + with the bowl moved down. It is unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\lc{SS}{germandbls}} + \comment{The letter `\ss'.} +\endsetslot + +\setslot{\lctop{Agrave}{agrave}} + \comment{The letter `\`a'.} +\endsetslot + +\setslot{\lctop{Aacute}{aacute}} + \comment{The letter `\'a'.} +\endsetslot + +\setslot{\lctop{Acircumflex}{acircumflex}} + \comment{The letter `\^a'.} +\endsetslot + +\setslot{\lctop{Atilde}{atilde}} + \comment{The letter `\~a'.} +\endsetslot + +\setslot{\lctop{Adieresis}{adieresis}} + \comment{The letter `\"a'.} +\endsetslot + +\setslot{\lctop{Aring}{aring}} + \comment{The letter `\aa'.} +\endsetslot + +\setslot{\lc{AE}{ae}} + \comment{The letter `\ae'. + This is a single letter, and should not be faked with `ae'.} +\endsetslot + +\setslot{\lc{Ccedilla}{ccedilla}} + \comment{The letter `\c c'.} +\endsetslot + +\setslot{\lctop{Egrave}{egrave}} + \comment{The letter `\`e'.} +\endsetslot + +\setslot{\lctop{Eacute}{eacute}} + \comment{The letter `\'e'.} +\endsetslot + +\setslot{\lctop{Ecircumflex}{ecircumflex}} + \comment{The letter `\^e'.} +\endsetslot + +\setslot{\lctop{Edieresis}{edieresis}} + \comment{The letter `\"e'.} +\endsetslot + +\setslot{\lctop{Igrave}{igrave}} + \comment{The letter `\`\i'.} +\endsetslot + +\setslot{\lctop{Iacute}{iacute}} + \comment{The letter `\'\i'.} +\endsetslot + +\setslot{\lctop{Icircumflex}{icircumflex}} + \comment{The letter `\^\i'.} +\endsetslot + +\setslot{\lctop{Idieresis}{idieresis}} + \comment{The letter `\"\i'.} +\endsetslot + +\setslot{\lc{Eth}{eth}} + \comment{The Icelandic lowercase letter `eth' similar to a + `$\partial$' with an oblique bar through the stem. It is + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\lctop{Ntilde}{ntilde}} + \comment{The letter `\~n'.} +\endsetslot + +\setslot{\lctop{Ograve}{ograve}} + \comment{The letter `\`o'.} +\endsetslot + +\setslot{\lctop{Oacute}{oacute}} + \comment{The letter `\'o'.} +\endsetslot + +\setslot{\lctop{Ocircumflex}{ocircumflex}} + \comment{The letter `\^o'.} +\endsetslot + +\setslot{\lctop{Otilde}{otilde}} + \comment{The letter `\~o'.} +\endsetslot + +\setslot{\lctop{Odieresis}{odieresis}} + \comment{The letter `\"o'.} +\endsetslot + +\setslot{divide} + \comment{The division sign `\textdiv'.} +\endsetslot + +\setslot{\lc{Oslash}{oslash}} + \comment{The letter `\o'.} +\endsetslot + +\setslot{\lctop{Ugrave}{ugrave}} + \comment{The letter `\`u'.} +\endsetslot + +\setslot{\lctop{Uacute}{uacute}} + \comment{The letter `\'u'.} +\endsetslot + +\setslot{\lctop{Ucircumflex}{ucircumflex}} + \comment{The letter `\^u'.} +\endsetslot + +\setslot{\lctop{Udieresis}{udieresis}} + \comment{The letter `\"u'.} +\endsetslot + +\setslot{\lctop{Yacute}{yacute}} + \comment{The letter `\'y'.} +\endsetslot + +\setslot{\lc{Thorn}{thorn}} + \comment{The Icelandic lowercase letter `thorn', similar to a `p' + with an ascender rising from the stem. It is unavailable + in \plain\ \TeX.} +\endsetslot + +\setslot{\lctop{Ydieresis}{ydieresis}} + \comment{The letter `\"y'.} +\endsetslot + +\endencoding + + +\section{The basis for the design of this encoding} + +The idea is to have all the characters normally included in Type 1 fonts +available for typesetting. This is effectively the characters in Adobe +Standard encoding, ISO Latin 1, Windows ANSI including the \texttt{euro} +symbol, MacRoman, and some extra characters from Lucida. + +Character code assignments were made as follows: +\begin{enumerate} + \item + the Windows ANSI characters are almost all in their Windows ANSI + positions, because some Windows users cannot easily reencode the + fonts, and it makes no difference on other systems. The only + Windows ANSI characters not available are those that make no sense + for typesetting---\texttt{rubout} (127~decimal), + \texttt{nobreakspace}~(160), \texttt{softhyphen}~(173). + \texttt{quotesingle} and \texttt{grave} are moved just because + it's such an irritation not having them in TeX positions. + \item + Remaining characters are assigned arbitrarily to the lower part + of the range, avoiding 0, 10 and 13 in case we meet dumb software. + \item + Y\&Y Lucida Bright includes some extra text characters; in the + hopes that other PostScript fonts, perhaps created for public + consumption, will include them, they are included starting at 0x12. + These are \texttt{dotlessj}, \texttt{ff}, \texttt{ffi}, + \texttt{ffl}. + \item + \texttt{hyphen} appears twice for compatibility with both ASCII + and Windows. + \item + \texttt{Euro} was assigned to 128, as in Windows ANSI. + \item + Missing characters from MacRoman encoding incorporated as + follows: + \begin{center} + \small + \begin{tabular}{lrr} + \textbf{Glyph}& \textbf{MacRoman}& \textbf{TeXBase1}\\ + \texttt{notequal}& 173& 22\\ + \texttt{infinity}& 176& 23\\ + \texttt{lessequal}& 178& 24\\ + \texttt{greaterequal}& 179& 25\\ + \texttt{partialdiff}& 182& 26\\ + \texttt{summation}& 183& 27\\ + \texttt{product}& 184& 28\\ + \texttt{pi}& 185& 29\\ + \texttt{integral}& 186& 129\\ + \texttt{Omega}& 189& 141\\ + \texttt{radical}& 195& 142\\ + \texttt{approxequal}& 197& 143\\ + \texttt{Delta}& 198& 157\\ + \texttt{lozenge}& 215& 158 + \end{tabular} + \end{center} +\end{enumerate} + + + +\section{Changes} + +1995/03/19: The `\texttt{softhyphen}' is back; now called +`\texttt{alternate-hyphen}' and has \verb|\ligature| commands. In +`\texttt{hyphen}' slot \verb|\ligature| $\mapsto$ `\texttt{rangedash}' +changed to `\texttt{endash}'. (ASAJ) + +1995/04/03: Changed around the order of some characters at start +(to avoid 0, 10 and 13, and reposition \texttt{quoteleft} and +\texttt{quoteright}). (ASAJ) + +1995/08/03: Interword stretch and shrink [again!]. (ASAJ) + +1998/06/29: Major update of comments and markup; made it a +proper \LaTeXe\ document, using \texttt{T1} and \texttt{TS1} encoded +fonts for giving examples of glyphs, and added descriptions for +numerous slots. Lowercasified names of accents---removed uses of +\verb|\lc| in \verb|\setslot|s for accents. (UV) + +2002/03/11: Added `\texttt{Euro}' in slot 128. (WaS) + +2002/10/30: New symbols incorporated from MacRoman. (Philipp Lehman) + +2002/11/12: Added \verb|\showbranches| markup. Modernised setting of +fontdimens. (LH) + +2003/02/04: Introduced the \textit{ligaturing} integer for control of + whether ligatures are made. (LH) + +2003/02/09: Made use of \verb|\ifdirect| to clear up the situation + with \texttt{alternate-hyphen}. It is now included under the proper + name \texttt{hyphen}, but is ignored when reencoding. (LH) +\end{document} + diff --git a/Master/texmf-dist/tex/fontinst/latinetx/8y.etx b/Master/texmf-dist/tex/fontinst/latinetx/8y.etx new file mode 100644 index 00000000000..175da2047ec --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/8y.etx @@ -0,0 +1,1295 @@ +% Copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = "Ulrik Vieth and Lars Hellstr{\"o}m", +%%% version = "1.910", +%%% date = "2003-12-08", +%%% time = "21:21:00 +01:00", +%%% filename = "8y.etx", +%%% email = "fontinst@tug.org", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, raw, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the 8y encoding as a TeX font encoding +%%% file, for use with the fontinst utility. +%%% It implements the TeXnANSI (or LY1) encoding +%%% proposed and promoted by Y&Y.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +% Changes list at end of file. + +\documentclass[twocolumn]{article} +\usepackage[TS1,T1]{fontenc} +\usepackage{textcomp} +\usepackage{fontdoc}[2003/02/09] + +\title{The \TeX'n'ANSI encoding vector} +\author{Ulrik Vieth\and Lars Hellstr\"om} +\date{8 December 2003\\Version 1.927} + +\begin{document} +\maketitle + +\section{Introduction} + +This document describes the \TeX'n'ANSI encoding vector proposed +by Y\&Y, which is represented by the \texttt{LY1} encoding in \LaTeXe. + +It is almost identical to the \TeX{}Base1 encoding (defined in +\texttt{8r.etx}) in the range 32--126 and 161--255. It is similar +to \texttt{8r.etx} in the range 127--160, but contains additional +characters, which are stored elsewhere in \texttt{8r.etx}. + +\showbranches +\encoding + +\needsfontinstversion{1.924} + +\begincomment +\section{Default values} +\endcomment + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\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 + +\ifisint{monowidth}\then + \setint{stretchword}{0} + \setint{shrinkword}{0} + \setint{extraspace}{\int{interword}} + \setint{ligaturing}{0} +\Else + \setint{stretchword}{\scale{\int{interword}}{600}} + \setint{shrinkword}{\scale{\int{interword}}{240}} + \setint{extraspace}{\scale{\int{interword}}{240}} + \setint{ligaturing}{1} +\Fi +\setint{quad}{1000} + + +\begincomment +\section{Font parameters} +\endcomment + +\setstr{codingscheme}{TEX TYPEWRITER AND WINDOWS ANSI} + +\setfontdimen{1}{italicslant} % italic slant +\setfontdimen{2}{interword} % interword space +\setfontdimen{3}{stretchword} % interword stretch +\setfontdimen{4}{shrinkword} % interword shrink +\setfontdimen{5}{xheight} % x-height +\setfontdimen{6}{quad} % quad +\setfontdimen{7}{extraspace} % extra space after . + + +\begincomment +\section{The encoding} + +\subsection{Low ASCII control characters} + +The layout of the first 16 slots wase carefully chosen to avoid +potentially dangerous slots 0 (NUL), 9 (HT), 10 (LF) and 13 (CR). +\endcomment + +\nextslot{4} +\setslot{fraction} + \comment{The fraction slash `\textfractionsolidus'.} +\endsetslot + +\setslot{dotaccent} + \comment{The dot accent `\.{}'.} +\endsetslot + +\setslot{hungarumlaut} + \comment{The long Hungarian umlaut `\H{}'.} +\endsetslot + +\setslot{ogonek} + \comment{The ogonek accent `\k{}'.} +\endsetslot + +\setslot{\lclig{FL}{fl}} + \comment{The `fl' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\nextslot{11} +\setslot{\lclig{FF}{ff}} + \comment{The `ff' ligature. It should be two characters wide in a + monowidth font.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{\lc{I}{i}}{\lclig{FFI}{ffi}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FFL}{ffl}} + \Fi +\endsetslot + +\setslot{\lclig{FI}{fi}} + \comment{The `fi' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\nextslot{14} +\setslot{\lclig{FFI}{ffi}} + \comment{The `ffi' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFL}{ffl}} + \comment{The `ffl' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\begincomment +\subsection{The \texttt{OT1} compatibility range} +The following 16 slots share the same encoding as \texttt{OT1}. +\endcomment + +\nextslot{16} +\setslot{\lc{dotlessI}{dotlessi}} + \comment{A dotless i `\i', used to produce accented letters such as + `\=\i'.} +\endsetslot + +\setslot{\lc{dotlessJ}{dotlessj}} + \comment{A dotless j `\j', used to produce accented letters such as + `\=\j'. Most non-\TeX\ fonts do not have this glyph.} +\endsetslot + +\setslot{grave} + \comment{The grave accent `\`{}'.} +\endsetslot + +\setslot{acute} + \comment{The acute accent `\'{}'.} +\endsetslot + +\setslot{caron} + \comment{The caron or h\'a\v cek accent `\v {}'.} +\endsetslot + +\setslot{breve} + \comment{The breve accent `\u{}'.} +\endsetslot + +\setslot{macron} + \comment{The macron accent `\={}'.} +\endsetslot + +\setslot{ring} + \comment{The ring accent `\r{}'.} +\endsetslot + +\setslot{cedilla} + \comment{The cedilla accent `\c{}'.} +\endsetslot + +\ifdirect + +\setslot{\lc{SS}{germandbls}} + \comment{The letter `\ss'.} +\endsetslot + +\setslot{\lc{AE}{ae}} + \comment{The letter `\ae'. + This is a single letter, and should not be faked with `ae'.} +\endsetslot + +\setslot{\lc{OE}{oe}} + \comment{The letter `\oe'. + This is a single letter, and should not be faked with `oe'.} +\endsetslot + +\setslot{\lc{Oslash}{oslash}} + \comment{The letter `\o'.} +\endsetslot + +\setslot{\uc{AE}{ae}} + \comment{The letter `\AE'. + This is a single letter, and should not be faked with `AE'.} +\endsetslot + +\setslot{\uc{OE}{oe}} + \comment{The letter `\OE'. + This is a single letter, and should not be faked with `OE'.} +\endsetslot + +\setslot{\uc{Oslash}{oslash}} + \comment{The letter `\O'.} +\endsetslot + +\Fi + +\begincomment +\subsection{The visible ASCII range} +The following 96 slots, 32--127, are based on standard ASCII, +except that `\texttt{asciicircum}', `\texttt{asciitilde}', and the +empty slot 127 have been replaced by the `\texttt{circumflex}', +`\texttt{tilde}' and `\texttt{dieresis}' as in \texttt{OT1}. +\endcomment + +\nextslot{32} +\setslot{space} + \comment{The space character.} +\endsetslot + +\setslot{exclam} + \comment{The exclamation mark `!'.} + \ligature{LIG}{quoteleft}{exclamdown} +\endsetslot + +\setslot{quotedbl} + \comment{The `neutral' double quote mark `\,\textquotedbl\,', + included for use in monowidth fonts, or for setting computer + programs.} +\endsetslot + +\setslot{numbersign} + \comment{The hash sign `\#'.} +\endsetslot + +\setslot{dollar} + \comment{The dollar sign `\$'.} +\endsetslot + +\setslot{percent} + \comment{The percent sign `\%'.} +\endsetslot + +\setslot{ampersand} + \comment{The ampersand sign `\&'.} +\endsetslot + +\setslot{quoteright} + \comment{The English closing quote mark `\,\textquoteright\,'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{quoteright}{quotedblright} + \Fi +\endsetslot + +\setslot{parenleft} + \comment{The opening parenthesis `('.} +\endsetslot + +\setslot{parenright} + \comment{The closing parenthesis `)'.} +\endsetslot + +\setslot{asterisk} + \comment{The raised asterisk `*'.} +\endsetslot + +\setslot{plus} + \comment{The addition sign `+'.} +\endsetslot + +\setslot{comma} + \comment{The comma `,'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{comma}{quotedblbase} + \Fi +\endsetslot + +\setslot{hyphen} + \comment{The hyphen `-'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{hyphen}{endash} + \Fi +\endsetslot + +\setslot{period} + \comment{The period `.'.} +\endsetslot + +\setslot{slash} + \comment{The forward oblique `/'.} +\endsetslot + +\setslot{\digit{zero}} + \comment{The number `0'. This (and all the other numerals) may be + old style or ranging digits.} +\endsetslot + +\setslot{\digit{one}} + \comment{The number `1'.} +\endsetslot + +\setslot{\digit{two}} + \comment{The number `2'.} +\endsetslot + +\setslot{\digit{three}} + \comment{The number `3'.} +\endsetslot + +\setslot{\digit{four}} + \comment{The number `4'.} +\endsetslot + +\setslot{\digit{five}} + \comment{The number `5'.} +\endsetslot + +\setslot{\digit{six}} + \comment{The number `6'.} +\endsetslot + +\setslot{\digit{seven}} + \comment{The number `7'.} +\endsetslot + +\setslot{\digit{eight}} + \comment{The number `8'.} +\endsetslot + +\setslot{\digit{nine}} + \comment{The number `9'.} +\endsetslot + +\setslot{colon} + \comment{The colon `:'.} +\endsetslot + +\setslot{semicolon} + \comment{The semi-colon `;'.} +\endsetslot + +\setslot{less} + \comment{The less-than sign `\textless'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{less}{guillemotleft} + \Fi +\endsetslot + +\setslot{equal} + \comment{The equals sign `='.} +\endsetslot + +\setslot{greater} + \comment{The greater-than sign `\textgreater'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{greater}{guillemotright} + \Fi +\endsetslot + +\setslot{question} + \comment{The question mark `?'.} + \ligature{LIG}{quoteleft}{questiondown} +\endsetslot + +\setslot{at} + \comment{The at sign `@'.} +\endsetslot + +\setslot{\uc{A}{a}} + \comment{The letter `A'.} +\endsetslot + +\setslot{\uc{B}{b}} + \comment{The letter `B'.} +\endsetslot + +\setslot{\uc{C}{c}} + \comment{The letter `C'.} +\endsetslot + +\setslot{\uc{D}{d}} + \comment{The letter `D'.} +\endsetslot + +\setslot{\uc{E}{e}} + \comment{The letter `E'.} +\endsetslot + +\setslot{\uc{F}{f}} + \comment{The letter `F'.} +\endsetslot + +\setslot{\uc{G}{g}} + \comment{The letter `G'.} +\endsetslot + +\setslot{\uc{H}{h}} + \comment{The letter `H'.} +\endsetslot + +\setslot{\uc{I}{i}} + \comment{The letter `I'.} +\endsetslot + +\setslot{\uc{J}{j}} + \comment{The letter `J'.} +\endsetslot + +\setslot{\uc{K}{k}} + \comment{The letter `K'.} +\endsetslot + +\setslot{\uc{L}{l}} + \comment{The letter `L'.} +\endsetslot + +\setslot{\uc{M}{m}} + \comment{The letter `M'.} +\endsetslot + +\setslot{\uc{N}{n}} + \comment{The letter `N'.} +\endsetslot + +\setslot{\uc{O}{o}} + \comment{The letter `O'.} +\endsetslot + +\setslot{\uc{P}{p}} + \comment{The letter `P'.} +\endsetslot + +\setslot{\uc{Q}{q}} + \comment{The letter `Q'.} +\endsetslot + +\setslot{\uc{R}{r}} + \comment{The letter `R'.} +\endsetslot + +\setslot{\uc{S}{s}} + \comment{The letter `S'.} +\endsetslot + +\setslot{\uc{T}{t}} + \comment{The letter `T'.} +\endsetslot + +\setslot{\uc{U}{u}} + \comment{The letter `U'.} +\endsetslot + +\setslot{\uc{V}{v}} + \comment{The letter `V'.} +\endsetslot + +\setslot{\uc{W}{w}} + \comment{The letter `W'.} +\endsetslot + +\setslot{\uc{X}{x}} + \comment{The letter `X'.} +\endsetslot + +\setslot{\uc{Y}{y}} + \comment{The letter `Y'.} +\endsetslot + +\setslot{\uc{Z}{z}} + \comment{The letter `Z'.} +\endsetslot + +\setslot{bracketleft} + \comment{The opening square bracket `['.} +\endsetslot + +\setslot{backslash} + \comment{The backwards oblique `\textbackslash'.} +\endsetslot + +\setslot{bracketright} + \comment{The closing square bracket `]'.} +\endsetslot + +\setslot{circumflex} + \comment{The circumflex accent `\^{}'.} +\endsetslot + +\setslot{underscore} + \comment{The ASCII underline character `\textunderscore', usually + set on the baseline. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{quoteleft} + \comment{The English opening single quote mark `\,\textquoteleft\,'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{quoteleft}{quotedblleft} + \Fi +\endsetslot + +\setslot{\lc{A}{a}} + \comment{The letter `a'.} +\endsetslot + +\setslot{\lc{B}{b}} + \comment{The letter `b'.} +\endsetslot + +\setslot{\lc{C}{c}} + \comment{The letter `c'.} +\endsetslot + +\setslot{\lc{D}{d}} + \comment{The letter `d'.} +\endsetslot + +\setslot{\lc{E}{e}} + \comment{The letter `e'.} +\endsetslot + +\setslot{\lc{F}{f}} + \comment{The letter `f'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{\lc{I}{i}}{\lclig{FI}{fi}} + \ligature{LIG}{\lc{F}{f}}{\lclig{FF}{ff}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FL}{fl}} + \Fi +\endsetslot + +\setslot{\lc{G}{g}} + \comment{The letter `g'.} +\endsetslot + +\setslot{\lc{H}{h}} + \comment{The letter `h'.} +\endsetslot + +\setslot{\lc{I}{i}} + \comment{The letter `i'.} +\endsetslot + +\setslot{\lc{J}{j}} + \comment{The letter `j'.} +\endsetslot + +\setslot{\lc{K}{k}} + \comment{The letter `k'.} +\endsetslot + +\setslot{\lc{L}{l}} + \comment{The letter `l'.} +\endsetslot + +\setslot{\lc{M}{m}} + \comment{The letter `m'.} +\endsetslot + +\setslot{\lc{N}{n}} + \comment{The letter `n'.} +\endsetslot + +\setslot{\lc{O}{o}} + \comment{The letter `o'.} +\endsetslot + +\setslot{\lc{P}{p}} + \comment{The letter `p'.} +\endsetslot + +\setslot{\lc{Q}{q}} + \comment{The letter `q'.} +\endsetslot + +\setslot{\lc{R}{r}} + \comment{The letter `r'.} +\endsetslot + +\setslot{\lc{S}{s}} + \comment{The letter `s'.} +\endsetslot + +\setslot{\lc{T}{t}} + \comment{The letter `t'.} +\endsetslot + +\setslot{\lc{U}{u}} + \comment{The letter `u'.} +\endsetslot + +\setslot{\lc{V}{v}} + \comment{The letter `v'.} +\endsetslot + +\setslot{\lc{W}{w}} + \comment{The letter `w'.} +\endsetslot + +\setslot{\lc{X}{x}} + \comment{The letter `x'.} +\endsetslot + +\setslot{\lc{Y}{y}} + \comment{The letter `y'.} +\endsetslot + +\setslot{\lc{Z}{z}} + \comment{The letter `z'.} +\endsetslot + +\setslot{braceleft} + \comment{The opening curly brace `\textbraceleft'.} +\endsetslot + +\setslot{bar} + \comment{The ASCII vertical bar `\textbar'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{braceright} + \comment{The closing curly brace `\textbraceright'.} +\endsetslot + +\setslot{tilde} + \comment{The tilde accent `\~{}'.} +\endsetslot + +\setslot{dieresis} + \comment{The umlaut or dieresis accent `\"{}'.} +\endsetslot + +\begincomment +\subsection{The Windows ANSI range} +The following 32 slots, 128--159, are based on an extended +version of Windows ANSI. +\endcomment + +\nextslot{128} +\setslot{\uc{Lslash}{lslash}} + \comment{The letter `\L'.} +\endsetslot + +\setslot{quotesingle} + \comment{The `neutral' single quote mark `\,\textquotesingle\,', + included for use in monowidth fonts, or for setting computer + programs.} +\endsetslot + +\setslot{quotesinglbase} + \comment{A German single quote mark `\quotesinglbase' similar to a comma, + but with different sidebearings.} +\endsetslot + +\setslot{florin} + \comment{The florin sign, similar to an italic letter `\textflorin'.} +\endsetslot + +\setslot{quotedblbase} + \comment{A German double quote mark `\quotedblbase' similar to two commas, + but with tighter letterspacing and different sidebearings.} +\endsetslot + +\setslot{ellipsis} + \comment{The ellipsis `\textellipsis'.} +\endsetslot + +\setslot{dagger} + \comment{The single dagger `\textdagger'.} +\endsetslot + +\setslot{daggerdbl} + \comment{The double dagger `\textdaggerdbl'.} +\endsetslot + +\setslot{circumflex} + \comment{The circumflex accent `\^{}'.} +\endsetslot + +\setslot{perthousand} + \comment{The perthousand sign `\textperthousand', + similar to `\%' with an extra zero.} +\endsetslot + +\setslot{\uctop{Scaron}{scaron}} + \comment{The letter `\v S'.} +\endsetslot + +\setslot{guilsinglleft} + \comment{A French single opening quote mark `\guilsinglleft', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\uc{OE}{oe}} + \comment{The letter `\OE'. + This is a single letter, and should not be faked with `OE'.} +\endsetslot + +\setslot{\uctop{Zcaron}{zcaron}} + \comment{The letter `\v Z'.} +\endsetslot + +\setslot{asciicircum} + \comment{The ASCII upward-pointing arrow head `\textasciicircum'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{minus} + \comment{The subtraction sign `\textminus'.} +\endsetslot + +\setslot{\lc{Lslash}{lslash}} + \comment{The letter `\l'.} +\endsetslot + +\ifdirect + +\nextslot{145} +\setslot{quoteleft} + \comment{The English opening single quote mark `\,\textquoteleft\,'.} +\endsetslot + +\setslot{quoteright} + \comment{The English closing single quote mark `\,\textquoteright\,'.} +\endsetslot + +\Fi + +\nextslot{147} +\setslot{quotedblleft} + \comment{The English opening double quote mark `\,\textquotedblleft\,'.} +\endsetslot + +\setslot{quotedblright} + \comment{The English closing double quote mark `\,\textquotedblright\,'.} +\endsetslot + +\setslot{bullet} + \comment{The centered bullet `\textbullet'.} +\endsetslot + +\setslot{endash} + \comment{The en-dash `\textendash'.} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{hyphen}{emdash} + \Fi +\endsetslot + +\setslot{emdash} + \comment{The em-dash `\textemdash'.} +\endsetslot + +\setslot{tilde} + \comment{The tilde accent `\~{}'.} +\endsetslot + +\setslot{trademark} + \comment{The trademark sign, similar to the raised letters `TM'.} +\endsetslot + +\setslot{\lctop{Scaron}{scaron}} + \comment{The letter `\v s'.} +\endsetslot + +\setslot{guilsinglright} + \comment{A French single closing quote mark `\guilsinglright', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\lc{OE}{oe}} + \comment{The letter `\oe'. + This is a single letter, and should not be faked with `oe'.} +\endsetslot + +\setslot{\lctop{Zcaron}{zcaron}} + \comment{The letter `\v z'.} +\endsetslot + +\setslot{asciitilde} + \comment{The ASCII tilde `\textasciitilde'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{\uctop{Ydieresis}{ydieresis}} + \comment{The letter `\"Y'.} +\endsetslot + +\begincomment +\subsection{The low ISO latin 1 range} +The following 32 slots, 160--191, are based on ISO Latin~1, +which is identical to Windows ANSI in this plane. +\endcomment + +\ifdirect + +\nextslot{160} +\setslot{space} + \comment{The (non-breaking) space character.} +\endsetslot + +\Fi + +\nextslot{161} +\setslot{exclamdown} + \comment{The Spanish punctuation mark `!`'.} +\endsetslot + +\setslot{cent} + \comment{The cent sign `\textcent'.} +\endsetslot + +\setslot{sterling} + \comment{The British currency sign, `\textsterling'.} +\endsetslot + +\setslot{currency} + \comment{The international currency sign, `\textcurrency'.} +\endsetslot + +\setslot{yen} + \comment{The Japanese currency sign, `\textyen'.} +\endsetslot + +\setslot{brokenbar} + \comment{A broken vertical bar, `\textbrokenbar', + similar to `\textbar' with a gap through the middle.} +\endsetslot + +\setslot{section} + \comment{The section mark `\textsection'.} +\endsetslot + +\setslot{dieresis} + \comment{The umlaut or dieresis accent `\"{}'.} +\endsetslot + +\setslot{copyright} + \comment{The copyright sign `\textcopyright', + similar to a small `C' enclosed by a circle.} +\endsetslot + +\setslot{ordfeminine} + \comment{The raised letter `\textordfeminine'.} +\endsetslot + +\setslot{guillemotleft} + \comment{A French double opening quote mark `\guillemotleft', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{logicalnot} + \comment{The logical not sign `\textlnot'.} +\endsetslot + +\ifdirect + +\nextslot{173} +\setslot{hyphen} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{hyphen}{endash} + \Fi +\endsetslot + +\Fi + +\nextslot{174} +\setslot{registered} + \comment{The registered trademark sign `\textregistered', + similar to a small `R' enclosed by a circle.} +\endsetslot + +\setslot{macron} + \comment{The macron accent `\={}'.} +\endsetslot + +\setslot{degree} + \comment{The degree sign `\textdegree'.} +\endsetslot + +\setslot{plusminus} + \comment{The plus or minus sign `\textpm'.} +\endsetslot + +\setslot{twosuperior} + \comment{The raised digit `\texttwosuperior'.} +\endsetslot + +\setslot{threesuperior} + \comment{The raised digit `\textthreesuperior'.} +\endsetslot + +\setslot{acute} + \comment{The acute accent `\'{}'.} +\endsetslot + +\setslot{mu} + \comment{The lowercase Greek letter `\textmu', intended + for use as a prefix `micro' in physical units.} +\endsetslot + +\setslot{paragraph} + \comment{The paragraph mark `\textparagraph'.} +\endsetslot + +\setslot{periodcentered} + \comment{The centered period `\textperiodcentered'.} +\endsetslot + +\setslot{cedilla} + \comment{The cedilla accent `\c{}'.} +\endsetslot + +\setslot{onesuperior} + \comment{The raised digit `\textonesuperior'.} +\endsetslot + +\setslot{ordmasculine} + \comment{The raised letter `\textordmasculine'.} +\endsetslot + +\setslot{guillemotright} + \comment{A French double closing quote mark `\guillemotright', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{onequarter} + \comment{The fraction `\textonequarter'.} +\endsetslot + +\setslot{onehalf} + \comment{The fraction `\textonehalf'.} +\endsetslot + +\setslot{threequarters} + \comment{The fraction `\textthreequarters'.} +\endsetslot + +\setslot{questiondown} + \comment{The Spanish punctuation mark `?`'.} +\endsetslot + +\begincomment +\subsection{The high ISO latin 1 range} +The remaining 64 slots, 192--255, are again based on ISO Latin~1. +\endcomment + +\nextslot{192} +\setslot{\uctop{Agrave}{agrave}} + \comment{The letter `\`A'.} +\endsetslot + +\setslot{\uctop{Aacute}{aacute}} + \comment{The letter `\'A'.} +\endsetslot + +\setslot{\uctop{Acircumflex}{acircumflex}} + \comment{The letter `\^A'.} +\endsetslot + +\setslot{\uctop{Atilde}{atilde}} + \comment{The letter `\~A'.} +\endsetslot + +\setslot{\uctop{Adieresis}{adieresis}} + \comment{The letter `\"A'.} +\endsetslot + +\setslot{\uctop{Aring}{aring}} + \comment{The letter `\AA'.} +\endsetslot + +\setslot{\uc{AE}{ae}} + \comment{The letter `\AE'. + This is a single letter, and should not be faked with `AE'.} +\endsetslot + +\setslot{\uc{Ccedilla}{ccedilla}} + \comment{The letter `\c C'.} +\endsetslot + +\setslot{\uctop{Egrave}{egrave}} + \comment{The letter `\`E'.} +\endsetslot + +\setslot{\uctop{Eacute}{eacute}} + \comment{The letter `\'E'.} +\endsetslot + +\setslot{\uctop{Ecircumflex}{ecircumflex}} + \comment{The letter `\^E'.} +\endsetslot + +\setslot{\uctop{Edieresis}{edieresis}} + \comment{The letter `\"E'.} +\endsetslot + +\setslot{\uctop{Igrave}{igrave}} + \comment{The letter `\`I'.} +\endsetslot + +\setslot{\uctop{Iacute}{iacute}} + \comment{The letter `\'I'.} +\endsetslot + +\setslot{\uctop{Icircumflex}{icircumflex}} + \comment{The letter `\^I'.} +\endsetslot + +\setslot{\uctop{Idieresis}{idieresis}} + \comment{The letter `\"I'.} +\endsetslot + +\setslot{\uc{Eth}{eth}} + \comment{The Icelandic capital letter `Eth' similar to a `D' + with a horizontal bar through the stem. It is unavailable + in \plain\ \TeX.} +\endsetslot + +\setslot{\uctop{Ntilde}{ntilde}} + \comment{The letter `\~N'.} +\endsetslot + +\setslot{\uctop{Ograve}{ograve}} + \comment{The letter `\`O'.} +\endsetslot + +\setslot{\uctop{Oacute}{oacute}} + \comment{The letter `\'O'.} +\endsetslot + +\setslot{\uctop{Ocircumflex}{ocircumflex}} + \comment{The letter `\^O'.} +\endsetslot + +\setslot{\uctop{Otilde}{otilde}} + \comment{The letter `\~O'.} +\endsetslot + +\setslot{\uctop{Odieresis}{odieresis}} + \comment{The letter `\"O'.} +\endsetslot + +\setslot{multiply} + \comment{The multiplication sign `\texttimes'.} +\endsetslot + +\setslot{\uc{Oslash}{oslash}} + \comment{The letter `\O'.} +\endsetslot + +\setslot{\uctop{Ugrave}{ugrave}} + \comment{The letter `\`U'.} +\endsetslot + +\setslot{\uctop{Uacute}{uacute}} + \comment{The letter `\'U'.} +\endsetslot + +\setslot{\uctop{Ucircumflex}{ucircumflex}} + \comment{The letter `\^U'.} +\endsetslot + +\setslot{\uctop{Udieresis}{udieresis}} + \comment{The letter `\"U'.} +\endsetslot + +\setslot{\uctop{Yacute}{yacute}} + \comment{The letter `\'Y'.} +\endsetslot + +\setslot{\uc{Thorn}{thorn}} + \comment{The Icelandic capital letter `Thorn', similar to a `P' + with the bowl moved down. It is unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\lc{SS}{germandbls}} + \comment{The letter `\ss'.} +\endsetslot + +\setslot{\lctop{Agrave}{agrave}} + \comment{The letter `\`a'.} +\endsetslot + +\setslot{\lctop{Aacute}{aacute}} + \comment{The letter `\'a'.} +\endsetslot + +\setslot{\lctop{Acircumflex}{acircumflex}} + \comment{The letter `\^a'.} +\endsetslot + +\setslot{\lctop{Atilde}{atilde}} + \comment{The letter `\~a'.} +\endsetslot + +\setslot{\lctop{Adieresis}{adieresis}} + \comment{The letter `\"a'.} +\endsetslot + +\setslot{\lctop{Aring}{aring}} + \comment{The letter `\aa'.} +\endsetslot + +\setslot{\lc{AE}{ae}} + \comment{The letter `\ae'. + This is a single letter, and should not be faked with `ae'.} +\endsetslot + +\setslot{\lc{Ccedilla}{ccedilla}} + \comment{The letter `\c c'.} +\endsetslot + +\setslot{\lctop{Egrave}{egrave}} + \comment{The letter `\`e'.} +\endsetslot + +\setslot{\lctop{Eacute}{eacute}} + \comment{The letter `\'e'.} +\endsetslot + +\setslot{\lctop{Ecircumflex}{ecircumflex}} + \comment{The letter `\^e'.} +\endsetslot + +\setslot{\lctop{Edieresis}{edieresis}} + \comment{The letter `\"e'.} +\endsetslot + +\setslot{\lctop{Igrave}{igrave}} + \comment{The letter `\`\i'.} +\endsetslot + +\setslot{\lctop{Iacute}{iacute}} + \comment{The letter `\'\i'.} +\endsetslot + +\setslot{\lctop{Icircumflex}{icircumflex}} + \comment{The letter `\^\i'.} +\endsetslot + +\setslot{\lctop{Idieresis}{idieresis}} + \comment{The letter `\"\i'.} +\endsetslot + +\setslot{\lc{Eth}{eth}} + \comment{The Icelandic lowercase letter `eth' similar to a + `$\partial$' with an oblique bar through the stem. It is + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\lctop{Ntilde}{ntilde}} + \comment{The letter `\~n'.} +\endsetslot + +\setslot{\lctop{Ograve}{ograve}} + \comment{The letter `\`o'.} +\endsetslot + +\setslot{\lctop{Oacute}{oacute}} + \comment{The letter `\'o'.} +\endsetslot + +\setslot{\lctop{Ocircumflex}{ocircumflex}} + \comment{The letter `\^o'.} +\endsetslot + +\setslot{\lctop{Otilde}{otilde}} + \comment{The letter `\~o'.} +\endsetslot + +\setslot{\lctop{Odieresis}{odieresis}} + \comment{The letter `\"o'.} +\endsetslot + +\setslot{divide} + \comment{The division sign `\textdiv'.} +\endsetslot + +\setslot{\lc{Oslash}{oslash}} + \comment{The letter `\o'.} +\endsetslot + +\setslot{\lctop{Ugrave}{ugrave}} + \comment{The letter `\`u'.} +\endsetslot + +\setslot{\lctop{Uacute}{uacute}} + \comment{The letter `\'u'.} +\endsetslot + +\setslot{\lctop{Ucircumflex}{ucircumflex}} + \comment{The letter `\^u'.} +\endsetslot + +\setslot{\lctop{Udieresis}{udieresis}} + \comment{The letter `\"u'.} +\endsetslot + +\setslot{\lctop{Yacute}{yacute}} + \comment{The letter `\'y'.} +\endsetslot + +\setslot{\lc{Thorn}{thorn}} + \comment{The Icelandic lowercase letter `thorn', similar to a `p' + with an ascender rising from the stem. It is unavailable + in \plain\ \TeX.} +\endsetslot + +\setslot{\lctop{Ydieresis}{ydieresis}} + \comment{The letter `\"y'.} +\endsetslot + +\endencoding + + +\section{Changes} + +The noteworthy changes made to this document are as follows. + +1999/10/25: + Typos regarding \texttt{Lslash} and \texttt{lslash} + corrected. (UV\&LH) + +1999/11/11: + Added \verb|\showbranches| markup. Removed \texttt{-OT1} + suffix from some glyph names. (LH) + +2003/02/04: + Returned to the v\,1.801 version of this file, and + reintroduced the few later additions (see above) that made sense. + Modernized setting of font parameters. Tidied up some markup. + (LH) + +2003/02/09: + Unified the duplicate glyphs (again!), this time using + the new \verb|\ifdirect| switch. + +2003/12/08: + Fixed two typos (\verb|\setslot| where it should be + \verb|\nextslot|). (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/latinetx/ot1.etx b/Master/texmf-dist/tex/fontinst/latinetx/ot1.etx new file mode 100644 index 00000000000..d047de664d7 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/ot1.etx @@ -0,0 +1,938 @@ +% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +% copyright 1998, 1999, 2002 the fontinst maintenance team and +% any individual authors listed elsewhere in this file. +% All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.2 or, at your option, any later version. +% +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = {Alan Jeffrey and Ulrik Vieth and +%%% Lars Hellstr{\"o}m}, +%%% version = "1.910", +%%% date = "2002-07-31", +%%% time = "21:45:37 +02:00", +%%% filename = "ot1.etx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, math, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the old TeX text encoding as a TeX +%%% font encoding file, for use with the fontinst +%%% utility.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[2002/03/16] + +\title{The \TeX\ text encoding vector} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{31 July 2002\\Version 1.921} + +\begin{document} +\maketitle + +\section{Introduction} + +This document describes the \TeX\ text (\texttt{OT1}) encoding---or +rather the \texttt{OT1} encodings, since the Computer Modern font +family alone provide examples of no less than five different +\texttt{OT1} encodings. + +The exact encoding of fonts produced using this file is controlled +through the two integers \texttt{ligaturing} (relevant values are $0$, +$1$, and $2$) and \texttt{italicizing} (relevant values are $0$ and +$1$). \texttt{ligaturing} controls roughly how many ligature +characters and ligaturing instructions there are in the font. +\texttt{italicizing} controls whether the font contains a dollar or +pound sign. + +This file also makes use of five macros in forming the names of +glyphs, so that this can be configured. +\begin{itemize} +\item \verb|\lc{A}{a}| should return the name of a lower-case + glyph, for example `\texttt{a}' or `\texttt{Asmall}'. + +\item \verb|\uc{A}{a}| should return the name of an upper-case + glyph, for example `\texttt{A}' or `\texttt{Amedium}'. + +\item \verb|\lclig{FI}{fi}| should return the name of a lower-case + ligature, for example `\texttt{fi}' or `\texttt{FIsmall}'. + +\item \verb|\uclig{FI}{fi}| should return the name of an upper-case + ligature, for example `\texttt{FI}' or `\texttt{FImedium}'. + +\item \verb|\digit{zero}| should return the name of a digit, for + example `\texttt{zero}' or `\texttt{zerooldstyle}'. + +% \item \verb|\currency| should be the name of the currency glyph, either +% `\texttt{sterling}' or `\texttt{dollar}'. +\end{itemize} +These should all expand in the mouth, otherwise you may get error +messages! + +For example, to get the standard upper and lower case font, you should +define: +\begin{verbatim} + \setcommand\lc#1#2{#2} + \setcommand\uc#1#2{#1} + \setcommand\lclig#1#2{#2} + \setcommand\uclig#1#2{#1} + \setcommand\digit#1{#1} +\end{verbatim} +To get a caps and small caps font with old style digits and letter +spacing, you should define: +\begin{verbatim} + \setcommand\lc#1#2{#1small} + \setcommand\uc#1#2{#1} + \setcommand\lclig#1#2{#2small} + \setcommand\uclig#1#2{#1spaced} + \setcommand\digit#1{#1oldstyle} +\end{verbatim} +To get an all-caps font with medium-cap composite letters and letter +spacing, you should define: +\begin{verbatim} + \setcommand\lc#1#2{#1} + \setcommand\uc#1#2{#1} + \setcommand\lclig#1#2{#1spaced} + \setcommand\uclig#1#2{#1spaced} + \setcommand\digit#1{#1} +\end{verbatim} +This document describes the upper and lower case encoding. + +\showbranches + +\encoding + +\needsfontinstversion{1.917} + + +\begincomment\section{Default values}\endcomment + +\comment{The \textit{ligaturing} default depends on whether + \textit{monowidth} is set mainly because that causes the default + installation of fonts to be slightly more intelligent.} +\ifisint{monowidth}\then + \setint{ligaturing}{0} +\Else + \setint{ligaturing}{2} +\Fi + +\setint{italicizing}{0} + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +% \comment{The following trickery was introduced to make the change +% from monowidth implying typewriter to monowidth not implying +% typewriter less abrupt.} +% \ifisint{monowidth}\then +% \ifisint{typewriter}\then \Else +% \ifnumber{\int{monowidth}}={9876}\then \Else +% \fontinstwarningnoline{ot1.etx}{% +% Set the typewriter integer to get a typewriter font,% +% \messagebreak +% set monowidth to 9876 to get a monowidth font,% +% \messagebreak +% or set both to get a monowidth typewriter font% +% } +% \setint{typewriter}{0} +% \Fi +% \Fi +% \Fi + + +\setint{italicslant}{0} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\Else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\Else + \setint{interword}{333} +\Fi\Fi + +\ifisint{monowidth}\then + \setint{stretchword}{0} + \setint{shrinkword}{0} +\Else + \setint{stretchword}{\scale{\int{interword}}{600}} + \setint{shrinkword}{\scale{\int{interword}}{240}} +\Fi + +\ifisglyph{x}\then + \setint{xheight}{\height{x}} +\Else + \setint{xheight}{500} +\Fi + +\setint{quad}{1000} + +\ifisint{monowidth}\then +% \ifnumber{\int{ligaturing}}={0}\then +% \setint{extraspace}{0} +% \Else + \setint{extraspace}{\int{interword}} +% \Fi +\Else + \setint{extraspace}{\scale{\int{interword}}{240}} +\Fi + + + +\begincomment +\section{Font dimensions and coding scheme} +\endcomment + +\setfontdimen{1}{italicslant} % italic slant +\setfontdimen{2}{interword} % interword space +\setfontdimen{3}{stretchword} % interword stretch +\setfontdimen{4}{shrinkword} % interword shrink +\setfontdimen{5}{xheight} % x-height +\setfontdimen{6}{quad} % quad +\setfontdimen{7}{extraspace} % extra space after . + + +\ifnumber{\int{ligaturing}}={2}\then + +\setstr{codingscheme}{TEX TEXT} + +\Else\ifnumber{\int{ligaturing}}={1}\then + +\setstr{codingscheme}{TEX TEXT WITHOUT F-LIGATURES} + +\Else + +\setstr{codingscheme}{TEX TYPEWRITER TEXT} + +\Fi\Fi + + + +\begincomment +\section{The encoding} + +There are 130 glyphs in this encoding. 128 of these are in Knuth's CM +encoding, and the other two are `\l' and `\L', which are composite +letters in CM, but are single glyphs in almost every other font. +\endcomment + +\setslot{Gamma} + \comment{The greek letter `$\Gamma$'.} +\endsetslot + +\setslot{Delta} + \comment{The greek letter `$\Delta$'.} +\endsetslot + +\setslot{Theta} + \comment{The greek letter `$\Theta$'.} +\endsetslot + +\setslot{Lambda} + \comment{The greek letter `$\Lambda$'.} +\endsetslot + +\setslot{Xi} + \comment{The greek letter `$\Xi$'.} +\endsetslot + +\setslot{Pi} + \comment{The greek letter `$\Pi$'.} +\endsetslot + +\setslot{Sigma} + \comment{The greek letter `$\Sigma$'.} +\endsetslot + +\setslot{Upsilon} + \comment{The greek letter `$\Upsilon$' named `\texttt{Upsilon1}' by + Adobe.} +\endsetslot + +\setslot{Phi} + \comment{The greek letter `$\Phi$'.} +\endsetslot + +\setslot{Psi} + \comment{The greek letter `$\Psi$'.} +\endsetslot + +\setslot{Omega} + \comment{The greek letter `$\Omega$'.} +\endsetslot + +\ifnumber{\int{ligaturing}}<{2}\then + +\setslot{arrowup} + \comment{An upwards-facing arrow `$\uparrow$'.} +\endsetslot + +\setslot{arrowdown} + \comment{A downwards-facing arrow `$\downarrow$'.} +\endsetslot + +\setslot{quotesingle} + \comment{The `neutral' single quotation mark `\texttt{\char`\'}', + for use with monowidth fonts.} +\endsetslot + +\setslot{exclamdown} + \comment{The Spanish punctuation mark `!`'.} +\endsetslot + +\setslot{questiondown} + \comment{The Spanish punctuation mark `?`'.} +\endsetslot + +\Else + +\setslot{\lclig{FF}{ff}} + \ligature{LIG}{\lc{I}{i}}{\lclig{FFI}{ffi}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FFL}{ffl}} + \comment{The `ff' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FI}{fi}} + \comment{The `fi' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FL}{fl}} + \comment{The `fl' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFI}{ffi}} + \comment{The `ffi' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFL}{ffl}} + \comment{The `ffl' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\Fi + +\setslot{\lc{dotlessI}{dotlessi}} + \comment{A dotless i `\i', used to produce accented letters such as + `\=\i'.} +\endsetslot + +\setslot{\lc{dotlessJ}{dotlessj}} + \comment{A dotless j `\j', used to produce accented letters such as + `\=\j'. Most non-\TeX\ fonts do not have this glyph.} +\endsetslot + +\setslot{grave} + \comment{The grave accent `\`a'.} +\endsetslot + +\setslot{acute} + \comment{The acute accent `\'a'.} +\endsetslot + +\setslot{caron} + \comment{The caron or h\'a\v cek accent `\v a'.} +\endsetslot + +\setslot{breve} + \comment{The breve accent `\u a'.} +\endsetslot + +\setslot{macron} + \comment{The macron accent `\=a'.} +\endsetslot + +\setslot{ringfitted} + \comment{The ring accent `\aa', fitted to be the same width as an + upper case `A'.} +\endsetslot + +\setslot{cedilla} + \comment{The cedilla accent `\c a'.} +\endsetslot + +\setslot{\lc{SS}{germandbls}} + \comment{The letter `\ss'.} +\endsetslot + +\setslot{\lc{AE}{ae}} + \comment{The letter `\ae'. This is a single letter, and should not be + faked with `ae'.} +\endsetslot + +\setslot{\lc{OE}{oe}} + \comment{The letter `\oe'. This is a single letter, and should not be + faked with `oe'.} +\endsetslot + +\setslot{\lc{Oslash}{oslash}} + \comment{The letter `\o'.} +\endsetslot + +\setslot{\uc{AE}{ae}} + \comment{The letter `\AE'. This is a single letter, and should not be + faked with `AE'.} +\endsetslot + +\setslot{\uc{OE}{oe}} + \comment{The letter `\OE'. This is a single letter, and should not be + faked with `OE'.} +\endsetslot + +\setslot{\uc{Oslash}{oslash}} + \comment{The letter `\o'.} +\endsetslot + +\ifnumber{\int{ligaturing}}<{1}\then + +\setslot{visiblespace} + \comment{A visible space glyph `\texttt{\char`\ }'.} +\endsetslot + +\Else + +\setslot{lslashslash} + \ligature{LIG}{\lc{L}{l}}{\lc{Lslash}{lslash}} + \ligature{LIG}{\uc{L}{l}}{\uc{Lslash}{lslash}} + \comment{The slash used to make `\l' and `\L'. Since most fonts do + not have a separate glyph for this, I've added ligatures to `\l' + and `\L'.} +\endsetslot + +\Fi + +\setslot{exclam} + \ligature{LIG}{quoteleft}{exclamdown} + \comment{The exclamation mark `!'.} +\endsetslot + +\ifnumber{\int{ligaturing}}>{0}\then + +\setslot{quotedblright} + \comment{An English double closing quote mark `\,''\,'.} +\endsetslot + +\Else + +\setslot{quotedbl} + \comment{The `neutral' quotation mark `\texttt{\char`\"}', included + for use in monowidth fonts, or for setting computer programs.} +\endsetslot + +\Fi + +\setslot{numbersign} + \comment{The hash sign `\#'.} +\endsetslot + +\ifnumber{\int{italicizing}}={0}\then + +\setslot{dollar} + \comment{The dollar sign `\$'.} +\endsetslot + +\Else + +\setslot{sterling} + \comment{The pound sign `\pounds'.} +\endsetslot + +\Fi + +\setslot{percent} + \comment{The percent sign `\%'.} +\endsetslot + +\setslot{ampersand} + \comment{The ampersand sign `\&'.} +\endsetslot + +\setslot{quoteright} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{quoteright}{quotedblright} + \Fi + \comment{The English closing quotation mark `\,'\,'.} +\endsetslot + +\setslot{parenleft} + \comment{The opening parenthesis `('.} +\endsetslot + +\setslot{parenright} + \comment{The closing parenthesis `)'.} +\endsetslot + +\setslot{asterisk} + \comment{The raised asterisk `*'.} +\endsetslot + +\setslot{plus} + \comment{The addition sign `+'.} +\endsetslot + +\setslot{comma} + \comment{The comma `,'.} +\endsetslot + +\setslot{hyphen} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{hyphen}{rangedash} + \Fi + \comment{The hyphen `-'.} +\endsetslot + +\setslot{period} + \comment{The full point `.'.} +\endsetslot + +\setslot{slash} + \comment{The forward oblique `/'.} +\endsetslot + +\setslot{\digit{zero}} + \comment{The number zero `0'. This (and all the other numerals) may be + old style or ranging digits.} +\endsetslot + +\setslot{\digit{one}} + \comment{The number one `1'.} +\endsetslot + +\setslot{\digit{two}} + \comment{The number two `2'.} +\endsetslot + +\setslot{\digit{three}} + \comment{The number three `3'.} +\endsetslot + +\setslot{\digit{four}} + \comment{The number four `4'.} +\endsetslot + +\setslot{\digit{five}} + \comment{The number five `5'.} +\endsetslot + +\setslot{\digit{six}} + \comment{The number six `6'.} +\endsetslot + +\setslot{\digit{seven}} + \comment{The number seven `7'.} +\endsetslot + +\setslot{\digit{eight}} + \comment{The number eight `8'.} +\endsetslot + +\setslot{\digit{nine}} + \comment{The number nine `9'.} +\endsetslot + +\setslot{colon} + \comment{The colon punctuation mark `:'.} +\endsetslot + +\setslot{semicolon} + \comment{The semi-colon punctuation mark `;'.} +\endsetslot + +\ifnumber{\int{ligaturing}}<{2}\then + +\setslot{less} + \comment{The less-than sign `$<$'.} +\endsetslot + +\setslot{equal} + \comment{The equals sign `='.} +\endsetslot + +\setslot{greater} + \comment{The greater-than sign `$>$'.} +\endsetslot + +\Else + +\setslot{exclamdown} + \comment{The Spanish punctuation mark `!`'.} +\endsetslot + +\setslot{equal} + \comment{The equals sign `='.} +\endsetslot + +\setslot{questiondown} + \comment{The Spanish punctuation mark `?`'.} +\endsetslot + +\Fi + +\setslot{question} + \ligature{LIG}{quoteleft}{questiondown} + \comment{The question mark `?'.} +\endsetslot + +\setslot{at} + \comment{The at sign `@'.} +\endsetslot + +\setslot{\uc{A}{a}} + \comment{The letter `{A}'.} +\endsetslot + +\setslot{\uc{B}{b}} + \comment{The letter `{B}'.} +\endsetslot + +\setslot{\uc{C}{c}} + \comment{The letter `{C}'.} +\endsetslot + +\setslot{\uc{D}{d}} + \comment{The letter `{D}'.} +\endsetslot + +\setslot{\uc{E}{e}} + \comment{The letter `{E}'.} +\endsetslot + +\setslot{\uc{F}{f}} + \comment{The letter `{F}'.} +\endsetslot + +\setslot{\uc{G}{g}} + \comment{The letter `{G}'.} +\endsetslot + +\setslot{\uc{H}{h}} + \comment{The letter `{H}'.} +\endsetslot + +\setslot{\uc{I}{i}} + \comment{The letter `{I}'.} +\endsetslot + +\setslot{\uc{J}{j}} + \comment{The letter `{J}'.} +\endsetslot + +\setslot{\uc{K}{k}} + \comment{The letter `{K}'.} +\endsetslot + +\setslot{\uc{L}{l}} + \comment{The letter `{L}'.} +\endsetslot + +\setslot{\uc{M}{m}} + \comment{The letter `{M}'.} +\endsetslot + +\setslot{\uc{N}{n}} + \comment{The letter `{N}'.} +\endsetslot + +\setslot{\uc{O}{o}} + \comment{The letter `{O}'.} +\endsetslot + +\setslot{\uc{P}{p}} + \comment{The letter `{P}'.} +\endsetslot + +\setslot{\uc{Q}{q}} + \comment{The letter `{Q}'.} +\endsetslot + +\setslot{\uc{R}{r}} + \comment{The letter `{R}'.} +\endsetslot + +\setslot{\uc{S}{s}} + \comment{The letter `{S}'.} +\endsetslot + +\setslot{\uc{T}{t}} + \comment{The letter `{T}'.} +\endsetslot + +\setslot{\uc{U}{u}} + \comment{The letter `{U}'.} +\endsetslot + +\setslot{\uc{V}{v}} + \comment{The letter `{V}'.} +\endsetslot + +\setslot{\uc{W}{w}} + \comment{The letter `{W}'.} +\endsetslot + +\setslot{\uc{X}{x}} + \comment{The letter `{X}'.} +\endsetslot + +\setslot{\uc{Y}{y}} + \comment{The letter `{Y}'.} +\endsetslot + +\setslot{\uc{Z}{z}} + \comment{The letter `{Z}'.} +\endsetslot + +\setslot{bracketleft} + \comment{The opening square bracket `['.} +\endsetslot + +\ifnumber{\int{ligaturing}}>{0}\then + +\setslot{quotedblleft} + \comment{An English double opening quote mark `\,``\,'.} +\endsetslot + +\Else + +\setslot{backslash} + \comment{The backwards oblique `$\backslash$'.} +\endsetslot + +\Fi + +\setslot{bracketright} + \comment{The closing square bracket `]'.} +\endsetslot + +\setslot{circumflex} + \comment{The circumflex accent `\^ a'.} +\endsetslot + +\ifnumber{\int{ligaturing}}>{0}\then + +\setslot{dotaccent} + \comment{The dot accent `\.a'.} +\endsetslot + +\Else + +\setslot{underscore} + \comment{The ASCII underline character `\texttt{\char`\_}', usually + set on the baseline.} +\endsetslot + +\Fi + +\setslot{quoteleft} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{quoteleft}{quotedblleft} + \Fi + \comment{The English opening single quotation mark `\,`\,'.} +\endsetslot + +\setslot{\lc{A}{a}} + \comment{The letter `{a}'.} +\endsetslot + +\setslot{\lc{B}{b}} + \comment{The letter `{b}'.} +\endsetslot + +\setslot{\lc{C}{c}} + \comment{The letter `{c}'.} +\endsetslot + +\setslot{\lc{D}{d}} + \comment{The letter `{d}'.} +\endsetslot + +\setslot{\lc{E}{e}} + \comment{The letter `{e}'.} +\endsetslot + +\setslot{\lc{F}{f}} + \ifnumber{\int{ligaturing}}<{2}\then \Else + \ligature{LIG}{\lc{I}{i}}{\lclig{FI}{fi}} + \ligature{LIG}{\lc{F}{f}}{\lclig{FF}{ff}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FL}{fl}} + \Fi + \comment{The letter `{f}'.} +\endsetslot + +\setslot{\lc{G}{g}} + \comment{The letter `{g}'.} +\endsetslot + +\setslot{\lc{H}{h}} + \comment{The letter `{h}'.} +\endsetslot + +\setslot{\lc{I}{i}} + \comment{The letter `{i}'.} +\endsetslot + +\setslot{\lc{J}{j}} + \comment{The letter `{j}'.} +\endsetslot + +\setslot{\lc{K}{k}} + \comment{The letter `{k}'.} +\endsetslot + +\setslot{\lc{L}{l}} + \comment{The letter `{l}'.} +\endsetslot + +\setslot{\lc{M}{m}} + \comment{The letter `{m}'.} +\endsetslot + +\setslot{\lc{N}{n}} + \comment{The letter `{n}'.} +\endsetslot + +\setslot{\lc{O}{o}} + \comment{The letter `{o}'.} +\endsetslot + +\setslot{\lc{P}{p}} + \comment{The letter `{p}'.} +\endsetslot + +\setslot{\lc{Q}{q}} + \comment{The letter `{q}'.} +\endsetslot + +\setslot{\lc{R}{r}} + \comment{The letter `{r}'.} +\endsetslot + +\setslot{\lc{S}{s}} + \comment{The letter `{s}'.} +\endsetslot + +\setslot{\lc{T}{t}} + \comment{The letter `{t}'.} +\endsetslot + +\setslot{\lc{U}{u}} + \comment{The letter `{u}'.} +\endsetslot + +\setslot{\lc{V}{v}} + \comment{The letter `{v}'.} +\endsetslot + +\setslot{\lc{W}{w}} + \comment{The letter `{w}'.} +\endsetslot + +\setslot{\lc{X}{x}} + \comment{The letter `{x}'.} +\endsetslot + +\setslot{\lc{Y}{y}} + \comment{The letter `{y}'.} +\endsetslot + +\setslot{\lc{Z}{z}} + \comment{The letter `{z}'.} +\endsetslot + +\ifnumber{\int{ligaturing}}>{0}\then + +\setslot{rangedash} + \ligature{LIG}{hyphen}{punctdash} + \comment{The number range dash `1--9'. In a monowidth font, this + might be set as `\texttt{1{-}9}'.} +\endsetslot + +\setslot{punctdash} + \comment{The punctuation dash `Oh---boy.' In a monowidth font, this + might be set as `\texttt{Oh{-}{-}boy.}'} +\endsetslot + +\setslot{hungarumlaut} + \comment{The long Hungarian umlaut `\H a'.} +\endsetslot + +\Else + +\setslot{braceleft} + \comment{The opening curly brace `\{'.} +\endsetslot + +\setslot{bar} + \comment{The ASCII vertical bar `$|$'. This is included + for compatibility with typewriter fonts used for computer + listings.} +\endsetslot + +\setslot{braceright} + \comment{The closing curly brace `\}'.} +\endsetslot + +\Fi + +\setslot{tilde} + \comment{The tilde accent `\~a'.} +\endsetslot + +\setslot{dieresis} + \comment{The umlaut or dieresis accent `\"a'.} +\endsetslot + +\begincomment +\section{Non-standard ligatures} + +The `\l' and `\L' glyphs are not usually in the ot1 encoding, but +they're needed for fonts which don't have a special `lslashslash' glyph. +\endcomment + +\nextslot{"8A} + +\setslot{\uc{Lslash}{lslash}} + \comment{The letter `\L'.} +\endsetslot + +\nextslot{"AA} + +\setslot{\lc{Lslash}{lslash}} + \comment{The letter `\l'.} +\endsetslot + +\endencoding + +\section{Changes} + +1999/10/18: Introduced the \texttt{typewriter} integer and made changes +for \verb|\showbranches|. (LH) + +1999/11/07: Removed the ``if \texttt{typewriter} then +\texttt{monowidth}'' implication. Changed \texttt{fontdimen(7)} to zero +in monowidth typewriter fonts. (LH) + +2002/07/31: Major update. The \verb|\currency| and +\textit{typewriter} parameters were removed---instead the +\textit{ligaturing} and \textit{italicizing} parameters were added. +\verb|\setfontdimen| interface used for setting fontdimens. (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/latinetx/ot1c.etx b/Master/texmf-dist/tex/fontinst/latinetx/ot1c.etx new file mode 100644 index 00000000000..4251562e567 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/ot1c.etx @@ -0,0 +1,92 @@ +% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +% copyright 1998, 1999, 2002 the fontinst maintenance team and +% any individual authors listed elsewhere in this file. +% All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.2 or, at your option, any later version. +% +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[2002/03/16] + +\title{The \texttt{OT1} encoding for small-caps fonts} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{See also the normal \texttt{OT1} encoding} + +\begin{document} +\maketitle + +This file is used to install a small-caps font in which the small-caps +glyphs are named as $\langle$\textit{full cap glyph name}$\rangle +{}$% +\texttt{small}. It is mainly used to install faked small-caps fonts, +but it is also used to install small-caps fonts where the small-caps +glyphs are taken from an Expert font. + +\showbranches + +\encoding + +\needsfontinstversion{1.909} + +\begincomment +\section{Default values} +\endcomment + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} +% \setcommand\currency{dollar} + +% \comment{The default letter spacing is 1/10 of the design size, with +% small caps 80\% the size of full caps.} + +% \setint{smallcapsscale}{800} + +% \ifisglyph{space}\then +% \setint{interword}{\width{space}} +% \Else\ifisglyph{i}\then +% \setint{interword}{\width{i}} +% \Else +% \setint{interword}{333} +% \Fi\Fi + +% \ifisint{monowidth}\then +% \setint{smallcapsextraspace} +% {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} +% \setint{smallcapsspacing}{0} +% \Else +% \setint{smallcapsextraspace}{0} +% \setint{smallcapsspacing}{50} +% \Fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\Else\ifisint{smallcapsspacing}\then + \setint{letterspacing}{\int{smallcapsspacing}} +\Fi\Fi + +\comment{Then we call \texttt{ot1.etx}.} + +\inputetx{ot1} + +\endencoding + +\section{Changes} + +1999/10/26: Added \textsf{fontdoc} markup, made changes for +\verb|\showbranches|, and code for things that was moved from encoding +to metric files ages ago commented out. (LH) + +2002/07/31: Minor fixes. (LH) + +\end{document} + + diff --git a/Master/texmf-dist/tex/fontinst/latinetx/ot1cj.etx b/Master/texmf-dist/tex/fontinst/latinetx/ot1cj.etx new file mode 100644 index 00000000000..9be75daafbc --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/ot1cj.etx @@ -0,0 +1,69 @@ +% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +% copyright 1998, 1999, 2002 the fontinst maintenance team +% and any individual authors listed elsewhere in this file. +% All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.2 or, at your option, any later version. +% +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[2002/03/16] + +\title{The \texttt{OT1} encoding for small-caps and hanging figures fonts} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{See also the normal \texttt{OT1} encoding} + +\begin{document} +\maketitle + +This file is used to install a small-caps and hanging (oldstyle) +figures font in which the small-caps glyphs are named as +$\langle$\textit{full cap glyph name}$\rangle +{}$\texttt{small} and +the figures are named as $\langle$\textit{figure name}$\rangle + {}$% +\texttt{oldstyle}. It is mainly used to install faked small-caps fonts, +but it is also used to install small-caps fonts where the small-caps +glyphs are taken from an Expert font. + +\showbranches + +\encoding + +\needsfontinstversion{1.909} + +\begincomment +\section{Default values} +\endcomment + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} +% \setcommand\currency{dollar} + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\Else\ifisint{letterspacing}\then + \setint{letterspacing}{\int{smallcapsspacing}} +\Fi\Fi + +\inputetx{ot1} + +\endencoding + + +\section{Changes} + +1999/10/27: Added \textsf{fontdoc} markup, made changes for +\verb|\showbranches|, and code for things that was moved from encoding +to metric files ages ago was removed. (LH) + +2002/07/31: Minor fixes. (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/latinetx/ot1ctt.etx b/Master/texmf-dist/tex/fontinst/latinetx/ot1ctt.etx new file mode 100644 index 00000000000..50f5a61f3de --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/ot1ctt.etx @@ -0,0 +1,61 @@ +% Copyright 1993 Alan Jeffrey, +% copyright 1999, 2002 the fontinst maintenance team +% and any individual authors listed elsewhere in this file. +% All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.2 or, at your option, any later version. +% +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[2002/03/16] + +\title{The \texttt{OT1} encoding for small-caps typewriter fonts} +\author{Alan Jeffrey\and Lars Hellstr\"om} +\date{See also the normal \texttt{OT1} encoding} + +\begin{document} +\maketitle + +The main use for this file is conversion from PL to MTX format of the +metrics for a small-caps font with the \texttt{TEX TYPEWRITER TEXT} +codingscheme. It can also be used to install an \texttt{OT1}-% +typewriter encoded font with small-caps in the places of the lower case. + +\showbranches + +\encoding + +\needsfontinstversion{1.909} + +\begincomment +\section{Default values} +\endcomment + +\setint{ligaturing}{0} + +\comment{Then we call \texttt{ot1c.etx}.} + +\inputetx{ot1c} + +\endencoding + +\section{Changes} + +1993/12/29: File created. (ASAJ) + +1999/11/04: Removed a lot of antiquated code (including two +\verb|\setglyph| commands!!), updated for the v\,1.909 \texttt{ot1.etx}, +made the file call \texttt{ot1c.etx} rather than \texttt{ot1.etx}, and +added \textsf{fontdoc} markup. (LH) + +2002/07/31: Minor fixes, after having updated \texttt{ot1.etx}. (LH) + +\end{document} + + diff --git a/Master/texmf-dist/tex/fontinst/latinetx/ot1i.etx b/Master/texmf-dist/tex/fontinst/latinetx/ot1i.etx new file mode 100644 index 00000000000..415d4826f87 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/ot1i.etx @@ -0,0 +1,56 @@ +% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +% copyright 1998, 1999, 2002 the fontinst maintenance team +% and any individual authors listed elsewhere in this file. +% All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.2 or, at your option, any later version. +% +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[2002/03/16] + +\title{The \texttt{OT1} encoding for italic fonts} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{See also the normal \texttt{OT1} encoding} + +\begin{document} +\maketitle + +\section{Introduction} + +This file is used to install an italic \texttt{OT1}-encoded font. It +is necessary to distinguish between roman and italic in \texttt{OT1}, +because the \texttt{sterling} and \texttt{dollar} glyphs share the +same slot. + +\section{Default values} +\showbranches +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} +% \setcommand\currency{sterling} +\setint{italicizing}{1} + +\inputetx{ot1} + +\endencoding + +\section{Changes} + +1999/10/27: Added \textsf{fontdoc} markup. (LH) + +2002/07/31: +Minor update called for by changes in \texttt{ot1.etx}. (LH) + +\end{document} + diff --git a/Master/texmf-dist/tex/fontinst/latinetx/ot1ij.etx b/Master/texmf-dist/tex/fontinst/latinetx/ot1ij.etx new file mode 100644 index 00000000000..8564c3f50af --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/ot1ij.etx @@ -0,0 +1,56 @@ +% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +% copyright 1998, 1999, 2002 the fontinst maintenance team +% and any individual authors listed elsewhere in this file. +% All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.2 or, at your option, any later version. +% +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[2002/03/16] + +\title{The \texttt{OT1} encoding for italic fonts} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{See also the normal \texttt{OT1} encoding} + +\begin{document} +\maketitle + +\section{Introduction} + +This file is used to install an italic \texttt{OT1}-encoded font with +hanging (oldstyle) digits. It is necessary to distinguish between roman +and italic in \texttt{OT1}, because the \texttt{sterling} and +\texttt{dollar} glyphs share the same slot. + +\section{Default values} +\showbranches +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} +% \setcommand\currency{sterling} +\setint{italicizing}{1} + +\inputetx{ot1} + +\endencoding + +\section{Changes} + +1999/10/27: Added \textsf{fontdoc} markup. (LH) + +2002/07/31: +Minor update called for by changes in \texttt{ot1.etx}. (LH) + +\end{document} + diff --git a/Master/texmf-dist/tex/fontinst/latinetx/ot1itt.etx b/Master/texmf-dist/tex/fontinst/latinetx/ot1itt.etx new file mode 100644 index 00000000000..610bf1c1eef --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/ot1itt.etx @@ -0,0 +1,68 @@ +% Copyright 1993 Alan Jeffrey, +% copyright 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[1999/10/16] + +\title{The \texttt{OT1} encoding for typewriter fonts} +\author{Alan Jeffrey\and Lars Hellstr\"om} +\date{See also the normal \texttt{OT1} encoding} + +\begin{document} +\maketitle + +The main use for this file is conversion from PL to MTX format of the +metrics for a font with the \texttt{TEX TYPEWRITER TEXT} +codingscheme. It can also be used to install an \texttt{OT1}-% +typewriter encoded font. + +\showbranches + +\encoding + +\needsfontinstversion{1.909} + +\begincomment +\section{Default values} +\endcomment + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} +% \setint{typewriter}{0} +% \setcommand\currency{dollar} + +\setint{italicizing}{1} +\setint{ligaturing}{0} + +\comment{Then we call \texttt{ot1.etx}.} + +\inputetx{ot1} + +\endencoding + +\section{Changes} + +1993/12/29: File created. (ASAJ) + +1999/11/04: Updated for v\,1.909 \texttt{ot1.etx} and added +\textsf{fontdoc} markup. (LH) + +2002/07/31: Updated for v\,1.921 \texttt{ot1.etx} and corrected the +name of the currency glyph. (LH) + +\end{document} + + diff --git a/Master/texmf-dist/tex/fontinst/latinetx/ot1j.etx b/Master/texmf-dist/tex/fontinst/latinetx/ot1j.etx new file mode 100644 index 00000000000..4fdd71bcad3 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/ot1j.etx @@ -0,0 +1,52 @@ +% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +% copyright 1998, 1999, 2002 the fontinst maintenance team +% and any individual authors listed elsewhere in this file. +% All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.2 or, at your option, any later version. +% +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[2002/03/16] + +\title{The \texttt{OT1} encoding for italic fonts} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{See also the normal \texttt{OT1} encoding} + +\begin{document} +\maketitle + +\section{Introduction} + +This file is used to install an \texttt{OT1}-encoded font with hanging +(oldstyle) digits. + +\section{Default values} +\showbranches +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} +% \setcommand\currency{dollar} + +\inputetx{ot1} + +\endencoding + +\section{Changes} + +1999/10/27: Added \textsf{fontdoc} markup. (LH) + +2002/07/31: Minor fixes. (LH) + +\end{document} + diff --git a/Master/texmf-dist/tex/fontinst/latinetx/ot1tt.etx b/Master/texmf-dist/tex/fontinst/latinetx/ot1tt.etx new file mode 100644 index 00000000000..23cbd66ac30 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/ot1tt.etx @@ -0,0 +1,66 @@ +% Copyright 1993 Alan Jeffrey, +% copyright 1999, 2002 the fontinst maintenance team +% and any individual authors listed elsewhere in this file. +% All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.2 or, at your option, any later version. +% +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[2002/03/16] + +\title{The \texttt{OT1} encoding for typewriter fonts} +\author{Alan Jeffrey\and Lars Hellstr\"om} +\date{See also the normal \texttt{OT1} encoding} + +\begin{document} +\maketitle + +The main use for this file is conversion from PL to MTX format of the +metrics for a font with the \texttt{TEX TYPEWRITER TEXT} +codingscheme. It can also be used to install an \texttt{OT1}-% +encoded font with that codingscheme. + +\showbranches + +\encoding + +\needsfontinstversion{1.909} + +\begincomment +\section{Default values} +\endcomment + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} +% \setint{typewriter}{0} +% \setcommand\currency{dollar} +\setint{ligaturing}{0} + +\comment{Then we call \texttt{ot1.etx}.} + +\inputetx{ot1} + +\endencoding + +\section{Changes} + +1993/12/29: File created. (ASAJ) + +1999/11/04: Updated for v\,1.909 \texttt{ot1.etx} and added +\textsf{fontdoc} markup. (LH) + +2002/07/31: Updated for v\,1.921 \texttt{ot1.etx}. (LH) + +\end{document} + + diff --git a/Master/texmf-dist/tex/fontinst/latinetx/t1.etx b/Master/texmf-dist/tex/fontinst/latinetx/t1.etx new file mode 100644 index 00000000000..541211c8a14 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/t1.etx @@ -0,0 +1,1452 @@ +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = "Alan Jeffrey and Sebastian Rahtz and +%%% Ulrik Vieth and Lars Hellstr{\"o}m", +%%% version = "1.923", +%%% date = "2002-10-29", +%%% time = "00:17:50 +01:00", +%%% filename = "t1.etx", +%%% email = "fontinst@tug.org", +%%% URL = "http://tug.org/applications/fontinst/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the T1 encoding as a TeX font encoding +%%% file, for use with the fontinst utility. +%%% It implements the TeX extended text encoding.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} +\usepackage[TS1,T1]{fontenc} +\usepackage{textcomp} +\usepackage{fontdoc} + +\showbranches + +\title{The \TeX\ extended text encoding vector} +\author{Alan Jeffrey\and Sebastian Rahtz\and Ulrik Vieth\and + Lars Hellstr\"om} +\date{26 October 2002\\Version 1.923} + + +\begin{document} + +\maketitle + +\section{Introduction} + +This document describes the Cork (\texttt{T1}) text encoding. + +The following macros play an important role in this file, since they +are involved in determining the names of most glyphs that will be put +in some slot. +\begin{itemize} +\item + \verb|\lc{A}{a}| should return the name of a lower-case + glyph, for example `\texttt{a}' or `\texttt{Asmall}'. +\item + \verb|\uc{A}{a}| should return the name of an upper-case + glyph, for example `\texttt{A}' or `\texttt{Amedium}'. +\item + \verb|\lctop{Aacute}{aacute}| should return the name of a + lower-case composite glyph formed from putting a diacritical above + a letter, for example `\texttt{aacute}' or `\texttt{Aacutesmall}'. +\item + \verb|\uctop{Aacute}{aacute}| should return the name of an + upper-case composite glyph formed from putting a diacritical above + a letter, for example `\texttt{Aacute}' or `\texttt{Aacutemedium}'. +\item + \verb|\lclig{FI}{fi}| should return the name of a lower-case + ligature, for example `\texttt{fi}' or `\texttt{FIsmall}'. +\item + \verb|\uclig{FI}{fi}| should return the name of an upper-case + ligature, for example `\texttt{FI}' or `\texttt{FImedium}'. +\item + \verb|\digit{zero}| should return the name of a digit, for + example `\texttt{zero}' or `\texttt{zerooldstyle}'. +\end{itemize} +By explicitly defining them, the encoding can (to some extent) be +customised. All these macros should expand in the mouth, +otherwise you may get error messages! + +For example, to get the standard upper and lower case font (which is +the default), you should define: +\begin{verbatim} + \setcommand\lc#1#2{#2} + \setcommand\uc#1#2{#1} + \setcommand\lctop#1#2{#2} + \setcommand\uctop#1#2{#1} + \setcommand\lclig#1#2{#2} + \setcommand\uclig#1#2{#1} + \setcommand\digit#1{#1} +\end{verbatim} +To get a caps and small caps font with old style digits and letter +spacing, you should define: +\begin{verbatim} + \setcommand\lc#1#2{#1small} + \setcommand\uc#1#2{#1} + \setcommand\lctop#1#2{#1small} + \setcommand\uctop#1#2{#1} + \setcommand\lclig#1#2{#2small} + \setcommand\uclig#1#2{#1spaced} + \setcommand\digit#1{#1oldstyle} +\end{verbatim} +To get an all-caps font with medium-cap composite letters and letter +spacing, you should define: +\begin{verbatim} + \setcommand\lc#1#2{#1} + \setcommand\uc#1#2{#1} + \setcommand\lctop#1#2{#1medium} + \setcommand\uctop#1#2{#1medium} + \setcommand\lclig#1#2{#1spaced} + \setcommand\uclig#1#2{#1spaced} + \setcommand\digit#1{#1} +\end{verbatim} +In this document, the glyph names shown are for the upper and +lower case variant. + +Another important parameter is the integer variable \textit{ligaturing}, +which controls to what extent (non-mandatory) ligatures are made. The +value of this variable is interpreted as follows: +\begin{enumerate} + \item[$1$] + All the standard ligature glyphs (\texttt{fi}, \texttt{fl}, + \texttt{ff}, \texttt{ffi}, \texttt{ffl}, \texttt{IJ}, and + \texttt{ij}) are included and the normal ligaturing instructions + (those for the \texttt{f}-ligatures) are included. + \item[$0$] + All the standard ligature glyphs are included, but none of their + ligaturing instructions. + \item[$-1$] + The seven slots normally used for ligatures are left empty. + \item[$-2$] + The seven slots normally used for ligatures are left empty, as + are the slots normally used for \texttt{c}, \texttt{f}, + \texttt{s}, \texttt{i}, and \texttt{I}. +\end{enumerate} +The default value is $0$ for monowidth fonts (because the ligature +glyphs in such fonts are often useless) and $1$ otherwise. The +negative values are useful when making fonts with a nonstandard +set of ligatures; the idea is that some other (smaller) encoding file +should set these remaining slots. + + +\encoding + +\needsfontinstversion{1.910} + + +\begincomment +\section{Default values} +\endcomment + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\ifisint{monowidth}\then + \setint{ligaturing}{0} +\Else + \setint{ligaturing}{1} +\Fi + +\comment{The remaining code in this section sets various metric +parameters for the font. Ideally, all these parameters should already +have been set; the values computed here are merely crude guesses +about what might be the right value.} + +\setint{italicslant}{0} +\setint{quad}{1000} +\setint{baselineskip}{1200} + +\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 + +\ifisint{monowidth}\then + \setint{stretchword}{0} + \setint{shrinkword}{0} + \setint{extraspace}{\int{interword}} +\Else + \setint{stretchword}{\scale{\int{interword}}{600}} + \setint{shrinkword}{\scale{\int{interword}}{240}} + \setint{extraspace}{\scale{\int{interword}}{240}} +\Fi + +% added by Thierry Bouche <Thierry.Bouche@ujf-grenoble.fr> +% 1997/02/07 to calculate values for extra EC fontdimens +% Amended by SPQR 1997/02/09 +\ifisglyph{X}\then + \setint{capheight}{\height{X}} +\Else + \setint{capheight}{750} +\Fi + +\ifisglyph{d}\then + \setint{ascender}{\height{d}} +\Else\ifisint{capheight}\then + \setint{ascender}{\int{capheight}} +\Else + \setint{ascender}{750} +\Fi\Fi + +\ifisglyph{Aring}\then + \setint{acccapheight}{\height{Aring}} +\Else + \setint{acccapheight}{999} +\Fi + +\ifisint{descender_neg}\then + \setint{descender}{\neg{\int{descender_neg}}} +\Else\ifisglyph{p}\then + \setint{descender}{\depth{p}} +\Else + \setint{descender}{250} +\Fi\Fi + +\ifisglyph{Aring}\then + \setint{maxheight}{\height{Aring}} +\Else + \setint{maxheight}{1000} +\Fi + +\ifisint{maxdepth_neg}\then + \setint{maxdepth}{\neg{\int{maxdepth_neg}}} +\Else\ifisglyph{j}\then + \setint{maxdepth}{\depth{j}} +\Else + \setint{maxdepth}{250} +\Fi\Fi + +\ifisglyph{six}\then + \setint{digitwidth}{\width{six}} +\Else + \setint{digitwidth}{500} +\Fi + +\setint{capstem}{0} % not in AFM files +% end changes by Thierry + + +\begincomment +\section{Font parameters} +\endcomment + +\setfontdimen{1}{italicslant} % italic slant +\setfontdimen{2}{interword} % interword space +\setfontdimen{3}{stretchword} % interword stretch +\setfontdimen{4}{shrinkword} % interword shrink +\setfontdimen{5}{xheight} % x-height +\setfontdimen{6}{quad} % quad +\setfontdimen{7}{extraspace} % extra space after . +\setfontdimen{8}{capheight} % cap height +\setfontdimen{9}{ascender} % ascender +\setfontdimen{10}{acccapheight} % accented cap height +\setfontdimen{11}{descender} % descender's depth +\setfontdimen{12}{maxheight} % max height +\setfontdimen{13}{maxdepth} % max depth +\setfontdimen{14}{digitwidth} % digit width +\setfontdimen{15}{verticalstem} % dominant width of verical stems +\setfontdimen{16}{baselineskip} % baselineskip + +\ifnumber{\int{ligaturing}}<{0}\then + \comment{In this case, the codingscheme can be different from the + default, and therefore we refrain from setting it.} +\Else + \setstr{codingscheme}{EXTENDED TEX FONT ENCODING - LATIN} +\Fi + + + +\begincomment +\section{The encoding} +There are 256 glyphs in this encoding. +\endcomment + +\setslot{\lc{Grave}{grave}} + \comment{The grave accent `\`{}'.} +\endsetslot + +\setslot{\lc{Acute}{acute}} + \comment{The acute accent `\'{}'.} +\endsetslot + +\setslot{\lc{Circumflex}{circumflex}} + \comment{The circumflex accent `\^{}'.} +\endsetslot + +\setslot{\lc{Tilde}{tilde}} + \comment{The tilde accent `\~{}'.} +\endsetslot + +\setslot{\lc{Dieresis}{dieresis}} + \comment{The umlaut or dieresis accent `\"{}'.} +\endsetslot + +\setslot{\lc{Hungarumlaut}{hungarumlaut}} + \comment{The long Hungarian umlaut `\H{}'.} +\endsetslot + +\setslot{\lc{Ring}{ring}} + \comment{The ring accent `\r{}'.} +\endsetslot + +\setslot{\lc{Caron}{caron}} + \comment{The caron or h\'a\v cek accent `\v{}'.} +\endsetslot + +\setslot{\lc{Breve}{breve}} + \comment{The breve accent `\u{}'.} +\endsetslot + +\setslot{\lc{Macron}{macron}} + \comment{The macron accent `\={}'.} +\endsetslot + +\setslot{\lc{Dotaccent}{dotaccent}} + \comment{The dot accent `\.{}'.} +\endsetslot + +\setslot{\lc{Cedilla}{cedilla}} + \comment{The cedilla accent `\c {}'.} +\endsetslot + +\setslot{\lc{Ogonek}{ogonek}} + \comment{The ogonek accent `\k {}'.} +\endsetslot + +\setslot{quotesinglbase} + \comment{A German single quote mark `\quotesinglbase' similar to a comma, + but with different sidebearings.} +\endsetslot + +\setslot{guilsinglleft} + \comment{A French single opening quote mark `\guilsinglleft', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{guilsinglright} + \comment{A French single closing quote mark `\guilsinglright', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{quotedblleft} + \comment{The English opening quote mark `\,\textquotedblleft\,'.} +\endsetslot + +\setslot{quotedblright} + \comment{The English closing quote mark `\,\textquotedblright\,'.} +\endsetslot + +\setslot{quotedblbase} + \comment{A German double quote mark `\quotedblbase' similar to two commas, + but with tighter letterspacing and different sidebearings.} +\endsetslot + +\setslot{guillemotleft} + \comment{A French double opening quote mark `\guillemotleft', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{guillemotright} + \comment{A French closing opening quote mark `\guillemotright', + unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{rangedash} + \ligature{LIG}{hyphen}{punctdash} + \comment{The number range dash `1--9'. In a monowidth font, this + might be set as `\texttt{1{-}9}'.} +\endsetslot + +\setslot{punctdash} + \comment{The punctuation dash `Oh---boy.' In a monowidth font, this + might be set as `\texttt{Oh{-}{-}boy.}'} +\endsetslot + +\setslot{compwordmark} + \comment{An invisible glyph, with zero width and depth, but the + height of lowercase letters without ascenders. + It is used to stop ligaturing in words like `shelf{}ful'.} +\endsetslot + +\setslot{perthousandzero} + \comment{A glyph which is placed after `\%' to produce a + `per-thousand', or twice to produce `per-ten-thousand'. + Your guess is as good as mine as to what this glyph should look + like in a monowidth font.} +\endsetslot + +\setslot{\lc{dotlessI}{dotlessi}} + \comment{A dotless i `\i', used to produce accented letters such as + `\=\i'.} +\endsetslot + +\setslot{\lc{dotlessJ}{dotlessj}} + \comment{A dotless j `\j', used to produce accented letters such as + `\=\j'. Most non-\TeX\ fonts do not have this glyph.} +\endsetslot + +\ifnumber{\int{ligaturing}}<{0}\then \skipslots{5}\Else + +\setslot{\lclig{FF}{ff}} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{\lc{I}{i}}{\lclig{FFI}{ffi}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FFL}{ffl}} + \Fi + \comment{The `ff' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FI}{fi}} + \comment{The `fi' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FL}{fl}} + \comment{The `fl' ligature. It should be two characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFI}{ffi}} + \comment{The `ffi' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\setslot{\lclig{FFL}{ffl}} + \comment{The `ffl' ligature. It should be three characters wide in a + monowidth font.} +\endsetslot + +\Fi + +\setslot{visiblespace} + \comment{A visible space glyph `\textvisiblespace'.} +\endsetslot + +\setslot{exclam} + \ligature{LIG}{quoteleft}{exclamdown} + \comment{The exclamation mark `!'.} +\endsetslot + +\setslot{quotedbl} + \comment{The `neutral' double quotation mark `\,\textquotedbl\,', + included for use in monowidth fonts, or for setting computer + programs. Note that the inclusion of this glyph in this slot + means that \TeX\ documents which used `{\tt\char`\"}' as an + input character will no longer work.} +\endsetslot + +\setslot{numbersign} + \comment{The hash sign `\#'.} +\endsetslot + +\setslot{dollar} + \comment{The dollar sign `\$'.} +\endsetslot + +\setslot{percent} + \comment{The percent sign `\%'.} +\endsetslot + +\setslot{ampersand} + \comment{The ampersand sign `\&'.} +\endsetslot + +\setslot{quoteright} + \ligature{LIG}{quoteright}{quotedblright} + \comment{The English closing single quote mark `\,\textquoteright\,'.} +\endsetslot + +\setslot{parenleft} + \comment{The opening parenthesis `('.} +\endsetslot + +\setslot{parenright} + \comment{The closing parenthesis `)'.} +\endsetslot + +\setslot{asterisk} + \comment{The raised asterisk `*'.} +\endsetslot + +\setslot{plus} + \comment{The addition sign `+'.} +\endsetslot + +\setslot{comma} + \ligature{LIG}{comma}{quotedblbase} + \comment{The comma `,'.} +\endsetslot + +\setslot{hyphen} + \ligature{LIG}{hyphen}{rangedash} + \ligature{LIG}{hyphenchar}{hyphenchar} + \comment{The hyphen `-'.} +\endsetslot + +\setslot{period} + \comment{The period `.'.} +\endsetslot + +\setslot{slash} + \comment{The forward oblique `/'.} +\endsetslot + +\setslot{\digit{zero}} + \comment{The number `0'. This (and all the other numerals) may be + old style or ranging digits.} +\endsetslot + +\setslot{\digit{one}} + \comment{The number `1'.} +\endsetslot + +\setslot{\digit{two}} + \comment{The number `2'.} +\endsetslot + +\setslot{\digit{three}} + \comment{The number `3'.} +\endsetslot + +\setslot{\digit{four}} + \comment{The number `4'.} +\endsetslot + +\setslot{\digit{five}} + \comment{The number `5'.} +\endsetslot + +\setslot{\digit{six}} + \comment{The number `6'.} +\endsetslot + +\setslot{\digit{seven}} + \comment{The number `7'.} +\endsetslot + +\setslot{\digit{eight}} + \comment{The number `8'.} +\endsetslot + +\setslot{\digit{nine}} + \comment{The number `9'.} +\endsetslot + +\setslot{colon} + \comment{The colon punctuation mark `:'.} +\endsetslot + +\setslot{semicolon} + \comment{The semi-colon punctuation mark `;'.} +\endsetslot + +\setslot{less} + \ligature{LIG}{less}{guillemotleft} + \comment{The less-than sign `\textless'.} +\endsetslot + +\setslot{equal} + \comment{The equals sign `='.} +\endsetslot + +\setslot{greater} + \ligature{LIG}{greater}{guillemotright} + \comment{The greater-than sign `\textgreater'.} +\endsetslot + +\setslot{question} + \ligature{LIG}{quoteleft}{questiondown} + \comment{The question mark `?'.} +\endsetslot + +\setslot{at} + \comment{The at sign `@'.} +\endsetslot + +\setslot{\uc{A}{a}} + \comment{The letter `{A}'.} +\endsetslot + +\setslot{\uc{B}{b}} + \comment{The letter `{B}'.} +\endsetslot + +\setslot{\uc{C}{c}} + \comment{The letter `{C}'.} +\endsetslot + +\setslot{\uc{D}{d}} + \comment{The letter `{D}'.} +\endsetslot + +\setslot{\uc{E}{e}} + \comment{The letter `{E}'.} +\endsetslot + +\setslot{\uc{F}{f}} + \comment{The letter `{F}'.} +\endsetslot + +\setslot{\uc{G}{g}} + \comment{The letter `{G}'.} +\endsetslot + +\setslot{\uc{H}{h}} + \comment{The letter `{H}'.} +\endsetslot + +\ifnumber{\int{ligaturing}}<{-1}\then \skipslots{1}\Else + +\setslot{\uc{I}{i}} + \comment{The letter `{I}'.} +\endsetslot + +\Fi + +\setslot{\uc{J}{j}} + \comment{The letter `{J}'.} +\endsetslot + +\setslot{\uc{K}{k}} + \comment{The letter `{K}'.} +\endsetslot + +\setslot{\uc{L}{l}} + \comment{The letter `{L}'.} +\endsetslot + +\setslot{\uc{M}{m}} + \comment{The letter `{M}'.} +\endsetslot + +\setslot{\uc{N}{n}} + \comment{The letter `{N}'.} +\endsetslot + +\setslot{\uc{O}{o}} + \comment{The letter `{O}'.} +\endsetslot + +\setslot{\uc{P}{p}} + \comment{The letter `{P}'.} +\endsetslot + +\setslot{\uc{Q}{q}} + \comment{The letter `{Q}'.} +\endsetslot + +\setslot{\uc{R}{r}} + \comment{The letter `{R}'.} +\endsetslot + +\setslot{\uc{S}{s}} + \comment{The letter `{S}'.} +\endsetslot + +\setslot{\uc{T}{t}} + \comment{The letter `{T}'.} +\endsetslot + +\setslot{\uc{U}{u}} + \comment{The letter `{U}'.} +\endsetslot + +\setslot{\uc{V}{v}} + \comment{The letter `{V}'.} +\endsetslot + +\setslot{\uc{W}{w}} + \comment{The letter `{W}'.} +\endsetslot + +\setslot{\uc{X}{x}} + \comment{The letter `{X}'.} +\endsetslot + +\setslot{\uc{Y}{y}} + \comment{The letter `{Y}'.} +\endsetslot + +\setslot{\uc{Z}{z}} + \comment{The letter `{Z}'.} +\endsetslot + +\setslot{bracketleft} + \comment{The opening square bracket `['.} +\endsetslot + +\setslot{backslash} + \comment{The backwards oblique `\textbackslash'.} +\endsetslot + +\setslot{bracketright} + \comment{The closing square bracket `]'.} +\endsetslot + +\setslot{asciicircum} + \comment{The ASCII upward-pointing arrow head `\textasciicircum'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{underscore} + \comment{The ASCII underline character `\textunderscore', usually + set on the baseline. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{quoteleft} + \ligature{LIG}{quoteleft}{quotedblleft} + \comment{The English opening single quote mark `\,\textquoteleft\,'.} +\endsetslot + +\setslot{\lc{A}{a}} + \comment{The letter `{a}'.} +\endsetslot + +\setslot{\lc{B}{b}} + \comment{The letter `{b}'.} +\endsetslot + +\ifnumber{\int{ligaturing}}<{-1}\then \skipslots{1}\Else + + \setslot{\lc{C}{c}} + \comment{The letter `{c}'.} + \endsetslot + +\Fi + +\setslot{\lc{D}{d}} + \comment{The letter `{d}'.} +\endsetslot + +\setslot{\lc{E}{e}} + \comment{The letter `{e}'.} +\endsetslot + +\ifnumber{\int{ligaturing}}<{-1}\then \skipslots{1}\Else + + \setslot{\lc{F}{f}} + \ifnumber{\int{ligaturing}}>{0}\then + \ligature{LIG}{\lc{I}{i}}{\lclig{FI}{fi}} + \ligature{LIG}{\lc{F}{f}}{\lclig{FF}{ff}} + \ligature{LIG}{\lc{L}{l}}{\lclig{FL}{fl}} + \Fi + \comment{The letter `{f}'.} + \endsetslot + +\Fi + +\setslot{\lc{G}{g}} + \comment{The letter `{g}'.} +\endsetslot + +\setslot{\lc{H}{h}} + \comment{The letter `{h}'.} +\endsetslot + +\ifnumber{\int{ligaturing}}<{-1}\then \skipslots{1}\Else + + \setslot{\lc{I}{i}} + \comment{The letter `{i}'.} + \endsetslot + +\Fi + +\setslot{\lc{J}{j}} + \comment{The letter `{j}'.} +\endsetslot + +\setslot{\lc{K}{k}} + \comment{The letter `{k}'.} +\endsetslot + +\setslot{\lc{L}{l}} + \comment{The letter `{l}'.} +\endsetslot + +\setslot{\lc{M}{m}} + \comment{The letter `{m}'.} +\endsetslot + +\setslot{\lc{N}{n}} + \comment{The letter `{n}'.} +\endsetslot + +\setslot{\lc{O}{o}} + \comment{The letter `{o}'.} +\endsetslot + +\setslot{\lc{P}{p}} + \comment{The letter `{p}'.} +\endsetslot + +\setslot{\lc{Q}{q}} + \comment{The letter `{q}'.} +\endsetslot + +\setslot{\lc{R}{r}} + \comment{The letter `{r}'.} +\endsetslot + +\ifnumber{\int{ligaturing}}<{-1}\then \skipslots{1}\Else + + \setslot{\lc{S}{s}} + \comment{The letter `{s}'.} + \endsetslot + +\Fi + +\setslot{\lc{T}{t}} + \comment{The letter `{t}'.} +\endsetslot + +\setslot{\lc{U}{u}} + \comment{The letter `{u}'.} +\endsetslot + +\setslot{\lc{V}{v}} + \comment{The letter `{v}'.} +\endsetslot + +\setslot{\lc{W}{w}} + \comment{The letter `{w}'.} +\endsetslot + +\setslot{\lc{X}{x}} + \comment{The letter `{x}'.} +\endsetslot + +\setslot{\lc{Y}{y}} + \comment{The letter `{y}'.} +\endsetslot + +\setslot{\lc{Z}{z}} + \comment{The letter `{z}'.} +\endsetslot + +\setslot{braceleft} + \comment{The opening curly brace `\textbraceleft'.} +\endsetslot + +\setslot{bar} + \comment{The ASCII vertical bar `\textbar'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{braceright} + \comment{The closing curly brace `\textbraceright'.} +\endsetslot + +\setslot{asciitilde} + \comment{The ASCII tilde `\textasciitilde'. + This is included for compatibility with typewriter fonts used + for computer listings.} +\endsetslot + +\setslot{hyphenchar} + \comment{The glyph used for hyphenation in this font, which will + almost always be the same as `hyphen'.} +\endsetslot + +\setslot{\uctop{Abreve}{abreve}} + \comment{The letter `\u A'.} +\endsetslot + +\setslot{\uc{Aogonek}{aogonek}} + \comment{The letter `\k A'.} +\endsetslot + +\setslot{\uctop{Cacute}{cacute}} + \comment{The letter `\' C'.} +\endsetslot + +\setslot{\uctop{Ccaron}{ccaron}} + \comment{The letter `\v C'.} +\endsetslot + +\setslot{\uctop{Dcaron}{dcaron}} + \comment{The letter `\v D'.} +\endsetslot + +\setslot{\uctop{Ecaron}{ecaron}} + \comment{The letter `\v E'.} +\endsetslot + +\setslot{\uc{Eogonek}{eogonek}} + \comment{The letter `\k E'.} +\endsetslot + +\setslot{\uctop{Gbreve}{gbreve}} + \comment{The letter `\u G'.} +\endsetslot + +\setslot{\uctop{Lacute}{lacute}} + \comment{The letter `\' L'.} +\endsetslot + +\setslot{\uc{Lcaron}{lcaron}} + \comment{The letter `\v L'.} +\endsetslot + +\setslot{\uc{Lslash}{lslash}} + \comment{The letter `\L'.} +\endsetslot + +\setslot{\uctop{Nacute}{nacute}} + \comment{The letter `\' N'.} +\endsetslot + +\setslot{\uctop{Ncaron}{ncaron}} + \comment{The letter `\v N'.} +\endsetslot + +\setslot{\uc{Ng}{ng}} + \comment{The Sami letter `\NG'. It is unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\uctop{Ohungarumlaut}{ohungarumlaut}} + \comment{The letter `\H O'.} +\endsetslot + +\setslot{\uctop{Racute}{racute}} + \comment{The letter `\' R'.} +\endsetslot + +\setslot{\uctop{Rcaron}{rcaron}} + \comment{The letter `\v R'.} +\endsetslot + +\setslot{\uctop{Sacute}{sacute}} + \comment{The letter `\' S'.} +\endsetslot + +\setslot{\uctop{Scaron}{scaron}} + \comment{The letter `\v S'.} +\endsetslot + +\setslot{\uc{Scedilla}{scedilla}} + \comment{The letter `\c S'.} +\endsetslot + +\setslot{\uctop{Tcaron}{tcaron}} + \comment{The letter `\v T'.} +\endsetslot + +\setslot{\uc{Tcedilla}{tcedilla}} + \comment{The letter `\c T'.} +\endsetslot + +\setslot{\uctop{Uhungarumlaut}{uhungarumlaut}} + \comment{The letter `\H U'.} +\endsetslot + +\setslot{\uctop{Uring}{uring}} + \comment{The letter `\r U'.} +\endsetslot + +\setslot{\uctop{Ydieresis}{ydieresis}} + \comment{The letter `\" Y'.} +\endsetslot + +\setslot{\uctop{Zacute}{zacute}} + \comment{The letter `\' Z'.} +\endsetslot + +\setslot{\uctop{Zcaron}{zcaron}} + \comment{The letter `\v Z'.} +\endsetslot + +\setslot{\uctop{Zdotaccent}{zdotaccent}} + \comment{The letter `\. Z'.} +\endsetslot + +\ifnumber{\int{ligaturing}}<{0}\then \skipslots{1}\Else + + \setslot{\uclig{IJ}{ij}} + \comment{The letter `IJ'. This is a single letter, and in a + monowidth font should ideally be one letter wide.} + \endsetslot + +\Fi + +\setslot{\uctop{Idotaccent}{idotaccent}} + \comment{The letter `\. I'.} +\endsetslot + +\setslot{\lc{Dbar}{dbar}} + \comment{The letter `\dj'.} +\endsetslot + +\setslot{section} + \comment{The section mark `\textsection'.} +\endsetslot + +\setslot{\lctop{Abreve}{abreve}} + \comment{The letter `\u a'.} +\endsetslot + +\setslot{\lc{Aogonek}{aogonek}} + \comment{The letter `\k a'.} +\endsetslot + +\setslot{\lctop{Cacute}{cacute}} + \comment{The letter `\' c'.} +\endsetslot + +\setslot{\lctop{Ccaron}{ccaron}} + \comment{The letter `\v c'.} +\endsetslot + +\setslot{\lctop{Dcaron}{dcaron}} + \comment{The letter `\v d'.} +\endsetslot + +\setslot{\lctop{Ecaron}{ecaron}} + \comment{The letter `\v e'.} +\endsetslot + +\setslot{\lc{Eogonek}{eogonek}} + \comment{The letter `\k e'.} +\endsetslot + +\setslot{\lctop{Gbreve}{gbreve}} + \comment{The letter `\u g'.} +\endsetslot + +\setslot{\lctop{Lacute}{lacute}} + \comment{The letter `\' l'.} +\endsetslot + +\setslot{\lc{Lcaron}{lcaron}} + \comment{The letter `\v l'.} +\endsetslot + +\setslot{\lc{Lslash}{lslash}} + \comment{The letter `\l'.} +\endsetslot + +\setslot{\lctop{Nacute}{nacute}} + \comment{The letter `\' n'.} +\endsetslot + +\setslot{\lctop{Ncaron}{ncaron}} + \comment{The letter `\v n'.} +\endsetslot + +\setslot{\lc{Ng}{ng}} + \comment{The Sami letter `\ng'. It is unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\lctop{Ohungarumlaut}{ohungarumlaut}} + \comment{The letter `\H o'.} +\endsetslot + +\setslot{\lctop{Racute}{racute}} + \comment{The letter `\' r'.} +\endsetslot + +\setslot{\lctop{Rcaron}{rcaron}} + \comment{The letter `\v r'.} +\endsetslot + +\setslot{\lctop{Sacute}{sacute}} + \comment{The letter `\' s'.} +\endsetslot + +\setslot{\lctop{Scaron}{scaron}} + \comment{The letter `\v s'.} +\endsetslot + +\setslot{\lc{Scedilla}{scedilla}} + \comment{The letter `\c s'.} +\endsetslot + +\setslot{\lctop{Tcaron}{tcaron}} + \comment{The letter `\v t'.} +\endsetslot + +\setslot{\lc{Tcedilla}{tcedilla}} + \comment{The letter `\c t'.} +\endsetslot + +\setslot{\lctop{Uhungarumlaut}{uhungarumlaut}} + \comment{The letter `\H u'.} +\endsetslot + +\setslot{\lctop{Uring}{uring}} + \comment{The letter `\r u'.} +\endsetslot + +\setslot{\lctop{Ydieresis}{ydieresis}} + \comment{The letter `\" y'.} +\endsetslot + +\setslot{\lctop{Zacute}{zacute}} + \comment{The letter `\' z'.} +\endsetslot + +\setslot{\lctop{Zcaron}{zcaron}} + \comment{The letter `\v z'.} +\endsetslot + +\setslot{\lctop{Zdotaccent}{zdotaccent}} + \comment{The letter `\. z'.} +\endsetslot + +\ifnumber{\int{ligaturing}}<{0}\then \skipslots{1}\Else + + \setslot{\lclig{IJ}{ij}} + \comment{The letter `ij'. This is a single letter, and in a + monowidth font should ideally be one letter wide.} + \endsetslot + +\Fi + +\setslot{exclamdown} + \comment{The Spanish punctuation mark `!`'.} +\endsetslot + +\setslot{questiondown} + \comment{The Spanish punctuation mark `?`'.} +\endsetslot + +\setslot{sterling} + \comment{The British currency mark `\textsterling'.} +\endsetslot + +\setslot{\uctop{Agrave}{agrave}} + \comment{The letter `\` A'.} +\endsetslot + +\setslot{\uctop{Aacute}{aacute}} + \comment{The letter `\' A'.} +\endsetslot + +\setslot{\uctop{Acircumflex}{acircumflex}} + \comment{The letter `\^ A'.} +\endsetslot + +\setslot{\uctop{Atilde}{atilde}} + \comment{The letter `\~ A'.} +\endsetslot + +\setslot{\uctop{Adieresis}{adieresis}} + \comment{The letter `\" A'.} +\endsetslot + +\setslot{\uctop{Aring}{aring}} + \comment{The letter `\r A'.} +\endsetslot + +\setslot{\uc{AE}{ae}} + \comment{The letter `\AE'. This is a single letter, and should not be + faked with `AE'.} +\endsetslot + +\setslot{\uc{Ccedilla}{ccedilla}} + \comment{The letter `\c C'.} +\endsetslot + +\setslot{\uctop{Egrave}{egrave}} + \comment{The letter `\` E'.} +\endsetslot + +\setslot{\uctop{Eacute}{eacute}} + \comment{The letter `\' E'.} +\endsetslot + +\setslot{\uctop{Ecircumflex}{ecircumflex}} + \comment{The letter `\^ E'.} +\endsetslot + +\setslot{\uctop{Edieresis}{edieresis}} + \comment{The letter `\" E'.} +\endsetslot + +\setslot{\uctop{Igrave}{igrave}} + \comment{The letter `\` I'.} +\endsetslot + +\setslot{\uctop{Iacute}{iacute}} + \comment{The letter `\' I'.} +\endsetslot + +\setslot{\uctop{Icircumflex}{icircumflex}} + \comment{The letter `\^ I'.} +\endsetslot + +\setslot{\uctop{Idieresis}{idieresis}} + \comment{The letter `\" I'.} +\endsetslot + +\setslot{\uc{Eth}{eth}} + \comment{The uppercase Icelandic letter `Eth' similar to a `D' + with a horizontal bar through the stem. It is unavailable + in \plain\ \TeX.} +\endsetslot + +\setslot{\uctop{Ntilde}{ntilde}} + \comment{The letter `\~ N'.} +\endsetslot + +\setslot{\uctop{Ograve}{ograve}} + \comment{The letter `\` O'.} +\endsetslot + +\setslot{\uctop{Oacute}{oacute}} + \comment{The letter `\' O'.} +\endsetslot + +\setslot{\uctop{Ocircumflex}{ocircumflex}} + \comment{The letter `\^ O'.} +\endsetslot + +\setslot{\uctop{Otilde}{otilde}} + \comment{The letter `\~ O'.} +\endsetslot + +\setslot{\uctop{Odieresis}{odieresis}} + \comment{The letter `\" O'.} +\endsetslot + +\setslot{\uc{OE}{oe}} + \comment{The letter `\OE'. This is a single letter, and should not be + faked with `OE'.} +\endsetslot + +\setslot{\uc{Oslash}{oslash}} + \comment{The letter `\O'.} +\endsetslot + +\setslot{\uctop{Ugrave}{ugrave}} + \comment{The letter `\` U'.} +\endsetslot + +\setslot{\uctop{Uacute}{uacute}} + \comment{The letter `\' U'.} +\endsetslot + +\setslot{\uctop{Ucircumflex}{ucircumflex}} + \comment{The letter `\^ U'.} +\endsetslot + +\setslot{\uctop{Udieresis}{udieresis}} + \comment{The letter `\" U'.} +\endsetslot + +\setslot{\uctop{Yacute}{yacute}} + \comment{The letter `\' Y'.} +\endsetslot + +\setslot{\uc{Thorn}{thorn}} + \comment{The Icelandic capital letter Thorn, similar to a `P' + with the bowl moved down. It is unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\uclig{SS}{germandbls}} + \comment{The ligature `SS', used to give an upper case `\ss'. + In a monowidth font it should be two letters wide.} +\endsetslot + +\setslot{\lctop{Agrave}{agrave}} + \comment{The letter `\` a'.} +\endsetslot + +\setslot{\lctop{Aacute}{aacute}} + \comment{The letter `\' a'.} +\endsetslot + +\setslot{\lctop{Acircumflex}{acircumflex}} + \comment{The letter `\^ a'.} +\endsetslot + +\setslot{\lctop{Atilde}{atilde}} + \comment{The letter `\~ a'.} +\endsetslot + +\setslot{\lctop{Adieresis}{adieresis}} + \comment{The letter `\" a'.} +\endsetslot + +\setslot{\lctop{Aring}{aring}} + \comment{The letter `\r a'.} +\endsetslot + +\setslot{\lc{AE}{ae}} + \comment{The letter `\ae'. This is a single letter, and should not be + faked with `ae'.} +\endsetslot + +\setslot{\lc{Ccedilla}{ccedilla}} + \comment{The letter `\c c'.} +\endsetslot + +\setslot{\lctop{Egrave}{egrave}} + \comment{The letter `\` e'.} +\endsetslot + +\setslot{\lctop{Eacute}{eacute}} + \comment{The letter `\' e'.} +\endsetslot + +\setslot{\lctop{Ecircumflex}{ecircumflex}} + \comment{The letter `\^ e'.} +\endsetslot + +\setslot{\lctop{Edieresis}{edieresis}} + \comment{The letter `\" e'.} +\endsetslot + +\setslot{\lctop{Igrave}{igrave}} + \comment{The letter `\`\i'.} +\endsetslot + +\setslot{\lctop{Iacute}{iacute}} + \comment{The letter `\'\i'.} +\endsetslot + +\setslot{\lctop{Icircumflex}{icircumflex}} + \comment{The letter `\^\i'.} +\endsetslot + +\setslot{\lctop{Idieresis}{idieresis}} + \comment{The letter `\"\i'.} +\endsetslot + +\setslot{\lc{Eth}{eth}} + \comment{The Icelandic lowercase letter `eth' similar to + a `$\partial$' with an oblique bar through the stem. + It is unavailable in \plain\ \TeX.} +\endsetslot + +\setslot{\lctop{Ntilde}{ntilde}} + \comment{The letter `\~ n'.} +\endsetslot + +\setslot{\lctop{Ograve}{ograve}} + \comment{The letter `\` o'.} +\endsetslot + +\setslot{\lctop{Oacute}{oacute}} + \comment{The letter `\' o'.} +\endsetslot + +\setslot{\lctop{Ocircumflex}{ocircumflex}} + \comment{The letter `\^ o'.} +\endsetslot + +\setslot{\lctop{Otilde}{otilde}} + \comment{The letter `\~ o'.} +\endsetslot + +\setslot{\lctop{Odieresis}{odieresis}} + \comment{The letter `\" o'.} +\endsetslot + +\setslot{\lc{OE}{oe}} + \comment{The letter `\oe'. This is a single letter, and should not be + faked with `oe'.} +\endsetslot + +\setslot{\lc{Oslash}{oslash}} + \comment{The letter `\o'.} +\endsetslot + +\setslot{\lctop{Ugrave}{ugrave}} + \comment{The letter `\` u'.} +\endsetslot + +\setslot{\lctop{Uacute}{uacute}} + \comment{The letter `\' u'.} +\endsetslot + +\setslot{\lctop{Ucircumflex}{ucircumflex}} + \comment{The letter `\^ u'.} +\endsetslot + +\setslot{\lctop{Udieresis}{udieresis}} + \comment{The letter `\" u'.} +\endsetslot + +\setslot{\lctop{Yacute}{yacute}} + \comment{The letter `\' y'.} +\endsetslot + +\setslot{\lc{Thorn}{thorn}} + \comment{The Icelandic lowercase letter `thorn', similar to a `p' + with an ascender rising from the stem. It is unavailable + in \plain\ \TeX.} +\endsetslot + +\setslot{\lc{SS}{germandbls}} + \comment{The letter `\ss'.} +\endsetslot + +\endencoding + + +\section{Changes} + +This is one of the files which have been with \textsf{fontinst} +``forever'', so a lot of the early changes where probably never +recorded. The following are from the \texttt{CHANGES} file. + +1994/06/01 (v\,1.327): Removed the f-liagatures for monowidth fonts. +(ASAJ) Sebastian spotted that one. + +1994/11/29 (v\,1.401): Added \texttt{hyphen}${}*{}$\texttt{hyphenchar}% +${}\rightarrow{}$\texttt{hyphenchar} ligature (so that foo-bar words +can be hyphenated as foo$\langle\mbox{\textit{hyphenchar}}\rangle$bar)% +---spotted by Frank Mittelbach. Made default stretch and shrink 50\% +and 16.7\% of interword space respectively. (ASAJ) + +1996/01/23 (v\,1.504): +Included some of Sebastian's changes: upped stretch and shrink to $.6$ +and $.24$ of space; reduced extra space after {.} to $.24$ of space; +made \verb|\setslot{grave}| etc.\ into +\verb|\setslot{\lc{Grave}{grave}}| etc. (ASAJ) + +\bigskip +\noindent The following changes have been made after changes stopped +being recorded in the \texttt{CHANGES} file. + +1997/02/07 (v\,1.7): Added code for calculating values for and setting +the extra fontdimens found in the \texttt{ec} fonts. (Thierry Bouche) + +1998/06/29 (v\,1.8): Using \texttt{T1} encoding for character +examples. (UV) + +2002/10/26 (v\,1.923): Added \TypesetIntegerExpression{\int{ligaturing}} +parameter. Using \verb|\showbranches|. Using \verb|\setfontdimen|. +Changed definition of fontdimen 15 slightly---from ``the width of +capital vertical stems'' to ``the dominant width of vertical stems'', +which is provided in AFM files. (LH) + + + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/latinetx/t1c.etx b/Master/texmf-dist/tex/fontinst/latinetx/t1c.etx new file mode 100644 index 00000000000..2805f64d461 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/t1c.etx @@ -0,0 +1,63 @@ +\relax + +% t1c.etx -- install a T1-encoded faked small-caps font +% +% This is used to install expertized or faked small-caps fonts; +% real small caps fonts built from fonts with variant c8r are +% installed using the default t1.etx. + +\encoding + +% We define the parameters for t1.etx to produce a c&sc font. + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#1small} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1spaced} +\setcommand\digit#1{#1} + +%% + % Commented out 2002/12/14, since t1.etx does this more carefully + % anyway. It could perhaps be useful to use the width of `Ismall' + % instead of `i', but even that is dubious. (LH) + % + % \ifisglyph{space}\then + % \setint{interword}{\width{space}} + % \else\ifisglyph{i}\then + % \setint{interword}{\width{i}} + % \else + % \setint{interword}{333} + % \fi\fi + %% + +%% + % Commented out 2002/12/14, since these parameters are anyway never used + % by t1.etx (they are used by latin.mtx, but by the time we get here, that + % file has already been processed). (LH) + % + % % The default letter spacing is 1/10 of the design size, with small + % % caps 80% the size of large caps. + % + % \setint{smallcapsscale}{800} + % + % \ifisint{monowidth}\then + % \setint{smallcapsextraspace} + % {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + % \setint{smallcapsspacing}{0} + % \else + % \setint{smallcapsextraspace}{50} + % \setint{smallcapsspacing}{50} + % \fi + %% + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\fi + +% Then we call t1.etx. + +\inputetx{t1} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/latinetx/t1cj.etx b/Master/texmf-dist/tex/fontinst/latinetx/t1cj.etx new file mode 100644 index 00000000000..2c80b3821b8 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/t1cj.etx @@ -0,0 +1,51 @@ +\relax + +% t1cj.etx -- install a T1-encoded faked small-caps & oldstyle font +% +% This is used to install expertized or faked small-caps fonts; +% real small caps fonts built from fonts with variant c8r are +% installed using the default t1.etx. + +\encoding + +% We define the parameters for t1.etx to produce a c&sc font. + +\setcommand\lc#1#2{#1small} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#1small} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#1small} +\setcommand\uclig#1#2{#1spaced} +\setcommand\digit#1{#1oldstyle} + +% The default letter spacing is 1/10 of the design size, with small +% caps 80% the size of large caps. + +\setint{smallcapsscale}{800} + +\ifisglyph{space}\then + \setint{interword}{\width{space}} +\else\ifisglyph{i}\then + \setint{interword}{\width{i}} +\else + \setint{interword}{333} +\fi\fi + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\div{\scale{\int{interword}}{\sub{1000}{\int{smallcapsscale}}}}{2}} + \setint{smallcapsspacing}{0} +\else + \setint{smallcapsextraspace}{50} + \setint{smallcapsspacing}{50} +\fi + +\ifisint{capspacing}\then + \setint{letterspacing}{\int{capspacing}} +\fi + +% Then we call t1.etx. + +\inputetx{t1} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/latinetx/t1i.etx b/Master/texmf-dist/tex/fontinst/latinetx/t1i.etx new file mode 100644 index 00000000000..99b9819b206 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/t1i.etx @@ -0,0 +1,20 @@ +\relax + +% t1i.etx -- install a T1-encoded italic font +% +% We do not need to distinguish between roman and italic in T1, +% hence we simply call t1.etx with default parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1} + +\inputetx{t1} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/latinetx/t1ij.etx b/Master/texmf-dist/tex/fontinst/latinetx/t1ij.etx new file mode 100644 index 00000000000..6eb3e286193 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/t1ij.etx @@ -0,0 +1,20 @@ +\relax + +% t1ij.etx -- install a T1-encoded italic font with oldstyle digits +% +% We do not need to distinguish between roman and italic in T1, +% hence we simply call t1.etx with oldstyle parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +\inputetx{t1} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/latinetx/t1j.etx b/Master/texmf-dist/tex/fontinst/latinetx/t1j.etx new file mode 100644 index 00000000000..b8e575968e4 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/t1j.etx @@ -0,0 +1,20 @@ +\relax + +% t1j.etx -- install a T1-encoded roman font with oldstyle digits +% +% We do not need to distinguish between roman and italic in T1, +% hence we simply call t1.etx with oldstyle parameters. + +\encoding + +\setcommand\lc#1#2{#2} +\setcommand\uc#1#2{#1} +\setcommand\lctop#1#2{#2} +\setcommand\uctop#1#2{#1} +\setcommand\lclig#1#2{#2} +\setcommand\uclig#1#2{#1} +\setcommand\digit#1{#1oldstyle} + +\inputetx{t1} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/latinetx/txtfdmns.etx b/Master/texmf-dist/tex/fontinst/latinetx/txtfdmns.etx new file mode 100644 index 00000000000..a2242468b60 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinetx/txtfdmns.etx @@ -0,0 +1,136 @@ +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc} + +\begin{document} + +\title{\texttt{textfdim} --- text font dimensions} +\author{Alan Jeffrey\and Thierry Bouche\and Sebastian Rahtz\and + Lars Hellstr\"om} +\date{2002/10/25} +\maketitle + +\begin{abstract} + This encoding file sets font dimensions 1--16 as for modern + (\texttt{T1}-encoded) text fonts. Much of the code comes from + \texttt{t1.etx}. +\end{abstract} + +\showbranches + +\encoding + +\needsfontinstversion{1.917} + +\begincomment +\section{Default values} + +This code tries to produce reasonable values for the font dimensions, +in case the font metrics didn't specify them. Preferably, all the +integers computed below should already be set. +\endcomment + + +\setint{italicslant}{0} +\setint{quad}{1000} + +\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 + +\ifisint{monowidth}\then + \setint{stretchword}{0} + \setint{shrinkword}{0} + \setint{extraspace}{\int{interword}} +\Else + \setint{stretchword}{\scale{\int{interword}}{600}} + \setint{shrinkword}{\scale{\int{interword}}{240}} + \setint{extraspace}{\scale{\int{interword}}{240}} +\Fi + + +\ifisglyph{X}\then + \setint{capheight}{\height{X}} +\Else + \setint{capheight}{750} +\Fi + +\ifisglyph{d}\then + \setint{ascender}{\height{d}} +\Else + \setint{ascender}{\int{capheight}} +\Fi + +\ifisglyph{Aring}\then + \setint{acccapheight}{\height{Aring}} + \setint{maxheight}{\height{Aring}} +\Else + \setint{acccapheight}{999} + \setint{maxheight}{1000} +\Fi + +\ifisint{descender_neg}\then + \setint{descender}{\neg{\int{descender_neg}}} +\Else\ifisglyph{p}\then + \setint{descender}{\depth{p}} +\Else + \setint{descender}{250} +\Fi\Fi + + +\ifisint{maxdepth_neg}\then + \setint{maxdepth}{\neg{\int{maxdepth_neg}}} +\Else\ifisglyph{j}\then + \setint{maxdepth}{\depth{j}} +\Else + \setint{maxdepth}{250} +\Fi\Fi + +\ifisglyph{six}\then + \setint{digitwidth}{\width{six}} +\Else + \setint{digitwidth}{500} +\Fi + +\setint{baselineskip}{1200} + + +\begincomment +\section{Defining font dimensions} +\endcomment + +\setfontdimen{1}{italicslant} % italic slant +\setfontdimen{2}{interword} % interword space +\setfontdimen{3}{stretchword} % interword stretch +\setfontdimen{4}{shrinkword} % interword shrink +\setfontdimen{5}{xheight} % x-height +\setfontdimen{6}{quad} % quad +\setfontdimen{7}{extraspace} % extra space after . +\setfontdimen{8}{capheight} % cap height +\setfontdimen{9}{ascender} % ascender +\setfontdimen{10}{acccapheight} % accented cap height +\setfontdimen{11}{descender} % descender's depth +\setfontdimen{12}{maxheight} % max height +\setfontdimen{13}{maxdepth} % max depth +\setfontdimen{14}{digitwidth} % digit width +\setfontdimen{15}{verticalstem} % dominant width of verical stems +\setfontdimen{16}{baselineskip} % baselineskip + +\endencoding + +\section{Changes} + +This file was created 2002/10/25. + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/8r.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/8r.mtx new file mode 100644 index 00000000000..b15d84069f0 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/8r.mtx @@ -0,0 +1,234 @@ +% Copyright 1994, 1995, 1996 Constantin Kahn, Sebastian Rathz, and +% Alan Jeffrey, +% hacked and maintained 1997, 1998 Sebastian Rathz, +% copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Constantin Kahn and Sebastian Rathz and +%%% Ulrik Vieth and Lars Hellstr{\"o}m", +%%% version = "1.910", +%%% date = "15 November 1999", +%%% time = "21:54:57 CET", +%%% filename = "8r.mtx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "26393 234 602 7162", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, raw, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the 8r metrics file, for use with the +%%% fontinst utility. It is used to install raw +%%% fonts using the 8r encoding.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +% List of changes now at end of file. + +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[1999/10/16] + +\title{The metric adjustments for ligful \texttt{8r}-encoded fonts} +\author{Constantin Kahn\and Sebastian Rathz\and + Ulrik Vieth\and Lars Hellstr\"om} +\date{15 November 1999 \\ +Version 1.910} + +\begin{document} +\maketitle + +This file is just the part of \texttt{latin.mtx} that's needed for +installing kern-and-ligful \texttt{8r} fonts. + +\showbranches + +\metrics + +\needsfontinstversion{1.909} + +\begincomment +\section{Duplicating glyphs} + +This part has been commented out since as of v\,1.9 \textsf{fontinst} +has no problem putting the same glyph in several slots (it used to +cause some kerns and ligatures to be lost). +\endcomment + +% Get a `space' into the `alternate-space' slot (nee `nbspace') +% +%\setglyph{alternate-space} +% \glyph{space}{1000} +%\endsetglyph + + +% \setglyph{alternate-hyphen} +% \glyph{hyphen}{1000} +% \comment{Get a \texttt{hyphen} into the \texttt{alternate-hyphen} +% slot (nee \texttt{softhyphen}).} +% \endsetglyph + +% The LGC claims that `quoteleft' and `quoteright' appear twice, +% which is not the case for 8r.enc, but does apply for texnansi.enc. +% We prefer the ASCII position and mark the second one as unused. +% +%\setglyph{quoteleft-unused} +% \glyph{quoteleft}{1000} +%\endsetglyph +%\setglyph{quoteright-unused} +% \glyph{quoteright}{1000} +%\endsetglyph + + +\begincomment +\section{Kerning} +Kern accented characters the same way as their base characters. +Characters are listed in the order in which they appear in +\texttt{8r.enc}. +\endcomment + + +% 0-31, 128-159 +\setleftrightkerning{Lslash}{L}{1000} +%\setleftrightkerning{lslash}{l}{1000} + +\setleftrightkerning{Zcaron}{Z}{1000} +%\setleftrightkerning{zcaron}{z}{1000} + +\setleftrightkerning{Scaron}{S}{1000} +%\setleftrightkerning{scaron}{s}{1000} + +\setleftrightkerning{Ydieresis}{Y}{1000} + +% 192-255 +\setleftrightkerning{Agrave}{A}{1000} +\setleftrightkerning{Aacute}{A}{1000} +\setleftrightkerning{Acircumflex}{A}{1000} +\setleftrightkerning{Atilde}{A}{1000} +\setleftrightkerning{Adieresis}{A}{1000} +\setleftrightkerning{Aring}{A}{1000} + +\setleftrightkerning{Ccedilla}{C}{1000} + +\setleftrightkerning{Egrave}{E}{1000} +\setleftrightkerning{Eacute}{E}{1000} +\setleftrightkerning{Ecircumflex}{E}{1000} +\setleftrightkerning{Edieresis}{E}{1000} + +\setleftrightkerning{Igrave}{I}{1000} +\setleftrightkerning{Iacute}{I}{1000} +\setleftrightkerning{Icircumflex}{I}{1000} +\setleftrightkerning{Idieresis}{I}{1000} + +\setleftrightkerning{Ograve}{O}{1000} +\setleftrightkerning{Oacute}{O}{1000} +\setleftrightkerning{Ocircumflex}{O}{1000} +\setleftrightkerning{Otilde}{O}{1000} +\setleftrightkerning{Odieresis}{O}{1000} +\setleftrightkerning{Oslash}{O}{1000} + +\setleftrightkerning{Ugrave}{U}{1000} +\setleftrightkerning{Uacute}{U}{1000} +\setleftrightkerning{Ucircumflex}{U}{1000} +\setleftrightkerning{Udieresis}{U}{1000} + +\setleftrightkerning{Yacute}{Y}{1000} + +%\setleftrightkerning{agrave}{a}{1000} +%\setleftrightkerning{aacute}{a}{1000} +%\setleftrightkerning{acircumflex}{a}{1000} +%\setleftrightkerning{atilde}{a}{1000} +%\setleftrightkerning{adieresis}{a}{1000} +%\setleftrightkerning{aring}{a}{1000} + +\setleftrightkerning{ccedilla}{c}{1000} + +%\setleftrightkerning{egrave}{e}{1000} +%\setleftrightkerning{eacute}{e}{1000} +%\setleftrightkerning{ecircumflex}{e}{1000} +%\setleftrightkerning{edieresis}{e}{1000} + +%\setleftrightkerning{igrave}{i}{1000} +%\setleftrightkerning{iacute}{i}{1000} +%\setleftrightkerning{icircumflex}{i}{1000} +%\setleftrightkerning{idieresis}{i}{1000} + +%\setleftrightkerning{ograve}{o}{1000} +%\setleftrightkerning{oacute}{o}{1000} +%\setleftrightkerning{ocircumflex}{o}{1000} +%\setleftrightkerning{otilde}{o}{1000} +%\setleftrightkerning{odieresis}{o}{1000} +%\setleftrightkerning{oslash}{o}{1000} + +%\setleftrightkerning{ugrave}{u}{1000} +%\setleftrightkerning{uacute}{u}{1000} +%\setleftrightkerning{ucircumflex}{u}{1000} +%\setleftrightkerning{udieresis}{u}{1000} + +%\setleftrightkerning{yacute}{y}{1000} +%\setleftrightkerning{ydieresis}{y}{1000} + +\begincomment +\section{Adjusting depth of accents} +We copy the \verb|\zerodepth| stuff from \texttt{latin.mtx}: +\endcomment + +\setcommand\zerodepth#1{ + \ifisglyph{#1}\then + \resetglyph{#1} + \glyph{#1}{1000} + \resetdepth{0} + \endresetglyph + \Fi +} +\zerodepth{acute} +\zerodepth{grave} +\zerodepth{caron} +\zerodepth{breve} +\zerodepth{macron} +\zerodepth{ring} +\zerodepth{circumflex} +\zerodepth{dotaccent} +\zerodepth{tilde} +\zerodepth{dieresis} + +\endmetrics + +\section{Changes} + +This file used to contains more kerning commands for lower case glyphs +than \texttt{latin.mtx} but these were commented out February 1997 +after representation on \TeX-fonts list by Thierry Bouche and others. +\global\parindent=1em + +It also adds a default for the \texttt{alternate-hyphen} glyph. + +1997/02/03: An \verb|\ifisglyph| test was added to \verb|\zerodepth|. +(SPQR) + +1998/06/11: \verb|\needsfontinstversion| was updated (to v\,1.800) and +the definition of \verb|\setleftrightkerning| was removed (now defined +in \texttt{fontinst.sty}). (UV) + +1999/10/25: A typo regarding \texttt{quoteright-unused} (in code +commented out) was corrected. (UV\&LH) + +1999/10/29: \textsf{fontdoc} markup was added and the +\verb|\needsfontinstversion| was increased to v\,1.900. (LH) + +1999/11/10: Code setting \texttt{alternate-hyphen} commented out, +adjustments made for \verb|\showbranches|, and +\verb|\needsfontinstversion| was increased to v\,1.909. (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/8y.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/8y.mtx new file mode 100644 index 00000000000..aca2ea3b9f3 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/8y.mtx @@ -0,0 +1,251 @@ +% Copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Ulrik Vieth and Lars Hellstr{\"o}m", +%%% version = "1.910", +%%% date = "15 November 1999", +%%% time = "21:55:14 CET", +%%% filename = "8y.mtx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "", +%%% checksum = "58019 251 594 7215", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, raw, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the 8y metrics file, for use with the +%%% fontinst utility. It is used to install raw +%%% fonts using the 8y encoding.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +% List of changes now at end of file. + +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc} + +\title{The metric adjustments for ligful \texttt{8y}-encoded fonts} +\author{Constantin Kahn\and + Sebastian Rathz\and + Ulrik Vieth\and + Lars Hellstr\"om} +\date{15 November 1999 \\ +Version 1.910} + +\begin{document} +\maketitle + +This file is just the part of \texttt{latin.mtx} that's needed for +installing kern-and-ligful \texttt{8y} fonts. + +\metrics + +\needsfontinstversion{1.900} + +\begincomment +\section{Duplicating glyphs} + +The code in this part has been commented out since glyph duplicates +aren't needed anymore. +\endcomment + + + +% \setglyph{alternate-space} +% \glyph{space}{1000} +% \comment{Get a \texttt{space} into the \texttt{alternate-space} slot +% (nee \texttt{nbspace}).} +% \endsetglyph + + +% \setglyph{alternate-hyphen} +% \glyph{hyphen}{1000} +% \comment{Get a \texttt{hyphen} into the \texttt{alternate-hyphen} slot +% (nee \texttt{softhyphen}).} +% \endsetglyph + + +% \setglyph{quoteleft-unused} +% \glyph{quoteleft}{1000} +% \comment{The LGC claims that \texttt{quoteleft} and \texttt{quoteright} +% appear twice, which is not the case for \texttt{8r.enc}, but does +% apply for \texttt{texnansi.enc}. We prefer the ASCII position and +% mark the second one as unused.} +% \endsetglyph +% \setglyph{quoteright-unused} +% \glyph{quoteright}{1000} +% \comment{As for \texttt{quoteleft-unused}.} +% \endsetglyph + +% \begincomment\medskip +% Several special characters from \texttt{OT1} appear twice in +% \texttt{texnansi.enc}, once in their \texttt{OT1} position (0--31) and +% again in their Windows ANSI or Latin 1 position (128--255). We usually +% prefer the second one. +% \endcomment +% +% \setglyph{germandbls-OT1} +% \glyph{germandbls}{1000} +% \endsetglyph +% \setglyph{ae-OT1} +% \glyph{ae}{1000} +% \endsetglyph +% \setglyph{oe-OT1} +% \glyph{oe}{1000} +% \endsetglyph +% \setglyph{oslash-OT1} +% \glyph{oslash}{1000} +% \endsetglyph +% \setglyph{AE-OT1} +% \glyph{AE}{1000} +% \endsetglyph +% \setglyph{OE-OT1} +% \glyph{OE}{1000} +% \endsetglyph +% \setglyph{Oslash-OT1} +% \glyph{Oslash}{1000} +% \endsetglyph + + +\begincomment +\section{Kerning} +Kern accented characters the same way as their base characters. +Characters are listed in the order in which they appear in +\texttt{8y.enc}. +\endcomment + +% 128-159 +\setleftrightkerning{Lslash}{L}{1000} +\setleftrightkerning{Scaron}{S}{1000} +\setleftrightkerning{Zcaron}{Z}{1000} + +%\setleftrightkerning{lslash}{l}{1000} +%\setleftrightkerning{scaron}{s}{1000} +%\setleftrightkerning{zcaron}{z}{1000} + +\setleftrightkerning{Ydieresis}{Y}{1000} + +% 192-255 +\setleftrightkerning{Agrave}{A}{1000} +\setleftrightkerning{Aacute}{A}{1000} +\setleftrightkerning{Acircumflex}{A}{1000} +\setleftrightkerning{Atilde}{A}{1000} +\setleftrightkerning{Adieresis}{A}{1000} +\setleftrightkerning{Aring}{A}{1000} + +\setleftrightkerning{Ccedilla}{C}{1000} + +\setleftrightkerning{Egrave}{E}{1000} +\setleftrightkerning{Eacute}{E}{1000} +\setleftrightkerning{Ecircumflex}{E}{1000} +\setleftrightkerning{Edieresis}{E}{1000} + +\setleftrightkerning{Igrave}{I}{1000} +\setleftrightkerning{Iacute}{I}{1000} +\setleftrightkerning{Icircumflex}{I}{1000} +\setleftrightkerning{Idieresis}{I}{1000} + +\setleftrightkerning{Ograve}{O}{1000} +\setleftrightkerning{Oacute}{O}{1000} +\setleftrightkerning{Ocircumflex}{O}{1000} +\setleftrightkerning{Otilde}{O}{1000} +\setleftrightkerning{Odieresis}{O}{1000} +\setleftrightkerning{Oslash}{O}{1000} + +\setleftrightkerning{Ugrave}{U}{1000} +\setleftrightkerning{Uacute}{U}{1000} +\setleftrightkerning{Ucircumflex}{U}{1000} +\setleftrightkerning{Udieresis}{U}{1000} + +\setleftrightkerning{Yacute}{Y}{1000} + +%\setleftrightkerning{agrave}{a}{1000} +%\setleftrightkerning{aacute}{a}{1000} +%\setleftrightkerning{acircumflex}{a}{1000} +%\setleftrightkerning{atilde}{a}{1000} +%\setleftrightkerning{adieresis}{a}{1000} +%\setleftrightkerning{aring}{a}{1000} + +\setleftrightkerning{ccedilla}{c}{1000} + +%\setleftrightkerning{egrave}{e}{1000} +%\setleftrightkerning{eacute}{e}{1000} +%\setleftrightkerning{ecircumflex}{e}{1000} +%\setleftrightkerning{edieresis}{e}{1000} + +%\setleftrightkerning{igrave}{i}{1000} +%\setleftrightkerning{iacute}{i}{1000} +%\setleftrightkerning{icircumflex}{i}{1000} +%\setleftrightkerning{idieresis}{i}{1000} + +%\setleftrightkerning{ograve}{o}{1000} +%\setleftrightkerning{oacute}{o}{1000} +%\setleftrightkerning{ocircumflex}{o}{1000} +%\setleftrightkerning{otilde}{o}{1000} +%\setleftrightkerning{odieresis}{o}{1000} +%\setleftrightkerning{oslash}{o}{1000} + +%\setleftrightkerning{ugrave}{u}{1000} +%\setleftrightkerning{uacute}{u}{1000} +%\setleftrightkerning{ucircumflex}{u}{1000} +%\setleftrightkerning{udieresis}{u}{1000} + +%\setleftrightkerning{yacute}{y}{1000} +%\setleftrightkerning{ydieresis}{y}{1000} + + +\begincomment +\section{Adjusting depth of accents} +We copy the \verb|\zerodepth| stuff from \texttt{latin.mtx}: +\endcomment + +\setcommand\zerodepth#1{ + \ifisglyph{#1}\then + \resetglyph{#1} + \glyph{#1}{1000} + \resetdepth{0} + \endresetglyph + \fi +} +\zerodepth{acute} +\zerodepth{grave} +\zerodepth{caron} +\zerodepth{breve} +\zerodepth{macron} +\zerodepth{ring} +\zerodepth{circumflex} +\zerodepth{dotaccent} +\zerodepth{tilde} +\zerodepth{dieresis} + +\endmetrics + +\section{Changes} + +See also the changes list for \texttt{8r.mtx}. + +1998/06/11: This file was created based on a copy of \texttt{8r.mtx}. +The glyphs \texttt{alternate-space}, \texttt{quoteleft-unused}, and +\texttt{quoteright-unused} were added. (UV) + +1999/10/25: A typo regarding \texttt{quoteright-unused} was corrected. +(UV\&LH) + +1999/10/30: \textsf{fontdoc} markup was added and the +\verb|\needsfontinstversion| was increased to v\,1.900. (LH) + +1999/11/13: Duplication of glyphs was commented out. (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/latin.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/latin.mtx new file mode 100644 index 00000000000..74692b47689 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/latin.mtx @@ -0,0 +1,1791 @@ +% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +% hacked and maintained 1997, 1998 Sebastian Rahtz, +% copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Alan Jeffrey and Ulrik Vieth and Walter Schmidt", +%%% version = "1.916", +%%% date = "18 March 2003", +%%% time = "23:59 MESZ", +%%% filename = "latin.mtx", +%%% email = "fontinst@tug.org", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a font metrics file, for use with the +%%% fontinst utility. It provides the defaults +%%% used to install the Latin glyphs.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc} + +\title{The \textsf{fontinst} latin glyphs} +\author{Alan Jeffrey\and Ulrik Vieth\and Walter Schmidt} +\date{18 March 2003 \\ +Version 1.916} + +\begin{document} +\maketitle + +\section{Introduction} + +This document describes the glyphs used by the \textsf{fontinst} package +when generating Latin fonts. This file, \texttt{latin.mtx}, is intended +for use with normal fonts or with faked small caps fonts generated by +scaling and applying some letterspacing. A special version of this +file, \texttt{latinsc.mtx}, also exists, which may be more suitable for +use with real small caps glyphs. + +\metrics + +\needsfontinstversion{1.800} + +% \unfakable is a glyph which can't be faked. + +\setcommand\unfakable#1{ + \setglyph{#1} + \glyphrule{500}{500} + \glyphwarning{missing glyph `#1'} + \endsetglyph +} + +% A top accent is set by placing the center of the accent at the given +% position along the width of the letter, raised up by the difference +% between the height of the letter and the xheight. + +\setcommand\topaccent#1#2#3{ + \push + \moveup{\max{0}{\sub{\height{#1}}{\int{xheight}}}} + \movert{\add{\sub{\scale{\width{#1}}{#3}}{\scale{\width{#2}}{500}}} + {\scale{\sub{\height{#1}}{\int{xheight}}}{\int{italicslant}}}} + \glyph{#2}{1000} + \pop + \glyph{#1}{1000} +} + +% A bottom accent is set by placing the center of the accent at the given +% position along the width of the letter. + +\setcommand\botaccent#1#2#3{ + \push + \movert{\sub{\scale{\width{#1}}{#3}}{\scale{\width{#2}}{500}}} + \glyph{#2}{1000} + \pop + \glyph{#1}{1000} +} + +% A command to put an accent at the same height as the dot of the i. (WaS) + +\setcommand\itopaccent#1#2#3{ + \push + \moveup{\max{0}{\sub{\height{i}}{\height{#2}}}} + \movert{\add{\sub{\scale{\width{#1}}{#3}}{\scale{\width{#2}}{500}}} + {\scale{\sub{\height{i}}{\height{#2}}}{\int{italicslant}}}} % <--- ??? + \glyph{#2}{1000} + \pop + \glyph{#1}{1000} +} + +% A c&sc glyph is created by shrinking the cap glyph, and adding extra +% space. + +\setcommand\cscglyph#1{ + \movert{\int{smallcapsextraspace}} + \glyph{#1}{\int{smallcapsscale}} + \movert{\int{smallcapsextraspace}} +} + +% A c&sc top accent glyph is placed using the small glyphs if +% available, and otherwise by shrinking the equivalent capital. + +\setcommand\csctopaccent#1#2#3{ + \ifisglyph{#1small}\then + \topaccent{#1small}{#2small}{#3} + \else + \cscglyph{#1#2} + \fi +} + +% A c&sc bot accent glyph is placed using the small glyphs if +% available, and otherwise by shrinking the equivalent capital. + +\setcommand\cscbotaccent#1#2#3{ + \ifisglyph{#1small}\then + \botaccent{#1small}{#2small}{#3} + \else + \cscglyph{#1#2} + \fi +} + +% A c&sc accent is created by moving a shrunk accent up by the +% difference between a scaled x and a scaled X. + +\setcommand\cscaccent#1{ + \moveup{\scale{\int{xheight}}{\sub{1000}{\int{smallcapsscale}}}} + \cscglyph{#1} + \moveup{\scale{\int{xheight}}{\sub{\int{smallcapsscale}}{1000}}} +} + + +\comment{\section{Default values}} + +\setint{italicslant}{0} +\setint{xheight}{\height{x}} +\setint{capheight}{\height{A}} +\setint{ascender}{\height{d}} +\setint{descender}{\depth{g}} +\setint{underlinethickness}{40} +\setint{visiblespacedepth}{200} +\setint{visiblespacewidth}{400} +\setint{visiblespacesurround}{50} +\setint{smallcapsscale}{800} +\setint{smallcapskerning}{900} + +% Vertical symmetry axis. (WaS) +\setint{vaxis}{\scale{\sub{\height{parenleft}}{\depth{parenleft}}}{500}} + +\ifisint{monowidth}\then + \setint{capspacing}{0} + \setint{smallcapsextraspace} + {\div{\scale{\width{x}}{\sub{1000}{\int{smallcapsscale}}}}{2}} +\else + \setint{capspacing}{50} + \setint{smallcapsextraspace}{0} +\fi + +\ifisint{visiblespace}\then + \setint{boundarychar}{\int{visiblespace}} +\fi + + +\comment{\section{Kerning}} + +\setleftrightkerning{visiblespace}{space}{1000} + +\setleftkerning{hyphenchar}{hyphen}{1000} + +\setleftrightkerning{Aacute}{A}{1000} +\setleftrightkerning{Abreve}{A}{1000} +\setleftrightkerning{Acircumflex}{A}{1000} +\setleftrightkerning{Adieresis}{A}{1000} +\setleftrightkerning{Agrave}{A}{1000} +\setleftrightkerning{Aogonek}{A}{1000} +\setleftrightkerning{Aring}{A}{1000} +\setleftrightkerning{Atilde}{A}{1000} + +\setleftrightkerning{Cacute}{C}{1000} +\setleftrightkerning{Ccaron}{C}{1000} +\setleftrightkerning{Ccedilla}{C}{1000} + +\setleftrightkerning{Dcaron}{D}{1000} + +\setleftrightkerning{Eacute}{E}{1000} +\setleftrightkerning{Ecaron}{E}{1000} +\setleftrightkerning{Ecircumflex}{E}{1000} +\setleftrightkerning{Edieresis}{E}{1000} +\setleftrightkerning{Egrave}{E}{1000} +\setleftrightkerning{Eogonek}{E}{1000} + +\setleftrightkerning{Gbreve}{G}{1000} + +\setleftkerning{IJ}{I}{1000} + +\setleftrightkerning{Iacute}{I}{1000} +\setleftrightkerning{Icircumflex}{I}{1000} +\setleftrightkerning{Idieresis}{I}{1000} +\setleftrightkerning{Idotaccent}{I}{1000} +\setleftrightkerning{Igrave}{I}{1000} + +\setrightkerning{IJ}{J}{1000} + +\setleftrightkerning{Lacute}{L}{1000} +\setleftrightkerning{Lslash}{L}{1000} +\setleftkerning{Lcaron}{L}{1000} + +\setleftrightkerning{Nacute}{N}{1000} +\setleftrightkerning{Ncaron}{N}{1000} +\setleftrightkerning{Ntilde}{N}{1000} + +\setleftkerning{Ng}{N}{1000} +\setrightkerning{Ng}{J}{1000} + +\setleftrightkerning{Oacute}{O}{1000} +\setleftrightkerning{Ocircumflex}{O}{1000} +\setleftrightkerning{Odieresis}{O}{1000} +\setleftrightkerning{Ograve}{O}{1000} +\setleftrightkerning{Ohungarumlaut}{O}{1000} +\setleftrightkerning{Oslash}{O}{1000} +\setleftrightkerning{Otilde}{O}{1000} + +\setleftrightkerning{Rcaron}{R}{1000} +\setleftrightkerning{Racute}{R}{1000} + +\setleftrightkerning{SS}{S}{1000} +\setleftrightkerning{Sacute}{S}{1000} +\setleftrightkerning{Scaron}{S}{1000} +\setleftrightkerning{Scedilla}{S}{1000} + +\setleftrightkerning{Tcaron}{T}{1000} +\setleftrightkerning{Tcedilla}{T}{1000} + +\setleftrightkerning{Uacute}{U}{1000} +\setleftrightkerning{Ucircumflex}{U}{1000} +\setleftrightkerning{Udieresis}{U}{1000} +\setleftrightkerning{Ugrave}{U}{1000} +\setleftrightkerning{Uhungarumlaut}{U}{1000} +\setleftrightkerning{Uring}{U}{1000} + +\setleftrightkerning{Yacute}{Y}{1000} +\setleftrightkerning{Ydieresis}{Y}{1000} + +\setleftrightkerning{Zacute}{Z}{1000} +\setleftrightkerning{Zcaron}{Z}{1000} +\setleftrightkerning{Zdotaccent}{Z}{1000} + +\setleftrightkerning{aogonek}{a}{1000} + +\setleftrightkerning{ccedilla}{c}{1000} + +\setleftrightkerning{eogonek}{e}{1000} + +\setleftkerning{ffi}{f}{1000} +\setleftkerning{ffl}{f}{1000} +\setleftrightkerning{ff}{f}{1000} +\setleftkerning{fi}{f}{1000} +\setleftkerning{fl}{f}{1000} + +\setleftkerning{ij}{i}{1000} + +\setrightkerning{fi}{i}{1000} +\setrightkerning{ffi}{i}{1000} + +\setrightkerning{ij}{j}{1000} + +\setrightkerning{fl}{l}{1000} +\setrightkerning{ffl}{l}{1000} + +\setleftkerning{ng}{n}{1000} +\setrightkerning{ng}{j}{1000} + +\setleftkerning{oe}{o}{1000} +\setrightkerning{oe}{e}{1000} +\setleftrightkerning{oslash}{o}{1000} + +\setleftrightkerning{scedilla}{s}{1000} + +\setleftrightkerning{tcedilla}{t}{1000} + + +\comment{\section{All-caps kerning}} + +\setleftrightkerning{dotlessI}{I}{1000} +\setleftrightkerning{dotlessJ}{J}{1000} +\setleftrightkerning{FFspaced}{F}{1000} +\setleftkerning{FIspaced}{F}{1000} +\setrightkerning{FIspaced}{I}{1000} +\setleftkerning{FLspaced}{F}{1000} +\setrightkerning{FLspaced}{L}{1000} +\setleftkerning{FFIspaced}{F}{1000} +\setrightkerning{FFIspaced}{I}{1000} +\setleftkerning{FFLspaced}{F}{1000} +\setrightkerning{FFLspaced}{L}{1000} +\setleftrightkerning{Dbar}{Eth}{1000} +\setleftkerning{IJspaced}{I}{1000} +\setrightkerning{IJspaced}{J}{1000} +\setleftrightkerning{SSspaced}{S}{1000} + + +\comment{\section{Small caps kerning}} + +\setleftrightkerning{Asmall}{A}{\int{smallcapskerning}} +\setleftrightkerning{Bsmall}{B}{\int{smallcapskerning}} +\setleftrightkerning{Csmall}{C}{\int{smallcapskerning}} +\setleftrightkerning{Dsmall}{D}{\int{smallcapskerning}} +\setleftrightkerning{Esmall}{E}{\int{smallcapskerning}} +\setleftrightkerning{Fsmall}{F}{\int{smallcapskerning}} +\setleftrightkerning{Gsmall}{G}{\int{smallcapskerning}} +\setleftrightkerning{Hsmall}{H}{\int{smallcapskerning}} +\setleftrightkerning{Ismall}{I}{\int{smallcapskerning}} +\setleftrightkerning{Jsmall}{J}{\int{smallcapskerning}} +\setleftrightkerning{Ksmall}{K}{\int{smallcapskerning}} +\setleftrightkerning{Lsmall}{L}{\int{smallcapskerning}} +\setleftrightkerning{Msmall}{M}{\int{smallcapskerning}} +\setleftrightkerning{Nsmall}{N}{\int{smallcapskerning}} +\setleftrightkerning{Osmall}{O}{\int{smallcapskerning}} +\setleftrightkerning{Psmall}{P}{\int{smallcapskerning}} +\setleftrightkerning{Qsmall}{Q}{\int{smallcapskerning}} +\setleftrightkerning{Rsmall}{R}{\int{smallcapskerning}} +\setleftrightkerning{Ssmall}{S}{\int{smallcapskerning}} +\setleftrightkerning{Tsmall}{T}{\int{smallcapskerning}} +\setleftrightkerning{Usmall}{U}{\int{smallcapskerning}} +\setleftrightkerning{Vsmall}{V}{\int{smallcapskerning}} +\setleftrightkerning{Wsmall}{W}{\int{smallcapskerning}} +\setleftrightkerning{Xsmall}{X}{\int{smallcapskerning}} +\setleftrightkerning{Ysmall}{Y}{\int{smallcapskerning}} +\setleftrightkerning{Zsmall}{Z}{\int{smallcapskerning}} +\setleftrightkerning{Aacutesmall}{Aacute}{\int{smallcapskerning}} +\setleftrightkerning{Abrevesmall}{Abreve}{\int{smallcapskerning}} +\setleftrightkerning{Acircumflexsmall}{Acircumflex}{\int{smallcapskerning}} +\setleftrightkerning{Adieresissmall}{Adieresis}{\int{smallcapskerning}} +\setleftrightkerning{AEsmall}{AE}{\int{smallcapskerning}} +\setleftrightkerning{Agravesmall}{Agrave}{\int{smallcapskerning}} +\setleftrightkerning{Aogoneksmall}{Aogonek}{\int{smallcapskerning}} +\setleftrightkerning{Aringsmall}{Aring}{\int{smallcapskerning}} +\setleftrightkerning{Atildesmall}{Atilde}{\int{smallcapskerning}} +\setleftrightkerning{Cacutesmall}{Cacute}{\int{smallcapskerning}} +\setleftrightkerning{Ccaronsmall}{Ccaron}{\int{smallcapskerning}} +\setleftrightkerning{Ccedillasmall}{Ccedilla}{\int{smallcapskerning}} +\setleftrightkerning{Dbarsmall}{Dbar}{\int{smallcapskerning}} +\setleftrightkerning{Dcaronsmall}{Dcaron}{\int{smallcapskerning}} +\setleftrightkerning{Eacutesmall}{Eacute}{\int{smallcapskerning}} +\setleftrightkerning{Ecaronsmall}{Ecaron}{\int{smallcapskerning}} +\setleftrightkerning{Ecircumflexsmall}{Ecircumflex}{\int{smallcapskerning}} +\setleftrightkerning{Edieresissmall}{Edieresis}{\int{smallcapskerning}} +\setleftrightkerning{Egravesmall}{Egrave}{\int{smallcapskerning}} +\setleftrightkerning{Eogoneksmall}{Eogonek}{\int{smallcapskerning}} +\setleftrightkerning{Ethsmall}{Eth}{\int{smallcapskerning}} +\setleftrightkerning{Gbrevesmall}{Gbreve}{\int{smallcapskerning}} +\setleftrightkerning{IJsmall}{IJ}{\int{smallcapskerning}} +\setleftrightkerning{Iacutesmall}{Iacute}{\int{smallcapskerning}} +\setleftrightkerning{Icircumflexsmall}{Icircumflex}{\int{smallcapskerning}} +\setleftrightkerning{Idieresissmall}{Idieresis}{\int{smallcapskerning}} +\setleftrightkerning{Idotaccentsmall}{Idotaccent}{\int{smallcapskerning}} +\setleftrightkerning{Igravesmall}{Igrave}{\int{smallcapskerning}} +\setleftrightkerning{Lacutesmall}{Lacute}{\int{smallcapskerning}} +\setleftrightkerning{Lcaronsmall}{Lcaron}{\int{smallcapskerning}} +\setleftrightkerning{Lslashsmall}{Lslash}{\int{smallcapskerning}} +\setleftrightkerning{Nacutesmall}{Nacute}{\int{smallcapskerning}} +\setleftrightkerning{Ncaronsmall}{Ncaron}{\int{smallcapskerning}} +\setleftrightkerning{Ngsmall}{Ng}{\int{smallcapskerning}} +\setleftrightkerning{Ntildesmall}{Ntilde}{\int{smallcapskerning}} +\setleftrightkerning{Oacutesmall}{Oacute}{\int{smallcapskerning}} +\setleftrightkerning{Ocircumflexsmall}{Ocircumflex}{\int{smallcapskerning}} +\setleftrightkerning{Odieresissmall}{Odieresis}{\int{smallcapskerning}} +\setleftrightkerning{OEsmall}{OE}{\int{smallcapskerning}} +\setleftrightkerning{Ogravesmall}{Ograve}{\int{smallcapskerning}} +\setleftrightkerning{Ohungarumlautsmall}{Ohungarumlaut}{\int{smallcapskerning}} +\setleftrightkerning{Oslashsmall}{Oslash}{\int{smallcapskerning}} +\setleftrightkerning{Otildesmall}{Otilde}{\int{smallcapskerning}} +\setleftrightkerning{Racutesmall}{Racute}{\int{smallcapskerning}} +\setleftrightkerning{Rcaronsmall}{Rcaron}{\int{smallcapskerning}} +\setleftrightkerning{SSsmall}{SS}{\int{smallcapskerning}} +\setleftrightkerning{Sacutesmall}{Sacute}{\int{smallcapskerning}} +\setleftrightkerning{Scaronsmall}{Scaron}{\int{smallcapskerning}} +\setleftrightkerning{Scedillasmall}{Scedilla}{\int{smallcapskerning}} +\setleftrightkerning{Tcaronsmall}{Tcaron}{\int{smallcapskerning}} +\setleftrightkerning{Tcedillasmall}{Tcedilla}{\int{smallcapskerning}} +\setleftrightkerning{Thornsmall}{Thorn}{\int{smallcapskerning}} +\setleftrightkerning{Uacutesmall}{Uacute}{\int{smallcapskerning}} +\setleftrightkerning{Ucircumflexsmall}{Ucircumflex}{\int{smallcapskerning}} +\setleftrightkerning{Udieresissmall}{Udieresis}{\int{smallcapskerning}} +\setleftrightkerning{Ugravesmall}{Ugrave}{\int{smallcapskerning}} +\setleftrightkerning{Uhungarumlautsmall}{Uhungarumlaut}{\int{smallcapskerning}} +\setleftrightkerning{Uringsmall}{Uring}{\int{smallcapskerning}} +\setleftrightkerning{Yacutesmall}{Yacute}{\int{smallcapskerning}} +\setleftrightkerning{Ydieresissmall}{Ydieresis}{\int{smallcapskerning}} +\setleftrightkerning{Zacutesmall}{Zacute}{\int{smallcapskerning}} +\setleftrightkerning{Zcaronsmall}{Zcaron}{\int{smallcapskerning}} +\setleftrightkerning{Zdotaccentsmall}{Zdotaccent}{\int{smallcapskerning}} +\setleftrightkerning{dotlessIsmall}{Ismall}{1000} +\setleftrightkerning{dotlessJsmall}{Jsmall}{1000} + + +\comment{\section{Unfakable glyphs}} + +\unfakable{Gamma} +\unfakable{Delta} +\unfakable{Theta} +\unfakable{Lambda} +\unfakable{Xi} +\unfakable{Pi} +\unfakable{Sigma} +\unfakable{Upsilon} +\unfakable{Upsilon1} +\unfakable{Phi} +\unfakable{Psi} +\unfakable{Omega} + +\unfakable{grave} +\unfakable{acute} +\unfakable{circumflex} +\unfakable{tilde} +\unfakable{dieresis} +\unfakable{hungarumlaut} +\unfakable{ring} +\unfakable{caron} +\unfakable{breve} +\unfakable{macron} +\unfakable{dotaccent} +\unfakable{cedilla} +\unfakable{ogonek} +\unfakable{guilsinglleft} +\unfakable{guilsinglright} +\unfakable{quotedblleft} +\unfakable{quotedblright} +\unfakable{quotedblbase} +\unfakable{guillemotleft} +\unfakable{guillemotright} +\unfakable{endash} +\unfakable{emdash} +\unfakable{dotlessi} +\unfakable{perthousandzero} +\unfakable{exclam} +\unfakable{quotedbl} +\unfakable{numbersign} +\unfakable{dollar} +\unfakable{percent} +\unfakable{ampersand} +\unfakable{quoteright} +\unfakable{parenleft} +\unfakable{parenright} +\unfakable{asterisk} +\unfakable{plus} +\unfakable{comma} +\unfakable{hyphen} +\unfakable{period} +\unfakable{slash} +\unfakable{zero} +\unfakable{one} +\unfakable{two} +\unfakable{three} +\unfakable{four} +\unfakable{five} +\unfakable{six} +\unfakable{seven} +\unfakable{eight} +\unfakable{nine} +\unfakable{zerooldstyle} +\unfakable{oneoldstyle} +\unfakable{twooldstyle} +\unfakable{threeoldstyle} +\unfakable{fouroldstyle} +\unfakable{fiveoldstyle} +\unfakable{sixoldstyle} +\unfakable{sevenoldstyle} +\unfakable{eightoldstyle} +\unfakable{nineoldstyle} +\unfakable{colon} +\unfakable{semicolon} +\unfakable{less} +\unfakable{equal} +\unfakable{greater} +\unfakable{question} +\unfakable{at} +\unfakable{A} +\unfakable{B} +\unfakable{C} +\unfakable{D} +\unfakable{E} +\unfakable{F} +\unfakable{G} +\unfakable{H} +\unfakable{I} +\unfakable{J} +\unfakable{K} +\unfakable{L} +\unfakable{M} +\unfakable{N} +\unfakable{O} +\unfakable{P} +\unfakable{Q} +\unfakable{R} +\unfakable{S} +\unfakable{T} +\unfakable{U} +\unfakable{V} +\unfakable{W} +\unfakable{X} +\unfakable{Y} +\unfakable{Z} +\unfakable{bracketleft} +\unfakable{backslash} +\unfakable{bracketright} +\unfakable{asciicircum} +\unfakable{underscore} +\unfakable{quoteleft} +\unfakable{a} +\unfakable{b} +\unfakable{c} +\unfakable{d} +\unfakable{e} +\unfakable{f} +\unfakable{g} +\unfakable{h} +\unfakable{i} +\unfakable{j} +\unfakable{k} +\unfakable{l} +\unfakable{m} +\unfakable{n} +\unfakable{o} +\unfakable{p} +\unfakable{q} +\unfakable{r} +\unfakable{s} +\unfakable{t} +\unfakable{u} +\unfakable{v} +\unfakable{w} +\unfakable{x} +\unfakable{y} +\unfakable{z} +\unfakable{braceleft} +\unfakable{bar} +\unfakable{braceright} +\unfakable{asciitilde} +\unfakable{Eng} +\unfakable{section} +\unfakable{eng} +\unfakable{exclamdown} +\unfakable{questiondown} +\unfakable{sterling} +\unfakable{AE} +\unfakable{Eth} +\unfakable{OE} +\unfakable{Oslash} +\unfakable{Thorn} +\unfakable{ae} +\unfakable{eth} +\unfakable{oe} +\unfakable{oslash} +\unfakable{thorn} +\unfakable{germandbls} +\unfakable{lslashslash} + +\setglyph{dotlessj} + \moveup{\neg{\depth{j}}} + \glyphrule{\width{j}}{\add{\depth{j}}{\height{dotlessi}}} + \resetitalic{\italic{dotlessi}} + \moveup{\depth{j}} + \glyphwarning{missing glyph `dotlessj'} +\endsetglyph + + +\comment{\section{Glyphs}} + +% only with monospaced fonts. (WaS) +\ifisint{monowidth}\then +\resetglyph{asterisk} + \moveup{\neg{\sub{\scale{\sub{\height{asterisk}}{\depth{asterisk}}}{500}}{\int{vaxis}}}} + \glyph{asterisk}{1000} + \resetdepth{0} +\endresetglyph +\fi + +\setglyph{space} + \ifisglyph{space-not}\then + \movert{\width{space-not}} + \else + \movert{\width{i}} + \fi +\endsetglyph + +\setglyph{compwordmark} + \glyphrule{0}{\int{xheight}} +\endsetglyph +\setint{compwordmark-spacing}{0} + +\setglyph{quotesinglbase} + \glyph{comma}{1000} +\endsetglyph + +\setglyph{fi} + \glyph{f}{1000} + \movert{\kerning{f}{i}} + \glyph{i}{1000} +\endsetglyph + +\setglyph{ff} + \glyph{f}{1000} + \movert{\kerning{f}{f}} + \glyph{f}{1000} +\endsetglyph + +\setglyph{fl} + \glyph{f}{1000} + \movert{\kerning{f}{l}} + \glyph{l}{1000} +\endsetglyph + +\setglyph{ffi} + \glyph{f}{1000} + \movert{\kerning{f}{f}} + \glyph{fi}{1000} +\endsetglyph + +\setglyph{ffl} + \glyph{f}{1000} + \movert{\kerning{f}{f}} + \glyph{fl}{1000} +\endsetglyph + +\setglyph{visiblespace} + \moveup{\neg{\int{visiblespacedepth}}} + \movert{\int{visiblespacesurround}} + \glyphrule + {\int{underlinethickness}} + {\int{visiblespacedepth}} + \glyphrule + {\int{visiblespacewidth}} + {\int{underlinethickness}} + \glyphrule + {\int{underlinethickness}} + {\int{visiblespacedepth}} + \movert{\int{visiblespacesurround}} + \moveup{\int{visiblespacedepth}} +\endsetglyph + +\setglyph{rangedash} + \ifisint{monowidth}\then + \glyph{hyphen}{1000} + \else + \glyph{endash}{1000} + \fi +\endsetglyph + +\setglyph{punctdash} + \ifisint{monowidth}\then + \glyph{hyphen}{1000} + \glyph{hyphen}{1000} + \else + \glyph{emdash}{1000} + \fi +\endsetglyph + +\setglyph{hyphenchar} + \glyph{hyphen}{1000} +\endsetglyph + +\setglyph{ringfitted} + \movert{\div{\sub{\width{A}}{\width{ring}}}{2}} + \glyph{ring}{1000} + \movert{\div{\sub{\width{A}}{\width{ring}}}{2}} +\endsetglyph + +\setglyph{lslash} + \glyph{lslashslash}{1000} + \movert{\kerning{lslashslash}{l}} + \glyph{l}{1000} +\endsetglyph + +\setglyph{Lslash} + \glyph{lslashslash}{1000} + \movert{\kerning{lslashslash}{L}} + \glyph{L}{1000} +\endsetglyph + +\setglyph{Ng} + \glyph{Eng}{1000} +\endsetglyph + +\setglyph{ng} + \glyph{eng}{1000} +\endsetglyph + +\setglyph{Abreve} + \topaccent{A}{breve}{500} +\endsetglyph + +\setglyph{Aogonek} + \botaccent{A}{ogonek}{900} +\endsetglyph + +\setglyph{Cacute} + \topaccent{C}{acute}{500} +\endsetglyph + +\setglyph{Ccaron} + \topaccent{C}{caron}{500} +\endsetglyph + +\setglyph{Dcaron} + \topaccent{D}{caron}{450} +\endsetglyph + +\setglyph{Ecaron} + \topaccent{E}{caron}{500} +\endsetglyph + +\setglyph{Eogonek} + \botaccent{E}{ogonek}{850} +\endsetglyph + +\setglyph{Gbreve} + \topaccent{G}{breve}{500} +\endsetglyph + +\setglyph{Lacute} + \topaccent{L}{acute}{250} +\endsetglyph + +\setglyph{Lcaron} + \glyph{L}{1000} + \ifisint{monowidth}\then\else + \movert{-200} + \fi + \glyph{quoteright}{1000} +\endsetglyph + +\setglyph{Nacute} + \topaccent{N}{acute}{500} +\endsetglyph + +\setglyph{Ncaron} + \topaccent{N}{caron}{500} +\endsetglyph + +\setglyph{Ohungarumlaut} + \topaccent{O}{hungarumlaut}{500} +\endsetglyph + +\setglyph{Racute} + \topaccent{R}{acute}{500} +\endsetglyph + +\setglyph{Rcaron} + \topaccent{R}{caron}{500} +\endsetglyph + +\setglyph{Sacute} + \topaccent{S}{acute}{500} +\endsetglyph + +\setglyph{Scaron} + \topaccent{S}{caron}{500} +\endsetglyph + +\setglyph{Scedilla} + \botaccent{S}{cedilla}{500} +\endsetglyph + +\setglyph{Tcaron} + \topaccent{T}{caron}{500} +\endsetglyph + +\setglyph{Tcedilla} + \botaccent{T}{cedilla}{500} +\endsetglyph + +\setglyph{Uhungarumlaut} + \topaccent{U}{hungarumlaut}{500} +\endsetglyph + +\setglyph{Uring} + \topaccent{U}{ring}{500} +\endsetglyph + +\setglyph{Ydieresis} + \topaccent{Y}{dieresis}{500} +\endsetglyph + +\setglyph{Zacute} + \topaccent{Z}{acute}{500} +\endsetglyph + +\setglyph{Zcaron} + \topaccent{Z}{caron}{500} +\endsetglyph + +\setglyph{Zdotaccent} + \topaccent{Z}{dotaccent}{500} +\endsetglyph + +\setglyph{IJ} + \glyph{I}{1000} + \movert{\kerning{I}{J}} + \glyph{J}{1000} +\endsetglyph + +\setglyph{Idotaccent} + \topaccent{I}{dotaccent}{500} +\endsetglyph + +\setglyph{dbar} + \push + \movert{\sub{\width{d}}{\width{macron}}} + \moveup{ + \sub{\scale{\add{\height{d}}{\int{xheight}}}{500}} + {\height{macron}}} + \glyph{macron}{1000} + \pop + \glyph{d}{1000} +\endsetglyph + +\setglyph{abreve} + \topaccent{a}{breve}{500} +\endsetglyph + +\setglyph{aogonek} + \botaccent{a}{ogonek}{850} +\endsetglyph + +\setglyph{cacute} + \topaccent{c}{acute}{500} +\endsetglyph + +\setglyph{ccaron} + \topaccent{c}{caron}{500} +\endsetglyph + +\setglyph{dcaron} + \glyph{d}{1000} + \ifisint{monowidth}\then\else + \movert{-75} + \fi + \glyph{quoteright}{1000} +\endsetglyph + +\setglyph{ecaron} + \topaccent{e}{caron}{500} +\endsetglyph + +\setglyph{eogonek} + \botaccent{e}{ogonek}{500} +\endsetglyph + +\setglyph{gbreve} + \topaccent{g}{breve}{500} +\endsetglyph + +\setglyph{lacute} + \topaccent{l}{acute}{500} +\endsetglyph + +\setglyph{lcaron} + \glyph{l}{1000} + \ifisint{monowidth}\then\else + \movert{-100} + \fi + \glyph{quoteright}{1000} +\endsetglyph + +\setglyph{nacute} + \topaccent{n}{acute}{500} +\endsetglyph + +\setglyph{ncaron} + \topaccent{n}{caron}{500} +\endsetglyph + +\setglyph{ohungarumlaut} + \topaccent{o}{hungarumlaut}{500} +\endsetglyph + +\setglyph{racute} + \topaccent{r}{acute}{500} +\endsetglyph + +\setglyph{rcaron} + \topaccent{r}{caron}{500} +\endsetglyph + +\setglyph{sacute} + \topaccent{s}{acute}{500} +\endsetglyph + +\setglyph{scaron} + \topaccent{s}{caron}{500} +\endsetglyph + +\setglyph{scedilla} + \botaccent{s}{cedilla}{500} +\endsetglyph + +\setglyph{tcaron} + \glyph{t}{1000} + \ifisint{monowidth}\then\else + \movert{-75} + \fi + \glyph{quoteright}{1000} +\endsetglyph + +\setglyph{tcedilla} + \botaccent{t}{cedilla}{500} +\endsetglyph + +\setglyph{uhungarumlaut} + \topaccent{u}{hungarumlaut}{500} +\endsetglyph + +\setglyph{uring} + \topaccent{u}{ring}{500} +\endsetglyph + +\setglyph{ydieresis} + \topaccent{y}{dieresis}{500} +\endsetglyph + +\setglyph{zacute} + \topaccent{z}{acute}{500} +\endsetglyph + +\setglyph{zcaron} + \topaccent{z}{caron}{500} +\endsetglyph + +% make this glyph match the letter i. (WaS) +\setglyph{zdotaccent} + \itopaccent{z}{dotaccent}{500} +\endsetglyph + +\setglyph{ij} + \glyph{i}{1000} + \movert{\kerning{i}{j}} + \glyph{j}{1000} +\endsetglyph + +\setglyph{Agrave} + \topaccent{A}{grave}{500} +\endsetglyph + +\setglyph{Aacute} + \topaccent{A}{acute}{500} +\endsetglyph + +\setglyph{Acircumflex} + \topaccent{A}{circumflex}{500} +\endsetglyph + +\setglyph{Atilde} + \topaccent{A}{tilde}{500} +\endsetglyph + +\setglyph{Adieresis} + \topaccent{A}{dieresis}{500} +\endsetglyph + +\setglyph{Aring} + \topaccent{A}{ring}{500} +\endsetglyph + +\setglyph{Ccedilla} + \botaccent{C}{cedilla}{500} +\endsetglyph + +\setglyph{Egrave} + \topaccent{E}{grave}{500} +\endsetglyph + +\setglyph{Eacute} + \topaccent{E}{acute}{500} +\endsetglyph + +\setglyph{Ecircumflex} + \topaccent{E}{circumflex}{500} +\endsetglyph + +\setglyph{Edieresis} + \topaccent{E}{dieresis}{500} +\endsetglyph + +\setglyph{Iacute} + \topaccent{I}{acute}{500} +\endsetglyph + +\setglyph{Igrave} + \topaccent{I}{grave}{500} +\endsetglyph + +\setglyph{Icircumflex} + \topaccent{I}{circumflex}{500} +\endsetglyph + +\setglyph{Idieresis} + \topaccent{I}{dieresis}{500} +\endsetglyph + +\setglyph{Ntilde} + \topaccent{N}{tilde}{500} +\endsetglyph + +\setglyph{Ograve} + \topaccent{O}{grave}{500} +\endsetglyph + +\setglyph{Oacute} + \topaccent{O}{acute}{500} +\endsetglyph + +\setglyph{Ocircumflex} + \topaccent{O}{circumflex}{500} +\endsetglyph + +\setglyph{Otilde} + \topaccent{O}{tilde}{500} +\endsetglyph + +\setglyph{Odieresis} + \topaccent{O}{dieresis}{500} +\endsetglyph + +\setglyph{Ugrave} + \topaccent{U}{grave}{500} +\endsetglyph + +\setglyph{Uacute} + \topaccent{U}{acute}{500} +\endsetglyph + +\setglyph{Ucircumflex} + \topaccent{U}{circumflex}{500} +\endsetglyph + +\setglyph{Udieresis} + \topaccent{U}{dieresis}{500} +\endsetglyph + +\setglyph{Yacute} + \topaccent{Y}{acute}{500} +\endsetglyph + +\setglyph{SS} + \glyph{S}{1000} + \movert{\kerning{S}{S}} + \glyph{S}{1000} +\endsetglyph + +\setglyph{agrave} + \topaccent{a}{grave}{500} +\endsetglyph + +\setglyph{aacute} + \topaccent{a}{acute}{500} +\endsetglyph + +\setglyph{acircumflex} + \topaccent{a}{circumflex}{500} +\endsetglyph + +\setglyph{atilde} + \topaccent{a}{tilde}{500} +\endsetglyph + +\setglyph{adieresis} + \topaccent{a}{dieresis}{500} +\endsetglyph + +\setglyph{aring} + \topaccent{a}{ring}{500} +\endsetglyph + +\setglyph{ccedilla} + \botaccent{c}{cedilla}{500} +\endsetglyph + +\setglyph{egrave} + \topaccent{e}{grave}{500} +\endsetglyph + +\setglyph{eacute} + \topaccent{e}{acute}{500} +\endsetglyph + +\setglyph{ecircumflex} + \topaccent{e}{circumflex}{500} +\endsetglyph + +\setglyph{edieresis} + \topaccent{e}{dieresis}{500} +\endsetglyph + +\setglyph{igrave} + \topaccent{dotlessi}{grave}{500} +\endsetglyph + +\setglyph{iacute} + \topaccent{dotlessi}{acute}{500} +\endsetglyph + +\setglyph{icircumflex} + \topaccent{dotlessi}{circumflex}{500} +\endsetglyph + +\setglyph{idieresis} + \topaccent{dotlessi}{dieresis}{500} +\endsetglyph + +\setglyph{ntilde} + \topaccent{n}{tilde}{500} +\endsetglyph + +\setglyph{ograve} + \topaccent{o}{grave}{500} +\endsetglyph + +\setglyph{oacute} + \topaccent{o}{acute}{500} +\endsetglyph + +\setglyph{ocircumflex} + \topaccent{o}{circumflex}{500} +\endsetglyph + +\setglyph{otilde} + \topaccent{o}{tilde}{500} +\endsetglyph + +\setglyph{odieresis} + \topaccent{o}{dieresis}{500} +\endsetglyph + +\setglyph{ugrave} + \topaccent{u}{grave}{500} +\endsetglyph + +\setglyph{uacute} + \topaccent{u}{acute}{500} +\endsetglyph + +\setglyph{ucircumflex} + \topaccent{u}{circumflex}{500} +\endsetglyph + +\setglyph{udieresis} + \topaccent{u}{dieresis}{500} +\endsetglyph + +\setglyph{yacute} + \topaccent{y}{acute}{500} +\endsetglyph + + +\comment{\section{All-caps glyphs}} + +\setglyph{dotlessI} + \glyph{I}{1000} +\endsetglyph + +\setglyph{dotlessJ} + \glyph{J}{1000} +\endsetglyph + +\setglyph{FFspaced} + \glyph{F}{1000} + \movert{\add{\kerning{F}{F}} + {\int{capspacing}}} + \glyph{F}{1000} +\endsetglyph + +\setglyph{FIspaced} + \glyph{F}{1000} + \movert{\add{\kerning{F}{I}} + {\int{capspacing}}} + \glyph{I}{1000} +\endsetglyph + +\setglyph{FLspaced} + \glyph{F}{1000} + \movert{\add{\kerning{F}{L}} + {\int{capspacing}}} + \glyph{L}{1000} +\endsetglyph + +\setglyph{FFIspaced} + \glyph{FFspaced}{1000} + \movert{\add{\kerning{FFspaced}{I}} + {\int{capspacing}}} + \glyph{I}{1000} +\endsetglyph + +\setglyph{FFLspaced} + \glyph{FFspaced}{1000} + \movert{\add{\kerning{FFspaced}{L}} + {\int{capspacing}}} + \glyph{L}{1000} +\endsetglyph + +\setglyph{Dbar} + \glyph{Eth}{1000} +\endsetglyph + +\setglyph{IJspaced} + \glyph{I}{1000} + \movert{\add{\kerning{I}{J}}{\int{capspacing}}} + \glyph{J}{1000} +\endsetglyph + +\setglyph{SSspaced} + \glyph{S}{1000} + \movert{\add{\kerning{S}{S}}{\int{capspacing}}} + \glyph{S}{1000} +\endsetglyph + + +\comment{\section{Small caps glyphs}} + +\setglyph{Acutesmall} + \cscaccent{acute} +\endsetglyph + +\setglyph{acutesmall} + \glyph{Acutesmall}{1000} +\endsetglyph + +\setglyph{Gravesmall} + \cscaccent{grave} +\endsetglyph + +\setglyph{gravesmall} + \glyph{Gravesmall}{1000} +\endsetglyph + +\setglyph{Circumflexsmall} + \cscaccent{circumflex} +\endsetglyph + +\setglyph{circumflexsmall} + \glyph{Circumflexsmall}{1000} +\endsetglyph + +\setglyph{Tildesmall} + \cscaccent{tilde} +\endsetglyph + +\setglyph{tildesmall} + \glyph{Tildesmall}{1000} +\endsetglyph + +\setglyph{Dieresissmall} + \cscaccent{dieresis} +\endsetglyph + +\setglyph{dieresissmall} + \glyph{Dieresissmall}{1000} +\endsetglyph + +\setglyph{Brevesmall} + \cscaccent{breve} +\endsetglyph + +\setglyph{brevesmall} + \glyph{Brevesmall}{1000} +\endsetglyph + +\setglyph{Dotaccentsmall} + \cscaccent{dotaccent} +\endsetglyph + +\setglyph{dotaccentsmall} + \glyph{Dotaccentsmall}{1000} +\endsetglyph + +\setglyph{Caronsmall} + \cscaccent{caron} +\endsetglyph + +\setglyph{caronsmall} + \glyph{Caronsmall}{1000} +\endsetglyph + +\setglyph{Hungarumlautsmall} + \cscaccent{hungarumlaut} +\endsetglyph + +\setglyph{hungarumlautsmall} + \glyph{Hungarumlautsmall}{1000} +\endsetglyph + +\setglyph{Ringsmall} + \cscaccent{ring} +\endsetglyph + +\setglyph{ringsmall} + \glyph{Ringsmall}{1000} +\endsetglyph + +\setglyph{Macronsmall} + \cscaccent{macron} +\endsetglyph + +\setglyph{macronsmall} + \glyph{Macronsmall}{1000} + \comment{It might be unnecessary to set this glyph. This should be + checked sometime. /LH} +\endsetglyph + +\setglyph{Cedillasmall} + \cscglyph{cedilla} +\endsetglyph + +\setglyph{cedillasmall} + \glyph{Cedillasmall}{1000} +\endsetglyph + +\setglyph{Ogoneksmall} + \cscglyph{ogonek} +\endsetglyph + +\setglyph{ogoneksmall} + \glyph{Ogoneksmall}{1000} +\endsetglyph + +\setglyph{Idotaccentsmall} + \csctopaccent{I}{dotaccent}{500} +\endsetglyph + +\setglyph{Abrevesmall} + \csctopaccent{A}{breve}{500} +\endsetglyph + +\setglyph{Aogoneksmall} + \cscbotaccent{A}{ogonek}{900} +\endsetglyph + +\setglyph{Cacutesmall} + \csctopaccent{C}{acute}{500} +\endsetglyph + +\setglyph{Ccaronsmall} + \csctopaccent{C}{caron}{500} +\endsetglyph + +\setglyph{Dcaronsmall} + \csctopaccent{D}{caron}{500} +\endsetglyph + +\setglyph{Ecaronsmall} + \csctopaccent{E}{caron}{500} +\endsetglyph + +\setglyph{Eogoneksmall} + \cscbotaccent{E}{ogonek}{850} +\endsetglyph + +\setglyph{Gbrevesmall} + \csctopaccent{G}{breve}{500} +\endsetglyph + +\setglyph{Lacutesmall} + \csctopaccent{L}{acute}{250} +\endsetglyph + +\setglyph{Nacutesmall} + \csctopaccent{N}{acute}{500} +\endsetglyph + +\setglyph{Ncaronsmall} + \csctopaccent{N}{caron}{500} +\endsetglyph + +\setglyph{Ngsmall} + \cscglyph{Ng} +\endsetglyph + +\setglyph{Ohungarumlautsmall} + \csctopaccent{O}{hungarumlaut}{500} +\endsetglyph + +\setglyph{Racutesmall} + \csctopaccent{R}{acute}{500} +\endsetglyph + +\setglyph{Rcaronsmall} + \csctopaccent{R}{caron}{500} +\endsetglyph + +\setglyph{Sacutesmall} + \csctopaccent{S}{acute}{500} +\endsetglyph + +\setglyph{Scaronsmall} + \csctopaccent{S}{caron}{500} +\endsetglyph + +\setglyph{Scedillasmall} + \cscbotaccent{S}{cedilla}{500} +\endsetglyph + +\setglyph{Tcaronsmall} + \csctopaccent{T}{caron}{500} +\endsetglyph + +\setglyph{Tcedillasmall} + \cscbotaccent{T}{cedilla}{500} +\endsetglyph + +\setglyph{Uhungarumlautsmall} + \csctopaccent{U}{hungarumlaut}{500} +\endsetglyph + +\setglyph{Uringsmall} + \csctopaccent{U}{ring}{500} +\endsetglyph + +\setglyph{Ydieresissmall} + \csctopaccent{Y}{dieresis}{500} +\endsetglyph + +\setglyph{Zacutesmall} + \csctopaccent{Z}{acute}{500} +\endsetglyph + +\setglyph{Zcaronsmall} + \csctopaccent{Z}{caron}{500} +\endsetglyph + +\setglyph{Zdotaccentsmall} + \csctopaccent{Z}{dotaccent}{500} +\endsetglyph + +\setglyph{Agravesmall} + \csctopaccent{A}{grave}{500} +\endsetglyph + +\setglyph{Aacutesmall} + \csctopaccent{A}{acute}{500} +\endsetglyph + +\setglyph{Acircumflexsmall} + \csctopaccent{A}{circumflex}{500} +\endsetglyph + +\setglyph{Atildesmall} + \csctopaccent{A}{tilde}{500} +\endsetglyph + +\setglyph{Adieresissmall} + \csctopaccent{A}{dieresis}{500} +\endsetglyph + +\setglyph{Aringsmall} + \csctopaccent{A}{ring}{500} +\endsetglyph + +\setglyph{Ccedillasmall} + \csctopaccent{C}{cedilla}{500} +\endsetglyph + +\setglyph{Egravesmall} + \csctopaccent{E}{grave}{500} +\endsetglyph + +\setglyph{Eacutesmall} + \csctopaccent{E}{acute}{500} +\endsetglyph + +\setglyph{Ecircumflexsmall} + \csctopaccent{E}{circumflex}{500} +\endsetglyph + +\setglyph{Edieresissmall} + \csctopaccent{E}{dieresis}{500} +\endsetglyph + +\setglyph{Igravesmall} + \csctopaccent{I}{grave}{500} +\endsetglyph + +\setglyph{Iacutesmall} + \csctopaccent{I}{acute}{500} +\endsetglyph + +\setglyph{Icircumflexsmall} + \csctopaccent{I}{circumflex}{500} +\endsetglyph + +\setglyph{Idieresissmall} + \csctopaccent{I}{dieresis}{500} +\endsetglyph + +\setglyph{Ethsmall} + \cscglyph{Eth} +\endsetglyph + +\setglyph{Dbarsmall} + \glyph{Ethsmall}{1000} +\endsetglyph + +\setglyph{Ntildesmall} + \csctopaccent{N}{tilde}{500} +\endsetglyph + +\setglyph{Ogravesmall} + \csctopaccent{O}{grave}{500} +\endsetglyph + +\setglyph{Oacutesmall} + \csctopaccent{O}{acute}{500} +\endsetglyph + +\setglyph{Ocircumflexsmall} + \csctopaccent{O}{circumflex}{500} +\endsetglyph + +\setglyph{Otildesmall} + \csctopaccent{O}{tilde}{500} +\endsetglyph + +\setglyph{Odieresissmall} + \csctopaccent{O}{dieresis}{500} +\endsetglyph + +\setglyph{Ugravesmall} + \csctopaccent{U}{grave}{500} +\endsetglyph + +\setglyph{Uacutesmall} + \csctopaccent{U}{acute}{500} +\endsetglyph + +\setglyph{Ucircumflexsmall} + \csctopaccent{U}{circumflex}{500} +\endsetglyph + +\setglyph{Udieresissmall} + \csctopaccent{U}{dieresis}{500} +\endsetglyph + +\setglyph{Yacutesmall} + \csctopaccent{Y}{acute}{500} +\endsetglyph + +\setglyph{Thornsmall} + \cscglyph{Thorn} +\endsetglyph + +\setglyph{Asmall} + \cscglyph{A} +\endsetglyph + +\setglyph{Bsmall} + \cscglyph{B} +\endsetglyph + +\setglyph{Csmall} + \cscglyph{C} +\endsetglyph + +\setglyph{Dsmall} + \cscglyph{D} +\endsetglyph + +\setglyph{Esmall} + \cscglyph{E} +\endsetglyph + +\setglyph{Fsmall} + \cscglyph{F} +\endsetglyph + +\setglyph{Gsmall} + \cscglyph{G} +\endsetglyph + +\setglyph{Hsmall} + \cscglyph{H} +\endsetglyph + +\setglyph{Ismall} + \cscglyph{I} +\endsetglyph + +\setglyph{Jsmall} + \cscglyph{J} +\endsetglyph + +\setglyph{Ksmall} + \cscglyph{K} +\endsetglyph + +\setglyph{Lsmall} + \cscglyph{L} +\endsetglyph + +\setglyph{Msmall} + \cscglyph{M} +\endsetglyph + +\setglyph{Nsmall} + \cscglyph{N} +\endsetglyph + +\setglyph{Osmall} + \cscglyph{O} +\endsetglyph + +\setglyph{Psmall} + \cscglyph{P} +\endsetglyph + +\setglyph{Qsmall} + \cscglyph{Q} +\endsetglyph + +\setglyph{Rsmall} + \cscglyph{R} +\endsetglyph + +\setglyph{Ssmall} + \cscglyph{S} +\endsetglyph + +\setglyph{Tsmall} + \cscglyph{T} +\endsetglyph + +\setglyph{Usmall} + \cscglyph{U} +\endsetglyph + +\setglyph{Vsmall} + \cscglyph{V} +\endsetglyph + +\setglyph{Wsmall} + \cscglyph{W} +\endsetglyph + +\setglyph{Xsmall} + \cscglyph{X} +\endsetglyph + +\setglyph{Ysmall} + \cscglyph{Y} +\endsetglyph + +\setglyph{Zsmall} + \cscglyph{Z} +\endsetglyph + +\setglyph{Lslashsmall} + \cscglyph{Lslash} +\endsetglyph + +\setglyph{AEsmall} + \cscglyph{AE} +\endsetglyph + +\setglyph{OEsmall} + \cscglyph{OE} +\endsetglyph + +\setglyph{Oslashsmall} + \cscglyph{Oslash} +\endsetglyph + +\setglyph{dotlessIsmall} + \glyph{Ismall}{1000} +\endsetglyph + +\setglyph{dotlessJsmall} + \glyph{Jsmall}{1000} +\endsetglyph + +\setglyph{FFsmall} + \glyph{Fsmall}{1000} + \movert{\add{\kerning{Fsmall}{Fsmall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Fsmall}{1000} +\endsetglyph + +\setglyph{FIsmall} + \glyph{Fsmall}{1000} + \movert{\add{\kerning{Fsmall}{Ismall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Ismall}{1000} +\endsetglyph + +\setglyph{FLsmall} + \glyph{Fsmall}{1000} + \movert{\add{\kerning{Fsmall}{Lsmall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Lsmall}{1000} +\endsetglyph + +\setglyph{FFIsmall} + \glyph{FFsmall}{1000} + \movert{\add{\kerning{FFsmall}{Ismall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Ismall}{1000} +\endsetglyph + +\setglyph{FFLsmall} + \glyph{FFsmall}{1000} + \movert{\add{\kerning{FFsmall}{Lsmall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Lsmall}{1000} +\endsetglyph + +\setglyph{IJsmall} + \glyph{Ismall}{1000} + \movert{\add{\kerning{Ismall}{Jsmall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Jsmall}{1000} +\endsetglyph + +\setglyph{Lcaronsmall} + \glyph{Lsmall}{1000} + \ifisint{monowidth}\then\else + \movert{-100} + \fi + \glyph{quoteright}{\int{smallcapsscale}} +\endsetglyph + +\setglyph{SSsmall} + \glyph{Ssmall}{1000} + \movert{\add{\kerning{Ssmall}{Ssmall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Ssmall}{1000} +\endsetglyph + + +\comment{\section{Accents} + \TeX's math accent-positioning requires accents to have zero depth.} + +\setcommand\zerodepth#1{ + \ifisglyph{#1}\then + \resetglyph{#1} + \glyph{#1}{1000} + \resetdepth{0} + \endresetglyph + \fi +} +\zerodepth{grave} +\zerodepth{acute} +\zerodepth{circumflex} +\zerodepth{tilde} +\zerodepth{dieresis} +\zerodepth{hungarumlaut} +\zerodepth{ring} +\zerodepth{caron} +\zerodepth{breve} +\zerodepth{macron} +\zerodepth{dotaccent} + +\endmetrics + +\section{Changes} + +2003/03/18: Added \texttt{vaxis} for the vertical symmetry axis +Changed `\texttt{asterisk}', which is now vertically centered +in monospaced fonts. +New code to create `\texttt{zdotaccent}', making sure that the +height of the dot matches the letter `\texttt{i}'. This requires +a new macro \verb|\itopaccent|. (WaS) + +1999/10/25: Added \verb|\setglyphs| for \texttt{Macronsmall} and +\texttt{macronsmall}. (LH) + +1999/10/25: Simplified definition of \verb|\unfakable|. (UV\&LH) +Rationale: It is thoroughly confusing if the size of the black box +created by \verb|\unfakable| depends on the metrics of an unencoded +glyph that isn't accessible and therefore unavailable for all pratical +purposes. + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/latinsc.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/latinsc.mtx new file mode 100644 index 00000000000..272c4df97e3 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/latinsc.mtx @@ -0,0 +1,1324 @@ +% Copyright 1997, 1998 Sebastian Rahtz, +% copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Sebastian Rahtz and Ulrik Vieth and Walter Schmidt", +%%% version = "1.916", +%%% date = "12 March 2003", +%%% time = "23:59 MESZ", +%%% filename = "latinsc.mtx", +%%% email = "fontinst@tug.org", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a font metrics file, for use with the +%%% fontinst utility. It provides the defaults +%%% used to install the Latin small caps glyphs.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc} + +\title{The \textsf{fontinst} latin small caps glyphs} +\author{Sebastian Rahtz, Ulrik Vieth, Walter Schmidt} +\date{12 March 2003 \\ +Version 1.916} + +\begin{document} +\maketitle + +\section{Introduction} + +This document describes the glyphs used by the \textsf{fontinst} package +when generating Latin fonts. This file, \texttt{latinsc.mtx}, is a +special version of \texttt{latin.mtx}, intended for use with real small +caps glyphs from expert fonts using `oldstyle' or `small' glyph names. + +\metrics + +\needsfontinstversion{1.800} + +% \unfakable is a glyph which can't be faked. + +\setcommand\unfakable#1{ + \setglyph{#1} + \glyphrule{500}{500} + \glyphwarning{missing glyph `#1'} + \endsetglyph +} + +% A top accent is set by placing the center of the accent at the given +% position along the width of the letter, raised up by the difference +% between the height of the letter and the xheight. + +\setcommand\topaccent#1#2#3{ + \push + \moveup{\max{0}{\sub{\height{#1}}{\int{xheight}}}} + \movert{\add{\sub{\scale{\width{#1}}{#3}}{\scale{\width{#2}}{500}}} + {\scale{\sub{\height{#1}}{\int{xheight}}}{\int{italicslant}}}} + \glyph{#2}{1000} + \pop + \glyph{#1}{1000} +} + +% A bottom accent is set by placing the center of the accent at the given +% position along the width of the letter. + +\setcommand\botaccent#1#2#3{ + \push + \movert{\sub{\scale{\width{#1}}{#3}}{\scale{\width{#2}}{500}}} + \glyph{#2}{1000} + \pop + \glyph{#1}{1000} +} + +% A c&sc glyph is created by shrinking the cap glyph, and adding extra +% space. + +\setcommand\cscglyph#1{ + \ifisglyph{#1small}\then + \glyph{#1small}{1000} + \else + \movert{\int{smallcapsextraspace}} + \glyph{#1}{\int{smallcapsscale}} + \movert{\int{smallcapsextraspace}} + \fi +} + +% A c&sc top accent glyph is placed using the small glyphs if +% available, and otherwise by shrinking the equivalent capital. + +\setcommand\csctopaccent#1#2#3{ + \ifisglyph{#1small}\then + \topaccent{#1small}{#2small}{#3} + \else + \cscglyph{#1#2} + \fi +} + +% A c&sc bot accent glyph is placed using the small glyphs if +% available, and otherwise by shrinking the equivalent capital. + +\setcommand\cscbotaccent#1#2#3{ + \ifisglyph{#1small}\then + \botaccent{#1small}{#2small}{#3} + \else + \cscglyph{#1#2} + \fi +} + +% A c&sc accent is created by moving a shrunk accent up by the +% difference between a scaled x and a scaled X. + +\setcommand\cscaccent#1{ + \moveup{\scale{\int{xheight}}{\sub{1000}{\int{smallcapsscale}}}} + \cscglyph{#1} + \moveup{\scale{\int{xheight}}{\sub{\int{smallcapsscale}}{1000}}} +} + + +\comment{\section{Default values}} + +\setint{italicslant}{0} +\setint{xheight}{\height{x}} +\setint{capheight}{\height{A}} +\setint{ascender}{\height{d}} +\setint{descender}{\depth{g}} +\setint{underlinethickness}{40} +\setint{visiblespacedepth}{200} +\setint{visiblespacewidth}{400} +\setint{visiblespacesurround}{50} +\setint{smallcapsscale}{800} +\setint{smallcapskerning}{900} + +% Vertical symmetry axis. (WaS) +\setint{vaxis}{\scale{\sub{\height{parenleft}}{\depth{parenleft}}}{500}} + +\ifisint{monowidth}\then + \setint{capspacing}{0} + \setint{smallcapsextraspace}{0} +\else + \setint{capspacing}{0} + \setint{smallcapsextraspace}{0} +\fi + +\ifisint{visiblespace}\then + \setint{boundarychar}{\int{visiblespace}} +\fi + + +\comment{\section{Kerning}} + +\setleftrightkerning{visiblespace}{space}{1000} + +\setleftkerning{hyphenchar}{hyphen}{1000} + +\setleftrightkerning{Aacute}{A}{1000} +\setleftrightkerning{Abreve}{A}{1000} +\setleftrightkerning{Acircumflex}{A}{1000} +\setleftrightkerning{Adieresis}{A}{1000} +\setleftrightkerning{Agrave}{A}{1000} +\setleftrightkerning{Aogonek}{A}{1000} +\setleftrightkerning{Aring}{A}{1000} +\setleftrightkerning{Atilde}{A}{1000} + +\setleftrightkerning{Cacute}{C}{1000} +\setleftrightkerning{Ccaron}{C}{1000} +\setleftrightkerning{Ccedilla}{C}{1000} + +\setleftrightkerning{Dcaron}{D}{1000} + +\setleftrightkerning{Eacute}{E}{1000} +\setleftrightkerning{Ecaron}{E}{1000} +\setleftrightkerning{Ecircumflex}{E}{1000} +\setleftrightkerning{Edieresis}{E}{1000} +\setleftrightkerning{Egrave}{E}{1000} +\setleftrightkerning{Eogonek}{E}{1000} + +\setleftrightkerning{Gbreve}{G}{1000} + +\setleftkerning{IJ}{I}{1000} + +\setleftrightkerning{Iacute}{I}{1000} +\setleftrightkerning{Icircumflex}{I}{1000} +\setleftrightkerning{Idieresis}{I}{1000} +\setleftrightkerning{Idotaccent}{I}{1000} +\setleftrightkerning{Igrave}{I}{1000} + +\setrightkerning{IJ}{J}{1000} + +\setleftrightkerning{Lacute}{L}{1000} +\setleftrightkerning{Lslash}{L}{1000} +\setleftkerning{Lcaron}{L}{1000} + +\setleftrightkerning{Nacute}{N}{1000} +\setleftrightkerning{Ncaron}{N}{1000} +\setleftrightkerning{Ntilde}{N}{1000} + +%\setleftkerning{Ng}{N}{1000} +%\setrightkerning{Ng}{J}{1000} + +\setleftrightkerning{Oacute}{O}{1000} +\setleftrightkerning{Ocircumflex}{O}{1000} +\setleftrightkerning{Odieresis}{O}{1000} +\setleftrightkerning{Ograve}{O}{1000} +\setleftrightkerning{Ohungarumlaut}{O}{1000} +\setleftrightkerning{Oslash}{O}{1000} +\setleftrightkerning{Otilde}{O}{1000} + +\setleftrightkerning{Rcaron}{R}{1000} +\setleftrightkerning{Racute}{R}{1000} + +\setleftrightkerning{SS}{S}{1000} +\setleftrightkerning{Sacute}{S}{1000} +\setleftrightkerning{Scaron}{S}{1000} +\setleftrightkerning{Scedilla}{S}{1000} + +\setleftrightkerning{Tcaron}{T}{1000} +\setleftrightkerning{Tcedilla}{T}{1000} + +\setleftrightkerning{Uacute}{U}{1000} +\setleftrightkerning{Ucircumflex}{U}{1000} +\setleftrightkerning{Udieresis}{U}{1000} +\setleftrightkerning{Ugrave}{U}{1000} +\setleftrightkerning{Uhungarumlaut}{U}{1000} +\setleftrightkerning{Uring}{U}{1000} + +\setleftrightkerning{Yacute}{Y}{1000} +\setleftrightkerning{Ydieresis}{Y}{1000} + +\setleftrightkerning{Zacute}{Z}{1000} +\setleftrightkerning{Zcaron}{Z}{1000} +\setleftrightkerning{Zdotaccent}{Z}{1000} + + +\setleftrightkerning{Aacutesmall}{Asmall}{1000} +\setleftrightkerning{Abrevesmall}{Asmall}{1000} +\setleftrightkerning{Acircumflexsmall}{Asmall}{1000} +\setleftrightkerning{Adieresissmall}{Asmall}{1000} +\setleftrightkerning{Agravesmall}{Asmall}{1000} +\setleftrightkerning{Aogoneksmall}{Asmall}{1000} +\setleftrightkerning{Aringsmall}{Asmall}{1000} +\setleftrightkerning{Atildesmall}{Asmall}{1000} + +\setleftrightkerning{Cacutesmall}{Csmall}{1000} +\setleftrightkerning{Ccaronsmall}{Csmall}{1000} +\setleftrightkerning{Ccedillasmall}{Csmall}{1000} + +\setleftrightkerning{Dcaronsmall}{Dsmall}{1000} + +\setleftrightkerning{Eacutesmall}{Esmall}{1000} +\setleftrightkerning{Ecaronsmall}{Esmall}{1000} +\setleftrightkerning{Ecircumflexsmall}{Esmall}{1000} +\setleftrightkerning{Edieresissmall}{Esmall}{1000} +\setleftrightkerning{Egravesmall}{Esmall}{1000} +\setleftrightkerning{Eogoneksmall}{Esmall}{1000} + +\setleftrightkerning{Gbrevesmall}{Gsmall}{1000} + +\setleftrightkerning{Iacutesmall}{Ismall}{1000} +\setleftrightkerning{Icircumflexsmall}{Ismall}{1000} +\setleftrightkerning{Idieresissmall}{Ismall}{1000} +\setleftrightkerning{Idotaccentsmall}{Ismall}{1000} +\setleftrightkerning{Igravesmall}{Ismall}{1000} + +\setleftrightkerning{Lacutesmall}{Lsmall}{1000} +\setleftrightkerning{Lslashsmall}{Lsmall}{1000} +\setleftkerning{Lcaronsmall}{Lsmall}{1000} + +\setleftrightkerning{Nacutesmall}{Nsmall}{1000} +\setleftrightkerning{Ncaronsmall}{Nsmall}{1000} +\setleftrightkerning{Ntildesmall}{Nsmall}{1000} + +%\setleftkerning{Ngsmall}{Nsmall}{1000} +%\setrightkerning{Ngsmall}{Jsmall}{1000} + +\setleftrightkerning{Oacutesmall}{Osmall}{1000} +\setleftrightkerning{Ocircumflexsmall}{Osmall}{1000} +\setleftrightkerning{Odieresissmall}{Osmall}{1000} +\setleftrightkerning{Ogravesmall}{Osmall}{1000} +\setleftrightkerning{Ohungarumlautsmall}{Osmall}{1000} +\setleftrightkerning{Oslashsmall}{Osmall}{1000} +\setleftrightkerning{Otildesmall}{Osmall}{1000} + +\setleftrightkerning{Rcaronsmall}{Rsmall}{1000} +\setleftrightkerning{Racutesmall}{Rsmall}{1000} + +\setleftrightkerning{SSsmall}{Ssmall}{1000} +\setleftrightkerning{Sacutesmall}{Ssmall}{1000} +\setleftrightkerning{Scaronsmall}{Ssmall}{1000} +\setleftrightkerning{Scedillasmall}{Ssmall}{1000} + +\setleftrightkerning{Tcaronsmall}{Tsmall}{1000} +\setleftrightkerning{Tcedillasmall}{Tsmall}{1000} + +\setleftrightkerning{Uacutesmall}{Usmall}{1000} +\setleftrightkerning{Ucircumflexsmall}{Usmall}{1000} +\setleftrightkerning{Udieresissmall}{Usmall}{1000} +\setleftrightkerning{Ugravesmall}{Usmall}{1000} +\setleftrightkerning{Uhungarumlautsmall}{Usmall}{1000} +\setleftrightkerning{Uringsmall}{Usmall}{1000} + +\setleftrightkerning{Yacutesmall}{Ysmall}{1000} +\setleftrightkerning{Ydieresissmall}{Ysmall}{1000} + +\setleftrightkerning{Zacutesmall}{Zsmall}{1000} +\setleftrightkerning{Zcaronsmall}{Zsmall}{1000} +\setleftrightkerning{Zdotaccentsmall}{Zsmall}{1000} + + +\comment{\section{All-caps kerning}} + +\setleftrightkerning{dotlessI}{I}{1000} +\setleftrightkerning{dotlessJ}{J}{1000} +\setleftrightkerning{FFspaced}{F}{1000} +\setleftkerning{FIspaced}{F}{1000} +\setrightkerning{FIspaced}{I}{1000} +\setleftkerning{FLspaced}{F}{1000} +\setrightkerning{FLspaced}{L}{1000} +\setleftkerning{FFIspaced}{F}{1000} +\setrightkerning{FFIspaced}{I}{1000} +\setleftkerning{FFLspaced}{F}{1000} +\setrightkerning{FFLspaced}{L}{1000} +\setleftrightkerning{Dbar}{Eth}{1000} +\setleftkerning{IJspaced}{I}{1000} +\setrightkerning{IJspaced}{J}{1000} +\setleftrightkerning{SSspaced}{S}{1000} + + +\comment{\section{Small caps kerning}} + +\setleftrightkerning{dotlessIsmall}{Ismall}{1000} +\setleftrightkerning{dotlessJsmall}{Jsmall}{1000} + + +\comment{\section{Unfakable glyphs}} + +\unfakable{Gamma} +\unfakable{Delta} +\unfakable{Theta} +\unfakable{Lambda} +\unfakable{Xi} +\unfakable{Pi} +\unfakable{Sigma} +\unfakable{Upsilon} +\unfakable{Upsilon1} +\unfakable{Phi} +\unfakable{Psi} +\unfakable{Omega} + +\unfakable{grave} +\unfakable{acute} +\unfakable{circumflex} +\unfakable{tilde} +\unfakable{dieresis} +\unfakable{hungarumlaut} +\unfakable{ring} +\unfakable{caron} +\unfakable{breve} +\unfakable{macron} +\unfakable{dotaccent} +\unfakable{cedilla} +\unfakable{ogonek} +\unfakable{guilsinglleft} +\unfakable{guilsinglright} +\unfakable{quotedblleft} +\unfakable{quotedblright} +\unfakable{quotedblbase} +\unfakable{guillemotleft} +\unfakable{guillemotright} +\unfakable{endash} +\unfakable{emdash} +\unfakable{dotlessi} +\unfakable{perthousandzero} +\unfakable{exclam} +\unfakable{quotedbl} +\unfakable{numbersign} +\unfakable{dollar} +\unfakable{percent} +\unfakable{ampersand} +\unfakable{quoteright} +\unfakable{parenleft} +\unfakable{parenright} +\unfakable{asterisk} +\unfakable{plus} +\unfakable{comma} +\unfakable{hyphen} +\unfakable{period} +\unfakable{slash} +\unfakable{zero} +\unfakable{one} +\unfakable{two} +\unfakable{three} +\unfakable{four} +\unfakable{five} +\unfakable{six} +\unfakable{seven} +\unfakable{eight} +\unfakable{nine} +\unfakable{zerooldstyle} +\unfakable{oneoldstyle} +\unfakable{twooldstyle} +\unfakable{threeoldstyle} +\unfakable{fouroldstyle} +\unfakable{fiveoldstyle} +\unfakable{sixoldstyle} +\unfakable{sevenoldstyle} +\unfakable{eightoldstyle} +\unfakable{nineoldstyle} +\unfakable{colon} +\unfakable{semicolon} +\unfakable{less} +\unfakable{equal} +\unfakable{greater} +\unfakable{question} +\unfakable{at} +\unfakable{A} +\unfakable{B} +\unfakable{C} +\unfakable{D} +\unfakable{E} +\unfakable{F} +\unfakable{G} +\unfakable{H} +\unfakable{I} +\unfakable{J} +\unfakable{K} +\unfakable{L} +\unfakable{M} +\unfakable{N} +\unfakable{O} +\unfakable{P} +\unfakable{Q} +\unfakable{R} +\unfakable{S} +\unfakable{T} +\unfakable{U} +\unfakable{V} +\unfakable{W} +\unfakable{X} +\unfakable{Y} +\unfakable{Z} +\unfakable{bracketleft} +\unfakable{backslash} +\unfakable{bracketright} +\unfakable{asciicircum} +\unfakable{underscore} +\unfakable{quoteleft} +\unfakable{a} +\unfakable{b} +\unfakable{c} +\unfakable{d} +\unfakable{e} +\unfakable{f} +\unfakable{g} +\unfakable{h} +\unfakable{i} +\unfakable{j} +\unfakable{k} +\unfakable{l} +\unfakable{m} +\unfakable{n} +\unfakable{o} +\unfakable{p} +\unfakable{q} +\unfakable{r} +\unfakable{s} +\unfakable{t} +\unfakable{u} +\unfakable{v} +\unfakable{w} +\unfakable{x} +\unfakable{y} +\unfakable{z} +\unfakable{braceleft} +\unfakable{bar} +\unfakable{braceright} +\unfakable{asciitilde} +\unfakable{Eng} +\unfakable{section} +\unfakable{Engsmall} +\unfakable{exclamdown} +\unfakable{questiondown} +\unfakable{sterling} +\unfakable{AE} +\unfakable{Eth} +\unfakable{OE} +\unfakable{Oslash} +\unfakable{Thorn} +\unfakable{AEsmall} +\unfakable{Ethsmall} +\unfakable{OEsmall} +\unfakable{Oslashsmall} +\unfakable{Thornsmall} +\unfakable{germandbls} +\unfakable{lslashslash} + +\setglyph{dotlessj} + \moveup{\neg{\depth{j}}} + \glyphrule{\width{j}}{\add{\depth{j}}{\height{dotlessi}}} + \resetitalic{\italic{dotlessi}} + \moveup{\depth{j}} + \glyphwarning{missing glyph `dotlessj'} +\endsetglyph + + +\comment{\section{Glyphs}} + +% only with monospaced fonts. (WaS) +\ifisint{monowidth}\then +\resetglyph{asterisk} + \moveup{\neg{\sub{\scale{\sub{\height{asterisk}}{\depth{asterisk}}}{500}}{\int{vaxis}}}} + \glyph{asterisk}{1000} + \resetdepth{0} +\endresetglyph +\fi + +\setglyph{space} + \ifisglyph{space-not}\then + \movert{\width{space-not}} + \else + \movert{\width{i}} + \fi +\endsetglyph + +\setglyph{compwordmark} + \glyphrule{0}{\int{xheight}} +\endsetglyph +\setint{compwordmark-spacing}{0} + +\setglyph{quotesinglbase} + \glyph{comma}{1000} +\endsetglyph + +\setglyph{visiblespace} + \moveup{\neg{\int{visiblespacedepth}}} + \movert{\int{visiblespacesurround}} + \glyphrule + {\int{underlinethickness}} + {\int{visiblespacedepth}} + \glyphrule + {\int{visiblespacewidth}} + {\int{underlinethickness}} + \glyphrule + {\int{underlinethickness}} + {\int{visiblespacedepth}} + \movert{\int{visiblespacesurround}} + \moveup{\int{visiblespacedepth}} +\endsetglyph + +\setglyph{rangedash} + \ifisint{monowidth}\then + \glyph{hyphen}{1000} + \else + \glyph{endash}{1000} + \fi +\endsetglyph + +\setglyph{punctdash} + \ifisint{monowidth}\then + \glyph{hyphen}{1000} + \glyph{hyphen}{1000} + \else + \glyph{emdash}{1000} + \fi +\endsetglyph + +\setglyph{hyphenchar} + \glyph{hyphen}{1000} +\endsetglyph + +\setglyph{ringfitted} + \movert{\div{\sub{\width{A}}{\width{ring}}}{2}} + \glyph{ring}{1000} + \movert{\div{\sub{\width{A}}{\width{ring}}}{2}} +\endsetglyph + +%\setglyph{lslash} +% \glyph{lslashslash}{1000} +% \movert{\kerning{lslashslash}{l}} +% \glyph{l}{1000} +%\endsetglyph + +%\setglyph{Lslash} +% \glyph{lslashslash}{1000} +% \movert{\kerning{lslashslash}{L}} +% \glyph{L}{1000} +%\endsetglyph + +\setglyph{Ng} + \glyph{Eng}{1000} +\endsetglyph + +\setglyph{Ngsmall} + \glyph{Engsmall}{1000} +\endsetglyph + +\setglyph{Abreve} + \topaccent{A}{breve}{500} +\endsetglyph + +\setglyph{Aogonek} + \botaccent{A}{ogonek}{900} +\endsetglyph + +\setglyph{Cacute} + \topaccent{C}{acute}{500} +\endsetglyph + +\setglyph{Ccaron} + \topaccent{C}{caron}{500} +\endsetglyph + +\setglyph{Dcaron} + \topaccent{D}{caron}{450} +\endsetglyph + +\setglyph{Ecaron} + \topaccent{E}{caron}{500} +\endsetglyph + +\setglyph{Eogonek} + \botaccent{E}{ogonek}{850} +\endsetglyph + +\setglyph{Gbreve} + \topaccent{G}{breve}{500} +\endsetglyph + +\setglyph{Lacute} + \topaccent{L}{acute}{250} +\endsetglyph + +\setglyph{Lcaron} + \glyph{L}{1000} + \ifisint{monowidth}\then\else + \movert{-200} + \fi + \glyph{quoteright}{1000} +\endsetglyph + +\setglyph{Nacute} + \topaccent{N}{acute}{500} +\endsetglyph + +\setglyph{Ncaron} + \topaccent{N}{caron}{500} +\endsetglyph + +\setglyph{Ohungarumlaut} + \topaccent{O}{hungarumlaut}{500} +\endsetglyph + +\setglyph{Racute} + \topaccent{R}{acute}{500} +\endsetglyph + +\setglyph{Rcaron} + \topaccent{R}{caron}{500} +\endsetglyph + +\setglyph{Sacute} + \topaccent{S}{acute}{500} +\endsetglyph + +\setglyph{Scaron} + \topaccent{S}{caron}{500} +\endsetglyph + +\setglyph{Scedilla} + \botaccent{S}{cedilla}{500} +\endsetglyph + +\setglyph{Tcaron} + \topaccent{T}{caron}{500} +\endsetglyph + +\setglyph{Tcedilla} + \botaccent{T}{cedilla}{500} +\endsetglyph + +\setglyph{Uhungarumlaut} + \topaccent{U}{hungarumlaut}{500} +\endsetglyph + +\setglyph{Uring} + \topaccent{U}{ring}{500} +\endsetglyph + +\setglyph{Ydieresis} + \topaccent{Y}{dieresis}{500} +\endsetglyph + +\setglyph{Zacute} + \topaccent{Z}{acute}{500} +\endsetglyph + +\setglyph{Zcaron} + \topaccent{Z}{caron}{500} +\endsetglyph + +\setglyph{Zdotaccent} + \topaccent{Z}{dotaccent}{500} +\endsetglyph + +\setglyph{IJ} + \glyph{I}{1000} + \movert{\kerning{I}{J}} + \glyph{J}{1000} +\endsetglyph + +\setglyph{Idotaccent} + \topaccent{I}{dotaccent}{500} +\endsetglyph + +\setglyph{Agrave} + \topaccent{A}{grave}{500} +\endsetglyph + +\setglyph{Aacute} + \topaccent{A}{acute}{500} +\endsetglyph + +\setglyph{Acircumflex} + \topaccent{A}{circumflex}{500} +\endsetglyph + +\setglyph{Atilde} + \topaccent{A}{tilde}{500} +\endsetglyph + +\setglyph{Adieresis} + \topaccent{A}{dieresis}{500} +\endsetglyph + +\setglyph{Aring} + \topaccent{A}{ring}{500} +\endsetglyph + +\setglyph{Ccedilla} + \botaccent{C}{cedilla}{500} +\endsetglyph + +\setglyph{Egrave} + \topaccent{E}{grave}{500} +\endsetglyph + +\setglyph{Eacute} + \topaccent{E}{acute}{500} +\endsetglyph + +\setglyph{Ecircumflex} + \topaccent{E}{circumflex}{500} +\endsetglyph + +\setglyph{Edieresis} + \topaccent{E}{dieresis}{500} +\endsetglyph + +\setglyph{Iacute} + \topaccent{I}{acute}{500} +\endsetglyph + +\setglyph{Igrave} + \topaccent{I}{grave}{500} +\endsetglyph + +\setglyph{Icircumflex} + \topaccent{I}{circumflex}{500} +\endsetglyph + +\setglyph{Idieresis} + \topaccent{I}{dieresis}{500} +\endsetglyph + +\setglyph{Ntilde} + \topaccent{N}{tilde}{500} +\endsetglyph + +\setglyph{Ograve} + \topaccent{O}{grave}{500} +\endsetglyph + +\setglyph{Oacute} + \topaccent{O}{acute}{500} +\endsetglyph + +\setglyph{Ocircumflex} + \topaccent{O}{circumflex}{500} +\endsetglyph + +\setglyph{Otilde} + \topaccent{O}{tilde}{500} +\endsetglyph + +\setglyph{Odieresis} + \topaccent{O}{dieresis}{500} +\endsetglyph + +\setglyph{Ugrave} + \topaccent{U}{grave}{500} +\endsetglyph + +\setglyph{Uacute} + \topaccent{U}{acute}{500} +\endsetglyph + +\setglyph{Ucircumflex} + \topaccent{U}{circumflex}{500} +\endsetglyph + +\setglyph{Udieresis} + \topaccent{U}{dieresis}{500} +\endsetglyph + +\setglyph{Yacute} + \topaccent{Y}{acute}{500} +\endsetglyph + +\setglyph{SS} + \glyph{S}{1000} + \movert{\kerning{S}{S}} + \glyph{S}{1000} +\endsetglyph + + +\comment{\section{All-caps glyphs}} + +\setglyph{dotlessI} + \glyph{I}{1000} +\endsetglyph + +\setglyph{dotlessJ} + \glyph{J}{1000} +\endsetglyph + +\setglyph{FFspaced} + \glyph{F}{1000} + \movert{\add{\kerning{F}{F}} + {\int{capspacing}}} + \glyph{F}{1000} +\endsetglyph + +\setglyph{FIspaced} + \glyph{F}{1000} + \movert{\add{\kerning{F}{I}} + {\int{capspacing}}} + \glyph{I}{1000} +\endsetglyph + +\setglyph{FLspaced} + \glyph{F}{1000} + \movert{\add{\kerning{F}{L}} + {\int{capspacing}}} + \glyph{L}{1000} +\endsetglyph + +\setglyph{FFIspaced} + \glyph{FFspaced}{1000} + \movert{\add{\kerning{FFspaced}{I}} + {\int{capspacing}}} + \glyph{I}{1000} +\endsetglyph + +\setglyph{FFLspaced} + \glyph{FFspaced}{1000} + \movert{\add{\kerning{FFspaced}{L}} + {\int{capspacing}}} + \glyph{L}{1000} +\endsetglyph + +\setglyph{Dbar} + \glyph{Eth}{1000} +\endsetglyph + +\setglyph{IJspaced} + \glyph{I}{1000} + \movert{\add{\kerning{I}{J}}{\int{capspacing}}} + \glyph{J}{1000} +\endsetglyph + +\setglyph{SSspaced} + \glyph{S}{1000} + \movert{\add{\kerning{S}{S}}{\int{capspacing}}} + \glyph{S}{1000} +\endsetglyph + + +\comment{\section{Small caps glyphs}} + +\setglyph{Acutesmall} + \cscaccent{acute} +\endsetglyph + +\setglyph{acutesmall} + \glyph{Acutesmall}{1000} +\endsetglyph + +\setglyph{Gravesmall} + \cscaccent{grave} +\endsetglyph + +\setglyph{gravesmall} + \glyph{Gravesmall}{1000} +\endsetglyph + +\setglyph{Circumflexsmall} + \cscaccent{circumflex} +\endsetglyph + +\setglyph{circumflexsmall} + \glyph{Circumflexsmall}{1000} +\endsetglyph + +\setglyph{Tildesmall} + \cscaccent{tilde} +\endsetglyph + +\setglyph{tildesmall} + \glyph{Tildesmall}{1000} +\endsetglyph + +\setglyph{Dieresissmall} + \cscaccent{dieresis} +\endsetglyph + +\setglyph{dieresissmall} + \glyph{Dieresissmall}{1000} +\endsetglyph + +\setglyph{Brevesmall} + \cscaccent{breve} +\endsetglyph + +\setglyph{brevesmall} + \glyph{Brevesmall}{1000} +\endsetglyph + +\setglyph{Dotaccentsmall} + \cscaccent{dotaccent} +\endsetglyph + +\setglyph{dotaccentsmall} + \glyph{Dotaccentsmall}{1000} +\endsetglyph + +\setglyph{Caronsmall} + \cscaccent{caron} +\endsetglyph + +\setglyph{caronsmall} + \glyph{Caronsmall}{1000} +\endsetglyph + +\setglyph{Hungarumlautsmall} + \cscaccent{hungarumlaut} +\endsetglyph + +\setglyph{hungarumlautsmall} + \glyph{Hungarumlautsmall}{1000} +\endsetglyph + +\setglyph{Ringsmall} + \cscaccent{ring} +\endsetglyph + +\setglyph{ringsmall} + \glyph{Ringsmall}{1000} +\endsetglyph + +\setglyph{Cedillasmall} + \cscglyph{cedilla} +\endsetglyph + +\setglyph{cedillasmall} + \glyph{Cedillasmall}{1000} +\endsetglyph + +\setglyph{Ogoneksmall} + \cscglyph{ogonek} +\endsetglyph + +\setglyph{ogoneksmall} + \glyph{Ogoneksmall}{1000} +\endsetglyph + +\setglyph{Abrevesmall} + \csctopaccent{A}{breve}{500} +\endsetglyph + +\setglyph{Aogoneksmall} + \cscbotaccent{A}{ogonek}{900} +\endsetglyph + +\setglyph{Cacutesmall} + \csctopaccent{C}{acute}{500} +\endsetglyph + +\setglyph{Ccaronsmall} + \csctopaccent{C}{caron}{500} +\endsetglyph + +\setglyph{Dcaronsmall} + \csctopaccent{D}{caron}{500} +\endsetglyph + +\setglyph{Ecaronsmall} + \csctopaccent{E}{caron}{500} +\endsetglyph + +\setglyph{Eogoneksmall} + \cscbotaccent{E}{ogonek}{850} +\endsetglyph + +\setglyph{Gbrevesmall} + \csctopaccent{G}{breve}{500} +\endsetglyph + +\setglyph{Lacutesmall} + \csctopaccent{L}{acute}{250} +\endsetglyph + +\setglyph{Nacutesmall} + \csctopaccent{N}{acute}{500} +\endsetglyph + +\setglyph{Ncaronsmall} + \csctopaccent{N}{caron}{500} +\endsetglyph + +\setglyph{Ngsmall} + \cscglyph{Ng} +\endsetglyph + +\setglyph{Ohungarumlautsmall} + \csctopaccent{O}{hungarumlaut}{500} +\endsetglyph + +\setglyph{Racutesmall} + \csctopaccent{R}{acute}{500} +\endsetglyph + +\setglyph{Rcaronsmall} + \csctopaccent{R}{caron}{500} +\endsetglyph + +\setglyph{Sacutesmall} + \csctopaccent{S}{acute}{500} +\endsetglyph + +\setglyph{Scaronsmall} + \csctopaccent{S}{caron}{500} +\endsetglyph + +\setglyph{Scedillasmall} + \cscbotaccent{S}{cedilla}{500} +\endsetglyph + +\setglyph{Tcaronsmall} + \csctopaccent{T}{caron}{500} +\endsetglyph + +\setglyph{Tcedillasmall} + \cscbotaccent{T}{cedilla}{500} +\endsetglyph + +\setglyph{Uhungarumlautsmall} + \csctopaccent{U}{hungarumlaut}{500} +\endsetglyph + +\setglyph{Uringsmall} + \csctopaccent{U}{ring}{500} +\endsetglyph + +\setglyph{Ydieresissmall} + \csctopaccent{Y}{dieresis}{500} +\endsetglyph + +\setglyph{Zacutesmall} + \csctopaccent{Z}{acute}{500} +\endsetglyph + +\setglyph{Zcaronsmall} + \csctopaccent{Z}{caron}{500} +\endsetglyph + +\setglyph{Zdotaccentsmall} + \csctopaccent{Z}{dotaccent}{500} +\endsetglyph + +\setglyph{Agravesmall} + \csctopaccent{A}{grave}{500} +\endsetglyph + +\setglyph{Aacutesmall} + \csctopaccent{A}{acute}{500} +\endsetglyph + +\setglyph{Acircumflexsmall} + \csctopaccent{A}{circumflex}{500} +\endsetglyph + +\setglyph{Atildesmall} + \csctopaccent{A}{tilde}{500} +\endsetglyph + +\setglyph{Adieresissmall} + \csctopaccent{A}{dieresis}{500} +\endsetglyph + +\setglyph{Aringsmall} + \csctopaccent{A}{ring}{500} +\endsetglyph + +\setglyph{Ccedillasmall} + \csctopaccent{C}{cedilla}{500} +\endsetglyph + +\setglyph{Egravesmall} + \csctopaccent{E}{grave}{500} +\endsetglyph + +\setglyph{Eacutesmall} + \csctopaccent{E}{acute}{500} +\endsetglyph + +\setglyph{Ecircumflexsmall} + \csctopaccent{E}{circumflex}{500} +\endsetglyph + +\setglyph{Edieresissmall} + \csctopaccent{E}{dieresis}{500} +\endsetglyph + +\setglyph{Igravesmall} + \csctopaccent{I}{grave}{500} +\endsetglyph + +\setglyph{Iacutesmall} + \csctopaccent{I}{acute}{500} +\endsetglyph + +\setglyph{Icircumflexsmall} + \csctopaccent{I}{circumflex}{500} +\endsetglyph + +\setglyph{Idieresissmall} + \csctopaccent{I}{dieresis}{500} +\endsetglyph + +\setglyph{Ethsmall} + \cscglyph{Eth} +\endsetglyph + +\setglyph{Dbarsmall} + \glyph{Ethsmall}{1000} +\endsetglyph + +\setglyph{Ntildesmall} + \csctopaccent{N}{tilde}{500} +\endsetglyph + +\setglyph{Ogravesmall} + \csctopaccent{O}{grave}{500} +\endsetglyph + +\setglyph{Oacutesmall} + \csctopaccent{O}{acute}{500} +\endsetglyph + +\setglyph{Ocircumflexsmall} + \csctopaccent{O}{circumflex}{500} +\endsetglyph + +\setglyph{Otildesmall} + \csctopaccent{O}{tilde}{500} +\endsetglyph + +\setglyph{Odieresissmall} + \csctopaccent{O}{dieresis}{500} +\endsetglyph + +\setglyph{Ugravesmall} + \csctopaccent{U}{grave}{500} +\endsetglyph + +\setglyph{Uacutesmall} + \csctopaccent{U}{acute}{500} +\endsetglyph + +\setglyph{Ucircumflexsmall} + \csctopaccent{U}{circumflex}{500} +\endsetglyph + +\setglyph{Udieresissmall} + \csctopaccent{U}{dieresis}{500} +\endsetglyph + +\setglyph{Yacutesmall} + \csctopaccent{Y}{acute}{500} +\endsetglyph + +\setglyph{Thornsmall} + \cscglyph{Thorn} +\endsetglyph + +\setglyph{dotlessIsmall} + \glyph{Ismall}{1000} +\endsetglyph + +\setglyph{dotlessJsmall} + \glyph{Jsmall}{1000} +\endsetglyph + +\setglyph{FFsmall} + \glyph{Fsmall}{1000} + \movert{\add{\kerning{Fsmall}{Fsmall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Fsmall}{1000} +\endsetglyph + +\setglyph{FIsmall} + \glyph{Fsmall}{1000} + \movert{\add{\kerning{Fsmall}{Ismall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Ismall}{1000} +\endsetglyph + +\setglyph{FLsmall} + \glyph{Fsmall}{1000} + \movert{\add{\kerning{Fsmall}{Lsmall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Lsmall}{1000} +\endsetglyph + +\setglyph{FFIsmall} + \glyph{FFsmall}{1000} + \movert{\add{\kerning{FFsmall}{Ismall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Ismall}{1000} +\endsetglyph + +\setglyph{FFLsmall} + \glyph{FFsmall}{1000} + \movert{\add{\kerning{FFsmall}{Lsmall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Lsmall}{1000} +\endsetglyph + +\setglyph{IJsmall} + \glyph{Ismall}{1000} + \movert{\add{\kerning{Ismall}{Jsmall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Jsmall}{1000} +\endsetglyph + +\setglyph{Lcaronsmall} + \glyph{Lsmall}{1000} + \ifisint{monowidth}\then\else + \movert{-100} + \fi + \glyph{quoteright}{\int{smallcapsscale}} +\endsetglyph + +\setglyph{SSsmall} + \glyph{Ssmall}{1000} + \movert{\add{\kerning{Ssmall}{Ssmall}} + {\mul{2}{\int{smallcapsextraspace}}}} + \glyph{Ssmall}{1000} +\endsetglyph + + +\comment{\section{Accents} + \TeX's math accent-positioning requires accents to have zero depth.} + +\setcommand\zerodepth#1{ + \ifisglyph{#1}\then + \resetglyph{#1} + \glyph{#1}{1000} + \resetdepth{0} + \endresetglyph + \fi +} +\zerodepth{Gravesmall} +\zerodepth{Acutesmall} +\zerodepth{Circumflexsmall} +\zerodepth{Tildesmall} +\zerodepth{Dieresissmall} +\zerodepth{Hungarumlautsmall} +\zerodepth{Ringsmall} +\zerodepth{Caronsmall} +\zerodepth{Brevesmall} +\zerodepth{Macronsmall} +\zerodepth{Dotaccentsmall} + +\endmetrics + +\section{Changes} + +2003/03/17: Added \texttt{vaxis} for the vertical symmetry axis. +Changed `\texttt{asterisk}', which is now vertically centered +in monospaced fonts. (WaS) + +1999/10/25: Simplified definition of \verb|\unfakable|. (UV\&LH) +Rationale: It is thoroughly confusing if the size of the black box +created by \verb|\unfakable| depends on the metrics of an unencoded +glyph that isn't accessible and therefore unavailable for all +pratical purposes. + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/llbuild.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/llbuild.mtx new file mode 100644 index 00000000000..91306fbaf31 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/llbuild.mtx @@ -0,0 +1,568 @@ +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Alan Jeffrey and Ulrik Vieth and +%%% Lars Hellstr{\"o}m", +%%% version = "1.923", +%%% date = "2003-03-29", +%%% time = "01:24:47 +01:00", +%%% filename = "llbuild.mtx", +%%% email = "fontinst@tug.org", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a font metrics file, for use with the +%%% fontinst utility. It builds upper case latin +%%% letters.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} + +\usepackage{fontdoc}[2002/03/01] +\showbranches + +\title{Building lower case} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{5 January 2002\\Version 1.923} + +\begin{document} +\maketitle + +\section{Introduction} + +This file builds lower case (small, \texttt{l} case) latin letters, +or more precisely, it makes sure that a set of glyphs is defined that +cover the lower case letters used in European latin scripts. +Even that is a slight exaggeration, because there are a couple of +``exotic'' letters that are missing, but most people never try to use +those anyway. + +For the glyphs set in this file to look anything like the letters they +are supposed to be, it is necessary that the glyphs for unaccented +letters and for accents already exist and look like they are supposed +to. In that case, the commands below will manufacture decent +substitutes for the missing glyphs by composing letters and accents. +If some of these base glyphs are missing, then a ``missing glyph'' +substitute will be supplied for them. Such substitutes will show up in +print as black squares, and most DVI drivers will emit a warning when +producing them. + +The most common case encountered is that almost all unaccented letters +and accents are available, but only about half of the accented +letters. Then for the other half, quite decent substitutes are made, +but a few letters only show up as ``missing glyph'' boxes. + + +\metrics + +\needsfontinstversion{1.910} +\usemtxpackage{ltcmds} + +\ProvidesMtxPackage{llbuild} + +\begincomment +\section{Lower case base glyphs} + +\subsection{Unfakable glyphs} + +The following commands make sure all the unaccented letter glyphs and +accent glyphs are set. If any of them are not already set at this +point, then those will be set to ``missing glyph'' boxes. +\endcomment + +\unfakable{a} +\unfakable{ae} +\unfakable{b} +\unfakable{c} +\unfakable{d} +\unfakable{dotlessi} +\unfakable{e} +\unfakable{eng} +\unfakable{eth} +\unfakable{f} +\unfakable{g} +\unfakable{germandbls} +\unfakable{h} +\unfakable{i} +\unfakable{j} +\unfakable{k} +\unfakable{l} +\unfakable{m} +\unfakable{n} +\unfakable{o} +\unfakable{oe} +\unfakable{oslash} +\unfakable{p} +\unfakable{q} +\unfakable{r} +\unfakable{s} +\unfakable{t} +\unfakable{thorn} +\unfakable{u} +\unfakable{v} +\unfakable{w} +\unfakable{x} +\unfakable{y} +\unfakable{z} + + +\unfakabletopaccent{acute} +\unfakabletopaccent{breve} +\unfakabletopaccent{caron} +\unfakable{cedilla} +\unfakabletopaccent{circumflex} +\unfakabletopaccent{dieresis} +\unfakabletopaccent{dotaccent} +\unfakabletopaccent{grave} +\unfakabletopaccent{hungarumlaut} +\unfakable{lslashslash} +\unfakabletopaccent{macron} +\unfakable{ogonek} +\unfakabletopaccent{quoteright} +\unfakabletopaccent{ring} +\unfakabletopaccent{tilde} + +\begincomment +\subsection{Fakable lower case glyphs} +\endcomment + +\ifisglyph{dcroat}\then + \setglyph{dbar} + \glyph{dcroat}{1000} + \endsetglyph +\Else + \setglyph{dbar} + \push + \movert{\sub{\width{d}}{\width{macron}}} + \moveup{ + \sub{\half{\add{\height{d}}{\int{xheight}}}} + {\height{macron}}} + \glyph{macron}{1000} + \pop + \glyph{d}{1000} + \endsetglyph +\Fi +\setleftrightkerning{dbar}{d}{1000} + +\setglyph{dotlessj} + \glyph{j}{1000} + \resetheight{\int{xheight}} + \comment{The reason \texttt{dotlessj} \emph{can} be faked using a + \texttt{j} is that it is not a distinct character. Unlike + \texttt{dotlessi}, which is in Turkish a letter distinct from + \texttt{i}, the only thing \texttt{dotlessj} is ever used for is + as the base glyph for accented j's.} +\endsetglyph +\setleftrightkerning{dotlessj}{j}{1000} + + +\begincomment +\subsection{Aliased lower case glyphs} +\endcomment + +\setglyph{ng} + \glyph{eng}{1000} +\endsetglyph +\setleftkerning{ng}{n}{1000} +\setrightkerning{ng}{j}{1000} + + +\begincomment +\subsection{Some extra kerning} +\endcomment + +\setleftkerning{oe}{o}{1000} +\setrightkerning{oe}{e}{1000} + +\setleftrightkerning{oslash}{o}{1000} + + + +\begincomment +\section{Accented lower case glyphs} +\endcomment + +\setglyph{aacute} + \topaccent{a}{acute}{500} +\endsetglyph +\setleftrightkerning{aacute}{a}{1000} + +\setglyph{abreve} + \topaccent{a}{breve}{500} +\endsetglyph +\setleftrightkerning{abreve}{a}{1000} + +\setglyph{acircumflex} + \topaccent{a}{circumflex}{500} +\endsetglyph +\setleftrightkerning{acircumflex}{a}{1000} + +\setglyph{adieresis} + \topaccent{a}{dieresis}{500} +\endsetglyph +\setleftrightkerning{adieresis}{a}{1000} + +\setglyph{agrave} + \topaccent{a}{grave}{500} +\endsetglyph +\setleftrightkerning{agrave}{a}{1000} + +\setglyph{aogonek} + \botaccent{a}{ogonek}{850} +\endsetglyph +\setleftrightkerning{aogonek}{a}{1000} + +\setglyph{aring} + \topaccent{a}{ring}{500} +\endsetglyph +\setleftrightkerning{aring}{a}{1000} + +\setglyph{atilde} + \topaccent{a}{tilde}{500} +\endsetglyph +\setleftrightkerning{atilde}{a}{1000} + +\setglyph{cacute} + \topaccent{c}{acute}{500} +\endsetglyph +\setleftrightkerning{cacute}{c}{1000} + +\setglyph{ccaron} + \topaccent{c}{caron}{500} +\endsetglyph +\setleftrightkerning{ccaron}{c}{1000} + +\setglyph{ccedilla} + \botaccent{c}{cedilla}{500} +\endsetglyph +\setleftrightkerning{ccedilla}{c}{1000} + +\setglyph{dcaron} + \glyph{d}{1000} + \ifisint{monowidth}\then\Else + \movert{-75} + \Fi + \glyph{quoteright}{1000} +\endsetglyph +\setleftkerning{dcaron}{d}{1000} + +\setglyph{eacute} + \topaccent{e}{acute}{500} +\endsetglyph +\setleftrightkerning{eacute}{e}{1000} + +\setglyph{ecaron} + \topaccent{e}{caron}{500} +\endsetglyph +\setleftrightkerning{ecaron}{e}{1000} + +\setglyph{ecircumflex} + \topaccent{e}{circumflex}{500} +\endsetglyph +\setleftrightkerning{ecircumflex}{e}{1000} + +\setglyph{edieresis} + \topaccent{e}{dieresis}{500} +\endsetglyph +\setleftrightkerning{edieresis}{e}{1000} + +\setglyph{egrave} + \topaccent{e}{grave}{500} +\endsetglyph +\setleftrightkerning{egrave}{e}{1000} + +\setglyph{eogonek} + \botaccent{e}{ogonek}{500} +\endsetglyph +\setleftrightkerning{eogonek}{e}{1000} + +\setglyph{gbreve} + \topaccent{g}{breve}{500} +\endsetglyph +\setleftrightkerning{gbreve}{g}{1000} + +\setglyph{iacute} + \topaccent{dotlessi}{acute}{500} +\endsetglyph +\setleftrightkerning{iacute}{i}{1000} + +\setglyph{icircumflex} + \topaccent{dotlessi}{circumflex}{500} +\endsetglyph +\setleftrightkerning{icircumflex}{i}{1000} + +\setglyph{idieresis} + \topaccent{dotlessi}{dieresis}{500} +\endsetglyph +\setleftrightkerning{idieresis}{i}{1000} + +\setglyph{idotaccent} + \comment{This should be the normal `\texttt{i}', except in + smallcaps fonts.} + \ifnumber{\height{i}}>{\scale{\int{xheight}}{1050}}\then + \comment{Some quick statistics showed that the height of an + `\texttt{i}' with dot is usually around 140\% of the + x-height, but to be on the safe side we assume all + \texttt{i}s whose height exceed 105\% of the x-height to + be dotted.} + \glyph{i}{1000} + \Else + \topaccent{i}{dotaccent}{500} + \Fi +\endsetglyph +\setleftrightkerning{idotaccent}{i}{1000} + +\setglyph{igrave} + \topaccent{dotlessi}{grave}{500} +\endsetglyph +\setleftrightkerning{igrave}{i}{1000} + +\setglyph{lacute} + \topaccent{l}{acute}{500} +\endsetglyph +\setleftrightkerning{lacute}{l}{1000} + +\setglyph{lcaron} + \glyph{l}{1000} + \ifisint{monowidth}\then\Else + \movert{-100} + \Fi + \glyph{quoteright}{1000} +\endsetglyph +\setleftkerning{lcaron}{l}{1000} + +\setglyph{lslash} + \glyph{lslashslash}{1000} + \movert{\kerning{lslashslash}{l}} + \glyph{l}{1000} +\endsetglyph +\comment{I'm not sure what this should kern like.} + +\setglyph{nacute} + \topaccent{n}{acute}{500} +\endsetglyph +\setleftrightkerning{nacute}{n}{1000} + +\setglyph{ncaron} + \topaccent{n}{caron}{500} +\endsetglyph +\setleftrightkerning{ncaron}{n}{1000} + +\setglyph{ntilde} + \topaccent{n}{tilde}{500} +\endsetglyph +\setleftrightkerning{ntilde}{n}{1000} + +\setglyph{oacute} + \topaccent{o}{acute}{500} +\endsetglyph +\setleftrightkerning{oacute}{o}{1000} + +\setglyph{ocircumflex} + \topaccent{o}{circumflex}{500} +\endsetglyph +\setleftrightkerning{ocircumflex}{o}{1000} + +\setglyph{odieresis} + \topaccent{o}{dieresis}{500} +\endsetglyph +\setleftrightkerning{odieresis}{o}{1000} + +\setglyph{ograve} + \topaccent{o}{grave}{500} +\endsetglyph +\setleftrightkerning{ograve}{o}{1000} + +\setglyph{ohungarumlaut} + \topaccent{o}{hungarumlaut}{500} +\endsetglyph +\setleftrightkerning{ohungarumlaut}{o}{1000} + +\setglyph{otilde} + \topaccent{o}{tilde}{500} +\endsetglyph +\setleftrightkerning{otilde}{o}{1000} + +\setglyph{racute} + \topaccent{r}{acute}{500} +\endsetglyph +\setleftrightkerning{racute}{r}{1000} + +\setglyph{rcaron} + \topaccent{r}{caron}{500} +\endsetglyph +\setleftrightkerning{rcaron}{r}{1000} + +\setglyph{sacute} + \topaccent{s}{acute}{500} +\endsetglyph +\setleftrightkerning{sacute}{s}{1000} + +\setglyph{scaron} + \topaccent{s}{caron}{500} +\endsetglyph +\setleftrightkerning{scaron}{s}{1000} + +\setglyph{scedilla} + \botaccent{s}{cedilla}{500} +\endsetglyph +\setleftrightkerning{scedilla}{s}{1000} + +\setglyph{tcaron} + \glyph{t}{1000} + \ifisint{monowidth}\then\Else + \movert{-75} + \Fi + \glyph{quoteright}{1000} +\endsetglyph +\setleftkerning{tcaron}{t}{1000} +\comment{I don't know what this should kern like on the right.} + +\setglyph{tcedilla} + \botaccent{t}{cedilla}{500} +\endsetglyph +\setleftrightkerning{tcedilla}{t}{1000} + +\setglyph{ugrave} + \topaccent{u}{grave}{500} +\endsetglyph +\setleftrightkerning{ugrave}{u}{1000} + +\setglyph{uacute} + \topaccent{u}{acute}{500} +\endsetglyph +\setleftrightkerning{uacute}{u}{1000} + +\setglyph{ucircumflex} + \topaccent{u}{circumflex}{500} +\endsetglyph +\setleftrightkerning{ucircumflex}{u}{1000} + +\setglyph{udieresis} + \topaccent{u}{dieresis}{500} +\endsetglyph +\setleftrightkerning{udieresis}{u}{1000} + +\setglyph{uhungarumlaut} + \topaccent{u}{hungarumlaut}{500} +\endsetglyph +\setleftrightkerning{uhungarumlaut}{u}{1000} + +\setglyph{uring} + \topaccent{u}{ring}{500} +\endsetglyph +\setleftrightkerning{uring}{u}{1000} + +\setglyph{yacute} + \topaccent{y}{acute}{500} +\endsetglyph +\setleftrightkerning{yacute}{y}{1000} + +\setglyph{ydieresis} + \topaccent{y}{dieresis}{500} +\endsetglyph +\setleftrightkerning{ydieresis}{y}{1000} + +\setglyph{zacute} + \topaccent{z}{acute}{500} +\endsetglyph +\setleftrightkerning{zacute}{z}{1000} + +\setglyph{zcaron} + \topaccent{z}{caron}{500} +\endsetglyph +\setleftrightkerning{zcaron}{z}{1000} + +\setglyph{zdotaccent} + \topaccentas{z}{dotaccent}{500}{idotaccent} +\endsetglyph +\setleftrightkerning{zdotaccent}{z}{1000} + + +\begincomment +\section{Lower case ligatures} +\endcomment + +\setglyph{fi} + \glyph{f}{1000} + \movert{\kerning{f}{i}} + \glyph{i}{1000} +\endsetglyph +\setleftkerning{fi}{f}{1000} +\setrightkerning{fi}{i}{1000} + +\setglyph{ff} + \glyph{f}{1000} + \movert{\kerning{f}{f}} + \glyph{f}{1000} +\endsetglyph +\setleftrightkerning{ff}{f}{1000} + +\setglyph{fl} + \glyph{f}{1000} + \movert{\kerning{f}{l}} + \glyph{l}{1000} +\endsetglyph +\setleftkerning{fl}{f}{1000} +\setrightkerning{fl}{l}{1000} + +\setglyph{ffi} + \glyph{f}{1000} + \movert{\kerning{f}{f}} + \glyph{fi}{1000} +\endsetglyph +\setleftkerning{ffi}{f}{1000} +\setrightkerning{ffi}{i}{1000} + +\setglyph{ffl} + \glyph{f}{1000} + \movert{\kerning{f}{f}} + \glyph{fl}{1000} +\endsetglyph +\setleftkerning{ffl}{f}{1000} +\setrightkerning{ffl}{l}{1000} + + +\setglyph{ij} + \glyph{i}{1000} + \movert{\kerning{i}{j}} + \glyph{j}{1000} +\endsetglyph +\setleftkerning{ij}{i}{1000} +\setrightkerning{ij}{j}{1000} + + + + +\endmetrics + +\section{Changes} + +The original version of this file was created in February 2003, +although it is based on code from the traditional \texttt{latin.mtx}. +The changes that have been made after that are as follows. + +2003/03/15: Using \verb|\unfakabletopaccent| for the accent +characters. This should change the appearence of accented letters +built using such a character from ``a black square'' to ``a letter +with a black square above''. Neither is satisfactory, but the latter +conveys more information. (LH) + +2003/03/15: Modified the construction of `\texttt{zdotaccent}' so that +it always has the dot at the same vertical position as a dotted i, as +requested by Walter Schmidt. Also added the `\texttt{idotaccent}' +glyph to have something to compare with. (LH) + +2003/03/15: Added kerning for ligatures; it seems I had forgotten +that. (LH) + +2003/03/29: Added some kerning for non-English unfakable letters. (LH) + +\end{document} + diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/lsbuild.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/lsbuild.mtx new file mode 100644 index 00000000000..372ea4b4fdd --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/lsbuild.mtx @@ -0,0 +1,256 @@ +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Lars Hellstr{\"o}m", +%%% date = "2003-03-29", +%%% time = "16:16:56 +01:00", +%%% filename = "lsbuild.mtx", +%%% email = "fontinst@tug.org", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a font metrics file, for use with the +%%% fontinst utility. It builds less common +%%% small caps letters from plain ones and +%%% accents.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} + +\usepackage{fontdoc}[2002/03/01] +\showbranches + +\title{Building latin smallcaps letters} +\author{Lars Hellstr\"om} +\date{3 January 2003} + +\begin{document} +\maketitle + +This file contains commands that build some proper small capital +glyphs from other small capital glyphs, but nothing is done is those +base glyphs have not already been set. + +If you want to \emph{fake} small capitals using full capitals, then +have a look at \texttt{lsfake.mtx} instead. + +\metrics + +\needsfontinstversion{1.917} + +\usemtxpackage{ltcmds} +\ProvidesMtxPackage{lsbuild} + +\begincomment +\section{Proper latin small capitals} + +\subsection{Some utility commands} +\endcomment + +\setcommand\setcsctopglyph#1#2#3#4{ + \ifareglyphs{#2small,#3}\then + \setglyph{#1} + \topaccent{#2small}{#3}{#4} + \endsetglyph + \setleftrightkerning{#1}{#2small}{1000} + \Fi +} +\setcommand\setcscbotglyph#1#2#3#4{ + \ifareglyphs{#2small,#3}\then + \setglyph{#1} + \botaccent{#2small}{#3}{#4} + \endsetglyph + \setleftrightkerning{#1}{#2small}{1000} + \Fi +} +\begincomment\medskip +A \textbf{Try: Set glyph} is an ordinary \textbf{Set glyph} which is +conditional on that a set of glyphs (those used to construct the +composite glyph) are available. It is technically e.g. +\begin{quotation} + \setcsctopglyph{\macroparameter{1}}{\macroparameter{2}}% + {\macroparameter{3}}{\macroparameter{4}} + \setcscbotglyph{\macroparameter{1}}{\macroparameter{2}}% + {\macroparameter{3}}{\macroparameter{4}}\par +\end{quotation} +(both of which are implemented in the code as simple four argument +commands), but in the list of commands below those two commands will +be typeset as +\resetcommand\setcsctopglyph#1#2#3#4{% + \Aheading{Try: Set glyph `\TypesetStringExpression{#1}'} + \topaccent{#2small}{#3}{#4} + \setleftrightkerning{#1}{#2small}{1000} +} +\resetcommand\setcscbotglyph#1#2#3#4{% + \Aheading{Try: Set glyph `\TypesetStringExpression{#1}'} + \botaccent{#2small}{#3}{#4} + \setleftrightkerning{#1}{#2small}{1000} +} +\begin{quotation} + \setcsctopglyph{\macroparameter{1}}{\macroparameter{2}}% + {\macroparameter{3}}{\macroparameter{4}} + \setcscbotglyph{\macroparameter{1}}{\macroparameter{2}}% + {\macroparameter{3}}{\macroparameter{4}} +\end{quotation} +\endcomment + +\begincomment +\subsection{Getting the \textit{smallcapsscale} right} + +The \textit{smallcapsscale} integer is normally only used when +faking smallcaps by shrinking capitals, but with one of the +glyphs below (\texttt{Lcaron}) it is actually used for shrinking +the right quote. Thus a suitable default value has to be assigned +to it. +\endcomment + +\ifareglyphs{L,Lsmall}\then + \setint{smallcapsscale}{ + \div{\mul{1000}{\height{Lsmall}}}{\height{L}} + } +\Else + \setint{smallcapsscale}{800} +\Fi + +\begincomment +\subsection{Accenting smallcaps glyphs} + +The commands below build accented smallcaps letters from existing +smallcaps letters and normal accents. The accent positions are the +ones traditionally used in \texttt{latin.mtx}. + +\endcomment + + +\setcsctopglyph{Aacutesmall}{A}{acute}{500} +\setcsctopglyph{Abrevesmall}{A}{breve}{500} +\setcsctopglyph{Acircumflexsmall}{A}{circumflex}{500} +\setcsctopglyph{Adieresissmall}{A}{dieresis}{500} +\setcsctopglyph{Agravesmall}{A}{grave}{500} +\setcscbotglyph{Aogoneksmall}{A}{ogonek}{900} +\setcsctopglyph{Aringsmall}{A}{ring}{500} +\setcsctopglyph{Atildesmall}{A}{tilde}{500} + +\setcsctopglyph{Cacutesmall}{C}{acute}{500} +\setcsctopglyph{Ccaronsmall}{C}{caron}{500} +\setcsctopglyph{Ccedillasmall}{C}{cedilla}{500} + +\setcsctopglyph{Dcaronsmall}{D}{caron}{500} + +\setcsctopglyph{Eacutesmall}{E}{acute}{500} +\setcsctopglyph{Ecaronsmall}{E}{caron}{500} +\setcsctopglyph{Ecircumflexsmall}{E}{circumflex}{500} +\setcsctopglyph{Edieresissmall}{E}{dieresis}{500} +\setcsctopglyph{Egravesmall}{E}{grave}{500} +\setcscbotglyph{Eogoneksmall}{E}{ogonek}{850} + +\setcsctopglyph{Gbrevesmall}{G}{breve}{500} + +\setcsctopglyph{Iacutesmall}{I}{acute}{500} +\setcsctopglyph{Icircumflexsmall}{I}{circumflex}{500} +\setcsctopglyph{Idieresissmall}{I}{dieresis}{500} +\setcsctopglyph{Idotaccentsmall}{I}{dotaccent}{500} +\setcsctopglyph{Igravesmall}{I}{grave}{500} + +\setcsctopglyph{Lacutesmall}{L}{acute}{250} + +\ifareglyphs{Lsmall,quoteright}\then + \setglyph{Lcaronsmall} + \glyph{Lsmall}{1000} + \ifisint{monowidth}\then\Else \movert{-100} \Fi + \glyph{quoteright}{\int{smallcapsscale}} + \endsetglyph + \setleftkerning{Lcaronsmall}{Lsmall}{1000} +\Fi + +\setcsctopglyph{Nacutesmall}{N}{acute}{500} +\setcsctopglyph{Ncaronsmall}{N}{caron}{500} +\setcsctopglyph{Ntildesmall}{N}{tilde}{500} + +\setcsctopglyph{Oacutesmall}{O}{acute}{500} +\setcsctopglyph{Ocircumflexsmall}{O}{circumflex}{500} +\setcsctopglyph{Odieresissmall}{O}{dieresis}{500} +\setcsctopglyph{Ogravesmall}{O}{grave}{500} +\setcsctopglyph{Ohungarumlautsmall}{O}{hungarumlaut}{500} +\setcsctopglyph{Otildesmall}{O}{tilde}{500} + +\setcsctopglyph{Racutesmall}{R}{acute}{500} +\setcsctopglyph{Rcaronsmall}{R}{caron}{500} + +\setcsctopglyph{Sacutesmall}{S}{acute}{500} +\setcsctopglyph{Scaronsmall}{S}{caron}{500} +\setcscbotglyph{Scedillasmall}{S}{cedilla}{500} + +\setcsctopglyph{Tcaronsmall}{T}{caron}{500} +\setcscbotglyph{Tcedillasmall}{T}{cedilla}{500} + +\setcsctopglyph{Uacutesmall}{U}{acute}{500} +\setcsctopglyph{Ucircumflexsmall}{U}{circumflex}{500} +\setcsctopglyph{Udieresissmall}{U}{dieresis}{500} +\setcsctopglyph{Ugravesmall}{U}{grave}{500} +\setcsctopglyph{Uhungarumlautsmall}{U}{hungarumlaut}{500} +\setcsctopglyph{Uringsmall}{U}{ring}{500} + +\setcsctopglyph{Yacutesmall}{Y}{acute}{500} +\setcsctopglyph{Ydieresissmall}{Y}{dieresis}{500} + +\setcsctopglyph{Zacutesmall}{Z}{acute}{500} +\setcsctopglyph{Zcaronsmall}{Z}{caron}{500} +\setcsctopglyph{Zdotaccentsmall}{Z}{dotaccent}{500} + + +\begincomment +\subsection{Other glyphs that can be built} +\endcomment + +\ifisglyph{Dcroatsmall}\then + \setglyph{Dbarsmall} + \glyph{Dcroatsmall}{1000} + \endsetglyph + \setleftrightkerning{Dbarsmall}{Dcroatsmall}{1000} +\Else\ifisglyph{Ethsmall}\then + \setglyph{Dbarsmall} + \glyph{Ethsmall}{1000} + \endsetglyph + \setleftrightkerning{Dbarsmall}{Ethsmall}{1000} +\Fi\Fi + + +\endmetrics + +\texttt{Dbar} and \texttt{Dbarsmall} are old names for this glyph; +nowadays the standard names are rather \texttt{Dcroat} and +\texttt{Dcroatsmall}, but using those names throughout would require +a coordinated change of the ETX files. +It is probably possible to build a decent \texttt{Dbarsmall} from +\texttt{Dsmall} and an \texttt{lslashslash} (or the like), similarly +to the case with \texttt{dbar}, but that would require some +experimentation. + +\section{Changes} + +This file was created 2003/01/02--05. It is loosely based on parts +of \texttt{latin.mtx}. (LH) + +2003/02/06: Added setting of \textit{smallcapsscale}, and made +\texttt{Lcaron} kern like \texttt{L} only on the left (not on the +right). (LH) + +\end{document} + +% Copyright 2003 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.2 or, at your option, any later version. +% diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/lsfake.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/lsfake.mtx new file mode 100644 index 00000000000..ad942a87a7e --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/lsfake.mtx @@ -0,0 +1,409 @@ +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Lars Hellstr{\"o}m", +%%% version = "1.923", +%%% date = "2003-03-29", +%%% time = "16:17:30 +01:00", +%%% filename = "lsfake.mtx", +%%% email = "fontinst@tug.org", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a font metrics file, for use with the +%%% fontinst utility. It fakes latin smallcaps.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty, lubuild.mtx", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} + +\usepackage{fontdoc}[2002/03/01] +\showbranches + +\newcommand{\IEint}[1]{\ensuremath{\TypesetIntegerExpression{\int{#1}}}} + +\title{Faking smallcaps} +\author{Lars Hellstr\"om} +\date{5 January 2003\\Version 1.923} + +\begin{document} +\maketitle + +\section{Introduction} + +This file is used to fake small capitals (the \texttt{s} case) for a +font by shrinking the full capitals (the \texttt{u} case) by a +certain factor (\IEint{smallcapsscale}). This effectively changes the +weight of the font so that it becomes lighter, but that effect is +(for scaling factors near the default value) not too large, even +though it is quite visible. + +Optimal distance between two letters generally grows slower than the +dimensions of the letters themself. Conversely, to linearly shrink a +line of text usually places the letters a bit too close. To counteract +that, the \textbf{Small glyph} commands used below insert a bit of +extra space (\IEint{smallcapsextraspace}) before and after the actual +glyph. + +Besides the letters, there is also manufactured a special set of +diacritical marks (skrunk by the same factor as the letters), with +names such as \texttt{Acutesmall}. These are meant to be used as +accent characters in a font where the fake small capitals are used as +small letters, so that clashes within a single character when \TeX's +\verb|\accent| primitive is used can be less pronounced. + + +\metrics + +\needsfontinstversion{1.910} +\usemtxpackage{lubuild} + +\ProvidesMtxPackage{lsfake} + + +\begincomment +\section{Some commands and default values} + +\endcomment + + + +% A c&sc glyph is created by shrinking the cap glyph, and adding extra +% space. + +\setcommand\cscglyph#1{ + \movert{\int{smallcapsextraspace}} + \glyph{#1}{\int{smallcapsscale}} + \movert{\int{smallcapsextraspace}} +} +\begincomment +A \textbf{Small glyph} is mainly the special case of a \textbf{Glyph} +when the glyph is scaled +$\TypesetIntegerExpression{\int{smallcapsscale}}$. This is used to +fake smallcaps from full capitals. The exact meaning of +``\textbf{Small glyph} `\#1'\,'' is +\begin{quotation}\cscglyph{\macroparameter{1}}\end{quotation} + +\resetcommand\cscglyph#1{% + \Bheading{Small glyph} `\TypesetStringExpression{#1}'% +} +\endcomment + +\setcommand\fakecscglyph#1#2{ + \setglyph{#1small} + \cscglyph{#2} + \setleftrightkerning{#1small}{#2}{\int{smallcapskerning}} + \endsetglyph +} +% If you supply a definition of \fakecscglyph which has #1medium +% instead of #1small, then you can use this file to fake medium +% capitals instead of small capitals. + + +\setint{smallcapsscale}{800} +\setint{smallcapskerning}{900} + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\half{\scale{\width{x}}{\sub{1000}{\int{smallcapsscale}}}}} +\Else + \setint{smallcapsextraspace}{25} +\Fi + + + +\begincomment +\section{Unaccented letters} +\endcomment + +\fakecscglyph{A}{A} +\fakecscglyph{AE}{AE} +\fakecscglyph{B}{B} +\fakecscglyph{C}{C} +\fakecscglyph{D}{D} +\fakecscglyph{Eth}{Eth} +\fakecscglyph{E}{E} +\fakecscglyph{F}{F} +\fakecscglyph{G}{G} +\fakecscglyph{H}{H} +\fakecscglyph{I}{I} +\fakecscglyph{J}{J} +\fakecscglyph{K}{K} +\fakecscglyph{Lslash}{Lslash} +\fakecscglyph{L}{L} +\fakecscglyph{M}{M} +\fakecscglyph{N}{N} +\fakecscglyph{Ng}{Ng} +\fakecscglyph{O}{O} +\fakecscglyph{OE}{OE} +\fakecscglyph{Oslash}{Oslash} +\fakecscglyph{P}{P} +\fakecscglyph{Q}{Q} +\fakecscglyph{R}{R} +\fakecscglyph{S}{S} +\fakecscglyph{T}{T} +\fakecscglyph{Thorn}{Thorn} +\fakecscglyph{U}{U} +\fakecscglyph{V}{V} +\fakecscglyph{W}{W} +\fakecscglyph{X}{X} +\fakecscglyph{Y}{Y} +\fakecscglyph{Z}{Z} + +\setglyph{Dbarsmall} + \glyph{Ethsmall}{1000} + \setleftrightkerning{Dbarsmall}{Ethsmall}{1000} +\endsetglyph + + + + +\begincomment +\section{Accented letters} +\endcomment + + +\fakecscglyph{Aacute}{Aacute} +\fakecscglyph{Abreve}{Abreve} +\fakecscglyph{Acircumflex}{Acircumflex} +\fakecscglyph{Adieresis}{Adieresis} +\fakecscglyph{Agrave}{Agrave} +\fakecscglyph{Aogonek}{Aogonek} +\fakecscglyph{Aring}{Aring} +\fakecscglyph{Atilde}{Atilde} +\fakecscglyph{Cacute}{Cacute} +\fakecscglyph{Ccaron}{Ccaron} +\fakecscglyph{Ccedilla}{Ccedilla} +\fakecscglyph{Dcaron}{Dcaron} +\fakecscglyph{Eacute}{Eacute} +\fakecscglyph{Ecaron}{Ecaron} +\fakecscglyph{Ecircumflex}{Ecircumflex} +\fakecscglyph{Edieresis}{Edieresis} +\fakecscglyph{Egrave}{Egrave} +\fakecscglyph{Eogonek}{Eogonek} +\fakecscglyph{Gbreve}{Gbreve} +\fakecscglyph{Iacute}{Iacute} +\fakecscglyph{Icircumflex}{Icircumflex} +\fakecscglyph{Idieresis}{Idieresis} +\fakecscglyph{Idotaccent}{Idotaccent} +\fakecscglyph{Igrave}{Igrave} +\fakecscglyph{Lacute}{Lacute} +\fakecscglyph{Lcaron}{Lcaron} +\fakecscglyph{Nacute}{Nacute} +\fakecscglyph{Ncaron}{Ncaron} +\fakecscglyph{Ntilde}{Ntilde} +\fakecscglyph{Oacute}{Oacute} +\fakecscglyph{Ocircumflex}{Ocircumflex} +\fakecscglyph{Odieresis}{Odieresis} +\fakecscglyph{Ograve}{Ograve} +\fakecscglyph{Ohungarumlaut}{Ohungarumlaut} +\fakecscglyph{Otilde}{Otilde} +\fakecscglyph{Racute}{Racute} +\fakecscglyph{Rcaron}{Rcaron} +\fakecscglyph{Sacute}{Sacute} +\fakecscglyph{Scaron}{Scaron} +\fakecscglyph{Scedilla}{Scedilla} +\fakecscglyph{Tcaron}{Tcaron} +\fakecscglyph{Tcedilla}{Tcedilla} +\fakecscglyph{Uacute}{Uacute} +\fakecscglyph{Ucircumflex}{Ucircumflex} +\fakecscglyph{Udieresis}{Udieresis} +\fakecscglyph{Ugrave}{Ugrave} +\fakecscglyph{Uhungarumlaut}{Uhungarumlaut} +\fakecscglyph{Uring}{Uring} +\fakecscglyph{Yacute}{Yacute} +\fakecscglyph{Ydieresis}{Ydieresis} +\fakecscglyph{Zacute}{Zacute} +\fakecscglyph{Zcaron}{Zcaron} +\fakecscglyph{Zdotaccent}{Zdotaccent} + + +\begincomment +\section{Shrunk accents} +\endcomment + +% A c&sc accent is created by moving a shrunk accent up by the +% difference between a scaled x and a scaled X. + +\setcommand\cscaccent#1{ + \moveup{\scale{\int{xheight}}{\sub{1000}{\int{smallcapsscale}}}} + \cscglyph{#1} + \moveup{\scale{\int{xheight}}{\sub{\int{smallcapsscale}}{1000}}} +} +\begincomment\medskip +A \textbf{Shrunk accent} is a \textbf{Small glyph} whose vertical +position has been adjusted so that the +$\TypesetIntegerExpression{\int{xheight}}$ position of the original +accent coincides with that of the shrunk accent. Without this +adjustment, it would instead be the baselines that would coincide, +but such an accent would be too low. The exact meaning of +``\textbf{Shrunk accent} `\#1'\,'' is +\begin{quotation}\cscaccent{\macroparameter{1}}\end{quotation} + +\resetcommand\cscaccent#1{% + \Bheading{Shrunk accent} `\TypesetStringExpression{#1}'% +} +\endcomment + + +\setglyph{Acutesmall} + \cscaccent{Acute} +\endsetglyph + +\setglyph{Gravesmall} + \cscaccent{Grave} +\endsetglyph + +\setglyph{Circumflexsmall} + \cscaccent{Circumflex} +\endsetglyph + +\setglyph{Tildesmall} + \cscaccent{Tilde} +\endsetglyph + +\setglyph{Dieresissmall} + \cscaccent{Dieresis} +\endsetglyph + +\setglyph{Brevesmall} + \cscaccent{Breve} +\endsetglyph + +\setglyph{Dotaccentsmall} + \cscaccent{Dotaccent} +\endsetglyph + +\setglyph{Caronsmall} + \cscaccent{Caron} +\endsetglyph + +\setglyph{Hungarumlautsmall} + \cscaccent{Hungarumlaut} +\endsetglyph + +\setglyph{Ringsmall} + \cscaccent{Ring} +\endsetglyph + +\setglyph{Macronsmall} + \cscaccent{Macron} +\endsetglyph + +\setglyph{Cedillasmall} + \cscglyph{Cedilla} +\endsetglyph + +\setglyph{Ogoneksmall} + \cscglyph{Ogonek} +\endsetglyph + + + +\begincomment +\section{Miscellaneous glyphs} +\endcomment + + +\setglyph{dotlessIsmall} + \glyph{Ismall}{1000} +\endsetglyph +\setleftrightkerning{dotlessIsmall}{Ismall}{1000} + +\setglyph{dotlessJsmall} + \glyph{Jsmall}{1000} +\endsetglyph +\setleftrightkerning{dotlessJsmall}{Jsmall}{1000} + +\setglyph{FFsmall} + \glyph{Fsmall}{1000} + \movert{\kerning{Fsmall}{Fsmall}} + \glyph{Fsmall}{1000} +\endsetglyph + +\setglyph{FIsmall} + \glyph{Fsmall}{1000} + \movert{\kerning{Fsmall}{Ismall}} + \glyph{Ismall}{1000} +\endsetglyph + +\setglyph{FLsmall} + \glyph{Fsmall}{1000} + \movert{\kerning{Fsmall}{Lsmall}} + \glyph{Lsmall}{1000} +\endsetglyph + +\setglyph{FFIsmall} + \glyph{FFsmall}{1000} + \movert{\kerning{FFsmall}{Ismall}} + \glyph{Ismall}{1000} +\endsetglyph + +\setglyph{FFLsmall} + \glyph{FFsmall}{1000} + \movert{\kerning{FFsmall}{Lsmall}} + \glyph{Lsmall}{1000} +\endsetglyph + +\setglyph{IJsmall} + \glyph{Ismall}{1000} + \movert{\kerning{Ismall}{Jsmall}} + \glyph{Jsmall}{1000} +\endsetglyph + +\setglyph{SSsmall} + \glyph{Ssmall}{1000} + \movert{\kerning{Ssmall}{Ssmall}} + \glyph{Ssmall}{1000} +\endsetglyph + + + +\endmetrics + +\section{Notes} + +An important, but rather obscure, difference between what is done by +this file and what is done by the old \texttt{latin.mtx} concerns the +manner in which the letters are spaced. In this file, spacing of +smallcaps is consistently done using the \IEint{smallcapsextraspace} +parameter, but \texttt{latin.mtx} only uses this mechanism in +monowidth fonts. For proportional fonts, the default was instead to +use the \IEint{letterspacing} parameter to space the entire +font---the same amount for non-faked as for faked letters. + + +\section{Changes} + +1999/10/25: Added \verb|\setglyphs| for \texttt{Macronsmall} and +\texttt{macronsmall}. (LH) + +1999/10/25: Simplified definition of \verb|\unfakable|. (UV\&LH) +Rationale: It is thoroughly confusing if the size of the black box +created by \verb|\unfakable| depends on the metrics of an unencoded +glyph that isn't accessible and therefore unavailable for all pratical +purposes. + +2000/10/20: File split off from \texttt{latin.mtx}. + +2003/01/02--05: File heavily reorganised. (LH) + +\end{document} + +% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +% hacked and maintained 1997, 1998 Sebastian Rahtz, +% copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/lsmisc.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/lsmisc.mtx new file mode 100644 index 00000000000..d30ac97cfb5 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/lsmisc.mtx @@ -0,0 +1,194 @@ +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Alan Jeffrey and Ulrik Vieth and +%%% Lars Hellstr{\"o}m", +%%% version = "1.923", +%%% date = "2003-03-29", +%%% time = "16:18:07 +01:00", +%%% filename = "lsmisc.mtx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a font metrics file, for use with the +%%% fontinst utility. It sets some miscellaneous +%%% glyphs in latin smallcaps.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} + +\usepackage{fontdoc}[2002/03/01] +\showbranches + +\title{Smallcaps miscellanea} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{5 January 2003\\Version 1.923} + +\begin{document} +\maketitle + +\section{Introduction} + +This file sets some miscellaneous smallcaps glyphs, most of which +serve mainly to complete some family of glyphs whose names are built +according to some simple pattern. It should work just as well will +real smallcaps as with faked smallcaps. + +\metrics + +\needsfontinstversion{1.917} + +\ProvidesMtxPackage{lsmisc} + +\begincomment +\section{Miscellaneous smallcaps} + +\subsection{Some glyph aliases} + +The next few glyphs are usually available (if any smallcaps glyphs are), +but may come under a name different from that which ETX files expect. +\endcomment + +\ifisglyph{Ismall}\then + \setglyph{dotlessIsmall} + \glyph{Ismall}{1000} + \setleftrightkerning{dotlessIsmall}{Ismall}{1000} + \endsetglyph +\Fi + +\ifisglyph{Jsmall}\then + \setglyph{dotlessJsmall} + \glyph{Jsmall}{1000} + \setleftrightkerning{dotlessJsmall}{Jsmall}{1000} + \endsetglyph +\Fi + + +\begincomment +\subsection{Smallcap ligatures} + +Smallcap letters usually do not form ligatures, but many font encodings +nonetheless reserve slots for them, and in particular many ETX files +will try to put smallcap ligatures in the ligature slots. Hence there +is some point in making these glyphs, even though they are only what +one would get if there was no ligature. + +\medskip +\endcomment + +\setint{smallcapsspacing}{0} +\comment{In case some letterspacing will be applied to the smallcaps, + then that amount should also be added between the glyphs below. + In most cases however, such spacing should already have been + included in the base glyphs, and in that case, $0$ is the correct + value.} + +\ifisglyph{Fsmall}\then + +\setglyph{FFsmall} + \glyph{Fsmall}{1000} + \movert{\add{\kerning{Fsmall}{Fsmall}}{\int{smallcapsspacing}}} + \glyph{Fsmall}{1000} +\endsetglyph +\setrightkerning{FFsmall}{Fsmall}{1000} + +\ifisglyph{Ismall}\then + \setglyph{FIsmall} + \glyph{Fsmall}{1000} + \movert{\add{\kerning{Fsmall}{Ismall}}{\int{smallcapsspacing}}} + \glyph{Ismall}{1000} + \endsetglyph + +% \setleftkerning{FIsmall}{Fsmall}{1000} + \setrightkerning{FIsmall}{Ismall}{1000} + + \setglyph{FFIsmall} + \glyph{FFsmall}{1000} + \movert{\add{\kerning{Fsmall}{Ismall}}{\int{smallcapsspacing}}} + \glyph{Ismall}{1000} + \endsetglyph + +% \setleftkerning{FFIsmall}{Fsmall}{1000} + \setrightkerning{FFIsmall}{Ismall}{1000} +\Fi + +\ifisglyph{Lsmall}\then + \setglyph{FLsmall} + \glyph{Fsmall}{1000} + \movert{\add{\kerning{Fsmall}{Lsmall}}{\int{smallcapsspacing}}} + \glyph{Lsmall}{1000} + \endsetglyph + +% \setleftkerning{FLsmall}{Fsmall}{1000} + \setrightkerning{FLsmall}{Lsmall}{1000} + + \setglyph{FFLsmall} + \glyph{FFsmall}{1000} + \movert{\add{\kerning{Fsmall}{Lsmall}}{\int{smallcapsspacing}}} + \glyph{Lsmall}{1000} + \endsetglyph + +% \setleftkerning{FFLsmall}{Fsmall}{1000} + \setrightkerning{FFLsmall}{Lsmall}{1000} +\Fi +\Fi % ifisglyph{Fsmall} + + +\ifareglyphs{Ismall,Jsmall}\then + \setglyph{IJsmall} + \glyph{Ismall}{1000} + \movert{\add{\kerning{Ismall}{Jsmall}}{\int{smallcapsspacing}}} + \glyph{Jsmall}{1000} + \endsetglyph +% \setleftkerning{IJsmall}{Ismall}{1000} + \setrightkerning{IJsmall}{Jsmall}{1000} +\Fi + +\comment{That the above glyphs only kern on the right is deliberate. + Since they are only put in a horizontal list due to a ligature, + they will never occur as the right party when kerning is considered. + Not having any kerns on the left simplifies reusing ligature slots + as right boundary characters. \texttt{SSsmall} is however a + different matter, since that is (in a sense, and probably only if + some German spelling reforms are ignored) a proper letter.} + +\ifisglyph{Ssmall}\then + \setglyph{SSsmall} + \glyph{Ssmall}{1000} + \movert{\add{\kerning{Ssmall}{Ssmall}}{\int{smallcapsspacing}}} + \glyph{Ssmall}{1000} + \endsetglyph + \setleftrightkerning{SSsmall}{Ssmall}{1000} +\Fi + + + +\endmetrics + + +\section{Changes} + +This file was part of \texttt{latin.mtx} until 2000/10/20. Its was set +up as a separate file 2003/01/02--05. (LH) + +\end{document} + +% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +% hacked and maintained 1997, 1998 Sebastian Rahtz, +% copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/ltcmds.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/ltcmds.mtx new file mode 100644 index 00000000000..ffe2af0efd3 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/ltcmds.mtx @@ -0,0 +1,302 @@ +% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +% hacked and maintained 1997, 1998 Sebastian Rahtz, +% copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Alan Jeffrey and Ulrik Vieth", +%%% version = "1.915", +%%% date = "2003-03-29", +%%% time = "16:07:18 +01:00", +%%% filename = "ltcmds.mtx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a font metrics file, for use with the +%%% fontinst utility. It provides the defaults +%%% used to install the Latin glyphs.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[1999/11/04] + +\title{The file \texttt{ltcmds.mtx}} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{20 October 2000\\Version 1.915} + +\showbranches + +\begin{document} +\maketitle + +\metrics + +\needsfontinstversion{1.917} +\ProvidesMtxPackage{ltcmds} + +\begincomment +\section{Some commands for making latin glyphs} + +\endcomment + +% \unfakable is a glyph which can't be faked. +\setcommand\unfakable#1{ + \setglyph{#1} + \glyphrule{\int{xheight}}{\int{xheight}} + \glyphwarning{missing glyph `#1'} + \endsetglyph +} +\begincomment\medskip +An \textbf{Unfakable} is a glyph which can't be faked. An +``\textbf{Unfakable `\#1'}\,'' is equivalent to +\begin{quotation}\unfakable{\macroparameter{1}}\end{quotation} + +\resetcommand\unfakable#1{% + \Aheading{Unfakable `\TypesetStringExpression{#1}'}% +} +\endcomment + + +\setcommand\topaccent#1#2#3{ + \push + \moveup{\max{0}{\sub{\height{#1}}{\int{xheight}}}} + \movert{\add{\sub{\scale{\width{#1}}{#3}}{\half{\width{#2}}}} + {\scale{\sub{\height{#1}}{\int{xheight}}}{\int{italicslant}}}} + \glyph{#2}{1000} + \pop + \glyph{#1}{1000} +} +\begincomment\medskip +A \textbf{Top accent} is built by placing the center of the accent at +the given position along the width of the letter, raised up by the +difference between the height of the letter and the xheight. This is +the algorithm used by the \TeX\ \verb|\accent| primitive. +A ``\textbf{Top accent} `\#1' with `\#2' at \#3'' is equivalent to +\begin{quotation} + \topaccent{\macroparameter{1}}{\macroparameter{2}}{\macroparameter{3}} +\end{quotation} +\resetcommand\topaccent#1#2#3{% + \Bheading{Top accent} `\TypesetStringExpression{#1}' with + `\TypesetStringExpression{#2}' at $\TypesetIntegerExpression{#3}$% +} +\endcomment + + +\setcommand\topaccentas#1#2#3#4{ + \push + \moveup{\sub{\height{#4}}{\height{#2}}} + \movert{\add{ + \sub{\scale{\width{#1}}{#3}}{\half{\width{#2}}} + }{ + \scale{\sub{\height{#4}}{\height{#2}}}{\int{italicslant}} + }} + \glyph{#2}{1000} + \pop + \glyph{#1}{1000} +} +\begincomment\medskip +A \textbf{Top accent \dots\ as} is built by placing the center of the +accent at the given position along the width of the letter, raised up +by the difference between the height of the accent and the height of +the model glyph. A ``\textbf{Top accent} `\#1' with `\#2' at \#3 as +\#4'' is equivalent to +\begin{quotation} + \topaccentas{\macroparameter{1}}{\macroparameter{2}} + {\macroparameter{3}}{\macroparameter{4}} +\end{quotation} +\resetcommand\topaccentas#1#2#3#4{% + \Bheading{Top accent} `\TypesetStringExpression{#1}' with + `\TypesetStringExpression{#2}' at $\TypesetIntegerExpression{#3}$ + as `\TypesetStringExpression{#4}'% +} +\endcomment + + +\setcommand\botaccent#1#2#3{ + \push + \movert{\sub{\scale{\width{#1}}{#3}}{\half{\width{#2}}}} + \glyph{#2}{1000} + \pop + \glyph{#1}{1000} +} +\begincomment\medskip +A \textbf{Bottom accent} is built by placing the center of the accent at +the given position along the width of the letter. A ``\textbf{Bottom +accent} `\#1' with `\#2' at \#3'' is equivalent to +\begin{quotation} + \botaccent{\macroparameter{1}}{\macroparameter{2}}{\macroparameter{3}} +\end{quotation} +\resetcommand\botaccent#1#2#3{% + \Bheading{Bottom accent} `\TypesetStringExpression{#1}' with + `\TypesetStringExpression{#2}' at $\TypesetIntegerExpression{#3}$% +} +\endcomment + + +\setcommand\unfakabletopaccent#1{ + \setglyph{#1} + \moveup{\add{\int{xheight}}{50}} + \glyphrule{\half{\int{xheight}}}{\half{\int{xheight}}} + \glyphwarning{missing glyph `#1'} + \moveup{\neg{\add{\int{xheight}}{50}}} + \endsetglyph +} +\begincomment\medskip +An \textbf{Unfakable top accent} is the same as an +\textbf{Unfakable}, except that the rule is smaller and has a more +accent-like position. An ``\textbf{Unfakable top accent `\#1'}\,'' +is equivalent to +\begin{quotation}\unfakabletopaccent{\macroparameter{1}}\end{quotation} + +\resetcommand\unfakabletopaccent#1{% + \Aheading{Unfakable top accent `\TypesetStringExpression{#1}'}% +} +\endcomment + + + +% A c&sc top accent glyph is placed using the small glyphs if +% available, and otherwise by shrinking the equivalent capital. + +\setcommand\csctopaccent#1#2#3{ +% \ifareglyphs{#1small,#2small}\then +% \topaccent{#1small}{#2small}{#3} +% \Else + \cscglyph{#1#2} +% \Fi +} + +% A c&sc bot accent glyph is placed using the small glyphs if +% available, and otherwise by shrinking the equivalent capital. + +\setcommand\cscbotaccent#1#2#3{ +% \ifisglyph{#1small}\then +% \botaccent{#1small}{#2small}{#3} +% \Else + \cscglyph{#1#2} +% \Fi +} + +% A c&sc accent is created by moving a shrunk accent up by the +% difference between a scaled x and a scaled X. + +\setcommand\cscaccent#1{ + \moveup{\scale{\int{xheight}}{\sub{1000}{\int{smallcapsscale}}}} + \cscglyph{#1} + \moveup{\scale{\int{xheight}}{\sub{\int{smallcapsscale}}{1000}}} +} + + +\begincomment +\section{Default values} +\endcomment + +\setint{italicslant}{0} + +\ifisglyph{x}\then + \setint{xheight}{\height{x}} +\Else + \setint{xheight}{500} +\Fi + +\ifisglyph{A}\then + \setint{capheight}{\height{A}} + \comment{\texttt{t1.etx} has traditionally measured the capheight + on \texttt{X}, whereas \texttt{latin.mtx} measured it on + \texttt{A}. There is probably no good reason for this + difference.} +\Else\ifisglyph{X}\then + \setint{capheight}{\height{X}} +\Else + \setint{capheight}{750} +\Fi\Fi + +\ifisglyph{d}\then + \setint{ascender}{\height{d}} +\Else + \setint{ascender}{\int{capheight}} +\Fi + +\ifisint{descender_neg}\then + \setint{descender}{\neg{\int{descender_neg}}} +\Else\ifisglyph{g}\then + \setint{descender}{\depth{g}} + \comment{Similarly, \texttt{t1.etx} has traditionally measured + the descender depth on \texttt{p}, whereas \texttt{latin.mtx} + measured it on \texttt{g}.} +\Else\ifisglyph{p}\then + \setint{descender}{\depth{p}} +\Else + \setint{descender}{250} +\Fi\Fi\Fi + +\setint{underlinethickness}{40} +\setint{visiblespacedepth}{200} +\setint{visiblespacewidth}{400} +\setint{visiblespacesurround}{50} +\setint{capspacing}{0} + + +\ifisglyph{parenleft}\then + \setint{vaxis}{\half{\sub{\height{parenleft}}{\depth{parenleft}}}} +\Else + \setint{vaxis}{\half{\int{xheight}}} +\Fi + + +\endmetrics + + + + + +\section{Changes} + +1999/10/25: Added \verb|\setglyphs| for \texttt{Macronsmall} and +\texttt{macronsmall}. (LH) + +1999/10/25: Simplified definition of \verb|\unfakable|. (UV\&LH) +Rationale: It is thoroughly confusing if the size of the black box +created by \verb|\unfakable| depends on the metrics of an unencoded +glyph that isn't accessible and therefore unavailable for all pratical +purposes. + +2000/10/20--2003/03/15: File split off from \texttt{latin.mtx} and +reorganised into a separate package. (LH) (It took until the last of +these dates before all the useless code had been removed.) Also made +special typeset definitions of many commands and modernized the +conditionals. + +2003/03/15: Made the \verb|\unfakable| a square with side +$\TypesetIntegerExpression{\int{xheight}}$ and added the +\verb|\unfakabletopaccent| command. (LH) Rationale: That the glyph is +unavailable doesn't mean the rule replacing it has to look bad. This +should make them blend in better with any glyphs that are actually +available. + +2003/03/15: Added \verb|\topaccentas|. (LH) It is based on a command +|\idotaccent| defined by Walter Schmidt. + +2003/03/15: Added calculation of a vertical symmetry axis position +$\TypesetIntegerExpression{\int{vaxis}}$. (LH) It is based on some +code by Walter Schmidt. + +2004/08/07: Fixed typo in vertical symmetry axis code. (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/ltpunct.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/ltpunct.mtx new file mode 100644 index 00000000000..223b2005f48 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/ltpunct.mtx @@ -0,0 +1,247 @@ +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Alan Jeffrey and Ulrik Vieth and +%%% Lars Hellstr{\"o}m", +%%% version = "1.923", +%%% date = "2003-03-29", +%%% time = "16:25:58 +01:00", +%%% filename = "ltpunct.mtx", +%%% email = "fontinst@tug.org", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a font metrics file, for use with +%%% the fontinst utility. It deals with the +%%% punctuation characters needed for the most +%%% common latin font encodings.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} + +\usepackage{fontdoc}[2002/03/01] +\showbranches + +\title{Latin punctuation} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{7 January 2003\\Version 1.923} + +\begin{document} +\maketitle + + +\metrics + +\needsfontinstversion{1.902} +\usemtxpackage{ltcmds} +\ProvidesMtxPackage{ltpunct} + +\begincomment +\section{Punctuation} + +\subsection{Unfakable characters} +\endcomment + +\unfakable{ampersand} +\unfakable{asciicircum} +\unfakable{asciitilde} +\unfakable{asterisk} +\unfakable{at} +\unfakable{backslash} +\unfakable{bar} +\unfakable{braceleft} +\unfakable{braceright} +\unfakable{bracketleft} +\unfakable{bracketright} +\unfakable{colon} +\unfakable{comma} +\unfakable{dollar} +\unfakable{emdash} +\unfakable{endash} +\unfakable{equal} +\unfakable{exclamdown} +\unfakable{exclam} +\unfakable{greater} +\unfakable{guillemotleft} +\unfakable{guillemotright} +\unfakable{guilsinglleft} +\unfakable{guilsinglright} +\unfakable{hyphen} +\unfakable{less} +\unfakable{numbersign} +\unfakable{parenleft} +\unfakable{parenright} +\unfakable{percent} +\unfakable{period} +\unfakable{perthousandzero} +\unfakable{plus} +\unfakable{questiondown} +\unfakable{question} +\unfakable{quotedblbase} +\unfakable{quotedblleft} +\unfakable{quotedblright} +\unfakable{quotedbl} +\unfakable{quoteleft} +\unfakable{quoteright} +\unfakable{section} +\unfakable{semicolon} +\unfakable{slash} +\unfakable{sterling} +\unfakable{underscore} + +\begincomment +\subsection{Fakable characters} +\endcomment + +\setglyph{space} + \ifisglyph{space-not}\then + \movert{\width{space-not}} + \Else\ifisglyph{i}\then + \movert{\width{i}} + \Else + \movert{333} + \Fi\Fi +\endsetglyph + +\setglyph{compwordmark} + \glyphrule{0}{\int{xheight}} +\endsetglyph +\setint{compwordmark-spacing}{0} + +\setglyph{quotesinglbase} + \glyph{comma}{1000} +\endsetglyph + + +\setglyph{visiblespace} + \moveup{\neg{\int{visiblespacedepth}}} + \movert{\int{visiblespacesurround}} + \glyphrule + {\int{underlinethickness}} + {\int{visiblespacedepth}} + \glyphrule + {\int{visiblespacewidth}} + {\int{underlinethickness}} + \glyphrule + {\int{underlinethickness}} + {\int{visiblespacedepth}} + \movert{\int{visiblespacesurround}} + \moveup{\int{visiblespacedepth}} +\endsetglyph +\setleftrightkerning{visiblespace}{space}{1000} +\comment{The matter of whether a \texttt{visiblespace} should kern + like a \texttt{space} has never been satisfactory resolved.} + + + +\begincomment +\subsection{Some special dashes} + +\texttt{rangedash} and \texttt{punctdash} are mostly two traditional +aliases for \texttt{endash} and \texttt{emdash}. The problem with the +latter two ``original'' glyphs is that they in monowidth fonts +usually are much shorter than one would expect, whereas the hyphen +combinations look quite good. +\endcomment + +\setglyph{rangedash} + \ifisint{monowidth}\then + \glyph{hyphen}{1000} + \Else + \glyph{endash}{1000} + \Fi +\endsetglyph + +\setglyph{punctdash} + \ifisint{monowidth}\then + \glyph{hyphen}{1000} + \glyph{hyphen}{1000} + \Else + \glyph{emdash}{1000} + \Fi +\endsetglyph + +\setglyph{hyphenchar} + \glyph{hyphen}{1000} + \resetwidth{\half{\width{hyphen}}} + \comment{Unlike the normal \texttt{hyphen}, this glyph is only + meant to be used at the right end of a line of text. This means + it can be a ``hanging hyphen'' which significantly extends + outside the character box.} + \setleftkerning{hyphenchar}{hyphen}{1000} + \comment{\TeX\ does consider kerning (and ligatures) between a + hyphenchar and what preceeds it on the line, but there is + nothing after the hyphenchar.} +\endsetglyph + + +\begincomment +\subsection{More monowidth specialities} +\endcomment + +% only with monospaced fonts. (WaS) +\ifisint{monowidth}\then + \resetglyph{asterisk} + \moveup{\sub{\int{vaxis}}{\half{\sub{\height{asterisk}}{\depth{asterisk}}}}} + \glyph{asterisk}{1000} + \resetdepth{0} + \endresetglyph +\Fi + + + +\begincomment +\section{Digits} + +The traditional coding here has been that all digits are considered to +be unfakable. An obvious alternative is however to fake +\texttt{zerooldstyle} with \texttt{zero}, \texttt{oneoldstyle} with +\texttt{one}, etc., or vice versa. +\endcomment + + +\unfakable{zero} +\unfakable{one} +\unfakable{two} +\unfakable{three} +\unfakable{four} +\unfakable{five} +\unfakable{six} +\unfakable{seven} +\unfakable{eight} +\unfakable{nine} + +\unfakable{zerooldstyle} +\unfakable{oneoldstyle} +\unfakable{twooldstyle} +\unfakable{threeoldstyle} +\unfakable{fouroldstyle} +\unfakable{fiveoldstyle} +\unfakable{sixoldstyle} +\unfakable{sevenoldstyle} +\unfakable{eightoldstyle} +\unfakable{nineoldstyle} + + + +\endmetrics + + +\section{Changes} + +The original version of this file was created in February 2003, +although it is based on code from the traditional \texttt{latin.mtx}. +The changes that have been made after that are as follows. + +2003/03/15: The asterisk in monowidth fonts is vertically centered, +to make it more useful for computer listings. Suggested by Walter +Schmidt. + +\end{document} + diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/lubuild.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/lubuild.mtx new file mode 100644 index 00000000000..e1e2f1bf9a4 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/lubuild.mtx @@ -0,0 +1,646 @@ +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Alan Jeffrey and Ulrik Vieth and +%%% Lars Hellstr{\"o}m", +%%% version = "1.923", +%%% date = "2003-03-29", +%%% time = "16:12:42 +01:00", +%%% filename = "lubuild.mtx", +%%% email = "fontinst@tug.org", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a font metrics file, for use with the +%%% fontinst utility. It builds upper case latin +%%% letters.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} + +\usepackage{fontdoc}[2002/03/01] +\showbranches + +\title{Building upper case} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{4 January 2002\\Version 1.923} + +\begin{document} +\maketitle + +\section{Introduction} + +This file builds upper case (full capitals, \texttt{u} case) latin +letters, or more precisely, it makes sure that a set of glyphs is +defined that cover the upper case letters used in European latin scripts. +Even that is a slight exaggeration, because there are a couple of +``exotic'' letters that are missing, but most people never try to use +those anyway. + +For the glyphs set in this file to look anything like the letters they +are supposed to be, it is necessary that the glyphs for unaccented +letters and for accents already exist and look like they are supposed +to. In that case, the commands below will manufacture decent +substitutes for the missing glyphs by composing letters and accents. +If some of these base glyphs are missing, then a ``missing glyph'' +substitute will be supplied for them. Such substitutes will show up in +print as black squares, and most DVI drivers will emit a warning when +producing them. + +The most common case encountered is that almost all unaccented letters +and accents are available, but only about half of the accented +letters. Then for the other half, quite decent substitutes are made, +but a few letters only show up as ``missing glyph'' boxes. + + +\metrics + +\needsfontinstversion{1.910} +\usemtxpackage{ltcmds} + +\ProvidesMtxPackage{lubuild} + +\begincomment +\section{Base upper case glyphs} + +The following commands make sure all the unaccented letter glyphs and +accent glyphs are set. If any of them are not already set at this +point, then those will be set to ``missing glyph'' boxes. + +\subsection{Letters} +\endcomment + +\unfakable{A} +\unfakable{AE} +\unfakable{B} +\unfakable{C} +\unfakable{D} +\unfakable{E} +\unfakable{Eng} +\unfakable{Eth} +\unfakable{F} +\unfakable{G} +\unfakable{H} +\unfakable{I} +\unfakable{J} +\unfakable{K} +\unfakable{L} +\unfakable{M} +\unfakable{N} +\unfakable{O} +\unfakable{OE} +\unfakable{Oslash} +\unfakable{P} +\unfakable{Q} +\unfakable{R} +\unfakable{S} +\unfakable{T} +\unfakable{Thorn} +\unfakable{U} +\unfakable{V} +\unfakable{W} +\unfakable{X} +\unfakable{Y} +\unfakable{Z} + +\begincomment +\subsection{Accents} + +The accents on designed full capitals are often different from the +accents on lower case letters: strokes are generally at a smaller +angle to the horizontal, so that the accent is compressed in the +vertical direction. Most fonts do not provide those accents as +separate characters, but one should nonetheless try to use them +whenever possible. The standard names appear (see for example the +\emph{Adobe Glyph List}) to be the same as for the +normal accents, but with the first letter in upper case. +When these accents are not available, it is anyway +possible to make do with the ordinary accents. +\endcomment + + +\unfakabletopaccent{grave} +\unfakabletopaccent{acute} +\unfakabletopaccent{circumflex} +\unfakabletopaccent{tilde} +\unfakabletopaccent{dieresis} +\unfakabletopaccent{hungarumlaut} +\unfakabletopaccent{ring} +\unfakabletopaccent{caron} +\unfakabletopaccent{breve} +\unfakabletopaccent{macron} +\unfakabletopaccent{dotaccent} +\unfakable{cedilla} +\unfakable{ogonek} +\unfakable{quoteright} +\unfakable{lslashslash} + + +\setglyph{Acute} + \glyph{acute}{1000} +\endsetglyph + +\setglyph{Grave} + \glyph{grave}{1000} +\endsetglyph + +\setglyph{Circumflex} + \glyph{circumflex}{1000} +\endsetglyph + +\setglyph{Tilde} + \glyph{tilde}{1000} +\endsetglyph + +\setglyph{Dieresis} + \glyph{dieresis}{1000} +\endsetglyph + +\setglyph{Breve} + \glyph{breve}{1000} +\endsetglyph + +\setglyph{Dotaccent} + \glyph{dotaccent}{1000} +\endsetglyph + +\setglyph{Caron} + \glyph{caron}{1000} +\endsetglyph + +\setglyph{Hungarumlaut} + \glyph{hungarumlaut}{1000} +\endsetglyph + +\setglyph{Ring} + \glyph{ring}{1000} +\endsetglyph + +\setglyph{Macron} + \glyph{macron}{1000} +\endsetglyph + +\setglyph{Cedilla} + \glyph{cedilla}{1000} +\endsetglyph + +\setglyph{Ogonek} + \glyph{ogonek}{1000} +\endsetglyph + +\begincomment +Note that the \TeX\ accenting algorithm assumes that accents are +positioned correctly for being placed on a letter whose height is the +x-height. It might happen that a font with special upper case accents, +made for use with some other typesetting engine, instead has these +glyphs positioned correctly for being placed on a capital. In such a +case, one would first have to adjust the accent positions before they +can be used. +\endcomment + + +\begincomment +\section{Building accented letters} +\endcomment + + +\setglyph{Aacute} + \topaccent{A}{Acute}{500} +\endsetglyph + +\setglyph{Abreve} + \topaccent{A}{Breve}{500} +\endsetglyph + +\setglyph{Acircumflex} + \topaccent{A}{Circumflex}{500} +\endsetglyph + +\setglyph{Adieresis} + \topaccent{A}{Dieresis}{500} +\endsetglyph + +\setglyph{Agrave} + \topaccent{A}{Grave}{500} +\endsetglyph + +\setglyph{Aogonek} + \botaccent{A}{Ogonek}{900} +\endsetglyph + +\setglyph{Aring} + \topaccent{A}{Ring}{500} +\endsetglyph + +\setglyph{Atilde} + \topaccent{A}{Tilde}{500} +\endsetglyph + +\setglyph{Cacute} + \topaccent{C}{Acute}{500} +\endsetglyph + +\setglyph{Ccaron} + \topaccent{C}{Caron}{500} +\endsetglyph + +\setglyph{Ccedilla} + \botaccent{C}{Cedilla}{500} +\endsetglyph + +\setglyph{Dcaron} + \topaccent{D}{Caron}{450} +\endsetglyph + +\setglyph{Eacute} + \topaccent{E}{Acute}{500} +\endsetglyph + +\setglyph{Ecaron} + \topaccent{E}{Caron}{500} +\endsetglyph + +\setglyph{Ecircumflex} + \topaccent{E}{Circumflex}{500} +\endsetglyph + +\setglyph{Edieresis} + \topaccent{E}{Dieresis}{500} +\endsetglyph + +\setglyph{Egrave} + \topaccent{E}{Grave}{500} +\endsetglyph + +\setglyph{Eogonek} + \botaccent{E}{Ogonek}{850} +\endsetglyph + +\setglyph{Gbreve} + \topaccent{G}{Breve}{500} +\endsetglyph + +\setglyph{Iacute} + \topaccent{I}{Acute}{500} +\endsetglyph + +\setglyph{Icircumflex} + \topaccent{I}{Circumflex}{500} +\endsetglyph + +\setglyph{Idieresis} + \topaccent{I}{Dieresis}{500} +\endsetglyph + +\setglyph{Idotaccent} + \topaccent{I}{Dotaccent}{500} +\endsetglyph + +\setglyph{Igrave} + \topaccent{I}{Grave}{500} +\endsetglyph + +\setglyph{Lacute} + \topaccent{L}{Acute}{250} +\endsetglyph + +\setglyph{Lcaron} + \glyph{L}{1000} + \ifisint{monowidth}\then\Else + \movert{-200} + \Fi + \glyph{quoteright}{1000} +\endsetglyph + +\setglyph{Nacute} + \topaccent{N}{Acute}{500} +\endsetglyph + +\setglyph{Ncaron} + \topaccent{N}{Caron}{500} +\endsetglyph + +\setglyph{Ntilde} + \topaccent{N}{Tilde}{500} +\endsetglyph + +\setglyph{Oacute} + \topaccent{O}{Acute}{500} +\endsetglyph + +\setglyph{Ocircumflex} + \topaccent{O}{Circumflex}{500} +\endsetglyph + +\setglyph{Odieresis} + \topaccent{O}{Dieresis}{500} +\endsetglyph + +\setglyph{Ograve} + \topaccent{O}{Grave}{500} +\endsetglyph + +\setglyph{Ohungarumlaut} + \topaccent{O}{Hungarumlaut}{500} +\endsetglyph + +\setglyph{Otilde} + \topaccent{O}{Tilde}{500} +\endsetglyph + +\setglyph{Racute} + \topaccent{R}{Acute}{500} +\endsetglyph + +\setglyph{Rcaron} + \topaccent{R}{Caron}{500} +\endsetglyph + +\setglyph{Sacute} + \topaccent{S}{Acute}{500} +\endsetglyph + +\setglyph{Scaron} + \topaccent{S}{Caron}{500} +\endsetglyph + +\setglyph{Scedilla} + \botaccent{S}{Cedilla}{500} +\endsetglyph + +\setglyph{Tcaron} + \topaccent{T}{Caron}{500} +\endsetglyph + +\setglyph{Tcedilla} + \botaccent{T}{Cedilla}{500} +\endsetglyph + +\setglyph{Uacute} + \topaccent{U}{Acute}{500} +\endsetglyph + +\setglyph{Ucircumflex} + \topaccent{U}{Circumflex}{500} +\endsetglyph + +\setglyph{Udieresis} + \topaccent{U}{Dieresis}{500} +\endsetglyph + +\setglyph{Ugrave} + \topaccent{U}{Grave}{500} +\endsetglyph + +\setglyph{Uhungarumlaut} + \topaccent{U}{Hungarumlaut}{500} +\endsetglyph + +\setglyph{Uring} + \topaccent{U}{Ring}{500} +\endsetglyph + +\setglyph{Yacute} + \topaccent{Y}{Acute}{500} +\endsetglyph + +\setglyph{Ydieresis} + \topaccent{Y}{Dieresis}{500} +\endsetglyph + +\setglyph{Zacute} + \topaccent{Z}{Acute}{500} +\endsetglyph + +\setglyph{Zcaron} + \topaccent{Z}{Caron}{500} +\endsetglyph + +\setglyph{Zdotaccent} + \topaccent{Z}{Dotaccent}{500} +\endsetglyph + + +\begincomment +\section{Other glyphs that can be built} +\endcomment + +\setglyph{Lslash} + \glyph{lslashslash}{1000} + \movert{\kerning{lslashslash}{L}} + \glyph{L}{1000} +\endsetglyph + +\setglyph{Ng} + \glyph{Eng}{1000} + \comment{This is simply an alias.} +\endsetglyph + +\setglyph{dotlessI} + \glyph{I}{1000} + \comment{This simplifies making all-caps fonts.} +\endsetglyph + +\setglyph{dotlessJ} + \glyph{J}{1000} + \comment{This simplifies making all-caps fonts.} +\endsetglyph + + +\setglyph{IJ} + \glyph{I}{1000} + \movert{\kerning{I}{J}} + \glyph{J}{1000} +\endsetglyph + +\setglyph{SS} + \glyph{S}{1000} + \movert{\kerning{S}{S}} + \glyph{S}{1000} +\endsetglyph + + +\begincomment +\subsection{All-caps spaced digraphs} + +These glyphs are combinations of upper case letters in which the +distances between them have been increased by +$\TypesetIntegerExpression{\int{capspacing}}$. These are intended for +use in all-caps fonts that are made with a nonzero +$\TypesetIntegerExpression{\int{letterspacing}}$ equal to the +$\TypesetIntegerExpression{\int{capspacing}}$. +\endcomment + +\setglyph{FFspaced} + \glyph{F}{1000} + \movert{\add{\kerning{F}{F}}{\int{capspacing}}} + \glyph{F}{1000} +\endsetglyph +\setleftrightkerning{FFspaced}{F}{1000} +\setleftrightkerning{Dbar}{Eth}{1000} + + +\setglyph{FIspaced} + \glyph{F}{1000} + \movert{\add{\kerning{F}{I}}{\int{capspacing}}} + \glyph{I}{1000} +\endsetglyph +\setleftkerning{FIspaced}{F}{1000} +\setrightkerning{FIspaced}{I}{1000} + +\setglyph{FLspaced} + \glyph{F}{1000} + \movert{\add{\kerning{F}{L}}{\int{capspacing}}} + \glyph{L}{1000} +\endsetglyph +\setleftkerning{FLspaced}{F}{1000} +\setrightkerning{FLspaced}{L}{1000} + +\setglyph{FFIspaced} + \glyph{FFspaced}{1000} + \movert{\add{\kerning{FFspaced}{I}}{\int{capspacing}}} + \glyph{I}{1000} +\endsetglyph +\setleftkerning{FFIspaced}{F}{1000} +\setrightkerning{FFIspaced}{I}{1000} + +\setglyph{FFLspaced} + \glyph{FFspaced}{1000} + \movert{\add{\kerning{FFspaced}{L}}{\int{capspacing}}} + \glyph{L}{1000} +\endsetglyph +\setleftkerning{FFLspaced}{F}{1000} +\setrightkerning{FFLspaced}{L}{1000} + +\setglyph{IJspaced} + \glyph{I}{1000} + \movert{\add{\kerning{I}{J}}{\int{capspacing}}} + \glyph{J}{1000} +\endsetglyph +\setleftkerning{IJspaced}{I}{1000} +\setrightkerning{IJspaced}{J}{1000} + +\setglyph{SSspaced} + \glyph{S}{1000} + \movert{\add{\kerning{S}{S}}{\int{capspacing}}} + \glyph{S}{1000} +\endsetglyph +\setleftrightkerning{SSspaced}{S}{1000} + + + + +\begincomment +\section{All-caps kerning} +\endcomment + +\setleftrightkerning{dotlessI}{I}{1000} +\setleftrightkerning{dotlessJ}{J}{1000} + + +\setleftrightkerning{Aacute}{A}{1000} +\setleftrightkerning{Abreve}{A}{1000} +\setleftrightkerning{Acircumflex}{A}{1000} +\setleftrightkerning{Adieresis}{A}{1000} +\setleftrightkerning{Agrave}{A}{1000} +\setleftrightkerning{Aogonek}{A}{1000} +\setleftrightkerning{Aring}{A}{1000} +\setleftrightkerning{Atilde}{A}{1000} + +\setleftrightkerning{Cacute}{C}{1000} +\setleftrightkerning{Ccaron}{C}{1000} +\setleftrightkerning{Ccedilla}{C}{1000} + +\setleftrightkerning{Dcaron}{D}{1000} + +\setleftrightkerning{Eacute}{E}{1000} +\setleftrightkerning{Ecaron}{E}{1000} +\setleftrightkerning{Ecircumflex}{E}{1000} +\setleftrightkerning{Edieresis}{E}{1000} +\setleftrightkerning{Egrave}{E}{1000} +\setleftrightkerning{Eogonek}{E}{1000} + +\setleftrightkerning{Gbreve}{G}{1000} + +\setleftkerning{IJ}{I}{1000} + +\setleftrightkerning{Iacute}{I}{1000} +\setleftrightkerning{Icircumflex}{I}{1000} +\setleftrightkerning{Idieresis}{I}{1000} +\setleftrightkerning{Idotaccent}{I}{1000} +\setleftrightkerning{Igrave}{I}{1000} + +\setrightkerning{IJ}{J}{1000} + +\setleftrightkerning{Lacute}{L}{1000} +\setleftrightkerning{Lslash}{L}{1000} +\setleftkerning{Lcaron}{L}{1000} + +\setleftrightkerning{Nacute}{N}{1000} +\setleftrightkerning{Ncaron}{N}{1000} +\setleftrightkerning{Ntilde}{N}{1000} + +\setleftkerning{Ng}{N}{1000} +\setrightkerning{Ng}{J}{1000} + +\setleftrightkerning{Oacute}{O}{1000} +\setleftrightkerning{Ocircumflex}{O}{1000} +\setleftrightkerning{Odieresis}{O}{1000} +\setleftrightkerning{Ograve}{O}{1000} +\setleftrightkerning{Ohungarumlaut}{O}{1000} +\setleftrightkerning{Oslash}{O}{1000} +\setleftrightkerning{Otilde}{O}{1000} + +\setleftrightkerning{Rcaron}{R}{1000} +\setleftrightkerning{Racute}{R}{1000} + +\setleftrightkerning{SS}{S}{1000} +\setleftrightkerning{Sacute}{S}{1000} +\setleftrightkerning{Scaron}{S}{1000} +\setleftrightkerning{Scedilla}{S}{1000} + +\setleftrightkerning{Tcaron}{T}{1000} +\setleftrightkerning{Tcedilla}{T}{1000} + +\setleftrightkerning{Uacute}{U}{1000} +\setleftrightkerning{Ucircumflex}{U}{1000} +\setleftrightkerning{Udieresis}{U}{1000} +\setleftrightkerning{Ugrave}{U}{1000} +\setleftrightkerning{Uhungarumlaut}{U}{1000} +\setleftrightkerning{Uring}{U}{1000} + +\setleftrightkerning{Yacute}{Y}{1000} +\setleftrightkerning{Ydieresis}{Y}{1000} + +\setleftrightkerning{Zacute}{Z}{1000} +\setleftrightkerning{Zcaron}{Z}{1000} +\setleftrightkerning{Zdotaccent}{Z}{1000} + + + +\endmetrics + + +\section{Changes} + +The original version of this file was created in February 2003, +although it is based on code from the traditional \texttt{latin.mtx}. +The changes that have been made after that are as follows. + +2003/03/15: Using \verb|\unfakabletopaccent| for the accent +characters. This should change the appearence of accented letters +built using such a character from ``a black square'' to ``a letter +with a black square above''. Neither is satisfactory, but the latter +conveys more information. (LH) + +2003/03/29: Added some code (from \texttt{latin.mtx}) for all-caps +glyphs that had been forgotten. (LH) + +\end{document} + diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/newlatin.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/newlatin.mtx new file mode 100644 index 00000000000..083dfe259b7 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/newlatin.mtx @@ -0,0 +1,190 @@ +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Alan Jeffrey and Ulrik Vieth and +%%% Lars Hellstr{\"o}m", +%%% version = "1.924", +%%% date = "2003-03-29", +%%% time = "16:28:28 +01:00", +%%% filename = "newlatin.mtx", +%%% email = "fontinst@tug.org", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a font metrics file, for use with the +%%% fontinst utility. It provides the defaults +%%% used to install the Latin glyphs.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} + +\usepackage{fontdoc}[2003/02/09] +\showbranches + +\title{The \textsf{fontinst} latin glyphs, modernized} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{16 February 2003} + +\begin{document} +\maketitle + +\section{Introduction} + +This document lists commands for the \textsf{fontinst} utility that +will generate the glyphs needed to make a set of latin fonts. The +intent is that this file should replace the old \texttt{latin.mtx} +as the generic ``fixer'' for latin fonts---doing a decent job both +when proper smallcaps is available and when it is not. + +Most of the actual commands are however to be found in other files, +which this file uses. This modular design is meant to simplify tuning +the process, for example by adjusting the accent positions to better +suit particular fonts. + + +\metrics + +\needsfontinstversion{1.924} + +\usemtxpackage{llbuild} + +\usemtxpackage{lubuild} + +\ifoption{nosc}\then \Else + +\usemtxpackage{lsbuild} +\usemtxpackage{lsfake} +\usemtxpackage{lsmisc} + +\Fi + +\usemtxpackage{ltpunct} + +\begincomment +\section{\texttt{OT1} oddities} + +One important, although also deprecated, encoding for latin text +fonts is the \texttt{OT1} encoding. Besides being a text font +encoding, that makes double service as a math font encoding, and +this imposes some extra restrictions. + +\subsection{Greek capitals} +\endcomment + +\usemtxpackage{ltcmds} + +\unfakable{Gamma} +\unfakable{Delta} +\unfakable{Theta} +\unfakable{Lambda} +\unfakable{Xi} +\unfakable{Pi} +\unfakable{Sigma} +\unfakable{Upsilon} +\unfakable{Upsilon1} +\unfakable{Phi} +\unfakable{Psi} +\unfakable{Omega} + +\begincomment +\subsection{Math accents} + +\TeX's math accent-positioning requires accents to have zero depth. +\endcomment + +\foreach(accent){grave,acute,circumflex,tilde,dieresis,hungarumlaut,% + ring,caron,breve,macron,dotaccent} + \ifisglyph{\str{accent}}\then + \resetglyph{\str{accent}} + \glyph{\str{accent}}{1000} + \resetdepth{0} + \endresetglyph + \Fi +\endfor(accent) + +% \setcommand\zerodepth#1{ +% \ifisglyph{#1}\then +% \resetglyph{#1} +% \glyph{#1}{1000} +% \resetdepth{0} +% \endresetglyph +% \Fi +% } +% \zerodepth{grave} +% \zerodepth{acute} +% \zerodepth{circumflex} +% \zerodepth{tilde} +% \zerodepth{dieresis} +% \zerodepth{hungarumlaut} +% \zerodepth{ring} +% \zerodepth{caron} +% \zerodepth{breve} +% \zerodepth{macron} +% \zerodepth{dotaccent} + + +\begincomment +\subsection{The ring accent} + +The \texttt{OT1} definition of \r{A} (that does not make use of +\verb|\accent|) assumes that the ring accent glyph has the same width +as \texttt{A}. Hence this special \texttt{ringfitted} glyph. +\endcomment + +\setglyph{ringfitted} + \movert{\half{\sub{\width{A}}{\width{ring}}}} + \glyph{ring}{1000} + \movert{\otherhalf{\sub{\width{A}}{\width{ring}}}} +\endsetglyph + + +\begincomment +\section{\texttt{T1} oddities} + +Even the modern \texttt{T1} encoding has some odd traits. The most +notable is that the guillemet glyphs \texttt{guillemotleft} and +\texttt{guillemotright} can be formed as ligatures from a pair of +\texttt{less}s and \texttt{greater}s respectively. Then to get the +right kerning on the left side of the two former glyphs, the two +latter must kern like them! +\endcomment + +\setleftkerning{less}{guillemotleft}{1000} +\setleftkerning{greater}{guillemotright}{1000} + + +\endmetrics + + +\section{Changes} + +The original version of this file was created in February 2003, +although it is based on code from the traditional \texttt{latin.mtx}. +The changes that have been made after that are listed below, but see +also the files containing the individual metric packages for any +changes made to those files. + + +\end{document} + + +% +% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +% hacked and maintained 1997, 1998 Sebastian Rahtz, +% copyright 1998, 1999, 2000, 2003 the fontinst maintenance team and +% any individual authors listed elsewhere in this file. +% All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.2 or, at your option, any later version. +% diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/resetsc.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/resetsc.mtx new file mode 100644 index 00000000000..445e737525e --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/resetsc.mtx @@ -0,0 +1,166 @@ +% Copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Ulrik Vieth", +%%% version = "1.927", +%%% date = "13 April 2004", +%%% time = "23:01:07 CET", +%%% filename = "resetsc.mtx", +%%% email = "fontinst@tug.org", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "07130 161 332 5005", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, raw, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a metrics file, for use with the +%%% fontinst utility. It recodes glyph names +%%% for small capitals read from AFM files +%%% to glyph names with a `small' suffix.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc} + +\title{The \texttt{resetsc.mtx} metrics file} +\author{Ulrik Vieth} +\date{16 November 1999 \\ +Version 1.910} + +\begin{document} +\maketitle + +This document describes the \texttt{resetsc.mtx} metrics file, which is +used to recode raw glyph names for small capitals to glyph names with +a `small' suffix. + +\metrics + +\setcommand\smallcapsglyph#1#2{ + \ifisglyph{#2}\then + \setglyph{#1}\glyph{#2}{1000} + \endsetglyph + \fi +} + +\setcommand\smallcapskerning#1#2{ + \ifisglyph{#2}\then + \setleftrightkerning{#1}{#2}{1000} + \fi +} + +% Renaming small caps glyphs. + +\smallcapsglyph{Asmall}{a} +\smallcapsglyph{Bsmall}{b} +\smallcapsglyph{Csmall}{c} +\smallcapsglyph{Dsmall}{d} +\smallcapsglyph{Esmall}{e} +\smallcapsglyph{Fsmall}{f} +\smallcapsglyph{Gsmall}{g} +\smallcapsglyph{Hsmall}{h} +\smallcapsglyph{Ismall}{i} +\smallcapsglyph{Jsmall}{j} +\smallcapsglyph{Ksmall}{k} +\smallcapsglyph{Lsmall}{l} +\smallcapsglyph{Msmall}{m} +\smallcapsglyph{Nsmall}{n} +\smallcapsglyph{Osmall}{o} +\smallcapsglyph{Psmall}{p} +\smallcapsglyph{Qsmall}{q} +\smallcapsglyph{Rsmall}{r} +\smallcapsglyph{Ssmall}{s} +\smallcapsglyph{Tsmall}{t} +\smallcapsglyph{Usmall}{u} +\smallcapsglyph{Vsmall}{v} +\smallcapsglyph{Wsmall}{w} +\smallcapsglyph{Xsmall}{x} +\smallcapsglyph{Ysmall}{y} +\smallcapsglyph{Zsmall}{z} + +\smallcapsglyph{Lslashsmall}{lslash} +\smallcapsglyph{Scaronsmall}{scaron} +\smallcapsglyph{Zcaronsmall}{zcaron} + +\smallcapsglyph{Agravesmall}{agrave} +\smallcapsglyph{Aacutesmall}{aacute} +\smallcapsglyph{Acircumflexsmall}{acircumflex} +\smallcapsglyph{Atildesmall}{atilde} +\smallcapsglyph{Adieresissmall}{adieresis} +\smallcapsglyph{Aringsmall}{aring} +\smallcapsglyph{AEsmall}{ae} +\smallcapsglyph{Ccedillasmall}{ccedilla} +\smallcapsglyph{Egravesmall}{egrave} +\smallcapsglyph{Eacutesmall}{eacute} +\smallcapsglyph{Ecircumflexsmall}{ecircumflex} +\smallcapsglyph{Edieresissmall}{edieresis} +\smallcapsglyph{Igravesmall}{igrave} +\smallcapsglyph{Iacutesmall}{iacute} +\smallcapsglyph{Icircumflexsmall}{icircumflex} +\smallcapsglyph{Idieresissmall}{idieresis} +\smallcapsglyph{Ethsmall}{eth} +\smallcapsglyph{Ntildesmall}{ntilde} +\smallcapsglyph{Ogravesmall}{ograve} +\smallcapsglyph{Oacutesmall}{oacute} +\smallcapsglyph{Ocircumflexsmall}{ocircumflex} +\smallcapsglyph{Otildesmall}{otilde} +\smallcapsglyph{Odieresissmall}{odieresis} +\smallcapsglyph{OEsmall}{oe} +\smallcapsglyph{Oslashsmall}{oslash} +\smallcapsglyph{Ugravesmall}{ugrave} +\smallcapsglyph{Uacutesmall}{uacute} +\smallcapsglyph{Ucircumflexsmall}{ucircumflex} +\smallcapsglyph{Udieresissmall}{udieresis} +\smallcapsglyph{Yacutesmall}{yacute} +\smallcapsglyph{Thornsmall}{thorn} +\smallcapsglyph{Ydieresissmall}{ydieresis} + +% Renaming small caps kern pairs. + +\smallcapskerning{Asmall}{a} +\smallcapskerning{Bsmall}{b} +\smallcapskerning{Csmall}{c} +\smallcapskerning{Dsmall}{d} +\smallcapskerning{Esmall}{e} +\smallcapskerning{Fsmall}{f} +\smallcapskerning{Gsmall}{g} +\smallcapskerning{Hsmall}{h} +\smallcapskerning{Ismall}{i} +\smallcapskerning{Jsmall}{j} +\smallcapskerning{Ksmall}{k} +\smallcapskerning{Lsmall}{l} +\smallcapskerning{Msmall}{m} +\smallcapskerning{Nsmall}{n} +\smallcapskerning{Osmall}{o} +\smallcapskerning{Psmall}{p} +\smallcapskerning{Qsmall}{q} +\smallcapskerning{Rsmall}{r} +\smallcapskerning{Ssmall}{s} +\smallcapskerning{Tsmall}{t} +\smallcapskerning{Usmall}{u} +\smallcapskerning{Vsmall}{v} +\smallcapskerning{Wsmall}{w} +\smallcapskerning{Xsmall}{x} +\smallcapskerning{Ysmall}{y} +\smallcapskerning{Zsmall}{z} + +\endmetrics + +\section{Changes} + +2004/04/13: Fixed typo (\texttt{Xsmall} instead of \texttt{Ysmall}). +(LH) +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/unsetalf.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/unsetalf.mtx new file mode 100644 index 00000000000..cc6b792de09 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/unsetalf.mtx @@ -0,0 +1,114 @@ +% Copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Ulrik Vieth", +%%% version = "1.910", +%%% date = "16 November 1999", +%%% time = "23:02:32 CET", +%%% filename = "unsetalf.mtx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "64950 114 264 2737", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, raw, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a metrics file, for use with the +%%% fontinst utility. It makes glyph names +%%% for alphabetic glyphs undefined.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc} + +\title{The \texttt{unsetalf.mtx} metrics file} +\author{Ulrik Vieth} +\date{16 November 1999 \\ +Version 1.910} + +\begin{document} +\maketitle + +This document describes the \texttt{unsetalf.mtx} metrics file, which is +used to make glyph names for alphabetic glyphs undefined. + +\metrics + +\unsetint{xheight} +\unsetint{ascender} +\unsetint{descender} +\unsetint{capheight} +\unsetint{italicslant} + +\unsetglyph{A} +\unsetglyph{B} +\unsetglyph{C} +\unsetglyph{D} +\unsetglyph{E} +\unsetglyph{F} +\unsetglyph{G} +\unsetglyph{H} +\unsetglyph{I} +\unsetglyph{J} +\unsetglyph{K} +\unsetglyph{L} +\unsetglyph{M} +\unsetglyph{N} +\unsetglyph{O} +\unsetglyph{P} +\unsetglyph{Q} +\unsetglyph{R} +\unsetglyph{S} +\unsetglyph{T} +\unsetglyph{U} +\unsetglyph{V} +\unsetglyph{W} +\unsetglyph{X} +\unsetglyph{Y} +\unsetglyph{Z} + +\unsetglyph{a} +\unsetglyph{b} +\unsetglyph{c} +\unsetglyph{d} +\unsetglyph{e} +\unsetglyph{f} +\unsetglyph{g} +\unsetglyph{h} +\unsetglyph{i} +\unsetglyph{j} +\unsetglyph{k} +\unsetglyph{l} +\unsetglyph{m} +\unsetglyph{n} +\unsetglyph{o} +\unsetglyph{p} +\unsetglyph{q} +\unsetglyph{r} +\unsetglyph{s} +\unsetglyph{t} +\unsetglyph{u} +\unsetglyph{v} +\unsetglyph{w} +\unsetglyph{x} +\unsetglyph{y} +\unsetglyph{z} + +\unsetglyph{dotlessi} +\unsetglyph{dotlessj} + +\endmetrics +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/mathetx/euex.etx b/Master/texmf-dist/tex/fontinst/mathetx/euex.etx new file mode 100644 index 00000000000..1d33e7ac4b6 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathetx/euex.etx @@ -0,0 +1,164 @@ +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = "Matthias Clasen and Ulrik Vieth", +%%% version = "1.915", +%%% date = "26 October 2000", +%%% time = "11:28:00 CEST", +%%% filename = "euex.etx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/index.html", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, math, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the Euler extension encoding as a TeX +%%% font encoding file, for use with the fontinst +%%% utility.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[1999/11/04] + +\useexamplefont{euex10} +\showbranches + +\title{The AMS Euler Extension encoding vector} +\author{Matthias Clasen and Ulrik Vieth} + +\begin{document} +\maketitle + +\encoding + +\needsfontinstversion{1.909} + +\begincomment +\section{Default values} +\endcomment + +\setstr{codingscheme}{EULER SUBSTITUTIONS ONLY} +\setint{italicslant}{0} + +\ifisglyph{x}\then + \setint{xheight}{\height{x}} +\Else + \setint{xheight}{500} +\Fi + +\comment{The following font dimensions are taken from \texttt{euex10}.} + +\setint{defaultrulethickness}{40} +\setint{bigopspacing1}{111} +\setint{bigopspacing2}{167} +\setint{bigopspacing3}{200} +\setint{bigopspacing4}{600} +\setint{bigopspacing5}{100} + +\begincomment +\section{Default font dimensions} +\endcomment + +\setint{fontdimen(1)}{\int{italicslant}} % italic slant +\setint{fontdimen(2)}{0} % interword space +\setint{fontdimen(3)}{0} % interword stretch +\setint{fontdimen(4)}{0} % interword shrink +\setint{fontdimen(5)}{\int{xheight}} % x-height +\setint{fontdimen(6)}{1000} % quad +\setint{fontdimen(7)}{0} % extra space after . + +\setint{fontdimen(8)}{\int{defaultrulethickness}} % default rule thickness +\setint{fontdimen(9)}{\int{bigopspacing1}} % bigopspacing 1 +\setint{fontdimen(10)}{\int{bigopspacing2}} % bigopspacing 2 +\setint{fontdimen(11)}{\int{bigopspacing3}} % bigopspacing 3 +\setint{fontdimen(12)}{\int{bigopspacing4}} % bigopspacing 4 +\setint{fontdimen(13)}{\int{bigopspacing5}} % bigopspacing 5 + + +\begincomment +\section{The encoding} +\endcomment + +\setslotcomment{The symbol `\slotexample'.} + +\nextslot{8} +\setslot{braceleftbig}\endsetslot +\setslot{bracerightbig}\endsetslot +\setslot{braceleftBig}\endsetslot +\setslot{bracerightBig}\endsetslot +\setslot{braceleftbigg}\endsetslot +\setslot{bracerightbigg}\endsetslot +\setslot{braceleftBigg}\endsetslot +\setslot{bracerightBigg}\endsetslot + +\nextslot{24} +\setslot{arrowlefttophalf}\endsetslot +\setslot{arrowleftbothalf}\endsetslot +\setslot{arrowrighttophalf}\endsetslot +\setslot{arrowrightbothalf}\endsetslot + +\nextslot{32} +\setslot{arrowleft}\endsetslot +\setslot{arrowright}\endsetslot +\setslot{arrowup}\endsetslot +\setslot{arrowdown}\endsetslot +\setslot{arrowboth}\endsetslot +\setslot{arrownortheast}\endsetslot +\setslot{arrowsoutheast}\endsetslot + +\nextslot{40} +\setslot{arrowdblleft}\endsetslot +\setslot{arrowdblright}\endsetslot +\setslot{arrowdblup}\endsetslot +\setslot{arrowdbldown}\endsetslot +\setslot{arrowdblboth}\endsetslot +\setslot{arrownorthwest}\endsetslot +\setslot{arrowsouthwest}\endsetslot + +\nextslot{49} +\setslot{infinity}\endsetslot + +\nextslot{56} +\setslot{bracelefttp}\endsetslot +\setslot{bracerighttp}\endsetslot +\setslot{braceleftbt}\endsetslot +\setslot{bracerightbt}\endsetslot +\setslot{braceleftmid}\endsetslot +\setslot{bracerightmid}\endsetslot +\setslot{braceex}\endsetslot + +\nextslot{72} +\setslot{contintegraltext}\endsetslot +\setslot{contintegraldisplay}\endsetslot + +\nextslot{80} +\setslot{summationtext}\endsetslot +\setslot{producttext}\endsetslot +\setslot{integraltext}\endsetslot + +\nextslot{88} +\setslot{summationdisplay}\endsetslot +\setslot{productdisplay}\endsetslot +\setslot{integraldisplay}\endsetslot + +\nextslot{96} +\setslot{coproducttext}\endsetslot +\setslot{coproductdisplay}\endsetslot + +\nextslot{122} +\setslot{bracehtipdownleft}\endsetslot +\setslot{bracehtipdownright}\endsetslot +\setslot{bracehtipupleft}\endsetslot +\setslot{bracehtipupright}\endsetslot + +\endencoding + +\section{Changes} + +12 October 2000, v1\,1.915: Introduced intermediate variables for +fontdimens 8--13. Updated markup. (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/mathetx/eufrak.etx b/Master/texmf-dist/tex/fontinst/mathetx/eufrak.etx new file mode 100644 index 00000000000..edc289e80da --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathetx/eufrak.etx @@ -0,0 +1,238 @@ +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = "Matthias Clasen and Ulrik Vieth", +%%% version = "1.915", +%%% date = "26 October 2000", +%%% time = "11:29:00 CEST", +%%% filename = "eufrak.etx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/index.html", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, math, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the Euler Fraktur encoding as a TeX +%%% font encoding file, for use with the fontinst +%%% utility.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[1999/11/04] + +\useexamplefont{eufm10} +\showbranches + +\title{The AMS Euler Fraktur encoding vector (\texttt{OT1}-subset)} +\author{Matthias Clasen and Ulrik Vieth} + +\begin{document} +\maketitle + +\encoding + +\needsfontinstversion{1.909} + +\begincomment +\section{Default values} +\endcomment + +\setstr{codingscheme}{TEX TEXT SUBSET} +\setint{italicslant}{0} + +\ifisglyph{x}\then + \setint{xheight}{\height{x}} +\Else + \setint{xheight}{500} +\Fi + +\comment{The following font dimensions are taken from \texttt{eufm10}.} + +\setint{num1}{378} +\setint{num2}{270} +\setint{num3}{297} +\setint{denom1}{378} +\setint{denom2}{162} +\setint{sup1}{405} +\setint{sup2}{378} +\setint{sup3}{324} +\setint{sub1}{189} +\setint{sub2}{243} +\setint{supdrop}{405} +\setint{subdrop}{27} +\setint{delim1}{2198} +\setint{delim2}{1000} +\setint{axisheight}{257} + +\begincomment +\section{Font dimensions} +\endcomment + +\setint{fontdimen(1)}{\int{italicslant}} % italic slant +\setint{fontdimen(2)}{0} % interword space +\setint{fontdimen(3)}{0} % interword stretch +\setint{fontdimen(4)}{0} % interword shrink +\setint{fontdimen(5)}{\int{xheight}} % x-height +\setint{fontdimen(6)}{1000} % quad +\setint{fontdimen(7)}{0} % extra space after . + +\setint{fontdimen(8)}{\int{num1}} % num 1 +\setint{fontdimen(9)}{\int{num2}} % num 2 +\setint{fontdimen(10)}{\int{num3}} % num 3 +\setint{fontdimen(11)}{\int{denom1}} % denom 1 +\setint{fontdimen(12)}{\int{denom2}} % denom 2 +\setint{fontdimen(13)}{\int{sup1}} % sup 1 +\setint{fontdimen(14)}{\int{sup2}} % sup 2 +\setint{fontdimen(15)}{\int{sup3}} % sup 3 +\setint{fontdimen(16)}{\int{sub1}} % sub 1 +\setint{fontdimen(17)}{\int{sub2}} % sub 2 +\setint{fontdimen(18)}{\int{supdrop}} % supdrop +\setint{fontdimen(19)}{\int{subdrop}} % subdrop +\setint{fontdimen(20)}{\int{delim1}} % delim 1 +\setint{fontdimen(21)}{\int{delim2}} % delim 2 +\setint{fontdimen(22)}{\int{axisheight}} % math axis height + + +\begincomment +\section{The encoding} +\endcomment + +\setslotcomment{The alternate letter `\slotexample'.} + +\setslot{d1frak}\endsetslot +\setslot{d2frak}\endsetslot +\setslot{f1frak}\endsetslot +\setslot{f2frak}\endsetslot +\setslot{g1frak}\endsetslot +\setslot{t1frak}\endsetslot +\setslot{t2frak}\endsetslot +\setslot{u1frak}\endsetslot + +\resetslotcomment{The symbol `\slotexample'.} + +\nextslot{18} +\setslot{quoteleft}\endsetslot +\setslot{quoteright}\endsetslot + +\nextslot{33} +\setslot{exclam}\endsetslot +\skipslots{4} +\setslot{ampersand}\endsetslot +\setslot{quotesingle}\endsetslot +\setslot{parenleft}\endsetslot +\setslot{parenright}\endsetslot +\setslot{asterisk}\endsetslot +\setslot{plus}\endsetslot +\setslot{comma}\endsetslot +\setslot{minus}\endsetslot +\setslot{period}\endsetslot +\setslot{slash}\endsetslot + +\resetslotcomment{The Fraktur numeral `\slotexample'.} + +\nextslot{48} +\setslot{zerofrak}\endsetslot +\setslot{onefrak}\endsetslot +\setslot{twofrak}\endsetslot +\setslot{threefrak}\endsetslot +\setslot{fourfrak}\endsetslot +\setslot{fivefrak}\endsetslot +\setslot{sixfrak}\endsetslot +\setslot{sevenfrak}\endsetslot +\setslot{eightfrak}\endsetslot +\setslot{ninefrak}\endsetslot + +\resetslotcomment{The symbol `\slotexample'.} + +\setslot{colon}\endsetslot +\setslot{semicolon}\endsetslot +\skipslots{1} +\setslot{equal}\endsetslot +\skipslots{1} +\setslot{question}\endsetslot + +\resetslotcomment{The Fraktur letter `\slotexample'.} + +\nextslot{65} +\setslot{Afrak}\endsetslot +\setslot{Bfrak}\endsetslot +\setslot{Cfrak}\endsetslot +\setslot{Dfrak}\endsetslot +\setslot{Efrak}\endsetslot +\setslot{Ffrak}\endsetslot +\setslot{Gfrak}\endsetslot +\setslot{Hfrak}\endsetslot +\setslot{Ifrak}\endsetslot +\setslot{Jfrak}\endsetslot +\setslot{Kfrak}\endsetslot +\setslot{Lfrak}\endsetslot +\setslot{Mfrak}\endsetslot +\setslot{Nfrak}\endsetslot +\setslot{Ofrak}\endsetslot +\setslot{Pfrak}\endsetslot +\setslot{Qfrak}\endsetslot +\setslot{Rfrak}\endsetslot +\setslot{Sfrak}\endsetslot +\setslot{Tfrak}\endsetslot +\setslot{Ufrak}\endsetslot +\setslot{Vfrak}\endsetslot +\setslot{Wfrak}\endsetslot +\setslot{Xfrak}\endsetslot +\setslot{Yfrak}\endsetslot +\setslot{Zfrak}\endsetslot + +\resetslotcomment{The symbol `\slotexample'.} + +\setslot{bracketleft}\endsetslot +\skipslots{1} +\setslot{bracketright}\endsetslot +\setslot{asciicircum}\endsetslot + +\resetslotcomment{The Fraktur letter `\slotexample'.} + +\nextslot{97} +\setslot{afrak}\endsetslot +\setslot{bfrak}\endsetslot +\setslot{cfrak}\endsetslot +\setslot{dfrak}\endsetslot +\setslot{efrak}\endsetslot +\setslot{ffrak}\endsetslot +\setslot{gfrak}\endsetslot +\setslot{hfrak}\endsetslot +\setslot{ifrak}\endsetslot +\setslot{jfrak}\endsetslot +\setslot{kfrak}\endsetslot +\setslot{lfrak}\endsetslot +\setslot{mfrak}\endsetslot +\setslot{nfrak}\endsetslot +\setslot{ofrak}\endsetslot +\setslot{pfrak}\endsetslot +\setslot{qfrak}\endsetslot +\setslot{rfrak}\endsetslot +\setslot{sfrak}\endsetslot +\setslot{tfrak}\endsetslot +\setslot{ufrak}\endsetslot +\setslot{vfrak}\endsetslot +\setslot{wfrak}\endsetslot +\setslot{xfrak}\endsetslot +\setslot{yfrak}\endsetslot +\setslot{zfrak}\endsetslot + +\resetslotcomment{The symbol `\slotexample'.} + +\skipslots{2} +\setslot{quotedbl}\endsetslot +\skipslots{1} +\setslot{onealtfrak}\endsetslot + +\endencoding + +\section{Changes} + +12 October 2000, v\,1.915: Introduced intermediate variables for fontdimens +8--22. Updated markup. (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/mathetx/eurm.etx b/Master/texmf-dist/tex/fontinst/mathetx/eurm.etx new file mode 100644 index 00000000000..063137ad6f5 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathetx/eurm.etx @@ -0,0 +1,239 @@ +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = "Matthias Clasen and Ulrik Vieth", +%%% version = "1.915", +%%% date = "26 October 2000", +%%% time = "11:29:00 CEST", +%%% filename = "eurm.etx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/index.html", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, math, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the Euler Roman encoding as a TeX +%%% font encoding file, for use with the fontinst +%%% utility.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[1999/11/04] + +\useexamplefont{eurm10} +\showbranches + +\title{The AMS Euler Roman encoding vector (\texttt{OML}-subset)} +\author{Matthias Clasen and Ulrik Vieth} + +\begin{document} +\maketitle + +\encoding + +\needsfontinstversion{1.909} + +\begincomment +\section{Default values} +\endcomment + +\setstr{codingscheme}{TEX MATH ITALIC SUBSET} +\setint{italicslant}{0} + +\ifisglyph{x}\then + \setint{xheight}{\height{x}} +\Else + \setint{xheight}{500} +\Fi + +\comment{The following font dimensions are taken from \texttt{eurm10}.} + +\setint{num1}{378} +\setint{num2}{270} +\setint{num3}{297} +\setint{denom1}{378} +\setint{denom2}{162} +\setint{sup1}{405} +\setint{sup2}{378} +\setint{sup3}{324} +\setint{sub1}{189} +\setint{sub2}{243} +\setint{supdrop}{405} +\setint{subdrop}{27} +\setint{delim1}{2198} +\setint{delim2}{1000} +\setint{axisheight}{257} + +\begincomment +\section{Font dimensions} +\endcomment + +\setint{fontdimen(1)}{\int{italicslant}} % italic slant +\setint{fontdimen(2)}{0} % interword space +\setint{fontdimen(3)}{0} % interword stretch +\setint{fontdimen(4)}{0} % interword shrink +\setint{fontdimen(5)}{\int{xheight}} % x-height +\setint{fontdimen(6)}{1000} % quad +\setint{fontdimen(7)}{0} % extra space after . + +\setint{fontdimen(8)}{\int{num1}} % num 1 +\setint{fontdimen(9)}{\int{num2}} % num 2 +\setint{fontdimen(10)}{\int{num3}} % num 3 +\setint{fontdimen(11)}{\int{denom1}} % denom 1 +\setint{fontdimen(12)}{\int{denom2}} % denom 2 +\setint{fontdimen(13)}{\int{sup1}} % sup 1 +\setint{fontdimen(14)}{\int{sup2}} % sup 2 +\setint{fontdimen(15)}{\int{sup3}} % sup 3 +\setint{fontdimen(16)}{\int{sub1}} % sub 1 +\setint{fontdimen(17)}{\int{sub2}} % sub 2 +\setint{fontdimen(18)}{\int{supdrop}} % supdrop +\setint{fontdimen(19)}{\int{subdrop}} % subdrop +\setint{fontdimen(20)}{\int{delim1}} % delim 1 +\setint{fontdimen(21)}{\int{delim2}} % delim 2 +\setint{fontdimen(22)}{\int{axisheight}} % math axis height + + +\begincomment +\section{The encoding} +\endcomment + +\setslotcomment{The Greek letter `\slotexample'.} +\setslot{Gammaupright}\endsetslot +\setslot{Deltaupright}\endsetslot +\setslot{Thetaupright}\endsetslot +\setslot{Lambdaupright}\endsetslot +\setslot{Xiupright}\endsetslot +\setslot{Piupright}\endsetslot +\setslot{Sigmaupright}\endsetslot +\setslot{Upsilonupright}\endsetslot +\setslot{Phiupright}\endsetslot +\setslot{Psiupright}\endsetslot +\setslot{Omegaupright}\endsetslot +\setslot{alphaupright}\endsetslot +\setslot{betaupright}\endsetslot +\setslot{gammaupright}\endsetslot +\setslot{deltaupright}\endsetslot +\setslot{epsilonupright}\endsetslot +\setslot{zetaupright}\endsetslot +\setslot{etaupright}\endsetslot +\setslot{thetaupright}\endsetslot +\setslot{iotaupright}\endsetslot +\setslot{kappaupright}\endsetslot +\setslot{lambdaupright}\endsetslot +\setslot{muupright}\endsetslot +\setslot{nuupright}\endsetslot +\setslot{xiupright}\endsetslot +\setslot{piupright}\endsetslot +\setslot{rhoupright}\endsetslot +\setslot{sigmaupright}\endsetslot +\setslot{tauupright}\endsetslot +\setslot{upsilonupright}\endsetslot +\setslot{phiupright}\endsetslot +\setslot{chiupright}\endsetslot +\setslot{psiupright}\endsetslot +\setslot{omegaupright}\endsetslot +\setslot{epsilon1upright}\endsetslot +\setslot{theta1upright}\endsetslot +\setslot{pi1upright}\endsetslot +\skipslots{2} +\setslot{phi1upright}\endsetslot + +\nextslot{48} + +\resetslotcomment{The numeral `\slotexample'.} +\setslot{zeroupright}\endsetslot +\setslot{oneupright}\endsetslot +\setslot{twoupright}\endsetslot +\setslot{threeupright}\endsetslot +\setslot{fourupright}\endsetslot +\setslot{fiveupright}\endsetslot +\setslot{sixupright}\endsetslot +\setslot{sevenupright}\endsetslot +\setslot{eightupright}\endsetslot +\setslot{nineupright}\endsetslot + +\resetslotcomment{The symbol `\slotexample'.} +\setslot{period}\endsetslot +\setslot{comma}\endsetslot +\setslot{less}\endsetslot +\setslot{slash}\endsetslot +\setslot{greater}\endsetslot +\skipslots{1} +\setslot{partialdiffupright}\endsetslot + +\nextslot{65} + +\resetslotcomment{The letter `\slotexample'.} +\setslot{A}\endsetslot +\setslot{B}\endsetslot +\setslot{C}\endsetslot +\setslot{D}\endsetslot +\setslot{E}\endsetslot +\setslot{F}\endsetslot +\setslot{G}\endsetslot +\setslot{H}\endsetslot +\setslot{I}\endsetslot +\setslot{J}\endsetslot +\setslot{K}\endsetslot +\setslot{L}\endsetslot +\setslot{M}\endsetslot +\setslot{N}\endsetslot +\setslot{O}\endsetslot +\setslot{P}\endsetslot +\setslot{Q}\endsetslot +\setslot{R}\endsetslot +\setslot{S}\endsetslot +\setslot{T}\endsetslot +\setslot{U}\endsetslot +\setslot{V}\endsetslot +\setslot{W}\endsetslot +\setslot{X}\endsetslot +\setslot{Y}\endsetslot +\setslot{Z}\endsetslot +\skipslots{5} + +\setslot{lscript}\endsetslot +\setslot{a}\endsetslot +\setslot{b}\endsetslot +\setslot{c}\endsetslot +\setslot{d}\endsetslot +\setslot{e}\endsetslot +\setslot{f}\endsetslot +\setslot{g}\endsetslot +\setslot{h}\endsetslot +\setslot{i}\endsetslot +\setslot{j}\endsetslot +\setslot{k}\endsetslot +\setslot{l}\endsetslot +\setslot{m}\endsetslot +\setslot{n}\endsetslot +\setslot{o}\endsetslot +\setslot{p}\endsetslot +\setslot{q}\endsetslot +\setslot{r}\endsetslot +\setslot{s}\endsetslot +\setslot{t}\endsetslot +\setslot{u}\endsetslot +\setslot{v}\endsetslot +\setslot{w}\endsetslot +\setslot{x}\endsetslot +\setslot{y}\endsetslot +\setslot{z}\endsetslot +\setslot{dotlessi}\endsetslot +\setslot{dotlessj}\endsetslot +\setslot{weierstrass}\endsetslot + +\nextslot{127} +\setslot{skewchar}\endsetslot + +\endencoding + +\section{Changes} + +12 October 2000, v\,1.915: Introduced intermediate variables for fontdimens +8--22. Updated markup. (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/mathetx/euscr.etx b/Master/texmf-dist/tex/fontinst/mathetx/euscr.etx new file mode 100644 index 00000000000..c5811f646c0 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathetx/euscr.etx @@ -0,0 +1,171 @@ +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = "Matthias Clasen and Ulrik Vieth", +%%% version = "1.915", +%%% date = "26 October 2000", +%%% time = "11:30:00 CEST", +%%% filename = "euscr.etx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/index.html", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, math, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the Euler Script encoding as a TeX +%%% font encoding file, for use with the fontinst +%%% utility.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[1999/11/04] + +\useexamplefont{eusm10} +\showbranches + +\title{The AMS Euler Script encoding vector (\texttt{OMS}-subset)} +\author{Matthias Clasen and Ulrik Vieth} + +\begin{document} +\maketitle + +\encoding + +\needsfontinstversion{1.909} + +\begincomment +\section{Default values} +\endcomment + +\setstr{codingscheme}{TEX MATH SYMBOLS SUBSET} +\setint{italicslant}{0} + +\ifisglyph{x}\then + \setint{xheight}{\height{x}} +\Else + \setint{xheight}{500} +\Fi + +\comment{The following font dimensions are taken from \texttt{eusm10}.} + +\setint{num1}{378} +\setint{num2}{270} +\setint{num3}{297} +\setint{denom1}{378} +\setint{denom2}{162} +\setint{sup1}{405} +\setint{sup2}{378} +\setint{sup3}{324} +\setint{sub1}{189} +\setint{sub2}{243} +\setint{supdrop}{405} +\setint{subdrop}{27} +\setint{delim1}{2198} +\setint{delim2}{1000} +\setint{axisheight}{257} + +\begincomment +\section{Font dimensions} +\endcomment + +\setint{fontdimen(1)}{\int{italicslant}} % italic slant +\setint{fontdimen(2)}{0} % interword space +\setint{fontdimen(3)}{0} % interword stretch +\setint{fontdimen(4)}{0} % interword shrink +\setint{fontdimen(5)}{\int{xheight}} % x-height +\setint{fontdimen(6)}{1000} % quad +\setint{fontdimen(7)}{0} % extra space after . + +\setint{fontdimen(8)}{\int{num1}} % num 1 +\setint{fontdimen(9)}{\int{num2}} % num 2 +\setint{fontdimen(10)}{\int{num3}} % num 3 +\setint{fontdimen(11)}{\int{denom1}} % denom 1 +\setint{fontdimen(12)}{\int{denom2}} % denom 2 +\setint{fontdimen(13)}{\int{sup1}} % sup 1 +\setint{fontdimen(14)}{\int{sup2}} % sup 2 +\setint{fontdimen(15)}{\int{sup3}} % sup 3 +\setint{fontdimen(16)}{\int{sub1}} % sub 1 +\setint{fontdimen(17)}{\int{sub2}} % sub 2 +\setint{fontdimen(18)}{\int{supdrop}} % supdrop +\setint{fontdimen(19)}{\int{subdrop}} % subdrop +\setint{fontdimen(20)}{\int{delim1}} % delim 1 +\setint{fontdimen(21)}{\int{delim2}} % delim 2 +\setint{fontdimen(22)}{\int{axisheight}} % math axis height + + +\begincomment +\section{The encoding} +\endcomment + +\setslotcomment{The symbol `\slotexample'.} + +\nextslot{24} +\setslot{similar}\endsetslot + +\nextslot{48} +\setslot{skewchar}\endsetslot + +\nextslot{58} +\setslot{logicalnot}\endsetslot +\nextslot{60} +\setslot{Rfraktur}\endsetslot +\setslot{Ifraktur}\endsetslot +\nextslot{64} +\setslot{aleph}\endsetslot + +\setslotcomment{The script letter `\slotexample'.} + +\nextslot{65} +\setslot{Acal}\endsetslot +\setslot{Bcal}\endsetslot +\setslot{Ccal}\endsetslot +\setslot{Dcal}\endsetslot +\setslot{Ecal}\endsetslot +\setslot{Fcal}\endsetslot +\setslot{Gcal}\endsetslot +\setslot{Hcal}\endsetslot +\setslot{Ical}\endsetslot +\setslot{Jcal}\endsetslot +\setslot{Kcal}\endsetslot +\setslot{Lcal}\endsetslot +\setslot{Mcal}\endsetslot +\setslot{Ncal}\endsetslot +\setslot{Ocal}\endsetslot +\setslot{Pcal}\endsetslot +\setslot{Qcal}\endsetslot +\setslot{Rcal}\endsetslot +\setslot{Scal}\endsetslot +\setslot{Tcal}\endsetslot +\setslot{Ucal}\endsetslot +\setslot{Vcal}\endsetslot +\setslot{Wcal}\endsetslot +\setslot{Xcal}\endsetslot +\setslot{Ycal}\endsetslot +\setslot{Zcal}\endsetslot + +\setslotcomment{The symbol `\slotexample'.} + +\nextslot{94} +\setslot{logicaland}\endsetslot +\setslot{logicalor}\endsetslot +\nextslot{102} +\setslot{braceleft}\endsetslot +\setslot{braceright}\endsetslot +\nextslot{106} +\setslot{bar}\endsetslot +\nextslot{110} +\setslot{backslash}\endsetslot +\nextslot{120} +\setslot{section}\endsetslot + +\endencoding + +\section{Changes} + +12 October 2000, v\,1.915: Introduced intermediate variables for fontdimens +8--22. Updated markup. (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/mathetx/msam.etx b/Master/texmf-dist/tex/fontinst/mathetx/msam.etx new file mode 100644 index 00000000000..89a38dedfb2 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathetx/msam.etx @@ -0,0 +1,636 @@ +\relax + +\documentclass[twocolumn]{article} + +\usepackage{fontdoc} +\usepackage{amssymb} +\usepackage{multicol} + +\title{The AMS \texttt{msam} symbol encoding vector} +\author{Mattias Clasen, modifications by Ulrik Vieth} + +\begin{document} +\onecolumn + +\maketitle + +\section{Introduction} + +This document describes the AMS \texttt{msam} symbol encoding, which +is unfortunately called \texttt{TEX MATH SYMBOLS} in the \texttt{.tfm} +files although it has nothing to do with the encoding of +\texttt{cmsy}. To overcome this difficulty use e.g.\ \texttt{msam10} +like +\begin{quote} + \textellipsis + \verb|,\metrics\generalpltomtx{msam10}{msam10}{pl}{msam},msam10,|% + \textellipsis +\end{quote} +in the \textit{file list} argument of \verb+\installfont+, or generate +the \texttt{.mtx} file at some point before the \verb|\installfont| +command. + +Most glyph names were revised to match the names used in the +\texttt{.afm} files of the BlueSky Type~1 fonts, except for a few +cases where those glyph names were found to be confusing or +misleading. + +\showbranches + +\begin{multicols}{2} + +\encoding + +\begincomment +\section{Default values} +\endcomment + +\setstr{codingscheme}{AMS Math Symbols, Part A} + +\setint{italicslant}{0} + +\ifisglyph{x}\then + \setint{xheight}{\height{x}} +\Else + \setint{xheight}{500} +\Fi + +\comment{The following font dimension defaults are taken from +\texttt{cmsy10}.} + +\setint{num1}{677} +\setint{num2}{394} +\setint{num3}{444} +\setint{denom1}{686} +\setint{denom2}{345} +\setint{sup1}{413} +\setint{sup2}{363} +\setint{sup3}{289} +\setint{sub1}{150} +\setint{sub2}{247} +\setint{supdrop}{386} +\setint{subdrop}{50} +\setint{delim1}{2390} +\setint{delim2}{1010} +\setint{axisheight}{250} + + +\begincomment +\section{Default font dimensions} +\endcomment + +\setint{fontdimen(1)}{\int{italicslant}} % italic slant +\setint{fontdimen(2)}{0} % interword space +\setint{fontdimen(3)}{0} % interword stretch +\setint{fontdimen(4)}{0} % interword shrink +\setint{fontdimen(5)}{\int{xheight}} % x-height +\setint{fontdimen(6)}{1000} % quad +\setint{fontdimen(7)}{0} % extra space after . + +\setint{fontdimen(8)}{\int{num1}} % num 1 +\setint{fontdimen(9)}{\int{num2}} % num 2 +\setint{fontdimen(10)}{\int{num3}} % num 3 +\setint{fontdimen(11)}{\int{denom1}} % denom 1 +\setint{fontdimen(12)}{\int{denom2}} % denom 2 +\setint{fontdimen(13)}{\int{sup1}} % sup 1 +\setint{fontdimen(14)}{\int{sup2}} % sup 2 +\setint{fontdimen(15)}{\int{sup3}} % sup 3 +\setint{fontdimen(16)}{\int{sub1}} % sub 1 +\setint{fontdimen(17)}{\int{sub2}} % sub 2 +\setint{fontdimen(18)}{\int{supdrop}} % supdrop +\setint{fontdimen(19)}{\int{subdrop}} % subdrop +\setint{fontdimen(20)}{\int{delim1}} % delim 1 +\setint{fontdimen(21)}{\int{delim2}} % delim 2 +\setint{fontdimen(22)}{\int{axisheight}} % math axis height + + +\begincomment +\section{The encoding} +There are 128 glyphs in this encoding. +\endcomment + +\setslot{squaredot} + \comment{The symbol `$\boxdot$'.} +\endsetslot + +\setslot{squareplus} + \comment{The symbol `$\boxplus$'.} +\endsetslot + +\setslot{squaremultiply} + \comment{The symbol `$\boxtimes$'.} +\endsetslot + +\setslot{square} + \comment{The symbol `$\square$'.} +\endsetslot + +\setslot{squaresolid} + \comment{The symbol `$\blacksquare$'.} +\endsetslot + +\setslot{squaresmallsolid} + \comment{The symbol `$\centerdot$'.} +\endsetslot + +\setslot{lozenge} + \comment{The symbol `$\lozenge$'.} +\endsetslot + +\setslot{lozengesolid} + \comment{The symbol `$\blacklozenge$'.} +\endsetslot + +\setslot{clockwise} + \comment{The symbol `$\circlearrowright$'.} +\endsetslot + +\setslot{anticlockwise} + \comment{The symbol `$\circlearrowleft$'.} +\endsetslot + +\setslot{harpoonleftright} + \comment{The symbol `$\rightleftharpoons$'.} +\endsetslot + +\setslot{harpoonrightleft} + \comment{The symbol `$\leftrightharpoons$'.} +\endsetslot + +\setslot{squareminus} + \comment{The symbol `$\boxminus$'.} +\endsetslot + +\setslot{forces} + \comment{The symbol `$\Vdash$'.} +\endsetslot + +\setslot{forcesbar} + \comment{The symbol `$\Vvdash$'.} +\endsetslot + +\setslot{satisfies} + \comment{The symbol `$\vDash$'.} +\endsetslot + +\setslot{dblarrowheadright} + \comment{The symbol `$\twoheadrightarrow$'.} +\endsetslot + +\setslot{dblarrowheadleft} + \comment{The symbol `$\twoheadleftarrow$'.} +\endsetslot + +\setslot{dblarrowleft} + \comment{The symbol `$\leftleftarrows$'.} +\endsetslot + +\setslot{dblarrowright} + \comment{The symbol `$\rightrightarrows$'.} +\endsetslot + +\setslot{dblarrowup} + \comment{The symbol `$\upuparrows$'.} +\endsetslot + +\setslot{dblarrowdown} + \comment{The symbol `$\downdownarrows$'.} +\endsetslot + +\setslot{harpoonupright} + \comment{The symbol `$\upharpoonright$'.} +\endsetslot + +\setslot{harpoondownright} + \comment{The symbol `$\downharpoonright$'.} +\endsetslot + +\setslot{harpoonupleft} + \comment{The symbol `$\upharpoonleft$'.} +\endsetslot + +\setslot{harpoondownleft} + \comment{The symbol `$\downharpoonleft$'.} +\endsetslot + +\setslot{arrowtailright} + \comment{The symbol `$\rightarrowtail$'.} +\endsetslot + +\setslot{arrowtailleft} + \comment{The symbol `$\leftarrowtail$'.} +\endsetslot + +\setslot{arrowparrleftright} + \comment{The symbol `$\leftrightarrows$'.} +\endsetslot + +\setslot{arrowparrrightleft} + \comment{The symbol `$\rightleftarrows$'.} +\endsetslot + +\setslot{shiftleft} + \comment{The symbol `$\Lsh$'.} +\endsetslot + +\setslot{shiftright} + \comment{The symbol `$\Rsh$'.} +\endsetslot + +\setslot{squiggleright} + \comment{The symbol `$\rightsquigarrow$'.} +\endsetslot + +\setslot{squiggleleftright} + \comment{The symbol `$\leftrightsquigarrow$'.} +\endsetslot + +\setslot{curlyleft} + \comment{The symbol `$\looparrowleft$'.} +\endsetslot + +\setslot{curlyright} + \comment{The symbol `$\looparrowright$'.} +\endsetslot + +\setslot{circleequal} + \comment{The symbol `$\circeq$'.} +\endsetslot + +\setslot{followsorsimilar} % was: followsorequal + \comment{The symbol `$\succsim$'.} +\endsetslot + +\setslot{greaterorsimilar} + \comment{The symbol `$\gtrsim$'.} +\endsetslot + +\setslot{greaterorapproxeql} + \comment{The symbol `$\gtrapprox$'.} +\endsetslot + +\setslot{multimap} + \comment{The symbol `$\multimap$'.} +\endsetslot + +\setslot{therefore} + \comment{The symbol `$\therefore$'.} +\endsetslot + +\setslot{because} + \comment{The symbol `$\because$'.} +\endsetslot + +\setslot{equalsdots} + \comment{The symbol `$\doteqdot$'.} +\endsetslot + +\setslot{defines} + \comment{The symbol `$\triangleq$'.} +\endsetslot + +\setslot{precedesorsimilar} % was: precedesorequal + \comment{The symbol `$\precsim$'.} +\endsetslot + +\setslot{lessorsimilar} + \comment{The symbol `$\lesssim$'.} +\endsetslot + +\setslot{lessorapproxeql} + \comment{The symbol `$\lessapprox$'.} +\endsetslot + +\setslot{equalslantorless} % was: equalorless + \comment{The symbol `$\eqslantless$'.} +\endsetslot + +\setslot{equalslantorgreater} % was: equaulorgreater + \comment{The symbol `$\eqslantgtr$'.} +\endsetslot + +\setslot{curlyorprecedes} % was: equalorprecedes + \comment{The symbol `$\curlyeqprec$'.} +\endsetslot + +\setslot{curlyorfollows} % was: equalorfollows + \comment{The symbol `$\curlyeqsucc$'.} +\endsetslot + +\setslot{precedesorcurly} + \comment{The symbol `$\preccurlyeq$'.} +\endsetslot + +\setslot{lessdblequal} + \comment{The symbol `$\leqq$'.} +\endsetslot + +\setslot{lessorequalslant} + \comment{The symbol `$\leqslant$'.} +\endsetslot + +\setslot{lessorgreater} + \comment{The symbol `$\lessgtr$'.} +\endsetslot + +\setslot{primereverse} + \comment{The symbol `$\backprime$'.} +\endsetslot + +\setslot{arrowaxishorizex} % axisshort + \comment{The extension piece to construct dashed arrows.} +\endsetslot + +\setslot{equaldotrightleft} + \comment{The symbol `$\risingdotseq$'.} +\endsetslot + +\setslot{equaldotleftright} + \comment{The symbol `$\fallingdotseq$'.} +\endsetslot + +\setslot{followsorcurly} + \comment{The symbol `$\succcurlyeq$'.} +\endsetslot + +\setslot{greaterdblequal} + \comment{The symbol `$\geqq$'.} +\endsetslot + +\setslot{greaterorequalslant} + \comment{The symbol `$\geqslant$'.} +\endsetslot + +\setslot{greaterorless} + \comment{The symbol `$\gtrless$'.} +\endsetslot + +\setslot{squareimage} + \comment{The symbol `$\sqsubset$'.} +\endsetslot + +\setslot{squareoriginal} + \comment{The symbol `$\sqsupset$'.} +\endsetslot + +\setslot{vartriangleright} + \comment{The symbol `$\vartriangleright$'.} +\endsetslot + +\setslot{vartriangleleft} + \comment{The symbol `$\vartriangleleft$'.} +\endsetslot + +\setslot{trianglerightequal} + \comment{The symbol `$\trianglerighteq$'.} +\endsetslot + +\setslot{triangleleftequal} + \comment{The symbol `$\trianglelefteq$'.} +\endsetslot + +\setslot{bigstar} + \comment{The symbol `$\bigstar$'.} +\endsetslot + +\setslot{between} + \comment{The symbol `$\between$'.} +\endsetslot + +\setslot{triangledownsld} + \comment{The symbol `$\blacktriangledown$'.} +\endsetslot + +\setslot{trianglerightsld} + \comment{The symbol `$\blacktriangleright$'.} +\endsetslot + +\setslot{triangleleftsld} + \comment{The symbol `$\blacktriangleleft$'.} +\endsetslot + +\setslot{arrowaxisright} + \comment{The right arrowhead to construct dashed arrows.} +\endsetslot + +\setslot{arrowaxisleft} + \comment{The left arrowhead to construct dashed arrows.} +\endsetslot + +\setslot{triangleup} + \comment{The symbol `$\vartriangle$'.} +\endsetslot + +\setslot{trianglesolid} + \comment{The symbol `$\blacktriangle$'.} +\endsetslot + +\setslot{triangledown} % triangleinv ? + \comment{The symbol `$\triangledown$'.} +\endsetslot + +\setslot{ringinequal} + \comment{The symbol `$\eqcirc$'.} +\endsetslot + +\setslot{lessequalgreater} + \comment{The symbol `$\lesseqgtr$'.} +\endsetslot + +\setslot{greaterequalless} + \comment{The symbol `$\gtreqless$'.} +\endsetslot + +\setslot{lessdbleqlgreater} + \comment{The symbol `$\lesseqqgtr$'.} +\endsetslot + +\setslot{greaterdbleqlless} + \comment{The symbol `$\gtreqqless$'.} +\endsetslot + +\setslot{Yen} + \comment{The symbol `$\yen$'.} +\endsetslot + +\setslot{arrowtripleright} + \comment{The symbol `$\Rrightarrow$'.} +\endsetslot + +\setslot{arrowtripleleft} + \comment{The symbol `$\Lleftarrow$'.} +\endsetslot + +\setslot{check} + \comment{The symbol `$\checkmark$'.} +\endsetslot + +\setslot{orunderscore} + \comment{The symbol `$\veebar$'.} +\endsetslot + +\setslot{nand} + \comment{The symbol `$\barwedge$'.} +\endsetslot + +\setslot{perpcorrespond} + \comment{The symbol `$\doublebarwedge$'.} +\endsetslot + +\setslot{angle} + \comment{The symbol `$\angle$'.} +\endsetslot + +\setslot{measuredangle} + \comment{The symbol `$\measuredangle$'.} +\endsetslot + +\setslot{sphericalangle} + \comment{The symbol `$\sphericalangle$'.} +\endsetslot + +\setslot{proportional} + \comment{The symbol `$\varpropto$'.} +\endsetslot + +\setslot{slurbelow} % smile ??? + \comment{The symbol `$\smallsmile$'.} +\endsetslot + +\setslot{slurabove} % frown ??? + \comment{The symbol `$\smallfrown$'.} +\endsetslot + +\setslot{subsetdbl} + \comment{The symbol `$\Subset$'.} +\endsetslot + +\setslot{supersetdbl} + \comment{The symbol `$\Supset$'.} +\endsetslot + +\setslot{uniondbl} + \comment{The symbol `$\Cup$'.} +\endsetslot + +\setslot{intersectiondbl} + \comment{The symbol `$\Cap$'.} +\endsetslot + +\setslot{uprise} + \comment{The symbol `$\curlywedge$'.} +\endsetslot + +\setslot{downfall} + \comment{The symbol `$\curlyvee$'.} +\endsetslot + +\setslot{multiopenleft} + \comment{The symbol `$\leftthreetimes$'.} +\endsetslot + +\setslot{multiopenright} + \comment{The symbol `$\rightthreetimes$'.} +\endsetslot + +\setslot{subsetdblequal} + \comment{The symbol `$\subseteqq$'.} +\endsetslot + +\setslot{supersetdblequal} + \comment{The symbol `$\supseteqq$'.} +\endsetslot + +\setslot{difference} + \comment{The symbol `$\bumpeq$'.} +\endsetslot + +\setslot{geomequivalent} + \comment{The symbol `$\Bumpeq$'.} +\endsetslot + +\setslot{muchless} + \comment{The symbol `$\lll$'.} +\endsetslot + +\setslot{muchgreater} + \comment{The symbol `$\ggg$'.} +\endsetslot + +\setslot{rightanglenw} + \comment{The symbol `$\ulcorner$'.} +\endsetslot + +\setslot{rightanglene} + \comment{The symbol `$\urcorner$'.} +\endsetslot + +\setslot{circledR} % circleR + \comment{The symbol `$\circledR$'.} +\endsetslot + +\setslot{circledS} % circleS + \comment{The symbol `$\circledS$'.} +\endsetslot + +\setslot{fork} + \comment{The symbol `$\pitchfork$'.} +\endsetslot + +\setslot{dotplus} + \comment{The symbol `$\dotplus$'.} +\endsetslot + +\setslot{revsimilar} + \comment{The symbol `$\backsim$'.} +\endsetslot + +\setslot{revasymptequal} + \comment{The symbol `$\backsimeq$'.} +\endsetslot + +\setslot{rightanglesw} + \comment{The symbol `$\llcorner$'.} +\endsetslot + +\setslot{rightanglese} + \comment{The symbol `$\lrcorner$'.} +\endsetslot + +\setslot{maltesecross} + \comment{The symbol `$\maltese$'.} +\endsetslot + +\setslot{complement} + \comment{The symbol `$\complement$'.} +\endsetslot + +\setslot{intercal} + \comment{The symbol `$\intercal$'.} +\endsetslot + +\setslot{circlecirc} % circlering ??? + \comment{The symbol `$\circledcirc$'.} +\endsetslot + +\setslot{circleasterisk} + \comment{The symbol `$\circledast$'.} +\endsetslot + +\setslot{circledash} % circleminus ??? + \comment{The symbol `$\circleddash$'.} +\endsetslot + +\endencoding + +\section{Changes} + +2001/01/10: File added to \textsf{fontinst} distribution, description +of workaround for codingscheme bug in \texttt{msam} fonts changed, +intermediate variables for fontdimens 8--22 introduced, and some minor +markup changes were made. (LH) + +\end{multicols} + +\end{document} + diff --git a/Master/texmf-dist/tex/fontinst/mathetx/msbm.etx b/Master/texmf-dist/tex/fontinst/mathetx/msbm.etx new file mode 100644 index 00000000000..d58bd8cfb2e --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathetx/msbm.etx @@ -0,0 +1,619 @@ +\relax + +\documentclass[twocolumn]{article} + +\usepackage{fontdoc} +\usepackage{amssymb} +\usepackage{multicol} + +\title{The AMS \texttt{msbm} symbol encoding vector} +\author{Mattias Clasen, modifications by Ulrik Vieth} + +\begin{document}\onecolumn + +\maketitle + +\section{Introduction} + +This document describes the AMS \texttt{msbm} symbol encoding, which +is unfortunately called \texttt{TEX MATH SYMBOLS} in the \texttt{.tfm} +files although it has nothing to do with the encoding of +\texttt{cmsy}. To overcome this difficulty use e.g.\ \texttt{msbm10} +like +\begin{quote} + \textellipsis + \verb|,\metrics\generalpltomtx{msbm10}{msbm10}{pl}{msbm},msbm10,|% + \textellipsis +\end{quote} +in the \textit{file list} argument of \verb+\installfont+, or generate +the \texttt{.mtx} file at some point before the \verb|\installfont| +command. + +Most glyph names were revised to match the names used in the +\texttt{.afm} files of the BlueSky Type~1 fonts, except for a few +cases where those glyph names were found to be confusing or +misleading. + +\showbranches +\begin{multicols}{2} + +\encoding + +\begincomment +\section{Default values} +\endcomment + +\setstr{codingscheme}{AMS Math Symbols, Part B} + +\setint{italicslant}{0} + +\ifisglyph{x}\then + \setint{xheight}{\height{x}} +\Else + \setint{xheight}{500} +\Fi + +\comment{The following font dimension defaults are taken from +\texttt{cmsy10}.} + +\setint{num1}{677} +\setint{num2}{394} +\setint{num3}{444} +\setint{denom1}{686} +\setint{denom2}{345} +\setint{sup1}{413} +\setint{sup2}{363} +\setint{sup3}{289} +\setint{sub1}{150} +\setint{sub2}{247} +\setint{supdrop}{386} +\setint{subdrop}{50} +\setint{delim1}{2390} +\setint{delim2}{1010} +\setint{axisheight}{250} + + +\begincomment +\section{Default font dimensions} +\endcomment + +\setint{fontdimen(1)}{\int{italicslant}} % italic slant +\setint{fontdimen(2)}{0} % interword space +\setint{fontdimen(3)}{0} % interword stretch +\setint{fontdimen(4)}{0} % interword shrink +\setint{fontdimen(5)}{\int{xheight}} % x-height +\setint{fontdimen(6)}{1000} % quad +\setint{fontdimen(7)}{0} % extra space after . + +\setint{fontdimen(8)}{\int{num1}} % num 1 +\setint{fontdimen(9)}{\int{num2}} % num 2 +\setint{fontdimen(10)}{\int{num3}} % num 3 +\setint{fontdimen(11)}{\int{denom1}} % denom 1 +\setint{fontdimen(12)}{\int{denom2}} % denom 2 +\setint{fontdimen(13)}{\int{sup1}} % sup 1 +\setint{fontdimen(14)}{\int{sup2}} % sup 2 +\setint{fontdimen(15)}{\int{sup3}} % sup 3 +\setint{fontdimen(16)}{\int{sub1}} % sub 1 +\setint{fontdimen(17)}{\int{sub2}} % sub 2 +\setint{fontdimen(18)}{\int{supdrop}} % supdrop +\setint{fontdimen(19)}{\int{subdrop}} % subdrop +\setint{fontdimen(20)}{\int{delim1}} % delim 1 +\setint{fontdimen(21)}{\int{delim2}} % delim 2 +\setint{fontdimen(22)}{\int{axisheight}} % math axis height + + +\begincomment +\section{The encoding} +There are 128 glyphs in this encoding. +\endcomment + +\setslot{lessnotvertequal} % lessornotequal + \comment{The symbol `$\lvertneqq$'.} +\endsetslot + +\setslot{greaternotvertequal} % greaterornotequal + \comment{The symbol `$\gvertneqq$'.} +\endsetslot + +\setslot{notlessequal} + \comment{The symbol `$\nleq$'.} +\endsetslot + +\setslot{notgreaterequal} + \comment{The symbol `$\ngeq$'.} +\endsetslot + +\setslot{notless} + \comment{The symbol `$\nless$'.} +\endsetslot + +\setslot{notgreater} + \comment{The symbol `$\ngtr$'.} +\endsetslot + +\setslot{notprecedes} + \comment{The symbol `$\nprec$'.} +\endsetslot + +\setslot{notfollows} + \comment{The symbol `$\nsucc$'.} +\endsetslot + +\setslot{lessornotdbleql} + \comment{The symbol `$\lneqq$'.} +\endsetslot + +\setslot{greaterornotdbleql} + \comment{The symbol `$\gneqq$'.} +\endsetslot + +\setslot{notlessorequalslant} % was: notlessorslnteql + \comment{The symbol `$\nleqslant$'.} +\endsetslot + +\setslot{notgreaterorequalslant} % was: notgreaterorslnteql + \comment{The symbol `$\ngeqslant$'.} +\endsetslot + +\setslot{lessnotequal} + \comment{The symbol `$\lneq$'.} +\endsetslot + +\setslot{greaternotequal} + \comment{The symbol `$\gneq$'.} +\endsetslot + +\setslot{notprecedesoreql} + \comment{The symbol `$\npreceq$'.} +\endsetslot + +\setslot{notfollowsoreql} + \comment{The symbol `$\nsucceq$'.} +\endsetslot + +\setslot{precedesornotsimilar} % was: precedesornoteqvlnt + \comment{The symbol `$\precnsim$'.} +\endsetslot + +\setslot{followsornotsimilar} % was: followornoteqvlnt + \comment{The symbol `$\succnsim$'.} +\endsetslot + +\setslot{lessornotsimilar} + \comment{The symbol `$\lnsim$'.} +\endsetslot + +\setslot{greaterornotsimilar} + \comment{The symbol `$\gnsim$'.} +\endsetslot + +\setslot{notlessdblequal} + \comment{The symbol `$\nleqq$'.} +\endsetslot + +\setslot{notgreaterdblequal} + \comment{The symbol `$\ngeqq$'.} +\endsetslot + +\setslot{precedesnotdbleql} % was: precedesnotslnteql + \comment{The symbol `$\precneqq$'.} +\endsetslot + +\setslot{followsnotdbleql} % was: followsnotslnteql + \comment{The symbol `$\succneqq$'.} +\endsetslot + +\setslot{precedesnotapproxeql} % was: precedesnotdbleqv + \comment{The symbol `$\precnapprox$'.} +\endsetslot + +\setslot{followsnotapproxeql} % was: followsnotdbleqv + \comment{The symbol `$\succnapprox$'.} +\endsetslot + +\setslot{lessnotapproxeql} % was: lessnotdblequal + \comment{The symbol `$\lnapprox$'.} +\endsetslot + +\setslot{greaternotapproxeql} % was: greaternotdblequal + \comment{The symbol `$\gnapprox$'.} +\endsetslot + +\setslot{notsimilar} + \comment{The symbol `$\nsim$'.} +\endsetslot + +\setslot{notcongruent} % was: notapproxequual + \comment{The symbol `$\ncong$'.} +\endsetslot + +\setslot{upslope} + \comment{The symbol `$\diagup$'.} +\endsetslot + +\setslot{downslope} + \comment{The symbol `$\diagdown$'.} +\endsetslot + +\setslot{notsubsetoreql} + \comment{The symbol `$\varsubsetneq$'.} +\endsetslot + +\setslot{notsupersetoreql} + \comment{The symbol `$\varsupsetneq$'.} +\endsetslot + +\setslot{notsubsetordbleql} + \comment{The symbol `$\nsubseteqq$'.} +\endsetslot + +\setslot{notsupersetordbleql} + \comment{The symbol `$\nsupseteqq$'.} +\endsetslot + +\setslot{subsetornoteql} + \comment{The symbol `$\varsubsetneqq$'.} +\endsetslot + +\setslot{supersetornoteql} + \comment{The symbol `$\varsupsetneqq$'.} +\endsetslot + +\setslot{subsetornotdbleql} + \comment{The symbol `$\subsetneqq$'.} +\endsetslot + +\setslot{supersetornotdbleql} + \comment{The symbol `$\supsetneqq$'.} +\endsetslot + +\setslot{subsetnoteql} + \comment{The symbol `$\subsetneq$'.} +\endsetslot + +\setslot{supersetnoteql} + \comment{The symbol `$\supsetneq$'.} +\endsetslot + +\setslot{notsubseteql} + \comment{The symbol `$\nsubseteq$'.} +\endsetslot + +\setslot{notsuperseteql} + \comment{The symbol `$\nsupseteq$'.} +\endsetslot + +\setslot{notparallel} + \comment{The symbol `$\nparallel$'.} +\endsetslot + +\setslot{notbar} + \comment{The symbol `$\nmid$'.} +\endsetslot + +\setslot{notshortbar} + \comment{The symbol `$\nshortmid$'.} +\endsetslot + +\setslot{notshortparallel} + \comment{The symbol `$\nshortparallel$'.} +\endsetslot + +\setslot{notturnstile} + \comment{The symbol `$\nvdash$'.} +\endsetslot + +\setslot{notforces} + \comment{The symbol `$\nVdash$'.} +\endsetslot + +\setslot{notsatisfies} + \comment{The symbol `$\nvDash$'.} +\endsetslot + +\setslot{notforcesextra} + \comment{The symbol `$\nVDash$'.} +\endsetslot + +\setslot{nottriangeqlright} + \comment{The symbol `$\ntrianglerighteq$'.} +\endsetslot + +\setslot{nottriangeqlleft} + \comment{The symbol `$\ntrianglelefteq$'.} +\endsetslot + +\setslot{nottriangleleft} + \comment{The symbol `$\ntriangleleft$'.} +\endsetslot + +\setslot{nottriangleright} + \comment{The symbol `$\ntriangleright$'.} +\endsetslot + +\setslot{notarrowleft} + \comment{The symbol `$\nleftarrow$'.} +\endsetslot + +\setslot{notarrowright} + \comment{The symbol `$\nrightarrow$'.} +\endsetslot + +\setslot{notdblarrowleft} + \comment{The symbol `$\nLeftarrow$'.} +\endsetslot + +\setslot{notdblarrowright} + \comment{The symbol `$\nRightarrow$'.} +\endsetslot + +\setslot{notdblarrowboth} + \comment{The symbol `$\nLeftrightarrow$'.} +\endsetslot + +\setslot{notarrowboth} + \comment{The symbol `$\nleftrightarrow$'.} +\endsetslot + +\setslot{dividemultiply} + \comment{The symbol `$\divideontimes$'.} +\endsetslot + +\setslot{emptyset} + \comment{The symbol `$\varnothing$'.} +\endsetslot + +\setslot{notexistential} + \comment{The symbol `$\nexists$'.} +\endsetslot + +\setslot{Abbb} + \comment{The letter `$\mathbb{A}$'.} +\endsetslot + +\setslot{Bbbb} + \comment{The letter `$\mathbb{B}$'.} +\endsetslot + +\setslot{Cbbb} + \comment{The letter `$\mathbb{C}$'.} +\endsetslot + +\setslot{Dbbb} + \comment{The letter `$\mathbb{D}$'.} +\endsetslot + +\setslot{Ebbb} + \comment{The letter `$\mathbb{E}$'.} +\endsetslot + +\setslot{Fbbb} + \comment{The letter `$\mathbb{F}$'.} +\endsetslot + +\setslot{Gbbb} + \comment{The letter `$\mathbb{G}$'.} +\endsetslot + +\setslot{Hbbb} + \comment{The letter `$\mathbb{H}$'.} +\endsetslot + +\setslot{Ibbb} + \comment{The letter `$\mathbb{I}$'.} +\endsetslot + +\setslot{Jbbb} + \comment{The letter `$\mathbb{J}$'.} +\endsetslot + +\setslot{Kbbb} + \comment{The letter `$\mathbb{K}$'.} +\endsetslot + +\setslot{Lbbb} + \comment{The letter `$\mathbb{L}$'.} +\endsetslot + +\setslot{Mbbb} + \comment{The letter `$\mathbb{M}$'.} +\endsetslot + +\setslot{Nbbb} + \comment{The letter `$\mathbb{N}$'.} +\endsetslot + +\setslot{Obbb} + \comment{The letter `$\mathbb{O}$'.} +\endsetslot + +\setslot{Pbbb} + \comment{The letter `$\mathbb{P}$'.} +\endsetslot + +\setslot{Qbbb} + \comment{The letter `$\mathbb{Q}$'.} +\endsetslot + +\setslot{Rbbb} + \comment{The letter `$\mathbb{R}$'.} +\endsetslot + +\setslot{Sbbb} + \comment{The letter `$\mathbb{S}$'.} +\endsetslot + +\setslot{Tbbb} + \comment{The letter `$\mathbb{T}$'.} +\endsetslot + +\setslot{Ubbb} + \comment{The letter `$\mathbb{U}$'.} +\endsetslot + +\setslot{Vbbb} + \comment{The letter `$\mathbb{V}$'.} +\endsetslot + +\setslot{Wbbb} + \comment{The letter `$\mathbb{W}$'.} +\endsetslot + +\setslot{Xbbb} + \comment{The letter `$\mathbb{X}$'.} +\endsetslot + +\setslot{Ybbb} + \comment{The letter `$\mathbb{Y}$'.} +\endsetslot + +\setslot{Zbbb} + \comment{The letter `$\mathbb{Z}$'.} +\endsetslot + +\setslot{hatwide} + \nextlarger{hatwider} +\endsetslot + +\setslot{hatwider} +\endsetslot + +\setslot{tildewide} + \nextlarger{tildewider} +\endsetslot + +\setslot{tildewider} +\endsetslot + +\nextslot{96} + +\setslot{Finv} + \comment{The symbol `$\Finv$'.} +\endsetslot + +\setslot{Gmir} + \comment{The symbol `$\Game$'.} +\endsetslot + +\nextslot{102} + +\setslot{Omegainv} + \comment{The symbol `$\mho$'.} +\endsetslot + +\setslot{eth} + \comment{The symbol `$\eth$'.} +\endsetslot + +\setslot{equalorsimilar} + \comment{The symbol `$\eqsim$'.} +\endsetslot + +\setslot{beth} + \comment{The symbol `$\beth$'.} +\endsetslot + +\setslot{gimel} + \comment{The symbol `$\gimel$'.} +\endsetslot + +\setslot{daleth} + \comment{The symbol `$\daleth$'.} +\endsetslot + +\setslot{lessdot} + \comment{The symbol `$\lessdot$'.} +\endsetslot + +\setslot{greaterdot} + \comment{The symbol `$\gtrdot$'.} +\endsetslot + +\setslot{multicloseleft} + \comment{The symbol `$\ltimes$'.} +\endsetslot + +\setslot{multicloseright} + \comment{The symbol `$\rtimes$'.} +\endsetslot + +\setslot{shortbar} % was: barshort + \comment{The symbol `$\shortmid$'.} +\endsetslot + +\setslot{shortparallel} % was: parallelshort + \comment{The symbol `$\shortparallel$'.} +\endsetslot + +\setslot{integerdivide} + \comment{The symbol `$\smallsetminus$'.} +\endsetslot + +\setslot{thicksimilar} % similar ??? + \comment{The symbol `$\thicksim$'.} +\endsetslot + +\setslot{thickapproxequal} % approxequal ??? + \comment{The symbol `$\thickapprox$'.} +\endsetslot + +\setslot{approxorequal} + \comment{The symbol `$\approxeq$'.} +\endsetslot + +\setslot{followsorapproxeql} % was: followsorequal + \comment{The symbol `$\succapprox$'.} +\endsetslot + +\setslot{precedesorapproxeql} % was: precedesorequal + \comment{The symbol `$\precapprox$'.} +\endsetslot + +\setslot{archleftdown} + \comment{The symbol `$\curvearrowleft$'.} +\endsetslot + +\setslot{archrightdown} + \comment{The symbol `$\curvearrowright$'.} +\endsetslot + +\setslot{digamma} + \comment{The symbol `$\digamma$'.} +\endsetslot + +\setslot{kappa1} + \comment{The symbol `$\varkappa$'.} +\endsetslot + +\setslot{kbbb} + \comment{The symbol `$\Bbbk$'.} +\endsetslot + +\setslot{hslash} + \comment{The symbol `$\hslash$'.} +\endsetslot + +\setslot{hbar} + \comment{The symbol `$\hbar$'.} +\endsetslot + +\setslot{suchthat} % was: epsiloninv + \comment{The symbol `$\backepsilon$'.} +\endsetslot + +\endencoding + + +\section{Changes} + +2001/01/10: File added to \textsf{fontinst} distribution, description +of workaround for codingscheme bug in \texttt{msbm} fonts changed, +intermediate variables for fontdimens 8--22 introduced, and some minor +markup changes were made. (LH) + +\end{multicols} +\end{document} + + + + diff --git a/Master/texmf-dist/tex/fontinst/mathetx/oml.etx b/Master/texmf-dist/tex/fontinst/mathetx/oml.etx new file mode 100644 index 00000000000..eee628677af --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathetx/oml.etx @@ -0,0 +1,625 @@ +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = "Alan Jeffrey and Ulrik Vieth and +%%% Lars Hellstr{\"o}m", +%%% version = "1.921", +%%% date = "2002-07-27", +%%% time = "01:19:07 +02:00", +%%% filename = "oml.etx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/index.html", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, math, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the old math italic encoding as a TeX +%%% font encoding file, for use with the fontinst +%%% utility.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[1999/11/04] + +\title{The \TeX\ math italic encoding vector} +\author{Alan Jeffrey, Ulrik Vieth, Lars Hellstr\"om} +\date{27 July 2002\\Version 1.921} + +\begin{document} +\maketitle + +\section{Introduction} + +This document describes the \TeX\ math italic (OML) encoding. + +\showbranches +\encoding + +\needsfontinstversion{1.917} + +\begincomment +\section{Default values} +\endcomment + +\setstr{codingscheme}{TEX MATH ITALIC} +\setstr{encodingname}{TeXMathItalicEncoding} + +\setint{italicslant}{0} +\setint{interword}{0} % interword space +\setint{stretchword}{0} % interword stretch +\setint{shrinkword}{0} % interword shrink + +\ifisglyph{x}\then + \setint{xheight}{\height{x}} +\Else + \setint{xheight}{500} +\Fi + +\setint{quad}{1000} % quad +\setint{extraspace}{0} % extra space after . + +\begincomment +\section{Font dimensions}} +\endcomment + +\setfontdimen{1}{italicslant} % italic slant +\setfontdimen{2}{interword} % interword space +\setfontdimen{3}{stretchword} % interword stretch +\setfontdimen{4}{shrinkword} % interword shrink +\setfontdimen{5}{xheight} % x-height +\setfontdimen{6}{quad} % quad +\setfontdimen{7}{extraspace} % extra space after . + + + +\begincomment +\section{The encoding} +There are 128 glyphs in this encoding. +\endcomment + +\setslot{Gamma} + \comment{The greek letter `$\Gamma$'.} +\endsetslot + +\setslot{Delta} + \comment{The greek letter `$\Delta$'.} +\endsetslot + +\setslot{Theta} + \comment{The greek letter `$\Theta$'.} +\endsetslot + +\setslot{Lambda} + \comment{The greek letter `$\Lambda$'.} +\endsetslot + +\setslot{Xi} + \comment{The greek letter `$\Xi$'.} +\endsetslot + +\setslot{Pi} + \comment{The greek letter `$\Pi$'.} +\endsetslot + +\setslot{Sigma} + \comment{The greek letter `$\Sigma$'.} +\endsetslot + +\setslot{Upsilon} + \comment{The greek letter `$\Upsilon$' named `Upsilon1' by Adobe.} +\endsetslot + +\setslot{Phi} + \comment{The greek letter `$\Phi$'.} +\endsetslot + +\setslot{Psi} + \comment{The greek letter `$\Psi$'.} +\endsetslot + +\setslot{Omega} + \comment{The greek letter `$\Omega$'.} +\endsetslot + +\setslot{alpha} + \comment{The greek letter `$\alpha$'.} +\endsetslot + +\setslot{beta} + \comment{The greek letter `$\beta$'.} +\endsetslot + +\setslot{gamma} + \comment{The greek letter `$\gamma$'.} +\endsetslot + +\setslot{delta} + \comment{The greek letter `$\delta$'.} +\endsetslot + +\setslot{epsilon1} + \comment{The greek letter `$\epsilon$'.} +\endsetslot + +\setslot{zeta} + \comment{The greek letter `$\zeta$'.} +\endsetslot + +\setslot{eta} + \comment{The greek letter `$\eta$'.} +\endsetslot + +\setslot{theta} + \comment{The greek letter `$\theta$'.} +\endsetslot + +\setslot{iota} + \comment{The greek letter `$\iota$'.} +\endsetslot + +\setslot{kappa} + \comment{The greek letter `$\kappa$'.} +\endsetslot + +\setslot{lambda} + \comment{The greek letter `$\lambda$'.} +\endsetslot + +\setslot{mu} + \comment{The greek letter `$\mu$'.} +\endsetslot + +\setslot{nu} + \comment{The greek letter `$\nu$'.} +\endsetslot + +\setslot{xi} + \comment{The greek letter `$\xi$'.} +\endsetslot + +\setslot{pi} + \comment{The greek letter `$\pi$'.} +\endsetslot + +\setslot{rho} + \comment{The greek letter `$\rho$'.} +\endsetslot + +\setslot{sigma} + \comment{The greek letter `$\sigma$'.} +\endsetslot + +\setslot{tau} + \comment{The greek letter `$\tau$'.} +\endsetslot + +\setslot{upsilon} + \comment{The greek letter `$\upsilon$'.} +\endsetslot + +\setslot{phi} + \comment{The greek letter `$\phi$'.} +\endsetslot + +\setslot{chi} + \comment{The greek letter `$\chi$'.} +\endsetslot + +\setslot{psi} + \comment{The greek letter `$\psi$'.} +\endsetslot + +\setslot{omega} + \comment{The greek letter `$\omega$'.} +\endsetslot + +\setslot{epsilon} + \comment{The greek letter `$\varepsilon$'.} +\endsetslot + +\setslot{theta1} + \comment{The greek letter `$\vartheta$'.} +\endsetslot + +\setslot{pi1} + \comment{The greek letter `$\varpi$', rather unfortunately named + `omega1' by Adobe.} +\endsetslot + +\setslot{rho1} + \comment{The greek letter `$\varrho$'.} +\endsetslot + +\setslot{sigma1} + \comment{The greek letter `$\varsigma$'.} +\endsetslot + +\setslot{phi1} + \comment{The greek letter `$\varphi$'.} +\endsetslot + +\setslot{harpoonleftup} + \comment{The harpoon symbol `$\leftharpoonup$', + named `arrowlefttophalf' in MathTime and Lucida New Math.} +\endsetslot + +\setslot{harpoonleftdown} + \comment{The harpoon symbol `$\leftharpoondown$', + named `arrowleftbothalf' in MathTime and Lucida New Math.} +\endsetslot + +\setslot{harpoonrightup} + \comment{The harpoon symbol `$\rightharpoonup$', + named `arrowrighttophalf' in MathTime and Lucida New Math.} +\endsetslot + +\setslot{harpoonrightdown} + \comment{The harpoon symbol `$\rightharpoondown$', + named `arrowrightbothalf' in MathTime and Lucida New Math.} +\endsetslot + +\setslot{hookrightchar} + \comment{The building block for `$\hookrightarrow$', + named `arrowhookleft' in MathTime and Lucida New Math.} +\endsetslot + +\setslot{hookleftchar} + \comment{The building block for `$\hookleftarrow$', + named `arrowhookright' in MathTime and Lucida New Math.} +\endsetslot + +\setslot{triangleright} + \comment{The triangle symbol `$\triangleright$'.} +\endsetslot + +\setslot{triangleleft} + \comment{The triangle symbol `$\triangleleft$'.} +\endsetslot + +\setslot{zerooldstyle} + \comment{The oldstyle digit zero `0'.} +\endsetslot + +\setslot{oneoldstyle} + \comment{The oldstyle digit one `1'.} +\endsetslot + +\setslot{twooldstyle} + \comment{The oldstyle digit two `2'.} +\endsetslot + +\setslot{threeoldstyle} + \comment{The oldstyle digit three `3'.} +\endsetslot + +\setslot{fouroldstyle} + \comment{The oldstyle digit four `4'.} +\endsetslot + +\setslot{fiveoldstyle} + \comment{The oldstyle digit five `5'.} +\endsetslot + +\setslot{sixoldstyle} + \comment{The oldstyle digit six `6'.} +\endsetslot + +\setslot{sevenoldstyle} + \comment{The oldstyle digit seven `7'.} +\endsetslot + +\setslot{eightoldstyle} + \comment{The oldstyle digit eight `8'.} +\endsetslot + +\setslot{nineoldstyle} + \comment{The oldstyle digit nine `9'.} +\endsetslot + +\setslot{period} + \comment{The period `$.$'.} +\endsetslot + +\setslot{comma} + \comment{The comma `$,$'.} +\endsetslot + +\setslot{less} + \comment{The less-than sign `$<$'.} +\endsetslot + +\setslot{slash} + \comment{The forwards oblique `$/$'.} +\endsetslot + +\setslot{greater} + \comment{The greater-than sign `$>$'.} +\endsetslot + +\setslot{star} + \comment{The star symbol `$\star$'.} +\endsetslot + +\setslot{partialdiff} + \comment{The partial differentiation symbol `$\partial$'.} +\endsetslot + +\setslot{A} + \comment{The letter `$\mathnormal{A}$'.} +\endsetslot + +\setslot{B} + \comment{The letter `$\mathnormal{B}$'.} +\endsetslot + +\setslot{C} + \comment{The letter `$\mathnormal{C}$'.} +\endsetslot + +\setslot{D} + \comment{The letter `$\mathnormal{D}$'.} +\endsetslot + +\setslot{E} + \comment{The letter `$\mathnormal{E}$'.} +\endsetslot + +\setslot{F} + \comment{The letter `$\mathnormal{F}$'.} +\endsetslot + +\setslot{G} + \comment{The letter `$\mathnormal{G}$'.} +\endsetslot + +\setslot{H} + \comment{The letter `$\mathnormal{H}$'.} +\endsetslot + +\setslot{I} + \comment{The letter `$\mathnormal{I}$'.} +\endsetslot + +\setslot{J} + \comment{The letter `$\mathnormal{J}$'.} +\endsetslot + +\setslot{K} + \comment{The letter `$\mathnormal{K}$'.} +\endsetslot + +\setslot{L} + \comment{The letter `$\mathnormal{L}$'.} +\endsetslot + +\setslot{M} + \comment{The letter `$\mathnormal{M}$'.} +\endsetslot + +\setslot{N} + \comment{The letter `$\mathnormal{N}$'.} +\endsetslot + +\setslot{O} + \comment{The letter `$\mathnormal{O}$'.} +\endsetslot + +\setslot{P} + \comment{The letter `$\mathnormal{P}$'.} +\endsetslot + +\setslot{Q} + \comment{The letter `$\mathnormal{Q}$'.} +\endsetslot + +\setslot{R} + \comment{The letter `$\mathnormal{R}$'.} +\endsetslot + +\setslot{S} + \comment{The letter `$\mathnormal{S}$'.} +\endsetslot + +\setslot{T} + \comment{The letter `$\mathnormal{T}$'.} +\endsetslot + +\setslot{U} + \comment{The letter `$\mathnormal{U}$'.} +\endsetslot + +\setslot{V} + \comment{The letter `$\mathnormal{V}$'.} +\endsetslot + +\setslot{W} + \comment{The letter `$\mathnormal{W}$'.} +\endsetslot + +\setslot{X} + \comment{The letter `$\mathnormal{X}$'.} +\endsetslot + +\setslot{Y} + \comment{The letter `$\mathnormal{Y}$'.} +\endsetslot + +\setslot{Z} + \comment{The letter `$\mathnormal{Z}$'.} +\endsetslot + +\setslot{flat} + \comment{The flat musical symbol `$\flat$'.} +\endsetslot + +\setslot{natural} + \comment{The natural musical symbol `$\natural$'.} +\endsetslot + +\setslot{sharp} + \comment{The sharp musical symbol `$\sharp$'.} +\endsetslot + +\setslot{slurbelow} + \comment{The slur symbol `$\smile$'.} +\endsetslot + +\setslot{slurabove} + \comment{The slur symbol `$\frown$'.} +\endsetslot + +\setslot{lscript} + \comment{The script letter `$\ell$'.} +\endsetslot + +\setslot{a} + \comment{The letter `$\mathnormal{a}$'.} +\endsetslot + +\setslot{b} + \comment{The letter `$\mathnormal{b}$'.} +\endsetslot + +\setslot{c} + \comment{The letter `$\mathnormal{c}$'.} +\endsetslot + +\setslot{d} + \comment{The letter `$\mathnormal{d}$'.} +\endsetslot + +\setslot{e} + \comment{The letter `$\mathnormal{e}$'.} +\endsetslot + +\setslot{f} + \comment{The letter `$\mathnormal{f}$'.} +\endsetslot + +\setslot{g} + \comment{The letter `$\mathnormal{g}$'.} +\endsetslot + +\setslot{h} + \comment{The letter `$\mathnormal{h}$'.} +\endsetslot + +\setslot{i} + \comment{The letter `$\mathnormal{i}$'.} +\endsetslot + +\setslot{j} + \comment{The letter `$\mathnormal{j}$'.} +\endsetslot + +\setslot{k} + \comment{The letter `$\mathnormal{k}$'.} +\endsetslot + +\setslot{l} + \comment{The letter `$\mathnormal{l}$'.} +\endsetslot + +\setslot{m} + \comment{The letter `$\mathnormal{m}$'.} +\endsetslot + +\setslot{n} + \comment{The letter `$\mathnormal{n}$'.} +\endsetslot + +\setslot{o} + \comment{The letter `$\mathnormal{o}$'.} +\endsetslot + +\setslot{p} + \comment{The letter `$\mathnormal{p}$'.} +\endsetslot + +\setslot{q} + \comment{The letter `$\mathnormal{q}$'.} +\endsetslot + +\setslot{r} + \comment{The letter `$\mathnormal{r}$'.} +\endsetslot + +\setslot{s} + \comment{The letter `$\mathnormal{s}$'.} +\endsetslot + +\setslot{t} + \comment{The letter `$\mathnormal{t}$'.} +\endsetslot + +\setslot{u} + \comment{The letter `$\mathnormal{u}$'.} +\endsetslot + +\setslot{v} + \comment{The letter `$\mathnormal{v}$'.} +\endsetslot + +\setslot{w} + \comment{The letter `$\mathnormal{w}$'.} +\endsetslot + +\setslot{x} + \comment{The letter `$\mathnormal{x}$'.} +\endsetslot + +\setslot{y} + \comment{The letter `$\mathnormal{y}$'.} +\endsetslot + +\setslot{z} + \comment{The letter `$\mathnormal{z}$'.} +\endsetslot + +\setslot{dotlessi} + \comment{The dotless letter `$\imath$'.} +\endsetslot + +\setslot{dotlessj} + \comment{The dotless letter `$\jmath$'.} +\endsetslot + +\setslot{weierstrass} + \comment{The Weierstrass P symbol `$\wp$'.} +\endsetslot + +\setslot{vector} + \comment{The vector accent symbol `$\vec{x}$'.} +\endsetslot + +\setslot{tie} + \comment{The tie accent symbol `\t oo'.} +\endsetslot + +\endencoding + +\section{Changes} + + +29 Dec 1993, v\,1.30: Created file. + +03 Jan 1994, v\,1.301: Moved from ltugboat class to article. + +09 Jan 1994, v\,1.305: Renamed some glyphs to use the same glyph names + as Lucida New Math. + +10 Jun 1998, v\,1.800: Really use the same names as Lucida New Math. + Correct ordering of `flat', `natural', `sharp'. + +03 Oct 2000, v\,1.915: Minor markup changes (LH). + +06 Oct 2000, v\,1.915: Added \texttt{encodingname} (same as in + \texttt{texmital.enc}). (LH) + +27 Jul 2002, v\,1.921: Using \verb"\setfontdimen" for specifying + fontdimens. (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/mathetx/oms.etx b/Master/texmf-dist/tex/fontinst/mathetx/oms.etx new file mode 100644 index 00000000000..7bed129bd57 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathetx/oms.etx @@ -0,0 +1,672 @@ +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = "Alan Jeffrey and Ulrik Vieth and +%%% Lars Hellstr{\"o}m", +%%% version = "1.921", +%%% date = "2002-07-27", +%%% time = "18:42:33 +02:00", +%%% filename = "oms.etx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/index.html", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, math, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the old math symbol encoding as a TeX +%%% font encoding file, for use with the fontinst +%%% utility.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[2001/03/16] + +\title{The \TeX\ math symbol encoding vector} +\author{Alan Jeffrey, Ulrik Vieth} +\date{27 July 2002\\Version 1.921} + +\begin{document} +\maketitle + +\section{Introduction} + +This document describes the \TeX\ math symbol (OMS) encoding. + +\showbranches +\encoding + +\needsfontinstversion{1.917} + + +\begincomment +\section{Default values} +\endcomment + +\setstr{codingscheme}{TEX MATH SYMBOLS} +\setstr{encodingname}{TeXMathSymbolEncoding} + +\setint{italicslant}{0} +\setint{interword}{0} +\setint{stretchword}{0} +\setint{shrinkword}{0} +\ifisglyph{x}\then + \setint{xheight}{\height{x}} +\Else + \setint{xheight}{500} +\Fi +\setint{quad}{1000} +\setint{extraspace}{0} + + +\comment{The following font dimension defaults are taken from +\texttt{cmsy10}.} + +\setint{num1}{677} +\setint{num2}{394} +\setint{num3}{444} +\setint{denom1}{686} +\setint{denom2}{345} +\setint{sup1}{413} +\setint{sup2}{363} +\setint{sup3}{289} +\setint{sub1}{150} +\setint{sub2}{247} +\setint{supdrop}{386} +\setint{subdrop}{50} +\setint{delim1}{2390} +\setint{delim2}{1010} +\setint{axisheight}{250} + +\begincomment +\section{Font dimensions} +\endcomment + +\setfontdimen{1}{italicslant} % italic slant +\setfontdimen{2}{interword} % interword space +\setfontdimen{3}{stretchword} % interword stretch +\setfontdimen{4}{shrinkword} % interword shrink +\setfontdimen{5}{xheight} % x-height +\setfontdimen{6}{quad} % quad +\setfontdimen{7}{extraspace} % extra space after . + +\setfontdimen{8}{num1} % num 1 +\setfontdimen{9}{num2} % num 2 +\setfontdimen{10}{num3} % num 3 +\setfontdimen{11}{denom1} % denom 1 +\setfontdimen{12}{denom2} % denom 2 +\setfontdimen{13}{sup1} % sup 1 +\setfontdimen{14}{sup2} % sup 2 +\setfontdimen{15}{sup3} % sup 3 +\setfontdimen{16}{sub1} % sub 1 +\setfontdimen{17}{sub2} % sub 2 +\setfontdimen{18}{supdrop} % supdrop +\setfontdimen{19}{subdrop} % subdrop +\setfontdimen{20}{delim1} % delim 1 +\setfontdimen{21}{delim2} % delim 2 +\setfontdimen{22}{axisheight} % math axis height + + +\begincomment +\section{The encoding} +There are 128 glyphs in this encoding. +\endcomment + +\setslot{minus} + \comment{The subtraction symbol `$-$'.} +\endsetslot + +\setslot{periodcentered} + \comment{The centered dot symbol `$\cdot$'. + It is called `dotmath' in Adobe Symbol.} +\endsetslot + +\setslot{multiply} + \comment{The multiplication symbol `$\times$'.} +\endsetslot + +\setslot{asteriskmath} + \comment{The centered asterisk symbol `$*$'.} +\endsetslot + +\setslot{divide} + \comment{The division symbol `$\plaindiv$'.} +\endsetslot + +\setslot{diamondmath} + \comment{The diamond symbol `$\diamond$'.} +\endsetslot + +\setslot{plusminus} + \comment{The plus or minus symbol `$\pm$'.} +\endsetslot + +\setslot{minusplus} + \comment{The minus or plus symbol `$\mp$'.} +\endsetslot + +\setslot{circleplus} + \comment{The circled plus symbol `$\oplus$'.} +\endsetslot + +\setslot{circleminus} + \comment{The circled minus symbol `$\ominus$'.} +\endsetslot + +\setslot{circlemultiply} + \comment{The circled multiplication symbol `$\otimes$'.} +\endsetslot + +\setslot{circledivide} + \comment{The circled oblique symbol `$\oslash$'.} +\endsetslot + +\setslot{circledot} + \comment{The circled dot symbol `$\odot$'.} +\endsetslot + +\setslot{circlecopyrt} + \comment{The large circle symbol `$\bigcirc$' used for building the + copyright symbol `\copyright'.} +\endsetslot + +\setslot{openbullet} + \comment{The circle symbol `$\circ$'.} +\endsetslot + +\setslot{bullet} + \comment{The bullet symbol `$\bullet$'.} +\endsetslot + +\setslot{equivasymptotic} + \comment{The asymptotic equals symbol `$\asymp$'.} +\endsetslot + +\setslot{equivalence} + \comment{The equivalence symbol `$\equiv$'.} +\endsetslot + +\setslot{reflexsubset} + \comment{The subset or equals symbol `$\subseteq$'.} +\endsetslot + +\setslot{reflexsuperset} + \comment{The superset or equals symbol `$\supseteq$'.} +\endsetslot + +\setslot{lessequal} + \comment{The less or equals symbol `$\leq$'.} +\endsetslot + +\setslot{greaterequal} + \comment{The greater or equals symbol `$\geq$'.} +\endsetslot + +\setslot{precedesequal} + \comment{The precedes or equals symbol `$\preceq$'.} +\endsetslot + +\setslot{followsequal} + \comment{The follows or equals symbol `$\succeq$'.} +\endsetslot + +\setslot{similar} + \comment{The similar symbol `$\sim$'.} +\endsetslot + +\setslot{approxequal} + \comment{The approximate equality symbol `$\approx$'.} +\endsetslot + +\setslot{propersubset} + \comment{The subset symbol `$\subset$'.} +\endsetslot + +\setslot{propersuperset} + \comment{The superset symbol `$\supset$'.} +\endsetslot + +\setslot{lessmuch} + \comment{The much less symbol `$\ll$'.} +\endsetslot + +\setslot{greatermuch} + \comment{The much greater symbol `$\gg$'.} +\endsetslot + +\setslot{precedes} % was curlyless + \comment{The precedes symbol `$\prec$'.} +\endsetslot + +\setslot{follows} % was curlygreater + \comment{The follows symbol `$\succ$'.} +\endsetslot + +\setslot{arrowleft} + \comment{The left arrow symbol `$\leftarrow$'.} +\endsetslot + +\setslot{arrowright} + \comment{The right arrow symbol `$\rightarrow$'.} +\endsetslot + +\setslot{arrowup} + \comment{The up arrow symbol `$\uparrow$'.} +\endsetslot + +\setslot{arrowdown} + \comment{The down arrow symbol `$\downarrow$'.} +\endsetslot + +\setslot{arrowboth} + \comment{The horizontal arrow symbol `$\leftrightarrow$'.} +\endsetslot + +\setslot{arrownortheast} + \comment{The north-east arrow symbol `$\nearrow$'.} +\endsetslot + +\setslot{arrowsoutheast} + \comment{The south-east arrow symbol `$\searrow$'.} +\endsetslot + +\setslot{similarequal} + \comment{The similar or equal symbol `$\simeq$'.} +\endsetslot + +\setslot{arrowdblleft} + \comment{The double left arrow symbol `$\Leftarrow$'.} +\endsetslot + +\setslot{arrowdblright} + \comment{The double right arrow symbol `$\Rightarrow$'.} +\endsetslot + +\setslot{arrowdblup} + \comment{The double up arrow symbol `$\Uparrow$'.} +\endsetslot + +\setslot{arrowdbldown} + \comment{The double down arrow symbol `$\Downarrow$'.} +\endsetslot + +\setslot{arrowdblboth} + \comment{The double horizontal arrow symbol `$\Leftrightarrow$'.} +\endsetslot + +\setslot{arrownorthwest} + \comment{The north-west arrow symbol `$\nwarrow$'.} +\endsetslot + +\setslot{arrowsouthwest} + \comment{The south-west arrow symbol `$\swarrow$'.} +\endsetslot + +\setslot{proportional} + \comment{The proportional symbol `$\propto$'.} +\endsetslot + +\setslot{prime} + \comment{The prime symbol `$\prime$'.} +\endsetslot + +\setslot{infinity} + \comment{The infinity symbol `$\infty$'.} +\endsetslot + +\setslot{element} + \comment{The set membership symbol `$\in$'.} +\endsetslot + +\setslot{owner} + \comment{The backwards set membership symbol `$\ni$'.} +\endsetslot + +\setslot{triangle} + \comment{The upwards triangle symbol `$\bigtriangleup$'.} +\endsetslot + +\setslot{triangleinv} + \comment{The downwards triangle symbol `$\bigtriangledown$'.} +\endsetslot + +\setslot{negationslash} + \comment{The negation slash symbol, used to construct + negated relations or arrows such as `$\not=$'.} +\endsetslot + +\setslot{mapstochar} + \comment{The maps to building block symbol `$\mapstochar$', + used to build `$\mapsto$'.} +\endsetslot + +\setslot{universal} + \comment{The universal quantification symbol `$\forall$'.} +\endsetslot + +\setslot{existential} + \comment{The existential quantification symbol `$\exists$'.} +\endsetslot + +\setslot{logicalnot} + \comment{The negation symbol `$\neg$'.} +\endsetslot + +\setslot{emptysetstress} + \comment{The `stressed' empty set symbol `$\emptyset$', which should + look like a zero with a slash. The `emptyset' symbol is a circle + with a slash.} +\endsetslot + +\setslot{Rfraktur} + \comment{The upper case Fraktur R symbol `$\Re$'. It is called + `Rfractur' rather than `Rfraktur' in MathTime and Lucida New Math.} +\endsetslot + +\setslot{Ifraktur} + \comment{The upper case Fraktur I symbol `$\Im$'. It is called + `Ifractur' rather than `Ifraktur' in MathTime and Lucida New Math.} +\endsetslot + +\setslot{latticetop} + \comment{The inverted perpendicular symbol `$\top$'.} +\endsetslot + +\setslot{perpendicular} + \comment{The perpendicular symbol `$\perp$'.} +\endsetslot + +\setslot{aleph} + \comment{The aleph symbol `$\aleph$'.} +\endsetslot + +\setslot{A} + \comment{The calligraphic letter `$\mathcal{A}$'.} +\endsetslot + +\setslot{B} + \comment{The calligraphic letter `$\mathcal{B}$'.} +\endsetslot + +\setslot{C} + \comment{The calligraphic letter `$\mathcal{C}$'.} +\endsetslot + +\setslot{D} + \comment{The calligraphic letter `$\mathcal{D}$'.} +\endsetslot + +\setslot{E} + \comment{The calligraphic letter `$\mathcal{E}$'.} +\endsetslot + +\setslot{F} + \comment{The calligraphic letter `$\mathcal{F}$'.} +\endsetslot + +\setslot{G} + \comment{The calligraphic letter `$\mathcal{G}$'.} +\endsetslot + +\setslot{H} + \comment{The calligraphic letter `$\mathcal{H}$'.} +\endsetslot + +\setslot{I} + \comment{The calligraphic letter `$\mathcal{I}$'.} +\endsetslot + +\setslot{J} + \comment{The calligraphic letter `$\mathcal{J}$'.} +\endsetslot + +\setslot{K} + \comment{The calligraphic letter `$\mathcal{K}$'.} +\endsetslot + +\setslot{L} + \comment{The calligraphic letter `$\mathcal{L}$'.} +\endsetslot + +\setslot{M} + \comment{The calligraphic letter `$\mathcal{M}$'.} +\endsetslot + +\setslot{N} + \comment{The calligraphic letter `$\mathcal{N}$'.} +\endsetslot + +\setslot{O} + \comment{The calligraphic letter `$\mathcal{O}$'.} +\endsetslot + +\setslot{P} + \comment{The calligraphic letter `$\mathcal{P}$'.} +\endsetslot + +\setslot{Q} + \comment{The calligraphic letter `$\mathcal{Q}$'.} +\endsetslot + +\setslot{R} + \comment{The calligraphic letter `$\mathcal{R}$'.} +\endsetslot + +\setslot{S} + \comment{The calligraphic letter `$\mathcal{S}$'.} +\endsetslot + +\setslot{T} + \comment{The calligraphic letter `$\mathcal{T}$'.} +\endsetslot + +\setslot{U} + \comment{The calligraphic letter `$\mathcal{U}$'.} +\endsetslot + +\setslot{V} + \comment{The calligraphic letter `$\mathcal{V}$'.} +\endsetslot + +\setslot{W} + \comment{The calligraphic letter `$\mathcal{W}$'.} +\endsetslot + +\setslot{X} + \comment{The calligraphic letter `$\mathcal{X}$'.} +\endsetslot + +\setslot{Y} + \comment{The calligraphic letter `$\mathcal{Y}$'.} +\endsetslot + +\setslot{Z} + \comment{The calligraphic letter `$\mathcal{Z}$'.} +\endsetslot + +\setslot{union} + \comment{The set union symbol `$\cup$'.} +\endsetslot + +\setslot{intersection} + \comment{The set intersection symbol `$\cap$'.} +\endsetslot + +\setslot{unionmulti} + \comment{The multiset union symbol `$\uplus$'.} +\endsetslot + +\setslot{logicaland} + \comment{The meet symbol `$\wedge$'.} +\endsetslot + +\setslot{logicalor} + \comment{The join symbol `$\vee$'.} +\endsetslot + +\setslot{turnstileleft} + \comment{The turnstile symbol `$\vdash$'.} +\endsetslot + +\setslot{turnstileright} + \comment{The backwards turnstile symbol `$\dashv$'.} +\endsetslot + +\setslot{floorleft} + \comment{The left floor symbol `$\lfloor$'.} +\endsetslot + +\setslot{floorright} + \comment{The right floor symbol `$\rfloor$'.} +\endsetslot + +\setslot{ceilingleft} + \comment{The left ceiling symbol `$\lceil$'.} +\endsetslot + +\setslot{ceilingright} + \comment{The right ceiling symbol `$\rceil$'.} +\endsetslot + +\setslot{braceleft} + \comment{The left brace symbol `$\{$'.} +\endsetslot + +\setslot{braceright} + \comment{The right brace symbol `$\}$'.} +\endsetslot + +\setslot{angleleft} + \comment{The left angle bracket symbol `$\langle$'. + It is called `angbracketleft' in MathTime and Lucida, + but `angleleft' in Adobe Symbol.} +\endsetslot + +\setslot{angleright} + \comment{The right angle bracket symbol `$\rangle$'. + It is called `angbracketright' in MathTime and Lucida, + but `angleleft' in Adobe Symbol.} +\endsetslot + +\setslot{bar} + \comment{The vertical bar symbol `$|$'.} +\endsetslot + +\setslot{bardbl} + \comment{The parallel vertical bars symbol `$\parallel$'.} +\endsetslot + +\setslot{arrowbothv} + \comment{The vertical arrows symbol `$\updownarrow$'.} +\endsetslot + +\setslot{arrowdblbothv} + \comment{The double vertical arrows symbol `$\Updownarrow$'.} +\endsetslot + +\setslot{backslash} + \comment{The backwards oblique symbol `$\backslash$'.} +\endsetslot + +\setslot{wreathproduct} + \comment{The Wreath product symbol `$\wp$'.} +\endsetslot + +\setslot{radicallow} + \comment{The lowered radical symbol `$\surd$'.} +\endsetslot + +\setslot{coproduct} + \comment{The textstyle coproduct symbol `$\coprod$'.} +\endsetslot + +\setslot{gradient} + \comment{The inverted Delta symbol `$\nabla$'. + It is also called `gradient' in MathTime and Lucida, + but `gradient' in Adobe Symbol.} +\endsetslot + +\setslot{integral} + \comment{The small integral symbol `$\plainint$'.} +\endsetslot + +\setslot{unionsq} + \comment{The square union symbol `$\sqcup$'.} +\endsetslot + +\setslot{intersectionsq} + \comment{The square intersection symbol `$\sqcap$'.} +\endsetslot + +\setslot{subsetsqequal} + \comment{The square subset or equal symbol `$\sqsubseteq$'.} +\endsetslot + +\setslot{supersetsqequal} + \comment{The square superset or equal symbol `$\sqsupseteq$'.} +\endsetslot + +\setslot{section} + \comment{The section symbol `\S'.} +\endsetslot + +\setslot{dagger} + \comment{The dagger symbol `\dag'.} +\endsetslot + +\setslot{daggerdbl} + \comment{The double dagger symbol `\ddag'.} +\endsetslot + +\setslot{paragraph} + \comment{The paragraph symbol `\P'.} +\endsetslot + +\setslot{club} + \comment{The club suit symbol `$\clubsuit$'.} +\endsetslot + +\setslot{diamond} + \comment{The diamond suit symbol `$\diamondsuit$'.} +\endsetslot + +\setslot{heart} + \comment{The heart suit symbol `$\heartsuit$'.} +\endsetslot + +\setslot{spade} + \comment{The spade suit symbol `$\spadesuit$'.} +\endsetslot + +\endencoding + +\section{Changes} + +29 Dec 1993, v1.30: Created file. + +03 Jan 1994, v1.301: Moved from ltugboat class to article. + +06 Jan 1994, v1.303: Corrected a fontdimen bug. + +08 Jan 1994, v1.304: Renamed radicallowered to radicallow and + perpendicularinverse to perpendicularinv. + +09 Jan 1994, v1.305: Renamed emptyset to emptysetstress, to distinguish + the geometric and the humanist emptyset symbols. + Renamed some glyphs to use the same glyph names + as Lucida New Math. + +10 Jun 1998, v1.800: Really use the same names as Lucida New Math. + `curlyless/greater' renamed to `precedes/follows'. + +06 Oct 2000, v1.915: Introduced intermediate variables for fontdimens + 8--22. Added \texttt{encodingname}. Updated markup. + (LH) + +27 Jul 2002, v1.921: Introduced intermediate variables also for + fontdimens 1--7. Switched to setting fontdimens + using \verb"\setfontdimen". (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/mathetx/omx.etx b/Master/texmf-dist/tex/fontinst/mathetx/omx.etx new file mode 100644 index 00000000000..52af52af6d9 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathetx/omx.etx @@ -0,0 +1,731 @@ +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = "Alan Jeffrey and Ulrik Vieth and +%%% Lars Hellstr{\"o}m", +%%% version = "1.921", +%%% date = "2002-07-27", +%%% time = "18:45:45 +02:00", +%%% filename = "omx.etx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/index.html", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, math, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the old math extension encoding as +%%% a TeX font encoding file, for use with the +%%% fontinst utility.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[2001/03/16] + +\title{The \TeX\ math extension encoding vector} +\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om} +\date{27 July 2002\\Version 1.921} + +\begin{document} +\maketitle + +\section{Introduction} + +This document describes the \TeX\ math extensions (\texttt{OMX}) +encoding. + +\showbranches +\setslotcomment{The glyph `$\vcenter{\hbox{\slotexample}}$'.} +\useexamplefont{cmex10} +\encoding + +\needsfontinstversion{1.917} + + +\begincomment +\section{Default values} +\endcomment + +\setstr{codingscheme}{TEX MATH EXTENSION} +\setstr{encodingname}{TeXMathExtensionEncoding} + +\setint{italicslant}{0} +\setint{interword}{0} +\setint{stretchword}{0} +\setint{shrinkword}{0} +\ifisglyph{x}\then + \setint{xheight}{\height{x}} +\Else + \setint{xheight}{500} +\Fi +\setint{quad}{1000} +\setint{extraspace}{0} + +\comment{The following defaults are taken from \texttt{cmex10}.} + +\setint{defaultrulethickness}{40} +\setint{bigopspacing1}{111} +\setint{bigopspacing2}{167} +\setint{bigopspacing3}{200} +\setint{bigopspacing4}{600} +\setint{bigopspacing5}{100} + + +\begincomment +\section{Font dimensions} +\endcomment + +\setfontdimen{1}{italicslant} % italic slant +\setfontdimen{2}{interword} % interword space +\setfontdimen{3}{stretchword} % interword stretch +\setfontdimen{4}{shrinkword} % interword shrink +\setfontdimen{5}{xheight} % x-height +\setfontdimen{6}{quad} % quad +\setfontdimen{7}{extraspace} % extra space after . + +\setfontdimen{8}{defaultrulethickness} % default rule thickness +\setfontdimen{9}{bigopspacing1} % bigopspacing 1 +\setfontdimen{10}{bigopspacing2} % bigopspacing 2 +\setfontdimen{11}{bigopspacing3} % bigopspacing 3 +\setfontdimen{12}{bigopspacing4} % bigopspacing 4 +\setfontdimen{13}{bigopspacing5} % bigopspacing 5 + + +\begincomment +\section{The encoding} +There are 128 glyphs in this encoding. +\endcomment + +\setslot{parenleftbig} + \nextlarger{parenleftBig} +\endsetslot + +\setslot{parenrightbig} + \nextlarger{parenrightBig} +\endsetslot + +\setslot{bracketleftbig} + \nextlarger{bracketleftBig} +\endsetslot + +\setslot{bracketrightbig} + \nextlarger{bracketrightBig} +\endsetslot + +\setslot{floorleftbig} + \nextlarger{floorleftBig} +\endsetslot + +\setslot{floorrightbig} + \nextlarger{floorrightBig} +\endsetslot + +\setslot{ceilingleftbig} + \nextlarger{ceilingleftBig} +\endsetslot + +\setslot{ceilingrightbig} + \nextlarger{ceilingrightBig} +\endsetslot + +\setslot{braceleftbig} + \nextlarger{braceleftBig} +\endsetslot + +\setslot{bracerightbig} + \nextlarger{bracerightBig} +\endsetslot + +\setslot{angleleftbig} + \nextlarger{angleleftBig} +\endsetslot + +\setslot{anglerightbig} + \nextlarger{anglerightBig} +\endsetslot + +\setslot{barex} + \varchar + \varrep{barex} + \endvarchar +\endsetslot + +\setslot{bardblex} + \varchar + \varrep{bardblex} + \endvarchar +\endsetslot + +\setslot{slashbig} + \nextlarger{slashBig} +\endsetslot + +\setslot{backslashbig} + \nextlarger{backslashBig} +\endsetslot + +\setslot{parenleftBig} + \nextlarger{parenleftbigg} +\endsetslot + +\setslot{parenrightBig} + \nextlarger{parenrightbigg} +\endsetslot + +\setslot{parenleftbigg} + \nextlarger{parenleftBigg} +\endsetslot + +\setslot{parenrightbigg} + \nextlarger{parenrightBigg} +\endsetslot + +\setslot{bracketleftbigg} + \nextlarger{bracketleftBigg} +\endsetslot + +\setslot{bracketrightbigg} + \nextlarger{bracketrightBigg} +\endsetslot + +\setslot{floorleftbigg} + \nextlarger{floorleftBigg} +\endsetslot + +\setslot{floorrightbigg} + \nextlarger{floorrightBigg} +\endsetslot + +\setslot{ceilingleftbigg} + \nextlarger{ceilingleftBigg} +\endsetslot + +\setslot{ceilingrightbigg} + \nextlarger{ceilingrightBigg} +\endsetslot + +\setslot{braceleftbigg} + \nextlarger{braceleftBigg} +\endsetslot + +\setslot{bracerightbigg} + \nextlarger{bracerightBigg} +\endsetslot + +\setslot{angleleftbigg} + \nextlarger{angleleftBigg} +\endsetslot + +\setslot{anglerightbigg} + \nextlarger{anglerightBigg} +\endsetslot + +\setslot{slashbigg} + \nextlarger{slashBigg} +\endsetslot + +\setslot{backslashbigg} + \nextlarger{backslashBigg} +\endsetslot + +\setslot{parenleftBigg} + \nextlarger{parenlefttp} +\endsetslot + +\setslot{parenrightBigg} + \nextlarger{parenrighttp} +\endsetslot + +\setslot{bracketleftBigg} + \nextlarger{bracketlefttp} +\endsetslot + +\setslot{bracketrightBigg} + \nextlarger{bracketrighttp} +\endsetslot + +\setslot{floorleftBigg} + \nextlarger{bracketleftbt} +\endsetslot + +\setslot{floorrightBigg} + \nextlarger{bracketrightbt} +\endsetslot + +\setslot{ceilingleftBigg} + \nextlarger{bracketleftex} +\endsetslot + +\setslot{ceilingrightBigg} + \nextlarger{bracketrightex} +\endsetslot + +\setslot{braceleftBigg} + \nextlarger{bracelefttp} +\endsetslot + +\setslot{bracerightBigg} + \nextlarger{bracerighttp} +\endsetslot + +\setslot{angleleftBigg} +\endsetslot + +\setslot{anglerightBigg} +\endsetslot + +\setslot{slashBigg} +\endsetslot + +\setslot{backslashBigg} +\endsetslot + +\setslot{slashBig} + \nextlarger{slashbigg} +\endsetslot + +\setslot{backslashBig} + \nextlarger{backslashbigg} +\endsetslot + +\setslot{parenlefttp} + \varchar + \vartop{parenlefttp} + \varbot{parenleftbt} + \varrep{parenleftex} + \endvarchar +\endsetslot + +\setslot{parenrighttp} + \varchar + \vartop{parenrighttp} + \varbot{parenrightbt} + \varrep{parenrightex} + \endvarchar +\endsetslot + +\setslot{bracketlefttp} + \varchar + \vartop{bracketlefttp} + \varbot{bracketleftbt} + \varrep{bracketleftex} + \endvarchar +\endsetslot + +\setslot{bracketrighttp} + \varchar + \vartop{bracketrighttp} + \varbot{bracketrightbt} + \varrep{bracketrightex} + \endvarchar +\endsetslot + +\setslot{bracketleftbt} + \varchar + \varbot{bracketleftbt} + \varrep{bracketleftex} + \endvarchar +\endsetslot + +\setslot{bracketrightbt} + \varchar + \varbot{bracketrightbt} + \varrep{bracketrightex} + \endvarchar +\endsetslot + +\setslot{bracketleftex} + \varchar + \vartop{bracketlefttp} + \varrep{bracketleftex} + \endvarchar +\endsetslot + +\setslot{bracketrightex} + \varchar + \vartop{bracketrighttp} + \varrep{bracketrightex} + \endvarchar +\endsetslot + +\setslot{bracelefttp} + \varchar + \vartop{bracelefttp} + \varmid{braceleftmid} + \varbot{braceleftbt} + \varrep{braceex} + \endvarchar +\endsetslot + +\setslot{bracerighttp} + \varchar + \vartop{bracerighttp} + \varmid{bracerightmid} + \varbot{bracerightbt} + \varrep{braceex} + \endvarchar +\endsetslot + +\setslot{braceleftbt} + \varchar + \vartop{bracelefttp} + \varbot{braceleftbt} + \varrep{braceex} + \endvarchar +\endsetslot + +\setslot{bracerightbt} + \varchar + \vartop{bracerighttp} + \varbot{bracerightbt} + \varrep{braceex} + \endvarchar +\endsetslot + +\setslot{braceleftmid} + \varchar + \varrep{arrowvertex} + \comment{This extensible entry has nothing to do with the + \texttt{braceleftmid} glyph; instead this slot is used as a + placeholder for the large form of the `\(\arrowvert\)' + delimiter.} + \endvarchar +\endsetslot + +\setslot{bracerightmid} + \varchar + \varrep{arrowvertexdbl} + \comment{This extensible entry has nothing to do with the + \texttt{bracerightmid} glyph; instead this slot is used as a + placeholder for the large form of the `\(\Arrowvert\)' + delimiter.} + \endvarchar +\endsetslot + +\setslot{braceex} + \varchar + \varrep{braceex} + \endvarchar +\endsetslot + +\setslot{arrowvertex} + \varchar + \vartop{arrowtp} + \varbot{arrowbt} + \varrep{arrowvertex} + \endvarchar +\endsetslot + +\setslot{parenleftbt} + \varchar + \vartop{bracelefttp} + \varbot{bracerightbt} + \varrep{braceex} + \endvarchar +\endsetslot + +\setslot{parenrightbt} + \varchar + \vartop{bracerighttp} + \varbot{braceleftbt} + \varrep{braceex} + \endvarchar +\endsetslot + +\setslot{parenleftex} + \varchar + \varrep{parenleftex} + \endvarchar +\endsetslot + +\setslot{parenrightex} + \varchar + \varrep{parenrightex} + \endvarchar +\endsetslot + +\setslot{angleleftBig} + \nextlarger{angleleftbigg} +\endsetslot + +\setslot{anglerightBig} + \nextlarger{anglerightbigg} +\endsetslot + +\setslot{unionsqtext} + \nextlarger{unionsqdisplay} +\endsetslot + +\setslot{unionsqdisplay} +\endsetslot + +\setslot{contintegraltext} + \nextlarger{contintegraldisplay} +\endsetslot + +\setslot{contintegraldisplay} +\endsetslot + +\setslot{circledottext} + \nextlarger{circledotdisplay} +\endsetslot + +\setslot{circledotdisplay} +\endsetslot + +\setslot{circleplustext} + \nextlarger{circleplusdisplay} +\endsetslot + +\setslot{circleplusdisplay} +\endsetslot + +\setslot{circlemultiplytext} + \nextlarger{circlemultiplydisplay} +\endsetslot + +\setslot{circlemultiplydisplay} +\endsetslot + +\setslot{summationtext} + \nextlarger{summationdisplay} +\endsetslot + +\setslot{producttext} + \nextlarger{productdisplay} +\endsetslot + +\setslot{integraltext} + \nextlarger{integraldisplay} +\endsetslot + +\setslot{uniontext} + \nextlarger{uniondisplay} +\endsetslot + +\setslot{intersectiontext} + \nextlarger{intersectiondisplay} +\endsetslot + +\setslot{unionmultitext} + \nextlarger{unionmultidisplay} +\endsetslot + +\setslot{logicalandtext} + \nextlarger{logicalanddisplay} +\endsetslot + +\setslot{logicalortext} + \nextlarger{logicalordisplay} +\endsetslot + +\setslot{summationdisplay} +\endsetslot + +\setslot{productdisplay} +\endsetslot + +\setslot{integraldisplay} +\endsetslot + +\setslot{uniondisplay} +\endsetslot + +\setslot{intersectiondisplay} +\endsetslot + +\setslot{unionmultidisplay} +\endsetslot + +\setslot{logicalanddisplay} +\endsetslot + +\setslot{logicalordisplay} +\endsetslot + +\setslot{coproducttext} + \nextlarger{coproductdisplay} +\endsetslot + +\setslot{coproductdisplay} +\endsetslot + +\setslot{hatwide} + \nextlarger{hatwider} +\endsetslot + +\setslot{hatwider} + \nextlarger{hatwidest} +\endsetslot + +\setslot{hatwidest} +\endsetslot + +\setslot{tildewide} + \nextlarger{tildewider} +\endsetslot + +\setslot{tildewider} + \nextlarger{tildewidest} +\endsetslot + +\setslot{tildewidest} +\endsetslot + +\setslot{bracketleftBig} + \nextlarger{bracketleftbigg} +\endsetslot + +\setslot{bracketrightBig} + \nextlarger{bracketrightbigg} +\endsetslot + +\setslot{floorleftBig} + \nextlarger{floorleftbigg} +\endsetslot + +\setslot{floorrightBig} + \nextlarger{floorrightbigg} +\endsetslot + +\setslot{ceilingleftBig} + \nextlarger{ceilingleftbigg} +\endsetslot + +\setslot{ceilingrightBig} + \nextlarger{ceilingrightbigg} +\endsetslot + +\setslot{braceleftBig} + \nextlarger{braceleftbigg} +\endsetslot + +\setslot{bracerightBig} + \nextlarger{bracerightbigg} +\endsetslot + +\setslot{radicalbig} + \nextlarger{radicalBig} +\endsetslot + +\setslot{radicalBig} + \nextlarger{radicalbigg} +\endsetslot + +\setslot{radicalbigg} + \nextlarger{radicalBigg} +\endsetslot + +\setslot{radicalBigg} + \nextlarger{radicalbt} +\endsetslot + +\setslot{radicalbt} + \varchar + \varbot{radicalbt} + \vartop{radicaltp} + \varrep{radicalvertex} + \endvarchar +\endsetslot + +\setslot{radicalvertex} +\endsetslot + +\setslot{radicaltp} +\endsetslot + +\setslot{arrowvertexdbl} + \varchar + \vartop{arrowdbltp} + \varbot{arrowdblbt} + \varrep{arrowvertexdbl} + \endvarchar +\endsetslot + +\setslot{arrowtp} + \varchar + \vartop{arrowtp} + \varrep{arrowvertex} + \endvarchar +\endsetslot + +\setslot{arrowbt} + \varchar + \varbot{arrowbt} + \varrep{arrowvertex} + \endvarchar +\endsetslot + +\setslot{bracehtipdownleft} +\endsetslot + +\setslot{bracehtipdownright} +\endsetslot + +\setslot{bracehtipupleft} +\endsetslot + +\setslot{bracehtipupright} +\endsetslot + +\setslot{arrowdbltp} + \varchar + \vartop{arrowdbltp} + \varrep{arrowvertexdbl} + \endvarchar +\endsetslot + +\setslot{arrowdblbt} + \varchar + \varbot{arrowdblbt} + \varrep{arrowvertexdbl} + \endvarchar +\endsetslot + +\endencoding + + +\section{Changes} + +\parindent=1em + +29 Dec 1993, v1.30: Created file. + +03 Jan 1994, v1.301: +Moved from \texttt{ltugboat} to \texttt{article} class. + +04 Jan 1994, v1.302: +Renamed \texttt{loweredradical} to \texttt{radicallow}. + +06 Jan 1994, v1.303: Corrected a fontdimen bug. + +09 Jan 1994, v1.305: Changed some names to use the same glyph names + as Lucida New Math. + +10 Oct 1997, v1.306: +Ulrik Vieth found a bug in the varchar recipe for the +\texttt{parenrightbt} slot. + +10 October 2000, v\,1.915: +Introduced intermediate variables for fontdimens 8--13. +Added \texttt{encodingname}. Added glyph examples. +Markup updates. (LH) + +20 November 2000, v\,1.915: +Changed glyph names \texttt{arrowdblvertex}, \texttt{hatwiderr}, and +\texttt{tildewiderr} to \texttt{arrowvertexdbl}, \texttt{hatwidest}, +and \texttt{tildewidest} respectively to really use the same names as +\texttt{texmext.enc} and Lucida New Math. (LH) Reported by Alejandro +L\'{o}pez-Valencia. + +22 November 2000, v\,1.915: +Added explanations of the \verb|\varchar| entries for +\texttt{braceleftmid} and \texttt{bracerightmid}. (LH) + +27 July 2002, v\,1.921: +Introduced intermediate variables for fontdimens 1--7. +Using \verb"\setfontdimen". (LH) + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/mathetx/rsfs.etx b/Master/texmf-dist/tex/fontinst/mathetx/rsfs.etx new file mode 100644 index 00000000000..adfd02dd207 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathetx/rsfs.etx @@ -0,0 +1,92 @@ +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = "Ulrik Vieth", +%%% version = "1.801", +%%% date = "29 June 1998", +%%% time = "23:57:31 CEST", +%%% filename = "rsfs.etx", +%%% email = "vieth@thphy.uni-duesseldorf.de", +%%% URL = "http://www.thphy.uni-duesseldorf.de/~vieth/", +%%% checksum = "22539 92 192 2580", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, math, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the encoding of Ralph Smith's Formal +%%% Script font as a TeX font encoding file, for +%%% use with the fontinst utility.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax +\documentclass[twocolumn]{article} +\usepackage{fontdoc} + +\useexamplefont{rsfs10} + +\title{Ralph Smith's Formal Script font encoding vector} +\author{Ulrik Vieth} + +\begin{document} +\maketitle + +\encoding + +\comment{\section{Default values}} + +\setstr{codingscheme}{RAS SCRIPT} +\setint{italicslant}{707} +\setint{xheight}{233} + +\comment{\section{Default font dimensions}} + +\setint{fontdimen(1)}{\int{italicslant}} % italic slant +\setint{fontdimen(2)}{0} % interword space +\setint{fontdimen(3)}{0} % interword stretch +\setint{fontdimen(4)}{0} % interword shrink +\setint{fontdimen(5)}{\int{xheight}} % x-height +\setint{fontdimen(6)}{1000} % quad +\setint{fontdimen(7)}{0} % extra space after . + +\comment{\section{The encoding}} + +\nextslot{65} +\setslotcomment{The Script letter `\slotexample'.} + +\setslot{A}\endsetslot +\setslot{B}\endsetslot +\setslot{C}\endsetslot +\setslot{D}\endsetslot +\setslot{E}\endsetslot +\setslot{F}\endsetslot +\setslot{G}\endsetslot +\setslot{H}\endsetslot +\setslot{I}\endsetslot +\setslot{J}\endsetslot +\setslot{K}\endsetslot +\setslot{L}\endsetslot +\setslot{M}\endsetslot +\setslot{N}\endsetslot +\setslot{O}\endsetslot +\setslot{P}\endsetslot +\setslot{Q}\endsetslot +\setslot{R}\endsetslot +\setslot{S}\endsetslot +\setslot{T}\endsetslot +\setslot{U}\endsetslot +\setslot{V}\endsetslot +\setslot{W}\endsetslot +\setslot{X}\endsetslot +\setslot{Y}\endsetslot +\setslot{Z}\endsetslot + +\nextslot{127} +\unsetslotcomment + +\setslot{tie} + \comment{The skewchar.} +\endsetslot + +\endencoding +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/mathmtx/mathex.mtx b/Master/texmf-dist/tex/fontinst/mathmtx/mathex.mtx new file mode 100644 index 00000000000..73170fa7cf4 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathmtx/mathex.mtx @@ -0,0 +1,303 @@ +%%%======================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Alan Jeffrey and Lars Hellstr{\"o}m", +%%% version = "1.915", +%%% date = "20 November 2000", +%%% time = "17:01:00 CEST", +%%% filename = "mathex.mtx", +%%% checksum = "", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, math, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "These are the extra glyphs needed for TeX +%%% math fonts, used by the fontinst package.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%%======================================================================== +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[1999/11/04] + +\title{The \texttt{fontinst} math symbol glyphs} +\author{Alan Jeffrey\and Lars Hellstr\"om} +\date{November 20, 2000} + +\showbranches + +\begin{document} + +\maketitle + +\section{Introduction} + +This document describes the glyphs used by the \texttt{fontinst} +package when generating math symbol fonts. + +\metrics + +% Uses the fontinst package. + +\needsfontinstversion{1.900} + + +% \unfakable is a glyph which can't be faked. +\setcommand\unfakable#1{ + \setglyph{#1} + \glyphrule{500}{500} + \glyphwarning{missing glyph `#1'} + \endsetglyph +} +\begincomment\medskip +An \textbf{Unfakable} is a glyph which can't be faked. An +``\textbf{Unfakable `\#1'}\,'' is equivalent to +\begin{quotation}\unfakable{\#1}\end{quotation} + +\resetcommand\unfakable#1{\Aheading{Unfakable `#1'}} +\endcomment + + +% \extensible and \vextensible define a number of extensible glyphs. +\setcommand\extensible#1{ + \begincomment + \subsection{The `#1' extensible}% + \endcomment + \unfakable{#1} + \unfakable{#1tp} + \unfakable{#1mid} + \unfakable{#1bt} + \unfakable{#1ex} + \setglyph{#1big} \glyph{#1}{1000} \endsetglyph + \setglyph{#1Big} \glyph{#1big}{1000} \endsetglyph + \setglyph{#1bigg} \glyph{#1Big}{1000} \endsetglyph + \setglyph{#1Bigg} \glyph{#1bigg}{1000} \endsetglyph +} + +\setcommand\vextensible#1{ + \begincomment + \subsection{The `#1' extensible}% + \endcomment + \unfakable{#1} + \unfakable{#1tp} + \unfakable{#1mid} + \unfakable{#1bt} + \unfakable{#1vertex} + \setglyph{#1big} \glyph{#1}{1000} \endsetglyph + \setglyph{#1Big} \glyph{#1big}{1000} \endsetglyph + \setglyph{#1bigg} \glyph{#1Big}{1000} \endsetglyph + \setglyph{#1Bigg} \glyph{#1bigg}{1000} \endsetglyph +} + +% \wideaccent defines a wide accent. +\setcommand\wideaccent#1{ + \begincomment + \subsection{The `#1' wide accents}% + \endcomment + \unfakable{#1} + \setglyph{#1wide} \glyph{#1}{1000} \endsetglyph + \setglyph{#1wider} \glyph{#1wide}{1000} \endsetglyph + \setglyph{#1widest} \glyph{#1wider}{1000} \endsetglyph +} + +\comment{\textit{displayoperatorscale} is the difference in scale +between a big and a display operator, exept for integrals, which have +their own scale.} +\setint{displayoperatorscale}{1200} +\setint{integralscale}{1728} + +\ifisglyph{product}\then + \setint{textoperatorsize}{ + \add{\height{product}}{\depth{product}} + } +\Else + \setint{textoperatorsize}{1000} + % Default taken from cmex10. +\Fi + +% \integral, \bigoperator and \biggoperator define operators. + +\setcommand\integral#1{ + \begincomment + \subsection{The `#1' integrals}% + \endcomment + \unfakable{#1} + \setglyph{#1text} \glyph{#1}{1000} \endsetglyph + \setglyph{#1display} \glyph{#1text}{\int{integralscale}} \endsetglyph +} + +\setcommand\bigoperator#1{ + \begincomment + \subsection{The `#1' big operators}% + \endcomment + \unfakable{#1} + \setglyph{#1text} \glyph{#1}{1000} \endsetglyph + \setglyph{#1display} \glyph{#1text}{\int{displayoperatorscale}} \endsetglyph +} + +\setcommand\biggoperator#1{ + \begincomment + \subsection{The `#1' big operators}% + \endcomment + \unfakable{#1} + \setglyph{#1text} + \glyph{#1}{ + \div{\mul{1000}{\int{textoperatorsize}}} + {\add{\height{#1}}{\depth{#1}}} + } + \endsetglyph + \setglyph{#1display} + \glyph{#1text}{\int{displayoperatorscale}} + \endsetglyph +} + + +\begincomment +\section{Math extension glyphs} +\endcomment + +\unfakable{bracketleftbt} +\unfakable{bracketrightbt} +\unfakable{bracketlefttp} +\unfakable{bracketrighttp} + +\setglyph{floorleft} + \glyph{bracketleftbt}{1000} +\endsetglyph + +\setglyph{floorright} + \glyph{bracketrightbt}{1000} +\endsetglyph + +\setglyph{ceilingleft} + \glyph{bracketlefttp}{1000} +\endsetglyph + +\setglyph{ceilingright} + \glyph{bracketrighttp}{1000} +\endsetglyph + +\setglyph{bardbl} + \glyph{bar}{1000} + \glyph{bar}{1000} +\endsetglyph + +\setglyph{barex} + \glyph{bar}{1000} +\endsetglyph + +\setglyph{bardblex} + \glyph{bardbl}{1000} +\endsetglyph + +\setglyph{arrowtp} + \glyph{arrowup}{1000} +\endsetglyph + +\setglyph{arrowbt} + \glyph{arrowdown}{1000} +\endsetglyph + +\setglyph{arrowdbltp} + \glyph{arrowdblup}{1000} +\endsetglyph + +\setglyph{arrowdblbt} + \glyph{arrowdbldown}{1000} +\endsetglyph + +\unfakable{tilde} + +\setglyph{hat} + \glyph{circumflex}{1000} +\endsetglyph + +\unfakable{plus} +\unfakable{union} + +\setglyph{unionmulti} + \push + \movert{\div{\sub{\width{union}}{\scale{\width{plus}}{700}}}{2}} + \moveup{\div{\width{plus}}{4}} + \glyph{plus}{700} + \pop + \glyph{union}{1000} +\endsetglyph + +\extensible{parenleft} +\extensible{parenright} +\extensible{bracketleft} +\extensible{bracketright} +\extensible{braceleft} +\extensible{braceright} +\extensible{floorleft} +\extensible{floorright} +\extensible{ceilingleft} +\extensible{ceilingright} +\extensible{slash} +\extensible{backslash} +\extensible{angleleft} +\extensible{angleright} + +\wideaccent{hat} +\wideaccent{tilde} + +\vextensible{radical} +\vextensible{arrow} +\extensible{arrowdbl} +\unfakable{arrowvertexdbl} + +\biggoperator{unionsq} +\biggoperator{circledot} +\biggoperator{circleplus} +\biggoperator{circlemultiply} +\biggoperator{unionmulti} +\biggoperator{intersection} +\biggoperator{union} +\biggoperator{logicaland} +\biggoperator{logicalor} + +\bigoperator{product} +\bigoperator{summation} +\bigoperator{coproduct} + +\integral{integral} +\integral{contintegral} + +\begincomment +\subsection{Horizontal braces} +\endcomment + +\unfakable{bracehtipdownleft} +\unfakable{bracehtipdownright} +\unfakable{bracehtipupleft} +\unfakable{bracehtipupright} + +\endmetrics + + +\section{Changes} + +29 Dec 1993, v1.30: Created file. + +3 Jan 1994, v1.301: Renamed some of the glyphs, added fakes for +\texttt{arrowverttp} and friends. + +8 Jan 1994, v1.304: Renamed \texttt{similareq} to \texttt{similarequal}. + +9 Jan 1994, v1.305: Renamed some glyphs to use the same names as Lucida +New Math. + +16 October 2000, v\,1.915: Updated markup (made it a \LaTeXe\ +document!). (LH) + +20 November 2000, v\,1.915: Added test for whether the \texttt{product} +glyph exists before setting the \textit{textoperatorsize}, using +value corresponding to \texttt{cmex10} if it doesn't. Changed +\verb|\wideaccent| to call the widest glyph \textellipsis\texttt{widest} +instead of \textellipsis\texttt{widerr}. Changed glyph name +\texttt{arrowdblvertex} to \texttt{arrowvertexdbl}. (LH) Reported by +Alejandro L\'{o}pez-Valencia. + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/mathmtx/mathit.mtx b/Master/texmf-dist/tex/fontinst/mathmtx/mathit.mtx new file mode 100644 index 00000000000..67b72503781 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathmtx/mathit.mtx @@ -0,0 +1,280 @@ +%%%======================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Alan Jeffrey", +%%% version = "1.915", +%%% date = "16 October 2000", +%%% time = "17:30:00 CEST", +%%% filename = "mathit.mtx", +%%% checksum = "", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, math, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "These are the extra glyphs needed for TeX +%%% math italic fonts, used by the fontinst package.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, ltugboat.sty", +%%% } +%%%======================================================================== +\relax +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[1999/11/04] + +\title{The \texttt{fontinst} math italic glyphs} +\author{Alan Jeffrey} +\date{9 January 1994} + +%\address{School of Cognitive and Computing Sciences \\ +% University of Sussex \\ +% Falmer \\ +% Brighton \\ +% BN1 9QH \\ +% UK} +%\netaddress{alanje@cogs.susx.ac.uk} + +\begin{document} + +\maketitle + +\section{Introduction} + +This document describes the glyphs used by the \texttt{fontinst} +package when generating math italic fonts. + + +\metrics + +% Uses the fontinst package. + +\needsfontinstversion{1.30} + +% \unfakable is a glyph which can't be faked. + +\setcommand\unfakable#1{ + \setglyph{#1} + \glyphrule{500}{500} + \glyphwarning{missing glyph `#1'} + \endsetglyph +} + +\comment{\section{Math symbol glyphs}} + +\unfakable{Gamma} +\unfakable{Delta} +\unfakable{Theta} +\unfakable{Lambda} +\unfakable{Xi} +\unfakable{Pi} +\unfakable{Sigma} +\unfakable{Phi} +\unfakable{Psi} +\unfakable{Omega} +\unfakable{alpha} +\unfakable{beta} +\unfakable{gamma} +\unfakable{delta} +\unfakable{zeta} +\unfakable{eta} +\unfakable{theta} +\unfakable{iota} +\unfakable{kappa} +\unfakable{lambda} +\unfakable{mu} +\unfakable{nu} +\unfakable{xi} +\unfakable{pi} +\unfakable{rho} +\unfakable{sigma} +\unfakable{tau} +\unfakable{upsilon} +\unfakable{phi} +\unfakable{chi} +\unfakable{psi} +\unfakable{omega} +\unfakable{epsilon} +\unfakable{harpoonleftup} +\unfakable{harpoonleftdown} +\unfakable{harpoonrightup} +\unfakable{harpoonrightdown} +\unfakable{hookrightchar} +\unfakable{hookleftchar} +\unfakable{triangleright} +\unfakable{triangleleft} +\unfakable{period} +\unfakable{comma} +\unfakable{less} +\unfakable{slash} +\unfakable{greater} +\unfakable{star} +\unfakable{partialdiff} +\unfakable{A} +\unfakable{B} +\unfakable{C} +\unfakable{D} +\unfakable{E} +\unfakable{F} +\unfakable{G} +\unfakable{H} +\unfakable{I} +\unfakable{J} +\unfakable{K} +\unfakable{L} +\unfakable{M} +\unfakable{N} +\unfakable{O} +\unfakable{P} +\unfakable{Q} +\unfakable{R} +\unfakable{S} +\unfakable{T} +\unfakable{U} +\unfakable{V} +\unfakable{W} +\unfakable{X} +\unfakable{Y} +\unfakable{Z} +\unfakable{flat} +\unfakable{sharp} +\unfakable{natural} +\unfakable{slurabove} +\unfakable{slurbelow} +\unfakable{lscript} +\unfakable{a} +\unfakable{b} +\unfakable{c} +\unfakable{d} +\unfakable{e} +\unfakable{f} +\unfakable{g} +\unfakable{h} +\unfakable{i} +\unfakable{j} +\unfakable{k} +\unfakable{l} +\unfakable{m} +\unfakable{n} +\unfakable{o} +\unfakable{p} +\unfakable{q} +\unfakable{r} +\unfakable{s} +\unfakable{t} +\unfakable{u} +\unfakable{v} +\unfakable{w} +\unfakable{x} +\unfakable{y} +\unfakable{z} +\unfakable{dotlessi} +\unfakable{dotlessj} +\unfakable{weierstrass} +\unfakable{tie} + +\unfakable{Upsilon} +\setglyph{Upsilon1} + \glyph{Upsilon}{1000} +\endsetglyph + +\setglyph{epsilon1} + \glyph{epsilon}{1000} +\endsetglyph + +\setglyph{theta1} + \glyph{theta}{1000} +\endsetglyph + +\setglyph{pi1} + \ifisglyph{omega1}\then + \glyph{omega1}{1000} + \else + \glyph{pi}{1000} + \fi +\endsetglyph + +\setglyph{rho1} + \glyph{rho}{1000} +\endsetglyph + +\setglyph{sigma1} + \glyph{sigma}{1000} +\endsetglyph + +\setglyph{phi1} + \glyph{phi}{1000} +\endsetglyph + +\unfakable{zero} +\unfakable{one} +\unfakable{two} +\unfakable{three} +\unfakable{four} +\unfakable{five} +\unfakable{six} +\unfakable{seven} +\unfakable{eight} +\unfakable{nine} + +\setglyph{zerooldstyle} + \glyph{zero}{1000} +\endsetglyph + +\setglyph{oneoldstyle} + \glyph{one}{1000} +\endsetglyph + +\setglyph{twooldstyle} + \glyph{two}{1000} +\endsetglyph + +\setglyph{threeoldstyle} + \glyph{three}{1000} +\endsetglyph + +\setglyph{fouroldstyle} + \glyph{four}{1000} +\endsetglyph + +\setglyph{fiveoldstyle} + \glyph{five}{1000} +\endsetglyph + +\setglyph{sixoldstyle} + \glyph{six}{1000} +\endsetglyph + +\setglyph{sevenoldstyle} + \glyph{seven}{1000} +\endsetglyph + +\setglyph{eightoldstyle} + \glyph{eight}{1000} +\endsetglyph + +\setglyph{nineoldstyle} + \glyph{nine}{1000} +\endsetglyph + +\unfakable{arrowright} + +\setglyph{vector} + \moveup{\int{xheight}} + \glyph{arrowright}{500} + \moveup{\neg{\int{xheight}}} +\endsetglyph + +\endmetrics + + +\section{Changes} + +29 Dec 1993, v1.30: Created file. + +3 Jan 1994, v1.301: Renamed \texttt{neutral} to \texttt{natural}. + +9 Jan 1994, v1.305: +Renamed some glyphs to use the same names as Lucida New Math. + +16 October 2000, v\,1.915: +Updated markup (made it a \LaTeXe\ document!). (LH) + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/fontinst/mathmtx/mathsy.mtx b/Master/texmf-dist/tex/fontinst/mathmtx/mathsy.mtx new file mode 100644 index 00000000000..30737d2a07a --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/mathmtx/mathsy.mtx @@ -0,0 +1,313 @@ +%%%======================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Alan Jeffrey", +%%% version = "1.915", +%%% date = "26 October 2000", +%%% time = "11:36:00 CEST", +%%% filename = "mathex.mtx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, math, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "These are the extra glyphs needed for TeX +%%% math extension fonts, used by the fontinst +%%% package.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%%======================================================================== +\relax +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[1999/11/04] + +\title{The \texttt{fontinst} math symbol glyphs} +\author{Alan Jeffrey} +\date{January 10, 1994} +% \address{School of Cognitive and Computing Sciences \\ +% University of Sussex \\ +% Falmer \\ +% Brighton \\ +% BN1 9QH \\ +% UK} +% \netaddress{alanje@cogs.susx.ac.uk} + +\begin{document} + +\maketitle + +\section{Introduction} + +This document describes the glyphs used by the \texttt{fontinst} +package when generating math symbol fonts. + +\raggedright + +\metrics + +% Uses the fontinst package. + +\needsfontinstversion{1.900} + +% \unfakable is a glyph which can't be faked. + +\setcommand\unfakable#1{ + \setglyph{#1} + \glyphrule{500}{500} + \glyphwarning{missing glyph `#1'} + \endsetglyph +} + +\begincomment +\section{Math symbol glyphs} +\endcomment + +\unfakable{minus} +\unfakable{periodcentered} +\unfakable{multiply} +\unfakable{asteriskmath} +\unfakable{divide} +\unfakable{diamondmath} +\unfakable{plusminus} +\unfakable{minusplus} +\unfakable{circleplus} +\unfakable{circleminus} +\unfakable{circlemultiply} +\unfakable{circledivide} +\unfakable{circledot} +\unfakable{circlecopyrt} +\unfakable{bullet} +\unfakable{equivasymptotic} +\unfakable{equivalence} +\unfakable{reflexsubset} +\unfakable{reflexsuperset} +\unfakable{lessequal} +\unfakable{greaterequal} +\unfakable{precedesequal} +\unfakable{followsequal} +\unfakable{similar} +\unfakable{approxequal} +\unfakable{propersubset} +\unfakable{propersuperset} +\unfakable{curlyless} +\unfakable{curlygreater} +\unfakable{arrowleft} +\unfakable{arrowright} +\unfakable{arrowup} +\unfakable{arrowdown} +\unfakable{arrowboth} +\unfakable{arrownortheast} +\unfakable{arrowsoutheast} +\unfakable{similarequal} +\unfakable{arrowdblleft} +\unfakable{arrowdblright} +\unfakable{arrowdblup} +\unfakable{arrowdbldown} +\unfakable{arrowdblboth} +\unfakable{arrownorthwest} +\unfakable{arrowsouthwest} +\unfakable{proportional} +\unfakable{infinity} +\unfakable{element} +\unfakable{owner} +\unfakable{triangle} +\unfakable{triangleinv} +\unfakable{slash} +\unfakable{mapstochar} +\unfakable{universal} +\unfakable{existential} +\unfakable{logicalnot} +\unfakable{emptyset} +\unfakable{Rfraktur} +\unfakable{Ifraktur} +\unfakable{perpendicular} +\unfakable{latticetop} +\unfakable{aleph} +\unfakable{A} +\unfakable{B} +\unfakable{C} +\unfakable{D} +\unfakable{E} +\unfakable{F} +\unfakable{G} +\unfakable{H} +\unfakable{I} +\unfakable{J} +\unfakable{K} +\unfakable{L} +\unfakable{M} +\unfakable{N} +\unfakable{O} +\unfakable{P} +\unfakable{Q} +\unfakable{R} +\unfakable{S} +\unfakable{T} +\unfakable{U} +\unfakable{V} +\unfakable{W} +\unfakable{X} +\unfakable{Y} +\unfakable{Z} +\unfakable{union} +\unfakable{intersection} +\unfakable{logicaland} +\unfakable{logicalor} +\unfakable{turnstileleft} +\unfakable{turnstileright} +\unfakable{braceleft} +\unfakable{braceright} +\unfakable{angleleft} +\unfakable{angleright} +\unfakable{bar} +\unfakable{arrowbothv} +\unfakable{arrowdblbothv} +\unfakable{backslash} +\unfakable{wreathproduct} +\unfakable{coproduct} +\unfakable{gradient} +\unfakable{integral} +\unfakable{unionsq} +\unfakable{intersectionsq} +\unfakable{subsetsqequal} +\unfakable{supersetsqequal} +\unfakable{section} +\unfakable{dagger} +\unfakable{daggerdbl} +\unfakable{paragraph} +\unfakable{club} +\unfakable{diamond} +\unfakable{heart} +\unfakable{spade} + +\unfakable{degree} + +\setglyph{largedegree} + \glyph{degree}{ + \div{\mul{1000}{\width{bullet}}}{\width{degree}} + } +\endsetglyph + +\setglyph{openbullet} + \moveup{\sub{\height{bullet}}{\height{largedegree}}} + \glyph{largedegree}{1000} + \moveup{\sub{\height{largedegree}}{\height{bullet}}} +\endsetglyph + +\unfakable{minute} + +\setglyph{prime} + \moveup{\sub{\height{bullet}}{\height{largedegree}}} + \glyph{minute}{\div{\mul{1000}{\width{bullet}}}{\width{degree}}} + \moveup{\sub{\height{largedegree}}{\height{bullet}}} +\endsetglyph + +\unfakable{less} +\unfakable{greater} + +\setglyph{lessmuch} + \glyph{less}{1000} + \movert{\scale{\width{less}}{-400}} + \glyph{less}{1000} +\endsetglyph + +\setglyph{greatermuch} + \glyph{greater}{1000} + \movert{\scale{\width{greater}}{-400}} + \glyph{greater}{1000} +\endsetglyph + +\unfakable{zero} + +\setglyph{emptysetstress} + \push + \movert{ + \div{\sub{\width{zero}}{\width{slash}}}{2} + } + \moveup{ + \div{ + \sub{ + \add{\height{zero}}{\depth{slash}} + }{ + \add{\height{slash}}{\depth{zero}} + } + }{2} + } + \glyph{slash}{1000} + \pop + \glyph{zero}{1000} +\endsetglyph + +\setglyph{unionmulti} + \push + \movert{\div{\sub{\width{union}}{\scale{\width{plus}}{700}}}{2}} + \moveup{\div{\width{plus}}{4}} + \glyph{plus}{700} + \pop + \glyph{union}{1000} +\endsetglyph + +\unfakable{bracketleftbt} +\unfakable{bracketrightbt} +\unfakable{bracketlefttp} +\unfakable{bracketrighttp} + +\setglyph{floorleft} + \glyph{bracketleftbt}{1000} +\endsetglyph + +\setglyph{floorright} + \glyph{bracketrightbt}{1000} +\endsetglyph + +\setglyph{ceilingleft} + \glyph{bracketlefttp}{1000} +\endsetglyph + +\setglyph{ceilingright} + \glyph{bracketrighttp}{1000} +\endsetglyph + +\setglyph{bardbl} + \glyph{bar}{1000} + \glyph{bar}{1000} +\endsetglyph + +\unfakable{radical} +\unfakable{radicalex} + +\setglyph{radicallow} + \moveup{\sub{\add{\height{radicalex}}{\depth{radicalex}}}{\height{radical}}} + \glyph{radical}{1000} + \moveup{\sub{\height{radical}}{\int{underlinethickness}}} +\endsetglyph + +\setglyph{negationslash} + \push + \movert{\div{\sub{\width{arrowright}}{\width{slash}}}{2}} + \glyph{slash}{1000} + \pop +\endsetglyph + +\endmetrics + +\section{Changes} + + +29 Dec 1993, v1.30: Created file. + +3 Jan 1994, v1.301: Renamed some of the glyphs, added fakes for +\texttt{arrowverttp} and friends. + +8 Jan 1994, v1.304: Renamed \texttt{similareq} to \texttt{similarequal}. + +9 Jan 1994, v1.305: +Renamed some glyphs to use the same names as Lucida New Math. + +10 Jan 1994, v1.306: Split \texttt{mathsym.mtx} into \texttt{mathsy.mtx} +(math symbols) and \texttt{mathex.mtx} (math extensions). + +16 October 2000, v\,1.915: Updated markup (made it a \LaTeXe\ +document!). (LH) + +\end{document} + diff --git a/Master/texmf-dist/tex/fontinst/misc/csc2x.tex b/Master/texmf-dist/tex/fontinst/misc/csc2x.tex new file mode 100644 index 00000000000..092840e00dd --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/misc/csc2x.tex @@ -0,0 +1,118 @@ +%% +%% This is file `csc2x.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ficonv.dtx (with options: `reglyphfigures,reglyphletters,glyphs') +%% +%% This is a generated file. +%% +%% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +%% hacked and maintained 1997, 1998 Sebastian Rahtz, +%% copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 the fontinst +%% maintenance team and any individual authors listed elsewhere in +%% this file. All rights reserved. +%% +%% This file is part of the fontinst system version 1.9. +%% ----------------------------------------------------- +%% +%% It may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.1 or, at your option, any later version. +%% +%%% From file: ficonv.dtx +\renameglyph{Asmall}{a} +\renameglyph{Bsmall}{b} +\renameglyph{Csmall}{c} +\renameglyph{Dsmall}{d} +\renameglyph{Esmall}{e} +\renameglyph{Fsmall}{f} +\renameglyph{Gsmall}{g} +\renameglyph{Hsmall}{h} +\renameglyph{Ismall}{i} +\renameglyph{Jsmall}{j} +\renameglyph{Ksmall}{k} +\renameglyph{Lsmall}{l} +\renameglyph{Msmall}{m} +\renameglyph{Nsmall}{n} +\renameglyph{Osmall}{o} +\renameglyph{Psmall}{p} +\renameglyph{Qsmall}{q} +\renameglyph{Rsmall}{r} +\renameglyph{Ssmall}{s} +\renameglyph{Tsmall}{t} +\renameglyph{Usmall}{u} +\renameglyph{Vsmall}{v} +\renameglyph{Wsmall}{w} +\renameglyph{Xsmall}{x} +\renameglyph{Ysmall}{y} +\renameglyph{Zsmall}{z} +\renameglyph{zerooldstyle}{zero} +\renameglyph{oneoldstyle}{one} +\renameglyph{twooldstyle}{two} +\renameglyph{threeoldstyle}{three} +\renameglyph{fouroldstyle}{four} +\renameglyph{fiveoldstyle}{five} +\renameglyph{sixoldstyle}{six} +\renameglyph{sevenoldstyle}{seven} +\renameglyph{eightoldstyle}{eight} +\renameglyph{nineoldstyle}{nine} +\renameglyph{Acutesmall}{acute} +\renameglyph{Brevesmall}{breve} +\renameglyph{Caronsmall}{caron} +\renameglyph{Cedillasmall}{cedilla} +\renameglyph{Circumflexsmall}{circumflex} +\renameglyph{Dieresissmall}{dieresis} +\renameglyph{Dotaccentsmall}{dotaccent} +\renameglyph{Gravesmall}{grave} +\renameglyph{Hungarumlautsmall}{hungarumlaut} +\renameglyph{Macronsmall}{macron} +\renameglyph{Ogoneksmall}{ogonek} +\renameglyph{Ringsmall}{ring} +\renameglyph{Tildesmall}{tilde} +\renameglyph{ampersandsmall}{ampersand} +\renameglyph{centoldstyle}{cent} +\renameglyph{dollaroldstyle}{dollar} +\renameglyph{AEsmall}{ae} +\renameglyph{Ethsmall}{eth} +\renameglyph{Lslashsmall}{lslash} +\renameglyph{Oslashsmall}{oslash} +\renameglyph{OEsmall}{oe} +\renameglyph{Thornsmall}{thorn} +\renameglyph{Agravesmall}{agrave} +\renameglyph{Egravesmall}{egrave} +\renameglyph{Igravesmall}{igrave} +\renameglyph{Ogravesmall}{ograve} +\renameglyph{Ugravesmall}{ugrave} +\renameglyph{Aacutesmall}{aacute} +\renameglyph{Eacutesmall}{eacute} +\renameglyph{Iacutesmall}{iacute} +\renameglyph{Oacutesmall}{oacute} +\renameglyph{Uacutesmall}{uacute} +\renameglyph{Yacutesmall}{yacute} +\renameglyph{Acircumflexsmall}{acircumflex} +\renameglyph{Ecircumflexsmall}{ecircumflex} +\renameglyph{Icircumflexsmall}{icircumflex} +\renameglyph{Ocircumflexsmall}{ocircumflex} +\renameglyph{Ucircumflexsmall}{ucircumflex} +\renameglyph{Atildesmall}{atilde} +\renameglyph{Ntildesmall}{ntilde} +\renameglyph{Otildesmall}{otilde} +\renameglyph{Adieresissmall}{adieresis} +\renameglyph{Edieresissmall}{edieresis} +\renameglyph{Idieresissmall}{idieresis} +\renameglyph{Odieresissmall}{odieresis} +\renameglyph{Ydieresissmall}{ydieresis} +\renameglyph{Udieresissmall}{udieresis} +\renameglyph{Aringsmall}{aring} +\renameglyph{Ccedillasmall}{ccedilla} +\renameglyph{Scaronsmall}{scaron} +\renameglyph{Zcaronsmall}{zcaron} +\killglyph{dotlessi} +\renameglyph{FIsmall}{fi} +\renameglyph{FLsmall}{fl} +\renameglyph{SSsmall}{germandbls} +\endinput +%% +%% End of file `csc2x.tex'. diff --git a/Master/texmf-dist/tex/fontinst/misc/csckrn2x.tex b/Master/texmf-dist/tex/fontinst/misc/csckrn2x.tex new file mode 100644 index 00000000000..91428e1a4d2 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/misc/csckrn2x.tex @@ -0,0 +1,121 @@ +%% +%% This is file `csckrn2x.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ficonv.dtx (with options: `reglyphfigures,reglyphletters') +%% +%% This is a generated file. +%% +%% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +%% hacked and maintained 1997, 1998 Sebastian Rahtz, +%% copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 the fontinst +%% maintenance team and any individual authors listed elsewhere in +%% this file. All rights reserved. +%% +%% This file is part of the fontinst system version 1.9. +%% ----------------------------------------------------- +%% +%% It may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.1 or, at your option, any later version. +%% +%%% From file: ficonv.dtx +\renameglyph{Asmall}{a} +\renameglyph{Bsmall}{b} +\renameglyph{Csmall}{c} +\renameglyph{Dsmall}{d} +\renameglyph{Esmall}{e} +\renameglyph{Fsmall}{f} +\renameglyph{Gsmall}{g} +\renameglyph{Hsmall}{h} +\renameglyph{Ismall}{i} +\renameglyph{Jsmall}{j} +\renameglyph{Ksmall}{k} +\renameglyph{Lsmall}{l} +\renameglyph{Msmall}{m} +\renameglyph{Nsmall}{n} +\renameglyph{Osmall}{o} +\renameglyph{Psmall}{p} +\renameglyph{Qsmall}{q} +\renameglyph{Rsmall}{r} +\renameglyph{Ssmall}{s} +\renameglyph{Tsmall}{t} +\renameglyph{Usmall}{u} +\renameglyph{Vsmall}{v} +\renameglyph{Wsmall}{w} +\renameglyph{Xsmall}{x} +\renameglyph{Ysmall}{y} +\renameglyph{Zsmall}{z} +\renameglyph{zerooldstyle}{zero} +\renameglyph{oneoldstyle}{one} +\renameglyph{twooldstyle}{two} +\renameglyph{threeoldstyle}{three} +\renameglyph{fouroldstyle}{four} +\renameglyph{fiveoldstyle}{five} +\renameglyph{sixoldstyle}{six} +\renameglyph{sevenoldstyle}{seven} +\renameglyph{eightoldstyle}{eight} +\renameglyph{nineoldstyle}{nine} +\renameglyph{Acutesmall}{acute} +\renameglyph{Brevesmall}{breve} +\renameglyph{Caronsmall}{caron} +\renameglyph{Cedillasmall}{cedilla} +\renameglyph{Circumflexsmall}{circumflex} +\renameglyph{Dieresissmall}{dieresis} +\renameglyph{Dotaccentsmall}{dotaccent} +\renameglyph{Gravesmall}{grave} +\renameglyph{Hungarumlautsmall}{hungarumlaut} +\renameglyph{Macronsmall}{macron} +\renameglyph{Ogoneksmall}{ogonek} +\renameglyph{Ringsmall}{ring} +\renameglyph{Tildesmall}{tilde} +\renameglyph{ampersandsmall}{ampersand} +\renameglyph{centoldstyle}{cent} +\renameglyph{dollaroldstyle}{dollar} +\renameglyph{AEsmall}{ae} +\renameglyph{Ethsmall}{eth} +\renameglyph{Lslashsmall}{lslash} +\renameglyph{Oslashsmall}{oslash} +\renameglyph{OEsmall}{oe} +\renameglyph{Thornsmall}{thorn} +\renameglyph{Agravesmall}{agrave} +\renameglyph{Egravesmall}{egrave} +\renameglyph{Igravesmall}{igrave} +\renameglyph{Ogravesmall}{ograve} +\renameglyph{Ugravesmall}{ugrave} +\renameglyph{Aacutesmall}{aacute} +\renameglyph{Eacutesmall}{eacute} +\renameglyph{Iacutesmall}{iacute} +\renameglyph{Oacutesmall}{oacute} +\renameglyph{Uacutesmall}{uacute} +\renameglyph{Yacutesmall}{yacute} +\renameglyph{Acircumflexsmall}{acircumflex} +\renameglyph{Ecircumflexsmall}{ecircumflex} +\renameglyph{Icircumflexsmall}{icircumflex} +\renameglyph{Ocircumflexsmall}{ocircumflex} +\renameglyph{Ucircumflexsmall}{ucircumflex} +\renameglyph{Atildesmall}{atilde} +\renameglyph{Ntildesmall}{ntilde} +\renameglyph{Otildesmall}{otilde} +\renameglyph{Adieresissmall}{adieresis} +\renameglyph{Edieresissmall}{edieresis} +\renameglyph{Idieresissmall}{idieresis} +\renameglyph{Odieresissmall}{odieresis} +\renameglyph{Ydieresissmall}{ydieresis} +\renameglyph{Udieresissmall}{udieresis} +\renameglyph{Aringsmall}{aring} +\renameglyph{Ccedillasmall}{ccedilla} +\renameglyph{Scaronsmall}{scaron} +\renameglyph{Zcaronsmall}{zcaron} +\killglyph{dotlessi} +\killglyph{fi} +\killglyph{fl} +\killglyph{germandbls} +\offmtxcommand\setscaledrawglyph +\offmtxcommand\setglyph +\resetcommand\iftokeep#1\then{\ifnum 0<#1} +\endinput +%% +%% End of file `csckrn2x.tex'. diff --git a/Master/texmf-dist/tex/fontinst/misc/glyphbox.mtx b/Master/texmf-dist/tex/fontinst/misc/glyphbox.mtx new file mode 100644 index 00000000000..223504d54e1 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/misc/glyphbox.mtx @@ -0,0 +1,62 @@ +\relax + +\documentclass{article} +\usepackage{fontdoc} + +\begin{document} + +\title{\texttt{glyphbox.mtx}: showing metric boxes of glyphs} +\author{Lars Hellstr\"om} +\date{July 2003} +\maketitle + +\begin{abstract} + This file redefines the \verb|\setscaledrawglyph| command to make a + thin ($5$ AFM units) frame lining the inside of the metric box of + the glyph. This is can be useful when debugging commands for + building glyphs, as it gives graphic account of the glyph metrics. + Use \verb|\oncommand\setscaledrawglyph| or the \texttt{glyphon.mtx} + file to restore the normal command definition. +\end{abstract} + + +\begin{verbatim} + +\metrics + +\needsfontinstversion{1.914} + + +\offcommand\setscaledrawglyph + +\resetcommand\setscaledrawglyph#1#2#3#4#5#6#7#8#9{% + \csname saved-\string\setscaledrawglyph\endcsname + {#1/raw}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}% + \setglyph{#1}% + \push + \moveup{\neg{#8}}% + \glyphrule{5}{\add{#7}{#8}}% + \push + \ifnumber{#9}{>}{0}\then + \moveup{\add{#7}{#8}}% + \glyphrule{\add{\sub{#6}{5}}{#9}}{5}% + \else + \moveup{\add{#7}{#8}}% + \glyphrule{\sub{#6}{10}}{5}% + \fi + \pop + \glyphrule{\sub{#6}{10}}{5}% + \glyphrule{5}{\add{#7}{#8}}% + \pop + \glyph{#1/raw}{1000}% + \endsetglyph +} + + +\endmetrics + + +\end{verbatim} + + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/misc/glyphoff.mtx b/Master/texmf-dist/tex/fontinst/misc/glyphoff.mtx new file mode 100644 index 00000000000..35c3a287160 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/misc/glyphoff.mtx @@ -0,0 +1,8 @@ +\relax + +\metrics + +\offcommand\setscaledrawglyph +\let\setscaledrawglyph\setscalednotglyph + +\endmetrics diff --git a/Master/texmf-dist/tex/fontinst/misc/glyphon.mtx b/Master/texmf-dist/tex/fontinst/misc/glyphon.mtx new file mode 100644 index 00000000000..0746fd12981 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/misc/glyphon.mtx @@ -0,0 +1,7 @@ +\relax + +\metrics + +\oncommand\setscaledrawglyph + +\endmetrics diff --git a/Master/texmf-dist/tex/fontinst/misc/kernoff.mtx b/Master/texmf-dist/tex/fontinst/misc/kernoff.mtx new file mode 100644 index 00000000000..776011328c5 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/misc/kernoff.mtx @@ -0,0 +1,6 @@ +\relax +\metrics + +\offcommand\setkern + +\endmetrics diff --git a/Master/texmf-dist/tex/fontinst/misc/kernon.mtx b/Master/texmf-dist/tex/fontinst/misc/kernon.mtx new file mode 100644 index 00000000000..a864c142420 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/misc/kernon.mtx @@ -0,0 +1,6 @@ +\relax +\metrics + +\oncommand\setkern + +\endmetrics diff --git a/Master/texmf-dist/tex/fontinst/misc/osf2x.tex b/Master/texmf-dist/tex/fontinst/misc/osf2x.tex new file mode 100644 index 00000000000..a9ed8a9866a --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/misc/osf2x.tex @@ -0,0 +1,37 @@ +%% +%% This is file `osf2x.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ficonv.dtx (with options: `reglyphfigures,glyphs') +%% +%% This is a generated file. +%% +%% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +%% hacked and maintained 1997, 1998 Sebastian Rahtz, +%% copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 the fontinst +%% maintenance team and any individual authors listed elsewhere in +%% this file. All rights reserved. +%% +%% This file is part of the fontinst system version 1.9. +%% ----------------------------------------------------- +%% +%% It may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.1 or, at your option, any later version. +%% +%%% From file: ficonv.dtx +\renameglyph{zerooldstyle}{zero} +\renameglyph{oneoldstyle}{one} +\renameglyph{twooldstyle}{two} +\renameglyph{threeoldstyle}{three} +\renameglyph{fouroldstyle}{four} +\renameglyph{fiveoldstyle}{five} +\renameglyph{sixoldstyle}{six} +\renameglyph{sevenoldstyle}{seven} +\renameglyph{eightoldstyle}{eight} +\renameglyph{nineoldstyle}{nine} +\endinput +%% +%% End of file `osf2x.tex'. diff --git a/Master/texmf-dist/tex/fontinst/smbletx/digit2.etx b/Master/texmf-dist/tex/fontinst/smbletx/digit2.etx new file mode 100644 index 00000000000..48362854004 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/smbletx/digit2.etx @@ -0,0 +1,10 @@ +\relax +\encoding + +% digit2.etx - This ETX file defines the \digit commands through +\setcommand\digit#1{#1/2} +% so that it will append a suffix /2 to the glyph name given. +% Use this with a "suffix /2" clause in \installfont to select +% digits from a different font that most of the glyphs. + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/smbletx/ts1.etx b/Master/texmf-dist/tex/fontinst/smbletx/ts1.etx new file mode 100644 index 00000000000..7542b1644c7 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/smbletx/ts1.etx @@ -0,0 +1,760 @@ +%%% ==================================================================== +%%% @TeX-font-encoding-file{ +%%% author = "Sebastian Rahtz and Ulrik Vieth and +%%% Lars Hellstr{\"o}m", +%%% version = "1.913", +%%% date = "2003-02-08", +%%% time = "16:44:56 +01:00", +%%% filename = "ts1.etx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.thphy.uni-duesseldorf.de/~vieth/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "encoding, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is the TS1 encoding as a TeX font encoding +%%% file, for use with the fontinst utility. +%%% It implements the TeX text companion encoding.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} +\usepackage[TS1,T1]{fontenc} +\usepackage{textcomp} +\usepackage{fontdoc} + +\title{The \TeX\ text companion font encoding vector} +\author{Sebastian Rahtz, Ulrik Vieth} +\date{29 June 1998 \\ +Version 1.801} + +\begin{document} +\maketitle + +\section{Introduction} + +This document describes the \TeX{} text companion encoding vector. + +\encoding +\comment{\section{Default values}} + +\setstr{codingscheme}{TEX TEXT COMPANION SYMBOLS 1---TS1} + +\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{italicslant}{0} + +\comment{\section{Default font dimensions}} + +\setint{fontdimen(1)}{\int{italicslant}} % italic slant +\setint{fontdimen(2)}{\int{interword}} % interword space +\setint{fontdimen(3)}{0} % interword stretch +\setint{fontdimen(4)}{0} % interword shrink +\setint{fontdimen(5)}{\int{xheight}} % x-height +\setint{fontdimen(6)}{1000} % quad +\setint{fontdimen(7)}{\int{interword}} % extra space after . + + +\comment{\section{The encoding}} + +\nextslot{0} +\setslot{capitalgrave} + \comment{The grave accent `\capitalgrave{}', intended for use with + capital letters.} +\endsetslot + +\setslot{capitalacute} + \comment{The acute accent `\capitalacute{}', intended for use with + capital letters.} +\endsetslot + +\setslot{capitalcircumflex} + \comment{The circumflex accent `\capitalcircumflex{}', intended for + use with capital letters.} +\endsetslot + +\setslot{capitaltilde} + \comment{The tilde accent `\capitaltilde{}', intended for use with + capital letters.} +\endsetslot + +\setslot{capitaldieresis} + \comment{The umlaut or dieresis accent `\capitaldieresis{}', + intended for use with capital letters.} +\endsetslot + +\setslot{capitalhungarumlaut} + \comment{The long Hungarian umlaut `\capitalhungarumlaut{}', + intended for use with capital letters.} +\endsetslot + +\setslot{capitalring} + \comment{The ring accent `\capitalring{}', intended for use with + capital letters.} +\endsetslot + +\setslot{capitalcaron} + \comment{The caron or h\'a\v cek accent `\capitalcaron{}', intended + for use with capital letters.} +\endsetslot + +\setslot{capitalbreve} + \comment{The breve accent `\capitalbreve{}', intended for use with + capital letters.} +\endsetslot + +\setslot{capitalmacron} + \comment{The macron accent `\capitalmacron{}', intended for use with + capital letters.} +\endsetslot + +\setslot{capitaldotaccent} + \comment{The dot accent `\capitaldotaccent{}', intended for use with + capital letters.} +\endsetslot + +\setslot{cedilla} + \comment{The cedilla accent `\capitalcedilla{}', intended for use + with capital letters.} +\endsetslot + +\setslot{ogonek} + \comment{The ogonek accent `\capitalogonek{}', intended for use with + capital letters.} +\endsetslot + +\nextslot{13} +\setslot{quotesinglbase} + \comment{A straight single quote mark on the baseline, + `\textquotestraightbase'.} +\endsetslot + +\nextslot{18} +\setslot{quotedblbase} + \comment{A straight double quote mark on the baseline, + `\textquotestraightdblbase'.} +\endsetslot + +\nextslot{21} +\setslot{twelveudash} + \comment{A 2/3~em dash, `\texttwelveudash'.} +\endsetslot + +\setslot{threequartersemdash} + \comment{A 3/4~em dash, `\textthreequartersemdash'.} +\endsetslot + +\nextslot{23} +\setslot{capitalcompwordmark} + \comment{An invisible glyph, with zero width and depth, but the + height of capital letters. + It is used to stop ligaturing in words like `shelf{}ful'.} +\endsetslot + +\nextslot{24} +\setslot{arrowleft} + \comment{A left pointing arrow, `\textleftarrow', unavailable in + most PostScript fonts.} +\endsetslot + +\setslot{arrowright} + \comment{A right pointing arrow, `\textrightarrow', unavailable in + most PostScript fonts.} +\endsetslot + +\nextslot{26} +\setslot{tieaccentlowercase} + \comment{The original tie accent `\t{}', intended for use with + lowercase letters.} +\endsetslot + +\setslot{tieaccentcapital} + \comment{The tie accent `\capitaltie{}', intended for use with + capital letters.} +\endsetslot + +\setslot{newtieaccentlowercase} + \comment{A new tie accent `\newtie{}', intended for use with + lowercase letters.} +\endsetslot + +\setslot{newtieaccentcapital} + \comment{A new tie accent `\capitalnewtie{}', intended for use + with capital letters.} +\endsetslot + +\nextslot{31} +\setslot{ascendercompwordmark} + \comment{An invisible glyph, with zero width and depth, but the + height of lowercase letters with ascenders. + It is used to stop ligaturing in words like `shelf{}ful'.} +\endsetslot + +\nextslot{32} +\setslot{blank} + \comment{The blank indicator `\textblank', similar to the letter `b' + with an oblique bar throgh the stem.} +\endsetslot + +\nextslot{36} +\setslot{dollar} + \comment{The dollar sign `\textdollar'.} +\endsetslot + +\nextslot{39} +\setslot{quotesingle} + \comment{A straight single quote mark, `\textquotesingle'.} +\endsetslot + +\nextslot{42} +\setslot{asteriskcentered} + \comment{The centered asterisk, `\textasteriskcentered'.} +\endsetslot + +\nextslot{44} +\setslot{comma} + \comment{The decimal comma `,'.} +\endsetslot + +\nextslot{45} +\setslot{hyphendbl} + \comment{An alternate double hyphen, `\textdblhyphen'.} +\endsetslot + +\nextslot{46} +\setslot{period} + \comment{The decimal point `.'.} +\endsetslot + +\nextslot{47} +\setslot{fraction} + \comment{The fraction slash `\textfractionsolidus'.} +\endsetslot + +\nextslot{48} +\setslot{zerooldstyle} + \comment{The oldstyle number `\oldstylenums{0}'.} +\endsetslot + +\setslot{oneoldstyle} + \comment{The oldstyle number `\oldstylenums{1}'.} +\endsetslot + +\setslot{twooldstyle} + \comment{The oldstyle number `\oldstylenums{2}'.} +\endsetslot + +\setslot{threeoldstyle} + \comment{The oldstyle number `\oldstylenums{3}'.} +\endsetslot + +\setslot{fouroldstyle} + \comment{The oldstyle number `\oldstylenums{4}'.} +\endsetslot + +\setslot{fiveoldstyle} + \comment{The oldstyle number `\oldstylenums{5}'.} +\endsetslot + +\setslot{sixoldstyle} + \comment{The oldstyle number `\oldstylenums{6}'.} +\endsetslot + +\setslot{sevenoldstyle} + \comment{The oldstyle number `\oldstylenums{7}'.} +\endsetslot + +\setslot{eightoldstyle} + \comment{The oldstyle number `\oldstylenums{8}'.} +\endsetslot + +\setslot{nineoldstyle} + \comment{The oldstyle number `\oldstylenums{9}'.} +\endsetslot + +\nextslot{60} +\setslot{angbracketleft} + \comment{The opening angle bracket `\textlangle', unavailable in + most PostScript fonts.} +\endsetslot + +\nextslot{61} +\setslot{minus} + \comment{The subtraction sign `\textminus'.} +\endsetslot + +\nextslot{62} +\setslot{angbracketright} + \comment{The closing angle bracket `\textrangle', unavailable in + most PostScript fonts.} +\endsetslot + +\nextslot{77} +\setslot{Omegainv} + \comment{The inverted Ohm sign `\textmho', unavailable in most fonts.} +\endsetslot + +\nextslot{79} + \comment{A circle `\textbigcircle', big enough to enclose a letter + as in `\textcopyright' or `\textregistered'.} +\setslot{bigcircle} +\endsetslot + +\nextslot{87} +\setslot{Omega} + \comment{The upright Ohm sign `\textohm', unavailable in most fonts. + Even if it is available in Mac-encoded fonts, it isn't directly + accessible in the 8r or 8y encodings.} +\endsetslot + +\nextslot{91} +\setslot{openbracketleft} + \comment{The opening double square bracket `\textlbrackdbl', + unavailable in most PostScript fonts.} +\endsetslot + +\nextslot{93} +\setslot{openbracketright} + \comment{The closing double square bracket `\textrbrackdbl', + unavailable in most PostScript fonts.} +\endsetslot + +\nextslot{94} +\setslot{arrowup} + \comment{An upwards pointing arrow `\textuparrow', unavailable in + most PostScript fonts.} +\endsetslot + +\nextslot{95} +\setslot{arrowdown} + \comment{An downwards pointing arrow `\textdownarrow', unavailable + in most PostScript fonts.} +\endsetslot + +\nextslot{96} +\setslot{asciigrave} + \comment{An ASCII-style grave `\textasciigrave'. This is supposed + to be a character by itself rather than a combining accents.} +\endsetslot + +\nextslot{98} +\setslot{born} + \comment{The born symbol `\textborn', unavailable in most PostScript + fonts.} +\endsetslot + +\nextslot{99} +\setslot{divorced} + \comment{The divorced symbol `\textdivorced', unavailable in most + PostScript fonts.} +\endsetslot + +\nextslot{100} +\setslot{died} + \comment{The died symbol `\textdied', unavailable in most PostScript + fonts.} +\endsetslot + +\nextslot{108} +\setslot{leaf} + \comment{The leaf symbol `\textleaf', unavailable in most PostScript + fonts.} +\endsetslot + +\nextslot{109} +\setslot{married} + \comment{The married symbol `\textmarried', unavailable in most + PostScript fonts.} +\endsetslot + +\nextslot{110} +\setslot{musicalnote} + \comment{A musical note symbol `\textmusicalnote', unavailable in + most PostScript fonts.} +\endsetslot + +\nextslot{126} +\setslot{tildelow} + \comment{A lowered tilde `\texttildelow'. In most PostScript fonts + it can be substituted by `asciitilde', while `\textasciitilde' + is supposed to be a raised `tilde'.} +\endsetslot + +\nextslot{127} +\setslot{hyphendblchar} + \comment{The glyph used for hyphenation in this font, which will + almost always be the same as `hyphendbl'.} +\endsetslot + +\nextslot{128} +\setslot{asciibreve} + \comment{An ASCII-style breve `\textasciibreve'. This is supposed + to be a character by itself rather than a combining accents.} +\endsetslot + +\setslot{asciicaron} + \comment{An ASCII-style caron `\textasciicaron'. This is supposed + to be a character by itself rather than a combining accents.} +\endsetslot + +\setslot{asciiacutedbl} + \comment{An ASCII-style double tick mark, `\textacutedbl'.} +\endsetslot + +\setslot{asciigravedbl} + \comment{An ASCII-style double backtick mark, `\textgravedbl'.} +\endsetslot + +\setslot{dagger} + \comment{The single dagger `\textdagger'.} +\endsetslot + +\setslot{daggerdbl} + \comment{The double dagger `\textdaggerdbl'.} +\endsetslot + +\setslot{bardbl} + \comment{The double vertical bar `\textbardbl'.} +\endsetslot + +\setslot{perthousand} + \comment{The perthousand sign `\textperthousand'.} +\endsetslot + +\setslot{bullet} + \comment{The centered bullet `\textbullet'.} +\endsetslot + +\setslot{centigrade} + \comment{The degree centigrade symbol `\textcelsius'.} +\endsetslot + +\setslot{dollaroldstyle} + \comment{An oldstyle dollar sign `\textdollaroldstyle'.} +\endsetslot + +\setslot{centoldstyle} + \comment{An oldstyle cent sign `\textcentoldstyle'.} +\endsetslot + +\setslot{florin} + \comment{The florin sign `\textflorin'.} +\endsetslot + +\setslot{colonmonetary} + \comment{The Colon currency sign `\textcolonmonetary', similar to + a capital `C' with a vertical bar through the middle.} +\endsetslot + +\setslot{won} + \comment{The Won currency sign `\textwon', similar to a capital `W' + with two horizontal bars.} +\endsetslot + +\setslot{naira} + \comment{The Naira currency sign `\textnaira', similar to a + capital `N' with two horizontal bars.} +\endsetslot + +\setslot{guarani} + \comment{The Guarani currency sign `\textguarani', similar to + a capital `G' with a vertical bar through the middle.} +\endsetslot + +\setslot{peso} + \comment{The Peso currency sign `\textpeso', similar to a capital `P' + with a horizontal bar through the bowl or below the bowl.} +\endsetslot + +\setslot{lira} + \comment{The Lira currency sign `\textlira', similar to a sterling + sign `\textsterling' with two horizontal bars.} +\endsetslot + +\setslot{recipe} + \comment{The recipe symbol `\textrecipe', similar to a capital `R' + with an oblique bar through the tail.} +\endsetslot + +\setslot{interrobang} + \comment{The interrobang symbol `\textinterrobang', similar to + a combination of an exclamation mark and a question mark.} +\endsetslot + +\setslot{interrobangdown} + \comment{The inverted interrobang symbol `\textinterrobangdown', + similar to a combination of an inverted exclamation mark + and an inverted question mark.} +\endsetslot + +\setslot{dong} + \comment{The Dong currency sign `\textdong', similar to a lowercase + `d' with a horizontal bar through the stem and another bar below + the letter.} +\endsetslot + +\setslot{trademark} + \comment{The trademark sign `\texttrademark', similar to the raised + letters `TM'.} +\endsetslot + +\setslot{pertenthousand} + \comment{The pertenthousand sign `\textpertenthousand', unavailable + in most PostScript fonts.} +\endsetslot + +\setslot{pilcrow} + \comment{The pilcrow mark `\textpilcrow', similar to a paragraph + mark `\textparagraph' with a single stem.} +\endsetslot + +\setslot{baht} + \comment{The Baht currency sign `\textbaht', similar to a capital `B' + with a vertical bar through the middle.} +\endsetslot + +\setslot{numero} + \comment{The numero sign `\textnumero', similar to the letter `N' + with a raised `o', unavailable in most PostScript fonts.} +\endsetslot + +\setslot{discount} + \comment{The discount sign `\textdiscount', similar to a stylized + percent sign, unavailable in most PostScript fonts.} +\endsetslot + +\setslot{estimated} + \comment{The estimated sign `\textestimated', similar to an enlarged + lowercase `e', unavailable in most PostScript fonts.} +\endsetslot + +\setslot{openbullet} + \comment{The centered open bullet `\textopenbullet'', unavailable + in most PostScript fonts.} +\endsetslot + +\setslot{servicemark} + \comment{The service mark sign `\textservicemark', similar to the + raised letters `SM', unavailable in most PostScript fonts.} +\endsetslot + +\nextslot{160} +\setslot{quillbracketleft} + \comment{The opening quill bracket `\textlquill', unavailable in + most PostScript fonts.} +\endsetslot + +\setslot{quillbracketright} + \comment{The closing quill bracket `\textrquill', unavailable in + most PostScript fonts.} +\endsetslot + +\setslot{cent} + \comment{The cent sign `\textcent'.} +\endsetslot + +\setslot{sterling} + \comment{The British currency sign, `\textsterling'.} +\endsetslot + +\setslot{currency} + \comment{The international currency sign, `\textcurrency'.} +\endsetslot + +\setslot{yen} + \comment{The Japanese currency sign, `\textyen'.} +\endsetslot + +\setslot{brokenbar} + \comment{A broken vertical bar, `\textbrokenbar', similar to + `\textbar' with a gap through the middle.} +\endsetslot + +\setslot{section} + \comment{The section mark `\textsection'.} +\endsetslot + +\setslot{asciidieresis} + \comment{An ASCII-style dieresis `\textasciidieresis'. This is + supposed to be character by itself rather than an accents.} +\endsetslot + +\setslot{copyright} + \comment{The copyright sign `\textcopyright', similar to a small + letter `C' enclosed by a circle.} +\endsetslot + +\setslot{ordfeminine} + \comment{The raised letter `\textordfeminine'.} +\endsetslot + +\setslot{copyleft} + \comment{The reversed copyright sign `\textcopyleft', similar to + a small reversed `C' enclosed by a circle.} +\endsetslot + +\setslot{logicalnot} + \comment{The logical not sign `\textlnot'.} +\endsetslot + +\setslot{circledP} + \comment{A small letter `P' enclosed by a circle, `\textcircledP', + unavailable in most fonts.} +\endsetslot + +\setslot{registered} + \comment{The registered trademark sign `\textregistered', similar to + a small letter `R' enclosed by a circle.} +\endsetslot + +\setslot{asciimacron} + \comment{An ASCII-style macron `\textmacron'. This is supposed + to be a character by itself rather than a combining accents.} +\endsetslot + +\setslot{degree} + \comment{The degree sign `\textdegree'.} +\endsetslot + +\setslot{plusminus} + \comment{The plus or minus sign `\textpm'.} +\endsetslot + +\setslot{twosuperior} + \comment{The raised digit `\texttwosuperior'.} +\endsetslot + +\setslot{threesuperior} + \comment{The raised digit `\textthreesuperior'.} +\endsetslot + +\setslot{asciiacute} + \comment{An ASCII-style acute `\textasciiacute'. This is supposed + to be a character by itself rather than a combining accents.} +\endsetslot + +\setslot{mu} + \comment{The lowercase Greek letter `\textmu', intended for use as + a prefix `micro' in physical units.} +\endsetslot + +\setslot{paragraph} + \comment{The paragraph mark `\textparagraph'.} +\endsetslot + +\setslot{periodcentered} + \comment{The centered period `\textperiodcentered'.} +\endsetslot + +\setslot{referencemark} + \comment{The reference mark `\textreferencemark', similar to + a combination of the `multiply' and `divide' symbols.} +\endsetslot + +\setslot{onesuperior} + \comment{The raised digit `\textonesuperior'.} +\endsetslot + +\setslot{ordmasculine} + \comment{The raised letter `\textordmasculine'.} +\endsetslot + +\setslot{radical} + \comment{The radical sign `\textsurd', unavailable in most fonts. + Even if it is available in Mac-encoded fonts, it isn't directly + accessible in the 8r or 8y encodings.} +\endsetslot + +\setslot{onequarter} + \comment{The fraction `\textonequarter'.} +\endsetslot + +\setslot{onehalf} + \comment{The fraction `\textonehalf'.} +\endsetslot + +\setslot{threequarters} + \comment{The fraction `\textthreequarters'.} +\endsetslot + +\setslot{euro} + \comment{The European currency sign, similar to `\texteuro'.} +\endsetslot + + +\nextslot{214} +\setslot{multiply} + \comment{The multiplication sign `\texttimes'. + This symbol was originally intended to be put into slot~215, + but ended up in this slot by mistake, at which time it was + considered too late to change it.} +\endsetslot + +\nextslot{246} +\setslot{divide} + \comment{The divison sign `\textdiv'. + This symbol was originally intended to be put into slot~247, + but ended up in this slot by mistake, at which time it was + onsidered too late to change it.} +\endsetslot + +\endencoding + +\section{Notes on Euro fonts} + +The Euro$($Serif$\mid$Sans$\mid$Mono$)$ fonts downloadable from Adobe use +the glyph name \texttt{Euro} (in slot 128) and the unencoded glyph +\texttt{uni20AC}. It remains to be seen, what glyph names future +releases of new fonts will be using. + +The proposed Latin 9 (ISO-8859-15) encoding uses the `\texttt{currency}' +slot for the Euro sign, and changes a few other Latin 1 slots. + + +\section{Changes} + +(UV, 1998/06/08): +\begin{itemize} + \item brought up to symbol complement of EC/TC fonts 1.0, + adjusted symbol names to match LaTeX \texttt{ts1enc.def} v\,3.0. + \item added \texttt{capitalcompwordmark} and + \texttt{ascendercompwordmark}. + \item added new variant tie accents for lowercase and capitals. + \item added angle brackets and open square brackets + (glyph names based on Lucida New Math). + \item renamed \texttt{shortequals} to \texttt{hyphendbl} (in slot 42 + and 127). + \item renamed \texttt{ohm} and \texttt{mho} to \texttt{Omega} and + \texttt{Omegainv}. + \item renamed \texttt{$($left$\mid$right$)$pointingarrow} to + \texttt{arrowleft} and \texttt{arrowright}. + \item added various symbols and currency signs, including + \texttt{euro}. +\end{itemize} + +(LH, 2000/03/07): +\begin{itemize} + \item + Added default setting of \texttt{italicslant} integer + (otherwise \texttt{ts1.etx} won't work with \verb|\generalpltomtx|). + \item + Moved changes list and some comments to end of file. +\end{itemize} + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/smbletx/ts1i.etx b/Master/texmf-dist/tex/fontinst/smbletx/ts1i.etx new file mode 100644 index 00000000000..1fee6defb77 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/smbletx/ts1i.etx @@ -0,0 +1,7 @@ +\relax + +\encoding + +\inputetx{ts1} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/smbletx/ts1ij.etx b/Master/texmf-dist/tex/fontinst/smbletx/ts1ij.etx new file mode 100644 index 00000000000..1fee6defb77 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/smbletx/ts1ij.etx @@ -0,0 +1,7 @@ +\relax + +\encoding + +\inputetx{ts1} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/smbletx/ts1j.etx b/Master/texmf-dist/tex/fontinst/smbletx/ts1j.etx new file mode 100644 index 00000000000..1fee6defb77 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/smbletx/ts1j.etx @@ -0,0 +1,7 @@ +\relax + +\encoding + +\inputetx{ts1} + +\endencoding diff --git a/Master/texmf-dist/tex/fontinst/smblmtx/resetosf.mtx b/Master/texmf-dist/tex/fontinst/smblmtx/resetosf.mtx new file mode 100644 index 00000000000..bde54d55d8e --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/smblmtx/resetosf.mtx @@ -0,0 +1,88 @@ +% Copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Ulrik Vieth", +%%% version = "1.910", +%%% date = "16 November 1999", +%%% time = "23:01:44 CET", +%%% filename = "resetosf.mtx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "04190 88 254 2588", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, raw, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a metrics file, for use with the +%%% fontinst utility. It recodes glyph names +%%% for oldstyle numerals read from AFM files +%%% to glyph names with an `oldstyle' suffix.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc} + +\title{The \texttt{resetosf.mtx} metrics file} +\author{Ulrik Vieth} +\date{16 November 1999 \\ +Version 1.910} + +\begin{document} +\maketitle + +This document describes the \texttt{resetosf.mtx} metrics file, which is +used to recode raw glyph names for oldstyle numerals to glyph names +with an `oldstyle' suffix. + +\metrics + +\setcommand\oldstyleglyph#1{ + \ifisglyph{#1}\then + \setglyph{#1oldstyle}\glyph{#1}{1000} + \endsetglyph + \fi +} + +\setcommand\oldstylekerning#1{ + \ifisglyph{#1}\then + \setleftrightkerning{#1oldstyle}{#1}{1000} + \fi +} + +\oldstyleglyph{zero} +\oldstyleglyph{one} +\oldstyleglyph{two} +\oldstyleglyph{three} +\oldstyleglyph{four} +\oldstyleglyph{five} +\oldstyleglyph{six} +\oldstyleglyph{seven} +\oldstyleglyph{eight} +\oldstyleglyph{nine} + +\oldstylekerning{zero} +\oldstylekerning{one} +\oldstylekerning{two} +\oldstylekerning{three} +\oldstylekerning{four} +\oldstylekerning{five} +\oldstylekerning{six} +\oldstylekerning{seven} +\oldstylekerning{eight} +\oldstylekerning{nine} + +\endmetrics +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/smblmtx/textcomp.mtx b/Master/texmf-dist/tex/fontinst/smblmtx/textcomp.mtx new file mode 100644 index 00000000000..ac2216139f2 --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/smblmtx/textcomp.mtx @@ -0,0 +1,561 @@ +% Copyright 1997, 1998 Sebastian Rahtz, +% copyright 1998, 1999, 2003 the fontinst maintenance team and +% any individual authors listed elsewhere in this file. +% All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Sebastian Rahtz and Ulrik Vieth and +%%% Walter Schmidt and Lars Hellstr{\"o}m", +%%% version = "1.926", +%%% date = "2003-07-13", +%%% time = "23:34:04 +02:00", +%%% filename = "textcomp.mtx", +%%% email = "w-a-schmidt@arcor.de", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a font metrics file, for use with the +%%% fontinst utility. It provides the defaults +%%% used to install the text companion glyphs.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc}[2002/06/30] %Just guessing. + +\title{The \textsf{fontinst} text companion glyphs} +\author{Sebastian Rahtz\and Ulrik Vieth\and Walter Schmidt\and + Lars Hellstr\"om} +\date{Version 1.926} + +\showbranches + +\begin{document} +\maketitle + +\section{Introduction} + +This document describes the glyphs used by the \textsf{fontinst} +package when generating \TeX{} text companion fonts. + +\metrics + +\needsfontinstversion{1.917} + +% \unfakable is a glyph which can't be faked. + +\setcommand\unfakable#1{ + \setglyph{#1} + \glyphrule{500}{500} + \glyphwarning{missing glyph `#1'} + \endsetglyph +} +% \unfakableaccent is similar, but has an ``accent position'' +\setcommand\unfakableaccent#1{ + \setglyph{#1} + \moveup{\add{\int{xheight}}{50}} + \movert{\scale{\add{\int{xheight}}{50}}{\int{italicslant}}} + \glyphrule{250}{\sub{\sub{\int{ascender}}{\int{xheight}}}{100}} + \movert{\neg{\scale{\add{\int{xheight}}{50}}{\int{italicslant}}}} + \glyphwarning{missing glyph `#1'} + \endsetglyph +} + +% \fakeglyph replaces glyph #1 by #2, if it exists. + +\setcommand\fakeglyph#1#2{ + \ifisglyph{#2}\then + \setglyph{#1} + \glyph{#2}{1000} + \endsetglyph + \Fi +} + + +\begincomment +\section{Default values} +\endcomment + +\setint{italicslant}{0} +\setint{xheight}{\height{x}} +\setint{capheight}{\height{A}} +\setint{ascender}{\height{d}} +\setint{descender}{\depth{g}} +\setint{underlinethickness}{40} + +% Vertical symmetry axis. (WaS) +\setint{vaxis}{\scale{\sub{\height{parenleft}}{\depth{parenleft}}}{500}} + + +\begincomment +\section{Oldstyle numerals} +\endcomment + +\unfakable{zerooldstyle} +\unfakable{oneoldstyle} +\unfakable{twooldstyle} +\unfakable{threeoldstyle} +\unfakable{fouroldstyle} +\unfakable{fiveoldstyle} +\unfakable{sixoldstyle} +\unfakable{sevenoldstyle} +\unfakable{eightoldstyle} +\unfakable{nineoldstyle} + + +\begincomment +\section{Capital accents} +\endcomment + +\fakeglyph{capitalgrave}{grave} +\fakeglyph{capitalacute}{acute} +\fakeglyph{capitalcircumflex}{circumflex} +\fakeglyph{capitaltilde}{tilde} +\fakeglyph{capitaldieresis}{dieresis} +\fakeglyph{capitalhungarumlaut}{hungarumlaut} +\fakeglyph{capitalring}{ring} +\fakeglyph{capitalcaron}{caron} +\fakeglyph{capitalbreve}{breve} +\fakeglyph{capitalmacron}{macron} +\fakeglyph{capitaldotaccent}{dotaccent} +\fakeglyph{capitalcedilla}{cedilla} +\fakeglyph{capitalogonek}{ogonek} + + +\begincomment +\section{ASCII-style accents} +\endcomment + +\ifisglyph{asciitilde}\then + \setglyph{tildelow} + \glyph{asciitilde}{1000} + \endsetglyph +\Fi + +\ifisglyph{grave}\then + \setglyph{asciigrave} + \glyph{grave}{1000} + \endsetglyph +\Fi + +\ifisglyph{breve}\then + \setglyph{asciibreve} + \glyph{breve}{1000} + \endsetglyph +\Fi + +\ifisglyph{acute}\then + \setglyph{asciiacutedbl} + \ifisint{monowidth}\then + \glyph{acute}{1000} + \glyph{acute}{1000} + \Else + \glyph{acute}{1000} + \movert{\neg{\scale{\width{acute}}{333}}} + \glyph{acute}{1000} + \Fi + \endsetglyph +\Fi + +\ifisglyph{grave}\then + \setglyph{asciigravedbl} + \ifisint{monowidth}\then + \glyph{grave}{1000} + \glyph{grave}{1000} + \Else + \glyph{grave}{1000} + \movert{\neg{\scale{\width{grave}}{333}}} + \glyph{grave}{1000} + \Fi + \endsetglyph +\Fi + +\ifisglyph{caron}\then + \setglyph{asciicaron} + \glyph{caron}{1000} + \endsetglyph +\Fi + +\ifisglyph{dieresis}\then + \setglyph{asciidieresis} + \glyph{dieresis}{1000} + \endsetglyph +\Fi + +\ifisglyph{macron}\then + \setglyph{asciimacron} + \glyph{macron}{1000} + \endsetglyph +\Fi + +\ifisglyph{acute}\then + \setglyph{asciiacute} + \glyph{acute}{1000} + \endsetglyph +\Fi + + +\begincomment +\section{Glyphs} +\endcomment + +\setglyph{capitalcompwordmark} + \glyphrule{0}{\int{capheight}} +\endsetglyph +\setint{capitalcompwordmark-spacing}{0} + +\setglyph{ascendercompwordmark} + \glyphrule{0}{\int{ascender}} +\endsetglyph +\setint{ascendercompwordmark-spacing}{0} + +% centers wrt/ vertical symmetry axis. (WaS) +\ifisglyph{asterisk}\then + \resetglyph{asteriskcentered} + \moveup{\neg{\sub + {\scale{\sub{\height{asterisk}}{\depth{asterisk}}}{500}} + {\int{vaxis}} + }} + \glyph{asterisk}{1000} + \resetdepth{0} + \endresetglyph +\Fi + +% assumes that 2/3em = 667 and \width{endash} about 500 +\ifisglyph{endash}\then + \setglyph{twelveudash} + \ifisint{monowidth}\then + \glyph{hyphen}{1000} + \glyph{hyphen}{1000} + \Else + \glyph{endash}{1000} + \movert{\sub{667}{\mul{2}{\width{endash}}}} + \glyph{endash}{1000} + \comment{This assumes that \(2/3\,\mathrm{em} = 667\) and + that the leading of the \texttt{endash} is less than + \(333/4\).} + \Fi + \endsetglyph +\Fi + +% assumes that 3/4em = 750 and \width{endash} = 500 +\ifisglyph{endash}\then + \setglyph{threequartersemdash} + \ifisint{monowidth}\then + \glyph{hyphen}{1000} + \glyph{hyphen}{1000} + \Else + \glyph{endash}{1000} + \movert{\sub{750}{\mul{2}{\width{endash}}}} + \glyph{endash}{1000} + \comment{This assumes that the leading of the + \texttt{endash} is less than \(250/4\).} + \Fi + \endsetglyph +\Fi + +% questionable fakery, doesn't really work with all fonts +\ifisglyph{bracketleft}\then + \setglyph{openbracketleft} + \ifisint{monowidth}\then + \glyph{bracketleft}{1000} + \glyph{bracketleft}{1000} + \Else + \glyph{bracketleft}{1000} + \movert{\neg{\scale{\width{bracketleft}}{666}}} + \glyph{bracketleft}{1000} + \comment{This is questionable fakery, which doesn't + really work with all fonts.} + \Fi + \endsetglyph +\Fi + +% questionable fakery, doesn't really work with all fonts +\ifisglyph{bracketright}\then + \setglyph{openbracketright} + \ifisint{monowidth}\then + \glyph{bracketright}{1000} + \glyph{bracketright}{1000} + \Else + \glyph{bracketright}{1000} + \movert{\neg{\scale{\width{bracketright}}{666}}} + \glyph{bracketright}{1000} + \comment{This is questionable fakery, which doesn't + really work with all fonts.} + \Fi + \endsetglyph +\Fi + +% questionable fakery, doesn't really work with all fonts +\ifisglyph{bar}\then + \setglyph{bardbl} + \ifisint{monowidth}\then + \glyph{bar}{1000} + \glyph{bar}{1000} + \Else + \glyph{bar}{1000} + \movert{\neg{\scale{\width{bar}}{333}}} + \glyph{bar}{1000} + \comment{This is questionable fakery, which doesn't + really work with all fonts.} + \Fi + \endsetglyph +\Fi + +\ifareglyphs{degree,C}\then + \setglyph{centigrade} + \glyph{degree}{1000} + \glyph{C}{1000} + \resetitalic{\italic{C}} + \endsetglyph +\Fi + +\ifisglyph{Euro}\then + \setglyph{euro} + \glyph{Euro}{1000} + \endsetglyph +\Else\ifisglyph{C}\then + \setglyph{euro} + \movert{50} + \push + \moveup{\half{\sub{\height{C}}{\depth{C}}}} + \movert{\scale + {\half{\sub{\height{C}}{\depth{C}}}} + {\int{italicslant}} + } + \push + \moveup{\scale{\int{underlinethickness}}{1500}} + \glyphrule{\scale{\width{C}}{750}}{\int{underlinethickness}} + \pop + \moveup{\scale{\int{underlinethickness}}{-1500}} + \glyphrule{\scale{\width{C}}{700}}{\int{underlinethickness}} + \comment{That this bar is slightly shorter than the previous + is deliberate. That the two bars are not quite centered + around the vertical midpoint is also deliberate.} + \pop + \movert{50} + \comment{This movement should be much larger for some fonts, + e.g. New Century Schoolbook Italic, but experiments indicate + that it is independent of the italic slant.} + \glyph{C}{1000} + \resetitalic{\italic{C}} + \endsetglyph +\Fi\Fi + +\ifareglyphs{question,exclam}\then + \setglyph{interrobang} + \push + \movert{\add{\half{\sub{\width{question}}{\width{exclam}}}}{-50}} + \comment{The extra $-50$ serves to separate the exclamation mark + from the right side of the question mark.} + \glyph{exclam}{1000} + \pop + \glyph{question}{1000} + \endsetglyph +\Fi +\ifareglyphs{questiondown,exclamdown}\then + \setglyph{interrobangdown} + \push + \movert{\add + {\half{\sub{\width{questiondown}}{\width{exclamdown}}}} + {50} + } + \glyph{exclamdown}{1000} + \pop + \glyph{questiondown}{1000} + \endsetglyph +\Fi + + +\begincomment +\section{Unfakable glyphs} +In general, every glyph is unfakable unless we know how to fake it. +\endcomment + +\unfakableaccent{capitalgrave} % 8r,8y +\unfakableaccent{capitalacute} % 8r,8y +\unfakableaccent{capitalcircumflex} % 8r,8y +\unfakableaccent{capitaltilde} % 8r,8y +\unfakableaccent{capitaldieresis} % 8r,8y +\unfakableaccent{capitalhungarumlaut} % 8r,8y +\unfakableaccent{capitalring} % 8r,8y +\unfakableaccent{capitalcaron} % 8r,8y +\unfakableaccent{capitalbreve} % 8r,8y +\unfakableaccent{capitalmacron} % 8r,8y +\unfakableaccent{capitaldotaccent} % 8r,8y +\unfakable{capitalcedilla} % 8r,8y +\unfakable{capitalogonek} % 8r,8y +\unfakable{quotesinglbase} % 8r,8y +\unfakable{quotedblbase} % 8r,8y +\unfakable{twelveudash} % faked 8r,8x +\unfakable{threequartersemdash} % 8x (Adobe) +\unfakable{arrowleft} +\unfakable{arrowright} +\unfakableaccent{tieaccentlowercase} +\unfakableaccent{tieaccentcapital} +\unfakableaccent{newtieaccentlowercase} +\unfakableaccent{newtieaccentcapital} +\unfakable{blank} +\unfakable{dollar} % 8r,8y +\unfakable{quotesingle} % 8r,8y +\unfakable{asteriskcentered} % faked 8r,8y +\unfakable{comma} % 8r,8y +\unfakable{hyphendbl} +\unfakable{period} % 8r,8y +\unfakable{fraction} % 8r,8y +\unfakable{angbracketleft} +\unfakable{minus} % 8r,8y +\unfakable{angbracketright} +\unfakable{Omegainv} +\unfakable{bigcircle} +\unfakable{Omega} +\unfakable{openbracketleft} % faked 8r,8y +\unfakable{openbracketright} % faked 8r,8y +\unfakable{arrowup} +\unfakable{arrowdown} +\unfakable{asciigrave} % 8r,8y +\unfakable{born} +\unfakable{divorced} +\unfakable{died} +\unfakable{leaf} +\unfakable{married} +\unfakable{musicalnote} +\unfakable{tildelow} % 8r,8y +\unfakable{hyphendblchar} +\unfakable{asciibreve} % 8r,8y +\unfakable{asciicaron} % 8r,8y +\unfakable{asciiacutedbl} % faked 8r,8y +\unfakable{asciigravedbl} % faked 8r,8y +\unfakable{dagger} % 8r,8y +\unfakable{daggerdbl} % 8r,8y +\unfakable{bardbl} % faked 8r,8y +\unfakable{perthousand} % 8r,8y +\unfakable{bullet} % 8r,8y +\unfakable{centigrade} % faked 8r,8y +\unfakable{dollaroldstyle} % 8x (Adobe) +\unfakable{centoldstyle} % 8x (Adobe) +\unfakable{florin} % 8r,8y +\unfakable{colonmonetary} % 8x (Adobe) +\unfakable{won} +\unfakable{naira} +\unfakable{guarani} +\unfakable{peso} +\unfakable{lira} % 8x (URW) +\unfakable{recipe} +\unfakable{interrobang} +\unfakable{interrobangdown} +\unfakable{dong} +\unfakable{trademark} % 8r,8y +\unfakable{pertenthousand} % faked 8x +\unfakable{pilcrow} +\unfakable{baht} +\unfakable{numero} +\unfakable{discount} +\unfakable{estimated} +\unfakable{openbullet} +\unfakable{servicemark} +\unfakable{quillbracketleft} +\unfakable{quillbracketright} +\unfakable{cent} % 8r,8y +\unfakable{sterling} % 8r,8y +\unfakable{currency} % 8r,8y +\unfakable{yen} % 8r,8y +\unfakable{brokenbar} % 8r,8y +\unfakable{section} % 8r,8y +\unfakable{asciidieresis} % 8r,8y +\unfakable{copyright} % 8r,8y +\unfakable{ordfeminine} % 8r,8y +\unfakable{copyleft} +\unfakable{logicalnot} % 8r,8y +\unfakable{circledP} +\unfakable{registered} % 8r,8y +\unfakable{asciimacron} % 8r,8y +\unfakable{degree} % 8r,8y +\unfakable{plusminus} % 8r,8y +\unfakable{twosuperior} % 8r,8y +\unfakable{threesuperior} % 8r,8y +\unfakable{asciiacute} % 8r,8y +\unfakable{mu} % 8r,8y +\unfakable{paragraph} % 8r,8y +\unfakable{periodcentered} % 8r,8y +\unfakable{referencemark} +\unfakable{onesuperior} % 8r,8y +\unfakable{ordmasculine} % 8r,8y +\unfakable{radical} +\unfakable{onequarter} % 8r,8y +\unfakable{onehalf} % 8r,8y +\unfakable{threequarters} % 8r,8y +\unfakable{euro} % faked 8r,8y +\unfakable{multiply} % 8r,8y +\unfakable{divide} % 8r,8y + + +% \begincomment +% \section{Accents} +% \TeX's math accent-positioning requires accents to have zero depth, +% but is that really relevant for these accents? +% \endcomment +% +% \setcommand\zerodepth#1{ +% \ifisglyph{#1}\then +% \resetglyph{#1} +% \glyph{#1}{1000} +% \resetdepth{0} +% \endresetglyph +% \Fi +% } +% \zerodepth{capitalgrave} +% \zerodepth{capitalacute} +% \zerodepth{capitalcircumflex} +% \zerodepth{capitaltilde} +% \zerodepth{capitaldieresis} +% \zerodepth{capitalhungarumlaut} +% \zerodepth{capitalring} +% \zerodepth{capitalcaron} +% \zerodepth{capitalbreve} +% \zerodepth{capitalmacron} +% \zerodepth{capitaldotaccent} + +\endmetrics + +\section{Changes} + +1999/10/25: Definition of \verb|\unfakable| simplified. (UV\&LH) +Rationale: It is thoroughly confusing if the size of the black box +created by \verb|\unfakable| depends on the metrics of an unencoded +glyph that isn't accessible and therefore unavailable for all +pratical purposes. + +February--March 2003: Explicitly centering the +\texttt{asteriskcentered}. Introduced the \textit{vaxis} integer. (WaS) + +2003/07/09: +Making use of \verb|\showbranches|, \verb|\begincomment|, and +\verb|\endcomment|. Make definitions of \texttt{twelveudash} and +\texttt{threequartersemdash} less dependent on the exact width of +\texttt{endash}. Added a fake definition of \texttt{euro}. (LH) + +2003/07/10: +Commented out section on zero-depth accents. (LH) Rationale: +\texttt{TS1}-encoded fonts are, to my knowledge, never used in math. + +2003/07/13: +Added some \verb|\resetitalic| commands. Added fakes for +\texttt{interrobang} and \texttt{interrobangdown}. Using an +\verb|unfakableaccent| for unfakable accents. (LH) Rationale: +The result becomes much more readable. + +\end{document} diff --git a/Master/texmf-dist/tex/fontinst/smblmtx/unsetnum.mtx b/Master/texmf-dist/tex/fontinst/smblmtx/unsetnum.mtx new file mode 100644 index 00000000000..c9f89b9ea9a --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/smblmtx/unsetnum.mtx @@ -0,0 +1,62 @@ +% Copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Ulrik Vieth", +%%% version = "1.910", +%%% date = "16 November 1999", +%%% time = "23:02:47 CET", +%%% filename = "unsetnum.mtx", +%%% email = "fontinst@cogs.susx.ac.uk", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "24513 62 213 1967", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, raw, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a metrics file, for use with the +%%% fontinst utility. It makes glyph names +%%% for numerals undefined.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} +\usepackage{fontdoc} + +\title{The \texttt{unsetnum.mtx} metrics file} +\author{Ulrik Vieth} +\date{16 November 1999 \\ +Version 1.910} + +\begin{document} +\maketitle + +This document describes the \texttt{unsetnum.mtx} metrics file, which is +used to make glyph names for numerals undefined. + +\metrics + +\unsetglyph{zero} +\unsetglyph{one} +\unsetglyph{two} +\unsetglyph{three} +\unsetglyph{four} +\unsetglyph{five} +\unsetglyph{six} +\unsetglyph{seven} +\unsetglyph{eight} +\unsetglyph{nine} + +\endmetrics +\end{document} |