You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
3.2 KiB
89 lines
3.2 KiB
% Special macros for use with MFT output.
|
|
% Adapted to METAPOST sources by Wlodek Bzyl, July 2001.
|
|
|
|
\ifx\mptmacisloaded\relax\endinput\else\let\mptmacisloaded=\relax\fi
|
|
|
|
\catcode`\@=11
|
|
|
|
\font\tenlogo=logo10 % font used for the METAFONT logo
|
|
\font\tentex=cmtex10 \hyphenchar\tentex=-1 % font used for strings
|
|
\font\sevenit=cmti7 \scriptfont\itfam=\sevenit
|
|
\def\MF{{\tenlogo META}\-{\tenlogo FONT}}
|
|
\def\MP{{\tenlogo META}\-{\tenlogo POST}}
|
|
|
|
\parindent=0pt
|
|
\thinmuskip=5mu
|
|
\thickmuskip=6mu plus 6mu
|
|
\mathcode`\|="326A
|
|
|
|
\def\\#1{{\it#1}} % italic type for identifiers
|
|
\def\0#1#2#3{\hbox{\rm\'{}\kern-.2em\it#1#2#3\/\kern.05em}} % octal constant
|
|
\def\1#1{\mathop{\hbox{\rm#1}}} % operator, in roman type
|
|
\def\2#1{\mathop{\hbox{\mftbf#1\/\kern.05em}}} % operator, in bold type
|
|
\def\3#1{\,\mathclose{\hbox{\mftbf#1\/}}} % `fi' and `endgroup'
|
|
\def\4#1{\mathbin{\hbox{\mftbf#1\/}}} % `step' and `at'
|
|
\def\5#1{\hbox{\mftbf#1\/}} % `true' and `nullpicture'
|
|
\def\6#1{\mathbin{\rm#1}} % `++' and `scaled'
|
|
\def\7{\hbox\bgroup\mft@nocats\frenchspacing\mft@finstring} % string token
|
|
\def\8#1{\mathrel{\mathcode`\.="8000 \mathcode`\-="8000
|
|
#1\unkern}} % `..' and `--'
|
|
\def\9{\hfill$\%} % comment separator
|
|
\def\?#1{\mathopen{#1}\;} % `:', `::', and `||:'
|
|
\def\frac#1/#2{\leavevmode\kern.1em
|
|
\raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
|
|
/\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
|
|
|
|
\mathchardef\AM="2026 % ampersand
|
|
\let\BL=\medskip % space for empty line
|
|
\mathchardef\BS="026E % backslash
|
|
\mathchardef\HA="0222 % hat ("005E not as good)
|
|
\def\PS{\mathbin{+{-}+}} % pythagorean subtraction
|
|
\def\SH{\raise.7ex\hbox{$\scriptstyle\#$}} % sharp sign for sharped units
|
|
\mathchardef\TI="007E % tilde
|
|
|
|
\chardef\other=12
|
|
\def\mft@noc@ts{\catcode`\\=\other \catcode`\{=\other
|
|
\catcode`\}=\other \catcode`\$=\other \catcode`\&=\other
|
|
\catcode`\#=\other \catcode`\~=\other
|
|
\catcode`\_=\other \catcode`\^=\other}
|
|
\def\mft@nocats{\mft@noc@ts \catcode`\%=\other}
|
|
\def\mft@finstring"#1"{\tentex"#1"\egroup}
|
|
|
|
\newbox\mft@shorthyf \setbox\mft@shorthyf=\hbox{-\kern-.05em}
|
|
\mathchardef\period=`\.
|
|
{\catcode`\-=\active \global\def-{\copy\mft@shorthyf\mkern3.9mu}
|
|
\catcode`\.=\active \global\def.{\period\mkern3mu}}
|
|
|
|
\def\mftbf{\fam\bffam
|
|
\def\_{\kern.04em\vbox{\hrule width.3em height .6pt}\kern.08em}%
|
|
\tenbf}
|
|
|
|
\def\join#1${} % say %%\join in .mf file to join lines together
|
|
\def\]{\hskip0pt plus 1filll\ } % say % comment\] to get comment flush left
|
|
|
|
{\obeyspaces \global\let =\ } % don't skip spaces which begin a line
|
|
|
|
\def\mft@verbatimtex{\begingroup
|
|
\def\par{\leavevmode\endgraf}% don't skip empty lines
|
|
\mft@nocats \obeyspaces \obeylines \tt}
|
|
|
|
% the percent sign in btex .. etex group is a comment character.
|
|
\def\mft@btex{\begingroup \mft@noc@ts \obeyspaces \tt}
|
|
|
|
% Names `\mftbeginV', `\mftbeginB', and `\mftend' are hard-wired into MFT
|
|
|
|
\outer\def\mftbeginV#1{\5{#1}$\mftverbatimtex}
|
|
\outer\def\mftbeginB#1{\5{#1}$\mftbtex}
|
|
\def\mftend#1{$\5{#1}}
|
|
|
|
\outer\def\mftverbatimtex{\let\par=\endgraf \mft@verbatimtex \parskip=\z@
|
|
\mft@finish}
|
|
\outer\def\mftbtex{\mft@btex \mft@finish}
|
|
|
|
{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character
|
|
|obeylines % end of line is active
|
|
|gdef|mft@finish#1\mftend{#1|endgroup|mftend}}
|
|
|
|
\catcode`\@=12
|
|
|
|
\endinput
|
|
|