%% This is part of OpTeX project, see http://petr.olsak.net/optex \_codedecl \typosize {Font managing macros from OPmac <2020-02-29>} % loaded in format \_protected\_def \_typosize [#1/#2]{% \_textfontsize{#1}\_mathfontsize{#1}\_setbaselineskip{#2}% \_setmainvalues \_ignorespaces } \_protected\_def \_textfontsize #1{\_if$#1$\_else \_setfontsize{at#1\_ptunit}\_fi} \_def \_mathfontsize #1{\_if$#1$\_else \_tmpdim=#1\_ptunit \_edef\_sizemtext{\_ea\_ignorept \_the\_tmpdim \_ptmunit}% \_tmpdim=0.7\_tmpdim \_edef\_sizemscript{\_ea\_ignorept \_the\_tmpdim \_ptmunit}% \_tmpdim=#1\_ptunit \_tmpdim=0.5\_tmpdim \_edef\_sizemsscript{\_ea\_ignorept \_the\_tmpdim \_ptmunit}% \_fi } \_protected\_def \_typoscale [#1/#2]{% \_ifx$#1$\_def\_tmp{[/}\_else \_settmpdim{#1}\_optsize \_edef\_tmp{[\_ea\_ignorept\_the\_tmpdim/}\_fi \_ifx$#2$\_edef\_tmp{\_tmp]}\_else \_settmpdim{#2}\_baselineskip \_edef\_tmp{\_tmp \_ea\_ignorept\_the\_tmpdim]}\fi \_ea\_typosize\_tmp } \def\_settmpdim#1#2{% \_tmpdim=#1pt \_divide\_tmpdim by1000 \_tmpdim=\_ea\_ignorept \_the#2\_tmpdim } \_def \_setbaselineskip #1{\_if$#1$\_else \_tmpdim=#1\_ptunit \_baselineskip=\_tmpdim \_relax \_bigskipamount=\_tmpdim plus.33333\_tmpdim minus.33333\_tmpdim \_medskipamount=.5\_tmpdim plus.16666\_tmpdim minus.16666\_tmpdim \_smallskipamount=.25\_tmpdim plus.08333\_tmpdim minus.08333\_tmpdim \_normalbaselineskip=\_tmpdim \_jot=.25\_tmpdim \_maxdepth=.33333\_tmpdim \_setbox\_strutbox=\_hbox{\_vrule height.709\_tmpdim depth.291\_tmpdim width0pt}% \_fi } \_def\_setmainvalues {% \_mainbaselineskip=\_baselineskip \_mainfosize=\_optsize \_bf \_it \_bi \_rm \_normalmath % load fonts if \typosize is running firstly \_let \_setmainvalues =\_setmainvaluesL } \_def\_setmainvaluesL {\_rm \_everymath={\_normalmath}\_everydisplay={\_normalmath}} \_def\_scalemain {% \_ifdim \_mainfosize=0pt \_mainfosize=10pt \_mainbaselineskip=12pt \_let \_setmainvalues=\_setmainvaluesL \fi \_optsize=\_mainfosize \_baselineskip=\_mainbaselineskip } \_newskip \_mainbaselineskip \_mainbaselineskip=0pt \_relax \_newdimen \_mainfosize \_mainfosize=0pt \_protected\_def\_thefontsize[#1]{\_if$#1$\_else \_tmpdim=#1\_ptunit \_newcurrfontsize{at\_tmpdim}% \_fi \_ignorespaces } \_protected\_def\_thefontscale[#1]{\_ifx$#1$\_else \_tmpdim=#1pt \_divide\_tmpdim by1000 \_tmpdim=\_ea\_ea\_ea\_ignorept \_pdffontsize\_font \_tmpdim \_newcurrfontsize{at\_tmpdim}% \_fi \_ignorespaces } \_protected\_def\_em {% \_ea\_ifx \_the\_font \_tenit \_additcorr \_rm \_else \_ea\_ifx \_the\_font \_tenbf \_bi\_aftergroup\_afteritcorr\_else \_ea\_ifx \_the\_font \_tenbi \_additcorr \_bf \_else \_it \_aftergroup\_afteritcorr\_fi\_fi\_fi } \_def\_additcorr{\_ifdim\_lastskip>0pt \_skip0=\_lastskip \_unskip\_italcorr \_hskip\_skip0 \_else\_italcorr \_fi} \_def\_afteritcorr{\_futurelet\_next\_afteritcorrA} \_def\_afteritcorrA{\_ifx\_next.\_else\_ifx\_next,\_else \_italcorr \_fi\_fi} \_let\_italcorr=\/ \_protected\_def \_boldify {% \_let \_setmainvalues=\_setmainvaluesL \_let\it =\_bi \_let\rm =\_bf \_let\_normalmath=\_boldmath \_let\_it=\_bi \_let\_rm=\_bf \_rm } \_public \typosize \typoscale \thefontsize \thefontscale \em \boldify \scalemain \mainfosize \mainbaselineskip ; \_endcode % -------------------------------------