summaryrefslogtreecommitdiff
path: root/fonts/apl/tugboat.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/apl/tugboat.tex
Initial commit
Diffstat (limited to 'fonts/apl/tugboat.tex')
-rw-r--r--fonts/apl/tugboat.tex530
1 files changed, 530 insertions, 0 deletions
diff --git a/fonts/apl/tugboat.tex b/fonts/apl/tugboat.tex
new file mode 100644
index 0000000000..87b1461a1c
--- /dev/null
+++ b/fonts/apl/tugboat.tex
@@ -0,0 +1,530 @@
+
+%=============================================================================
+% T U G B O A T . T E X
+%=============================================================================
+%========================================================================
+% A TeX file for the paper on APL-TeX (new version, not published)
+%
+% A.Hohti/O.Kanerva (University of Helsinki) April 1987
+%========================================================================
+%
+%
+% Version of August 26, 1987 at 15:00
+%
+%
+%========================================================================
+\input aplstyle % the file containing the APL definitions
+%========================================================================
+%
+%
+\magnification=\magstep1 % for weak eyes!
+%
+%
+%========================================================================
+\font\bigbf=ambx10 % for titles
+\font\sltt=amsltt10 % for file contents inside text
+\font\manual=manfnt at 10pt % for major METAFONT logo
+\font\minual=manfnt at 9pt % for minor METAFONT logo
+\input ninesize % abstract, references
+%========================================================================
+%
+\def\METAFONT{{\manual META}\-{\manual FONT}}
+\def\metafont{{\minual META}\-{\minual FONT}}
+%
+%========================================================================
+% stylistic definitions
+\def\section#1{\vskip0pt plus .1\vsize
+ \penalty-250\vskip0pt plus-.1\vsize\bigskip
+ \noindent{\bf #1.\ }\nobreak\message{#1}}
+\def\abstract#1{\bigskip\centerline{\hbox{
+ \vbox{\hsize=4.75truein{\ninepoint \noindent ABSTRACT.\enspace#1}}}}}
+\def\APL{{\sl APL}}
+% this definition is from the TeXbook, Ex. 21.3 :
+\def\boxit#1{\vbox{\hrule \hbox{\vrule \kern2pt
+ \vbox{\kern2pt#1\kern2pt}\kern2pt\vrule}\hrule}}
+% A macro for making references and blocks.
+%
+\newdimen\refindent\newdimen\plusindent
+\newdimen\refskip\newdimen\tempindent
+\newdimen\extraindent
+\newcount\refcount
+%
+% \refskip has to be set by the user! Otherwise \parindent is
+% used, in accordance with \item.
+%
+\refcount=0
+\def\ref#1:#2.-#3\par{\ninepoint % switch to nine point fonts
+\advance\refcount by 1
+\setbox0=\hbox{[\number\refcount]}\refindent=\wd0
+\plusindent=\refskip\extraindent=\refskip
+\advance\plusindent by -\refindent\tempindent=\parindent %
+\parindent=0pt\par\hangindent\extraindent %
+ [\number\refcount]\hskip\plusindent #1:{\sl#2},#3
+\parindent=\tempindent}
+%
+\refskip=\parindent
+%
+%========================================================================
+ % HEADER
+\null
+\vskip2truecm
+%
+ \centerline{\bigbf GENERATING AN \APL\ FONT}
+%
+\vskip.75truecm
+%
+ \centerline{\sl Aarno Hohti and Okko Kanerva}
+%
+\vskip.5truecm
+%
+ \centerline{\sl University of Helsinki}
+\vskip.5truecm
+\abstract{The \APL\ language is well known for its peculiar
+ symbols which have inhibited the use of this language
+ in many programming environments. Making \APL\
+ documents of good quality has been difficult and
+ expensive. We describe here a simple way how to
+ use \metafont\ to generate an \APL\ font for \TeX\
+ by using existing font definitions as far as possible.}
+\vskip.5truecm
+%========================================================================
+%
+\section{Introduction}
+This note describes an interesting exercise in using
+\METAFONT\ to produce new typefaces by combining letters
+from standard fonts. As we know, the \APL\ language [6] of
+Kenneth Iverson has never gained the popularity it deserves
+which is largely due to its strange symbol set. Indeed,
+true \APL\ users require a special keyboard to support
+the nonstandard but powerful operator symbols. Moreover,
+putting \APL\ into print has always been a problem, and
+modern low cost computerized typesetting programs do
+not usually support \APL\ style. \TeX\ can be used to
+produce high quality printouts for technical text,
+and it would be desirable to have a possibility to
+mix in \APL\ code. The companion program of
+\TeX ---\METAFONT ---provides a full means for a simple generation
+of an \APL\ font for \TeX, and the purpose of this
+note is to inform other people about the result we
+have obtained at the University of Helsinki. Let us note
+that there are at least three other \APL\ fonts available
+for small computer environments. Indeed, the newsletter
+\APL\ {\it Quote Quad\/}\footnote{*}{{\ninepoint Newsletter of SIGAPL,
+the Special Interest Group for \APL. {\it Quote Quad\/} has the same
+status in the world of \APL\ as TUGboat in \TeX{nical} world.}}
+is produced by using TROFF, and there
+exists a Postscript \APL\ font for the Apple Laserwriter [5] and
+another font for the TEXT typesetting system [2].
+
+Consider the following usual kind of function definition in \APL:
+\choosett{apl}
+\begintt
+ @DLS_SUMSQ N;I
+ [1] S_I_0
+ [2] @GO(N<I_I+1)/0
+ [3] S_S+I*2
+ [4] @GO2
+ [5] @DL
+\endtt
+\choosett{sltt}% %@@@@
+How to write in this code, providing that we have a suitable
+font? The \APL\ font should represent the screen
+output style of \APL\ code and obey the same laws of spacing.
+Hence, it should be a typewriter-like typeface with fixed
+spacing; the same approach for representing \TeX\ input was
+adopted by Knuth in the {\TeX}book.
+The {\it verbatim\/} macros have often been used for importing
+screen or paper outputs into \TeX\ documents; some people
+misuse them for an easy construction of tables etc. In
+{\sltt verbatim}, the typewriter mode is entered by the control
+sequence @\begintt@---that mode is ended by
+@\endtt@. In the same vein, we could enter
+the \APL\ mode by the control sequence @\beginapl@,
+and to end it by @\endapl@. However, it is more convenient to
+augment {\sltt verbatim\/} with {\sltt aplstyle\/} so that
+it can be used with several different typewriter-like fonts.
+(The {\it verbatim\/} macros can be found in the {\TeX}book,
+p.\ 421.) Since {\sltt\char'100\/}
+(the {\it at sign}) is used as the escape character inside {\it verbatim\/}
+mode, our \TeX\ code might (and in fact does) look as follows:
+\def\endsym{\char'134{endtt}} % just for using \endtt after \begintt
+ % without actually ending anything
+\choosett{tentt}
+\begintt
+ \choosett{apl}
+ \begintt
+ @@DLS_SUMSQ N;I
+ [1] S_I_0
+ [2] @@GO(N<I_I+1)/0
+ [3] S_S+I*2
+ [4] @@GO2
+ [5] @@DL
+ @endsym
+\endtt
+\choosett{sltt}% %@@@@
+The control sequences @\DL@ and @\GO@ are not chosen arbitrarily
+but follow the conventions used in Digital's VAX \APL\ interpreter [1].
+As terminals usually do not support the \APL\ character set, an
+alternative representation by two-letter mnemonics is provided by the
+interpreter. For the most part we have adopted these mnemonics also for our
+\APL\ font. Hence, as an additional bonus the user should find it
+easy to combine his or her \APL\ code with normal \TeX\ code. Thus,
+it is not necessary for a VAX \APL\ user to retype the definitions
+of \APL\ functions in order to be able to use them in documents.
+He or she only has to replace every {\it period\/} used as an
+escape character in Digital's interpreter, by {\sltt\char'100}.
+(There is another syntactical difference between Digital's interpreter
+and \TeX's {\it verbatim\/} mode: for the interpreter
+the third ordinary character after an escape character
+does no longer belong to the escape sequence while \TeX\ admits
+arbitrarily long control sequences. We take care of this
+by changing certain {\it catcodes\/} temporarily.)
+%
+%
+\choosett{apl}%
+%
+\section{The \APL\ font table}
+\APL\ symbols are divided into two classes: the primitive symbols
+and those obtained by overstriking two primitive ones. The overstrikes
+are traditionally obtained by typing the first symbol, by using
+backspace to go back one space and then typing the second symbol
+{\sl over\/} the first one. However, in modern \APL\ keyboards these
+double symbols are assigned to non-alphanumeric keys (for example,
+to keys under the {\sltt ALT\/} key). We decided to include only the
+primitive \APL\ symbols in the font table; this enabled us to include
+also the lower-case letters, following modern conventions. (The original
+\APL\ letters were restricted to capitals.) The comment symbol
+@"@ is the only exception since it is keyed in as a double quote.
+Our font is a fixed size typeface with strongly slanted letters.
+Moreover, we have followed the style of best books in \APL:
+all symbols should be drawn with a thin pen to get a touch of
+a typewriter. (This point is clearly witnessed, for example, in [5].)
+The places of some symbols are determined by the \TeX\ font tables.
+For example, the hash sign {\sltt\char'043\/} is used for the
+multiplication sign in VAX \APL, and hence the corresponding symbol
+has the the same octal code (043) as the hash sign in \TeX.
+The font table has the following form: %@@@@
+
+%========================================================================
+% table begins
+%========================================================================
+% This macro comes from TUGboat (I (AH) do not remember which number),
+% unsuitable parts are commented out.
+%
+{\baselineskip=0pt \lineskip=0pt
+\newdimen\vu
+%
+%\output={\shipout\vbox{\unvbox255\vskip0.4in}\advancepageno}
+%
+\setbox9=\hbox{\sl 0}
+\def\spike{\hbox to 0pt{\vbox to \ht9{}}}
+\def\cell#1{\hbox to 1\vu{\hfill\char'#1\hfill}\vrule}
+\def\label#1{\vbox to \ht8{\vfill\hbox to 35pt{\hfill\sl '#10\hskip1em%
+ }\vfill}\vrule}
+%
+\def\seprow{\def\m{\hskip 1\vu{}\vrule height 2pt}\hbox{\m\m\m\m\m\m\m\m}}
+\def\cellrow#1{\setbox8=\vbox{\seprow\hbox{\spike%
+ \cell{#10}\cell{#11}\cell{#12}\cell{#13}%
+ \cell{#14}\cell{#15}\cell{#16}\cell{#17}\hfill%
+ }\seprow\hrule}\hbox{\label{#1}\box8}}
+%
+\def\lcol#1{\hbox to 1\vu{\hfill{\sl #1}\hfill}\hskip .4pt}
+\def\chw#1{\hbox{\char'#1}}
+%
+\def\colw#1{\vbox{\chw{#10}
+ \chw{#11}
+ \chw{#12}
+ \chw{#13}
+ \chw{#14}
+ \chw{#15}
+ \chw{#16}
+ \chw{#17}}}
+%
+\def\setw#1{\vbox{\colw{#10}
+ \colw{#11}
+ \colw{#12}
+ \colw{#13}
+ \colw{#14}
+ \colw{#15}
+ \colw{#16}
+ \colw{#17}}}
+%
+\def\getw{\setbox0=\vbox{\setw0\setw1\hbox to \wd9{}\hbox to 1em{}}%
+ \vu=1.625\wd0}
+%
+ \apl\getw\bigskip % changed from \null\vfill to \bigskip
+%
+ \centerline{\vbox{%\hbox{\hskip35pt{\sl cmapl10}\hfill}
+% \vskip20pt
+ \hbox{\hskip35pt\lcol0\lcol1\lcol2\lcol3\lcol4\lcol5\lcol6\lcol7}
+ \vskip 4pt
+ \hbox{\hskip35pt\vbox{\hrule width 8\vu}\vbox{\hrule width 3.6pt}}
+ \cellrow{00}\cellrow{01}\cellrow{02}\cellrow{03}
+ \cellrow{04}\cellrow{05}\cellrow{06}\cellrow{07}
+ \cellrow{10}\cellrow{11}\cellrow{12}\cellrow{13}
+ \cellrow{14}\cellrow{15}\cellrow{16}\cellrow{17}}}} % removed \vfill
+% % from the end
+%
+%========================================================================
+% table ends
+%========================================================================
+%
+\section{The necessary \METAFONT\ files}
+The whole process started when the first author had a paper
+containing \APL\ symbols and was disappointed with the
+quality of the symbols available on the typewriter. Moreover,
+the secretary who had typed the text had forgot a couple
+of lines in the middle of the paper, and the correction of
+such mistakes seemed to be very clumsy in comparison with
+modern typesetting. Then he decided (together with the second
+author) to remedy the situation by creating an \APL\ font for
+\TeX\ he was using for other kinds of document. Many of the
+\APL\ symbols needed were contained in standard fonts; for example,
+{\it diamond\/} can be found in {\it cmsy10}. For alphanumeric
+characters one could use {\it cmsltt10}. The simplest try for
+a solution of the problem would be to write a list of definitions
+that pick symbols from appropriate fonts. However, this brute force
+method does not really work since these symbols come from
+very different typefaces and, moreover, do not provide a fixed
+typeface. Hence, we decided to find an easy way of producing
+an \APL\ font by using \METAFONT.
+
+As the starting point, we took the font {\it cmtex10}. This is a
+fixed typeface for an extended typewriter-like font including
+some Greek characters and mathematical symbols. The \METAFONT\ file
+for this font, {\sltt cmtex10.mf\/} contains (as usual) a preamble
+that assigns values to several global variables, and the command
+{\sltt generate textset;\/}. Now the {\sl driver\/} file {\sltt textset.mf\/} %@@@@
+contains the commands {\sltt mode\_setup;font\_setup;\/} %@@@@
+(establishing the values of the variables for this font) and several
+input files from which the \METAFONT\ descriptions of the characters are to
+be found. Since some of these files treat the characters by name and
+since some of the definitions have to be changed (and some dropped),
+we considered it advisable to discard the driver file and to collect
+the separate \METAFONT\ files, together with the preamble, to form a
+large single file {\sltt cmapl10.mf}. The {\sltt .mf\/} character files
+needed for {\sltt cmapl10.mf\/} are the following:
+%
+%
+$$\vbox{\halign{{\sltt#}\hfil && \quad #\hfil\cr
+%
+ greekl & ({\it rho, omega, alpha}) \cr
+ italms & ({\it iota}) \cr
+ romand & (roman digits) \cr
+ punct & (punctuation symbols) \cr
+ romanp & \cr
+ symbol & (math symbols) \cr
+ sym & \cr
+ romanu & (uppercase letters) \cr
+ romanl & (lowercase letters) \cr
+%
+}}$$
+%
+%
+\section{Definitions}
+\choosett{tentt}%
+The first thing to do is to put {\sltt font\_identifier:="CMAPL";\/} %@@@@
+and to set {\sltt slant:=0;\/} in the preamble. Many definitions can %@@@@
+be copied verbatim from the {\sltt .mf\/} files, but some of them
+need changes. The Greek {\it iota}, as given in {\sltt greekl.mf},
+is strange to \APL\ style; we use instead the {\it dotless i\/}
+from {\sltt italms.mf}. Moreover, we used the symbol {\it elt\/}
+(element) from {\sltt sym.mf\/} instead of the Greek {\it epsilon}.
+The symbols {\it del\/} and {\it delta\/} are
+taken from {\sltt symbol.mf\/} (where their names are {\it large triangle\/}
+and {\it large inverted triangle}). However, they are too sturdy
+and too short to be placed in a proper \APL\ font. Further, {\it del\/}
+must be lifted up so that it is vertically aligned with other
+symbols. The modifications are very easy to do, and the modified %@@@@ , by ,and
+definition is shown below.
+%
+%
+\choosett{tentt}
+\begintt
+ % sqrt48 was changed to 6.25 since the del symbol in APL has
+ % a narrower top than the original reversed triangle symbol
+ % rule.nib has been changed to light_rule.nib
+ % bot y3=-d-o has been changed to bot y3=0
+ % top y1=h-d has been changed to top y1=h+2o
+ @null
+ cmchar "Del";
+ beginchar(oct"002",16u#,asc_height#,0);
+ adjust_fit(0,0); pickup light_rule.nib;
+ top y1=h+2o; y2=y1; bot y3=0;
+ .5[x1,x2]=x3=good.x .5w; w:=r:=2x3; lft x1=hround(.5w-u*6.25);
+ draw z1--z2--z3--cycle; % stroke
+ labels(1,2,3); endchar;
+\endtt
+As can be seen from this example, pen strokes were made thinner.
+Actually only one symbol was directly missing---this is the {\it quad
+box}. However, it can be obtained from the above by adding one control point:
+\begintt
+ cmchar "Quad";
+ beginchar(oct"001",16u#,body_height#,0);
+ adjust_fit(0,0); pickup light_rule.nib;
+ bot y1=0; y2=y1; top y3=h+2o; y4=y3;
+ .5[x1,x2]=x5=good.x .5w; w:=r:=2x5;
+ % The quad box is slightly wider than Del
+ lft x1=hround(.5w-u*7);
+ x3=x1; x4=x2;
+ draw z1--z2--z4--z3--cycle; % box
+ labels(1,2,3,4); endchar;
+\endtt
+After taking care of special symbols, the letters can be treated
+by finding a suitable value for {\it tilt ratio\/} (slant). Indeed,
+\APL\ letters are {\sl very\/} slanted. We suggest the value
+1/5 for this font (the font {\it cmsl10\/} uses 1/6). One should
+remember to give the command {\sltt font\_setup;\/} after setting {\sltt slant\/} %@@@@
+to 1/5.
+\choosett{sltt}% %@@@@
+Finally, one has to make the {\it verbatim\/} macros
+suitable for \APL\ style. Since {\it verbatim\/} might be
+used for several different fonts in one document, we decided
+to include a control sequence @\choosett@.
+\choosett{tentt}
+\begintt
+ \def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax}
+ \newif\ifapl \def\aplname{apl}
+ \outer\def\choosett#1{\ifundefined{#1}%
+ \message{Undefined font(?), replaced with cmtt10}%
+ \let\tt=\tentt
+ \else
+ \def\tt{\expandafter\csname#1\endcsname}%
+ \def\ttname{#1}%
+ \ifx\ttname\aplname\apltrue\else\aplfalse\fi\fi}
+\endtt
+\choosett{sltt}%
+(The control sequence @\ifundefined@ comes from the \TeX{book}, p.\ 308.)
+With the help of @\choosett@, the standard @verbatim@ macros can be used
+with the single change that @\ifapl@, then the @\catcode@ of @A@,\dots,@Z@
+is @\other@ (12) instead of 11 for {\it letter}. Under \APL\ mode \TeX\
+will then recognize our single-letter control sequences defined, e.g., by
+\choosett{tentt}
+\begintt
+ \def\A#1{\if#1B{\apl\char'174}\else % stile
+ \if#1M{\apl\char'004}\fi\fi} % alpha .
+\endtt
+\choosett{sltt}%
+Unfortunately, we have redefined the standard @\L@, @\O@, @\P@ and @\S@.
+
+The \APL\ symbols not in the font table are obtained---as usual---by
+overstriking two table symbols.
+\choosett{tentt}%
+\begintt
+ \newbox\firstchar\newskip\charwidth
+ \def\overstrike#1#2{\setbox\firstchar=\hbox{#1}\charwidth=\wd\firstchar
+ #1\hskip-\charwidth#2}
+\endtt
+\choosett{apl}%
+For example, the {\it grade up\/} and {\it grade down\/} symbols
+\G U\ and \G D\ are obtained by striking the {\it stile\/} symbol
+@|@ over \L D\ and \D L, respectively.
+\choosett{tentt}%
+\begintt
+ \def\G#1{\if#1U{\overstrike{\LD}{\AB}}\else % grade up
+ \if#1D{\overstrike{\DL}{\AB}}\fi\fi} % grade down
+\endtt
+Now let us take another example on \APL. The input
+\begintt
+ \choosett{apl} % in case some other choice is in force
+ \setbox0=\vbox{\hsize=5.7truein
+ \begintt
+ [0] Z_A1 PROD A2;A;I;V
+ [1] "RETURNS THE PRODUCT OF THE POLYNOMIALS A1 AND A2
+ [2] "THE ARGUMENTS ARE GIVEN AS COEFFICIENT ARRAYS
+ [3] I_@@ROA1
+ [4] Z_A1@@SO.#A2
+ [5] LOOP:V_@@ROZ @@DM V[(@@ROI)+1]_V[1]
+ [6] V_@@ROZ_Z,[(@@ROI)+1]V@@RO0
+ [7] A_(1+-@@IOV[1])@@SO.#((@@NT(@@IO@@ROV)@@EP(1,(@@ROI)+1))/V)@@RO1
+ [8] Z_+/[1]A@@RV[(@@ROI)+1]Z
+ [9] ((@@RO@@ROZ)>@@ROI)/LOOP
+ @endsym
+ }
+ $$\boxit{\boxit{\box0}}$$
+ \centerline{\sevenrm An APL function for polynomial multiplication}
+\endtt
+%
+gives the output
+%
+\choosett{apl}
+\setbox0=\vbox{\hsize=5.7truein
+\begintt
+ [0] Z_A1 PROD A2;A;I;V
+ [1] "RETURNS THE PRODUCT OF THE POLYNOMIALS A1 AND A2
+ [2] "THE ARGUMENTS ARE GIVEN AS COEFFICIENT ARRAYS
+ [3] I_@ROA1
+ [4] Z_A1@SO.#A2
+ [5] LOOP:V_@ROZ @DM V[(@ROI)+1]_V[1]
+ [6] V_@ROZ_Z,[(@ROI)+1]V@RO0
+ [7] A_(1+-@IOV[1])@SO.#((@NT(@IO@ROV)@EP(1,(@ROI)+1))/V)@RO1
+ [8] Z_+/[1]A@RV[(@ROI)+1]Z
+ [9] ((@RO@ROZ)>@ROI)/LOOP
+\endtt
+ }
+$$\boxit{\boxit{\box0}}$$
+\centerline{\sevenrm An APL function for polynomial multiplication}
+%
+\section{User extension}
+A modern user of a computerized typesetting facility will probably
+ask if it is possible to extend or modify fonts coming with the
+system. As with [5], where the font has an {\it analytic\/} and a
+{\it bitmapped\/} variant, we can distinguish between the need of modifying
+{\it cmapl10\/} via \METAFONT\ and modification of the pixel files.
+\APL\ symbols of various ``blackness'' or ``thickness'' may be desirable.
+Indeed, in [3] the user input is written with boldface \APL\ symbols
+and the answers from the interpreter with thin ones. Furthermore,
+certain screen previewers use specific small size pixel files, and
+do not support the \APL\ font.
+
+The modification of the font by changing the values of some global
+variables in the preamble of the \METAFONT\ file is easy and can be
+done by following how it is done in standard fonts such as
+{\it cmbx10\/} etc. This is the recommended way, too. However, if
+\METAFONT\ is not available, then one must attack the pixel files.
+For direct hand editing, we use a program that converts a pixel
+file into a (bitmapped) text file acceptable to any standard screen
+editor, and another program reading the edited file back into
+a \TeX\ pixel file. Scaling fonts down to a desired size can be
+done in a similar (but automatic) manner; this facility is needed
+by a previewer (written by the first author) not using runtime
+scaling.
+
+
+\section{References}
+\bigskip
+{
+\ref Digital Equipment Corporation: VAX-11 \APL\ Reference Manual.-
+ 1983.
+
+\ref Feldberg, Ian: TEXT: Publication-Quality Characters Come
+ to \APL\ Graphics.- Proceedings of the 1986 \APL\ Conference,
+ SIGAPL, pp.\ 306--313.
+
+\ref Gilman, Leonard, and Allen J.\ Rose: \APL, An Interactive
+ Approach.- John Wiley \& Sons, Inc., 1984.
+
+\ref Grenander, Ulf: Mathematical Experiments on the Computer.-
+ Academic Press, 1982.
+
+\ref Howland, John E.: Typesetting \APL\ Using a Macintosh.-
+ Proceedings of the 1986 \APL\ Conference, SIGAPL, pp.\ 301--305.
+
+\ref Iverson, Kenneth: A Programming Language.- Wiley, New York, 1962.
+
+
+ }
+
+\bigskip
+\section{The address}
+\bigskip
+{\ninepoint\obeylines
+\hskip\refskip University of Helsinki
+\hskip\refskip Department of Mathematics
+\hskip\refskip Hallituskatu 15
+\hskip\refskip SF--00100 HELSINKI
+\hskip\refskip FINLAND
+}
+
+\end
+