summaryrefslogtreecommitdiff
path: root/info/ltx3pub/l3d007.tex
diff options
context:
space:
mode:
Diffstat (limited to 'info/ltx3pub/l3d007.tex')
-rw-r--r--info/ltx3pub/l3d007.tex5583
1 files changed, 5583 insertions, 0 deletions
diff --git a/info/ltx3pub/l3d007.tex b/info/ltx3pub/l3d007.tex
new file mode 100644
index 0000000000..8816b1cd44
--- /dev/null
+++ b/info/ltx3pub/l3d007.tex
@@ -0,0 +1,5583 @@
+%%% ====================================================================
+%%% @LaTeX3-report { LaTeX3-L3-007
+%%% filename = "l3d007.tex",
+%%% archived = "ctan:/tex-archive/info/ltx3pub/",
+%%% author = "Justin Ziegler",
+%%% doc-group = "Project core team",
+%%% title = "Technical report on Math Font Encoding",
+%%% version = "2.00",
+%%% date = "June 1, 1994",
+%%% time = "18:52:36 GMT",
+%%% status = "Public, official",
+%%% abstract = "This is a report of the \LaTeX3
+%%% Project work on math font encoding.
+%%% ",
+%%% keywords = "Math fonts encoding",
+%%% project-address = "LaTeX3 Project \\
+%%% c/o Dr. Chris Rowley \\
+%%% The Open University \\
+%%% Parsifal College \\
+%%% Finchley Road \\
+%%% London NW3 7BG, England, UK",
+%%% project-tel = "+44 20 7794 0575",
+%%% project-FAX = "+44 20 7556 6196",
+%%% project-email = "latex-team@latex-project.org",
+%%% copyright = "Copyright (C) 1994 LaTeX3 Project.
+%%% All rights reserved.
+%%%
+%%% Permission is granted to make and distribute
+%%% verbatim copies of this publication or of
+%%% coherent parts from this publication provided
+%%% this copyright notice and this permission
+%%% notice are preserved on all copies.
+%%%
+%%% Permission is granted to copy and distribute
+%%% translations of this publication or of
+%%% individual items from this publication into
+%%% another language provided that the translation
+%%% is approved by the original copyright holders.
+%%%
+%%% No other permissions to copy or distribute this
+%%% publication in any form are granted and in
+%%% particular no permission to copy parts of it
+%%% in such a way as to materially change its
+%%% meaning.",
+%%% generalinfo = "To subscribe to the LaTeX3 discussion list:
+%%%
+%%% Send mail to listserv@urz.uni-heidelberg.de
+%%% with the following line as the body of the
+%%% message (substituting your own name):
+%%%
+%%% subscribe LaTeX-L First-name Surname
+%%%
+%%% To find out about volunteer work:
+%%%
+%%% look at the document vol-task.tex which can
+%%% be obtained electronically, see below.
+%%%
+%%% To retrieve project publications electronically:
+%%%
+%%% Project publications are available for
+%%% retrieval by anonymous ftp from ctan hosts:
+%%% cam.ctan.org
+%%% dante.ctan.org
+%%% tug.ctan.org
+%%% in the directory /tex-archive/info/ltx3pub.
+%%%
+%%% The file ltx3pub.bib in that directory gives
+%%% full bibliographical information including
+%%% abstracts in BibTeX format. A brief history
+%%% of the project and a description of its aims
+%%% is contained in l3d001.tex.
+%%%
+%%% If you only have access to email, and not ftp
+%%% You may use the ftpmail service.
+%%% Send a message just containg the word
+%%% help
+%%% to ftpmail@dante.ctan.org
+%%% for more information about this service.
+%%%
+%%% For offers of financial contributions or
+%%% contributions of computing equipment or
+%%% software, contact the project at the above
+%%% address, or the TeX Users Group.
+%%%
+%%% For offers of technical assistance, contact the
+%%% project at the above address.
+%%%
+%%% For technical enquiries and suggestions, send
+%%% e-mail to the latex-l list or contact the
+%%% project at the above address.",
+%%% checksum = "23322 5582 30455 207129",
+%%% docstring = "The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+
+\NeedsTeXFormat{LaTeX2e}
+
+\begin{filecontents}{l3d007.sty}
+%%% Action macros for this document
+%%%
+
+%%% table stuff from testfont whole thing need wrapup!!!!!!
+
+\tracinglostchars=0
+
+\newcount\mcnt \newcount\ncnt \newcount\pcnt \newdimen\dim
+%JWZ the next two counters can be changed for 128 glyphs or 256 glyphs.
+\newcount\maxz \maxz=128
+\newcount\maxiz \maxiz=127
+\newif\ifskipping
+\def\setbaselineskip{\setbox0=\hbox{\ncnt=0
+\loop\char\ncnt \ifnum \ncnt<\maxiz \advance\ncnt 1 \repeat}
+\baselineskip=6pt \advance\baselineskip\ht0 \advance\baselineskip\dp0 }
+\def\hours{\ncnt=\time \divide\ncnt 60
+ \mcnt=-\ncnt \multiply\mcnt 60 \advance\mcnt \time
+ \twodigits\ncnt\twodigits\mcnt}
+\def\twodigits#1{\ifnum #1<10 0\fi \number#1}
+\def\startfont#1{\font\testfont=#1
+% \leftline{\scriptsize Test of #1\unskip\ on \today\ at \hours}
+% \medskip
+ \testfont \setbaselineskip
+ \ifdim\fontdimen6\testfont<10pt \rightskip=0pt plus 20pt
+ \else\rightskip=0pt plus 2em \fi
+ \spaceskip=\fontdimen2\testfont % space between words (\raggedright)
+ \xspaceskip=\fontdimen2\testfont \advance\xspaceskip
+ by\fontdimen7\testfont}
+
+\def\oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}} % octal constant
+\def\hex#1{\hbox{\rm\H{}\tt#1}} % hexadecimal constant
+\def\setdigs#1"#2{\gdef\h{#2}% \h=hex prefix; \0\1=corresponding octal
+ \mcnt=\ncnt \divide\mcnt by 64 \xdef\0{\the\mcnt}%
+ \multiply\mcnt by-64 \advance\mcnt by\ncnt \divide\mcnt by 8
+ \xdef\1{\the\mcnt}}
+\def\testrow{\setbox0=\hbox{\penalty 1\def\\{\char"\h}%
+ \\0\\1\\2\\3\\4\\5\\6\\7\\8\\9\\A\\B\\C\\D\\E\\F%
+ \global\pcnt=\lastpenalty}} % \pcnt=1 if none of the characters exist
+\def\oddline{\cr
+ \noalign{\nointerlineskip}
+ \multispan{19}\hrulefill&
+ \setbox0=\hbox{\lower 2.3pt\hbox{\hex{\h x}}}\smash{\box0}\cr
+ \noalign{\nointerlineskip}}
+\def\evenline{\loop\skippingfalse
+ \ifnum\ncnt<\maxz \mcnt=\ncnt \divide\mcnt 16 \chardef\next=\mcnt
+ \expandafter\setdigs\meaning\next \testrow
+ \ifnum\pcnt=1 \skippingtrue \fi\fi
+ \ifskipping \global\advance\ncnt 16 \repeat
+ \ifnum\ncnt=\maxz \let\next=\endchart\else\let\next=\morechart\fi
+ \next}
+\def\morechart{\cr\noalign{\hrule\penalty5000}
+ \chartline \oddline \mcnt=\1 \advance\mcnt 1 \xdef\1{\the\mcnt}
+ \chartline \evenline}
+\def\chartline{&\oct{\0\1x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&}
+\def\chartstrut{\lower4.5pt\vbox to14pt{}}
+\def\dofonttable#1{\startfont{#1}$$\global\ncnt=0
+ \halign to\hsize\bgroup
+ \chartstrut##\tabskip0pt plus10pt&
+ &\hfil##\hfil&\vrule##\cr
+ \lower6.5pt\null
+ &&&\oct0&&\oct1&&\oct2&&\oct3&&\oct4&&\oct5&&\oct6&&\oct7&\evenline}
+\def\endchart{\cr\noalign{\hrule}
+ \raise11.5pt\null&&&\hex 8&&\hex 9&&\hex A&&\hex B&
+ &\hex C&&\hex D&&\hex E&&\hex F&\cr\egroup$$\par}
+\def\:{\setbox0=\hbox{\char\ncnt}%
+ \ifdim\ht0>7.5pt\reposition
+ \else\ifdim\dp0>2.5pt\reposition\fi\fi
+ \box0\global\advance\ncnt 1 }
+\def\reposition{\setbox0=\vbox{\kern2pt\box0}\dim=\dp0
+ \advance\dim 2pt \dp0=\dim}
+\def\centerlargechars{
+ \def\reposition{\setbox0=\hbox{$\vcenter{\kern2pt\box0\kern2pt}$}}}
+
+%%% use of code example
+
+%\begin{figure}
+%\dofonttable{msbm7}
+%\caption{Output of the \texprog{nfssfont.tex} program for the font
+% \texttt{msbm7}}
+%\label{fig:testfontmsbm}
+%\end{figure}
+
+
+\newcommand\textem[1]{\emph{#1}}
+
+\newcommand{\note}[1]{%
+ \par \vskip .25cm \textbf{Note:\ }#1 \par \vskip .25cm}
+
+\chardef\bslash=`\\
+% Command name
+\newcommand{\cn}[1]{$\mathchar"026E${\tt#1}}
+% File name
+\newcommand{\fn}[1]{{\tt#1}}
+
+\def\jzitem#1{\item{\bf #1\\}}
+
+\def\thisisnew{\marginpar {\textbf
+ {\textsl {\begin{raggedright}This part is
+ new.\end{raggedright}}}}}
+
+\def\changedabit{\marginpar {\textbf
+ {\textsl {\begin{raggedright}Changed this a little
+ bit.
+ \end {raggedright}}}}}
+
+\def\seeappendix{\marginpar {\textbf
+ {\textsl {\begin{raggedright}Here is an
+ appendix reference.
+ \end {raggedright}}}}}
+
+% don't warn about bold typewriter
+\DeclareFontShape{OT1}{cmtt}{bx}{n}{ <-> ssub * cmtt/m/n }{}
+% \DeclareFontShape {T1}{cmtt}{bx}{n}{ <-> ssub * cmtt/m/n }{}
+\end{filecontents}
+
+
+
+\begin{filecontents}{l3d007a.tex}
+\section{Introduction}
+ This document aims to put on paper what could be the backbone or the
+ skeleton of a new math encoding for \TeX. This is not the complete
+ description of an encoding, but a sort of grid, or global picture of
+ what things could look like. This document refers to many glyph groups
+ defined in another document called ``Towards a list of math glyphs''.
+ Same author.
+
+
+
+
+
+\section{A few definitions}
+
+\begin{description}
+
+\item[An ``encoding table''.] This conveys the
+traditional meaning of an encoding. That is to say a set of 256
+glyphs in a given order. The expression ``encoding table'' is usually
+abbreviated to ``encoding''.
+
+\item[A ``slot''.] It is the usual word used for referring
+to a position in an encoding, that can contain a glyph. It is usually
+an integer between 0 and 255. A slot is
+certainly not a family, nor anything to do with it.
+
+\item[A ``math kernel''.] This terminology is used to
+specify the fonts that are necessary for the math facility to work
+as it is described in most \TeX\ documentation\footnote{documentation
+on LA\TeX, AMS\TeX, etc, also fits in here.}.
+In DEK's implementation the math kernel consists of the
+families from 0 to 3. On top of the kernel, many other fonts, with
+whatever encoding is available, could be optionally loaded and used.
+
+\item[A ``math encoding''.] It is considered here as a whole; not
+just one 256-glyph encoding table, but a set of encoding tables.
+This concept will be referd to as ``M-encoding''.
+
+\item[The ``core symbols''.] They are made of two
+groups. The group of symbols that must live with the default alphabet
+for kerning reasons, and the group of symbols that must live with the
+default alphabet for design reasons.
+
+\item[The ``default alphabet''.] It is the alphabet that is
+used when a user types \texttt{\$abc\$}. In the present encoding that
+produces $abc$.
+
+\item[``Glyph compatibility''.] Two encodings are glyph compatible
+when they contain the same glyphs but not in the same positions. As well
+as containing the same glyphs, it must also be possible for the
+corresponding fonts to contain the same sidebearings and the same
+kerning and ligaturing information.
+
+\end{description}
+
+
+
+
+
+\section{Global policy}
+ \subsection{Text in math mode}
+ It is generally agreed that for best quality documents, if one wants
+ to put text in a math formulae, one should switch back into text
+ mode, using something like the \cn{text} macro in the AMS
+ package. None of the encodings can be expected to support bad
+ usage. In a math encoded font, the letters are not kerned in the same
+ way as in a text encoded font, and there are no letter ligatures,
+ because they are not needed.
+
+ \subsection{A global rule for boldface}
+ It has been decided not to mix ligth face and bold face symbols in
+ the same encoding, but to generate a separate boldface version of all
+ lightface math encoded fonts when necessary. This does not make it
+ impossible to mix the two: either one can use the
+ \texttt{\string\boldsymbol} approach, or one can load an extra bold
+ face font in a given family, and have it directly and permanently
+ accessible.
+
+ \subsection{Sans serif and typewriter fonts}
+ Extra fonts could be designed in sans serif, or in typewriter using
+ some of the proposed new encodings. Another solution is to load the
+ Cork encoded sans serif fonts (or typewriter fonts) in free
+ families. In either case, the new math encoding will not have any
+ slots containing specifically sans serif or typewriter glyphs.
+
+ \subsection{Concerning the Euler shapes}
+ Euler shapes could be a good example implementation of the new math
+ encoding. Thus no Euler glyphs will be included in the new
+ encoding. However, it may be useful to use the Euler Fraktur for a
+ first implementation example, if the new encoding includes a Fraktur
+ or old German alphabet.
+
+
+\section{Concerning Cyrillic letters}
+ These would be available, but not as part of the math encoding. They
+ would be loaded as an extra family, with whatever encoding exists,
+ together with suitable \cn{mathchardef}s.
+
+ \subsection{Compatibility with other typesetting systems}
+ \subsubsection{Grouping all \TeX\ specific glyphs in one font
+ encoding}
+ The present \texttt{cmex} font contains glyphs that cannot be used
+ by other typesetting systems, because they are set in a strange way.
+
+ The present \texttt{cmsy} font contains one glyph that is set in a
+ strange way --- the radical sign, and thus makes that whole font
+ unusable for the outer world. It would be a good idea to make sure
+ that this does not happen again.
+
+ The \LaTeX 3 project is hoping to set a new standard, that will not
+ only be used by \TeX, but by all systems that typeset mathematical
+ formulae. If every thing goes according to plan, in the next few years
+ many math fonts will exist, for many different systems, and they will
+ all use the same encoding.
+ The fact that they all use the same encoding means that it will be
+ very easy to exchange fonts from one system to another. So one day a
+ \TeX\ user will be able to take a math font used by Microsoft Word,
+ and convert it easily in order to use it with \TeX.
+
+ If \TeX\ specific glyphs are grouped in one font, there will only be
+ one problematic font. As it happens, all \TeX\ specific glyphs are
+ more or less geometric, so they could be used with more than one
+ math font.
+
+ On the other hand, if \TeX\ specific glyphs are spread around in
+ many fonts, then many ``imported'' fonts will not be usable by \TeX\
+ without major messing about.
+
+ Concerning this problem, the real question is: is the \LaTeX 3 project
+ setting a real standard for the next few years, or just
+ making another \TeX\ math font encoding?
+ If the answer is: ``the \LaTeX 3 project is setting a real standard
+ for the next few years'', then \TeX\ specific glyphs must be grouped
+ in one font. If that is really not possible,
+ then one can maybe consider putting them in two fonts.
+
+ If a font designer designs a math font for adobe, the work necessary
+ for adapting his font to the \TeX\ world should be reduced as much as
+ possible.
+ Otherwise nobody will provide any fonts for \TeX.
+
+ The \TeX\ specific glyphs that are concerned here could be visually
+ compatible with many math fonts.
+
+ Which are the \TeX\ specific glyphs? So far:
+ \begin{itemize}
+ \item The delimiters.
+ \item The large and small `bigops'.
+ \item The radicals.
+ \end{itemize}
+
+
+ \subsubsection{The space issue}
+ To enable easier font exchange between the \TeX\ world and the rest of
+ the world, the new math encoding will have a space in position 32
+ (decimal) of every encoding table, if it is possible.
+
+
+ \subsection{General document compatibility}
+ It is not worth beeing totaly compatible. A lot of glyph positions
+ will change, thus direct \cn{mathchardef}s will not always work.
+ Documented names from AMSLA\TeX\ (this includes names from
+ LA\TeX, \TeX, and AMS\TeX, and LAMS\TeX) ought to be kept.
+
+
+ \subsection{Grouping all Plain and \LaTeX\ glyphs in 4 fonts}
+ The main reason for this is compatibility. Let us consider a user
+ that has typed a document with the present math encoding and has
+ saturated the families for this document. If the new math encoding
+ does not guarantee Plain and \LaTeX\ glyph compatibility with a
+ minimum of 4 fonts, then that document cannot run with the new math
+ encoding: not enough families. Thus one should make the first four
+ font encodings of the new math encoding glyph compatible with
+ the group made by: cmr, cmmi, cmex, cmsy.
+
+ \subsection{Grouping all AMS\TeX\ and AMS\LaTeX\ glyphs in less than
+ 6 fonts} The main reason for this is compatibility. Let us consider
+ a user that has typed a document with the existant AMS\TeX\ or
+ \LaTeX\ package, and has saturated the families for this document.
+ If the new math encoding does not guarantee AMS\LaTeX\ and AMS\TeX\
+ glyph compatibility with less than 6 fonts, then that document cannot
+ run with the new math encoding: not enough families. The first 6
+ font encodings must be one way glyph compatible with the fonts
+ provided in the AMS package.
+
+ \subsection{Replacing \texttt {cmex}}
+ The math font group has decided that the encoding due to replace the
+ \texttt {cmex} encoding will be designed in such a way that the
+ corresponding font can be loaded in three sizes or in one size.
+
+ Loading such a font in three sizes produces better typesetting. But
+ the resulting page and line-breaks will not be the same as
+ when the font was loaded in one size only. Some people will not like
+ that change, in their old documents. But for new documents loading
+ the extensibles font in three sizes will be better.
+
+ \subsection{Accents in maths}
+ There seems to be an agreement that math accents should not change
+ with the font or style of the letter. But it is not a problem to keep
+ the accents that are already in plain \TeX\ (and the \fn{cm} fonts) in
+ the same position as in the T1 encoding. That will allow them to be
+ variable family; thus any T1 encoding could be loaded, and its
+ accents used. Since there will be millions of documents using
+ bold hats this possibility must be preserved even if by default
+ all math accents are non-variable family.
+
+
+\section{The base: a Cork encoded text font}
+
+Main use: things like \texttt{\string\log}. This would generally be a
+Latin font.
+
+If it is a Latin upright font, it would probably also be used by
+physicists (and chemists) for operators, and more generally whenever
+upright letters are needed.
+
+\textbf{Separating this set from the rest} enables the user to decide
+how `log' and `sin', etc. should be typeset. Thus the multiletter
+operators can be compatible with the text font, or with the rest of
+the math glyphs, or even set in yet another font.
+
+Math mode should not be used for setting text phrases in mathematical
+material. For example:
+ \begin{verbatim}
+$$x=y \quad {\rm is\ a\ direct\ consequence\ of} \quad y=x$$
+\end{verbatim}
+would be better input as:
+\begin{verbatim}
+$$x=y \quad\hbox{\rm is a direct consequence of}\quad y=x$$
+\end{verbatim}
+or, better still:
+\begin{verbatim}
+$$x=y \quad\text{is a direct consequence of}\quad y=x$$
+\end{verbatim}
+where \verb|\text| is a macro which sets its argument in horizontal
+mode. This avoids unpleasant surprises such as:
+\begin{verbatim}
+$$X \quad{\rm is\ a\ sub-object\ of}\quad Y$$
+\end{verbatim}
+However, for upward compatibility with existing plain \TeX\
+documents, it will still be possible to set text phrases in math mode,
+as long as they only contain $\langle\mbox{character}\rangle$s of type
+Variable.
+
+
+
+
+
+
+
+
+\section{The ``text symbol'' encoding: the TS encoding}
+Here one would put the old style numerals, and most of what
+is comming out of the present math encoding. Other symbols could
+be added. The Text Symbol encoding is definetly \textem{not part of
+ the math kernel.} But since it will contain symbols that
+previously were accessed via the math fonts, its
+encoding must be supplied. This font will not be loaded in a family. It
+will just be loaded as a normal text font\footnote{If some users really
+feel the need to load it in a math family, they can.}.
+
+
+\section{The core: the MC encoding (263)}
+Counting: 1,10,1 , 54,5 , 124,14 , 12,24,9 ,9= 263 glyphs
+
+The accents are no longer here. They had no real reason to be here.
+Most of them are geometrics anyway. But they do have reasons to be
+elsewhere. One of the main consequences of taking these accents out
+is that the core can be made more coherent, and more complete. The MC
+encoding would contain:
+ \begin{itemize}
+ \itemsep -0.1cm
+
+ \item The skewchar in position 0: 1
+ \item The core digits: 10
+ \item The space character in position 32: 1
+
+ \item The core Latin alphabet, which is the default alphabet, in
+ uppercase, and lowercase, together with the dotless i and j: 54
+
+ \item The Latin friends: 5
+
+ \item All the Greek material: 124
+
+ \item The Greek friends, next to the Greek: 14
+
+ \item The core symbols for kerning reasons (punctuation and
+ delimiters): 12
+
+ \item The core symbols for design reasons: 24
+
+ More for kerning reasons:
+ \item The basic geometric delimiters: 9
+
+ Some new glyphs:
+ \item New basic delimiters: 9
+
+ \end{itemize}
+
+Sacrifices can be made in the greek material, and in the core symbols
+for design reasons.
+
+
+\section{The MX encoding: 243}
+
+Count up: 1 1 78 8 10 24 6 16 7 7 26 47 = 230
+
+The usual extensible characters, together with some new ones, would live
+here. Here any characters that have strange \TeX\ features, like big
+descenders are included, thus grouping glyphs that are not compatible
+with the outer world.
+
+For various reasons discussed in ``Replacing \texttt {cmex}?'' (Same
+author), the math font group has decided that the MX encoding will be
+designed in a way such that when it is loaded in one size (like in the
+present \TeX), every thing works OK, and the user can still have
+access to the new symbols. However, the MX encoding will produce better
+quality typesetting when loaded in three sizes.
+
+Detailed contents of MX:
+ \begin{itemize}
+ \itemsep -0.1cm
+
+ \item Maybe a skewchar: 1
+
+ The space is questionable here, because MX will not be usable by
+ other typesetting systems, see comment:
+ \item Maybe a space: 1
+
+ \item Big and extensible \TeX\ delimiters from cmex: 78
+
+ Any characters that have strange \TeX\ features like big descenders:
+ \item The radicals: 8
+
+ Technically the following can come out, but then they must go in
+ MSP.
+ To make this possible one could take the bar accent out of MSP.
+ \item Horizontal curly braces: 10
+
+ \item All existant big and small ``bigops'' except the integrals: 24
+
+ \item The existant Plain vertical extensible arrows: 6
+
+
+ One has to limit the number of wide accents, otherwise there is not
+ enough place.
+ \item The wide tildes, and the wide hats: 16
+
+ New glyphs:
+
+ It is a little bothering that the following will be separated from
+ their small versions, but there is nothing much that can be done
+ about it:
+ \item The big ``big integral'' family: 7
+ \item The small ``big integral'' family: 7
+
+ \item The new big and small `bigops': 26
+ \item New multisized and extensible delimiters: 47
+
+
+ \end{itemize}
+
+Note: all integral glyphs must be kerned with themselves, so that two
+integrals following each other can be kerned easily with a little
+care. Same for various other glyphs.
+
+
+\section{The math symbol `privilege' font ``MSP'': 250}
+ Count up: 1,1, 54 , 18,7,3 , 23 , 8,4,2,4,4 , 20,7, 10 , 8,8,12 , 14 ,
+ 6,4,5,4,5 , 8,2 , 16 = 250
+ \begin{itemize}
+ \itemsep -0.1cm
+
+ \item A skewchar in position 0: 1
+ \item A spacechar in position 32: 1
+
+ \item The script/calligraphic Latin letter set:54
+
+ According to AMS statistics, the script/cal are
+ used more often than the Blackboard bold.
+
+ Having the script/calligraphic here also achieves backward
+ compatibility with the existing \TeX, without loading MS1 and MS2.
+
+ \item The basic accents: 18 % all basic accents should stay here
+ \item The double accents: 7 % could go elsewhere
+ \item The underaccents: 3 % could go elsewhere
+
+ The following must stay here:
+ \item The ``Basic symbols'' group: 23
+
+ The next 5 are needed for compatibility with plain:
+ \item The ``Greater than plain'' group: 8
+ \item The ``Subset plain'' group: 4
+ \item The ``In / ni plain'' group: 2
+ \item The ``Sqsubset plain \& ams'' group: 4
+ \item The ``Succ without sim plain'' group: 4
+
+ \item The ``Small binops plain'' group: 20
+ \item The small ints: 7
+ These should probably live with the other `succ' members for design
+ reasons:
+ \item The ``Succ without sim ams'' group: 10
+
+ The next three make a homogenous group, and must live with sim.
+ Sim itself must live here because of compatibility with Plain:
+ \item The ``Greater than with sim'' group: 8
+ \item The ``Succ with sim'' group: 8
+ \item The ``Sim'' group: 12
+
+ The arrows, for compatibility, (improved a little though):
+ \item ``Plain horizontal arrows'': 14 or 10
+ \item ``Plain vertical arrows'' : 6 \\
+ Does not include the extensible arrows.
+ The latter are in MX as before.
+ \item ``Plain oblique arrows'': 4\\
+ Also called ``Plain other arrows''.
+ \item ``Latex arrows'': 5
+ \item Plain miscellaneous geometric symbols: 4
+
+ Extras ---~these are new glyphs~--- to improve a little what \TeX\
+ can already do:
+ \item Extra arrows for use with plain: 5
+
+ The ``lasy'' triangles are included in the AMS fonts and thus are
+ included in the following group:
+ \item AMS left-right open triangles: 8
+
+ Should live with the ``Plain oblique arrows'':
+ \item ``AMS obliques'':2
+
+ Some new glyphs: Some of this could come out.
+ \item Wide accents bar: 8
+
+\end{itemize}
+
+
+
+
+
+
+
+\section{The MS1, MS2, Math-Symbol encodings}
+Each of these encodings will contain a set of Latin letters, like for
+instance fraktur or blackboard bold, in uppercase or lowercase or
+both. In some cases a place should be reserved for a set of matching
+numbers too (i.e. Open). The rest would be filled up with symbols.
+An MS$_i$ encoding is needed for:
+
+\begin{itemize}
+\item An extra script/calligraphic, (see below comment on script and
+ calligraphic) the default caligraphic is in the MSP encoding.
+\item Open + (Arrows or relations) + other geometrics.
+\item Old german,
+\end{itemize}
+
+
+\textbf{Note:} Barbara Beeton writes ``Regarding script vs.
+calligraphic, I do understand the difference; however, at AMS I believe
+we only very rarely get a request to use both styles in the same paper.
+
+For that there are two possibilities:
+\begin{enumerate}
+ \item designing one encoding table where the positions A-Z (and
+ probably a-z and 0-9 even if they are not all filled) are
+ supposed to contain a ``calligraphy/script'' set of characters.
+ Then there would be instances of that encoding that would
+ contain script chars and others that would contain calligraphic
+ chars. Suppose our standard would say that this encoding is to
+ be used as family 4. A designer would then choose one such
+ font with this encoding for family 4 (thereby effectively
+ deciding what \texttt{\string\cal} and a lot of other symbols
+ look like (the ones whose \cn {mathchardef} points into family
+ 4)). For those who in addition would like to use another
+ script/call math alphabet: they can then just allocate one of
+ the free families. Access to this would then be trivial.
+
+ \item Having two different encodings; one for cal, and one for
+ script. The remaining symbols in both encodings would be
+ different too. Thus both encodings would need to be part of the
+ standard suite of math encoding tables.
+
+ Which solution is preferable depends a bit on the number of
+ symbols that ought to go in the standard.''
+\end{enumerate}
+
+Also J\"org Knappen writes: ``I strongly support having two different
+encodings, one for cal and one for script. If users have the choice
+between cal and script, they prefer script (at least in
+Mainz\footnote{Maybe Americans prefer it the other way
+ round.}). However, the old calligraphic alphabet still
+needs to be supported for compatibility reasons.''
+
+
+
+\section{The MS1 encoding: 232}
+Count up: 1 1 54 10 32 36 30 12 10 21 10 15= 232
+ \begin{enumerate}
+ \itemsep -0.1cm
+
+ \item A skewchar in position 0: 1
+ \item A spacechar in position 32: 1
+ \item The BBB alphabet uppercase and lowercase: 54
+ \item The BBB digits: 10
+ \item The last WIDE ACCENTS: arc, back-to-front vector, and
+ double-sided vector, normal vector: 32
+
+ For AMS inclusion:
+ \item The ``AMS horizontal arrows'' group: 22
+ \item The AMS other arrows group: 12
+ \item The ``Greater than AMS'' group: 30
+ \item The ``Subset AMS'' group: 12
+ \item ``AMS Equals friends'': 10
+ \item ``AMS Miscellaneous geometric symbols'': 21
+ \item ``AMS Vdash group'': 10
+ \item ``AMS boxes and friends: 15
+
+ For fun if there is place to spare:
+ \item Alan's arrow construction set: ?
+
+ \end{enumerate}
+
+
+
+
+
+
+
+
+\section{Other requested typefaces}
+ \begin{itemize}
+
+ \item In general, users may want MC fonts in arbitrary styles (bold
+ sans serif MC for instance) in order to get the Greek letters in
+ their favourite styles.
+
+ \item A ``text-like'' italic or slanted for computer science
+ identifier names and the like. This would be Cork encoded and
+ optionally loaded.
+
+ \item A ``bold upright'' for use as variables -- e.g. vectors in
+ physics notation rather than the arrow over an italic letter. This
+ would be Cork encoded, and optionally loaded or accessed via the
+ \texttt{\string\boldsymbol} concept in which case no family would be
+ required.
+
+ \item Bold italic for use as variables: either optionally loaded as
+ a second font with MC or cork encoding (using only variable family
+ symbols) or accessed via something like
+ \texttt{\string\boldsymbol}.
+
+ \item Bold Old german (occasional) suggested
+ \texttt{\string\boldsymbol} approach.
+
+ \item Bold script (occasional) suggested \texttt{\string\boldsymbol}
+ approach.
+
+ \item Sans serif lightface (occasional): optionally loaded cork
+ encoded font.
+
+ \item Sans serif boldface (occasional): optionally loaded cork
+ encoded font.
+
+ \item Bold symbols: either \texttt{\string\boldsymbol} or optionally
+ loaded in remaining slots.
+
+ \item Ultra bold symbols: either \texttt{\string\boldsymbol} or
+ optionally loaded in remaining slots.
+
+ \item An MC-encoded bold font containing upright bold Latin glyphs,
+ plus bold upright and bold slanted Greek. This would contain all
+ of the most commonly requested bold glyphs in one font (rather
+ than many more).
+
+
+ \item A cyrillic alphabet. Loaded as an extra family, or in text.
+
+ \end{itemize}
+
+
+
+
+
+\section{Summarising the families used by the proposed YAASP M-encoding}
+\begin{enumerate}
+\item Family $0$: A Cork encoded upright text font.
+
+\item Family $2$: An MC encoded font containing the default Latin and
+ Greek italic+upright, and core symbols...
+
+\item Family $1$: An MSP encoded font containing cal/script and
+ accents...
+
+\item Family $3$: An MX encoded font including all extensible glyphs,
+ and double sized operators...
+
+\item Family $y$: An MS$1$ encoded symbol font for Open, and arrows
+ or relations.
+
+\item Family $z$: An MS$2$ encoded symbol font for Old German.
+\end{enumerate}
+
+\textbf{Comments:}
+\begin{itemize}
+ \item This leaves 10 families free for anything else, (like bold
+ or sans...) and makes many symbols available.
+
+ \item The first four encoding tables put together give total
+ \TeX, La\TeX\ compatibility.
+
+ \item The first six give total \TeX, \LaTeX, AMS\TeX,
+ AMS\LaTeX, LAMS\TeX\ compatibility.
+
+ \item The six put together: do wonders, using no more font
+ families than the present AMS\TeX.
+
+\end{itemize}
+
+\section{Discussion}
+
+\subsection{Advantages}
+
+For MC: A big advantage here, is kerning. In this encoding kerning
+is possible between the Latin default alphabet, and both italic and
+upright Greek alphabets. This is necessary for compatibility, and for
+tidyness. On top of this both letter sets (in actual fact there are
+three) can be kerned with the core symbols that are in the MC
+encoding. This last point is the most important, and gives new and
+better automatic math spacing. (For compatibility reasons,
+the Greek italic must be kerned with the period, the comma, and the
+slash.)
+
+The bold version of the MC encoding gives the user access to a lot of
+bold letter sets in one go. The global family consumption is therefore
+largely reduced: 1 bold font instead of 2 or 3.
+
+Taking the accents away from the letters, means that the accents do
+not change when the text face changes, i.e. bold letters and medium
+letters get the same accents.
+
+One can get more than compatibility with plain \TeX\ only using 4
+families (the same number as standard \TeX\ currently uses).
+
+One can get more than compatibility with AMS\TeX\ using 6 families.
+This is less or equal than the number of families used by AMS\TeX.
+
+The calligraphic alphabet is more used than the open, so putting it
+with the accents is a step towards grouping most used glyphs together.
+
+This proposal gives a little room in the MC for free spaces, and good
+core material.
+
+With the MSP encoding concept, the MSi encodings can really be
+considered as (optional) extensions. Thus somebody who knows he
+does not need the arrow kit and the Blackboard bold letter set does not
+have to load them. Same for Fraktur.
+
+All the \TeX\ specific glyphs are grouped in MX. Thus all the other
+fonts could be used by other typesetting systems.
+
+Using the Cork encoded font in family 0 for things like \cn{log} and
+\cn{sin}, means that the Greek users can replace it by a Greek font.
+(Apparently Greek mathematicians set these function names
+using a Greek alphabet).
+
+
+
+\subsection{Disadvantages}
+
+If there is not enough space for all the required symbols,
+one can make an MS3 encoding that would contain the other
+version of script/cal, together with extra symbols.
+
+
+\subsection{Comments}
+
+In this proposal the core is really made of two fonts, and the kernel is
+made of four.
+
+Comments from Alan about the space slot in MX:
+\begin{quote}
+ ``MX will be used by \TeX, and the dvi drivers may be outputting to a
+ device that does not accept anything but a space in position 32. So
+ if you don't include a space here, then the MX-encoded fonts have to
+ be split into two device fonts by the drivers.''
+\end{quote}
+
+Comment from Alan about the Cork encoded font:
+\begin{quote}
+ ``I think it would be good to specify that this is family 0, for
+ compatiblity with current \TeX\ documents containing explicit
+ \cn{fam 0}
+ (naughty them!) and in order to have filled up slots 0 to 3 rather
+ than leaving a gap in family 0.''
+\end{quote}
+\end{filecontents}
+
+\begin{filecontents}{l3d007b.tex}
+\section{Introduction}
+ The goal of this document is to try and list the future contents of
+ the new math encoding. The glyphs have been divided into groups and
+ subgroups.
+
+ \textem {This is a draft and a workbench document. Some of it is out
+ of date, and usually the comments are not for the public. There are
+ lots of spelling mistakes, I know! The reader should be indulgent.}
+
+
+
+%something added by bb for euler:
+%begin{enumerate}
+%\item Cursive (normal) capital letters. not often used.
+%\item Cursive (normal) lower-case letters.
+%\item Script upper-case.
+%\item (Some) script lower-case.
+%\item Fraktur (old german) upper-case.
+%\item Fraktur (old german) lower-case.
+%\item Digits.
+%\end{enumerate}
+%% bb --
+%[bb: I will be happy to make a proposal for this.]
+
+
+\section{Extra font dimensions}
+\begin{itemize}
+\itemsep -0.15cm
+\item The design size,
+\item The default script size,
+\item The default scriptscript size,
+\item Suggested value for mathsurround (in MC)
+\item Math\_axis (in every font)
+\item Thin mu skip,
+\item Med mu skip,
+\item Thick mu skip,
+\item Recommended rule weight
+\item Baselineskip: leadingheight,
+\item Baselineskip: leadingdepth
+\item Suggested by JMR: the big and bigg params.
+\end{itemize}
+
+
+
+
+
+
+\section{Kerning}
+Better kerning should be made possible in the Latin math
+italic, if it is possible. Normal kerning information is put in the
+\fn{.tfm}
+file. But in math mode, for things to get kerned as specified in the
+\texttt{.tfm} file the left atom must be of ordinary type. If the user
+interface redefines everything that must be kerned as being ordinary,
+old documents will start looking different, and this is not wanted. To
+avoid this, the user interface could define a macro
+\texttt{\string\mathkerning\{...\}} that would use the kerning specified
+in the \texttt{.tfm} file, without globally making all characters
+ordinary.
+
+The following glyphs should be kerned:
+\begin{itemize}
+\itemsep -0.15cm
+\item The spacing of [ and ( and ) and ] followed by letters should
+ be adjusted.
+
+\item The spacing of letters followed by [ ] ( ) should be
+ adjusted. This is an important one.
+
+\item Keep the kerning with\quad . \quad , \quad / \quad for most
+ letters !
+%\item Keep kerning between = and upright $\Gamma$ ! (I must have
+ %dreamt this one) Maybe add kerning for other punctuation characters.
+\item At least keep the kerning between d and Y,Z,j,f. Maybe add some
+ others: dx, dy, d$\alpha$, d$\theta$, d$\phi$ ...
+
+\item New kerning of the integral with itself. This would only
+ be available via a \texttt{\string\mathkerning} macro (see
+ previous comment).
+\item Kerning of the period with itself,
+\item Kerning of the centered period with itself.
+\item Jan M.R. is sure that kerning is needed between
+ Latin and Greek. More precise information is needed.
+\end{itemize}
+
+
+
+
+
+
+
+
+
+
+
+
+
+\section{The following should be taken out of the present math encoding}
+\begin{itemize}
+\itemsep -0.15cm
+\item The old digits: 10.
+\item The 2 paragraph signs: \P, \S.
+\item The Yen sign: Y.
+\item The double dagger sign \ddag.
+\item The four card families: $\clubsuit, \heartsuit, \diamondsuit,
+ \spadesuit$.
+\item The musical signs: $\flat, \natural, \sharp$ ?????????
+\item The maltese cross. (AMS)
+\item The $\mathchar"017F$ seems not to be needed in maths.
+\item The circled R must come out of the math symbols. (AMS)
+\item The raised asterisk,
+\item The two triangles in cmmi: cmmi'56 '57 ???????
+\end{itemize}
+
+All these will be put in to the ``Text symbols'' encoding, that would
+come in many faces, and be text dependent.
+Other glyphs could be put in the ``Text symbols'' font:
+\begin{itemize}
+\itemsep -0.15cm
+\item More numerals,
+\item The perthousand sign.
+\item Maybe this is a good place for the `fraction' characters from
+ adobe.
+\item $<$florin$>$, $<$ellipsis$>$ etc.
+\item The superior and inferior digits, and put in kerning so that
+ $<$onesuperior$>$ $<$fraction$>$ $<$twoinferior$>$ produces a 1/2.
+\item The single dagger finds a place here although it is in
+ maths as well. This makes them two different symbols, and enables both
+ to have more specific shapes.
+\item A real copyright symbol, TM (trademark) and SM (service mark).
+\item An interrabang (a combination of ? and !) new. (bb)
+\end{itemize}
+
+
+Alan Jeffrey has worked on the `text symbol font'. Actually it is now
+called the companion text font. He has written more on this topic.
+``alanje@cogs.susx.ac.uk''
+
+
+
+
+
+
+\section{The Greek glyphs: 124}
+The following shapes must be included:
+\begin{itemize}
+\itemsep -0.15cm
+\item All the Upper-case in upright. 24
+\item All the Upper-case in italic. 24
+\item All the Lower-case in upright. 24
+\item All the Lower-case in italic face. 24. So far: $24\times 4=96$
+\item All the variable shapes in upright. 10
+\item All the variable shapes in italic. 10
+\item All the special numeric letters in upright. 3
+\item All the special numeric letters in italic. If lack of space
+ prefer the italic shapes to the upright ones. 3.
+\item Some control glyphs: 2 (probably useless)
+\end{itemize}
+
+
+\subsection{Variable shapes: 10}
+This list comes basically from: J\"org Knappen. They are all listed
+here including the ones that are already in the \fn{cm} fonts:
+\begin{enumerate}
+\itemsep -0.15cm
+\item Lower-case Phi,
+\item Lower-case Pi,
+\item Lower-case Kappa, (AMS)
+\item Lower-case beta (new),
+\item Lower-case Rho,
+\item Lower-case Epsilon,
+\item Lower-case Sigma,
+\item Lower-case Theta.
+\item Upper case chi (new),
+\item Upper case for upsilon.
+\end{enumerate}
+
+\subsection{Extra letters for numerals: 3}
+Source: J\"org Knappen. They are all listed here including the ones
+that are already in the \fn{cm} and \fn{ams} fonts. Must be given in
+lower-case.
+Upper-case Greek numerals exist, although extremely rare. For the
+ sake of completeness one could fill them in. But they are surely not
+ the hottest characters needed. (J\"org)
+\begin{enumerate}
+\itemsep -0.15cm
+\item Qoppa (new),
+\item Sampi (Sanpi?) (new) (J\"org Knappen),
+\item Digamma (AMS).
+\end{enumerate}
+
+
+\subsection{Control glyphs: 2}
+\begin{enumerate}
+\itemsep -0.15cm
+\item An italic control glyph, i.e. the following Greek letter is not
+taken from the upright, but from the italic Greek,
+\item A variable shape control glyph, i.e. the following Greek letter
+is not taken from the normal set of letters, but form the variant shape
+set. This will not work for all letters. Thus may not be a good idea.
+\end{enumerate}
+
+\note {From Alan about the control slots for Greek, ``Er, I'm not very
+ sure about those, since they'll affect kerning. I'd prefer to have
+ the choice between italic / upright made by the document designer.
+ And I'm not sure why anyone would want to get at an upper case $\xi$
+ by a macro \texttt{\string\uppercasegreek}\{\texttt{\string\xi}\}!''
+ --- ``True they will affect the kerning. But one could use them
+ differently from what you suggested. Although I'm not sure it is
+ interesting, the ligature mechanism does not have to be visible for
+ the user, i.e. he can still type \texttt{\string\Gamma}, which is
+ expanded to \texttt{\string\up \string\gamma}.''}
+
+
+
+
+
+
+
+\section{Extra Greek-like material: 14}
+This group of glyphs should not really be separated from the rest of
+the Greek material.
+\begin{enumerate}
+\itemsep -0.15cm
+ \item An upright partial sign,
+ \item An italic partial sign,
+ \item An upright partial sign with a slanted bar, AMS \cn{eth}
+ \item A \cn{thorn} WASY'151 but this one is not very good. There is a
+ better one in dcmr'136. There is one is wslipa10'102 (J\"org)
+ \item A barred upright lambda, ?????? (probably not J\"org)
+ \item A barred italic lambda, this is preferred. (J\"org)
+ \item An upright mho sign (upside down Omega),
+ \item The back to front epsilon: AMS "7F \cn{backepsilon},
+ \item Arabic letter dal: looks something like a back to front $c$.
+ \item Hebrew letter msbm'151,
+ \item Hebrew letter msbm'152,
+ \item Hebrew letter msbm'153,
+ \item The $\aleph$ or \cn{aleph} in position CMSY'100,
+ \item The Nabla, $\nabla$ in CMSY'162
+\end{enumerate}
+
+The barred signs may be obtained by ligatures, or could be
+constructed with kerning. In any case some slots for ligatures must be
+left free if possible.
+
+
+
+
+
+
+
+
+\section{The Latin letters: One set$=54$ glyphs}
+
+We shall assume here that all lower case alphabets contain a dotless `i'
+and a dotless `j', so that they can take accents other than a dot.
+\begin{itemize}
+\itemsep -0.15cm
+\item The usual \fn{cmmi} italic shapes. Upper-case and lower-case.
+\item The calligraphic shapes. Upper-case and lower-case.
+ The lower-case shapes are presently maybe not available.
+\item The script shapes. Upper-case and lower-case.
+ The lower-case shapes are presently maybe not available.
+\item The black board bold shapes. Upper-case and lower-case.
+\item The Fraktur style. Upper-case, and lower-case.
+\end{itemize}
+
+ \subsection{The calligraphic and/or script styles}
+ BB: ``How are ``calligraphic'' and ``script'' different here? I've
+ never seen what Knuth calls calligraphic and what most
+ mathematicians call script (the ``curly'' style) used in the same
+ context, so they are presumably not distinct from one another in
+ actual usage.''
+
+ The two should be included if there is enough space.
+ Otherwise one is enought.
+
+ \subsection{A hyphen char ?} These Latin letters are not meant for
+ typesetting words. It is assumed that all multi-letter words should be
+ typeset using the text fonts, not the math fonts. Thus
+ the hyphen character is not needed in the math encoding.
+
+
+ \subsection{Computer science and identifiers}
+ It looks as though the new math encoding will not contain anything
+ specially designed for computer science. Computer scientists will have
+ to use \texttt {cmti*} in an extra family for long identifiers.
+
+ \subsection{Chemists and chemical formulae} Considering the fact that
+ chemists do use a lot of mathematical expressions, they need the total
+ math mode as it is. On top of that they need a special mode for
+ writing chemical equations. One of the particularities of this
+ chemical mode would be the different placing of sub- and
+ superscript. A possible implementation is something like
+ \cn{EnterChemicalMode} and \cn{ExitChemicalMode}, which would
+ in actual fact load a new set of fonts (or only the font in family 2),
+ in order to have a different font dimensions in family 2.
+
+
+\section{Latin-like material: 5}
+This group should live next to the Latin letter set.
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item An upright d. This is needed for standard mathematical
+ typesetting.
+
+ \item A horizontally barred italic h, for physicists.
+
+ \item A slanted barred italic h, for physicists.
+
+ \item An italic upper-case Vee with a bar, the bar is meant to be
+ horizontal. \texttt{jvpurcel@vela.acs.oakland.edu}
+
+ \item An upright upper-case Vee with a bar, the bar is meant to be
+ horizontal, and extends through both sides of the Vee almost like
+ a strikeout. \texttt{jvpurcel@vela.acs.oakland.edu}
+
+ \end{enumerate}
+
+
+
+\section{The different ways needed to write numbers}
+ \begin{itemize}
+ \itemsep -0.15cm
+ \item The normal set of numbers in \fn{cmmi}: upright lining.
+
+ \item The blackboard bold numbers. (Used in physics and a field of
+ maths. See Alan J. for more details.) [Note: presently no
+ satisfactory bbb numbers seem to exist.]
+
+ \end{itemize}
+
+
+
+\section{Empty slots?}
+Some free slots could be included, so that people can put their
+ligatures in when they are trying to convert fonts coming from other
+worlds.
+
+Alan J. can give good explanations for this.
+
+
+\section{Arrows}
+Arrow construction should be possible. But to make sure it does not fail
+when used in different sizes, every single glyph used for this purpose,
+will be \textem{specifically} designed for this use. \textem{All of
+them will be in the same font table}. This does not mean that a given
+construction block can't be used for different types of arrows. This
+sort of thing has to be thought of, and forecasted. These construction
+blocks must not be used for any other purpose --- like for instance the
+equal or minus sign.
+
+All arrows from \fn{cm}, and from \fn{msam/msbm}, should be taken if
+necessary. Maybe some others too.
+
+ \subsection{The ``Plain horizontal arrows'' group: 14 (Alan:10)}
+ The first 6 are in cmmi'050 to '055:
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item leftharpoonup
+ \item leftharpoondown
+ \item rightharpoondown
+ \item rightharpoonup
+ \item lhook
+ \item rhook
+
+ From \fn{cmsy}:
+ \item leftarrow '40
+ \item Leftarrow '50
+ \item leftrightarrow '44
+ \item Leftrightarrow '54
+ \item rightarrow '41
+ \item Rightarrow '51
+ \item CMSY'67 this is the \cn{mapstochar}
+ \item CMSY'66 the negation sign/slash: 1
+ \end{enumerate}
+
+ \subsection{Extra arrows for use with plain arrows: 5 (Alan 5)}
+ \begin{enumerate}
+ \itemsep -0.15cm
+
+ \item It would be reasonable to add a \cn{mapsfromchar} in order to
+ build things like: $<\!\!-\!|$: 1
+
+ \item It would be reasonable to add a \cn{Mapstochar} that could go
+ with the double arrows to build things like $|\!=\!>$ : 1
+
+ \item It would be reasonable to add a \cn{Mapsfromchar}
+ that could go with the double arrows to build things like
+ $<\!=\!\!|$ : 1
+
+ \item A - for extending arrows: 1
+ \item A = for extending arrows: 1
+
+ \end{enumerate}
+
+
+ \subsection{The ``Plain vertical arrows'' group: 6 (Alan 6)}
+ \begin{itemize}
+ \itemsep -0.15cm
+ \item updownarrow cmsy'154
+ \item Updownarrow cmsy'155
+ \item uparrow cmsy'042
+ \item downarrow cmsy'043
+ \item Uparrow cmsy'052
+ \item Downarrow cmsy'053
+ \end{itemize}
+
+ \subsection{Plain vertical extensible arrows: 6 (Alan 6)}
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item Top sing arrow: cmex'170
+ \item Bottom single arrow cmex'171
+ \item Top double arrow cmex'176
+ \item Bottom double arrow cmex'177
+ \item Middle double arrow cmex '167
+ \item Middle single arrow cmex '077
+ \end{enumerate}
+
+ \subsection{Plain extra vertical arrows: 0}
+ Nothing added here.
+
+
+ \subsection{The plain other arrows: 8 (Alan)}
+ First the oblique arrows:
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item CMSY'45
+ \item CMSY'46
+ \item CMSY'55
+ \item CMSY'56
+
+ What else: ?
+ \end{enumerate}
+
+ \subsection{The ``Ams obliques'' group: 2}
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item msbm'36
+ \item msbm'37
+ \end{enumerate}
+
+
+
+ \subsection{The ``Latex arrows'' group: 5}
+ The four characters in position LASY'50 to '53 from the lasy font
+ (These appear in the wasy font as well) must be put with the arrows.
+ They are arrow heads. The squig \cn{arrow} in position '73
+ of lasy should also be included: 5
+
+
+ \subsection{The ``Ams other arrows'' group: 4}
+ \begin{itemize}
+ \itemsep -0.15cm
+ \item Circle arrows MSAM: '10 to '11 :2
+ \item Horizontal arrows MSAM:'113 '114 :2
+ \end{itemize}
+
+ \subsection{AMS horizontal arrows: 22 (Alan 23)}
+ This includes all the horizontal arrows and the negated ones,
+ that are listed page 280 of ``The joy of tex''.
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item leftarrowtail
+ \item leftleftarrows
+ \item leftrightarrows
+ \item leftrightsquigarrow
+ \item lefttrightharpoons
+ \item Lleftarrow
+ \item looparrowleft
+ \item looparrowright
+ \item nleftarrow
+ \item nLeftarrow
+ \item nLeftrightarrow
+ \item nleftrightarrow
+ \item nrightarrow
+ \item nRightarrow
+ \item rightarrowtail
+ \item rightleftarrows
+ \item rightleftharpoons
+ \item rightrightarrows
+ \item rightsquigarrow
+ \item Rrightarrow
+ \item twoheadleftarrow
+ \item twoheadrightarrow
+ \end{enumerate}
+
+ \subsection{Ams vertical arrows (Alan: 6) (here: 8)}
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item MSAM:'24 upuparrows
+ \item MSAM:'25 downdownarrows
+ \item MSAM:'26 upharpoonright
+ \item MSAM:'27 downharpoonright
+ \item MSAM:'30 upharpoonleft
+ \item MSAM:'31 downharpoonleft
+ \item MSAM:'36 Lsh
+ \item MSAM:'37 Rsh
+ \end{enumerate}
+
+
+ \subsection{Some control glyphs for access to arrows }
+ These do not appear in the \fn{.dvi} file, they simply enable the
+ construction of some arrows and slahsed arrows using the ligature
+ mechanism.
+
+% end of arrows
+
+
+
+
+
+
+\section{All sorts of accents}
+
+ \subsection{Basic size accents: 18}
+ \begin{itemize}
+ \itemsep -0.15cm
+ \item All those that are created by macros in the Ams package: the 3
+ dotted accent, and the 4 dotted accent.\quad 2
+
+ \item The ones in \TeX: e\char'22\ e\char'23\ e\char'24\ e\char'25
+ e\char'26\ e\char'27\ e\char'136\ e\char'137\ e\char'177\ e\char'176
+ e$\mathchar"017E$. They all come from \fn{cmr} except for
+ the last two from \fn{cmmi}. \quad 11
+
+ \item Extra: a back-to-front vector arrow, \quad 1
+ \item Extra: a double sided type vector arrow, \quad 1
+ \item Extra: a square bracket used as an accent, \quad 1
+ \item Extra: The previous one turned upside down, \quad 1
+ \item Extra: an arc is requested by AMS, \quad 1
+ \end{itemize}
+
+ \note {The e\char'175\ in \fn{cmr} is not needed in maths, it is just
+ a Hungarian accent.}
+
+ \note {The $\mathchar"017F$ seems not to be needed in maths. It
+ could be put in the text companion font.}
+
+
+
+ \subsection{Double accents: 7}
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item A bar and a dot on top,
+ \item A dot and a bar on top,
+ \item 2 dots with a bar on top,
+ \item A bar with 2 dots on top,
+ \item A hat and a tilde on top,
+ \item A hat and bar on top,
+ \item A double bar,
+ \end{enumerate}
+
+ \note {For the double accents, Spivak and Ralf Rey could do some
+ archive research at the AMS. Similar research could be done at the
+ APS, and the CUP.}
+
+
+ \subsection{Variable size accents: $7*8=56$}
+ Variable size has meant 5 different sizes until today.
+ That number could be raised to 8.
+ \note {If the accents are in a font
+ loaded in three different sizes, the choice mechanism of
+ \cn{mathaccent} will only look in the current style size (unlike
+ the delimiter choice mechanism). Thus although one could hope to
+ multiply the number of available sizes by three, in actual fact in
+ a given style the number of automatically available sizes would not
+ be multiplied. All the same this \textem{would} give better
+ results in each style,
+ but it would also create \textem{compatibility problems}
+ i.e.~formulae heights and widths may change. Even if not done in an
+ automatic way, the user would still have a larger range of accents
+ to choose from.
+ Compatibility problems could be avoided by redefining
+ \cn{mathaccent} to a \cn{mathchoice}. Thus the accents could always
+ come from text style, and the accented material could come from the
+ current style. But this does not work either. In doing so one would
+ no longer be able to take the base accents from the current style.
+ Although one could make two macros. See paper ``Repacing
+ \texttt{cmex}?'', same author.}
+
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item e$\mathchar"017E$ the vector. \quad 8
+ \item e\char'176\ the tilde. \quad 8
+ \item e\char'136\ the hat. \quad 8
+ \item e\char'26\ the bar. \quad 8
+ \item Some people request a variable size arc. \quad 8
+ \item The back to front vector arrow, \quad 8
+ \item The double sided vector arrow, \quad 8
+ \end{enumerate}
+
+
+ \subsection{Under accents: 3 so far}
+ Requests exist for the following:
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item A tilde,
+ \item A breve (\char'25)
+ \item A bar
+ \end{enumerate}
+
+ Like for the double accents, research could be done at the AMS...
+ ???????
+
+
+\section{Core symbols}
+
+The symbols that have some reason to live with the default math
+material. There are mainly two reasons for them to be there: one is
+kerning, and the other is design similarity.
+
+ \subsection{For kerning reasons: 12}
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item The period . CMMI
+ \item The coma , CMMI
+ \item The semi colon ; CMR
+ \item The colon : CMR
+ \item The exclamation mark ! CMR
+ \item The (
+ \item and the ) respectively opening-class and closing-class, CMR
+ \item The [
+ \item and the ] respectively opening-class and closing-class, CMR
+ \item The $\{$,
+ \item And the $\}$ (design similarity reasons also) in positions '146
+ and '147 of CMSY,
+ \item The `/' as a delimiter\footnote {This is not accessible via a
+ single key. The key `/' produces the sign $/$ taken from
+ \fn{cmmi}.}, and as a fraction sign, CMR
+
+ \end{enumerate}
+
+ \subsection{Basic geometric delimiters: 9}
+ Should go in the core, for kerning reasons, like the other ( ) and [
+ ]. If they don't fit in the core, they must go with the basics. The
+ ones listed here are all in CMSY, around '142, and '150.
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item $\rangle$
+ \item $\langle$
+ \item $|$
+ \item $\|$
+ \item $\rceil$
+ \item $\lceil$
+ \item $\rfloor$
+ \item $\lfloor$
+ \item The $\mathchar"026E$ in position '156
+ \end{enumerate}
+
+ Test: $|f|,\|f\|,\lfloor f\rfloor,$$\lceil f\rceil,\langle
+ f\rangle$ $f\lceil,f\lfloor,$$f\langle,f\backslash$ strange that
+ no kerning seems to be needed here, where as it is necessary for
+ the bracket.
+
+ \subsection{New basic size delimiters: 9}
+ Basic size means the same size as the parentheses and brackets in
+ \fn{cmr}. The following is a preference order list of desired new
+ delimiters:
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item A $|||$ for use as $|||f|||$ a norme,
+
+ Semantic brackets: $[\![$ and $]\!]$
+ \item The opening semantic bracket,
+ \item The closing semantic bracket,
+
+ \item Opening multi set brackets $\{|$
+ \item Closing multi set bracket $|\}$
+
+ Unicode contains another style of brackets, they call them
+ tortoise shell brackets. They look like:
+ \begin{verbatim}
+ /
+ /
+ /
+ |
+ |
+ |
+ \
+ \
+ \
+ \end{verbatim}
+ These are like parentheses, but with straight lines. No curves.
+ \item The opening tortoise shell bracket,
+ \item The closing turtoise shell bracket,
+
+ Triangle brackets, something like:
+ \begin{verbatim}
+ /|
+ / |
+ / |
+ \ |
+ \ |
+ \|
+ \end{verbatim}
+ \item The opening triangle bracket,
+ \item The closing triangle bracket.
+
+% \item The opening turtoise shell in Bbb.
+% \item The closing turtoise shell in Bbb.
+
+ \end{enumerate}
+
+
+
+ \subsection{For design similarity reasons: 24}
+ All this group must live with the default alphabet for design
+ similarity reasons.
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item The question mark ? must live with the ! CMR
+ \item The percent sign \% must live with the ! and ? CMR
+ \item The at sign @ must live with the \% CMR
+ \item The \$ sign must live with the @ \% ? ! CMR
+ \item The \& must live with \$, \% .. CMR
+ \item The \# in CMR
+
+ \item The inverted \&: must be found.
+
+ \item The $\ell$ as a rounded `l'. CMMI
+ \item The centered dot $\cdot$ for use as a multiplication sign,
+ must live with the period. CMSY
+ \item The asterisk $\mathchar"0203$ for use as a multiplication
+ sign, in position '003 in CMSY.
+ \item The $\propto$ sign must live with @, \%, $\ell$. In position
+ '057 of CMSY.
+ \item The $'$ or prime in position '060 of CMSY, one cannot
+ separate the prime from the the prime ligature slots. (2
+ ligatures) Kerning of letters with the prime is
+ not possible, because
+ the latter is set in superscript. ????????
+
+ \item The backprime from MSAM'070 should live with the prime. ??????
+
+ \item The $\infty$ sign in position '061,
+
+ \item The $\emptyset$ in position '073 of CMSY,
+
+ \item The \cn{check} mark in MSAM'130, ?????
+ \item The \cn{between} double parentheses in MSAM'107
+ should go with the normal parentheses.
+ \item The $\Re$, could come out if necessary,
+ \item The $\Im$ in position '074, and '075 of CMSY, could also
+ come out if necessary.
+ \item The $\dagger$ or dagger in CMSY'171, ?????
+ \item The smile, ???????
+ \item The frown form CMMI ????????
+ \item Could maybe include the circled S from MSAM'163. ?????
+ \item The Weierstrass symbol: $\wp$ only in one style, (could come
+ out)
+ \item The powerset symbol from
+ \texttt{Martin.Ward@durham.ac.uk}. (could come out if necessary)
+ It looks something like this:
+ \begin{verbatim}
+ XXXXXXXXXXX
+ XXXXXXXX XXXX
+ XXXXX XXXX
+ XXXXX XXXX
+ XXXXXXXX XXXX
+ XXX XXX XX
+ XX XXXXXXX XXXXXX
+ XX XXXXXXXXXXXX
+ XX XXXX
+ XX XXXX
+ XX XXXX
+ XX XXXX
+ XXXX XXXX
+ XXXX XXXX
+ XXXX XXXX
+ XXXXXX
+ \end{verbatim}
+ \end{enumerate}
+
+
+
+
+
+
+
+
+
+
+
+
+\section{Symbols from \fn{lasy} that must be kept: }
+The first four \fn{lasy} symbols are in \fn{msam}.
+
+The ones in positions '50 through '53 are arrow heads, and are counted
+as such in the corresponding group.
+
+Character '60 is in the \fn{msam}.
+
+'61 is not in the \fn{msam}, and should be kept.
+
+Char'62: same as \fn{msam}'03 ?
+
+Char'63: same as \fn{msam}'06?
+
+Lasy'72: same as \fn{msbm}'163 or \fn{msam}'166 ?
+
+Lasy'73: same as \fn{msam}'40 ?
+
+A list of what should be kept from \fn{lasy}:
+\begin{itemize}
+ \itemsep -0.15cm
+ \item Character '61: \quad 1
+ \item ???
+\end{itemize} \textbf{This makes a total of 1.}
+
+
+
+\section{The ``Subset'' groups}
+\note {None of these have anything to do with the \cn{sim} glyph.}
+
+ \subsection{The ``subset plain'' group: 4}
+ \begin{itemize}
+ \itemsep -0.15cm
+ \item The $\subseteq$ in position CMSY'022
+ \item The $\supseteq$ in position CMSY'023
+ \item The $\subset$ in position CMSY'032,
+ \item The $\supset$ in position CMSY'033,
+ \end{itemize}
+
+ \subsection{The ``subset Ams'' group: 12}
+ \begin{itemize}
+ \itemsep -0.15cm
+ \item From MSBM'040 to MSBM'43 : 12
+ \end{itemize}
+
+ \subsection{The ``In/ni plain'' group: 2}
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item The $\in$ sign in position CMSY'062,
+ \item The $\ni$ sign in position CMSY'063,
+ \end{enumerate}
+
+ \subsection{The ``sqsubset plain \& Ams'' group: 4}
+ These do not have a place any where else:
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item The $\sqsubseteq$, cmsy'166,
+ \item The $\sqsupseteq$, cmsy'167,
+ \item The sqsubset from MSAM'100,
+ \item The sqsupset from MSAM'101,
+ \end{enumerate}
+
+
+
+
+\section{The ``Greater than'' group}
+
+ \subsection{The ``Greater than Plain'' group: 8}
+ \begin{itemize}
+ \itemsep -0.15cm
+ \item The $\leq$ in position CMSY'024,
+ \item The $\geq$ in position CMSY'025,
+ \item The $\ll$ in position CMSY'34,
+ \item The $\gg$ in position CMSY'35
+ \item $<$ less than CMMI'074,
+ \item $>$ Greater than: CMMI'076,
+ \item The alternative leq: msam'66
+ \item The alternative geq: msam'76
+ \end{itemize}
+
+ \subsection{The ``Greater than AMS'' group: 30}
+ \begin{itemize}
+ \itemsep -0.15cm
+ \item From MSBM'000 to '005: 6
+ \item From MSBM'010 to '015: 6
+ \item From MSBM'024 to '025: 4
+ \item From MSBM'154 to '155: 2
+ \item From MSAM'060 to '061: 2
+ \item From MSAM'065 and '067: 2
+ \item From MSAM'075 and '077: 2
+ \item From MSAM'121 to '124: 4
+ \item From MSAM'156 to '157: 2
+ \end{itemize}
+
+ \subsection{The ``greater than with sim'' group: 8}
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item MSBM'022,
+ \item MSBM'023,
+ \item MSBM'032,
+ \item MSBM'033.
+ \item MSAM'046,
+ \item MSAM'047,
+ \item MSAM'056,
+ \item MSAM'057
+ \end{enumerate}
+
+ The `shapee' \cn{sim}, and the geometric \cn{sim} are considered to be
+ the same glyph, i.e. the difference that is sometimes visible is
+ considered to be a bug.
+
+
+\section{The ``Succ'' groups}
+
+ \subsection{The ``Succ without sim plain'' group: 4}
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item CMSY'026,
+ \item CMSY'027,
+ \item CMSY'036,
+ \item CMSY'037
+ \end{enumerate}
+
+ \subsection{The ``Succ without sim AMS'' group: 10}
+ \begin{itemize}
+ \itemsep -0.15cm
+ \item MSBM'006, '007: 2
+ \item MSBM'016, '017: 2
+ \item MSBM'026, '027: 2
+ \item MSAM'062 - '064: 3
+ \item MSAM'074: 1
+ \end{itemize}
+
+ \subsection{The ``Succ with sim Ams'' group: 8}
+ \begin{itemize}
+ \itemsep -0.15cm
+ \item MSBM'020, '021: 2
+ \item MSBM'030, '031: 2
+ \item MSBM'166, '167: 2
+ \item MSAM'45,
+ \item MSAM'55,
+ \end{itemize}
+
+ The `shapee' \cn{sim}, and the geometric \cn{sim} are considered to be
+ the same glyph, i.e. the difference that is sometimes visible is
+ considered to be a bug.
+
+
+
+
+
+\section{The ``Sim'' group: 12}
+ \begin{enumerate}
+\itemsep -0.15cm
+ \item sim CMSY'030
+ \item approx CMSY '31
+ \item simeq CMSY'047
+ \item wr CMSY'157
+ \item The bold MSBM'034
+ \item MSBM'035
+ \item MSBM'150
+ \item The bold MSBM'163
+ \item The bold MSBM'164
+ \item MSBM'165
+ \item MSAM'166, backsim
+ \item MSAM'167, backsimeq
+ \end{enumerate}
+
+
+\section{Binops}
+ \subsection{The ``Small binops plain'' group: 20}
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item cap CMSY
+ \item cup CMSY
+ \item uplus CMSY
+ \item sqcap CMSY
+ \item sqcup CMSY
+ \item big circle CMSY
+ \item big triangle up CMSY
+ \item big triangle down CMSY
+ \item vee CMSY
+ \item wedge CMSY
+ \item oplus CMSY
+ \item ominus CMSY
+ \item otimes CMSY
+ \item oslash CMSY
+ \item odot CMSY
+ \item amalg CMSY
+ \item bullet CMSY
+ \item circ CMSY
+ \item diamond CMSY
+ \item star (5 branches): CMMI'77
+ \end{enumerate}
+
+ \subsection{Small plain left right triangles: 2}
+ These should be replaced by the ones in the AMS fonts for math usage.
+
+ They are also used as bullets, and should go in the text symbol
+ encoding for such a usage.
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item triangle left: CMMI'56
+ \item triangle right CMMI'57
+ \end{enumerate}
+
+ \subsection{AMS left right open triangles: 8}
+ These are also in LASY.
+ \begin{itemize}
+ \itemsep -0.15cm
+ \item vartriangle left
+ \item vartriangle right
+ \item triangle left eq
+ \item triangle right eq
+
+ The previous four are in \fn{msam}
+ \item Same 4 negated in \fn{msbm}: 4
+ \end{itemize}
+
+\section{Basic Symbols: 24}
+A group of symbols used for typesetting basic mathematics.
+These are mainly geometrics. Some have been added for similarity
+reasons:
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item = The equals sign, CMR'075
+ \item - The minus sign, CMSY'00
+ \item + The plus sign, CMR'053
+
+ \item The $\times$ multiplication sign CMSY'002,
+ \item The \cn{divide} sign $\div$ CMSY'004
+ \item The \cn{divideontimes} from msbm'076 should live with divide
+ and times.
+ \item The rtimes from msbm'157 should live with the times.
+ \item The ltimes from msbm'156 should live with the times.
+
+ \item The $\pm$ sign in position CMSY'006,
+ \item The $\mp$ sign in position CMSY'007,
+
+ \item The $\equiv$ in position CMSY'021, Difficult to separate from
+ other similar relations.
+
+ \item The $\forall$ sign in position '070,
+ \item The $\exists$ sign in position '071,
+ \item The \cn{nexists} sign from msbm'100
+ \item The $\neg$ sign CMSY'072,
+ \item The \cn{varpropto} from AMS "5F. ????? or should this be left
+ as a geometric?????
+ \item The varemptyset from MSBM'77, ????
+
+ \item Could go here: the upside down F: Finv from msbm'140 ???????
+ \item And the back to front G: Game from Msbm'141 ???????
+
+ \item Unary minus like en dash, could be CMR'173 but I personally
+ think it should be shorter.
+
+ \item The \cn{varnothing} from MSBM'77,
+ \item smallsetminus from msbm'162
+
+ \item The $\perp$ perp or bot sign in position '077,
+ \item top sign CMSY'076
+\end{enumerate}
+
+
+
+
+\section{Radical}
+ \subsection{The \TeX\ radicals: 10}
+ Currently available in \fn{cmex} are:
+ \begin{itemize}
+ \itemsep -0.15cm
+ \item Five radical signs: 5
+ \item The vertical bit needed to construct the big
+ radical '165 : 1
+ \item The top bit of the constructed radical. '166 : 1
+ \end{itemize}
+
+ \fn{cmsy} includes the basic size of the radical. It
+ has always been loaded in three sizes, and must remain so.
+ If it is taken out of \fn{cmsy}, and put in a \fn{cmex}
+ replacement,
+ then this point must be taken into consideration.
+
+ If the new \fn{cmex} is loaded in one size, it must contain
+ three different sizes of the radical in order to stay compatible
+ with plain: 3
+
+
+ \subsection{New radicals: 2}
+ Request made by: \texttt { HITT\% USOUTHAL.BITNET@SHSU.edu }.
+
+ One can overload the little vertical extensible module of the
+ radical, in order to produce a left quantum operator. For the right
+ quantum operator, the glyphs could be available, but the radical
+ macro can't be used.
+ A specific macro could be designed and it would need two glyphs:
+ the top right hand corner, and the repeatable
+ vertical bit: 2
+
+
+
+
+
+
+\section{The integrals family: 18}
+
+ \subsection{Big `bigops' size: 7}
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item The single integral.
+ \item The double integral. Could be done with kerning if there is
+ not enough space.
+ \item The triple integral. Could be done with kerning if there is
+ not enough space.
+ \item The single O integral.
+ \item The double O integral.
+% \item The triple O integral. ??????? J\"org says no.
+ \item The sigma integral. For physics: J\"org.
+ \item The slash integral. For physics: J\"org.
+ \end{enumerate}
+
+ \subsection{Small `bigops' size: 7}
+ The same as in big `bigops' size.
+
+ \subsection{Small size: 7 }
+ This refers to the size of the \cn{smallint} in CMSY.
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item The single normal integral.
+ \item The single O integral.
+ \item Double O integral. ???? (J\"org thinks yes)
+ \item Double normal integral ???? (J\"org thinks yes) Could be done
+ with kerning if there is not enough space.
+ \item Triple normal integral ???? (J\"org thinks yes) Could be done
+ with kerning if there is not enough space.
+ \item The sigma integral.
+ \item The slash integral.
+ \end{enumerate}
+
+ Mail from HSS:
+ \begin{quote} %\fontsize{7}{7}\selectfont
+ \cn{doubleoint} is used by Becker in "electromagnetic fields and
+ interactions" (Dover). I also saw \cn{tripleoint} used in
+ electromagnetic theory books although both are somewhat archaic.
+
+ Concerning the small version (in \fn{cmsy}), I suggested this solely
+ for reasons of completeness. The need for it is less now that
+ \fn{cmex} will be loaded in three sizes. But the small version of
+ \cn{int}
+ \& \cn{oint} look a bit large when used in inline formulas. The
+ \cn{smallint} \& \cn{smalloint} etc. may be a choice for some
+ authors in the latter case.
+
+ YH also pointed out, that the upright versions of integrals are very
+ common in textbooks. since the integral sign is one of the most
+ common symbols used in maths, it may not be a bad idea to include
+ upright versions of *all* integral signs in \fn{cmex} (with
+ corresponding small versions in \fn{cmsy}) again for reasons of
+ completeness.
+
+ \end{quote}
+
+\section{AMS Vdash group: 10}
+\begin{enumerate}
+\itemsep -0.15cm
+\item MSBM'054 nparallel
+\item MSBM'055 nmid
+\item MSBM'056 nshortmid
+\item MSBM'057 nshortparallel
+\item MSBM'061 nVdash
+\item MSBM'062 nvDash
+\item MSBM'063 nVDash
+\item MSBM'160 shortmid
+\item MSBM'161 shortparallel
+\item MSAM'015 Vdash
+\item MSAM'016 Vvdash
+\item MSAM'017 vDash
+\end{enumerate}
+
+\section{Plain and \fn{lasy} miscellaneous symbols: 6}
+\begin{enumerate}
+\itemsep -0.15cm
+\item CMSY'20
+\item CMSY'140
+\item CMSY'141
+
+ Should live with the two previous:
+\item MSBM'060 What about the back to front version of this ?????
+\item LASY'061 the bow tie,
+\item LASY'62 the small box. It is smaller than the one in the AMS
+ fonts. ????
+\end{enumerate}
+
+
+\section{AMS equals friends: 10}
+ \begin{enumerate}
+\itemsep -0.15cm
+ \item msam'155
+ \item msam'154
+ \item msam'120
+ \item msam'73
+ \item msam'72
+ \item msam'54
+ \item msam'53
+ \item msam'52
+ \item msam'51
+ \item msam'44
+ \end{enumerate}
+
+
+\section{AMS miscellaneous geometric symbols: 21}
+\begin{enumerate}
+\itemsep -0.15cm
+\item msam'174
+\item msam'173
+\item msam'171
+\item msam'170
+\item msam'165
+\item msam'164
+\item msam'161
+\item msam'160
+\item msam'151
+\item msam'150
+\item msam'147
+\item msam'146
+\item msam'141
+\item msam'140
+\item msam'136
+\item msam'135
+\item msam'134
+\item msam'133
+\item msam'132
+\item msam'131
+\item msam'050
+\item msam'005
+
+\end{enumerate}
+
+
+
+\section{AMS boxes and friends: 15}
+\begin{enumerate}
+\itemsep -0.15cm
+\item MSAM'000
+\item MSAM'001
+\item MSAM'002
+\item MSAM'003
+\item MSAM'004
+\item MSAM'006
+\item MSAM'007
+\item MSAM'014
+\item MSAM'106
+\item MSAM'110
+\item MSAM'111
+\item MSAM'112
+\item MSAM'115
+\item MSAM'116
+\item MSAM'117
+\end{enumerate}
+
+
+
+\section{The horizontal curly braces: 10}
+Their design should be the same as the vertical braces. Add two
+horizontal extension modules for them, since if they are drawn with
+rules, digitization errors may cause them not to line up with the
+horizontal brace glyphs. What's more, this would enable the designer
+to choose there boldness.
+
+Plus two extra middle bits. So that the designer is not restricted by
+the number of slots. Knuths design could use that little amount of
+glyphs, but maybe other will need more.
+
+Count: for the downwards brace: 2 end bits, 1 middle bit, 2 extensible
+modules. That makes a total of 5 per curly brace. One up, and one
+down: makes 10.
+
+
+
+\section{Big and extensible \TeX\ delimiters from \fn{cmex}: 78}
+This group includes delimiters that are in \fn{cmex}. And an extra
+little extensible module for the \{ and \}.
+ \begin{itemize}
+ \itemsep -0.15cm
+
+ \item Four different sizes of ( and ): 8
+
+ \item Extensible versions of ( and ): 6 \\
+ Left and right extensible modules are '102 and '103. Top and bottom
+ are '060, '061, '100, '101.
+
+ \item Four different sizes of [ ]: 8
+
+ \item Extensible version of [ and ]: 6 \\
+ The extensible modules, one for the right bracket, and one for the
+ left bracket are: '066, '067. The top and bottom pieces are: '062
+ to '065.
+
+ \item Four different sizes of \{ and \}\,: 8
+
+ \item Extensible module for \{ and \}\,: 7 \\
+ The extensible module ('76) used for the curly braces is very small,
+ because it is added twice: once above the middle piece, and once
+ below the middle piece. Its height is half that of the parentheses
+ extensible module. Other pieces are: '070 - '075.
+
+
+ \item An extra extensible module for the \{ and \}\,: 1\\
+ There is only one extensible module for both the left and the
+ right curly brace in \fn{cm}. This is because the left-right spread
+ of a curly brace is symmetrical in \fn{cm}, unlike the parentheses
+ for example.
+ This may not be the case for other designs.
+
+ \item Four different sizes of $\langle$ and $rangle$: 8
+
+ \item Four different sizes of $\backslash$ and $/$: 8
+
+ \item Four different sizes of $\lfloor$ and $\rfloor$: 8 \\
+ The extensible version is build with the same pieces as the
+ extensible brackets.
+
+ \item Four different sizes of $\lceil$ and $\rceil$: 8 \\
+ The extensible version is build with the same pieces as the
+ extensible brackets.
+
+ \item Extensible vert and parallel: 2 \\
+ Extensible versions of the vertical bar and the double vertical
+ bar. They are their own extensible modules: '014 and '015.
+
+ \end{itemize}
+
+
+
+
+\section{Bigops}
+ \subsection{Old bigops from \TeX: 28}
+ There are two glyphs for each bigop.
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item The sqcup
+ \item The circled integral
+ \item The circled dot
+ \item The circled plus
+ \item The circled times
+ \item The sums
+ \item The prods
+ \item The normal integrals
+ \item The bigcups
+ \item The bigcaps
+ \item The U plus
+ \item The wedges
+ \item The vees
+ \item The coprods
+ \end{enumerate}
+
+ \subsection{New double sized `bigops': 26 }
+ All these should come in two sizes, in the same font, like the present
+ \cn{bigcup}. One for display style, and one for text style. That
+ makes two glyphs for each one.
+
+ \begin{enumerate}
+ \itemsep -0.15cm
+
+ \item A double sized sqcap $\sqcap$ \cn{bigsqcap} (can be found in
+ \fn{cspex})
+
+ \item Two sized $\bigcirc$ with $\vee$ inside. $\bigcirc
+ \!\!\!\!\!\vee$ proposed name: \cn{ovee}, and \cn{bigovee}.
+ Can be found in \fn{cspex} and \fn{stmary}.
+
+ \item Two sized $\bigcirc$ with $\wedge$ inside. $\bigcirc
+ \!\!\!\!\!\wedge$ proposed name \cn{owedge}, and
+ \cn{bigowedge}. Comment from Alan:
+ \begin{quote}
+ ``As far as I'm aware nobody has *ever* used these glyphs in a
+ paper. I put them in St Mary's Road because I needed them at
+ the time, but I shortly abandoned writing the paper they were
+ going to be used in. Please don't include them! (If we are
+ going to, we need to include <ovee> and <owedge> as well as
+ <bigovee> and <bigowedge> which are the ones you described.)''
+ \end{quote}
+
+ \item Dijkstra choice: $[\!]$ CSPEX
+
+ \item A wide Dijkstra choice. CSPEX . Comment from Alan:
+ \begin{quote}
+ If this is the glyph I think it is, it's not quite a wide
+ Dijkstra choice in shape (although mathematically it's the
+ same thing as Dijkstra choice). The two glyphs are:
+
+ $<$dijkstrachoice$>$ looks remarkably like [ and ] glued
+ together.
+
+ $<$oblong$>$ looks like $<$sqcap$>$ but with the square
+ completed.
+
+ $<$oblong$>$ is used in CSP in conjunction with $<$sqcap$>$,
+ so it's quite important that they look the same. In
+ particular, they need to be of the same width because if they're
+ not, formulae sometimes don't line up properly...
+ \end{quote}
+
+ \item Parallel \cn{bigparallel} just a double sized version of
+ parallel.
+
+ \item Interleaving $|\!|\!|$ : \cn{biginterleaving}
+ \begin{quote}
+ `Interleaving' and `parallel' are used in (at least) three
+ different ways:
+ \begin{itemize}
+ %\itemsep -0.15cm
+ \item As delimiters $||$foo$||$ and $|||$foo$|||$. These
+ should come in basic-sized and extensible versions.
+ \item As binary operators p $||$ q and p $|||$ q. These can
+ be the same glyphs as for the basic-sized delimiters.
+ \item As `big' operators $||_i \;p_i$ and $|||_i \;p_i$
+ similar to \cn{bigcup}. These should come in text style and
+ display style versions.
+ \end{itemize}
+ The big operators are not the same glyphs as the extensible
+ delimiters.
+ \end{quote}
+
+ \item \cn{bigcupdot}: A `U' with a dot in it. Something like:
+ $\bigcup\!\!\!\!\cdot$
+
+ \item \cn{bigcapdot}: an upside down `U' with a dot in it. Something
+ like: $\bigcap\!\!\!\!\cdot$
+
+ \item An inverted \& called \cn{dnasrepma}
+
+ \item Large operator symbol based on, an asterisk sign.
+
+ \item Large operator symbol based on a times sign.
+
+ \item Large operator symbol based on, a hash sign.
+
+ \item Large operator symbol based on, an ampersand sign.
+
+ \end{enumerate}
+
+
+
+\section{Non classified existing symbols}
+Here is a list of some symbols that do not have a place elsewhere:
+\begin{itemize}
+ \itemsep -0.15cm
+ \item The different shapes of \# should find a place, although one is
+ already in the core group.
+\end{itemize}
+
+
+
+
+
+
+
+
+\section{A list of new glyphs}
+
+The following symbols should be added in the math fonts. Some have
+already been designed by various people, so it should be possible to
+find them...
+
+
+ \subsection{Basic size operators: 2}
+ Basic size means the same size as the operators in \fn{cmsy}.
+ \begin{enumerate}
+ \itemsep -0.15cm
+ \item Something like \cn{cupdot} and
+ \item Something like \cn{capdot} Frank M. can justify these.
+ \end{enumerate}
+
+
+ \subsection{New multi-sized, and extensible delimiters: 47}
+ Count: 8, 6, 1, 8, 8, 8, 8, makes 47 .
+
+ A multi-sized delimiter means: 4 sizes for each side : 8 glyphs.
+ Plus and extensible version: top, bottom, extension module for both
+ sides: 6 glyphs. Sometimes also a middle: 8 glyphs. Total: 16 or 14.
+ \begin{enumerate}
+ \itemsep -0.15cm
+
+ \item Four sizes of the semantic brackets $[\![$ and $]\!]$: 8
+
+ \item An extensible version of the semantic brackets: 6 \\
+ (Top - Middle - Bottom) * 2 makes 6.
+
+ \item An extensible version of $|||$ for use as $|||f|||$ (a
+ norme). Just the extension module: 1
+
+ \item 4 sizes of multiset brackets $\{|$ and $|\}$: 8
+
+ \item An extensible version of multi-set brackets: 8 \\
+ (Top - Bottom - Middle - extensible module) *2 makes 8.
+
+ Unicode contains another style of brackets, they are called
+ tortoise shell brackets. They look like
+ \begin{verbatim}
+ /
+ /
+ /
+ |
+ |
+ |
+ |
+ |
+ \
+ \
+ \
+ \end{verbatim}
+ \item Four sizes of tortoise shell brackets: 8 \\
+ No extensible version. could add them in.
+
+
+ \item Four sizes of triangle brackets: 8 \\
+ They look like:
+ \begin{verbatim}
+ /|
+ / |
+ / |
+ \ |
+ \ |
+ \|
+ \end{verbatim}
+
+ \end{enumerate}
+
+
+
+\subsection{Geometrics: 21}
+\begin{enumerate}
+ \itemsep -0.15cm
+
+ \item The \fn{ams} smaller or equal and greater or equal must not be
+ forgotten.
+
+ \item Linear `is implied by' if o-- and o--o [bb: There are also
+ versions of these with filled-in circles.]
+
+ \item From JMR: something like: $\raise .1cm \hbox{$|$}\!\_$
+ maybe the same upside down.
+
+ \item From JMR: Something like: $\_\!\raise .1cm \hbox{$|$}$
+ maybe the same upside down.
+
+ \item \texttt{Here are some other symbol I once needed: \cn{opm},
+ \cn{omp}. Why? There is \cn{oplus} and \cn{ominus} and there
+ is +, -, \cn{pm} and \cn{mp}, but there's no \cn{opm} and
+ \cn{omp}.}
+
+ \texttt {I once needed them in a context, where \cn{oplus} and
+ \cn{ominus} were used as subscripts to indicate symmetric and
+ antisymmetric wave functions that were normalized. It is easy to
+ specify formulae that include both cases using \cn{pm} and
+ \cn{mp}, but suddenly there was no \cn{opm} and \cn{omp}. I
+ constructed symbols using the circle from the copyright sign,
+ but that was not actually the perfect size.}
+
+\end{enumerate}
+
+\subsection{New arrows}
+\begin{itemize}
+\itemsep -0.15cm
+ \item Alan J. wrote: \cn{arrownot} and \cn{Arrownot}, so that for
+ example \cn{arrownot}\cn{mapsto} is visually compatible with
+ \cn{nrightarrow}. Describing the same thing he also wrote: Add
+ the `building blocks' for the AMS negated relations, for example a
+ \cn{arrownot} to build \cn{nlongrightarrow} and
+ \cn{nrightarrowfill}.
+
+ \item The building blocks to make \cn{mapsfrom} $<\!\!-\!|$
+ \cn{Mapsto} $|\!=\!>$ and \cn{Mapsfrom} $<\!=\!\!|$
+
+ \item Lfloor, Rfloor, Lceil, Rceil like $\lfloor\!\lfloor$
+
+ \item Arrows with triangles on the end.
+$$<\!\!\!|\!\!-\!\!-,\ -\!\!-\!\!|\!\!\!>,\ <\!\!\!|\!\!-\!\!-|\!\!\!>$$
+
+ \item Equals like symbol: $<\!--\!>$ with $==$ underneath.
+\end{itemize}
+
+
+\subsection{Non geometrics: 19}
+
+\begin{enumerate}
+\itemsep -0.15cm
+% \item The double circled integral, or the surface integral for
+% physicists.
+% \item A single integral with on top a $\Sigma$:
+% $\displaystyle\int\!\!\!\!\!\!\textstyle\Sigma$ (J\"org)
+% \item A single integral with a slanted dash:
+% $\displaystyle\int\!\!\!\!\!\textstyle-$
+% \item A triple, circled integral.
+
+ \item Possibly something like $\bar{}\!\!($ and $\bar{}\!\!)$ if the
+ bar was touching the parentheses.
+
+ \item Banana brackets: look (sort of) like $(\!|$ and $|\!)$. Or
+ they look like bananas if you believe Jeremy... Alan: The St. Mary
+ Road font includes samples of them, in a line-drawing style. Since
+ I have not seen them in real use, I cannot comment, if this style
+ or rather the look of \& in \fn{cmr} is appropriate.
+
+ \item lightning (\fn{wasy}) --- probably does not belongs in maths.
+ Alan: It is actually used though! It means `interrupt' in process
+ theory, c.f. Communicating Sequential Processes, Hoare, Prentice
+ Hall 1985. I don't know how widely used outside process theory it
+ is though...
+
+
+
+% \item Upright partial derivation sign. In the Greek-like stuff.
+% \item Arabic letter dal: looks something like a back to front $c$.
+% This should live with the Hebrew letters.
+% \item Remember that message forwarded by J\"org. The V-bar, and the
+% parenthesis-bar. jvpurcel@vela.acs.oakland.edu. The V-bar is in
+% with the Latin like stuff.
+
+ \item Katakana character that looks like a spiral. (bb)
+
+% \item Here is a proposal from J\"org: Mylona's and Whitney's
+% ligatures: two extra symbs. These would come in italic, and
+% upright like the rest of the Greek stuff. J\"org himself does not
+% like this. [bb: But we're not talking about text! Why put these
+% in a math font?] It now looks as though this is not going to be
+% included in the new math encoding.
+
+ \item A lower-case sigma with a long tail that goes a little bit below
+ the baseline.
+
+ \item The two versions of the \# hash sign must not be forgotten. It
+ seems that one is geometric, and one is not: the slanted
+ hash sign and the upright hash sign.
+
+
+ \item An \cn{inviota} is sometimes requested on the net. I'll send
+ you a reference file for it. (J\"org)
+
+ \item More ?
+
+\end{enumerate}
+\end{filecontents}
+
+
+
+\begin{filecontents}{l3d007c.tex}
+%a macro to put a frame round a box
+\newcommand{\frameit}[1]{\vbox{\hrule\hbox{\vrule
+ \hskip .1cm\vbox{\vskip .1cm\hbox{#1}\vskip .1cm}\hskip .1cm
+ \vrule}\hrule}}
+
+
+\begin{quote} \small
+ The placing of mathematical accents in \TeX{} is done with
+ the following control sequence: {\tt\string
+ \mathaccent"xyzz\{box\}}. {\tt"xyzz} is the code that
+ identifies the accent, and `{\tt box}' is the entity to come
+ under the accent. The box can be any type of box known by \TeX{}: a
+ single letter, a vbox, an hbox, etc... The accent code used is a
+ usual math code (refer to any book on \TeX\ for more details). The
+ accent is basicaly centered over the given box, but there are ways
+ of influencing the way the centering is done. The vertical placement
+ is as we shall see a little more tricky.
+\end{quote}
+
+
+
+
+
+
+\section{The accent choosing}
+
+Let us call $x$ the box that is due to be accentuated, and $u$ its
+width.
+We shall first suppose that $x$ is a single character.\\
+\vskip .05cm
+\centerline{$x:\qquad \rightarrow$\lower .2cm%
+\hbox{\frameit{\huge x}}$\leftarrow$u}
+\vskip .2cm
+
+If the accent is part of a list of successors\footnote{See document on
+ charlist for more details about successors.}, \TeX{} chooses the one
+whose total width is {\em as close as possible} to $u$, but still
+{\em smaller or equal} to $u$.
+
+\vskip .25cm \textbf{Note.} A list of successors can only take place
+in one and one font only, and Knuth reminds us of this fact in rule 12:
+``[...] has a successor in its font [...]'' This makes me wonder...
+The hat and tilde come in their smallest size in cmr position '136 and
+'176. The other sizes are in cmex position '142 - '147. The
+following:\\
+\verb| $\mathaccent"005E{e}$, ... ,$\mathaccent"005E{eeee}$|\\
+produces: $\mathaccent"005E{e}$ and
+$\mathaccent "005E{ee}$ and $\mathaccent "005E{eee}$ and
+$\mathaccent "005E{eeee}$. So as expected there is no automatic sizing,
+seeing as the hat in cmr is not part of a charlist. Same test with
+tilde: \\
+\verb| $\mathaccent "007E{e}$, ... ,$\mathaccent"007E{eeee}$|\\
+ produces: $\mathaccent"007E{e}$ and $\mathaccent
+"007E{ee}$ and $\mathaccent "007E{eee}$ and $\mathaccent "007E{eeee}$.
+In order to get a hat that changes size automatically one must
+call the smallest hat in \texttt{cmex} directly , like \cn{widehat}
+does. \cn{widehat} is defined as: \cn{mathaccent} \texttt{"0362}.
+Family three indicates cmex, and 62 is the hex position of the
+smallest hat in \texttt{cmex}. Thus \cn{widehat}\verb|{abda}|
+produces: $\widehat{abda}$.
+
+
+
+
+
+\section{The horizontal placing}
+
+The accent followed by its italic correction is put into a box $y$
+whose width we shall call $w$.\\
+\vskip .05cm
+\centerline{$y:\qquad \rightarrow$\lower .2cm\hbox{\frameit{ acc
+{\tt \string\/}}}$\leftarrow\ w$}
+\vskip .2cm
+
+Let us call $s$ the kern between the character in box $x$ and the {\em
+skewchar\/}\footnote{See below for more details about the skewchar.}
+---~taken in that order. The box $y$ is first centered on top of the
+box $x$ and then shifted rightwards by the amount $s$.
+
+\textsl {If the box $x$ is {\em not a single character}, the amount
+ $s$ is taken equal to zero, therefore the skewchar is ignored and
+ the box $y$ is normally centered\footnote{But the box $y$
+ contains the italic correction, which influences the centering.}
+ over the box $x$.
+}
+%
+%
+%
+\subsection{The `skewchar'}
+The \textem {skewchar} is a specific character that D.E.~Knuth decided
+to use ---~in the way described above~--- for placing accents. Each font
+should have its own skewchar.
+
+For most characters, the {\tt .tfm} file specifies a particular
+kerning of each letter with the skewchar. This is true for the
+computer modern fonts, but other font designers may not have used this
+feature.
+
+Why choose one skewchar rather than another? This is because the
+character $\mathchar"017F$ chosen by Knuth does not have any other
+kerning that could have been disturbed by the skewchar kerning. This
+choice may not always be good for all fonts, because it depends on
+what the character in position '127 is. Thus a font designer might
+choose another skewchar and put the necessary kernings in the {\tt
+ .tfm} file. Accent glyphs can be used as skewchars, because they
+are usually not subject to kerns from other glyphs.
+
+As long as one uses the {\tt cm} fonts, it does not make much sense to
+change the skewchar, unless one wants to get strange effects, or
+unless one intends to change the {\tt .tfm file}. One should remember
+that an assignment to skewchar is not undone at the end of the group,
+but is a part of the global font information. A local change
+therefore involves saving the original value, and then restoring it.
+
+\subsection{The italic correction}
+The presence of the italic correction here is a little mysterious.
+Its effect is to shift the accent to the left compared to the position
+it would have without it. One should note that it is still added when
+the $x$ box is more than one character.
+%My personal theory is that
+%whereas the skewchar-kerning enables a general positioning of all
+%accents on one character, the italic correction enables an adjustment
+%of a particular accent over all characters.
+
+
+\subsection{Conclusions}
+It is useless changing the skewchar unless one also modifies the
+{\tt .tfm} file(s), which contain(s) the info for the skewchar kerning,
+and for the italic correction.
+
+Accents from any font can be positioned on characters from any other
+font if there is a skewchar in the character font.
+
+%
+%
+%
+%
+%
+%
+\section{The vertical placing}
+This is a little more tricky. Here as well one can start
+by supposing that the character to be put under the accent is single.
+All previous notations are kept. $\chi$ is the x-height
+of the accent's font i.e. {\tt\string \fontdimen5}. Let us call $h_x$
+the height of the $x$ box:\\
+%
+\vskip .1cm
+
+\centerline{\vbox{\hbox{$\ \downarrow$} \frameit{\huge x} \kern
+ -.2cm\hbox{$\ \uparrow$}
+\hbox{$h_x$}}}
+\noindent
+and $h'_x$ the height of a box $x'$ containing the character to be put
+under the accent, together with an empty superscript, and an empty
+subscript.\\
+\centerline{%
+$x':\qquad $ \lower 1.5cm \vbox{\hbox{$\ \downarrow$}%
+\frameit{$\mathop{\frameit{\huge x}}\limits^{\frameit{\scriptsize%
+super}}_{\frameit{\scriptsize sub}}$}%
+\kern-.2cm
+\hbox{$\ \uparrow$}%
+\hbox{$h'_x$}}%
+}%end of centerline
+%
+
+\noindent
+Now set $\delta$ with the minimum of $\chi$ and $h_x$, and increase it
+by $h'_x-h_x$.
+
+The end result is a \cn{vbox} $z$ containing box $y$ (the accent
+correctly positioned lateraly), followed by a (vertical) kern of
+$-\delta$, and then box $x'$ . A normal accent char has the folowing
+aspect:
+\frameit{\char127}. This explains why the kern of $-\delta$ is needed.
+Without it the gap under the accent would be to big. One can now
+understand why an `O' used as an accent over an `e' produces the
+following: $\mathaccent"714F{e}$.
+
+If the height $h_z$ of $z$ is smaller than $h_x$ then a kern
+is added on top of $z$ in order to make the end height that of $x$.
+Finally, the width of $z$ is set to the width of $x$.
+%
+
+\textsl{If the character to be accentuated is not single, $\delta$ is
+ not increased by $h'_x-h_x$. In other words, one can forget about
+ the subscript and superscript.
+}%end of textsl
+
+\subsection{Conclusions}
+The x-height is used for the vertical placing of accents. This means
+that one cannot mix in the same font table glyphs designed with
+different x-heights.
+\end{filecontents}
+
+
+
+\begin{filecontents}{l3d007d.tex}
+\begin{quote}\small
+The re-encoding of the math fonts cannot be thought of without a
+closer look at \TeX's mechanisms for dealing with extensible
+characters. This includes all characters that come in different sizes,
+all characters that are constructed, and the operators that usually
+come in two sizes. The ultimate questions are: how
+to implement these characters? What sort of kerning can be
+done with them?
+\end{quote}
+
+
+
+
+
+
+
+
+
+
+
+
+\section{Let us start with the easiest: The operators}
+
+A large operator like $\sum$ will be vertically centered with respect
+to the axis when it is typeset. Thus, large operators can be used
+with different sizes of text. This vertical adjustment is not made for
+symbols of other classes. [The \TeX book p.155]
+
+This is a sum in tex: $\sum_{i=0}^{i=n} i$ and this is a prod in text:
+$\prod_{j=0}^{i=m} j$.
+Same test in display maths:$$ \sum_{i=0}^{i=n}
+vi\quad \prod_{j=0}^{j=m} j$$
+
+The sum is defined as follows:
+\begin{verbatim}\mathchardef\sum = "1350 \end{verbatim}
+If \TeX\ is in display style, it looks to see if the character in
+position "50 of family 3 (The extensible \fn{cmex} family) has a
+successor\footnote{See below for explanations on successors.}. If it
+does then the successor is taken. When not in display style, \TeX\
+just takes character "50 from family 3.
+
+\subsection{Conclusions for operators}
+Both occurrencies of a double sized operator must be in the same font
+table, because they are linked by the successor mechanism.
+
+%JWZ commented this out: don't understand.
+%It would be a good idea to try and make them all similar sizes so that
+%they don't require many different sizes. This is due to font
+%restrictions.
+%\subsection{Going further}
+%One wonders if the choosing is recursive, but presumably it isn't,
+%because of the ``if we are in display mode'', which does not do any
+%size testing.
+
+
+
+
+\section{How characters can be linked}
+
+\subsection{\texttt{charlists}}
+They enable several characters of the same font to be linked together.
+By simply typing \texttt{charlist oct"000": oct"020": oct"022":
+ oct"040": oct"060"} in the metafont source, one links all the
+occurrences (in the \fn{cmex} font) of the left parentheses in
+increasing size-order.
+
+They are used for:
+\begin{itemize}
+\item Linking variable-size delimiters,
+\item Linking variable-width accents,
+\item Making pairs of operators that come in textsize and
+ display size.
+\end{itemize}
+
+\subsection{The \texttt{extensible} lists p318 metafont book.}
+
+An extensible glyph is identified with one of its pieces. One has
+to decide which piece is going to be used for this identification.
+For instance, in \texttt{extensible oct"060": oct"060", 0, oct"100",
+ oct"102";} the first \texttt{oct"060"} is the identifier of the whole
+ glyph.
+The next three characters are the top, middle, and bottom pieces. The
+last character position is that of the piece to be repeated as many
+times as necessary between the top
+and middle, and between the bottom and middle pieces. All three pieces
+are optional. When they are not needed, they are replaced with `0'.
+But if a zero is put in the repeater position, then character `0' will
+effectively be used as a repeater.
+
+\subsection{Restrictions compiled from p318 of the Metafont book}
+\begin{itemize}
+\item An \texttt{extensible} identifier can only appear at the end of a
+ \texttt{charlist}.
+\item A kerning/ligtable label can only appear at the end of a charlist.
+\item One cannot use an extensible identifier as a kerning label.
+\item One cannot use an extensible identifier as a ligature label.
+%JWZ commented out the next two lines.
+%\item this restriction explains why one specifies the kerning and the
+% ligatures in the same table.
+\end{itemize}
+
+\subsection{Conclusions}
+Kerning with parentheses is going to be very tricky...
+
+A delimiter is made of two sets of characters that can be in two
+separate font tables. The glyphs in these two sets (the delimiters),
+can be kerned with the characters that accompany them in their font. So
+one must place them correctly.
+
+\note {There are no parentheses in the \fn{cmmi} fonts, so this
+ possibility has not been used.}
+
+There is a list of all \fn{cm} extensibles, and charlists in ``Computer
+modern typefaces'' p66.
+
+
+\section{The vertical constructables, or ``those that come in pieces''
+ --- \textit{Delimiters}}
+
+\subsection{A few notes}
+First information about delimiters p.171 of the \TeX book. They are not
+all of the same type. Some are (bigl,bigr) Open/close atoms, and
+others are (bigm) rel and (big) ord atoms. On the other hand, a
+\texttt{\string\left} \texttt{\string\right} grouping is inner.
+
+When a delimiter gets larger, its height and depth both grow by the
+same amount.
+
+In the \fn{cmex} font, most of the vertical constructable glyphs are
+below the baseline, in the \texttt{.tfm} file.
+
+\subsection{A first description of the choice mechanism}
+A delimiter is defined by a small ``character'' and a ``large
+character''. \textbf{These characters can be in different families,
+and therefore in different font tables.} We shall call the small
+character $a$ in family $f_a$, and the large character $b$ in family
+$f_b$.
+
+The search first starts by considering the three different sizes of
+char a in its family\footnote{i.e. the scriptscriptsize then the
+ scriptsize and finaly the textsize. This is done in an optimized
+ way: if the current size is bigger than scripscriptsize, no point
+ looking in the scriptscriptsize font, same goes for the other two
+ sizes.}. When testing a character in a given font table, its
+successors are tested before going to the next bigger font. In other
+words, for each member of a family, starting with the smallest, and
+going to the biggest, \TeX{} first looks at char $a$ and then at its
+successors\footnote{See later explanations.} in the same
+font table. If nothing suitable is actually found within the family
+$f_a$ a similar search is done in the family $f_b$ based on character
+$b$.
+
+The search stops when the character being tested has a sufficient
+height plus depth, or when it is extensible\footnote{Obviously in this
+ case the appropriate delim has been found, seeing as it can be made
+ to any given size bigger than the non-extensible characters.}.
+
+If either of the couples $(a,f_a)$, and $(b,f_b)$ are set to
+$(0,0)$ then the corresponding part of the search is bypassed.
+
+If none of the characters actually found are suitable, the biggest is
+taken, i.e. the one with the greatest height plus depth.
+
+
+\subsection{A second description of the choice mechanism by Victor E.}
+\TeX\ first tries the small variant, and if that is not satisfactory
+(or if the left part of the delimiter code is 000) it tries the large
+variant. If trying the large variant does not meet with succes \TeX
+takes the largest delimiter encountered in this search. If no
+delimiter at all is found, (which can happen if the right hand part is
+also 000), an empty box of width \texttt{\string\nulldelimiterspace}
+is taken.
+
+Investigating a variant means in sequence:
+\begin{itemize}
+\item If the current style is scriptscript style, the scriptscript font
+ of the family is tried.
+\item If the current style is script style or smaller the script font of
+ the family is tried.
+\item Otherwise the text font of the family is tried.
+\end{itemize}
+Note: The plain format puts the \fn{cmex10} font in all three styles of
+family three.
+
+Looking for a delimiter at a certain position in a certain font means:
+\begin{itemize}
+\item If the character is large enough, accept it.
+\item If the character is extensible, accept it.
+\item Otherwise, if the character has a successor, (the same but
+ bigger), try the successor.
+\end{itemize}
+
+
+\subsection{The final width of the delimiter ?}
+If the character chosen ends up to be an \textbf{extensible} one,
+\textem{the resulting width is that of the repeatable piece.}
+Otherwise (in the case of a normal character) the width is that of the
+chosen character \textem{plus its italic correction.}
+
+
+\subsection{Conclusions for delims}
+\begin{itemize}
+\item The different sizes of a delimiter can be spread in two font
+ tables if it is necessary.
+\item A given delimiter does not absolutly have to have two sizes.
+\item One can adjust the width of the repeatable piece for
+ extensibles.
+\item One can adjust the italic correction of the normal ``single
+ glyph'' delimiters, in order to get it further away from things like
+ $f$, $j$, $g$ and $p$. In the present case of `(' (in text
+ size) it comes from the text font \fn{cmr*} so obviously has not got
+ any italic correction. The vertical bar has not got any either
+ (checked in the \fn{.pl} files). This is quite a global solution and
+ the italic correction will be added in all cases: if it is small it
+ may not bother anybody and should have the right effect
+ in most cases.
+\end{itemize}
+
+
+
+
+
+\section{References}
+The \TeX book ``Construction of math symbols'':
+151 mathchoice: no good;
+152: about delimiters and size choosing;
+178: using phantom and vphantom - no good;
+358: how large operators are assigned in plain, and
+ some horizontal constructables;
+359: all the 24 delims that can change size and the big and bigg macros;
+360-361: nothing.
+
+The \TeX book ``math symbols'': 127-128: nothing, 289: nothing, 290:
+interesting things about delims.
+
+The \TeX book ``Mathcode'':
+134: tiny little bit at the bottom about mathcodes,
+154: a list of the 8 classes and (3) about variable family and (bottom)
+ about mathcode,
+155: the mathcode "8000 + mathchardef + mathinner,
+156: delcodes and delimiter,
+157: radical,
+214: nothing,
+271: nothing, 289: nothing,
+319,326: answer to exercises,
+344: where all the mathcodes are set so that `1' comes from fam 0 and
+`a' from fam 1,
+345: where the delcodes for plain tex are set.
+
+The \TeX book ``mathop'': 155 cf mathcode, 178 cf construction of math
+symbs, 291 a bit about mathaccent, radical 324-325 361
+
+The \TeX book ``dilimiters'':
+156: delcode;
+157: radical;
+214: nothing; 289: nothing; 271: nothing;
+290: in the middle ``A delim...''; 345: see at the top;
+359: Plain tex definitions of some delimiters;
+146: A list of plain tex delims;
+147: the bigs;
+148-149: details for use of left right;
+150: still more extensible chars (bottom not on growing delims);
+171: info on the type of atoms made by big bigr bigl bigm;
+437: openings and closings;
+442: The search of the appropriate delimiter: good.
+
+About radicals rule 11 page 443 appendix G. \TeX book
+
+\TeX book: About operators rule 13 page 443, successors. Interesting
+about italic corrections. The way limits are typeset rule 13a.
+
+About parameter usage p447 \TeX book.
+About math spacing p170 \TeX book.
+
+\TeX\ for the impatient: p.126 nothing, p.194-196 a list of operators
+and a few explanations.
+
+\TeX\ by topic p.194: Large operators and their limits, the choosing
+method: good.
+\end{filecontents}
+
+
+
+\begin{filecontents}{l3d007e.tex}
+\begin{quote}\small
+% jz -- a little change in the first sentence
+ While working on the new math encoding, the writer realised that
+ the fact the \texttt{cmex} font is only loaded in one size, and not in
+ three like the other math fonts, was going to create a few problems.
+ This paper deals with the following topics:
+ \begin{itemize}
+ \item What is in \texttt{cmex}?
+ \item Which special mechanisms does \TeX\ use to access glyphs from
+ \texttt{cmex}?
+ \item What could be added to \texttt{cmex}?
+ \item What could be taken out of \texttt{cmex}?
+ \end{itemize}
+ The aim of this paper is to help the MFG\footnote{Math Font Group.}
+ design the MX encoding as a replacement and improvement of the
+ \texttt{cmex} encoding. \note{Most of what is written in this paper
+ is pure theory, and has not been applied or tested.}
+
+ Acknowledgements: thanks to Alan Jeffrey and Barbara Beeton for
+ their constructive comments, and help.
+\end{quote}
+
+% bb -- suggest adding an introductory section 0 giving a bit of
+% background on knuth and early history; i would make suggestions
+% and vouch for the accuracy of the statements, or offer to be
+% quoted as the source if something is conjecture.
+
+\section{What is in \texttt{cmex}?}
+ \subsection{Delimiters}
+ \begin{itemize}
+ \item Four different sizes of ( ) and extensible versions. Left and
+ right extensible modules are '102 and '103.
+ \item Four different sizes of [ ] and extensible versions. The
+ extensible modules, one for the right bracket, and one for the left
+ bracket are: '066, '067.
+ \item Same for \{ and \}\,; the extensible module is: '076.
+ \note{The extensible module here is very small, because it is
+ added twice: once above the middle piece, and once below the
+ middle piece. Its height is half that of the parentheses'
+ extensible module. Interesting to see that there is only one
+ extensible module for both the left and the right curly brace.
+ This is because the left-right extension of a curly
+ brace is symmetrical, unlike the parentheses for example.}
+ \item Four different sizes of $\langle$ and $rangle$. No extensible
+ version.
+ \item Same for $\backslash$ and $/$. No extensible version.
+ \item Four different sizes of $\lfloor$ and $\rfloor$ and an
+ extensible version. Extensible modules: '066, and '067.
+ \item Same for $\lceil$ and $\rceil$. Same extensible modules as the
+ previous one.
+ \item Glyphs in positions '014 and '015 are the extensible versions
+ of the vertical bar and the double vertical bar. They are their
+ own extensible modules.
+ \end{itemize}
+
+ \subsection{Large operators}
+ Large operators come in pairs:
+ \begin{itemize}
+ \item The sqcup
+% bb -- although the sqcap isn't here, might want to note that it
+% isn't but could be added
+ \item The circled integral
+ \item The circled dot
+ \item The circled plus
+ \item The circled times
+ \item The sums
+ \item The prods
+ \item The normal integrals
+ \item The bigcups
+ \item The bigcaps
+ \item The U plus
+ \item The wedges
+ \item The vees
+ \item The coprods
+ \end{itemize}
+
+ \subsection{Wide accents}
+ \begin{itemize}
+ \item 3 sizes for the hat
+ \item 3 sizes for the tilde
+ \end{itemize}
+
+ \subsection{Radicals}
+ \begin{itemize}
+ \item Five radical signs
+ \item The vertical bit needed to construct the big radical: '165
+ \item The top bit of the constructed radical: '166
+ \end{itemize}
+
+ \subsection{Arrows}
+ \begin{itemize}
+ \item The three pieces for the construction of the vertical double
+ arrow: '167 '176 '177
+ \item The three pieces of the vertical single arrow: '077, '170,
+ '171
+ \end{itemize}
+
+ \subsection{Horizontal curly braces}
+ \begin{itemize}
+ \item The four pieces for the construction of horizontal curly
+ braces: '172 -- '175
+ \end{itemize}
+
+
+
+
+
+
+
+\section{\TeX's behavior with \texttt{cmex} glyphs}
+ \subsection{Large operators}
+ \begin{itemize}
+ \item A large operator is vertically centered with respect to the
+ math axis. This means that, whatever the surrounding glyph size,
+ things will not look too bad.
+ \item With the following definition of a large operator:
+ \cn{mathchardef} \cn{sum} \texttt{= "1xyy}, if \TeX\ is in \textem
+ {display style}, it looks to see if the character in position
+ \texttt{"yy} of family \texttt{x} has a successor. If it does then
+ the successor is taken. When not in \textem {display style}, \TeX\
+ simply takes character \texttt{"yy} from family \texttt{x}. Thus in
+ text style, in script style and in scriptscript style the same
+ glyph is used.
+ \end{itemize}
+
+ \subsection{Vertical delimiters, and friends}
+ Radicals are delimiters, and vertical arrows also, so let us only
+ speak about delimiters. Here is a quote from Victor Eijkhout's book:
+ \begin{quote}
+ A delimiter has two codes: a small variant, and a large variant.
+ \TeX\ first tries the small variant, and if that is not
+ satisfactory (or if the left part of the delimiter code is 000) it
+ tries the large variant. If trying the large variant does not meet
+ with success \TeX\ takes the largest delimiter encountered in this
+ search. If no delimiter at all is found, (which can happen if the
+ right hand part is also 000), an empty box of width
+ \texttt{\string\nulldelimiterspace} is taken.
+
+ Investigating a variant means in sequence:
+ \begin{itemize}
+ \item If the current style is scriptscript style, the scriptscript
+ font of the family is tried.
+ \item If the current style is script style or smaller the script
+ font of the family is tried.
+ \item Otherwise the text font of the family is tried.
+ \end{itemize}
+
+ Looking for a delimiter at a certain position in a certain font
+ means:
+ \begin{itemize}
+ \item If the character is large enough, accept it.
+ \item If the character is extensible accept it.
+ \item Otherwise, if the character has a successor (the same but
+ bigger), try the successor.
+ \end{itemize}
+ \end{quote}
+ Using the three size mechanism probably did not seem necessary to
+ Knuth. Generally large delimiters are used in display style, and not
+ in script or scriptscript style. However, they can also be used in
+ the small styles.
+
+ \subsection{Wide accents}
+ For the choice of accents, \TeX\ only considers one font, but looks
+ to see if the current accent has a successor. Unlike the delimiter
+ choice mechanism, the accent choice mechanism does not go through all
+ three sizes. \TeX\ chooses the accent in such a way that the accent
+ width is as close as possible but smaller than the width of the box
+ to cover.
+
+ \subsection{First conclusion}
+ For operators, a distinction in size is made between text style and
+ display style, whereas with the usual automatic size choosing
+ mechanism, glyphs in text style and in display style are taken from
+ the text size font, and are therefore the same size.
+
+
+
+\section{Consequences of loading \texttt{cmex} in 3 different sizes}
+
+ \subsection{Consequences for operators}
+ For operators, let us consider two completely separate policies. In
+ the one case \texttt{cmex} is unchanged, and loaded in three
+ sizes. In the other case, an imaginary font derived from \fn{cmex}
+ called \texttt{cmex}$'$ is loaded in three sizes. In \fn{cmex}$'$ the
+ operators no longer have two sizes, thus glyphs like \cn{bigcup} do
+ not have a successor in their font.
+
+ \textem {All the following supposes that no new macros have been
+ written. What would \TeX's automatic behavior would be?}
+
+ \begin{description}
+ \item[If \texttt{cmex}$'$ is loaded in three sizes.] In
+ such a situation \TeX\ has a large version of \cn{bigcup} (and
+ other operators) in text size, a small version in script size, and
+ yet a smaller version in scriptscript size.
+
+ The operators can be centered: no problem.
+
+% jz -- change:
+ In script and scriptscript style the resulting `big operators' would
+ be smaller than if they were produced with today's standard \TeX,
+ and today's standard \texttt{cmex}. What is more, one would be
+ smaller than the other, which is also not the case with today's
+ standard \TeX, and today's standard \texttt{cmex}.
+% ----
+
+ In display style one would get big operators from the text size
+ font: this is acceptable. \textem {But one would also get a big
+ operator in text style,} and that does not conform with today's
+ standard \TeX\ behavior.
+
+
+% jz -- I added encoding:
+ \item[If the existing \texttt{cmex} encoding is loaded in three
+ sizes.]
+ The operators can be centered: no problem.
+
+ In script style, one would get the smallest version of a large
+ operator. But coming from a small size font, that will produce
+ something very small. In scriptscript style, same behavior as in
+ script style, but the result would be even smaller.
+% jz -- Added this:
+ Thus in script, and in scriptscript style, the large `big
+ operators' would never automatically be used.
+ Hence the \texttt{cmex}$'$ encoding.
+% -- maybe should have said that earlier :-)
+
+ In text style, \TeX\ would produce the small version taken from
+ the text size font. In display style \TeX\ would produce the big
+ version of operators taken from the text size font.
+
+ So in text style and in display style, there would be no change
+ compared to what today's standard \TeX\ produces.
+% jz -- changed the phrasing here:
+ But script and scriptscript style would produce different
+ results.
+% --
+
+ \end{description}
+
+ In both cases, things could be improved if macros were written to
+ override the present behavior of \cn{bigsqcup}. One could think of
+ things like \cn{mathchoice}, but $\ldots$
+
+
+
+ \subsection{For vertical delimiters, radicals, vertical arrows}
+ Let us start by supposing \TeX\ is in scriptscript style, and it has
+ to typeset a large delimiter. One should consider two cases:
+ \begin{description}
+ \item[The delimiter has an extensible variant.] In this case the
+ search will start in scriptscript size, and continue until \TeX\
+ finds the extensible variant of scriptscript size. Then the search
+ will stop, and the extensible will be used. This extensible will
+ come from scriptscript size, and therefore probably not look the
+ same as it would in today's setup, where all extensibles come from
+ text size.
+ \item[The delimiter does not have an extensible variant.] As
+ previously, the search starts in scriptscript size. If nothing
+ big enough is found in scriptscript size, the search continues in
+ script size. If still nothing is found, the search then continues
+ in text size. If necessary the biggest delimiter from text size
+ will be used. If the search stops in text size, there is no
+ difference with what \TeX\ produces today. But if the search stops
+ before reaching text size, the chosen delimiter will be different
+ from the one \TeX\ would use in the present configuration. Its
+ strokes would be finer, and better adapted for use in script style.
+ \end{description}
+
+ If one supposes that \TeX\ is in script style, the previous two
+ cases also apply, except that every occurrence of `scriptscript' must
+ be replaced with `script'. If one supposes that \TeX\ is in text
+ style, the result of loading three different sizes of \texttt{cmex}
+ would be the same as it is in \TeX's current configuration.
+
+ \subsection{For horizontal curly braces}
+ If they are automatically taken from script size, or from script
+ script size when necessary, the spacing changes a little,
+ because the dimensions in the \texttt {.tfm} files would be
+ different. A consequence of this could be different line and page
+ breaks.
+
+ However, it would be nice if curly braces did come out
+ of the correctly sized fonts. Then their boldness would match the
+ surrounding text. But apparently from a macro programming
+ point of view things could be difficult, even if the glyphs are
+ available and loaded.
+
+ \subsection{For wide accents}
+ See first paragraph of previous section.
+
+% jz --
+% I guess that in actual fact, the wide accents were put in
+% \texttt{cmex} because they could not fit any where else.
+% jz -- I don't want to start any discussion on that topic so i'm
+% taking it out
+
+ If accents were taken from the current size, things could only look
+ better.
+ The accent width would be closer to that of the material under the
+ accent, and the accent's boldness would be better adjusted.
+
+ \note {Unlike the delimiter choice mechanism, the accent choice
+ mechanism is restricted to one font, and one size. It will thus
+ not look in text size when it is in script size for instance. So
+ in script style, accents will always come out of the script size
+ font, and in scriptscript style, accents will always come out of
+ the scriptscript size font, etc.$\ldots$}
+
+ \subsection{Conclusion}
+% jz -- Changed the conclusion
+ Nearly everything in \texttt{cmex} could have lived in a normal three
+ sized math font, and maybe that would have been better. The only
+ problems would have come from the specific ``big operator'' behavior
+ required by Knuth.
+
+ Also one must not forget that Knuth did not want to leave any empty
+ slots.
+% jz -- added this:
+
+ The reduced amount of memory that was available on the machines with
+ which \TeX\ was first used could have been another reason for loading
+ \texttt{cmex} in one size only.
+
+
+
+
+
+
+% jz -- This section has been changed a bit, and extended.
+
+\section{What could be added to \texttt{cmex}?}
+Let us now consider possible evolutions of \texttt{cmex}.
+In spite of the terminology ``adding to \texttt{cmex}'', the font
+resulting from these evolutions would have a different name.
+ \subsection{If the \texttt{cmex} encoded font is loaded in three
+ sizes}
+ In this case big operators would not produce the usual results, and
+ the rest would be slightly different, as stated above.
+ \begin{itemize}
+
+ \item One could add wide accents, but one would get slightly
+ different (better) results. Thus wide accents would match the
+ script and scriptscript styles. Macros could be made available
+ as a style option to keep the old behavior, if necessary.
+
+ \item One could increase the number of different sizes for accents.
+
+ \item One could add big delimiters and their extensible versions,
+ without any problem! Things will be slightly
+ better adjusted in script and scriptscript style. Macros could
+ be made (available as a style option) to keep the old behavior,
+ if necessary.
+
+ \item One could increase the number of different sizes for
+ delimiters, and one could probably reduce the height of the
+ extensible module in order to make the growing of delimiters
+ more gradual.
+
+ \item One could add some vertical extensible arrows! Things will be
+ slightly better adjusted in script and scriptscript style.
+
+ \item One can add small and large `big operators' without any
+ problem!
+
+ \item Big improvement: one could add loads of other glyphs (symbols,
+ etc.$\ldots$) that would come in all three sizes.
+
+ \end{itemize}
+
+ \subsection{If the \texttt{cmex} encoded font is only loaded in one
+ size}
+ \begin{itemize}
+ \item One could add big delimiters and their extensible versions
+ without any problem!
+
+ \item One could increase the number of different sizes for
+ delimiters, and one could reduce the height of the extensible
+ module in order to make the growing of delimiters more gradual.
+
+ \item One could add some vertical extensible arrows!
+
+ \item One could add large operators without any problem!
+
+ \item One could add wide accents without any problem, and the
+ present behavior of wide accents would not change. But if wide
+ accents are meant to match the script and scriptscript styles, then
+ wide accents must go in another font that would be loaded in
+ different sizes.
+
+ \item One could increase the number of different sizes for accents.
+
+ \item One could add other stuff, but it would only come in one
+ size.
+
+ \end{itemize}
+
+ \subsection {If a \texttt{cmex}$'$ encoded font is loaded in three
+ sizes}
+ The imaginary \texttt{cmex}$'$ encoded font, previously
+ described in this document is considered here.
+
+ One could add the same things as when \texttt{cmex} is loaded in three
+ sizes. The only difference is: if no macro programming were done, the
+ text style and display style will produce the same `big operators'.
+ In script and scriptscript style the `big operators' would be in
+ different sizes from one another and smaller than those in text
+ style.
+
+
+
+
+
+
+\section{Conclusions}
+If one loads \texttt{cmex} in three different sizes, many things are
+improved, and with a \cn{mathchoice} the initial behaviour of large
+operators could be kept, or available as a style option.
+
+If \texttt{cmex} is kept in a single size, one must decide whether to
+put wide accents in or not.
+
+
+
+
+
+
+
+\section{The beginning of my \texttt{cmex10.pl} file}
+
+\begin{verbatim}
+(FAMILY CMEX)
+(FACE O 352)
+(CODINGSCHEME TEX MATH EXTENSION)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 37254272422)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.0)
+ (SHRINK R 0.0)
+ (XHEIGHT R 0.430555)
+ (QUAD R 1.000003)
+ (EXTRASPACE R 0.0)
+ (DEFAULTRULETHICKNESS R 0.039999)
+ (BIGOPSPACING1 R 0.111112)
+ (BIGOPSPACING2 R 0.166667)
+ (BIGOPSPACING3 R 0.2)
+ (BIGOPSPACING4 R 0.6)
+ (BIGOPSPACING5 R 0.1)
+ )
+(CHARACTER O 0 ...
+\end{verbatim}
+
+
+
+\subsection{Comments about the \texttt{cmex10.pl} file}
+\begin{itemize}
+\item The xheight is not equal to zero.
+\item The space is equal to zero.
+
+\item With the following:
+\begin{verbatim}
+(CHARACTER O 100
+ (CHARWD R 0.875003)
+ (CHARHT R 0.039999)
+ (CHARDP R 1.760019)
+ (VARCHAR
+ (TOP O 70)
+ (BOT O 73)
+ (REP O 76)
+ )
+ )
+\end{verbatim}
+that is in the \texttt{.pl} file, one can produce something that looks
+like a growing integral:
+$$ \left\lmoustache \frac{3.q}{\frac{3\pi.r^2}{3.q.b.c}} \right.$$
+
+\item The pieces used to construct the horizontal curly braces are not
+linked in any way.
+
+\item The bottom pieces of the extensible parentheses are overloaded
+ for \cn{rmoustache} and \cn{lmoustache}. One of these could be linked
+ (charlisted) with the integrals, so that \cn{left}\cn{bigint} could
+ produce a growing integral like the delimiters.
+
+\item The bottom pieces of the curly braces ('072 and '073) are also
+ overloaded for \cn{lgroup} and \cn{rgroup}.
+
+\item The middle pieces of the curly braces are overloaded for
+ \cn{arrowvert} and \cn{Arrowvert}. Other single and double
+ extensible bars with different spacing.
+
+\item The extensible module of the curly braces is overloaded for
+ \cn{bracevert}. A fat vertical bar.
+
+\item The extensible modules of the parenthese are overloaded to
+ produce more fat vertical bars.
+
+\item More overloading: the construction pieces of the extensible
+ brackets are also used for the $\lceil \rceil \lfloor \rfloor$. Thus
+ the top left bracket piece ('062) identifies the left bracket; the
+ top right bracket piece identifies the left bracket; the
+ bottom left bracket piece identifies the $\lfloor$ extensible
+ version; the bottom right piece identifies the $\rfloor$; the left
+ extensible module identifies the $\lceil$; and the right extensible
+ module identifies the $\rceil$. This over-loading may not be desired.
+
+\item For the wide accents and the curly braces the depth is nil.
+
+\item All the delimiter glyphs in \texttt{cmex} are set with a very
+ small height and a big depth. This is because the radical
+ primitive is also used for delimiters. For radicals, the \texttt
+ {.tfm} height of the glyph is used to determine the size of the
+ \cn{hrule}.
+
+\item The extension modules do not have any height at all. Same for
+ the arrow heads.
+
+\item The four integrals have italic corrections.
+
+\item Small versions of operators have a nil height, whereas
+ big versions have a small height and a big depth:
+ \begin{verbatim}
+ (CHARACTER O 116
+ (COMMENT This is the small \bigotimes)
+ (CHARWD R 1.1111145)
+ (CHARDP R 1.000013)
+ (NEXTLARGER O 117)
+ )
+ (CHARACTER O 117
+ (COMMENT This is the big \bigotimes)
+ (CHARWD R 1.511116)
+ (CHARHT R 0.100001)
+ (CHARDP R 1.500012)
+ )
+ \end{verbatim}
+ What is more, in the metafont code,
+ both big and small versions of bigops are under the baseline.
+
+\item There are no kerns or ligatures in \texttt{cmex}.
+
+\end{itemize}
+
+
+
+
+
+
+
+
+\section{Characters under the baseline}
+
+\subsection{Which?}
+It is understood and agreed that the radical glyphs need to be
+virtually completely under the base line. \TeX\ uses their small
+height to measure the thickness of the radical's over line. But
+delimiters and `bigops' are also placed under the baseline for no
+obvious reasons: both types of glyphs are just centered on the maths
+axis.
+
+\subsection{`Bigops' and metafont code}
+\begin{description}
+\item[The metafont padded operator.]
+Although both big and small versions of bigops are placed completely
+under the baseline (height=0), the big version ends up ---~in the
+\texttt {tfm} file, with a non-nil height. Many people agree that the
+reason for this is that the metafont code for the large version of
+`bigops' contains the \cn {padded} macro. This last places some extra
+space around the glyphs. This extra space would serve for separating
+the `bigops' from the limits they may take.
+
+Large integrals do not have any padded macro, and thus in the \texttt
+{tfm} file, they are placed completely under the base line. The
+reason for the difference between integrals, and other `bigops' could
+be that the limits of the former are usually placed next to the glyph,
+and not on top. Even when limits are placed on top of the integral,
+the results do not look too bad, because the integral is very narrow.
+
+The reason for `bigops' being set under the baseline is still unknown.
+Whether or not they would be correctly centered on the math axis,
+if they were placed over the base line is not sure either.
+
+\item[Changing the metrics in the metafont code.] It is interesting to
+ see how \TeX\ would manage if the `bigops' were placed over the base
+ line.
+ The best way to find out, is to change the metafont code of \texttt
+ {cmex}, and see$\ldots$ I first did the test on \cn{bigoplus}
+ because it was a good candidate ---~simple metafont code. I have
+ never used metafont before. I copied all the necessary files into my
+ directory, and changed their names to `\texttt {my*}'. I then did
+ the following modifications in \texttt {mybigop.mf}
+ (look for \%\%\%\%):
+ \begin{verbatim}
+ cmchar "\textstyle circle-plus operator";
+ beginchar(oct"114",20u#,10/6dh#,0); %%%% was ,0,10/6dh#)
+ adjust_fit(0,0); pickup pencircle scaled stem;
+ lft x6=hround u; x2=w-x6; top y8=h; bot y4=-d; %%%% was top y8=0
+ ...
+
+ cmchar "\displaystyle circle-plus operator";
+ beginchar(oct"115",27.2u#,14/6dh#,0); padded 1/6dh#;
+ %%%% was ,0,10/6dh#)
+ adjust_fit(0,0); pickup pencircle scaled curve;
+ lft x6=hround u; x2=w-x6; top y8=h; bot y4=-d; %%%% was top y8=0
+ ...
+
+ \end{verbatim}
+
+ When I ran Metafont on it there were no problems. After having put
+ all the relevent files where they were meant to go, I gave the
+ following to \TeX:
+
+ \begin{verbatim}
+
+ Old cmex in text style: $\bigoplus i \coprod$
+ Old cmex in display style: $$-\bigoplus i\coprod \mathchar"034D$$
+
+ % change font:
+ \font\myfont=myex10
+ \textfont3=\myfont
+ \scriptfont3=\myfont
+ \scriptscriptfont3=\myfont
+
+ New myex in text style: $\bigoplus i \coprod$
+ New myex in display style: $$-\bigoplus i\coprod \mathchar"034D$$
+ The minus sign gives the height of the math axis, while the bottom
+ of the word `base' gives that of the baseline.
+
+ \bye
+
+ \end{verbatim}
+
+ Here is the output:
+
+ Old cmex in text style: $-\bigoplus i \coprod$ \\
+ Old cmex in display style:
+ $$-\bigoplus i\coprod \mathchar"034D base$$
+
+ % change font:
+ %\font\myfont=myex10
+ %\textfont3=\myfont
+ %\scriptfont3=\myfont
+ %\scriptscriptfont3=\myfont
+
+ New myex in text style: $-\bigoplus i \coprod$ \\
+ New myex in display style:
+ $$-\bigoplus i\coprod \mathchar"034D base$$
+ The minus sign gives the height of the math axis, while the bottom
+ of the word `base' gives the baseline.
+
+ The results are quite obvious: in both case the \cn{bigoplus} is
+ correctly centered. On the 300 dpi printer I have here there is no
+ visible difference. What is more the \cn{mathchar"034D} proves that
+ the metrics of the \cn{bigoplus} have changed: in the first case the
+ glyph is placed under the baseline, and in the second case it is
+ placed over the baseline. The difference is not visible if this
+ document is printed with the wrong fonts.
+\end{description}
+\end{filecontents}
+
+
+
+\documentclass{l3ms002}
+
+\usepackage{l3d007}
+\usepackage{ifthen}
+
+\setlength{\emergencystretch}{2em}
+
+\hyphenation{pre-sent fa-mi-ly}
+
+\renewcommand{\abstractname}{\Large Acknowledgement}
+
+
+\typeout{******************************************}
+\typeout{* }
+\typeout{* This document makes use of three fonts}
+\typeout{* which you might not have on your system.}
+\typeout{* These are:}
+\typeout{* \space\space ecrm1000 \space\space T1 encoded Computer Modern}
+\typeout{* \space\space msam10 \space\space AMS symbol font A}
+\typeout{* \space\space msbm10 \space\space AMS symbol font B}
+\typeout{* }
+\typeout{* In that case type <RETURN> to the error message}
+\typeout{* The output will not contain the font charts but}
+\typeout{* but will otherwise be readable.}
+\typeout{* }
+\typeout{* The document will also produce a number of underfull}
+\typeout
+ {* and overfull boxes. Please ignore them (or volunteer to help)}
+\typeout{* }
+\typeout{******************************************}
+
+\newcounter{sleep}
+\whiledo{\value{sleep}<1000}{\stepcounter{sleep}}
+
+\begin{document}
+
+
+
+
+
+\title{Technical Report on Math Font Encoding}
+\author{Justin Ziegler}
+\date{Started on June 13, 1993\\
+ Last change: June 1, 1994\\
+ Organisational updates: August 23, 2000\\
+ Printed: \today \\
+ Filename: \fn{l3d007.tex} }
+
+\maketitle
+
+
+
+\newcommand{\NFSS}{\textsf{NFSS}}
+
+\chapter*{Foreword}
+
+I'm pleased to present the final report on ``Math Font Encoding''
+produced by Justin Ziegler for the \LaTeX3 project to the public.
+
+Justin has worked for three months at the Johannes Gutenberg
+University Mainz. His work was generously sponsored by GUTenberg
+(The French \TeX{} Users Group) and by the ZDV of the University
+of Mainz (Data Processing Center), the latter providing Justin with
+office space and taking care of the administrative details.
+
+In the past years a lot of work went into integrating new fonts into
+the \TeX{} system. Only five years ago, typesetting with \TeX{}
+basically meant typesetting in Computer Modern. Nowadays many users can
+choose (at least theoretically) from several thousands of fonts.
+Today, \NFSS{} is the standard font selection in \LaTeX{} and due to
+this mechanism and the fontinst-package by Alan Jeffrey virtually every
+PostScript font, in fact, every font for which a \texttt{tfm}-file can
+be obtained, can be used, out of the box, with \LaTeX.
+
+But for these thousand text fonts there are only five font families for
+use in math formulas
+to go with them. Even worse, every of these math font sets are encoded
+in a different way making it nearly impossible even for an expert \TeX{}
+user to use different fonts for math in different jobs.
+
+The work undertaken by Justin is the first of several steps to solve
+the problems at hand, the final goal being the development of a system
+that allows the user
+to change math fonts as painlessly as it is now possible with text
+fonts.
+
+Based on Justin's analysis and his proposal, the \LaTeX3 Project is now
+undertaking to provide a prototype implementation for math fonts,
+starting with the Computer Modern fonts as well as the Euler Math fonts.
+We expect this implementation to be available for public usage
+during 1995.
+
+
+\begin{flushright}
+Mainz, December 6, 1994\\[5pt]
+Frank Mittelbach\\
+Technical Director \LaTeX3 Project
+\end{flushright}
+
+
+
+
+\begin{abstract}
+
+\vskip1cm
+ I wish to thank the many people without whom my stay in
+ Germany would not have been possible, and the work I did would not
+ have been done. This includes:
+
+ \begin{description}
+ \item[GUTenberg] who financed my stay;
+
+ \item[Ehoud Ahronovitz] for helping me with the administrative side
+ of things, for giving me the opportunity of coming here, and
+ spending extra time with me to make sure that everything went
+ all right;
+
+ \item[Frank Mittelbach] for his friendly welcome, for the
+ organization, time and guidance;
+
+ \item[Bernard Gaulle] the past president of GUTenberg, for the
+ organization and logistics;
+
+ \item[Klaus Merle] for lending all the material that I used;
+
+ \item[Chris Rowley] for the organization, and help;
+
+ \item[Stefan Steffens] for answering patiently all my stupid
+ questions, and helping me integrate Mainz and the university;
+
+ \item[The \LaTeX3 project] which partially financed my stay in England
+ for the Aston conference;
+
+ \begin{sloppypar}
+ \item[Barbara Beeton and Alan Jeffrey] who commented my papers, and
+ answered more stupid questions;
+ \end{sloppypar}
+
+ \item[J\"org Knappen] who gave me advice on the project, and
+ with whom I discovered the Mainz night life;
+
+ \item[All the computer center employees] for making my stay more
+ pleasant;
+
+ \begin{sloppypar}
+ \item[All the people who took the trouble to answer my mail,] for
+ their time and effort;
+ \end{sloppypar}
+
+ \item[Donald E. Knuth] who created \TeX.
+
+ \end{description}
+
+\end{abstract}
+
+
+\setcounter{tocdepth}{1}
+\tableofcontents
+
+
+
+
+% This is the introduction
+
+
+
+
+\chapter{Introduction / Overview}
+
+\section{The technical environment}
+I worked in the ZDV of the university of Mainz in Germany. In German
+ZDV stands for ``Zentrum f\"ur Daten Verarbeitung''. Which means: Data
+Processing Center.
+This is where the main --- soft and hardware --- maintenance team
+works.
+
+I worked on an X-terminal like a lot of other people in the university.
+For writing my documents I used GNU Emacs together with the
+AUC\TeX\ package.
+
+
+
+\section{A few Definitions}% ***************** first section
+ %jwzinria: one could get rid of this subsection ?
+ \subsection{\TeX: a page description language}
+ The best definition I can find for \TeX\ is: ``one third compiler,
+ one third interpreter, and one third word processor''. It was
+ written in $\fam 1 1975$ by D.~E.~Knuth and a group of students.
+ One of its main features is its portability. A document written
+ on one machine can be used on another machine. Knuth also
+ insisted that \TeX\ would not change. So a document written in $\fam
+ 1 1980$
+ is still usable in $\fam 1 1990$.
+
+ The language defined by \TeX\ is very specific, in so far as it is
+ designed to describe a page layout. \TeX\ processes the page like a
+ rectangle, or more exactly like a box, that can be filled with
+ smaller boxes. These smaller boxes can similarly be filled with
+ smaller boxes, and etc... The smallest box one can get is a
+ vertical~/~horizontal line, or a character (a glyph), or just some
+ space. \TeX\ has variables in which one can put boxes, or different
+ types of numbers. One can define functions ---~usually called
+ macros~--- in a way similar to lisp. The if-then-else statement is
+ there, and combined with recursion it can be used to make loops.
+
+ In spite of its limitations due to its specificity, \TeX{} defines
+ a Turing machine. The syntax is very disagreeable, but one can get
+ used to it: somebody wrote a basic interpreter in \TeX. The only
+ difference between \TeX{} and a usual compiler, is that \TeX{} stops
+ the compilation when it gets to the pcode, and just puts it into a
+ file. This file, called the device independant file, can then be
+ sent to a printer, a screen, or any other printing device.
+
+ Today many people use \TeX. All \TeX\ users have got together and
+ created TUG: \TeX\ Users Group.
+
+ \subsection{Plain \TeX} \label{plain-tex}
+ %jwzinria: one could get rid of this subsection ?
+ Plain \TeX\ is the standard set of macros and definitions that comes
+ with \TeX. It is written in \TeX.
+
+ \subsection{\LaTeX{}: a document description language}
+ %jwzinria: one could get rid of this subsection ?
+ Just as \TeX\ is a language to describe pages, \LaTeX\ is a
+ language designed for describing whole documents, and their logical
+ structure. The idea is that it lets the user concentrate on the
+ contents of the document rather than the formating commands
+ necessary for the document to look good. Thus it uses the
+ logical mark-up concept. It was written by Leslie Lamport in 1985.
+ Technicaly, \LaTeX\ is ``only'' a cluster of macros written in \TeX.
+ This means that a \LaTeX\ user has still got access to most of the
+ \TeX\ language. \LaTeX\ includes the following facilities:
+ \begin{itemize}
+ \item Cross referencing.
+ \item Automatic construction of a table of contents.
+ \item Automatic construction of an index.
+ \item Bibliography referencing.
+ \item Basically the same math mode as \TeX.
+ \end{itemize}
+
+
+
+ \subsection{The \LaTeX3 project}
+ %jwzinria: one could get rid of this subsection ?
+ During the 1989 TUG conference at Stanford, the decision was taken
+ to produce an improved and expanded version of \LaTeX, that was
+ going to be called \LaTeX3.
+
+ The major difference in the new version will be the addition of a
+ good interface through which designers can specify how classes of
+ documents should be formated.
+
+ Frank Mittelbach is the technical director of the project; he and
+ Chris Rowley are responsible for the management.
+
+
+ \subsection{Fonts, glyphs, and slots}
+ \TeX\ would not be able to produce any nice documents if it did not
+ have any fonts. One cannot get a nice looking `A' or `$\mathcal{A}$',
+ or any other letter if nobody has previously designed it.
+
+ All \TeX\ really does, is produce a file that contains a set of
+ instructions. Each instruction looks like the following: ``place
+ here the picture that is in such and such a file, in position number
+ $x$.'' \textem{The files that contain all the pictures (the letters
+ and other symbols), are called ``fonts''. All the pictures that are
+ in a font are called ``glyphs''.} Every glyph in a given font has
+ a specific and known position. \textem{I shall use the word ``slot''
+ to refer to a given position in a font.} Some slots can be empty,
+ but most of them contain a glyph.
+
+
+
+
+ \subsection{Font encodings} \label {about-encoding}
+ When \TeX\ refers to the glyph number $x$, it must know which glyph
+ is in position number $x$. This knowledge is contained in the
+ encoding. In some cases one could say that the letters are in the
+ ASCII order. But this is not sufficient, because the
+ ASCII code does not include all the glyphs that people wish
+ to put in their documents. Therefore, one must link every single
+ font with a given encoding, and make the encoding known by \TeX.
+ Many different encodings exist, sometimes even for the same group
+ of glyphs. But there are also many fonts that use the same encoding.
+
+ A mathematical definition of an encoding could be the following:
+ \textem{An encoding is a set of glyph names in a given order.}
+
+ \subsection{The ``Computer Modern Fonts''}
+ When D.~E.~Knuth created \TeX, he also created a set of fonts called
+ the
+ \textem{Computer Modern Fonts}. Most of them were based on an encoding
+ that is called the Computer Modern Encoding throughout this document.
+
+ All file names of Computer Modern Fonts start with the two
+ letters `\texttt{cm}'.
+
+
+ \subsection{Metafont: a font description language}
+ Metafont is a language / program especially designed to describe glyph
+ shapes, and more generally whole fonts. It was used to generate all
+ the ``Computer modern'' fonts. The Metafont user must describe or
+ ``program'' the curves for each glyph. Then Metafont produces an array
+ of black and white dots for each glyph. The dots can be made as small
+ as necessary to fit the precision of the printing device.
+
+
+ \subsection{\TeX\ version 3}
+ In the beginning of $\fam 1 1990$, under a lot of pressure (from the
+ \TeX\ User Community), D.~E.~Knuth produced a new version of \TeX.
+ \TeX\ version 3 was born. The main improvements were the following:
+
+ \begin{itemize}
+ \item Up to 256 glyphs per font. The previous versions of \TeX\ could
+ only use the first 128 glyphs of a font.
+
+
+ \item Virtual fonts. A normal font has all its
+ glyphs in a file, and this file is in actual fact the font.
+ Virtual fonts enable people to group 256 glyphs taken from many
+ different fonts, and make \TeX\ think it is using one normal font.
+ For instance, one could make a virtual font with lowercase letters
+ in bold, and uppercase letters in italic. The user would work as
+ if he was using one font, but the results would in actual fact be
+ a combination of two fonts. A very good example implementation of
+ virtual fonts is the creation of ``Small Caps'' fonts: the
+ uppercase letters could come from a roman upright font at 12
+ points, whereas the lowercase ones could come from a roman
+ upright at 10 points.
+
+ Virtual fonts enable still more ingenious things, like replacing
+ glyphs with a set of \TeX\ macros. One can then
+ consider, for example, automatic raising or lowering of some
+ letters.
+
+ \item Better hyphenation. \TeX\ version 3 can have up to 256
+ different hyphenation tables, and can produce good automatic
+ hyphenation even when a word contains accents. The latter was not
+ possible in previous versions. More generally the hyphenation
+ mecanisms have been improved.
+
+ \item The new ligature mecanism is more powerful. The result of a
+ ligature is no longer only one glyph, but can be a set of
+ glyphs...
+
+ \item Special ligatures can be done at the beginning and at the end
+ of words. Thus when a given letter is at the end of a word, its
+ shape can be different from the shape it would have in the middle
+ of a word.
+
+ \item Better automatic adjusting of interword space.
+
+ \item More little details that make everybody happy...
+ \end{itemize}
+
+
+ \subsection{The ``DC Fonts''}
+ Although D.~E.~Knuth included a lot of ``European glyphs'' in his
+ Computer
+ Modern fonts, more were needed. In $\fam 1 1989$ \TeX\ users got
+ together in Cork, and designed some new fonts called the \textem{DC
+ Fonts}.
+ Thanks to the new features of \TeX\ version 3 (256 glyphs per font
+ encoding),
+ DC fonts included for example more special letters for Catalan and
+ Scandinavian languages.
+
+ The DC Fonts used what is now called the \textem{Cork encoding.}
+ All DC fonts file names start with `\texttt{dc}'.
+
+
+\section{My work}
+%\section{My work}
+One of \TeX's nicest features is its ability to typeset mathematical
+formulae. There has now been over ten years of experience typesetting
+mathematical material with \TeX. During this time, \TeX's math mode
+has been used to set a wide variety of material, including traditional
+mathematics, categorical diagrams, chemical reactions, computer
+programs and textual material such as `$5\frac12\%$ or $\fam0M^{lle}$.
+
+In recent years, with the arrival of the Cork standard for typesetting
+European text, and the Virtual Font standard, the fonts available for
+use in \TeX\ have radically changed. The current situation is that
+there are over 14,000 text fonts available for use in \TeX, but only
+five math fonts:
+\begin{itemize}
+\item Computer Modern
+\item Computer Concrete with Euler
+\item Lucida Math
+\item Lucida New Math
+\item Math Time
+\end{itemize}
+Each of these fonts use different encodings, and each comes with its own
+selection of \TeX\ macros.
+
+Although the Cork encoding is rapidly being established as the
+standard encoding for European Latin text, there is no similar
+encoding for mathematics. The result is:
+\begin{itemize}
+\item complex macro packages for using each math font.
+\item it is difficult to set mathematics with Cork text, since the Cork
+ encoding does not include the uppercase Greek.
+\item installing PostScript math fonts such as Mathematical Pi is very
+ difficult.
+\end{itemize}
+
+Furthermore, the present math encoding includes glyphs like old-style
+digits, and game card suits $(\spadesuit)$ that just do not belong in
+a math encoding. On the other hand, many new glyphs have been
+designed and should be included in the math encoding.
+
+To solve these problems, a new math encoding, using all the power of
+\TeX\ version 3, is needed. For this reason I have been trying to
+re-organize all the glyphs that are needed to typeset mathematical
+formulae with \TeX, according to various technical constraints.
+
+The new math encoding that I am helping to produce is hopefully going
+to be part of the \LaTeX3 package, and comes as one of the general
+improvements of \LaTeX.
+
+First I learnt to use \TeX. In a second stage, I had to study and
+understand the technical constraints that apply on the grouping of
+mathematical glyphs in a font. Only then could I actually start
+thinking about which glyphs should go where. I intensively used \LaTeX\
+---~so that I permanently had an up to date record of what had been
+done ---~and email, to communicate with the people I
+was working with.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\chapter{The \TeX nicalities of math typesetting}
+
+
+
+\section{A brief description of \TeX's math facility}
+ \begin{description}
+ \item[Logical markup like \LaTeX.] For the design of \TeX's user
+ interface, one of Knuth's concerns was that in the source code of
+ a mathematical document the formulae should be readable in a
+ linear manner. Thus when a mathematician thinks, he says to
+ himself: ``$n$ over $n-1$'', and when a \TeX nician works, in order
+ to produce the result $\frac{n}{n-1}$ he just has to type:
+ \verb|n \over {n-1}|.
+
+ The user is no longer bothered by trying to get this bit of text
+ higher than this other bit of text. He just gives \TeX\ the
+ logical meaning of what should be typeset, and it is correctly
+ placed.
+
+ \item[The two math modes.] There are two ways to enter \TeX's math
+ mode, which produce slightly different results with the same
+ input. One mode is called the \textem{display mode,} and produces
+ \textem{display style,} while the other is called \textem{text
+ mode,} and produces \textem{text style.} The following input:\\
+ \verb| $ \int_0^1 \frac{1}{x}\;dx $| \\ produces
+ \textem{text style:} $\int_0^1 \frac{1}{x}\;dx$, which can be
+ mixed with text, whereas \\
+ \verb| $$ \int_0^1 \frac {1}{x} \;dx $$| \\ produces \textem
+ {display style:}
+ $$ \int_0^1 \frac {1}{x} \;dx $$ which is automatically
+ centered and surrounded by space.
+
+ \item[Automatic size change according to meaning.] When the user
+ says to \TeX: ``this letter is a superscript'', or ``this number is
+ a subscript'', \TeX\ automatically typesets the letter (or the
+ number) in a smaller font size. \TeX\ does that same size adjustment
+ for setting limits on glyphs like $\sum$, or $\smallint$.
+
+ \item[Automatic placing for sub/superscript and for limits.] At the
+ same time as \TeX\ changes size automatically when the user
+ specifies a sub- or superscript, \TeX\ also raises and lowers the
+ resulting text. When placing limits over a $\sum$, for example,
+ \TeX\ automatically centers them over the sum:
+ $$\sum_{i=0}^{i=n} i = \frac {n(n+1)} {2}$$
+
+ \item[Size change for big operators.] One can see in the previous
+ example that the two $\sum$ signs (one in the text and one in the
+ example), are not set in the same size. \TeX\ changes the size of
+ some big operators when they are set in a centered environment
+ like that example is. The integral also changes size.
+
+ \item[Automatic spacing and math classes.] As one can see in the
+ previous example, \TeX\ also spaces various glyphs in a special
+ way. For instance the space around the $+$ sign is quite large,
+ whereas the space between the $n$ and the open parentheses is
+ comparatively reduced. Turning off the automatic mathematical
+ spacing for the $+$ sign would produce the following: $(n \mathord
+ + 1)$ versus $(n+1)$.
+
+ On a \TeX nical point of view, the math spacing is done by
+ dividing all mathematical glyphs into classes. For each class
+ \TeX\ has different spacing rules. Thus a class 1 glyph followed
+ by a class two glyph would not induce the same spacing as a class
+ 1 followed by a class 3. There is no point in giving all the spacing
+ rules here. The different classes are listed below\footnote{Thanks
+ to Victor Eijkout for the comments.}:
+ \begin{enumerate}
+ \item \textem{Ordinary:} lowercase Greek characters, and those
+ symbols that are just `symbols';
+ \item \textem{Large operators:} integral and sum signs, and `big'
+ objects such as \cn{bigcap}, or \cn{bigotimes}. Large operators
+ are centered vertically, and they may behave differently in text
+ style, and in display style\footnote{See below for
+ explanations.}.
+ \item \textem{Binary operators:} plus, minus, and look
+ alikes;
+ \item \textem{Binary relations:} equal, less than, subset, and
+ friends;
+ \item \textem{Opening symbol:} opening brace, bracket,
+ parentheses, etc$\ldots$
+ \item \textem{Closing symbol:} closing brace, etc$\ldots$
+ \item \textem{Punctuation:} most punctuation marks, with an
+ exception or two;
+ \item \textem{Variable family:} described further on in section
+ \ref {var-fam}.
+ \end{enumerate}
+
+ \item[More symbols/glyphs.] Last but not least, \TeX's math facility
+ gives the user easy access to special symbols: Greek letters,
+ $\aleph$\footnote{$\aleph$ is a Hebrew letter, not a Greek one.}
+ $\cap$, $\subset$, and many others that are often used in
+ mathematical formulae.
+
+ \end{description}
+
+
+\section{Math styles}
+ When Knuth wrote ``The \TeX book'', he extended the `display', and
+ `text style' terminology. If \TeX\ is typesetting sub- or superscript
+ material, one says that it is in \textem{script style.} Furthermore,
+ if \TeX\ is typesetting sub- or superscript when it is already in
+ script style, one says that it is in \textem {scriptscript style.} The
+ style terminology must not be confused with the size terminology that
+ is described further on: text size, script size, and scriptscript
+ size.
+
+
+\section{Font families}
+ \subsection{What are font families? / a definition}
+ In math mode, \TeX\ does not load fonts in the same way as it does
+ in text mode. For maths, Knuth thought best to organize the fonts in
+ families, and give each family a number. One font family can contain
+ three fonts.
+
+ The normal use is to load in a single family the same font in
+ three different sizes. One size for the main text, one size for
+ superscript and subscript, and one size for the exceptional
+ super-superscript, or super-subscript. A good example ought to make
+ things clear: $$\int_0^\infty\;e^{\alpha.x^\alpha}\;dx = \;\;?$$ It is
+ clear that the $x$ is smaller than the $e$, and that the second
+ $\alpha$ is smaller than the first, which is the same size as the $x$.
+
+ \subsection{The organization of mathematical glyphs}
+ In the present version of \TeX\ the mathematically used glyphs are
+ organized in 4 families:
+ \begin{description}
+ \item[Family 0: Computer Modern Roman (\texttt {cmr})] This is a
+ normal upright roman text font. It is loaded in a math family
+ in order to typeset things like $\log$ or $\sin$. The other reason
+ for which it is loaded into a math font family is that it
+ contains the uppercase Greek alphabet, so that the user can
+ typeset $\Psi$ and $\Gamma$, or even $\Upsilon$. A few other
+ symbols are also taken from \texttt{cmr}: `;' `=' `( )' `[ ]' `:'
+ `+' $\ldots$ See figure in appendix \ref
+ {app-fonts}.
+
+ \item[Family 1: Computer Modern Math Italic (\texttt {cmmi})] The
+ \texttt {cmmi} font is one of the special math fonts. For a
+ non-expert user, its letters look just like normal \textit {italic}
+ letters. But in actual fact they are slightly different in their
+ shapes, especially the lowercase. The reason for the letters being
+ different is so that the variable $a$ can be easily differenciated
+ from the article `a' used in ``a horse'' for example.
+
+ Whereas \texttt {cmit}\footnote {The normal italic Computer
+ Modern font.} contains ligatures, \texttt{cmmi} does not, and
+ includes instead the Greek lowercase and uppercase alphabets in
+ italic.
+
+ A strange feature of \fn{cmmi} is that it contains some
+ old style digits. Thus one can write $\fam1 1789$ or $\fam1 1942$
+ which are quite different from 1789 and 1942. But these digits are
+ never used in maths, so they do not belong in a font that is
+ designed for use in maths.
+
+ The \fn{cmmi} font also includes some other useful\footnote
+ {Only for scientists though.} symbols / glyphs that one can see on
+ the corresponding figure in appendix \ref {app-fonts}.
+
+ \item[Family 2: Computer Modern Symbols (\texttt {cmsy})] One can
+ find in this font the calligraphic alphabet that some scientists
+ use: $\cal{A B C D E F G H}$ $\cal{ I J K L M N O}$ $\cal{ P Q R S
+ T U V X Y Z}$; plus lots of other symbols that only
+ mathematicians could want to use: $\cap \cup \ominus \otimes
+ \bigtriangleup \exists \; \forall \subset \le \succ \leftarrow
+ \ldots$ See figure in appendix \ref
+ {app-fonts}.
+
+ \item[Family 3: Computer Modern Extensibles (\texttt {cmex})] All
+ three sizes in this family are the same. \texttt {cmex} mainly
+ contains symbols that change size, automatically.
+ One can produce:
+ \[ \left\{
+ \begin{array}{ll}
+ u(x,y,z,t) & = u_{0}(x,y,t) + U(x,y,z,t) \\
+ v(x,y,z,t) & = v_{0}(x,y,t) + V(x,y,z,t) \\
+ w(x,y,z,t) & = w_{0}(x,y,t) + W(x,y,z,t) \\
+ w'(x,y,z,t) & = w'_{0}(x,y,t) + W'(x,y,z,t)
+ \end{array}
+ \right. \]\label {extens-example}%
+ with four or ten lines, and the `\{' will get bigger and bigger of
+ its own accord, without the user specifying anything more. \texttt
+ {cmex} also contains wide accents, so one can produce: $\widehat{a}$
+ $\widehat{ar}$ $\widehat{arg}$. I have previously spoken about the
+ automatic size change of some operators, whether in text, or in
+ display, style. These double sized `big operators' are in \texttt
+ {cmex}:
+ $\bigcap\ and\ \coprod$ in text style, and in display style:
+ $$\bigcup \ and\ \coprod\ and \ldots$$
+ The total contents of \fn {cmex} is
+ shown in a figure appendix \ref {app-fonts}.
+
+ Most of the glyhs in \texttt{cmex} have a stange metric
+ particularity, that makes them \TeX\ specific. Thus no other
+ typesetting system can use those glyphs. Vice versa \TeX\ could not
+ use those glyphs if they were made for another typesetting system.
+ I spent a certain amount of time trying to understand all the
+ triks hidden in \texttt {cmex}, and wrote a document on the topic
+ (see appendix \ref {app-rep-cmex}). The math font group was then
+ able to take decisions concerning the replacement of \fn
+ {cmex}.
+
+ \item[The AMS symbol fonts: \texttt {msam} and \texttt {msbm}.] Many
+ more mathematical glyphs, and an extra blackboard bold alphabet.
+ They are not part of the standard \TeX, and are not loaded
+ automatically in a family, but they are used on many sites. They
+ were designed for the AMS: American Math Society, for use with
+ \TeX, and are now very widely spread. Their contents is shown in
+ figures, appendix \ref {app-fonts}.
+
+ \end{description}
+
+
+ \subsection {How does \TeX\ identify glyphs? }
+ \begin{description}
+
+ \item[Glyph names.] In Plain (see section \ref {plain-tex}) many
+ glyph names are defined. They refer to some of the numerous
+ glyphs \TeX\ can typeset.
+
+ The user can also define his own names for glyphs. To a
+ glyph name must be associated a family number, and a position
+ in the given family. On top of that \TeX\ likes to know which
+ class the glyph belongs to. As well as the classes that have
+ already been defined, there is an extra one:
+
+ \item[The \textem {`variable family'} class and the \cn{fam}
+ variable.] \label{var-fam} This class has nothing to do with
+ spacing, and, to my mind, treating it as a class is one of
+ Knuth's mistakes. It is used in particular for letters, but it
+ could have other uses. If the calligraphic, upright, and italic
+ letters all have the same position in their respective fonts,
+ one does not want to define a different name for each letter in
+ each shape. Instead, \TeX\ has a \cn{fam} variable, that
+ contains the number of the current family where glyphs should be
+ taken from. So when a glyph is of class \textem {`variable
+ family'}, it is taken from the family number \cn{fam}. But
+ that is not enough. Some times the \cn{fam} variable can be
+ equal to $-1$, and there is no family number $-1$. In such a
+ case a default family number is used. So together with the class
+ and the position, one can assign the default family number for
+ each glyph name. When a glyph is not defined as being variable
+ family, it always comes from the same family, and its family
+ number is linked to its name in the same way as the class
+ number.
+
+ Example: when the user enters math mode, \cn{fam} is equal to
+ $-1$, the letters come from the default family. By typing:
+ \verb|$abda$| which produces `$abda$', one can see that the
+ default family for letters is family number 1 (See family
+ descriptions). If the user assigns the family variable to $0$
+ then the letters will come from family $0$. Thus
+ \verb|$\fam0 abda$| produces `$\fam0 abda$'. (See family
+ descriptions).
+ \end{description}
+
+
+
+
+
+
+
+\section{Font metric files: The ``\texttt{.tfm}'' files}
+ \subsection{A theoretical overview}
+ When \TeX\ is typesetting a page, and making all the calculations
+ that are necessary for this, it does not need the actual picture of
+ the glyphs. All \TeX\ needs at this stage is the dimensions of the
+ glyphs, and other numerical data. That information is in the
+ ``\texttt{.tfm}''\footnote{\texttt{tfm} stands for ``\TeX\ font metric
+ file.''} files, and every font has one. Without it, the font is
+ unusable as far as \TeX\footnote{There are some slight exceptions to
+ this rule: in some cases a given font can use another font's
+ ``\texttt{.tfm}'' file. But the visual results are not very good.}
+ is concerned.
+
+ For mathematical typesetting \TeX\ uses all the information that a
+ ``\texttt {.tfm}'' file can give. One of the first things I had to do
+ was to study and understand the machinery hidden in the math fonts
+ ``\texttt {.tfm}'' files. From a general point of view a font metrics
+ file can contain the following data: \footnote {This is not
+ restricted to \TeX. Although the file formats maybe slightly
+ different, Postscript type fonts and others use similar
+ metric files. One can find programs to convert the files
+ from one format to another.}
+
+ \begin{description}
+ \item [Font dimensions.] These are global parameters
+ for the whole font. In a normal text font one would find the
+ slant (positive on an italic or slanted font), the size of the
+ interword space, other interword spacing parameters, more general
+ spacing parameters, and the x-height. The latter is the height of
+ the `x' glyph, and is used for correct accent positioning.
+
+ The fonts in family 2 and 3 are a little special as far as font
+ dimensions are concerned. \TeX\ looks in family 2 and 3 for more
+ font dimensions than usual. This extra information is used for
+ special math spacing.
+
+ \item [Glyph dimensions.] Each glyph has a height, a width and a
+ depth specified in the ``\texttt{.tfm}'' file. The height of the
+ box that surrounds a glyph is equal to the height of the glyph
+ plus the depth of the glyph, whereas the width is that of the
+ glyph. I think it is important to say that \textem{these values
+ are theoretical, and can be quite different from the real size
+ of the glyph.} Thus some glyphs are bigger than their box. A
+ good example of this is the italic `f': \textit{f}. The top right
+ end, and the bottom left end stick out of the box. The right hand
+ side of a given glyph box is also the left hand side of the
+ next\footnote{The box on the right of the first one.} glyph box.
+
+ \item [Kerns.] \label {about-kerning} They are necessary for the
+ \textem{automatic adjustment } of the spacing between two glyphs.
+ Many non professional electronic typesetting systems have for a
+ long time ignored this refinement of traditional typesetting. The
+ problem is the following: for visual comfort all the letters of
+ the alphabet cannot be spaced in the same manner. For instance
+ when an `A' is followed by a `V', the two letters must be brought
+ closer together to produce `AV' versus `A{V}'. In other cases
+ letters must be separated a little to produce `aj' versus `a{j}',
+ or `f!' versus `f{!}'. Otherwise the spacing does not look correct
+ compared to the spacing of surrounding letters. In the
+ ``\texttt{.tfm}'' file, for each glyph one can specify kerns with
+ every other glyph \textem{of the font}. \textem{When two glyphs
+ that are kerned in the ``\texttt{.tfm}'' file are found side by
+ side in the right order, \TeX\ automatically brings them closer
+ together, or farther away.}
+
+ \item [Ligatures.] \label {about-ligs} Here again, the idea is to
+ improve visual comfort, and reading. Some letters when followed by
+ other particular letters do not look right. In this case the two
+ glyphs side by side must be replaced by another glyph that will
+ look much better. This is called a ligature. The best and very
+ well known example occurs when an `f' glyph is followed by an `i'
+ glyph. The non-ligatured glyphs look like `f{i}', and
+ \textem{\TeX\ automatically replaces} them with the ligature that
+ looks like `fi'. In the ``Collection La Pleiade'', one can see many
+ other ligatures if one looks hard enough.
+
+ In \TeX\ version 3 the concept of ligatures is more general. It
+ can use more than two letters, and has other interesting new
+ features.
+
+ \item [Italic corrections.] For this I can only quote Frank
+ Mittelbach:
+ \begin{quote}
+ ``At the points where one switches from slanted or italic to
+ upright, the glyphs usually come too close together, especially
+ if the last slanted/italic glyph has an ascender\footnote{Here
+ is something that has not been defined. The following letters
+ have ascenders: l,k,h,f,t,b,d, in lowercase. One can guess
+ what descenders are.}. The proper amount of extra
+ white space that should be added at this boundary is called the
+ `italic correction'. Its value depends on individual glyph
+ shape, and is therefore stored in the ``\texttt{.tfm}'' file for
+ each glyph. [...] For an upright font the italic corrections
+ are usually null. [...] In slanted and italic fonts, the italic
+ corrections are usually positif...''
+ \end{quote}
+ Example: in the word {\it dif}ferent, the first f runs into the
+ second one. Whereas in the word \textem{dif}ferent, a little space
+ is left between the two f's. That space is the f's italic
+ correction.
+
+ \item [`Skewchar' kerning.] The skewchar is a specific character
+ that is used for placing mathematical accents. In math mode, when
+ an accent is placed on a glyph, the accent is first centered on
+ top of the glyph's box, and then shifted rightwards by the amount
+ of the kern between the glyph and the skewchar.
+
+ Each font should have its own skewchar. For most characters, the
+ ``{\tt .tfm}'' file specifies the kerning of each letter with its
+ skewchar. This is true for the computer modern fonts, but other
+ font designers may have chosen not to use this feature.
+
+ Why choose one skewchar rather than another? This is because the
+ character $\mathchar"017F$ chosen by Knuth does not have any other
+ kerning that could have been disturbed by the skewchar kerning.
+ This choice may not always be good for all fonts, because it
+ depends on what the character in position '127 is. Thus a font
+ designer might choose another skewchar and put the necessary
+ kernings in the ``{\tt .tfm}'' file. Accent glyphs can be used as
+ skewchars, because they are not usually subject to kerning from
+ other glyphs.''
+
+
+ \begin{sloppypar}
+ \item[Charlists.] \label {about-charlists} Charlists enable several
+ characters in a font to be linked together. The \texttt {cmex}
+ font uses charlists a lot: by just typing \texttt{charlist oct
+ "000": oct "020": oct "022": oct "040": oct "060"} in the
+ metafont source code, one links in order of increasing size all
+ the left parenthesis that are in the font. Thus with this
+ information contained in the ``\texttt {.tfm}'' file, \TeX\ can
+ find the parentheses that has the correct size for what is
+ currently being typeset.
+
+ Charlists are used for:
+ \begin{itemize}
+ \item Linking variable-size delimiters,
+ \item Linking variable-width accents,
+ \item Pairing the ``big operators'' that are typeset in
+ different sizes in display style, and text style.
+ \end{itemize}
+ \end{sloppypar}
+
+ \item[Extensibles.] \label {about-extens} Extensible glyphs can
+ change size vertically (not horizontally), according to the
+ context. A good example is given in section \ref {extens-example}
+ where the \{ grows automatically.
+
+ \begin{sloppypar}
+ An extensible glyph is identified with one of its pieces. One simply
+ has to decide which piece is going to be used for this
+ identification. In the following example: \texttt {extensible
+ oct"060": oct"060", 0, oct"100", oct"102";} --- which appears in
+ the metafont code of \texttt {cmex}, the first oct"060" is the
+ identifier of the whole extensible glyph. The next three
+ characters are the top, middle, and bottom pieces of the glyph
+ whose identifier is oct"060". The last character code is that
+ of the piece to be repeated as many times as necessary between the
+ top and middle, and between the bottom and middle pieces. All
+ pieces are optional except the repeatable piece.
+ \end{sloppypar}
+
+ This mecanism is also used for the construction of the radical
+ sign. But it only works for glyphs that grow vertically.
+ Therefore the horizontal braces and the horizontal extendable
+ arrows cannot use this facility.
+
+\end{description}
+
+
+
+
+ \subsection{Example: analysis of `\texttt{cmmi}' metrics}
+ %\footnotetext{\texttt{cmmi} stands for Computer Modern Math italic,
+ % and is the default font for typesetting mathematics.}
+ I shall use here the usual \TeX\ notation for writing octal numbers.
+ Thus all numbers preceeded by a little quote sign like '77 are in
+ octal.
+ \begin{itemize}
+ \item Most characters in `\texttt{cmmi}' are kerned with the
+ skewchar.
+
+ \item Many Greek uppercase and lowercase letters are kerned to: `.'
+ `,' and `/' respectivly '72, '73, and '75. This takes us right up
+ to position '50.
+
+ \item Characters from '50 to '73 are not kerned at all. This
+ includes: funny horizontal half arrows, two hooks for the arrow
+ construction set, two triangles, the old style digits, the `.', the
+ `,' and the `$<$'.
+
+ \item The `$/$' sign is kerned with 1\footnote {The digit.}, A, M,
+ N, Y, Z. Nothing to say about `$<$' and $*$ and $\partial$.
+
+ \item Then come the uppercase Latin letters. They are not kerned
+ among each other. They are not kerned either with the lowercase
+ letters. Just like the Greek letters, some of them are kerned with
+ `.' `,' `$/$'.
+
+ \item In my \fn{.pl} file, it looks as though N and X have got two
+ different kerns with '75. (Not yet any explanation for this.) The
+ 3 musical signs are not kerned with anything. The horizontal
+ parentheses are not either.
+
+ \item The lowercase Latin letters are not kerned with each other,
+ except `$d$' that is kerned with $Y, Z, j, f$. Some of them are
+ kerned with `,' `.' `$/$' in a way similar to that of uppercase
+ letters.
+
+ \item The last characters are not kerned at all.
+ \end{itemize}
+
+ For compatibility reasons, all these kerns will have to be in the
+ new encoding.
+
+ See appendix \ref {app-rep-cmex} for a complete description and
+ analyses of \fn{cmex10.tfm}.
+
+
+% \subsection{Large operators}
+% \subsection{Delimiters}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\chapter{Dividing all the glyphs into groups}
+
+\section{More vocabulary}\label{MoreVocab}
+ \begin{description}
+ \item[An ``encoding table''.] This conveys the traditional meaning
+ of an encoding (see section \ref {about-encoding}). That is to say
+ a set of 256 glyphs in a given order. The expression ``encoding
+ table'' is usually abbreviated: ``encoding''.
+
+ \item[A ``slot'':] the usual word used for referring to a
+ position in an encoding. A slot can contain a glyph, or be empty.
+ It is represented by an integer between 0 and 255. A slot is
+ \textem{not} a family in spite of the usage some people make of this
+ word.
+
+ \item[The ``math kernel''.] This terminology is used to specify the
+ minimal group of fonts that is necessary for the math facility to
+ work, as described in the \TeX\ documentation\footnote{And
+ LA\TeX, AMS\TeX, etc, documentation.}. In D.~E.~K.'s
+ package (Plain) the math kernel consists of the families
+ numbered from 0 to 3. Together with the kernel, many other fonts can
+ optionally be loaded and used.
+
+ \item[A ``math encoding'':] considered here as a
+ whole. Not just one 256-glyph encoding table, but a set of $x$
+ encoding tables, where $x$ is greater or equal to the number of
+ fonts in the math kernel. I will sometimes refer to this concept
+ with the abbreviation ``M-encoding''.
+
+ \item[The ``default alphabet'':] the alphabet that is used
+ when a user types \texttt{\$abc\$}. With Plain \TeX's math
+ encoding that produces $abc$.
+
+ \item[``Glyph compatibility'':] two encodings (or M-encodings) are
+ glyph compatible, if they contain the same glyphs. The latter do
+ not systematically have to be in the same positions. However
+ identical glyphs must have the same
+ metrics. The kerning and ligaturing information must
+ also be identical in both M-encodings.
+
+
+\end{description}
+
+\section{General approach}
+Taking all the glyphs one by one, and putting them in a font encoding
+would have been to easy, and above all not satisfactory. Instead one
+must divide all the necessary glyphs into groups and subgroups, and then
+tried to match groups in individual encoding tables according to all
+the constraints.
+
+For instance, a typical group is the Latin alphabet: it includes the
+uppercase letters A-Z, and the lowercase letters a-z.
+Mathematicians often use accents on letters. For this they
+need a dotless `i' (looks like: `$\i$') and a dotless `j'
+(looks like: `$\j$') with every Latin alphabet. Thus the Latin
+alphabet group contains the uppercase and lowercase letters, the
+dotless `i' and the dotless `j'.
+
+The grouping is based on different types of constraints: some
+technical, and some based on glyph usage. These are detailed in the next
+section.
+
+\section{Grouping constraints}
+Before being able to group the glyphs, grouping rules had to be
+established. \footnote {I've put in appendix
+\ref {app-accents}, \ref {app-rep-cmex}, and \ref {app-delims}, three
+of the documents that I wrote for this purpose.}
+
+At first I did not realise the importance of the design similarity
+constraint for the person designing the font. Thus the first two
+proposals did not really take it into account at all.
+
+ \begin{description}
+ \item [Kerning.] See section \ref {about-kerning} for a definition
+ of kerning. The kerning information for a given font can be found
+ in it's \texttt{tfm} file. Thus two glyphs from the same
+ encoding table can be kerned together, but the letter `f'
+ belonging in a given encoding table, cannot be kerned with a
+ glyph (the open parenthesis for instance) belonging in another
+ encoding table. A group resulting from this constraint is: the
+ group of glyphs that must be kerned with the default alphabet.
+ This group and the alphabet will have to live in the same
+ encoding table. This constraint is considered to be one of the
+ most important.
+
+ In fact this type of grouping is not so much grouping together
+ all the glyphs that must be kerned, but putting together in one
+ group the glyphs that need to be kerned with another group. In
+ order to facilitate the counting.
+
+ \item[Ligaturing.] See section \ref {about-ligs} for a definition of
+ ligaturing. In a similar manner to kerning, ligatures request
+ that various glyphs live in the same encoding. If the letter
+ `f' is to be ligatured with the letter `i' and produce the `fi'
+ ligature, then those three glyphs `f',`i', and `fi' must live
+ in the same encoding. In actual fact ligatures are not really
+ used in math fonts. But they may be necessary one day. So
+ empty slots should be left for ligatures where possible.
+
+ \item[Design similarity:] another reason for which the letter A must
+ live in the same font encoding as the letter B, and all the other
+ letters. All the glyphs in a normal text encoding are designed to be
+ visually compatible with each other. This should also be the case in a
+ math encoding. But all the compatible glyphs cannot live in the same
+ font. There are simply too many of them. So one has to make a
+ choice. Which glyphs must be alike? A lot of groups result from this
+ constraint, which even comes into play when putting the groups
+ together into encodings. A good example is the sim group. `Sim' is
+ the name given to the glyph: $\sim$. Many mathematical symbols contain
+ such a sim. $\approx$ cannot be separated from $\sim$ because they
+ must look alike, and for that they must be designed by the same
+ person. Even more, the $\sim$ and the $\approx$ should be produced in
+ metafont using the same sub-routine, with the same parameters. This
+ also explains why it is important that the letters of a given style
+ all live together.
+
+
+ \item[Charlists.] The reader is advised to re-read section \ref
+ {about-charlists} if he no longer remembers what charlists are. The
+ information that such and such a glyph is part of a charlist is in
+ the \texttt{tfm} file. Therefore charlists are also restricted to
+ one font. Because of this all glyphs that are intended to be
+ linked in a charlist must be put in the same font. Concerned
+ by this restriction are:
+ \begin{itemize}
+ \item Wide accents, which are linked with a charlist in order of
+ increasing size,
+ \item Big delimiters: same as accents,
+ \item The two sizes of big operators which are linked,
+ \item All the different sized radicals.
+ \end{itemize}
+
+ \item[Extensibles.] In case of memory deficiency the reader is
+ advised to take another look at the relevant passage in section
+ \ref {about-extens} again. As for charlists, the extensible
+ information is part of the \texttt {tfm} file. The different
+ pieces of an extensible glyph must therefore live in the same
+ font. Concerned by this restriction are:
+
+ \begin{itemize}
+ \item Extensible delimiters (not all delimiters are extensible).
+ This constraint is doubled by the fact that an extensible
+ delimiter is often the last element of a charlist. Thus many
+ glyphs must live together.
+
+ \item Radicals: the last element of the radical charlist is an
+ extensible: it grows as high as necessary. In
+ the same way as delimiters, the glyphs used to
+ build the extensible radical are a subgroup of
+ the radical charlist group, and therefore must
+ live with the other members of the charlist.
+
+ \item Vertical arrows or bars\footnote {But not horizontal
+ arrows.}.
+ \end{itemize}
+
+ \item[Constructed symbols.] Some glyphs in a font are especially
+ designed to be put next to each other. Good examples are the
+ horizontal arrows, and the horizontal curly braces. Because of
+ their horizontal characteristic, the extensible mechanism cannot
+ be used. So the $$\underbrace {\mathrm {horizontal\ curly\ brace}}$$
+ is built up with abbuting glyphs. These glyphs must be of the same
+ weight, and very well adjusted in order to fit together properly.
+ They must therefore live in the same font.
+
+\end{description}
+
+
+
+\section {Constraint importance}
+The design constraint is less important than the kerning constraint.
+Whereas keeping empty slots for ligaturing has very little
+importance compared to the two former constraints.
+
+Charlists' and extensible lists' members \textbf {must} stay together,
+without exception. One could establish the following order of
+importance:
+
+ \begin{enumerate}
+ \item Extensibles,
+ \item Charlists,
+ \item Constructed symbols,
+ \item Kerning,
+ \item Ligatures,
+ \item Design similarities,
+ \item Empty slots for ligatures.
+ \end{enumerate}
+
+
+
+\section{A few groups}
+
+\begin{itemize}
+\item The Greek letter sets,
+\item The Greek-like glyphs,
+\item The Latin letter set,
+\item The Latin-like material
+\item The digits,
+\item The vertical arrows,
+\item The horizontal arrows,
+\item The accents, wide, double, underaccents,
+\item The core symbols: must live with the default alphabet,
+\item The subset group,
+\item The greater than group,
+\item etc ...
+\end{itemize}
+
+A lot of the above groups were still divided into smaller groups in
+order to make things fit in the encoding tables. Compromises had to be
+made, in order to respect the constraints set by compatibility.
+
+
+
+\chapter{Making encoding tables}
+Similarly to the constraints governing the grouping, the constraints
+governing the division into encoding tables listed below were not at
+all obvious, and had to be thought of, and fully understood.
+
+The construction of encoding tables largely depends on the main goals of
+a new math encoding.
+
+\section{The constraints of group grouping}
+\begin{description}
+
+ \item[Glyphs access.] (alphabets, variable family) This is
+ another technical constraint due to the way \TeX\ accesses glyphs.
+ It is also a user interface constraint, because the idea is to
+ make alphabets easily accessible to the user.
+
+ Due to the variable family mechanism (explained in section \ref
+ {var-fam}), It is very practical for the user that font
+ encodings contain only one alphabet. Thus when the fonts are
+ loaded into the families, different letters can be accessed by
+ changing the \cn{fam} variable, and typing the usual letters on
+ the keyboard. For instance, when \cn{fam} is equal to $-1$, the
+ default family is used. When \cn{fam} equals 2 the user can
+ get the script alphabet. For this the user need only type
+ \verb|$\fam=2 A,B,C$| and the letters $\cal{A,B,C}$ are
+ produced.
+
+ The alternative would be to have many alphabets in one encoding.
+ In that case, to access script letters A,B,C for example, the user
+ would have to type \verb|$\scriptA,\scriptB$|. That would be much more
+ difficult to read, and less practical.
+
+ This constraint --~due to glyph access~-- sets the shape of the whole
+ M-encoding and has a very high priority.
+
+ \item[Font access.] This only concerns the font that will replace
+ \texttt {cmex}. For compatibility reasons, the math font group
+ decided that it would be reasonable to try and replace \texttt
+ {cmex} by a font that can be loaded in one size, \textem {and} in
+ three sizes. Therefore the \texttt{cmex} replacement can only
+ take:
+ \begin{itemize}
+ \item Wide accents,
+ \item Big delimiters,
+ \item Big Operators,
+ \item Radicals (with a small change),
+ \item Vertical extensible arrows.
+ \end{itemize}
+ It would be too long to justify the decision here, but the relevant
+ document is in appendix \ref {app-rep-cmex}. One of the consequences
+ of this is that one cannot put an alphabet in \texttt {cmex}'s
+ replacement encoding. An aphabet must be available in all three
+ sizes.
+ Other glyphs are also victims of this limitation.
+
+ \item[Kerning.] Obviously, if glyphs in two separate groups must be
+ kerned, then those two groups must live together.
+
+ \item[Design similarity.] This is a designor's constraint and
+ therefore has low priority. Because of this low priority, it often
+ happens that big design similarity groups are subdivided into smaller
+ ones. In such case one must try in sofar as is possible to put the
+ smaller groups back together.
+
+ \item[Bold face.] Mathematicians and physicists often use boldface
+ glyphs. These can either be directly available in some of the
+ encodings, whereby the encoding will specify: here should go a
+ bold uppercase `A' ---~and that could be next to a non-bold glyph;
+ or none of the encoding tables specify whether or not the glyphs
+ are bold, and a bold version of the whole M-encoding or of each
+ encoding table can be made ---~as with text fonts.
+
+ To reduce the total number of glyphs in the M-encoding, the
+ second possibility has been chosen. But this induces another
+ constraint on the global M-encoding: the individual encoding
+ tables must be designed in such a way that the most commonly
+ used bold glyphs are put together.
+
+ \begin{sloppypar}
+ \item[Compatibility with other font-using programs.] Since the
+ invention of ASCII code, the first 32 slots of fonts were
+ often not used for glyphs, but reserved for control
+ codes. Today many programs are still not designed to use the
+ first 32 slots of a font. Thus fonts should not contain any
+ glyphs in those slots.
+ But this would be a big waste for \TeX, because it can use
+ glyphs in slots below 32.
+
+ However, if the glyphs in the critical slots do not have any
+ kerning relation-ship with other glyphs in the font, then the
+ former can be put in another font, and be used with little
+ difficulty even in problematic software. This seemed a fairly
+ good compromise, so it was decided to fill slots below 32
+ with glyphs that do not have any kerning with the others, and
+ could thus be separated from them.
+
+ On the same lines: some programs are unable to use fonts that do
+ not have a space in position 32. To solve this problem, only one
+ slot in concerned, so it was decided to include a space in every
+ font. This should not be a problem.
+
+ \item[Grouping \TeX\ specific glyphs: another compatibility
+ issue.] \hfil
+ The present \texttt{cmex} font/encoding contains glyphs
+ that cannot be used by other typesetting systems, because they
+ are set in a strange way. Similarly \texttt{cmsy} contains one
+ glyph that is set in a strange way: the radical sign. Therefore
+ the whole of \texttt{cmsy} is unusable for other programs. Such a
+ mistake must not be reproduced.
+
+ It is hoped that the new \TeX\ math encoding will set a
+ standard, that will not only be used by \TeX, but by all
+ systems that typeset mathematical formulae. If everything goes
+ according to plan, in the next few years many math fonts will
+ exist, for many different systems, and they will all use the
+ same M-encoding. Thus it will be very easy to use the same
+ fonts on different systems. One day a \TeX\ user will be able
+ to take a mathematical font from Microsoft Word, and convert it
+ easily in order to use it with \TeX.
+
+ If \TeX\ specific glyphs are grouped in one font, there will only
+ be one problematic font. As it happens, all \TeX\ specific glyphs
+ are more or less geometric, so they could be used next to
+ different math fonts. On the other hand, if \TeX\ specific glyphs
+ are spread around in many fonts, then many ``imported'' fonts will
+ not be usable by \TeX\ without major changes.
+
+ From a commercial point of view, if a font designer creates a math
+ font for Adobe, the work necessary for adapting it to \TeX\ must
+ be reduced to the minimum. Otherwise nobody will provide any new
+ math fonts for \TeX.
+
+ \TeX\ specific glyphs are the following:
+ \begin{itemize}
+ \item The delimiters,
+ \item The large and small `bigops',
+ \item The radicals.
+ \end{itemize}
+
+
+ \item[Compatibility with Plain and \LaTeX.] Let us consider a user
+ that has typed a document with the present math encoding, and in
+ so doing has saturated the available families. If the new math
+ encoding does not garantee Plain and \LaTeX\ glyph compatibility
+ with a \textem {maximum of 4 fonts,} then the document will
+ not be able to run with the new math encoding: not enough
+ families. Thus one should make the first four encoding tables of
+ the global M-encoding glyphs compatible with the Computer
+ Modern cluster: cmr, cmmi, cmex, and cmsy.
+
+
+ \item[Compatibility with AMS\TeX, AMS\LaTeX, and LAMS\TeX.] Let us
+ consider this time a user that has typed a document with the
+ existant AMS\TeX\ or AMS\LaTeX\ package, and in so doing has
+ saturated the available families. If the new math encoding does
+ not give AMS\LaTeX\ and AMS\TeX\ glyph compatibility with less
+ than 6 encoding tables, then that document will not run with the
+ new math encoding, for lack of family reasons.
+
+ The first 6 encoding tables must be one way glyph compatible with
+ the fonts provided in the AMS packages.
+ \end{sloppypar}
+
+ \item[Trying to give the Plain \TeX\ user a logical cluster of new
+ glyphs.] No comment.
+
+\end{description}
+
+\section{The Aston-LC math encoding}
+This is one of the proposals first thought of, but it is
+not the one finally chosen, because it had many problems.
+
+LC stands for latin core. The main characteristic is the separation of
+the Greek letter sets from the Latin ones. In keeping these two sets
+separate, we give the greek letters an identity of their own, thus
+making them quite independent of the rest. The idea goes in the
+direction of orthogonal grouping. All the encodings that contain
+letters would have them in the Cork encoding positions, thus making
+access very simple. In fact this positioning concept will be taken
+farther: Cork encoded glyphs that are in the new encoding, will keep
+their Cork position.
+
+\subsection{The encoding tables}
+ \begin{description}
+ \item[The text symbols: the TS encoding.] Here would be included the
+ old style numerals, and most of what is to be taken out of the
+ present math encoding, because it does not belong with the rest of the
+ math glyphs. Other symbols could be added in this encoding.
+
+ This encoding is not part of the M-encoding, but it will contain
+ symbols that previously were accessed via the math fonts. In
+ normal usage, this font will not be loaded in a family. It will
+ simply be loaded as a normal text font.
+
+ \item[The base: a Cork encoded latin text font.] The main use of
+ this font would be to typeset function names like \texttt
+ {\string\log}. The idea being that the user can actually choose
+ this font among the existing Cork encoded fonts. Thus `sin' can
+ actually be typeset in the same style as the text, or in another
+ special style to match the rest of the math glyphs.
+
+ \item[The core: the MC encoding.] It would not contain any Greek
+ glyphs (unlike \texttt {cmmi}). The basic accents (only one size)
+ would be here, next to the default numerals. It would also include
+ all the upper and lowercase default latin alphabet, all
+ of the symbols that are most commonly used, and glyphs that must
+ be kerned with the default alphabet.
+
+ \item[The Greek alphabets: the MG encoding.] This encoding table
+ would contain all the upper and lowercase Greek letters in
+ upright and italic, plus some variable shape Greek letters, also
+ in upright and italic, and some numeric Greek letters. Any other
+ Greek related glyphs would also live in MG. If place is still
+ available, one could include some symbols. An advantage of
+ putting the italic Greek and upright Greek together, is that both
+ are often requested in medium and in bold weight.
+
+ \item[The extensibles: the MX encoding.] This encoding would look
+ very much like the present \texttt {cmex} encoding: the usual
+ extensible characters, together with some new ones. It could
+ include any characters that have strange \TeX\ features like big
+ descenders. Thus glyphs that are not compatible with the
+ outer world would be kept together.
+
+ \begin{sloppypar}
+ \item[The math symbols: the MS1, MS2, MS3... encodings.] Each of
+ these encodings would contain a set of Latin letters, like for
+ instance script or blackboard bold, in upper or lowercase, or
+ both, together with a set of matching accents if needed. In some
+ cases a place should also be reserved for a set of matching
+ numbers. The rest would be filled up with symbols. There could be
+ an MS$_i$ encoding for:
+ \begin{itemize}
+ \item Calligraphic,
+ \item Script,
+ \item Open,
+ \item Old german, (Fraktur)
+ \end{itemize}
+ \end{sloppypar}
+
+ \end{description}
+
+
+
+\subsection{Other requested typefaces}
+ \begin{itemize}
+ \item A ``text-like'' italic or slanted font for computer science
+ identifier-names and the like. This would be Cork encoded.
+ \item A ``bold upright'' for use as variables -- e.g. vectors in
+ physics notation rather than the arrow over an italic letter. This
+ would be Cork encoded.
+ \item Bold italic for use as variables: an MC or Cork encoding.
+ \item Bold Old german (occasional).
+ \item Bold script (occasional).
+ \item Sans serif lightface (occasional): Cork encoded font.
+ \item Sans serif boldface (occasional): Cork encoded font.
+ \item Bold symbols: the same encodings loaded in bold.
+ \item Ultra bold symbols: the same encodings loaded in bold.
+\end{itemize}
+
+
+
+\subsection{Summarizing the family occupation}
+The following encodings are needed in the kernel:
+
+\begin{enumerate}
+\item A Cork encoded upright text font.
+\item An MC encoded font containing the default alphabet, digits,
+ accents, and symbols.
+\item An MS$_1$ encoded symbol font for calligraphic/script.
+\item An MX encoded extensible font.
+\item An MG encoded font for Greek italic and upright.
+\item An MS$_2$ encoded symbol font for Open and symbols.
+\item An MS$_3$ encoded symbol font for Old german and symbols.
+\end{enumerate}
+
+This occupies 7 families, and leaves 9 free for anything else, (like
+bold or sans...) and makes many symbols available.
+
+
+
+
+\subsection{Pros and cons}
+This proposal did not respect the limit of 4 and 6 families
+(compatibility with Plain\TeX\ and AMS\TeX), nor did it enable the Latin
+and Greek to be kerned together, nor could the Greek be kerned with the
+same symbols as the Latin alphabet, unless these were
+repeated. Generally, to get the equivalent of Plain \TeX, one would have
+had to load 5 families, and to get the functionalities of AMS\TeX, one
+would have needed to load 7 families.
+
+One of the advantages was the orthogonality of the individual encoding
+tables, i.e. there were no strange mixes like Latin and Greek, or
+anything of the sort.
+
+The main reasons for rejecting this proposal are:
+\begin{itemize}
+\item it is a big family consumer. In particular bold Latin and Greek
+ would occupy two extra families, and they are frequently requested.
+\item it does not enable kerning between the Greek and punctuation
+ which is needed for compatibility ---~the punctuation is in
+ a separate encoding table from the Greek.
+\end{itemize}
+
+The next proposal is more attractive...
+
+
+
+\section{The Aston LGC math encoding}
+
+LGC stands for Latin Greek core. One of the main features of this
+proposal is that the Greek and Latin alphabets have been put
+together. In one font they could be upright, and in the other they could
+be italic. A good reason for doing things this way is that the font
+dimension called slant may give a few unexpected problems if italic and
+non italic glyphs are mixed in the way that they would have been in the
+Aston LC math encoding.
+
+
+\subsection{The encoding tables}
+\begin{description}
+
+\begin{sloppypar}
+\item[The text symbols: the TS encoding.] This would be the same as in
+ the previous proposal, and would be used in a similar manner.
+
+\item[The base: a Cork encoded latin text font.] This would be the same
+ as in the previous proposal, and they would be used in a similar
+ manner.
+\end{sloppypar}
+
+\item[The core: the LG encoding.] Instead of the MC encoding (in the
+ previous proposal), the core could be duplicated. Once in upright,
+ and once in uppercase. The LG encoding would contain one instance
+ of both Latin and Greek letter sets. So two LG encoded fonts would
+ be used (upright, and italic).
+
+ As far as the other slots are concerned, they could be filled in
+ with the most used math symbols (similarly to the MC encoding),
+ these would then appear once in upright, and once in bold. An
+ alternative to such a duplication would be to make an LG1 encoding
+ that would contain different symbols from an LG2 encoding, and these
+ would always be in upright, whereas the letters would be specified
+ as italic in LG1, and upright in LG2.
+
+ \textbf{Note.} The user could choose whether he wants to load both LG1
+ and LG2, or only one of the two.
+
+
+\item[The extensibles: the MX encoding.] It would be the same as in
+ the previous proposal, and it would be used in a similar manner.
+
+\item[The math symbols: the MS1, MS2, MS3... encodings.] {\sloppy These
+ would be the same as in the previous proposal, and they would be
+ used in a similar manner.}
+
+\end{description}
+
+\subsection{And the rest?}
+Similarly to the previous proposal, many other fonts could be loaded
+in all the free families.
+
+
+\subsection{Summarising the Family occupation}
+\begin{enumerate}
+ \item An LG encoded font containing Latin and Greek italic. (This
+ could be LG1 if necessary. See explanations above.)
+ \item An MS$_1$ encoded symbol font for calligraphic/script.
+ \item An MX encoded extensibles font.
+ \item An LG encoded font containing latin and Greek upright. (This
+ could be LG2 if necessary. See explanations above.)
+ \item An MS$_2$ encoded font for Open and symbols.
+ \item An MS$_3$ encoded font for Old German and symbols.
+\end{enumerate}
+
+Only 6 families are occupied. This leaves 10 families free for
+anything else, (like bold or sans...) and makes many symbols
+available.
+
+
+
+\subsection{Pros and cons}
+
+One of the advantages of this proposal is that kerning can be done
+between Latin and Greek (as long as they are in the same shape), and
+between Greek and other symbols present in the encoding such as
+punctuation. Also when bold is requested, one gets the bold Latin and
+the bold Greek in the same font table, which again consumes less
+families than having the two separate.
+
+This proposal occupies less families than the previous one.
+
+Reasons for abandoning the Aston LGC math encoding:
+\begin{itemize}
+ \item The user must be able to choose the look of his log, sin, and
+ friends. He may want them to be either text compatible, or
+ compatible with the other math alphabets and the rest of the math
+ glyphs in general. The choice must be left open, and the math font
+ designer must not impose his decision on the user.
+ \item A solution to the previous problem is to include another
+ font for this purpose, as in the previous proposal. But then the
+ family occupation rises up to 7, and three Latin alphabets are
+ loaded, of which one (the LG upright) is probably not going to be
+ used much. Thus a lot of precious space is wasted.
+ \item The `Yaasp' proposal is much more attractive.
+\end{itemize}
+
+
+
+
+\chapter{The proposed YAASP encoding}
+\label{app-yaasp}
+\begin{quote}
+ This chapter is the final proposal that was made. It is also the body
+ of the official document that was produced. The reader may find some
+ similarities with the previous sections, for instance some of the
+ definitions can be found in section \ref {MoreVocab}. Also a lot of
+ the points discussed in the global policy section have already been
+ discussed.
+
+\end{quote}
+
+\input{l3d007a.tex}
+
+
+
+\chapter{The glyph groups}
+
+\input{l3d007b.tex}
+
+
+
+
+\chapter{Final conclusions}
+
+The `Yaasp' proposal, which is the final proposal made, is given in
+chapter \ref{app-yaasp}.
+
+Working on the \LaTeX3 project in Mainz was very interesting for many
+reasons:
+\begin{itemize}
+\item People next to me were working on net management and system
+ maintenance. I used email intensively for communicating
+ with other people working on the project. I used tar files and
+ other programs to send large amounts of information to other people.
+
+ It was a very good introduction to the network oriented studies I
+ will be doing in my last year. I don't think that I really knew before
+ what the network was. Now I have a better idea.
+
+\item I installed a test version of NFSS2. It was a good
+ introduction to software installing, and enabled me to discover a
+ few more UNIX tools. I hope I will be able to use this knowledge for
+ installing various packages for \TeX\ and especially emacs in the
+ Ecole des Mines de Saint Etienne.
+
+
+\item The work I did was to a large extent research work and thus
+ involved many topics for which no previous experience was
+ available. For this reason the work seemed to go slowly, and we often
+ had to go back to the drawing board and re-think points that we
+ thought were already finished and done with. All of this, of course,
+ was made worse by the fact that a lot of the communication was done
+ via email.
+
+ However, the final result was very positive. By the end of the three
+ months, a complete proposal for a new math font set-up was produced.
+ For Frank Mittelbach technical director of the \LaTeX 3 project,
+ this is a good achievement, and a big step forward. The next stage is
+ to try and implement the proposal, and start testing it.
+
+
+\item Last but not least, I greatly improved my English and my German.
+ I learnt about another country, about its educational system, and
+ about its habits, which one can only grasp by working in the country.
+ I learnt how to integrate in a foreign environment, and how to deal
+ with a few distressing problems: it was not easy to keep calm when
+ my car packed up the week-end before I had planned to go back to
+ France. In one's own country garage mechanics aren't easy people to
+ deal with; matters get even worse when it is in a foreign country.
+
+\end{itemize}
+
+The whole experience was very enriching in many domains. The difficulty
+I had in speaking German proved to me that the teaching of languages in
+the \textem {Ecole des Mines de Saint Etienne} is not good enough, and
+must be improved and given more importance.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% appendix starts here.
+\appendix
+
+
+\chapter{Analysing \TeX's positioning of \cn{mathaccent}s}
+\label {app-accents}
+\input{l3d007c.tex}
+
+
+\chapter{A close look at extensible characters}
+\label {app-delims}
+\input{l3d007d.tex}
+
+
+\chapter{Replacing \texttt{cmex} ?}
+\label{app-rep-cmex}
+\input{l3d007e.tex}
+
+
+
+
+
+
+\chapter{Fonts and font encodings}
+\label{app-fonts}
+
+The first 4 figures given on the next few pages are the standard fonts
+used in plain \TeX\ for maths.
+\begin{itemize}
+\item \textbf{Computer Modern Roman:} loaded in family 0 shown on figure
+ \ref {fnt-tbl-cmr}.
+\item \textbf{Computer Modern Math Italic:} loaded in family 1 shown on
+ figure \ref {fnt-tbl-cmmi}.
+\item \textbf{Computer Modern SYmbols:} loaded in family 2 shown on
+ figure \ref {fnt-tbl-cmsy}.
+\item \textbf{Computer Modern EXtensibles:} loaded in family 3 shown on
+ figure \ref {fnt-tbl-cmex}.
+\end{itemize}
+%
+Figure \ref {fnt-tbl-dcr} shows the DC-encoding with which the new
+math encoding is designed to live. Unlike the \fn{cmr} encoding, the
+Cork encoding does not include any Greek glyphs, this prevents its use
+in family 0 for maths. But an upright text font is needed in family 0,
+for mixing sub- and super-script in text. This problem has until now
+prevented the wide spreading of the DC-fonts.
+
+The next two fonts shown in figures \ref {fnt-tbl-msam} and \ref
+{fnt-tbl-msbm} are the AMS fonts, designed especially for use in
+maths.
+%
+\begin{figure}[b]
+ \dofonttable{cmr10}
+ \caption{The \fn{cmr} encoding: 128 glyphs.}
+ \label{fnt-tbl-cmr}
+\end{figure}
+%
+\begin{figure}[b]
+ \dofonttable{cmmi10}
+ \caption{The \fn{cmmi} encoding: 128 glyphs.}
+ \label{fnt-tbl-cmmi}
+\end{figure}
+%
+\begin{figure}[b]
+ \dofonttable{cmsy10}
+ \caption{The \fn{cmsy} encoding: 128 glyphs.}
+ \label{fnt-tbl-cmsy}
+\end{figure}
+%
+\begin{figure}[b]
+ \dofonttable{cmex10}
+ \caption{The \fn{cmex} encoding: 128 glyphs.}
+ \label{fnt-tbl-cmex}
+\end{figure}
+%
+\begin{figure}[b]
+ \dofonttable{msam10}
+ \caption{The \fn{msam} encoding: 128 glyphs.}
+ \label{fnt-tbl-msam}
+\end{figure}
+%
+\begin{figure}[b]
+ \dofonttable{msbm10}
+ \caption{The \fn{msbm} encoding: 128 glyphs.}
+ \label{fnt-tbl-msbm}
+\end{figure}
+%
+\maxz=256 \maxiz=255
+\begin{figure}[b]
+ \dofonttable{ecrm1000}
+ %\dofonttable{cmssdc10}
+ \caption{The \fn{dcr} encoding: 256 glyphs.}
+ \label{fnt-tbl-dcr}
+\end{figure}
+%
+
+%\begin{figure}[b]
+% \dofonttable{cspex10}
+% \caption{The \fn{cspex} and Saint Mary Road encodings.}
+% \label{fnt-tbl-mary}
+%\end{figure}
+
+
+
+%\chapter{Requirements analysis}
+%\label{app-require}
+
+
+
+
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end
+\end{document}
+\chapter{Daily detail of what I did (for personal record)}
+
+\begin{itemize}
+
+\jzitem{First week}
+A lot of reading: Tex for the impatient...
+Getting accustamed to the local environment: Emacs Bash Mwm...
+Getting Telnet and mail connection with France.
+Started my social report.
+Looked a little at the code of latex.
+Played around with latex. (wrote two letters)
+Played around with the Tex boxes.
+Read the chapter 7 from Frank's coming book.
+Started to read a little more about the math fonts in \TeX.
+
+\jzitem{Sunday 13th June}
+Started this report. Got familiar with Frank's integrated documenting
+system. Got to letter f in the tex index of commands. (evening)
+
+\jzitem{Monday 14th June}
+Trying to install NFSS2 in my environment.
+Read a lot of the installation documentation.
+Found the punk font, it was here.
+Read to letter k of the tex index.(evening)
+
+\jzitem{Tuesday 15th June}
+Last details of installing nfss2.
+Testing various features of NFSS2.
+Playing with nfss2: first page of my report.
+Read to letter p of the tex index.
+
+\jzitem{Wednesday 16th June}
+Still correcting a few problems with the installation of nfss2.
+Installing the punk font in NfSS2:
+made file nfpunk.dst based on nfpandor.dst.
+
+\jzitem{Thursday 17th June}
+Still installing the punk font in NfSS2.
+Read mail about maths.
+Went to get my car.
+End of afternoon with Frank.
+Read to letter t of the tex index.
+
+\jzitem{Friday 18th June : time flies}
+Ended the installation of the punk fonts.
+Read the article from tugboat about the punk fonts.
+Did the documentation for the pk fonts.
+Played around with NFSS2 and texlatex: getting my presentation page ok.
+
+\jzitem{Saturday 19th June}
+Ended the tex index.
+Read more about char in the Tex by topic.
+
+\jzitem{Sunday 20th June}
+Read still more about the Tex fonts and math fonts.
+Tested char and loops =$>$ loops make problems in latex.
+Tried postcript fonts.
+
+\jzitem{Monday 21st June} Tried to install the dunhill font with
+nfss2: OK. Maybe make a ``\texttt{.sty}'' file like punk. I find it
+is a nice font. Used raise and negative kerns for a joke. Reading
+more on math fonts.
+
+\jzitem{Tuesday 22nd June}
+Still more reading on mathfonts.-Families-mathcode-mathchar-greek
+and testing. Finaly solved all problems due to the loop.
+
+\jzitem{Wednesday 23rd June}
+Testing on skewchar, and more reading about maths.
+
+\jzitem{Thursday 24th June}
+More testing with skewchar.
+Meeting with FMI
+
+\jzitem{Friday 25th June}
+All day : writing the paper about accents.
+
+\jzitem{Week end}
+nothing about tex or latex
+oh yes: reading about fonts. (cahier gutenberg)
+
+\jzitem{Monday 28th June}
+Morning more testing with accents.
+Afternoon: Meeting with FMI and Jorg K.
+
+\jzitem{Tuesday 29th June}
+Writing a summary of yesterday, and trying to figure out how to do the
+work.
+
+\jzitem{Wednesday 30th June}
+Reinstalling NFSS2. Sending NFSS2 to Estonia. Reading all the mail
+printed by Joerg.
+
+\jzitem{Thursday 1st July}
+More thinking about maths. Sending mail to people. Reading about the
+Tex files.
+
+\jzitem{Friday 2nd July}
+More mailing.
+
+\jzitem{monday 5th July}
+More mailing, meeting with Frank.
+
+\jzitem{Tuesday 6th July}
+More mailing, reading about the extensible chars.
+
+\jzitem{Wednesday 7th July}
+More mailing. Sending stuff to joerg. Dealing with Aston.
+Continuing The paper on extensible chars.
+
+\end{itemize}
+\end{document}
+
+
+% Local Variables:
+% mode: latex
+% TeX-master: t
+% TeX-command-default: "LaTeX2+"
+% End: