summaryrefslogtreecommitdiff
path: root/fonts/cmll
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/cmll
Initial commit
Diffstat (limited to 'fonts/cmll')
-rw-r--r--fonts/cmll/README74
-rw-r--r--fonts/cmll/cmll.dtx395
-rw-r--r--fonts/cmll/cmll.ins21
-rw-r--r--fonts/cmll/cmll.map33
-rw-r--r--fonts/cmll/cmll.pdfbin0 -> 107329 bytes
-rwxr-xr-xfonts/cmll/install.sh31
-rw-r--r--fonts/cmll/latex/cmll.sty110
-rw-r--r--fonts/cmll/latex/ucmllr.fd22
-rw-r--r--fonts/cmll/latex/ucmllss.fd20
-rw-r--r--fonts/cmll/latex/ueull.fd17
-rw-r--r--fonts/cmll/mf/cmllbx10.mf76
-rw-r--r--fonts/cmll/mf/cmllbx12.mf76
-rw-r--r--fonts/cmll/mf/cmllbx5.mf76
-rw-r--r--fonts/cmll/mf/cmllbx6.mf76
-rw-r--r--fonts/cmll/mf/cmllbx7.mf76
-rw-r--r--fonts/cmll/mf/cmllbx8.mf76
-rw-r--r--fonts/cmll/mf/cmllbx9.mf76
-rw-r--r--fonts/cmll/mf/cmllr10.mf76
-rw-r--r--fonts/cmll/mf/cmllr12.mf76
-rw-r--r--fonts/cmll/mf/cmllr17.mf76
-rw-r--r--fonts/cmll/mf/cmllr5.mf76
-rw-r--r--fonts/cmll/mf/cmllr6.mf76
-rw-r--r--fonts/cmll/mf/cmllr7.mf76
-rw-r--r--fonts/cmll/mf/cmllr8.mf76
-rw-r--r--fonts/cmll/mf/cmllr9.mf76
-rw-r--r--fonts/cmll/mf/cmllss10.mf76
-rw-r--r--fonts/cmll/mf/cmllss12.mf76
-rw-r--r--fonts/cmll/mf/cmllss17.mf76
-rw-r--r--fonts/cmll/mf/cmllss8.mf76
-rw-r--r--fonts/cmll/mf/cmllss9.mf76
-rw-r--r--fonts/cmll/mf/cmllssbx10.mf76
-rw-r--r--fonts/cmll/mf/eullbx10.mf85
-rw-r--r--fonts/cmll/mf/eullbx5.mf85
-rw-r--r--fonts/cmll/mf/eullbx6.mf85
-rw-r--r--fonts/cmll/mf/eullbx7.mf85
-rw-r--r--fonts/cmll/mf/eullbx8.mf85
-rw-r--r--fonts/cmll/mf/eullbx9.mf85
-rw-r--r--fonts/cmll/mf/eullr10.mf83
-rw-r--r--fonts/cmll/mf/eullr5.mf85
-rw-r--r--fonts/cmll/mf/eullr6.mf85
-rw-r--r--fonts/cmll/mf/eullr7.mf85
-rw-r--r--fonts/cmll/mf/eullr8.mf85
-rw-r--r--fonts/cmll/mf/eullr9.mf85
-rw-r--r--fonts/cmll/mf/llcommon.mf227
-rw-r--r--fonts/cmll/mf/lleusym.mf168
-rw-r--r--fonts/cmll/mf/llsymbols.mf261
-rw-r--r--fonts/cmll/tfm/cmllbx10.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllbx12.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllbx5.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllbx6.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllbx7.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllbx8.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllbx9.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllr10.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllr12.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllr17.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllr5.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllr6.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllr7.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllr8.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllr9.tfmbin0 -> 184 bytes
-rw-r--r--fonts/cmll/tfm/cmllss10.tfmbin0 -> 188 bytes
-rw-r--r--fonts/cmll/tfm/cmllss12.tfmbin0 -> 188 bytes
-rw-r--r--fonts/cmll/tfm/cmllss17.tfmbin0 -> 188 bytes
-rw-r--r--fonts/cmll/tfm/cmllss8.tfmbin0 -> 188 bytes
-rw-r--r--fonts/cmll/tfm/cmllss9.tfmbin0 -> 188 bytes
-rw-r--r--fonts/cmll/tfm/cmllssbx10.tfmbin0 -> 188 bytes
-rw-r--r--fonts/cmll/tfm/eullbx10.tfmbin0 -> 280 bytes
-rw-r--r--fonts/cmll/tfm/eullbx5.tfmbin0 -> 280 bytes
-rw-r--r--fonts/cmll/tfm/eullbx6.tfmbin0 -> 280 bytes
-rw-r--r--fonts/cmll/tfm/eullbx7.tfmbin0 -> 280 bytes
-rw-r--r--fonts/cmll/tfm/eullbx8.tfmbin0 -> 280 bytes
-rw-r--r--fonts/cmll/tfm/eullbx9.tfmbin0 -> 280 bytes
-rw-r--r--fonts/cmll/tfm/eullr10.tfmbin0 -> 280 bytes
-rw-r--r--fonts/cmll/tfm/eullr5.tfmbin0 -> 280 bytes
-rw-r--r--fonts/cmll/tfm/eullr6.tfmbin0 -> 280 bytes
-rw-r--r--fonts/cmll/tfm/eullr7.tfmbin0 -> 280 bytes
-rw-r--r--fonts/cmll/tfm/eullr8.tfmbin0 -> 280 bytes
-rw-r--r--fonts/cmll/tfm/eullr9.tfmbin0 -> 280 bytes
-rw-r--r--fonts/cmll/type1/cmllbx10.pfbbin0 -> 12114 bytes
-rw-r--r--fonts/cmll/type1/cmllbx12.pfbbin0 -> 12120 bytes
-rw-r--r--fonts/cmll/type1/cmllbx5.pfbbin0 -> 12474 bytes
-rw-r--r--fonts/cmll/type1/cmllbx6.pfbbin0 -> 12290 bytes
-rw-r--r--fonts/cmll/type1/cmllbx7.pfbbin0 -> 12250 bytes
-rw-r--r--fonts/cmll/type1/cmllbx8.pfbbin0 -> 12359 bytes
-rw-r--r--fonts/cmll/type1/cmllbx9.pfbbin0 -> 12340 bytes
-rw-r--r--fonts/cmll/type1/cmllr10.pfbbin0 -> 12469 bytes
-rw-r--r--fonts/cmll/type1/cmllr12.pfbbin0 -> 12083 bytes
-rw-r--r--fonts/cmll/type1/cmllr17.pfbbin0 -> 12137 bytes
-rw-r--r--fonts/cmll/type1/cmllr5.pfbbin0 -> 12278 bytes
-rw-r--r--fonts/cmll/type1/cmllr6.pfbbin0 -> 11986 bytes
-rw-r--r--fonts/cmll/type1/cmllr7.pfbbin0 -> 12020 bytes
-rw-r--r--fonts/cmll/type1/cmllr8.pfbbin0 -> 11874 bytes
-rw-r--r--fonts/cmll/type1/cmllr9.pfbbin0 -> 12510 bytes
-rw-r--r--fonts/cmll/type1/cmllss10.pfbbin0 -> 12218 bytes
-rw-r--r--fonts/cmll/type1/cmllss12.pfbbin0 -> 7331 bytes
-rw-r--r--fonts/cmll/type1/cmllss17.pfbbin0 -> 7225 bytes
-rw-r--r--fonts/cmll/type1/cmllss8.pfbbin0 -> 7312 bytes
-rw-r--r--fonts/cmll/type1/cmllss9.pfbbin0 -> 7627 bytes
-rw-r--r--fonts/cmll/type1/cmllssbx10.pfbbin0 -> 12611 bytes
-rw-r--r--fonts/cmll/type1/eullbx10.pfbbin0 -> 13003 bytes
-rw-r--r--fonts/cmll/type1/eullbx5.pfbbin0 -> 8637 bytes
-rw-r--r--fonts/cmll/type1/eullbx6.pfbbin0 -> 13087 bytes
-rw-r--r--fonts/cmll/type1/eullbx7.pfbbin0 -> 12807 bytes
-rw-r--r--fonts/cmll/type1/eullbx8.pfbbin0 -> 12967 bytes
-rw-r--r--fonts/cmll/type1/eullbx9.pfbbin0 -> 13140 bytes
-rw-r--r--fonts/cmll/type1/eullr10.pfbbin0 -> 13019 bytes
-rw-r--r--fonts/cmll/type1/eullr5.pfbbin0 -> 13062 bytes
-rw-r--r--fonts/cmll/type1/eullr6.pfbbin0 -> 12838 bytes
-rw-r--r--fonts/cmll/type1/eullr7.pfbbin0 -> 12944 bytes
-rw-r--r--fonts/cmll/type1/eullr8.pfbbin0 -> 7817 bytes
-rw-r--r--fonts/cmll/type1/eullr9.pfbbin0 -> 13079 bytes
112 files changed, 3993 insertions, 0 deletions
diff --git a/fonts/cmll/README b/fonts/cmll/README
new file mode 100644
index 0000000000..60caec39ff
--- /dev/null
+++ b/fonts/cmll/README
@@ -0,0 +1,74 @@
+This directory contains the CMLL font. This font contains a handful of symbols
+used in the linear logic coommunity, designed for use with standard Computer
+Modern and AMS Euler fonts.
+
+This package is dated April 20, 2010.
+
+
+Installation
+------------
+
+* Using packages
+
+CMLL is part of reasonable TeX distributions (including TeXLive and MikteX).
+
+A Debian package is available at http://iml.univ-mrs.fr/~beffara/soft/, it can
+be installed even if an older version of CMLL is installed using one of the
+TeXLive packages, and it will have priority over it.
+
+* Using the shell script (for Unix)
+
+Say
+ ./install.sh /usr/share/texmf
+Replace "/usr/share/texmf" by the path of the TeX directory structure where
+you want to install the files.
+You may have to update TeX's databases by running "texhash" or "mktexlsr"
+(this is for Kpathsea-based distributions like TeX Live) or a similar command.
+
+* By hand
+
+Copy the .mf files from the "mf" subdirectory somewhere in Metafont's search
+path and the .sty and .fd files from the "latex" subdirectory somewhere in
+LaTeX's search path.
+
+Call TEXMF the base directory of your installation (on Unix this should be
+something like /usr/share/texmf or ~/texmf for a single user installation).
+Then copy the directories as follows:
+ copy "mf" as TEXMF/fonts/source/public/cmll
+ copy "latex" as TEXMF/tex/latex/cmll
+If you want to install the fonts in Type1 format:
+ copy "type1" as TEXMF/fonts/type1/public/cmll
+ copy "tfm" as TEXMF/fonts/tfm/public/cmll
+ copy "cmll.map" as TEXMF/fonts/map/dvips/cmll/cmll.map
+You may have to update TeX's databases by running "texhash" or "mktexlsr"
+(this is for Kpathsea-based distributions like teTeX) or a similar command.
+
+
+Usage
+-----
+
+When the files are correctly installed, compiling the file cmll.dtx with latex
+will produce a documentation for the package, including the list of defined
+symbols.
+
+To summarise, just say \usepackage{cmll} to get the extra symbols. Class
+options may be used to select a particular variant of the font, see the
+documentations for details.
+
+In order to use the Type1 versions, assuming the files are installed as
+described above, you need to use the provided file "cmll.map". Please refer to
+the documentation of you local installation for that.
+
+
+Feedback
+--------
+
+Any comments and suggestions are welcome, feel free to drop me a note at the
+address below.
+
+For those interested in legal stuff, this work is covered by the LaTeX Project
+Public License (LPPL).
+
+Enjoy !
+
+(c) Emmanuel Beffara <manu@beffara.org>, 2003--2010
diff --git a/fonts/cmll/cmll.dtx b/fonts/cmll/cmll.dtx
new file mode 100644
index 0000000000..82562167ab
--- /dev/null
+++ b/fonts/cmll/cmll.dtx
@@ -0,0 +1,395 @@
+% \title{Linear Logic symbols for Computer Modern}
+% \author{Emmanuel Beffara}
+% \date{April 20, 2010}
+%
+% \maketitle
+%
+% \section{Documentation}
+%
+% \subsection{Installation}
+%
+% The installation consists in copying the |.mf| files from the |mf|
+% subdirectory somewhere in Metafont's search path and the |.sty| and |.fd|
+% files from the |latex| subdirectory somewhere in \LaTeX's search path.
+%
+% Call |TEXMF| the base directory of your installation (on Unix this should be
+% something like |/usr/share/texmf| or |~/texmf| for a single user
+% installation). Then copy the directories as follows:
+% \begin{itemize}
+% \item copy |mf| as |TEXMF/fonts/source/public/cmll|
+% \item copy |latex| as |TEXMF/tex/latex/cmll|
+% \end{itemize}
+% If you want to install the fonts in Type1 format:
+% \begin{itemize}
+% \item copy |type1| as |TEXMF/fonts/type1/public/cmll|
+% \item copy |tfm| as |TEXMF/fonts/tfm/public/cmll|
+% \item copy |cmll.map| as |TEXMF/fonts/map/dvips/misc/cmll.map|
+% \end{itemize}
+% You may have to update \TeX's databases by running |texhash| or |mktexlsr|
+% (this is for Kpathsea-based distributions like te\TeX) or a similar command.
+% You may also have to register the map file for the Type1 fonts using
+% |updmap|, depending on your installation.
+% Linux users using Debian or Ubuntu can avoid all this by using the package
+% at |http://iml.univ-mrs.fr/~beffara/soft/| (updated more often than TexLive).
+%
+% \subsection{Package loading}
+%
+% The package is loaded by simply saying |\usepackage{cmll}|. The variant of
+% the font that should be used is chosen using the following package options:
+% \begin{quote}
+% \begin{tabular}{>{\ttfamily}ll}
+% cm & Computer Modern serif \\
+% ss & Computer Modern sans serif \\
+% euler & AMS Euler \\
+% emu & emulation mode (see section~\ref{selection}) \\
+% auto & automatic selection among the above
+% (default, see section~\ref{selection})
+% \end{tabular}
+% \end{quote}
+%
+% \subsection{Symbols}
+%
+% The \texttt{cmll} font defines a handful of symbols useful in linear logic
+% that were not defined in other fonts and packages.
+% \begin{symbols}{Unary operators:}
+% \dosymbol\oc
+% \dosymbol\wn
+% \dosymbol\shpos
+% \dosymbol\shneg
+% \dosymbol\shift
+% \end{symbols}
+% \begin{symbols}{Binary operators:}
+% \dosymbol\parr
+% \dosymbol\invamp
+% \dosymbol\with
+% \end{symbols}
+% \begin{symbols}{Large operators:}
+% \dosymbol\bigparr
+% \dosymbol\biginvamp
+% \dosymbol\bigwith
+% \end{symbols}
+% \begin{symbols}{Binary relations:}
+% \dosymbol\coh
+% \dosymbol\scoh
+% \dosymbol\incoh
+% \dosymbol\sincoh
+% \dosymbol\Perp
+% \dosymbol\simperp
+% \dosymbol\multimapinv
+% \dosymbol\multimapboth
+% \dosymbol\nmultimap
+% \dosymbol\nmultimapinv
+% \dosymbol\nmultimapboth
+% \end{symbols}
+% \begin{symbols}{Letter-like symbols:}
+% \dosymbol\Bot
+% \dosymbol\simbot
+% \end{symbols}
+% The symbols $\oc$, $\wn$ and $\with$ are actually characters from the
+% standard Computer Modern fonts declared with a new math code to get proper
+% spacing. See the following examples:
+% \[\begin{tabular}{ll@{\hspace{4em}}ll}
+% \verb/A \& B/ & $A \& B$ & \verb/A \with B/ & $A \with B$ \\
+% \verb/A = !B/ & $A = !B$ & \verb/A = \oc B/ & $A = \oc B$ \\
+% \verb/A = ?B/ & $A = ?B$ & \verb/A = \wn B/ & $A = \wn B$
+% \end{tabular}\]
+% The names |\parr| and |\invamp| are synonyms, the names |\bigparr| and
+% |\biginvamp| too. The macros |\biginvampemu| and |\bigwithemu| provide
+% emulations for the |\biginvamp| and |\bigwith| symbols, built using the
+% normal symbols at different sizes (using the |relsize| package). In
+% emulation mode (i.e. with the package option |emu|) the names |\biginvamp|
+% and |\bigwith| are synonyms for them.
+%
+% \subsection{Emulation and automatic selection}
+% \label{selection}
+%
+% If you use a math font family other than Computer Modern or Euler, you may
+% have an ampersand symbol that does not match the reversed ampersand from any
+% variant of CMLL. In this case, the |cmll| package provides a ``poor man''
+% version of the reversed ampersand and large ampersands, built using the
+% standard |\&| symbol.
+% Also provided are the ``big'' variants of |\with| and |\invamp| built using
+% the normal version at a different size (using the |relsize| package).
+% These versions can be used explicitly under the names |\invampemu|,
+% |\bigwithemu| and |\biginvampemu|.
+%
+% In the emulation mode, that is when the package is loaded with the |emu|
+% option, these variants are used instead of the symbols provided by the
+% font.
+% Moreover, in emulation mode, any symbol that already exists is preserved by
+% |cmll|, otherwise all symbols are redefined.
+% This is useful for instance with |txfonts|, which already provides |\invamp|
+% and |\multimapboth|.
+% Note that this feature works only if the package |cmll| is loaded
+% \emph{after} loading any package that might define one of the symbols
+% provided by CMLL.
+%
+% The automatic selection works as follows:
+% \begin{itemize}
+% \item if |euler| is loaded, use the Euler variant,
+% \item if |txfonts| or |pxfonts| is loaded, use the emulation mode,
+% \item if the default font is |cmss|, use the |ss| variant,
+% \item otherwise use the |cm| variant.
+% \end{itemize}
+%
+% \subsection{History}
+%
+% \begin{description}
+% \item [2010-04-20]
+% New symbols: |\multimapinv|, |\nmultimap|, |\nmultimapinv|,
+% |\nmultimapboth|.
+% \item [2009-01-23]
+% New symbols: |\multimapboth|, |\Perp|, |\Bot|, |\simperp|, |\simbot|.
+% Synonyms |\invamp| and |\biginvamp| added for compatibility.
+% New package option |emu|.
+% Various fixes and code improvements.
+% \item [2006-02-22]
+% First public release.
+% \end{description}
+%
+%
+% \section{Files}
+%
+% \subsection{This document}
+%
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{array,cmll}
+\newenvironment{symbols}[1]{%
+ \par%
+ \def\dosymbol##1{\leavevmode\hbox to .5\textwidth{%
+ \kern.25\textwidth \hbox to 2em{\hss$##1$\hfil}%
+ \texttt{\string##1}\hss}\penalty10}%
+ \flushleft%
+ #1\strut\\}{\endflushleft}
+\begin{document}
+\DocInput{cmll.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \subsection{Font definitions}
+%
+% The font definition file is deduced from the ones for Computer Modern. We
+% provide an NFSS entry named \texttt{cmllr} in medium and bold extended
+% versions.
+%
+% \begin{macrocode}
+%<*ucmllr>
+\DeclareFontShape{U}{cmllr}{m}{n}{%
+ <5><6><7><8><9>gen*cmllr%
+ <10><10.95>cmllr10%
+ <12><14.4>cmllr12%
+ <17.28->cmllr17%
+ }{}
+\DeclareFontShape{U}{cmllr}{bx}{n}{%
+ <5><6><7><8><9>gen*cmllbx%
+ <10><10.95>cmllbx10%
+ <12->cmllbx12%
+ }{}
+%</ucmllr>
+% \end{macrocode}
+%
+% The following is a definition for the sans-serif version, named
+% \texttt{cmllss}.
+%
+% \begin{macrocode}
+%<*ucmllss>
+\DeclareFontShape{U}{cmllss}{m}{n}{%
+ <-8>cmllss8%
+ <9>cmllss9%
+ <10>cmllss10
+ <12><14.4>cmllss12%
+ <17.28->cmllss17%
+ }{}
+\DeclareFontShape{U}{cmllss}{bx}{n}{%
+ <->cmllssbx10}{}
+%</ucmllss>
+% \end{macrocode}
+%
+% The following is a definition for the Euler-style version, named
+% \texttt{eull}.
+%
+% \begin{macrocode}
+%<*ueull>
+\DeclareFontShape{U}{eull}{m}{n}{%
+ <5><6><7><8><9>gen*eullr%
+ <10->eullr10}{}
+\DeclareFontShape{U}{eull}{bx}{n}{%
+ <5><6><7><8><9>gen*eullbx%
+ <10->eullbx10}{}
+%</ueull>
+% \end{macrocode}
+%
+% \subsection{The package}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{cmll}[2010/04/20 Linear Logic symbols for Computer Modern]
+% \end{macrocode}
+%
+% With the package option |emu|, symbols already defined are used and
+% |\invamp| (if undefined) is made by rotation using an ampersand. This
+% requires the |graphicx| package.
+%
+% \begin{macrocode}
+\let\cmll@ifemu=\iffalse
+\DeclareOption{emu}{\let\cmll@ifemu=\iftrue}
+% \end{macrocode}
+%
+% The font is declared as a symbol font named \texttt{llsymbols}, in normal
+% and bold versions. We provide package options to switch between the
+% standard, sans-serif and Euler-style variants.
+%
+% \begin{macrocode}
+\def\cmll@style{auto}
+\DeclareOption*{\edef\cmll@style{\CurrentOption}}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+% The following code is used to detect which family should be used. Euler is
+% detected if its package is loaded, emulation is activated for txfonts and
+% pxfonts, sans-serif is detected by looking at the default font family name.
+% \begin{macrocode}
+\RequirePackage{ifthen}
+\def\cmll@use@auto{%
+ \@ifpackageloaded{euler}{%
+ \def\cmll@style{euler}}{%
+ \@ifpackageloaded{txfonts}{%
+ \let\cmll@ifemu=\iftrue%
+ \def\cmll@style{cm}}{%
+ \@ifpackageloaded{pxfonts}{%
+ \let\cmll@ifemu=\iftrue%
+ \def\cmll@style{cm}}{%
+ \ifthenelse{\equal{\rmdefault}{cmss}}{%
+ \def\cmll@style{ss}}{%
+ \def\cmll@style{cm}}%
+ }}}%
+ \csname cmll@use@\cmll@style\endcsname}
+% \end{macrocode}
+%
+% The following macros are used to set up the font families and symbols from
+% other fonts.
+% \begin{macrocode}
+\def\cmll@use@cm{%
+ \DeclareSymbolFont{llsymbols}{U}{cmllr}{m}{n}%
+ \SetSymbolFont{llsymbols}{bold}{U}{cmllr}{bx}{n}%
+ \DeclareMathSymbol{\with}{\mathbin}{operators}{`\&}%
+ \DeclareMathSymbol{\oc}{\mathord}{operators}{`!}%
+ \DeclareMathSymbol{\wn}{\mathord}{operators}{`?}}
+% \end{macrocode}
+% Here is the sans-serif variant.
+% \begin{macrocode}
+\def\cmll@use@ss{%
+ \DeclareSymbolFont{llsymbols}{U}{cmllss}{m}{n}%
+ \SetSymbolFont{llsymbols}{bold}{U}{cmllss}{bx}{n}%
+ \DeclareMathSymbol{\with}{\mathbin}{operators}{`\&}%
+ \DeclareMathSymbol{\oc}{\mathord}{operators}{`!}%
+ \DeclareMathSymbol{\wn}{\mathord}{operators}{`?}}
+% \end{macrocode}
+% And here is the Euler variant.
+% \begin{macrocode}
+\def\cmll@use@euler{%
+ \DeclareSymbolFont{llsymbols}{U}{eull}{m}{n}%
+ \SetSymbolFont{llsymbols}{bold}{U}{eull}{bx}{n}%
+ \DeclareMathSymbol{\with}{\mathbin}{EulerFraktur}{"26}%
+ \DeclareMathSymbol{\oc}{\mathord}{EulerFraktur}{"21}%
+ \DeclareMathSymbol{\wn}{\mathord}{EulerFraktur}{"3F}}
+% \end{macrocode}
+% Finally we activate the proper variant.
+% \begin{macrocode}
+\csname cmll@use@\cmll@style\endcsname
+% \end{macrocode}
+%
+% In some cases it is preferable to emulate the |\invamp| by rotating the
+% ampersand symbol. Here is a robust definition of this rotation:
+% \begin{macrocode}
+\newcommand\invampemu{%
+ \mathbin{\mathchoice%
+ {\rotatebox[origin=c]{180}{$\&$}}%
+ {\rotatebox[origin=c]{180}{$\&$}}%
+ {\rotatebox[origin=c]{180}{$\scriptstyle\&$}}%
+ {\rotatebox[origin=c]{180}{$\scriptscriptstyle\&$}}%
+ }}
+% \end{macrocode}
+% We may also want to emulate the big versions of the ampersand. In this case
+% we change ther text size appropriately for each style, using the |relsize|
+% package. This version is reasonable at normal size and becomes approximative
+% when math is composed in small or large sizes.
+% \begin{macrocode}
+\newcommand\bigwithemu{%
+ \mathop{\mathchoice%
+ {\vcenter{\hbox{\relsize{+4}$\&$}}}%
+ {\vcenter{\hbox{\relsize{+2}$\&$}}}%
+ {\vcenter{\hbox{\relsize{+0.5}$\&$}}}%
+ {\vcenter{\hbox{\relsize{-1}$\&$}}}%
+ }}
+% \end{macrocode}
+% For the large inversed ampersand, we call the |\invamp| macro, which is
+% supposed to be defined (either as a proper character or as an emulation as
+% above). When it is emulated, this makes two nested |\mathchoice|s, which is
+% not very efficient.
+% \begin{macrocode}
+\newcommand\biginvampemu{%
+ \mathop{\mathchoice%
+ {\vcenter{\hbox{\relsize{+4}$\invamp$}}}%
+ {\vcenter{\hbox{\relsize{+2}$\invamp$}}}%
+ {\vcenter{\hbox{\relsize{+0.5}$\invamp$}}}%
+ {\vcenter{\hbox{\relsize{-1}$\invamp$}}}}}
+% \end{macrocode}
+%
+% The actual commands |\invamp|, |\bigwith| and |\biginvamp| can be defined in
+% various ways depending on the setup.
+%
+% \begin{macrocode}
+\cmll@ifemu
+ \@ifundefined{invamp}{%
+ \RequirePackage{graphicx}%
+ \let\invamp=\invampemu
+ }{}%
+ \RequirePackage{relsize}%
+ \let\bigwith=\bigwithemu
+ \let\biginvamp=\biginvampemu
+% \end{macrocode}
+% Already existing symbols are preserved in emulation mode.
+% \begin{macrocode}
+ \def\cmll@declare@symbol#1#2#3#4{%
+ \@ifundefined{#1}{%
+ \expandafter\DeclareMathSymbol%
+ \expandafter{\csname#1\endcsname}{#2}{#3}{#4}}{}}
+\else
+ \def\cmll@declare@symbol#1#2#3#4{%
+ \expandafter\DeclareMathSymbol%
+ \expandafter{\csname#1\endcsname}{#2}{#3}{#4}}
+\fi
+% \end{macrocode}
+%
+% The new symbol definitions are the same for all variants.
+% \begin{macrocode}
+\cmll@declare@symbol{invamp}{\mathbin}{llsymbols}{0}
+\let\parr=\invamp
+\cmll@declare@symbol{shpos}{\mathord}{llsymbols}{1}
+\cmll@declare@symbol{shneg}{\mathord}{llsymbols}{2}
+\cmll@declare@symbol{shift}{\mathord}{llsymbols}{3}
+\cmll@declare@symbol{coh}{\mathrel}{llsymbols}{4}
+\cmll@declare@symbol{scoh}{\mathrel}{llsymbols}{5}
+\cmll@declare@symbol{incoh}{\mathrel}{llsymbols}{6}
+\cmll@declare@symbol{sincoh}{\mathrel}{llsymbols}{7}
+\cmll@declare@symbol{bigwith}{\mathop}{llsymbols}{8}
+\cmll@declare@symbol{biginvamp}{\mathop}{llsymbols}{10}
+\let\bigparr=\biginvamp
+\cmll@declare@symbol{multimapboth}{\mathrel}{llsymbols}{12}
+\cmll@declare@symbol{Bot}{\mathord}{llsymbols}{13}
+\cmll@declare@symbol{Perp}{\mathrel}{llsymbols}{13}
+\cmll@declare@symbol{simbot}{\mathord}{llsymbols}{14}
+\cmll@declare@symbol{simperp}{\mathrel}{llsymbols}{14}
+\cmll@declare@symbol{multimapinv}{\mathrel}{llsymbols}{15}
+\cmll@declare@symbol{nmultimap}{\mathrel}{llsymbols}{16}
+\cmll@declare@symbol{nmultimapinv}{\mathrel}{llsymbols}{17}
+\cmll@declare@symbol{nmultimapboth}{\mathrel}{llsymbols}{18}
+%</package>
+% \end{macrocode}
+%
+% \Finale
diff --git a/fonts/cmll/cmll.ins b/fonts/cmll/cmll.ins
new file mode 100644
index 0000000000..a38a7cfd65
--- /dev/null
+++ b/fonts/cmll/cmll.ins
@@ -0,0 +1,21 @@
+\NeedsTeXFormat{LaTeX2e}
+
+\def\batchfile{cmll.ins}
+\input{docstrip}
+
+\askforoverwritefalse
+\keepsilent
+
+\preamble
+\endpreamble
+
+\generateFile{cmll.sty}{f}{
+ \from{cmll.dtx}{package}}
+\generateFile{ucmllr.fd}{f}{
+ \from{cmll.dtx}{ucmllr}}
+\generateFile{ucmllss.fd}{f}{
+ \from{cmll.dtx}{ucmllss}}
+\generateFile{ueull.fd}{f}{
+ \from{cmll.dtx}{ueull}}
+
+\endbatchfile
diff --git a/fonts/cmll/cmll.map b/fonts/cmll/cmll.map
new file mode 100644
index 0000000000..b787067809
--- /dev/null
+++ b/fonts/cmll/cmll.map
@@ -0,0 +1,33 @@
+cmllbx10 cmllbx10 <cmllbx10.pfb
+cmllbx12 cmllbx12 <cmllbx12.pfb
+cmllbx5 cmllbx5 <cmllbx5.pfb
+cmllbx6 cmllbx6 <cmllbx6.pfb
+cmllbx7 cmllbx7 <cmllbx7.pfb
+cmllbx8 cmllbx8 <cmllbx8.pfb
+cmllbx9 cmllbx9 <cmllbx9.pfb
+cmllr10 cmllr10 <cmllr10.pfb
+cmllr12 cmllr12 <cmllr12.pfb
+cmllr17 cmllr17 <cmllr17.pfb
+cmllr5 cmllr5 <cmllr5.pfb
+cmllr6 cmllr6 <cmllr6.pfb
+cmllr7 cmllr7 <cmllr7.pfb
+cmllr8 cmllr8 <cmllr8.pfb
+cmllr9 cmllr9 <cmllr9.pfb
+cmllss10 cmllss10 <cmllss10.pfb
+cmllss12 cmllss12 <cmllss12.pfb
+cmllss17 cmllss17 <cmllss17.pfb
+cmllss8 cmllss8 <cmllss8.pfb
+cmllss9 cmllss9 <cmllss9.pfb
+cmllssbx10 cmllssbx10 <cmllssbx10.pfb
+eullbx10 eullbx10 <eullbx10.pfb
+eullbx5 eullbx5 <eullbx5.pfb
+eullbx6 eullbx6 <eullbx6.pfb
+eullbx7 eullbx7 <eullbx7.pfb
+eullbx8 eullbx8 <eullbx8.pfb
+eullbx9 eullbx9 <eullbx9.pfb
+eullr10 eullr10 <eullr10.pfb
+eullr5 eullr5 <eullr5.pfb
+eullr6 eullr6 <eullr6.pfb
+eullr7 eullr7 <eullr7.pfb
+eullr8 eullr8 <eullr8.pfb
+eullr9 eullr9 <eullr9.pfb
diff --git a/fonts/cmll/cmll.pdf b/fonts/cmll/cmll.pdf
new file mode 100644
index 0000000000..f26a7f83c3
--- /dev/null
+++ b/fonts/cmll/cmll.pdf
Binary files differ
diff --git a/fonts/cmll/install.sh b/fonts/cmll/install.sh
new file mode 100755
index 0000000000..887b416ba0
--- /dev/null
+++ b/fonts/cmll/install.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+if [ -z "$1" ]
+then
+ cat >&2 <<EOF
+Syntax: $0 DIR
+DIR is the base directory of your TeX installation, e.g. /usr/share/texmf.
+EOF
+ exit 1
+fi
+
+set -e
+
+BASE="$1"
+
+mkdir -p "$BASE/fonts/source/public/cmll"
+cp mf/* "$BASE/fonts/source/public/cmll/"
+mkdir -p "$BASE/fonts/type1/public/cmll"
+cp type1/* "$BASE/fonts/type1/public/cmll/"
+mkdir -p "$BASE/fonts/tfm/public/cmll"
+cp tfm/* "$BASE/fonts/tfm/public/cmll/"
+mkdir -p "$BASE/fonts/map/dvips/cmll"
+cp cmll.map "$BASE/fonts/map/dvips/cmll/"
+mkdir -p "$BASE/tex/latex/cmll"
+cp latex/* "$BASE/tex/latex/cmll/"
+mkdir -p "$BASE/source/latex/cmll"
+cp cmll.dtx cmll.ins "$BASE/source/latex/cmll/"
+mkdir -p "$BASE/doc/fonts/cmll"
+cp README cmll.pdf "$BASE/doc/fonts/cmll"
+
+echo "All files are installed. You may have to run texhash now."
diff --git a/fonts/cmll/latex/cmll.sty b/fonts/cmll/latex/cmll.sty
new file mode 100644
index 0000000000..c159142e76
--- /dev/null
+++ b/fonts/cmll/latex/cmll.sty
@@ -0,0 +1,110 @@
+%%
+%% This is file `cmll.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% cmll.dtx (with options: `package')
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{cmll}[2010/04/20 Linear Logic symbols for Computer Modern]
+\let\cmll@ifemu=\iffalse
+\DeclareOption{emu}{\let\cmll@ifemu=\iftrue}
+\def\cmll@style{auto}
+\DeclareOption*{\edef\cmll@style{\CurrentOption}}
+\ProcessOptions\relax
+\RequirePackage{ifthen}
+\def\cmll@use@auto{%
+ \@ifpackageloaded{euler}{%
+ \def\cmll@style{euler}}{%
+ \@ifpackageloaded{txfonts}{%
+ \let\cmll@ifemu=\iftrue%
+ \def\cmll@style{cm}}{%
+ \@ifpackageloaded{pxfonts}{%
+ \let\cmll@ifemu=\iftrue%
+ \def\cmll@style{cm}}{%
+ \ifthenelse{\equal{\rmdefault}{cmss}}{%
+ \def\cmll@style{ss}}{%
+ \def\cmll@style{cm}}%
+ }}}%
+ \csname cmll@use@\cmll@style\endcsname}
+\def\cmll@use@cm{%
+ \DeclareSymbolFont{llsymbols}{U}{cmllr}{m}{n}%
+ \SetSymbolFont{llsymbols}{bold}{U}{cmllr}{bx}{n}%
+ \DeclareMathSymbol{\with}{\mathbin}{operators}{`\&}%
+ \DeclareMathSymbol{\oc}{\mathord}{operators}{`!}%
+ \DeclareMathSymbol{\wn}{\mathord}{operators}{`?}}
+\def\cmll@use@ss{%
+ \DeclareSymbolFont{llsymbols}{U}{cmllss}{m}{n}%
+ \SetSymbolFont{llsymbols}{bold}{U}{cmllss}{bx}{n}%
+ \DeclareMathSymbol{\with}{\mathbin}{operators}{`\&}%
+ \DeclareMathSymbol{\oc}{\mathord}{operators}{`!}%
+ \DeclareMathSymbol{\wn}{\mathord}{operators}{`?}}
+\def\cmll@use@euler{%
+ \DeclareSymbolFont{llsymbols}{U}{eull}{m}{n}%
+ \SetSymbolFont{llsymbols}{bold}{U}{eull}{bx}{n}%
+ \DeclareMathSymbol{\with}{\mathbin}{EulerFraktur}{"26}%
+ \DeclareMathSymbol{\oc}{\mathord}{EulerFraktur}{"21}%
+ \DeclareMathSymbol{\wn}{\mathord}{EulerFraktur}{"3F}}
+\csname cmll@use@\cmll@style\endcsname
+\newcommand\invampemu{%
+ \mathbin{\mathchoice%
+ {\rotatebox[origin=c]{180}{$\&$}}%
+ {\rotatebox[origin=c]{180}{$\&$}}%
+ {\rotatebox[origin=c]{180}{$\scriptstyle\&$}}%
+ {\rotatebox[origin=c]{180}{$\scriptscriptstyle\&$}}%
+ }}
+\newcommand\bigwithemu{%
+ \mathop{\mathchoice%
+ {\vcenter{\hbox{\relsize{+4}$\&$}}}%
+ {\vcenter{\hbox{\relsize{+2}$\&$}}}%
+ {\vcenter{\hbox{\relsize{+0.5}$\&$}}}%
+ {\vcenter{\hbox{\relsize{-1}$\&$}}}%
+ }}
+\newcommand\biginvampemu{%
+ \mathop{\mathchoice%
+ {\vcenter{\hbox{\relsize{+4}$\invamp$}}}%
+ {\vcenter{\hbox{\relsize{+2}$\invamp$}}}%
+ {\vcenter{\hbox{\relsize{+0.5}$\invamp$}}}%
+ {\vcenter{\hbox{\relsize{-1}$\invamp$}}}}}
+\cmll@ifemu
+ \@ifundefined{invamp}{%
+ \RequirePackage{graphicx}%
+ \let\invamp=\invampemu
+ }{}%
+ \RequirePackage{relsize}%
+ \let\bigwith=\bigwithemu
+ \let\biginvamp=\biginvampemu
+ \def\cmll@declare@symbol#1#2#3#4{%
+ \@ifundefined{#1}{%
+ \expandafter\DeclareMathSymbol%
+ \expandafter{\csname#1\endcsname}{#2}{#3}{#4}}{}}
+\else
+ \def\cmll@declare@symbol#1#2#3#4{%
+ \expandafter\DeclareMathSymbol%
+ \expandafter{\csname#1\endcsname}{#2}{#3}{#4}}
+\fi
+\cmll@declare@symbol{invamp}{\mathbin}{llsymbols}{0}
+\let\parr=\invamp
+\cmll@declare@symbol{shpos}{\mathord}{llsymbols}{1}
+\cmll@declare@symbol{shneg}{\mathord}{llsymbols}{2}
+\cmll@declare@symbol{shift}{\mathord}{llsymbols}{3}
+\cmll@declare@symbol{coh}{\mathrel}{llsymbols}{4}
+\cmll@declare@symbol{scoh}{\mathrel}{llsymbols}{5}
+\cmll@declare@symbol{incoh}{\mathrel}{llsymbols}{6}
+\cmll@declare@symbol{sincoh}{\mathrel}{llsymbols}{7}
+\cmll@declare@symbol{bigwith}{\mathop}{llsymbols}{8}
+\cmll@declare@symbol{biginvamp}{\mathop}{llsymbols}{10}
+\let\bigparr=\biginvamp
+\cmll@declare@symbol{multimapboth}{\mathrel}{llsymbols}{12}
+\cmll@declare@symbol{Bot}{\mathord}{llsymbols}{13}
+\cmll@declare@symbol{Perp}{\mathrel}{llsymbols}{13}
+\cmll@declare@symbol{simbot}{\mathord}{llsymbols}{14}
+\cmll@declare@symbol{simperp}{\mathrel}{llsymbols}{14}
+\cmll@declare@symbol{multimapinv}{\mathrel}{llsymbols}{15}
+\cmll@declare@symbol{nmultimap}{\mathrel}{llsymbols}{16}
+\cmll@declare@symbol{nmultimapinv}{\mathrel}{llsymbols}{17}
+\cmll@declare@symbol{nmultimapboth}{\mathrel}{llsymbols}{18}
+\endinput
+%%
+%% End of file `cmll.sty'.
diff --git a/fonts/cmll/latex/ucmllr.fd b/fonts/cmll/latex/ucmllr.fd
new file mode 100644
index 0000000000..2806f50681
--- /dev/null
+++ b/fonts/cmll/latex/ucmllr.fd
@@ -0,0 +1,22 @@
+%%
+%% This is file `ucmllr.fd',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% cmll.dtx (with options: `ucmllr')
+%%
+\DeclareFontShape{U}{cmllr}{m}{n}{%
+ <5><6><7><8><9>gen*cmllr%
+ <10><10.95>cmllr10%
+ <12><14.4>cmllr12%
+ <17.28->cmllr17%
+ }{}
+\DeclareFontShape{U}{cmllr}{bx}{n}{%
+ <5><6><7><8><9>gen*cmllbx%
+ <10><10.95>cmllbx10%
+ <12->cmllbx12%
+ }{}
+\endinput
+%%
+%% End of file `ucmllr.fd'.
diff --git a/fonts/cmll/latex/ucmllss.fd b/fonts/cmll/latex/ucmllss.fd
new file mode 100644
index 0000000000..7a050112da
--- /dev/null
+++ b/fonts/cmll/latex/ucmllss.fd
@@ -0,0 +1,20 @@
+%%
+%% This is file `ucmllss.fd',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% cmll.dtx (with options: `ucmllss')
+%%
+\DeclareFontShape{U}{cmllss}{m}{n}{%
+ <-8>cmllss8%
+ <9>cmllss9%
+ <10>cmllss10
+ <12><14.4>cmllss12%
+ <17.28->cmllss17%
+ }{}
+\DeclareFontShape{U}{cmllss}{bx}{n}{%
+ <->cmllssbx10}{}
+\endinput
+%%
+%% End of file `ucmllss.fd'.
diff --git a/fonts/cmll/latex/ueull.fd b/fonts/cmll/latex/ueull.fd
new file mode 100644
index 0000000000..6c4611ebe1
--- /dev/null
+++ b/fonts/cmll/latex/ueull.fd
@@ -0,0 +1,17 @@
+%%
+%% This is file `ueull.fd',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% cmll.dtx (with options: `ueull')
+%%
+\DeclareFontShape{U}{eull}{m}{n}{%
+ <5><6><7><8><9>gen*eullr%
+ <10->eullr10}{}
+\DeclareFontShape{U}{eull}{bx}{n}{%
+ <5><6><7><8><9>gen*eullbx%
+ <10->eullbx10}{}
+\endinput
+%%
+%% End of file `ueull.fd'.
diff --git a/fonts/cmll/mf/cmllbx10.mf b/fonts/cmll/mf/cmllbx10.mf
new file mode 100644
index 0000000000..03a28dd8e1
--- /dev/null
+++ b/fonts/cmll/mf/cmllbx10.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Bold Extended Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLBX"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllbx12.mf b/fonts/cmll/mf/cmllbx12.mf
new file mode 100644
index 0000000000..7c23aad1b5
--- /dev/null
+++ b/fonts/cmll/mf/cmllbx12.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Bold Extended Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLBX"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=18.3/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllbx5.mf b/fonts/cmll/mf/cmllbx5.mf
new file mode 100644
index 0000000000..07c5474bf2
--- /dev/null
+++ b/fonts/cmll/mf/cmllbx5.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Bold Extended Roman 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLBX"; font_size 5pt#;
+
+u#:=14.5/36pt#; % unit width
+width_adj#:=7/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123.5/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=80/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=40/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.43pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=13/36pt#; % protrusion of lowercase serifs
+cap_jut#:=19/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+beak#:=25/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=12/36pt#; % lowercase bar thickness
+slab#:=12/36pt#; % serif and arm thickness
+cap_bar#:=12/36pt#; % uppercase bar thickness
+cap_band#:=12/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllbx6.mf b/fonts/cmll/mf/cmllbx6.mf
new file mode 100644
index 0000000000..1681808665
--- /dev/null
+++ b/fonts/cmll/mf/cmllbx6.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Bold Extended Roman 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLBX"; font_size 6pt#;
+
+u#:=16.2/36pt#; % unit width
+width_adj#:=7.8/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=148.2/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=96/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=49/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.4/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=31/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=33/36pt#; % uppercase stem breadth
+cap_curve#:=36/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.47pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=6/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=36/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.6/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.3; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllbx7.mf b/fonts/cmll/mf/cmllbx7.mf
new file mode 100644
index 0000000000..da49f1f6b4
--- /dev/null
+++ b/fonts/cmll/mf/cmllbx7.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Bold Extended Roman 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLBX"; font_size 7pt#;
+
+u#:=17.9/36pt#; % unit width
+width_adj#:=8.6/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=1/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.9/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=112/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=58/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.8/36pt#; % lowercase hairline breadth
+stem#:=32/36pt#; % lowercase stem breadth
+curve#:=35/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=41/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=38/36pt#; % uppercase stem breadth
+cap_curve#:=41/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.51pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=7/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=46/36pt#; % vertical protrusion of beak serifs
+vair#:=11.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.2/36pt#; % for small refinements of hairline height
+apex_corr#:=2/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllbx8.mf b/fonts/cmll/mf/cmllbx8.mf
new file mode 100644
index 0000000000..17b9472121
--- /dev/null
+++ b/fonts/cmll/mf/cmllbx8.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Bold Extended Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLBX"; font_size 8pt#;
+
+u#:=19.6/36pt#; % unit width
+width_adj#:=9.4/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=67/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.2/36pt#; % lowercase hairline breadth
+stem#:=35/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=32/36pt#; % breadth in middle of lowercase s
+flare#:=39/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=46/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=43/36pt#; % uppercase stem breadth
+cap_curve#:=46/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.3/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.9; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllbx9.mf b/fonts/cmll/mf/cmllbx9.mf
new file mode 100644
index 0000000000..705ee43296
--- /dev/null
+++ b/fonts/cmll/mf/cmllbx9.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Bold Extended Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLBX"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllr10.mf b/fonts/cmll/mf/cmllr10.mf
new file mode 100644
index 0000000000..ffb1edef27
--- /dev/null
+++ b/fonts/cmll/mf/cmllr10.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLR"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllr12.mf b/fonts/cmll/mf/cmllr12.mf
new file mode 100644
index 0000000000..ad05a47b0c
--- /dev/null
+++ b/fonts/cmll/mf/cmllr12.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLR"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllr17.mf b/fonts/cmll/mf/cmllr17.mf
new file mode 100644
index 0000000000..1902534810
--- /dev/null
+++ b/fonts/cmll/mf/cmllr17.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Roman 17 point (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLR"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=425/36pt#; % height of caps
+fig_height#:=401/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=150/36pt#; % height of crossbar in lowercase e
+comma_depth#:=121/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=13/36pt#; % uppercase hairline breadth
+cap_stem#:=41/36pt#; % uppercase stem breadth
+cap_curve#:=47/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=34/36pt#; % vertical distance from serif base to tangent
+jut#:=42/36pt#; % protrusion of lowercase serifs
+cap_jut#:=50/36pt#; % protrusion of uppercase serifs
+beak_jut#:=15/36pt#; % horizontal protrusion of beak serifs
+beak#:=121/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=17pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=17pt#; % max breadth above/below uppercase notches
+serif_drop#:=7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=10/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllr5.mf b/fonts/cmll/mf/cmllr5.mf
new file mode 100644
index 0000000000..78102617df
--- /dev/null
+++ b/fonts/cmll/mf/cmllr5.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Roman 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLR"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=18/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=21/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllr6.mf b/fonts/cmll/mf/cmllr6.mf
new file mode 100644
index 0000000000..9ac1926d7c
--- /dev/null
+++ b/fonts/cmll/mf/cmllr6.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Roman 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLR"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllr7.mf b/fonts/cmll/mf/cmllr7.mf
new file mode 100644
index 0000000000..cd27f7a96e
--- /dev/null
+++ b/fonts/cmll/mf/cmllr7.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Roman 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLR"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllr8.mf b/fonts/cmll/mf/cmllr8.mf
new file mode 100644
index 0000000000..659b4ce85c
--- /dev/null
+++ b/fonts/cmll/mf/cmllr8.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLR"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllr9.mf b/fonts/cmll/mf/cmllr9.mf
new file mode 100644
index 0000000000..58a25d5b42
--- /dev/null
+++ b/fonts/cmll/mf/cmllr9.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLR"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllss10.mf b/fonts/cmll/mf/cmllss10.mf
new file mode 100644
index 0000000000..7642fa720c
--- /dev/null
+++ b/fonts/cmll/mf/cmllss10.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Sans Serif 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLSS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-7/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-10/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=23/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.96; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllss12.mf b/fonts/cmll/mf/cmllss12.mf
new file mode 100644
index 0000000000..9b850d024c
--- /dev/null
+++ b/fonts/cmll/mf/cmllss12.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Sans Serif 12 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLSS"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=17/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-13/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=300/36pt#; % height of caps
+fig_height#:=283/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=97/36pt#; % height of crossbar in lowercase e
+comma_depth#:=54/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=33/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=33/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=33/36pt#; % uppercase hairline breadth
+cap_stem#:=37/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.6/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=27/36pt#; % serif and arm thickness
+cap_bar#:=26/36pt#; % uppercase bar thickness
+cap_band#:=24/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=31/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.98; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllss17.mf b/fonts/cmll/mf/cmllss17.mf
new file mode 100644
index 0000000000..9f535b2972
--- /dev/null
+++ b/fonts/cmll/mf/cmllss17.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Sans Serif 17 pt (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLSS"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=24/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-17/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=432/36pt#; % height of caps
+fig_height#:=408/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=136/36pt#; % height of crossbar in lowercase e
+comma_depth#:=78/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=47/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=47/36pt#; % lowercase curve breadth
+ess#:=47/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50/36pt#; % diameter of dots
+cap_hair#:=47/36pt#; % uppercase hairline breadth
+cap_stem#:=52/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=52/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.8/36pt#; % vertical protrusion of beak serifs
+vair#:=38/36pt#; % vertical diameter of hairlines
+notch_cut#:=32/36pt#; % maximum breadth above or below notches
+bar#:=36/36pt#; % lowercase bar thickness
+slab#:=40/36pt#; % serif and arm thickness
+cap_bar#:=38/36pt#; % uppercase bar thickness
+cap_band#:=35/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=46/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=7/36pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllss8.mf b/fonts/cmll/mf/cmllss8.mf
new file mode 100644
index 0000000000..a7ee15e391
--- /dev/null
+++ b/fonts/cmll/mf/cmllss8.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Sans Serif 8 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLSS"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-6/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-8.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=37/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.4/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=16/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllss9.mf b/fonts/cmll/mf/cmllss9.mf
new file mode 100644
index 0000000000..373b50ef2b
--- /dev/null
+++ b/fonts/cmll/mf/cmllss9.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Sans Serif 9 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLSS"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=-6.5/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=212/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=41/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=16/36pt#; % width of extrafine details
+hair#:=27/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=27/36pt#; % uppercase hairline breadth
+cap_stem#:=31/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=17/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4.5/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/cmllssbx10.mf b/fonts/cmll/mf/cmllssbx10.mf
new file mode 100644
index 0000000000..1e384d62e1
--- /dev/null
+++ b/fonts/cmll/mf/cmllssbx10.mf
@@ -0,0 +1,76 @@
+
+% Computer Modern Sans Serif Bold Extended 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMLLSSBX"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=22/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e
+comma_depth#:=38/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=26/36pt#; % diameter of serif corners
+tiny#:=26/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=49/36pt#; % lowercase stem breadth
+curve#:=49/36pt#; % lowercase curve breadth
+ess#:=43/36pt#; % breadth in middle of lowercase s
+flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36pt#; % diameter of dots
+cap_hair#:=49/36pt#; % uppercase hairline breadth
+cap_stem#:=53/36pt#; % uppercase stem breadth
+cap_curve#:=53/36pt#; % uppercase curve breadth
+cap_ess#:=51/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=49/36pt#; % maximum breadth above or below notches
+bar#:=26/36pt#; % lowercase bar thickness
+slab#:=36/36pt#; % serif and arm thickness
+cap_bar#:=34/36pt#; % uppercase bar thickness
+cap_band#:=31/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=18/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate llsymbols % switch to the driver file
diff --git a/fonts/cmll/mf/eullbx10.mf b/fonts/cmll/mf/eullbx10.mf
new file mode 100644
index 0000000000..7742ae7211
--- /dev/null
+++ b/fonts/cmll/mf/eullbx10.mf
@@ -0,0 +1,85 @@
+%% EULL driver file, series bx, size 10
+%% this file was generated from eufb10.mf
+
+ font_identifier := "EULLB";
+
+ ptsize = 10;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.18;
+
+def cmsetup =
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+enddef;
+ input lleusym;
+
+ bye
diff --git a/fonts/cmll/mf/eullbx5.mf b/fonts/cmll/mf/eullbx5.mf
new file mode 100644
index 0000000000..39232c42af
--- /dev/null
+++ b/fonts/cmll/mf/eullbx5.mf
@@ -0,0 +1,85 @@
+%% EULL driver file, series bx, size 5
+%% this file was generated from eufb5.mf
+
+ font_identifier := "EULLB";
+
+ ptsize = 5;
+
+ leftside# = rightside# = 300h#;
+
+ xscale_factor := 1.3;
+
+def cmsetup =
+u#:=14.5/36pt#; % unit width
+width_adj#:=7/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123.5/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=80/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=40/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.43pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=13/36pt#; % protrusion of lowercase serifs
+cap_jut#:=19/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+beak#:=25/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=12/36pt#; % lowercase bar thickness
+slab#:=12/36pt#; % serif and arm thickness
+cap_bar#:=12/36pt#; % uppercase bar thickness
+cap_band#:=12/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+enddef;
+ input lleusym;
+
+ bye
diff --git a/fonts/cmll/mf/eullbx6.mf b/fonts/cmll/mf/eullbx6.mf
new file mode 100644
index 0000000000..828b246d94
--- /dev/null
+++ b/fonts/cmll/mf/eullbx6.mf
@@ -0,0 +1,85 @@
+%% EULL driver file, series bx, size 6
+%% this file was generated from eufb6.mf
+
+ font_identifier := "EULLB";
+
+ ptsize = 6;
+
+ leftside# = rightside# = 150h#;
+
+ xscale_factor := 1.25;
+
+def cmsetup =
+u#:=16.2/36pt#; % unit width
+width_adj#:=7.8/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=148.2/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=96/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=49/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.4/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=31/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=33/36pt#; % uppercase stem breadth
+cap_curve#:=36/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.47pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=6/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=36/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.6/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.3; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+enddef;
+ input lleusym;
+
+ bye
diff --git a/fonts/cmll/mf/eullbx7.mf b/fonts/cmll/mf/eullbx7.mf
new file mode 100644
index 0000000000..ab0fc5c9b6
--- /dev/null
+++ b/fonts/cmll/mf/eullbx7.mf
@@ -0,0 +1,85 @@
+%% EULL driver file, series bx, size 7
+%% this file was generated from eufb7.mf
+
+ font_identifier := "EULLB";
+
+ ptsize = 7;
+
+ leftside# = rightside# = 100h#;
+
+ xscale_factor := 1.2;
+
+def cmsetup =
+u#:=17.9/36pt#; % unit width
+width_adj#:=8.6/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=1/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.9/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=112/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=58/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.8/36pt#; % lowercase hairline breadth
+stem#:=32/36pt#; % lowercase stem breadth
+curve#:=35/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=41/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=38/36pt#; % uppercase stem breadth
+cap_curve#:=41/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.51pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=7/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=46/36pt#; % vertical protrusion of beak serifs
+vair#:=11.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.2/36pt#; % for small refinements of hairline height
+apex_corr#:=2/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+enddef;
+ input lleusym;
+
+ bye
diff --git a/fonts/cmll/mf/eullbx8.mf b/fonts/cmll/mf/eullbx8.mf
new file mode 100644
index 0000000000..972bcaf1b4
--- /dev/null
+++ b/fonts/cmll/mf/eullbx8.mf
@@ -0,0 +1,85 @@
+%% EULL driver file, series bx, size 8
+%% this file was generated from eufb8.mf
+
+ font_identifier := "EULLB";
+
+ ptsize = 8;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.19;
+
+def cmsetup =
+u#:=19.6/36pt#; % unit width
+width_adj#:=9.4/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=67/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.2/36pt#; % lowercase hairline breadth
+stem#:=35/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=32/36pt#; % breadth in middle of lowercase s
+flare#:=39/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=46/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=43/36pt#; % uppercase stem breadth
+cap_curve#:=46/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.3/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.9; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+enddef;
+ input lleusym;
+
+ bye
diff --git a/fonts/cmll/mf/eullbx9.mf b/fonts/cmll/mf/eullbx9.mf
new file mode 100644
index 0000000000..6047daecfc
--- /dev/null
+++ b/fonts/cmll/mf/eullbx9.mf
@@ -0,0 +1,85 @@
+%% EULL driver file, series bx, size 9
+%% this file was generated from eufb9.mf
+
+ font_identifier := "EULLB";
+
+ ptsize = 9;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.18;
+
+def cmsetup =
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+enddef;
+ input lleusym;
+
+ bye
diff --git a/fonts/cmll/mf/eullr10.mf b/fonts/cmll/mf/eullr10.mf
new file mode 100644
index 0000000000..61fa82a9c0
--- /dev/null
+++ b/fonts/cmll/mf/eullr10.mf
@@ -0,0 +1,83 @@
+%% EULL driver file, series r, size 10
+%% this file was generated from eufm10.mf
+
+ font_identifier := "EULLM";
+
+ ptsize = 10;
+
+ leftside# = rightside# = 0h#;
+
+def cmsetup =
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+enddef;
+ input lleusym;
+
+ bye
diff --git a/fonts/cmll/mf/eullr5.mf b/fonts/cmll/mf/eullr5.mf
new file mode 100644
index 0000000000..53f03fcb23
--- /dev/null
+++ b/fonts/cmll/mf/eullr5.mf
@@ -0,0 +1,85 @@
+%% EULL driver file, series r, size 5
+%% this file was generated from eufm5.mf
+
+ font_identifier := "EULLM";
+
+ ptsize = 5;
+
+ leftside# = rightside# = 300h#;
+
+ xscale_factor := 1.2;
+
+def cmsetup =
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=18/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=21/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+enddef;
+ input lleusym;
+
+ bye
diff --git a/fonts/cmll/mf/eullr6.mf b/fonts/cmll/mf/eullr6.mf
new file mode 100644
index 0000000000..3aea961dbe
--- /dev/null
+++ b/fonts/cmll/mf/eullr6.mf
@@ -0,0 +1,85 @@
+%% EULL driver file, series r, size 6
+%% this file was generated from eufm6.mf
+
+ font_identifier := "EULLM";
+
+ ptsize = 6;
+
+ leftside# = rightside# = 150h#;
+
+ xscale_factor := 1.14;
+
+def cmsetup =
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+enddef;
+ input lleusym;
+
+ bye
diff --git a/fonts/cmll/mf/eullr7.mf b/fonts/cmll/mf/eullr7.mf
new file mode 100644
index 0000000000..0a70f62617
--- /dev/null
+++ b/fonts/cmll/mf/eullr7.mf
@@ -0,0 +1,85 @@
+%% EULL driver file, series r, size 7
+%% this file was generated from eufm7.mf
+
+ font_identifier := "EULLM";
+
+ ptsize = 7;
+
+ leftside# = rightside# = 100h#;
+
+ xscale_factor := 1.08;
+
+def cmsetup =
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+enddef;
+ input lleusym;
+
+ bye
diff --git a/fonts/cmll/mf/eullr8.mf b/fonts/cmll/mf/eullr8.mf
new file mode 100644
index 0000000000..3c42960dd8
--- /dev/null
+++ b/fonts/cmll/mf/eullr8.mf
@@ -0,0 +1,85 @@
+%% EULL driver file, series r, size 8
+%% this file was generated from eufm8.mf
+
+ font_identifier := "EULLM";
+
+ ptsize = 8;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.04;
+
+def cmsetup =
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+enddef;
+ input lleusym;
+
+ bye
diff --git a/fonts/cmll/mf/eullr9.mf b/fonts/cmll/mf/eullr9.mf
new file mode 100644
index 0000000000..1028a48eef
--- /dev/null
+++ b/fonts/cmll/mf/eullr9.mf
@@ -0,0 +1,85 @@
+%% EULL driver file, series r, size 9
+%% this file was generated from eufm9.mf
+
+ font_identifier := "EULLM";
+
+ ptsize = 9;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.02;
+
+def cmsetup =
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+enddef;
+ input lleusym;
+
+ bye
diff --git a/fonts/cmll/mf/llcommon.mf b/fonts/cmll/mf/llcommon.mf
new file mode 100644
index 0000000000..2272e2f05f
--- /dev/null
+++ b/fonts/cmll/mf/llcommon.mf
@@ -0,0 +1,227 @@
+% Common symbols for CMLL and EULL.
+
+% The code for arrows is the one from the downward and upward arrows
+% (characters '041 and '042 in cmsy, defined in sym.mf)
+% with some coordinates moved.
+
+cmchar "Short downward arrow (positive shift)";
+beginchar(1,9u#,body_height#,0);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d-o; x0-x3=x4-x0=if monospace:3u else:4u fi+eps;
+y3=y4=y0+if monospace:.24 else:.36 fi asc_height+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ ---z1r..z1l---subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Short upward arrow (negative shift)";
+beginchar(2,9u#,body_height#,0);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
+x0=x1=x2; top y0=h+o; x0-x3=x4-x0=if monospace:3u else:4u fi+eps;
+y3=y4=y0-if monospace:.24 else:.36 fi asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ ---z1r..z1l---subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Short up-and-down arrow";
+beginchar(3,9u#,body_height#,0);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1=.5[-d,h];
+x0=x1=x2; bot y0=-d-o; x0-x3=x4-x0=4u+eps;
+y3=y4=y0+.36asc_height+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ ---z1r..z1l---subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % lower arrowhead and stem
+pos11(rule_thickness,0); pos12(rule_thickness,0); z11=z1;
+pos13(rule_thickness,90); pos14(rule_thickness,90);
+x10=x11=x12; top y10=h+o; x10-x13=x14-x10=4u+eps;
+y13=y14=y10-.36asc_height-eps;
+pos15(rule_thickness,angle(z14-z10)); z15l=z10;
+pos16(rule_thickness,angle(z13-z10)); z16l=z10;
+z19=.2[.5[z13,z14],z10];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((x12r,-d)--(x12r,h))); y12=ypart point t of p;
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ ---z11r..z11l---subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % upper arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar;
+
+
+% The code for coherence relations is based on the \asymp symbol (named
+% "Hardy's asymptotic equivalence sign" number '020 in symbols.mf).
+
+cmchar "Coherence sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(4,14u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; x5=x6=.5w;
+y1=y2; y5=good.y h; y3=y4; .5[y1,y3]=.5[y5,y6]=math_axis;
+y1=good.y .3[y5,y6];
+draw z1{x5-x1,2(y5-y1)}...z5{right}...z2{x2-x5,2(y2-y5)}; % upper bar
+draw z3{x6-x3,2(y6-y3)}...z6{right}...z4{x4-x6,2(y4-y6)}; % lower bar
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Strict coherence";
+beginchar(5,14u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u; y1=vround(math_axis-.25x_height);
+x3=w-x1; y3=y1;
+penpos2(rule_thickness,90); x2=.5w; y2=good.y(.25x_height+math_axis);
+numeric theta; theta=angle((z2-z1)yscaled 3);
+penpos1(rule_thickness,90+theta);
+penpos3(rule_thickness,90-theta);
+draw z1{dir theta}...z2...{dir-theta}z3; penlabels(1,2,3);
+endchar;
+
+cmchar "Incoherence sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(6,14u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; x5=x6=.5w;
+y1=y2=good.y h; y3=y4; .5[y1,y3]=.5[y5,y6]=math_axis;
+y5=good.y .3[y1,y3];
+draw z1{x5-x1,2(y5-y1)}...z5{right}...z2{x2-x5,2(y2-y5)}; % upper bar
+draw z3{x6-x3,2(y6-y3)}...z6{right}...z4{x4-x6,2(y4-y6)}; % lower bar
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Strict incoherence";
+beginchar(7,14u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u; y1=vround(math_axis+.25x_height);
+x3=w-x1; y3=y1; penpos2(rule_thickness,90); x2=.5w;
+y2l=good.y -(.25x_height-math_axis);
+numeric theta; theta=angle((z2-z1)yscaled 3);
+penpos1(rule_thickness,90+theta);
+penpos3(rule_thickness,90-theta);
+draw z1{dir theta}...z2...{dir-theta}z3;
+penlabels(1,2,3); endchar;
+
+cmchar "Linear equivalence symbol";
+beginchar(12,22u#,.8asc_height#,0#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+numeric circ_diam; circ_diam=5u;
+y2=math_axis; y8=y2+.5circ_diam; rt x2=w-u;
+x6=x2-circ_diam;
+circle_points; draw_circle;
+x11=u+.5rule_thickness; y11=y2;
+draw_circle shifted (z11-z6);
+x9=x11+circ_diam+.5rule_thickness; y9=y10=y2; x10=x6-.5rule_thickness;
+draw z9---z10;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Double-struck perpendicular sign";
+beginchar(13,17u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#); x3-x1=x4-x2=good.x spread;
+x1=x2=good.x (.5w - spread/2);
+center_on(.5[x1,x3]); lft x5=hround u; x6=w-x5; y3=y1;
+bot y1=0; y2-y1=x6-x5-3u;
+if top y2>h: y2:=bot h; fi
+y5=y6=y1; y4=y2;
+draw z1--z2; % left stem
+draw z3--z4; % right stem
+draw z5--z6; % bar
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Oscillating perpendicular sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54x_height#,.66x_height#);
+beginchar(14,14u#,asc_height#,0);
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x3=hround u; x4=4u; x5=w-x4; x6=w-x3;
+y3=y5; y4=y6; bot y3=0; top y4-bot y3=spread';
+draw z3{up}...z4{right}..{right}z5...{up}z6; % upper stroke
+pickup rule.nib; autorounded;
+x1=x2; z2=1/2[z3,z6]; y1-y2=x6-x3;
+if top y1>h: y1:=bot h; fi
+draw z1..z2;
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Reversed linear map symbol";
+beginchar(15,20u#,.8asc_height#,0#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+numeric circ_diam; circ_diam=5u;
+y2=math_axis; y8=y2+.5circ_diam; lft x6 = u;
+x6=x2-circ_diam;
+circle_points; draw_circle;
+x9=x2+.5rule_thickness; y9=y10=y2; x10=w-u-.5rule_thickness;
+draw z9---z10;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+def negate (expr center) =
+ .5[z101,z102] = center;
+ y102-y101 = 9u;
+ x102-x101 = 2/5 (y102-y101);
+ draw z101---z102;
+ penlabels(101,102);
+enddef;
+
+
+cmchar "Negated multimap symbol";
+beginchar(16,20u#,.8asc_height#,0#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+numeric circ_diam; circ_diam=5u;
+y2=math_axis; y8=y2+.5circ_diam; rt x2=w-u;
+x6=x2-circ_diam;
+circle_points; draw_circle;
+x9=u+.5rule_thickness; y9=y10=y2; x10=x6-.5rule_thickness;
+draw z9---z10;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+negate(.6[z9,z10]);
+endchar;
+
+cmchar "Negated reversed linear map symbol";
+beginchar(17,20u#,.8asc_height#,0#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+numeric circ_diam; circ_diam=5u;
+y2=math_axis; y8=y2+.5circ_diam; lft x6 = u;
+x6=x2-circ_diam;
+circle_points; draw_circle;
+x9=x2+.5rule_thickness; y9=y10=y2; x10=w-u-.5rule_thickness;
+draw z9---z10;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+negate(.4[z9,z10]);
+endchar;
+
+cmchar "Negated linear equivalence symbol";
+beginchar(18,22u#,.8asc_height#,0#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+numeric circ_diam; circ_diam=5u;
+y2=math_axis; y8=y2+.5circ_diam; rt x2=w-u;
+x6=x2-circ_diam;
+circle_points; draw_circle;
+x11=u+.5rule_thickness; y11=y2;
+draw_circle shifted (z11-z6);
+x9=x11+circ_diam+.5rule_thickness; y9=y10=y2; x10=x6-.5rule_thickness;
+draw z9---z10;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+negate(.5[z9,z10]);
+endchar;
diff --git a/fonts/cmll/mf/lleusym.mf b/fonts/cmll/mf/lleusym.mf
new file mode 100644
index 0000000000..be2ddc1f63
--- /dev/null
+++ b/fonts/cmll/mf/lleusym.mf
@@ -0,0 +1,168 @@
+mode_setup;
+font_coding_scheme "TeX text subset";
+
+% EULER FRAKTUR MEDIUM PARAMETERS
+
+% These all in bitpad numbers (.001"):
+
+ programem = 3700;
+ baseline = 0;
+ ascender = capheight;
+ descender = 700;
+ depthy = 700; % depthy = 500;
+ capheight = 2560;
+ lcbody = 1760; % same for medium and bold.
+ dotheight = capheight; % dotheight = 2600;
+ theight = 2300; % measured to lowest of the 3 top lines.
+ lfigheight = capheight;
+ nfigbody = lcbody;
+ nfigascender = ascender;
+ nfigdescender = descender;
+
+% the next lines added since everything was digitized too high! --- DEK
+extra_beginchar:=extra_beginchar & "rot:=initrot;";
+transform initrot; initrot:=identity;
+
+input eubase;
+
+% MEDIUM NON-LINING FIGURES
+no_stem_round;
+
+def euler_ampersand (expr transf) =
+n := 21;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 6;
+t6 := 8;
+t7 := 12;
+t8 := 14;
+t9 := 16;
+t10 := 21;
+t11 := 23;
+t12 := 24;
+t13 := 26;
+t14 := 30;
+t15 := 32;
+t16 := 34;
+t17 := 38;
+t18 := 40;
+t19 := 42;
+t20 := 44;
+t21 := 45;
+
+adj_fill.A(12, 21) % fixed x points
+ (11) % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((9,14), (7,16), (6,17), (4,19)) % verticals
+ ((10,13), (8,15), (5,18), (1,20)) % horizontals
+ (((1287,1477){774,-41}...{1,0} % 0
+ (2027,1466){22,-143}...{22,-143} % 1
+ (2049,1323){110,-424}... % 2
+ (2083,1090){0,-1}... % 3
+ (1806,416){-264,-343}... % 4
+ (1613,185){-341,-236}... % 5
+ (1028,-31){-1,0}... % 6
+ (411,175){-1,1}... % 7
+ (182,722){0,1}... % 8
+ (371,1189){1,1}... % 9
+ (879,1538){571,342}... % 10
+ (1258,1794){1,1}... % 11
+ (1385,2154){0,1}... % 12
+ (1291,2358){-1,1}... % 13
+ (1155,2411){-1,0}... % 14
+ (970,2328){-1,-1}... % 15
+ (895,2068){0,-1}... % 16
+ (1016,1565){474,-1132}... % *17
+ (1369,936){454,-665}... % 18
+ (1819,414){1,-1}... % 19
+ (2024,253){389,-217}... % *20
+ (2208,197){1,0}... % 21
+ (2444,291){1,1}...{124,668} % 22
+ (2632,706)-- % 23
+ (2717,682){-92,-496}... % 24
+ (2453,95){-1,-1}... % 25
+ (2095,-42){-1,0}... % 26
+ (1612,179){-275,261}... % 27
+ (1149,763){-517,775}... % 28
+ (791,1412){-481,1162}... % *29
+ (668,1925){0,1}... % 30
+ (864,2422){1,1}... % 31
+ (1273,2584){1,0}... % 32
+ (1558,2466){1,-1}... % 33
+ (1651,2244){0,-1}... % 34
+ (1467,1810){-1,-1}... % 35
+ (1074,1521){-573,-348}... % 36
+ (627,1225){-1,-1}... % 37
+ (469,805){0,-1}... % 38
+ (688,278){1,-1}... % 39
+ (1085,119){1,0}... % 40
+ (1520,278){233,164}... % 41
+ (1889,986){0,1}... % 42
+ (1761,1276){-1,1}... % 43
+ (1536,1336){-1,0}...{-374,-43} % 44
+ (1282,1319)--cycle) % 45
+ transformed transf);
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((1,4)) % verticals
+ ((1,4)) % horizontals
+ (((2603,1476){-410,-38}...{-1,0} % 0
+ (2027,1466)-- % 1
+ (2049,1323){1,0}...{325,-54} % 2
+ (2593,1298)--cycle) % 3
+ transformed transf);
+enddef;
+
+let endcharsaved = endchar;
+def endchar = endcharsaved(0) enddef;
+
+amp_w := 2732;
+amp_h := 2560;
+
+"Reversed ampersand (par)";
+charbegin( 0, 2732h#, capheight*v#, baseline );
+euler_ampersand ( identity scaled -1 shifted (amp_w,amp_h) );
+endchar;
+
+charlist 8: 9;
+
+"\textstyle large ampersand";
+charbegin( 8, 19/14 * 2732h#, 0, 36/25*capheight*v# + baseline );
+euler_ampersand ( identity shifted (0,-amp_h) xscaled 19/14 yscaled 36/25 );
+endchar;
+
+"\displaystyle large ampersand";
+charbegin( 9, 26/14 * 2732h#, 0, 252/125*capheight*v# + baseline );
+euler_ampersand ( identity shifted (0,-amp_h) xscaled 26/14 yscaled 252/125 );
+endchar;
+
+charlist 10: 11;
+
+"\textstyle large reversed ampersand";
+charbegin( 10, 19/14 * 2732h#, 0, 36/25*capheight*v# + baseline );
+euler_ampersand ( identity shifted (-amp_w,0) xscaled -19/14 yscaled -36/25 );
+endchar;
+
+"\displaystyle large reversed ampersand";
+charbegin( 11, 26/14 * 2732h#, 0, 252/125*capheight*v# + baseline );
+euler_ampersand ( identity shifted (-amp_w,0) xscaled -26/14 yscaled -252/125 );
+endchar;
+
+
+% The following characters are the same as in CMLL
+
+input cmbase;
+cmsetup;
+font_setup;
+
+input llcommon;
diff --git a/fonts/cmll/mf/llsymbols.mf b/fonts/cmll/mf/llsymbols.mf
new file mode 100644
index 0000000000..c6089c6f7e
--- /dev/null
+++ b/fonts/cmll/mf/llsymbols.mf
@@ -0,0 +1,261 @@
+% This file contains symbol definitions for operators used in linear logic.
+% The glyph defintions are derived from those in Knuth's Computer Modern and
+% from the AMS Symbol fonts, to make them assorted with TeX's standard fonts.
+%
+% This file was written by Emmanuel Beffara, you can distribute it and/or
+% modify it under the terms of the LaTeX Project Public License.
+
+mode_setup; font_setup;
+
+cmchar "Reversed ampersand (par)";
+
+% The code is exactly the one for the ampersand, with a transformation applied
+% at the end.
+
+beginchar(0,14u#,asc_height#,0);
+italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos2(slab,-90); x2=4u; bot y2r=-o;
+if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi
+if serifs: pos0(fudged.hair,0);
+ rt x0r+jut=hround(w-.9u); top y0=x_height;
+ pos1(fudged.hair,0); z1=whatever[z0,(.6[x0,x2],0)];
+ y1=max(y0-1.5bracket-.2x_height,2/3x_height);
+ filldraw stroke z0e---z1e...{left}z2e; % short diagonal
+else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u);
+ y1r=good.y .75[bar_height,x_height]; x1l:=good.x x1l; y1l:=good.y y1l;
+ top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r);
+ filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal
+pickup tiny.nib; numeric slope,theta,reduced_hair;
+slope=(h-2vair-slab)/10.5u; theta=angle(-slope,1);
+reduced_hair=max(tiny.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+lft x3r=hround .75u; x5=.5[x3r,x6l]; lft x6r=hround .5(w-u);
+x3l-x3r=curve-tiny; pos6(reduced_hair,180);
+pos5(vair,theta); y5=.5h;
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+pos7(vair,270); top y7l=h+o; x7=.45[x6r,x8r];
+pos8(fudged.stem,30); x8l=good.x(x8l+3.5u-x8); y8r=y6;
+ellipse_set(7l,6l,5',5l);
+filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e
+ ...z7e{left}...z8e{down}; % bowls
+pos10(slab,90); x10=w-3.5u; bot y10l=-o;
+pos9(fudged.stem,angle(z8-z10)-90);
+z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90);
+filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal
+if serifs: pickup crisp.nib; pos10'(slab,90); z10'=z10;
+ pos11(fudged.hair,180); rt x11l=hround(w-u); y11=.5bar_height;
+ filldraw stroke z10'e{right}...{up}z11e; % terminal
+ numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut;
+ else: rt x6l+.5u=lft x0l-inner_jut; fi
+ dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif
+else: pickup fine.nib; pos10'(slab,90); z10'=z10;
+ pos11(Vround .5[slab,flare],90);
+ rt x11=hround(r-letter_fit-u); bot y11l=vround .07bar_height-o;
+ filldraw stroke term.e(10',11,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11);
+
+%%% here it is:
+
+currentpicture := currentpicture scaled -1 shifted (w,h);
+endchar;
+
+% The definition of the large symbols is the one for the ampersand, adapted
+% for a bigger size, with parameters taken from the definition of sum
+% operators.
+
+charlist 8: 9; % large "with"
+
+cmchar "\textstyle large ampersand";
+beginchar(8,19u#,0,10/6dh#);
+italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos2(slab,-90); x2=(4/14)*w; bot y2r=-d-o;
+% this is dirty:
+save x_height; x_height:=.62[-d,h];
+if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi
+if serifs: pos0(rule_thickness,0);
+ rt x0r+jut=hround(w-.9u); top y0=.62[-d,h];
+ pos1(rule_thickness,0); z1=whatever[z0,(.6[x0,x2],-d)];
+ y1=max(y0-1.5bracket-.124*(d+h),.413[-d,h]);
+ filldraw stroke z0e---z1e...{left}z2e; % short diagonal
+else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u);
+ y1r=good.y .51[-d,h]; x1l:=good.x x1l; y1l:=good.y y1l;
+ top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r);
+ filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal
+pickup tiny.nib; numeric slope,theta,reduced_hair;
+slope=(asc_height-2vair-rule_thickness)/10.5u; theta=angle(-slope,1);
+reduced_hair=max(tiny.breadth,hround(slab if hefty:-2stem_corr fi));
+lft x3r=hround (3w/56); x5=.5[x3r,x6l]; lft x6r=hround 14/28 w;
+x3l-x3r=curve-tiny; pos6(reduced_hair,180);
+pos5(reduced_hair,theta); y5=.5[-d,h];
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+pos7(reduced_hair,270); top y7l=h+o; x7=.45[x6r,x8r];
+pos8(curve,30); x8l=good.x(x8l+w/4-x8); y8r=y6;
+ellipse_set(7l,6l,5',5l);
+filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e
+ ...z7e{left}...z8e{down}; % bowls
+pos10(slab,90); x10=10.5/14 w; bot y10l=-d-o;
+pos9(curve,angle(z8-z10)-90);
+z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90);
+filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal
+if serifs: pickup crisp.nib; pos10'(slab,90); z10'=z10;
+ pos11(rule_thickness,180); rt x11l=hround(13/14 w);
+ y11=(.5(bar_height/asc_height)) [-d,h];
+ filldraw stroke z10'e{right}...{up}z11e; % terminal
+ numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut;
+ else: rt x6l+.5u=lft x0l-inner_jut; fi
+ dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif
+else: pickup fine.nib; pos10'(slab,90); z10'=z10;
+ pos11(Vround .5[rule_thickness,flare],90);
+ rt x11=hround(r-letter_fit-u); bot y11l=vround .0316(h+d)-d-o;
+ filldraw stroke term.e(10',11,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "\displaystyle large ampersand";
+beginchar(9,26u#,0,14/6dh#);
+italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi;
+adjust_fit(0,serif_fit#);
+numeric thick_stem, thin_stem;
+thick_stem=bold+4dw; thin_stem=rule_thickness+dw;
+pickup tiny.nib; pos2(max(slab,thin_stem),-90); x2=(4/14)*w; bot y2r=-d-o;
+% this is dirty:
+save x_height; x_height:=.62[-d,h];
+if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi
+if serifs: pos0(thin_stem,0);
+ rt x0r+jut=hround(w-.9u); top y0=.62[-d,h];
+ pos1(thin_stem,0); z1=whatever[z0,(.6[x0,x2],-d)];
+ y1=max(y0-1.5bracket-.124*(d+h),.413[-d,h]);
+ filldraw stroke z0e---z1e...{left}z2e; % short diagonal
+else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u);
+ y1r=good.y .51[-d,h]; x1l:=good.x x1l; y1l:=good.y y1l;
+ top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r);
+ filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal
+pickup tiny.nib; numeric slope,theta,reduced_hair;
+slope=(asc_height-2vair-thin_stem)/10.5u; theta=angle(-slope,1);
+reduced_hair=max(tiny.breadth,hround(max(slab,thin_stem) if hefty:-2stem_corr fi));
+lft x3r=hround (3w/56); x5=.5[x3r,x6l]; lft x6r=hround 14/28 w;
+x3l-x3r=thick_stem-tiny; pos6(reduced_hair,180);
+pos5(reduced_hair,theta); y5=.5[-d,h];
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+pos7(reduced_hair,270); top y7l=h+o; x7=.45[x6r,x8r];
+pos8(thick_stem,30); x8l=good.x(x8l+w/4-x8); y8r=y6;
+ellipse_set(7l,6l,5',5l);
+filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e
+ ...z7e{left}...z8e{down}; % bowls
+pos10(thin_stem,90); x10=10.5/14 w; bot y10l=-d-o;
+pos9(thick_stem,angle(z8-z10)-90);
+z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90);
+filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal
+if serifs: pickup crisp.nib; pos10'(thin_stem,90); z10'=z10;
+ pos11(thin_stem,180); rt x11l=hround(13/14 w);
+ y11=(.5(bar_height/asc_height)) [-d,h];
+ filldraw stroke z10'e{right}...{up}z11e; % terminal
+ numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut;
+ else: rt x6l+.5u=lft x0l-inner_jut; fi
+ dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif
+else: pickup fine.nib; pos10'(thin_stem,90); z10'=z10;
+ pos11(Vround .5[thin_stem,flare],90);
+ rt x11=hround(r-letter_fit-u); bot y11l=vround .0316(h+d)-d-o;
+ filldraw stroke term.e(10',11,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+charlist 10: 11; % large "par"
+
+cmchar "\textstyle large reversed ampersand";
+beginchar(10,19u#,0,10/6dh#);
+italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos2(slab,-90); x2=(4/14)*w; bot y2r=-d-o;
+% this is dirty:
+save x_height; x_height:=.62[-d,h];
+if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi
+if serifs: pos0(rule_thickness,0);
+ rt x0r+jut=hround(w-.9u); top y0=.62[-d,h];
+ pos1(rule_thickness,0); z1=whatever[z0,(.6[x0,x2],-d)];
+ y1=max(y0-1.5bracket-.124*(d+h),.413[-d,h]);
+ filldraw stroke z0e---z1e...{left}z2e; % short diagonal
+else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u);
+ y1r=good.y .51[-d,h]; x1l:=good.x x1l; y1l:=good.y y1l;
+ top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r);
+ filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal
+pickup tiny.nib; numeric slope,theta,reduced_hair;
+slope=(asc_height-2vair-rule_thickness)/10.5u; theta=angle(-slope,1);
+reduced_hair=max(tiny.breadth,hround(slab if hefty:-2stem_corr fi));
+lft x3r=hround (3w/56); x5=.5[x3r,x6l]; lft x6r=hround 14/28 w;
+x3l-x3r=curve-tiny; pos6(reduced_hair,180);
+pos5(reduced_hair,theta); y5=.5[-d,h];
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+pos7(reduced_hair,270); top y7l=h+o; x7=.45[x6r,x8r];
+pos8(curve,30); x8l=good.x(x8l+w/4-x8); y8r=y6;
+ellipse_set(7l,6l,5',5l);
+filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e
+ ...z7e{left}...z8e{down}; % bowls
+pos10(slab,90); x10=10.5/14 w; bot y10l=-d-o;
+pos9(curve,angle(z8-z10)-90);
+z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90);
+filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal
+if serifs: pickup crisp.nib; pos10'(slab,90); z10'=z10;
+ pos11(rule_thickness,180); rt x11l=hround(13/14 w);
+ y11=(.5(bar_height/asc_height)) [-d,h];
+ filldraw stroke z10'e{right}...{up}z11e; % terminal
+ numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut;
+ else: rt x6l+.5u=lft x0l-inner_jut; fi
+ dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif
+else: pickup fine.nib; pos10'(slab,90); z10'=z10;
+ pos11(Vround .5[slab,flare],90);
+ rt x11=hround(r-letter_fit-u); bot y11l=vround .0316(h+d)-d-o;
+ filldraw stroke term.e(10',11,right,1,4); fi % terminal
+currentpicture := currentpicture scaled -1 shifted (w,h-d);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "\displaystyle large reversed ampersand";
+beginchar(11,26u#,0,14/6dh#);
+italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi;
+adjust_fit(0,serif_fit#);
+numeric thick_stem, thin_stem;
+thick_stem=bold+4dw; thin_stem=rule_thickness+dw;
+pickup tiny.nib; pos2(max(slab,thin_stem),-90); x2=(4/14)*w; bot y2r=-d-o;
+% this is dirty:
+save x_height; x_height:=.62[-d,h];
+if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi
+if serifs: pos0(thin_stem,0);
+ rt x0r+jut=hround(w-.9u); top y0=.62[-d,h];
+ pos1(thin_stem,0); z1=whatever[z0,(.6[x0,x2],-d)];
+ y1=max(y0-1.5bracket-.124*(d+h),.413[-d,h]);
+ filldraw stroke z0e---z1e...{left}z2e; % short diagonal
+else: pickup fine.nib; pos1(.25[thin_stem,flare],-15); rt x1r=hround(w-2u);
+ y1r=good.y .51[-d,h]; x1l:=good.x x1l; y1l:=good.y y1l;
+ top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r);
+ filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal
+pickup tiny.nib; numeric slope,theta,reduced_hair;
+slope=(asc_height-2vair-thin_stem)/10.5u; theta=angle(-slope,1);
+reduced_hair=max(tiny.breadth,hround(max(slab,thin_stem) if hefty:-2stem_corr fi));
+lft x3r=hround (3w/56); x5=.5[x3r,x6l]; lft x6r=hround 14/28 w;
+x3l-x3r=thick_stem-tiny; pos6(reduced_hair,180);
+pos5(reduced_hair,theta); y5=.5[-d,h];
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+pos7(reduced_hair,270); top y7l=h+o; x7=.45[x6r,x8r];
+pos8(thick_stem,30); x8l=good.x(x8l+w/4-x8); y8r=y6;
+ellipse_set(7l,6l,5',5l);
+filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e
+ ...z7e{left}...z8e{down}; % bowls
+pos10(thin_stem,90); x10=10.5/14 w; bot y10l=-d-o;
+pos9(thick_stem,angle(z8-z10)-90);
+z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90);
+filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal
+if serifs: pickup crisp.nib; pos10'(thin_stem,90); z10'=z10;
+ pos11(thin_stem,180); rt x11l=hround(13/14 w);
+ y11=(.5(bar_height/asc_height)) [-d,h];
+ filldraw stroke z10'e{right}...{up}z11e; % terminal
+ numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut;
+ else: rt x6l+.5u=lft x0l-inner_jut; fi
+ dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif
+else: pickup fine.nib; pos10'(thin_stem,90); z10'=z10;
+ pos11(Vround .5[thin_stem,flare],90);
+ rt x11=hround(r-letter_fit-u); bot y11l=vround .0316(h+d)-d-o;
+ filldraw stroke term.e(10',11,right,1,4); fi % terminal
+currentpicture := currentpicture scaled -1 shifted (w,h-d);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+input llcommon;
+bye.
diff --git a/fonts/cmll/tfm/cmllbx10.tfm b/fonts/cmll/tfm/cmllbx10.tfm
new file mode 100644
index 0000000000..7e74477b4f
--- /dev/null
+++ b/fonts/cmll/tfm/cmllbx10.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllbx12.tfm b/fonts/cmll/tfm/cmllbx12.tfm
new file mode 100644
index 0000000000..3aef2461ea
--- /dev/null
+++ b/fonts/cmll/tfm/cmllbx12.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllbx5.tfm b/fonts/cmll/tfm/cmllbx5.tfm
new file mode 100644
index 0000000000..a8ecf11928
--- /dev/null
+++ b/fonts/cmll/tfm/cmllbx5.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllbx6.tfm b/fonts/cmll/tfm/cmllbx6.tfm
new file mode 100644
index 0000000000..45e9945192
--- /dev/null
+++ b/fonts/cmll/tfm/cmllbx6.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllbx7.tfm b/fonts/cmll/tfm/cmllbx7.tfm
new file mode 100644
index 0000000000..7c47ec5750
--- /dev/null
+++ b/fonts/cmll/tfm/cmllbx7.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllbx8.tfm b/fonts/cmll/tfm/cmllbx8.tfm
new file mode 100644
index 0000000000..b1fc88ceb4
--- /dev/null
+++ b/fonts/cmll/tfm/cmllbx8.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllbx9.tfm b/fonts/cmll/tfm/cmllbx9.tfm
new file mode 100644
index 0000000000..1f7d32ed46
--- /dev/null
+++ b/fonts/cmll/tfm/cmllbx9.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllr10.tfm b/fonts/cmll/tfm/cmllr10.tfm
new file mode 100644
index 0000000000..1d35a782a1
--- /dev/null
+++ b/fonts/cmll/tfm/cmllr10.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllr12.tfm b/fonts/cmll/tfm/cmllr12.tfm
new file mode 100644
index 0000000000..a7157ecfe8
--- /dev/null
+++ b/fonts/cmll/tfm/cmllr12.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllr17.tfm b/fonts/cmll/tfm/cmllr17.tfm
new file mode 100644
index 0000000000..ece25c8fa7
--- /dev/null
+++ b/fonts/cmll/tfm/cmllr17.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllr5.tfm b/fonts/cmll/tfm/cmllr5.tfm
new file mode 100644
index 0000000000..86f3dc58d3
--- /dev/null
+++ b/fonts/cmll/tfm/cmllr5.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllr6.tfm b/fonts/cmll/tfm/cmllr6.tfm
new file mode 100644
index 0000000000..aaafcfe1b2
--- /dev/null
+++ b/fonts/cmll/tfm/cmllr6.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllr7.tfm b/fonts/cmll/tfm/cmllr7.tfm
new file mode 100644
index 0000000000..e5f67942b1
--- /dev/null
+++ b/fonts/cmll/tfm/cmllr7.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllr8.tfm b/fonts/cmll/tfm/cmllr8.tfm
new file mode 100644
index 0000000000..39ef851a96
--- /dev/null
+++ b/fonts/cmll/tfm/cmllr8.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllr9.tfm b/fonts/cmll/tfm/cmllr9.tfm
new file mode 100644
index 0000000000..637ef8d227
--- /dev/null
+++ b/fonts/cmll/tfm/cmllr9.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllss10.tfm b/fonts/cmll/tfm/cmllss10.tfm
new file mode 100644
index 0000000000..bc05b32759
--- /dev/null
+++ b/fonts/cmll/tfm/cmllss10.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllss12.tfm b/fonts/cmll/tfm/cmllss12.tfm
new file mode 100644
index 0000000000..d5a825898c
--- /dev/null
+++ b/fonts/cmll/tfm/cmllss12.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllss17.tfm b/fonts/cmll/tfm/cmllss17.tfm
new file mode 100644
index 0000000000..773a3f9715
--- /dev/null
+++ b/fonts/cmll/tfm/cmllss17.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllss8.tfm b/fonts/cmll/tfm/cmllss8.tfm
new file mode 100644
index 0000000000..9f931f1024
--- /dev/null
+++ b/fonts/cmll/tfm/cmllss8.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllss9.tfm b/fonts/cmll/tfm/cmllss9.tfm
new file mode 100644
index 0000000000..9c5dafb3da
--- /dev/null
+++ b/fonts/cmll/tfm/cmllss9.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/cmllssbx10.tfm b/fonts/cmll/tfm/cmllssbx10.tfm
new file mode 100644
index 0000000000..0e64c74315
--- /dev/null
+++ b/fonts/cmll/tfm/cmllssbx10.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/eullbx10.tfm b/fonts/cmll/tfm/eullbx10.tfm
new file mode 100644
index 0000000000..2e4464f0ba
--- /dev/null
+++ b/fonts/cmll/tfm/eullbx10.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/eullbx5.tfm b/fonts/cmll/tfm/eullbx5.tfm
new file mode 100644
index 0000000000..13e6f33e3e
--- /dev/null
+++ b/fonts/cmll/tfm/eullbx5.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/eullbx6.tfm b/fonts/cmll/tfm/eullbx6.tfm
new file mode 100644
index 0000000000..6ed58e5cac
--- /dev/null
+++ b/fonts/cmll/tfm/eullbx6.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/eullbx7.tfm b/fonts/cmll/tfm/eullbx7.tfm
new file mode 100644
index 0000000000..8e94ee7f2e
--- /dev/null
+++ b/fonts/cmll/tfm/eullbx7.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/eullbx8.tfm b/fonts/cmll/tfm/eullbx8.tfm
new file mode 100644
index 0000000000..381258d6ba
--- /dev/null
+++ b/fonts/cmll/tfm/eullbx8.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/eullbx9.tfm b/fonts/cmll/tfm/eullbx9.tfm
new file mode 100644
index 0000000000..3a174a2526
--- /dev/null
+++ b/fonts/cmll/tfm/eullbx9.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/eullr10.tfm b/fonts/cmll/tfm/eullr10.tfm
new file mode 100644
index 0000000000..235d915fea
--- /dev/null
+++ b/fonts/cmll/tfm/eullr10.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/eullr5.tfm b/fonts/cmll/tfm/eullr5.tfm
new file mode 100644
index 0000000000..c5e646ccc3
--- /dev/null
+++ b/fonts/cmll/tfm/eullr5.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/eullr6.tfm b/fonts/cmll/tfm/eullr6.tfm
new file mode 100644
index 0000000000..914b69edb4
--- /dev/null
+++ b/fonts/cmll/tfm/eullr6.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/eullr7.tfm b/fonts/cmll/tfm/eullr7.tfm
new file mode 100644
index 0000000000..9e92e20c1f
--- /dev/null
+++ b/fonts/cmll/tfm/eullr7.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/eullr8.tfm b/fonts/cmll/tfm/eullr8.tfm
new file mode 100644
index 0000000000..80e718be98
--- /dev/null
+++ b/fonts/cmll/tfm/eullr8.tfm
Binary files differ
diff --git a/fonts/cmll/tfm/eullr9.tfm b/fonts/cmll/tfm/eullr9.tfm
new file mode 100644
index 0000000000..b6f5f1e845
--- /dev/null
+++ b/fonts/cmll/tfm/eullr9.tfm
Binary files differ
diff --git a/fonts/cmll/type1/cmllbx10.pfb b/fonts/cmll/type1/cmllbx10.pfb
new file mode 100644
index 0000000000..abd430ad02
--- /dev/null
+++ b/fonts/cmll/type1/cmllbx10.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllbx12.pfb b/fonts/cmll/type1/cmllbx12.pfb
new file mode 100644
index 0000000000..479156d1db
--- /dev/null
+++ b/fonts/cmll/type1/cmllbx12.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllbx5.pfb b/fonts/cmll/type1/cmllbx5.pfb
new file mode 100644
index 0000000000..d1cc39c604
--- /dev/null
+++ b/fonts/cmll/type1/cmllbx5.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllbx6.pfb b/fonts/cmll/type1/cmllbx6.pfb
new file mode 100644
index 0000000000..e236880a80
--- /dev/null
+++ b/fonts/cmll/type1/cmllbx6.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllbx7.pfb b/fonts/cmll/type1/cmllbx7.pfb
new file mode 100644
index 0000000000..fe63178c58
--- /dev/null
+++ b/fonts/cmll/type1/cmllbx7.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllbx8.pfb b/fonts/cmll/type1/cmllbx8.pfb
new file mode 100644
index 0000000000..db93040262
--- /dev/null
+++ b/fonts/cmll/type1/cmllbx8.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllbx9.pfb b/fonts/cmll/type1/cmllbx9.pfb
new file mode 100644
index 0000000000..463338284a
--- /dev/null
+++ b/fonts/cmll/type1/cmllbx9.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllr10.pfb b/fonts/cmll/type1/cmllr10.pfb
new file mode 100644
index 0000000000..96437d343a
--- /dev/null
+++ b/fonts/cmll/type1/cmllr10.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllr12.pfb b/fonts/cmll/type1/cmllr12.pfb
new file mode 100644
index 0000000000..3e123d3457
--- /dev/null
+++ b/fonts/cmll/type1/cmllr12.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllr17.pfb b/fonts/cmll/type1/cmllr17.pfb
new file mode 100644
index 0000000000..f7419ded3f
--- /dev/null
+++ b/fonts/cmll/type1/cmllr17.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllr5.pfb b/fonts/cmll/type1/cmllr5.pfb
new file mode 100644
index 0000000000..be16e738aa
--- /dev/null
+++ b/fonts/cmll/type1/cmllr5.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllr6.pfb b/fonts/cmll/type1/cmllr6.pfb
new file mode 100644
index 0000000000..f0b3260531
--- /dev/null
+++ b/fonts/cmll/type1/cmllr6.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllr7.pfb b/fonts/cmll/type1/cmllr7.pfb
new file mode 100644
index 0000000000..6cbeeea7a5
--- /dev/null
+++ b/fonts/cmll/type1/cmllr7.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllr8.pfb b/fonts/cmll/type1/cmllr8.pfb
new file mode 100644
index 0000000000..bcb9598f64
--- /dev/null
+++ b/fonts/cmll/type1/cmllr8.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllr9.pfb b/fonts/cmll/type1/cmllr9.pfb
new file mode 100644
index 0000000000..7c25497c5e
--- /dev/null
+++ b/fonts/cmll/type1/cmllr9.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllss10.pfb b/fonts/cmll/type1/cmllss10.pfb
new file mode 100644
index 0000000000..d2e734c95d
--- /dev/null
+++ b/fonts/cmll/type1/cmllss10.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllss12.pfb b/fonts/cmll/type1/cmllss12.pfb
new file mode 100644
index 0000000000..bb65c14d97
--- /dev/null
+++ b/fonts/cmll/type1/cmllss12.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllss17.pfb b/fonts/cmll/type1/cmllss17.pfb
new file mode 100644
index 0000000000..5cb50c09ad
--- /dev/null
+++ b/fonts/cmll/type1/cmllss17.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllss8.pfb b/fonts/cmll/type1/cmllss8.pfb
new file mode 100644
index 0000000000..788c1e0937
--- /dev/null
+++ b/fonts/cmll/type1/cmllss8.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllss9.pfb b/fonts/cmll/type1/cmllss9.pfb
new file mode 100644
index 0000000000..6dd2d3cf45
--- /dev/null
+++ b/fonts/cmll/type1/cmllss9.pfb
Binary files differ
diff --git a/fonts/cmll/type1/cmllssbx10.pfb b/fonts/cmll/type1/cmllssbx10.pfb
new file mode 100644
index 0000000000..5d42d3da94
--- /dev/null
+++ b/fonts/cmll/type1/cmllssbx10.pfb
Binary files differ
diff --git a/fonts/cmll/type1/eullbx10.pfb b/fonts/cmll/type1/eullbx10.pfb
new file mode 100644
index 0000000000..a42cb60ef6
--- /dev/null
+++ b/fonts/cmll/type1/eullbx10.pfb
Binary files differ
diff --git a/fonts/cmll/type1/eullbx5.pfb b/fonts/cmll/type1/eullbx5.pfb
new file mode 100644
index 0000000000..31fbaeb458
--- /dev/null
+++ b/fonts/cmll/type1/eullbx5.pfb
Binary files differ
diff --git a/fonts/cmll/type1/eullbx6.pfb b/fonts/cmll/type1/eullbx6.pfb
new file mode 100644
index 0000000000..b7116f19b3
--- /dev/null
+++ b/fonts/cmll/type1/eullbx6.pfb
Binary files differ
diff --git a/fonts/cmll/type1/eullbx7.pfb b/fonts/cmll/type1/eullbx7.pfb
new file mode 100644
index 0000000000..23a6f112c2
--- /dev/null
+++ b/fonts/cmll/type1/eullbx7.pfb
Binary files differ
diff --git a/fonts/cmll/type1/eullbx8.pfb b/fonts/cmll/type1/eullbx8.pfb
new file mode 100644
index 0000000000..d6844a9785
--- /dev/null
+++ b/fonts/cmll/type1/eullbx8.pfb
Binary files differ
diff --git a/fonts/cmll/type1/eullbx9.pfb b/fonts/cmll/type1/eullbx9.pfb
new file mode 100644
index 0000000000..765a18f935
--- /dev/null
+++ b/fonts/cmll/type1/eullbx9.pfb
Binary files differ
diff --git a/fonts/cmll/type1/eullr10.pfb b/fonts/cmll/type1/eullr10.pfb
new file mode 100644
index 0000000000..9e834d1230
--- /dev/null
+++ b/fonts/cmll/type1/eullr10.pfb
Binary files differ
diff --git a/fonts/cmll/type1/eullr5.pfb b/fonts/cmll/type1/eullr5.pfb
new file mode 100644
index 0000000000..8e51f7b5df
--- /dev/null
+++ b/fonts/cmll/type1/eullr5.pfb
Binary files differ
diff --git a/fonts/cmll/type1/eullr6.pfb b/fonts/cmll/type1/eullr6.pfb
new file mode 100644
index 0000000000..31ee3f03d6
--- /dev/null
+++ b/fonts/cmll/type1/eullr6.pfb
Binary files differ
diff --git a/fonts/cmll/type1/eullr7.pfb b/fonts/cmll/type1/eullr7.pfb
new file mode 100644
index 0000000000..05d82207ae
--- /dev/null
+++ b/fonts/cmll/type1/eullr7.pfb
Binary files differ
diff --git a/fonts/cmll/type1/eullr8.pfb b/fonts/cmll/type1/eullr8.pfb
new file mode 100644
index 0000000000..1e87a7e262
--- /dev/null
+++ b/fonts/cmll/type1/eullr8.pfb
Binary files differ
diff --git a/fonts/cmll/type1/eullr9.pfb b/fonts/cmll/type1/eullr9.pfb
new file mode 100644
index 0000000000..a2ff2958c6
--- /dev/null
+++ b/fonts/cmll/type1/eullr9.pfb
Binary files differ