% This is from David Hull October 15th 1995 % % a) add support for narrowing fonts % %\catcode`\ =9 \catcode`\^^M=9 \catcode`\@=11 \catcode`\_=11 \catcode`\~=10 \newif\if_fake_narrow_ \_fake_narrow_false \def\fakenarrow#1{ \_fake_narrow_true \gdef\fake_narrow_width{#1} } % \def\latin_shape#1#2#3#4{ \gdef\font_shape{#1} \gdef\raw_shape{#2} \gdef\encoding_shape{#3} \gdef\latex_shape{#4} % Call fake_width before fake_shape so that narrow oblique will be % created from normal oblique rather than narrow roman. \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_width_{} \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_expert_encoding{ \if_file_exists{ \font_family\font_weight\raw_variant\font_shape \expert_encoding.mtx }\then \if_file_exists{ \font_family\font_weight\raw_variant\font_shape \expert_encoding\font_width.mtx }\then % no action required \else \immediate\write16{ Faking~narrow~font~ \font_family\font_weight\raw_variant\font_shape \expert_encoding\font_width \space from~ \font_family\font_weight\raw_variant\font_shape \expert_encoding } \transformfont{ \font_family\font_weight\raw_variant\font_shape \expert_encoding\font_width }{ \xscalefont{\fake_narrow_width}{ \frommtx{ \font_family\font_weight\raw_variant\font_shape \expert_encoding } } } \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{ 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 } } } %%% Do a ligfull installation if possible \if_file_exists{ \raw_encoding.mtx }\then \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 %%% End of ligfull installation \fi \fi } % % b) remove sc from widths, as it is a shape % \def\latin_widths{ \latin_width{}{} \latin_width{n}{c} } % % change in shapes % \def\latin_shapes{ \latin_shape{} {} {} {n} % normal \latin_shape{c}{c}{} {sc} % small caps --DLH \latin_shape{o}{o}{} {sl} % slanted \latin_shape{i}{i}{i}{it} % italic } % % fake small caps % \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. \def\encoding_shape{c} \def\raw_shape{} \fake_shape_ \fi }