% Mxedruli Base File `mxedbase.mf' % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Designed by Johannes Heinecke % % % % This software is under the LaTeX Project Public License % % Please send any improvements, corrections, suggestions, enhancements etc % % to the Author! % % % % Version 2.0 as of 16th June 1995 % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % mxedbase:=1; % Es soll nur einmal geladen werden. newinternal slant; def font_mxed_setup = % Eigenes Macro define_pixels(mxu, mxlittle, mxhalf, mxone, mxheight, mxthird, mxmiddle, mxtop, mxfeet, mxlow, mxzw); define_blacker_pixels(px1, py1, dpx1, dpy1, pdot, pdash); pickup pencircle xscaled px1 yscaled py1 rotated -10; % was -10 mxed_pen:=savepen; pickup pencircle xscaled px1 yscaled .7py1 rotated -10; % was -10 mxed_finepen:=savepen; pickup pencircle xscaled px1 yscaled py1 rotated -100; % was -10 mxed_penturned:=savepen; pickup pencircle xscaled dpx1 yscaled dpy1 rotated -10; mxed_digitpen:=savepen; % Pen for digits and punctuation pickup pencircle scaled pdot; mxed_dot:=savepen; % Pen for dots pickup pencircle scaled pdash; mxed_dash:=savepen; % Pen for lines pickup pensquare scaled pdash; mxed_square:=savepen; pickup pencircle xscaled px1 yscaled py1; mxed_pencc:=savepen; currenttransform:=identity slanted slant yscaled aspect_ratio; enddef; if known cmbase: def makebox(text rule) = for y=0,h,mxlittle,-d,mxthird: rule((0,y)t_,(r,y)t_); endfor % horizontals for x=0,r,r-mxzw,mxhalf,mxone: rule((x,-d)t_,(x,h)t_); endfor % verticals % for x=u*(1+floor(l/u)) step u until r-1: % rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals % if charic<>0: % rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction enddef; else: def makebox(text r) = % horizontal lines on y-values: % 0, char-height, char-depth, mxlittle, ... for y=0%,h.o_,-d.o_ ,mxlittle,mxthird, mxheight,-mxlow: r((0,y),(w,y)); endfor % vertical lines on x-values: % 0, char-width, char-width - mxzw % for x=0,w,w-mxzw, mxhalf, mxone: r((x,-d.o_),(x,h.o_)); endfor for x=0,w, mxhalf, mxone: r((x,-mxlow),(x,mxheight)); endfor if charic<>0: r((w+charic*hppp,h.o_),(w+charic*hppp,.5h.o_)); fi enddef; fi endinput;