diff options
Diffstat (limited to 'usergrps/uktug/baskervi/5_4')
45 files changed, 5913 insertions, 0 deletions
diff --git a/usergrps/uktug/baskervi/5_4/abbott.tex b/usergrps/uktug/baskervi/5_4/abbott.tex new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/abbott.tex diff --git a/usergrps/uktug/baskervi/5_4/agenda.tex b/usergrps/uktug/baskervi/5_4/agenda.tex new file mode 100644 index 0000000000..ab684d7e2f --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/agenda.tex @@ -0,0 +1,88 @@ +\documentclass[a4paper]{article} +\newcommand{\act}[1]{} +%\newcommand{\act}[1]{(#1)} +%\newcommand{\remark}[1]{\begin{quote} \it RAB says: #1 \end{quote}} +\newcommand{\remark}[1]{} +%note that both \act and \remark will be set to do nothing in the version that +%goes to the members + +%The editor to change or delete these commands +\newcommand{\BV}{{\it Baskerville}} +\newcommand{\uktug}{UK \TeX\ Users' Group} + +%\addtolength{\textwidth}{1in} +%\addtolength{\oddsidemargin}{-0.5in} +%\addtolength{\topmargin}{-0.5in} +%\addtolength{\textheight}{1.5in} + +\begin{document} +\begin{center} +\bf\large +The UK \TeX\ Users' Group\\ +Sixth Annual General Meeting\\[6pt] +To be held in \\[3pt] +Room G2, School of Mathematical Sciences\\ +Queen Mary and Westfield College\\ +University of London\\[6pt] +at 1130 on Wednesday 18 October 1995\\ +%AGENDA +\end{center} +\remark{The place is not yet confirmed} + +\pagestyle{empty} +\raggedright +\subsection*{DRAFT +AGENDA} +\act{CAR to welcome, then to introduce each item} +\begin{enumerate} +%\item Collection of ballots for the chair. +\item Receipt of the report of the 1994 AGM. \act{RAB to point to +Baskerville} +\item Chair's report. \act{CAR} +\item Treasurer's report. \act{PA} +\item Appointment of auditors. \act{CAR} +\item Approval of the annual subscription for individual members. \act{PA} +The committee proposes the following motion. +\begin{quote} +\it The membership fee for 1996 shall be \pounds 20.00 for full membership or +\pounds 10.00 for full-time student membership. +\end{quote} +\remark{I have not raised the fees, as we seem to have a healthy balance. Can +Peter confirm and the rest of you approve?} +\remark{We have passed the `early payment gets a discount' in perpetuity, so +there is no need for a longer motion.} +\item Approval of the annual subscription for institutional members. \act{PA} +The committee proposes the following motion. +\begin{quote} +\it The membership fee for 1995 shall be \pounds 100.00 for institutional +membership. +\end{quote} +\remark{Or we could say five times the individual fee.} +\item Announcement of new Chair. \act{CAR} +\item Election of Committee Members. \act{RAB to display lists and orchestrate} +\item Report on {\em Baskerville}. \act{SPQR} +\item Topics for Meetings (to solicit ideas from the floor on theme, location, +timing and duration of forthcoming meetings). \act{MC} +\item \TeX nical services to members. \act{PA and/or SPQR} +\item Any other business. \act{CAR} +\end{enumerate} + +\noindent\hrulefill + +Jonathan Fine has asked that the following statement be conveyed to the +membership of \uktug. +\begin{quote} +``I have now relinquished all my duties as a member of the Committee of +UK TUG. I will not be standing for re-election at the AGM. The main +reason for this has been differences with other members of the +committee.'' +\end{quote} +\remark{JF has been engaged in LONG correspondence with SPQR, RAB and CAR, +demanding that various things be published in Baskerville. I took it +upon myself as constitutional person to decree that most of these could not but +that the above statement would go out with the AGM agenda.} + +\end{document} + + + diff --git a/usergrps/uktug/baskervi/5_4/agm.tex b/usergrps/uktug/baskervi/5_4/agm.tex new file mode 100644 index 0000000000..1c847f0aff --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/agm.tex @@ -0,0 +1,227 @@ +%latex2e file +%\documentclass[twocolumn,11pt,a4paper]{article} +%%% Item to go in Baskerville 5.4 +%%% +%%% Title: Final announcement of the Annual General Meeting +%%% +%%% here is formatting stuff that the editor will change +%%% + +\newcommand{\uktug}{UK \TeX\ Users' Group} + +\newcommand{\NL}{\\[.8\baselineskip]} +v +\begin{Article} +The Annual General Meeting of the \uktug\ will be held at 1130 on +Wednesday 18~October 1995 at Queen Mary and Westfield College, London, in +Room~G2 in the School of Mathematical Sciences. Coffee will be available from +1100. +A draft agenda for the meeting accompanies this announcement. + +The nearest tube station is Stepney Green. Turn left when you come out of the +station, and walk about 100~yards along the Mile End Road. The School of +Mathematical Sciences is the first tall building on your left. + +Lunch will be available after the AGM, and will be followed by an ordinary +meeting on +{\it \TeX\ for the non-technical}. +%%editor: check this with Carol! +Further details of the afternoon meeting, +including a booking form, accompany this announcement. +%%%do they? +There is no charge for the AGM itself, but members who wish to stay for the +afternoon meeting will have to pay. Non-members are not permitted to +participate in the AGM but are welcome to attend the afternoon meeting. + +All members of the \uktug\ are urged to attend the AGM. Agenda item~10 +specifically seeks your opinion on future meetings: where? when? how often? +what topics? talks or training? regular or flexible schedule? The Committee +needs your input in order to plan the meetings that the membership wants. + +The Constitution contains the following clauses: +\begin{quote} +17. \ The annual general meeting of the \uktug\ shall be +held in the United Kingdom not later than the last day of +November +in each year on a date and at a +time to be fixed by the Committee and notified to members +at least 35 days in advance for the +following purposes--- + +(1) to receive from the Committee a report balance sheet and statement of +accounts for the preceding financial year + +(2) to fill the vacancies in the Committee and to appoint auditors for the +ensuing year + +(3) to decide on any motion which may be proposed to the meeting in the +manner provided below + +(4) to fix the entrance fee (if any) and annual subscription + +18. \ Any member desirous of proposing any motion at the +annual general meeting shall give notice in writing to the secretary not +later than 14 days before the date of such meeting + +23. \ No amendment (other than a motion for adjournment) shall be moved to any +motion proposed at any annual or special general meeting unless written notice +of the amendment shall have been sent to the secretary prior to the meeting +\end{quote} + +I think that Clauses 17~(3), 18 and 23 are self-explanatory. + +Having seen the enclosed draft agenda, +anyone wishing to propose + any motion to the AGM must send me, in writing, the + text of the proposed motion and their own name and + address, to reach me by 4~October 1995. +If there are any changes to the draft agenda, the final agenda will be sent to +members in the 14 days before the AGM. +Anyone wishing, at that stage, to move +any amendment to any motion, must send me, in writing, the + text of the proposed amendment and their own name and + address, to reach me by 17 October 1995. + +The chair's term of office ends at this AGM. The following clause +from the constitution describes the procedure which should be followed. +\begin{quote} +11. \ (1) The chair of the group shall be the chair of +the committee + +(2) The chair of the group shall retire after completion of two +consecutive years but shall be eligible for re-election + +(3) Any two members who are individuals may +nominate any member of the group who is an individual +to be the chair in writing to the +secretary not less than two months before the date of retirement + +(4) If there are two or more nominations then the chair +will be decided by a postal ballot by single transferable vote +in which +every member of The UK \TeX\ Users' Group who is an individual +shall be entitled but not obliged to vote +\end{quote} + + +More than one valid nomination for the chair has been received. +A ballot is therefore +necessary. A ballot form is enclosed with this issue of \BV. Completed ballot +forms should be returned to me by 6~October 1995. + +As for other vacancies on the Committee, +Clause~10 of the Constitution implies that +at most~3 members of the present Committee may continue without +being re-elected. +Thus Clause~9 +implies that there are +at least 8~vacancies to be filled. + +The following parts of Clause~10 describe the procedure for +filling these vacancies: +\begin{quote} +(3) Any two members who are individuals may +nominate any member or members of the group who are individuals +to fill any of +the vacancies by giving at least 7~days notice in writing to the +secretary + +(4) If there are more nominations than vacancies then the membership +will be decided by an election by single transferable vote in which +every member of the \uktug\ who is an individual and is +present at the annual general meeting +shall be entitled but not obliged to vote +\end{quote} + +Nominations for committee members in accordance with the above +sub-clauses are thus being sought. +Written nominations for new committee + members should be sent to me, to reach me by 11~October + 1995. +There + is no official nomination form. If you like, you may use the +forms provided at the end of this notice. Otherwise, what you send + me should contain, clearly and legibly, +\begin{verse} + ---name and address of nominee\\ + ---declaration that (s)he is willing to stand for this + office, signed by the nominee\\ + ---name and address of the nominator\\ + ---statement nominating the nominee, signed by the + nominator\\ + ---name and address of seconder\\ + ---statement in support of the nomination, signed by + the seconder. +\end{verse} + The nominee, nominator and seconder should all be members + of the \uktug\, +and the last two should be different from each + other. + +Once elected, the Committee appoints officers from its membership. + + In all the above, `in writing' means `on paper', not email. + + Please put `UKTUG' on the outside of the envelope when you +send me any of the above. Otherwise, people may find themselves +elected to the wrong committee. + +My address is +\begin{verse} +School of Mathematical Sciences\\ +Queen Mary and Westfield College\\ +Mile End Road\\ +London E1 4NS +\end{verse} + +\begin{flushright} +R. A. Bailey\\ +Honorary Secretary\\ +\end{flushright} + +%%% +%%% Dear Mr Editor, +%%% you will probably want to play with the stuff below to make it fit +%%% nicely, perhaps using the whole textwidth or a doublecolumn float. +%%% you did a good job in BV last year +%%% + +%%%start of form for committee members +\newpage +\noindent +\FullLine{} +{\bf Election for committee member}\NL +\FullLine{Name of Nominee:} +\FullLine{Address:} +\FullLine{\phantom{Address:}} +\FullLine{\phantom{Address:}} +\FullLine{\phantom{Address:}} +I declare that I am a member of \uktug\ and am +willing to stand for election to the Committee of \uktug\ +for 1995--96. +\NL +\HalfLine{Signature:}\hspace{2em}Date: \hrulefill\NL +\NL +\FullLine{Name of Nominator:} +\FullLine{Address:} +\FullLine{\phantom{Address:}} +\FullLine{\phantom{Address:}} +\FullLine{\phantom{Address:}} +I declare that I am a member of \uktug\ and that I nominate the above-named +person for election to the Committee of \uktug\ for 1995--96. +\NL +\HalfLine{Signature:}\hspace{2em}Date: \hrulefill\NL +\NL +\FullLine{Name of Seconder:} +\FullLine{Address:} +\FullLine{\phantom{Address:}} +\FullLine{\phantom{Address:}} +\FullLine{\phantom{Address:}} +I declare that I am a member of \uktug\ and that I second the nomination of the +above-named +person for election to the Committee of \uktug\ for 1995--96. +\NL +\HalfLine{Signature:}\hspace{2em}Date: \hrulefill\NL +%%%end of form for committee members +\end{Article} + diff --git a/usergrps/uktug/baskervi/5_4/aster.bb b/usergrps/uktug/baskervi/5_4/aster.bb new file mode 100644 index 0000000000..43cd9829ea --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/aster.bb @@ -0,0 +1 @@ +%%BoundingBox: 119 163 493 629 diff --git a/usergrps/uktug/baskervi/5_4/aster.pz b/usergrps/uktug/baskervi/5_4/aster.pz Binary files differnew file mode 100644 index 0000000000..e601bf6e02 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/aster.pz diff --git a/usergrps/uktug/baskervi/5_4/bailey.tex b/usergrps/uktug/baskervi/5_4/bailey.tex new file mode 100644 index 0000000000..737e7ab829 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/bailey.tex @@ -0,0 +1,828 @@ +%latex2e file +%%% +%%% An article for Baskerville, intended to be the last of 6 parts +%%% +\title{Maths in \LaTeX: Part~6, Harder arrays} +\author[R.~A.~Bailey]{R.~A.~Bailey\\ +Queen Mary and Westfield College, \\University of London} +%%% + +%% Added by CAR for SPQR, and other small necessary changes made: +%% search for ``amsmath''. + +%%% here are extra environments that I have used in this article. +%%% I hope that they do not conflict with anything of the editor's. +%%% +\newcommand{\writer}[1]{{\sc #1}:} +\newcommand{\book}[1]{{\it #1},} +\newcommand{\publish}[2]{{\rm #1, #2,}} +\newcommand{\byear}[1]{{\rm (#1).}} +\newtheorem{preqn}{Exercise} +\newenvironment{qn}{\preqn\rm}{\endpreqn} +\newcommand{\latexword}[1]{{\tt #1}} +%%% +%%% +%%% editor: I have been as generic as I can, but of course you can't +%%% put \verb inside a \newcommand. I have consistently used + as the +%%% delimiter for \verb, except when I needed the + in Maths! +%%% +\newcommand{\phz}{\phantom{0}} +\newcommand{\RBdfrac}[2]{\displaystyle\frac{#1}{#2}} +\newcommand{\CS}{\mathop{{\rm CS}}\nolimits} +\newcommand{\normof}[1]{{\left\Vert#1\right\Vert}^2} +\newcommand{\R}{\mathbb{R}} +\begin{Article} +\section{Recall} +This is the sixth and final part of a sequence of tutorials on +typesetting Mathematics in \LaTeX. The first five appeared in +issues~4.4, 4.5, 5.1, 5.2 and~5.3 of \BV. The series includes some +things which can be found in \cite{leslie}, but I am working in more +things which, while straightforward and necessary for Mathematical +work, are not in \cite{leslie} or \cite{newleslie}. In this final +tutorial I cover the harder parts of arrays, including aligned +equations. + +In case you missed the previous tutorials, I remind you that I expect +you, the reader, to do some work. Every so often comes a group of +exercises, which you are supposed to do. Use \LaTeX\ to typeset +everything in the exercise except sentences in italics, which are +instructions. If you are not satisfied that you can do the exercise, +then tell me. Either write to me at +\begin{verse} +School of Mathematical Sciences\\ +Queen Mary and Westfield College\\ +Mile End Road\\ +London E1 4NS +\end{verse} +with hard copy of your input and output, +or email me at \mbox{\tt r.a.bailey@qmw.ac.uk} +with a copy of the +smallest possible piece of \LaTeX\ input file that contains your +attempt at the answer. +In either case +I will include a solution in the following issue of \BV: you will remain +anonymous if you wish. + +This tutorial covers things that \LaTeX\ is not really very good at. +You may ask why I have not simply referred you to the packages +\latexword{amsmath}, \latexword{array} and \latexword{delarray}. One +reason is that every package has its price: it may give you the +functionality that you want at the expense of changing something that +you are quite happy with. The other is that you often are not allowed +to include style packages when you submit an article to a journal or +conference proceedings. It is your choice whether to use the inelegant +solutions presented here or to cut out the relevant pieces of code +from various style packages. + +\section{Answers} +\subsection{Boxed subarrays} +In the panel session at the end of the \ukt\ meeting on `The New Maths for +the New \LaTeX' on 7~June, one of the participants asked how to create an array +in which there is a box around a subarray, as in +\[ +\begin{array}{c|cccc|} +\multicolumn{1}{c}{1} & 2 & 3 & 4 & \multicolumn{1}{c}{5}\\ +\cline{2-5} +2 & A & B & C & D\\ +3 & B & A & D & C\\ +4 & C & D & A & B\\ +5 & D & C & B & A\\ +\cline{2-5} +\end{array} +\] +The answer is to use \verb+\cline+ for the horizontal sides of the box and to +put \verb+|+ in the columns specifier to obtain the vertical sides of the box, +overriding this with \verb+\multicolumn{1}+ where necessary. Thus the input +for the preceding array begins +\begin{verbatim} + \begin{array}{c|cccc|} + \multicolumn{1}{c}{1} & 2 & 3 & 4 & + \multicolumn{1}{c}{5}\\ + \cline{2-5} + 2 & A & B & C & D\\ + ... +\end{verbatim} + +\subsection{Angle brackets} +Several people have asked me why I insist that \verb+\langle+ and +\verb+\rangle+ should be used for angle brackets when they prefer the shape of +\verb+<+ and \verb+>+. At a group theory conference in July I saw a good, if +unconscious, demonstration of why \verb+<+ and \verb+>+ should not be used. A +line of displayed Maths on an overhead projector transparency was +\[ +G = <a,b,c> \times <a,c,e>^x +\] +Look at the spacing. \TeX\ knows that $=$ and $<$ are both relations, +so it puts no space between them, but it does put some space between the +relation~$>$ and the binary operator~$\times$. If you put this +equation in the running text, you will find that the line may break between +the~$<$ and the~$a$. If you really prefer the shapes of $<$ and~$>$ to +$\langle$ and~$\rangle$ then you should make yourself macros such as +\begin{verbatim} + \newcommand{\llangle}{\mathopen{<}} + \newcommand{\rrangle}{\mathclose{>}} +\end{verbatim} +\newcommand{\llangle}{\mathopen{<}} +\newcommand{\rrangle}{\mathclose{>}} +Then the display becomes +\[ +G = \llangle a,b,c\rrangle \times \llangle a,c,e\rrangle^x +\] +However, you cannot make these new angle brackets expand by preceding them with +\verb+\left+ and \verb+\right+. + +\addtocounter{section}{9} +\section{Arrays of equations} +\subsection{Don't do it} +Many of us write our lecture notes on the board as a series of equations, more +or less aligned, and are tempted to write in print in the same fashion. Don't. +For one thing, printed material needs the connecting words that you normally +say at the board, such as `and' or `it follows that' or `substituting for +\ldots'. For another, alignment suggests to the reader that the equations are +somehow related, so it should not be used merely because two displayed +equations come one after another with no intervening text: use two separate +lines of displayed Maths instead, using \verb+\[+ and~\verb+\]+. + +\subsection{Parallel definitions} +For two or more parallel or analogous definitions or results, use the +\latexword{eqnarray*} environment. If a typical line is $A=B$ then type that +line as \verb+A & = & B+ and put \verb+\\+ at the end of each line except the +last. Extra space can be added after any \verb+\\+ just as with ordinary +arrays. For example, the parallel definitions of $\cap$ and~$+$ +\begin{eqnarray*} +W \cap X& =& \left\{v\in V:v \in W \mbox{ and } v\in X\right\}\\ +W + X & = & \left\{w+x:w\in W \mbox{ and } x\in X\right\} +\end{eqnarray*} +have input +\begin{verbatim} + \begin{eqnarray*} + W \cap X & =& \left\{v\in V:v \in W + \mbox{ and } v\in X\right\}\\ + W + X & = & \left\{w+x:w\in W + \mbox{ and } x\in X\right\} + \end{eqnarray*} +\end{verbatim} + +\subsection{Chains of equalities} +The \latexword{eqnarray*} environment is also useful for a chain of equalities +or inequalities, such as +\begin{eqnarray*} +\sum_{i=1}^q x_{ij}(M-x_{ij}) & = & M^2 - \sum_{i=1}^q x_{ij}^2\\ + & \leq & M^2 - \frac{M^2}{q}\\ + & = & \theta M^2. +\end{eqnarray*} +Here each line after the first begins with \verb+&+ followed by \verb+=+ or +some other relation, followed by another~\verb+&+. +Any line may conclude with \verb+\qquad\mbox{...}+ to give +a short explanation, just as in a single line of displayed Maths. + +\begin{figure*} +\begin{eqnarray*} +n(Q_3 - Q_1)^4 \mathop{\rm Var} W +& = & +\left[(M-Q_1) \left(\frac{1}{f_M} - \frac{1}{2f_{Q_3}}\right) + + (Q_3 - M) \left(\frac{1}{f_M} - \frac{1}{2f_{Q_1}}\right)\right]^2\\ + & & \mbox{} + \frac{1}{2}\left[\left(\frac{M-Q_1}{f_{Q_3}}\right)^2 + + \left(\frac{Q_3 - M}{f_{Q_1}}\right)^2\right] +\end{eqnarray*} +\caption{An overlong equation} +\label{loong} +\end{figure*} + +\subsection{Overlong displays} +Sometimes what is conceptually a single line of displayed Maths, whether it is +an equation or not, is simply too long to fit on one line. Then you can use +\latexword{eqnarray*}, choosing where to split the line. If you split it at a +binary operator, it is usual to put the binary operator after the split. In +this case you must precede it with \verb+\mbox{}+ so that \TeX\ knows that it +is a binary operator. +The two lines in Figure~\ref{loong} are given by +\begin{verbatim} + ...\right]^2\\ & & \mbox{} + \frac{1}{2} ... +\end{verbatim} + +To split an even longer line, you may want the second and succeeding lines to +come partly underneath the first line. You can do this by enclosing the whole +of the first line in \verb+\lefteqn{ }+, thus fooling \TeX\ into thinking that +it has no width. Starting subsequent lines with \verb+& &+ gives that necessary +bit of indentation. +In this example +\begin{eqnarray*} +\lefteqn{\sum\left\{\sum\left\{f(B) : B \cap A = \emptyset\right\} : A +\supseteq J\right\} = }\\ + & & \sum\left\{\sum\left\{f(B) : A \supseteq J,\ A \cap B = \emptyset\right\} +: B \cap J = \emptyset \right\} +\end{eqnarray*} +the lines begin +\begin{verbatim} + \lefteqn{\sum ... + & & \sum ... +\end{verbatim} + +\subsection{Numbered aligned equations} +The environment \latexword{eqnarray} works just like \latexword{eqnarray*} +except that each line is numbered, in the same sequence as +\latexword{equation}s. If you want any line to be not numbered, just put +\verb+\nonumber+ before the end of the line. If you want to refer somewhere +else to the number, put a \verb+\label+ on the line in the usual way. +Thus +\begin{eqnarray} +\bar{F}(x_1,x_2) & = & \int_0^\infty \exp(-\theta a_1x_1^c - \theta a_2x_2^c) +\frac{\theta^{b-1}\lambda^b {\rm e}^{-\theta\lambda}}{\Gamma(b)} {\rm +d}\theta \nonumber \\ + & = & \frac{\lambda^b}{(\lambda + a_1x_1^c +a_2x_2^c)^b} +\end{eqnarray} +is created with +\begin{verbatim} + \begin{eqnarray} + \bar{F}(x_1,x_2) & = & \int_0^\infty ... + {\rm d}\theta \nonumber \\ + & = & \frac{ ... + \end{eqnarray} +\end{verbatim} + +\subsection{What is \latexword{eqnarray}?} +The two environments \latexword{eqnarray} and \latexword{eqnarray*} differ only +in the numbering of lines. Each creates a piece of displayed Maths containing a +special sort of array. The array has only three columns. The first column is in +\verb+\displaystyle+ and is right-aligned. The second is in \verb+\textstyle+ +and is centred. The third is in \verb+\displaystyle+ and is left-aligned. The +space between columns is controlled by \verb+\arraycolsep+ just as for ordinary +arrays. The space between rows is (unless you put something after the +\verb+\\+) what you would get in an ordinary array by putting \verb+\\[\jot]+. +% Corrected by CAR: // to \\ twice here, once below. + +\subsection{Simultaneous equations} +Simultaneous equations are often written with a vertical alignment for each +variable and for the binary operators in between them, as well as for the +equals sign, as the following example shows. +\[ +\setlength{\arraycolsep}{0pt} +\begin{array}{*{4}{rc}r@{\mbox{}={}}r} +x_1 &{} -{} & x_2 & {}+{} & x_3 & {}-{} &x_4 &{} +{}& x_5 & 1\\[\jot] +2x_1 & - & x_2 & +& 3x_3 && & + &4x_5 & 2\\[\jot] +3x_1 & - &2 x_2 & + & 2x_3 & + &x_4 & +& x_5 & 1\\[\jot] +x_1 & & & + & x_3 & + &2x_4 & +& x_5 & 0\\[\jot] +\end{array} +\] +This is too many alignments for an \latexword{eqnarray*}, so an +\latexword{array} has been used in displayed Maths, with every line ending with +\verb+\\[\jot]+. With a column for each variable and one for each binary +operator, almost all pairs of adjacent columns should have the separation that +\TeX\ normally gives between an ordinary Maths symbol and a binary operator, +which is \verb+\medmuskip+. Unfortunately, you cannot set \verb+\arraycolsep+ +to be equal to \verb+0.5\medmuskip+: \TeX\ will complain. So I have set +\verb+\arraycolsep+ to zero: the command +\begin{verbatim} + \setlength{\arraycolsep}{0pt} +\end{verbatim} +has been placed before the array but within the displayed Maths, to limit its +scope. Then the columns specifier +\verb+{*{4}{rc}r@{{}={}}r}+ does the trick for the equals sign, which comes in +every column: for the binary operators I have put \verb!{}+{}! or \verb+{}-{}+ +as least once in each column. + +There are two other possibilities that could be used here. The +\latexword{array} package allows you to put items in the columns specifier that +will be incorporated in array entries before the boxes are made. So you could +put the \verb+{}+ either side of each binary operator by putting it in the +columns specifier once and for all. See \cite[Section~5.3]{companion}. +That would be useful if the binary +operators in the array had differing widths. The second is to effectively set +\verb+\arraycolsep+ equal to \verb+0.5\medmuskip+. Now, \verb+\medmuskip+ is +4\,mu plus some stretchability, and 1\,mu is $1/18$ of an em in the current +font. +So you can do +\begin{verbatim} + \setlength{\arraycolsep}{0.11em} +\end{verbatim} +and omit all the \verb+{}+, +so long as the current font does not change (by too much) between the issuing +of that command and the setting of the entries in the array. + +\subsection{Which to use: \latexword{eqnarray} or \latexword{array}?} +Regular readers will know that I am a big fan of \LaTeX. All the same, I think +that the design of \latexword{eqnarray} is fundamentally flawed. It is not +simply a method of aligning lines of displayed Maths, chiefly because it uses +\verb+\arraycolsep+ to insert larger spaces than normal, but also because it +changes between \verb+\displaystyle+ and \verb+\textstyle+ and because it is +limited to three columns. For these last two reasons, it is also not a method +of achieving a displayed array all of whose entries are in +\verb+\displaystyle+ and whose rows are spread out, +which would have been a useful environment. + +So which should you use, \latexword{eqnarray} or \latexword{eqnarray*} or +\latexword{array}? Each of them needs some work to give good results. + +If you need a set of aligned +equations carrying a single number then I recommend using +\latexword{array} inside an \latexword{equation}. You will have to put in +\verb+\displaystyle+ and \verb+\jot+ where necessary. If one or more lines +must be individually numbered then there is nothing for it but to use +\latexword{eqnarray}. + +If an unnumbered set of aligned equations has only two alignment points you may +be able to use \latexword{eqnarray*} if you are careful about the inter-column +spacing. Thus if you put an \verb+&+ on only one side of an equals sign you +must put a quad space on the other side. In the following display each line has +the form +\begin{verbatim} + ... \quad = & ... & \qquad ... +\end{verbatim} +\begin{eqnarray*} +g(x) \quad = & {\rm e}^{x} &\qquad\mbox{for $x\in\R$,}\\ +h(y) \quad= & \ln y &\qquad\mbox{for $y > 0$,}\\ +h'(y) \quad = & \frac{1}{y} &\qquad\mbox{for $y > 0$.} +\end{eqnarray*} + +For a set with more alignment points, such as +\[ +\begin{array}{r@{(1)={}}rr@{(2)={}}rr@{(3)={}}rr@{(4)={}}r} +f & 1 & f & 0 & f & -2 & f & 3\\[\jot] +g & 5 & g & 7.5 & g & 6 & g & -4\\ +\end{array} +\] +or simultaneous equations, use \latexword{array} and be cunning with the +columns specifier. + +For parallel results, or for chains of (in)equalities, it would be good to +have a form of \latexword{eqnarray} and \latexword{eqnarray*} in which the +space on either side of the equals sign is what \TeX\ normally puts between a +relation and an ordinary Maths symbol, which is \verb+\thickmuskip+. +Now, \verb+\thickmuskip+ is 5\,mu plus some stretchability, so we can use the +same fudge that we used for simultaneous equations. +It is no +good changing \verb+\arraycolsep+ globally, because that would affect other +\latexword{array}s. So you could make an environment to use in place of +\latexword{eqnarray} such as the following. +\begin{verbatim} + \newenvironment{bettereqnarray}% + {\setlength{\arraycolsep}{0.14em}% + \eqnarray}% + {\endeqnarray} +\end{verbatim} +\newenvironment{bettereqnarray}% +{\setlength{\arraycolsep}{0.14em}\eqnarray}% +{\endeqnarray} + +Compare the following display, made with \latexword{bettereqnarray} and +\verb+\nonumber+, with the previous form made with \latexword{eqnarray*}. +Now that the spaces around the aligned~\verb+=+ are correct, a second~\verb+=+ +can be placed on the same line. +\begin{bettereqnarray} +\sum_{i=1}^q x_{ij}(M-x_{ij}) & = & M^2 - \sum_{i=1}^q x_{ij}^2\nonumber\\ + & \leq & M^2 - \frac{M^2}{q} + = \theta M^2 \nonumber +\end{bettereqnarray} + +If you are uneasy about that fudge, set \verb+\arraycolsep+ to zero. +Then put \verb+& {}={} &+ instead of \verb+& = &+ in the centre of the array. + +There is a disadvantage common to both of these \latexword{bettereqnarray} +environments: if you have any ordinary \latexword{array} within them then +the value +of \verb+\arraycolsep+ will almost certainly be wrong and you will have to +reset it locally. + +There are several better environments for aligned equations in the +\latexword{amsmath} package, which is described in \cite{ams}. However, it does +not seem to be possible to obtain these environments without the rest of the +package, which you may not want: for example, it disables \verb+\over+. + +\section{Exercises} +\addtocounter{preqn}{71} +\begin{qn} +M\"obius inversion gives: +\begin{eqnarray} +B_\gamma & = & \sum_{\alpha\in\Gamma} z(\gamma,\alpha) S_\alpha,\\ +S_\alpha & = & \sum_{\gamma\in\Gamma} m(\alpha,\gamma) B_\gamma. +\label{arrayref} +\end{eqnarray} +\end{qn} + +\begin{qn} +{\it Get the number cited here from the question above, by cross-reference.} + +Now\begin{eqnarray*} +L_\alpha & = & X'S_\alpha X\\ + & = & \sum_{\gamma\in\Gamma} m(\alpha,\gamma)X'B_\gamma X \qquad \mbox{by +Equation~(\ref{arrayref})}\\ + & = & \sum_{\gamma\in\Gamma} \frac{m(\alpha,\gamma)}{k_\gamma} C_\gamma. +\end{eqnarray*} +\end{qn} + +\begin{qn} +\begin{eqnarray} +\sum a_j b_k & = & a_1b_1 + a_1b_2 + a_1b_3 \nonumber\\ + & & \mbox{} + a_2b_1 + a_2b_2 + a_2b_3 \nonumber\\ + & & \mbox{} + a_3b_1 + a_2b_2 + a_3b_3. +\end{eqnarray} +\end{qn} + +\begin{qn} +\begin{equation} +\begin{array}{rcl} +\displaystyle +\sum_{1\leq j,k\leq 3} a_j b_k +&=& +\begin{array}[t]{l} + a_1b_1 + a_1b_2 + a_1b_3 \\[\jot] + \mbox{} + a_2b_1 + a_2b_2 + a_2b_3 \\[\jot] + \mbox{} + a_3b_1 + a_2b_2 + a_3b_3. +\end{array} +\end{array} +\end{equation} +\end{qn} + +\begin{qn} +Using the hint, we get +\begin{eqnarray*} +\lefteqn{3(1-z)^2\sum_k +%% Changed for amsmath: +% {1/2\choose k} + \binom{1/2}{k} + \left({\frac{8}{9}z}\right)^k +(1-z)^{2-k} = }\\ + & & 3(1-z)^2 \sum_k +%% Changed for amsmath: +% {1/2\choose k} + \binom{1/2}{k} + \left({\frac{8}{9}}\right)^k +\sum_j +%% Changed for amsmath: +% {k+j-3\choose j} +\binom{k+j-3}{j} +z^{j+k} +\end{eqnarray*} +and now look at the coefficient of $z^{3+l}$. +\end{qn} + +\begin{qn} +Solve the system of equations +\[ +\setlength{\arraycolsep}{0pt} +\begin{array}{rcrcr@{{}={}}l} +2x &{} +{} &y &{}+{}& 5z&4\\[\jot] +3x & - & 2y & + & 2z & 2\\[\jot] +5x & - & 8y & - & 4z & 1. +\end{array} +\] +\end{qn} + +\begin{qn} +The dyad appears as +\begin{equation} +\begin{array}{rcc@{}@{\mbox{}+\mbox{}}c@{\mbox{}+\mbox{}}c@{\mbox{}+\mbox{}}c} +{\bf AB} & = & \multicolumn{1}{c}{}& A_xB_x {\bf ii} & A_xB_y{\bf ij} & +A_xB_z{\bf ik} \\[\jot] + & && A_yB_x{\bf ji} & A_yB_y{\bf jj} & A_yB_z{\bf jk}\\[\jot] + & && A_zB_x{\bf ki} & A_zB_y{\bf kj} &A_zB_z{\bf kk} +\end{array} +\end{equation} +\end{qn} + +\begin{qn} +\[ +\begin{array}{r@{(x)={}}l@{\qquad}r@{{}=(}r@{,}r@{,}r@{,}r@{,}r@{)}l} +f & 1 & f & 1&\phz1&\phz1&1&1\\[\jot] +g & x & g & 1&2&3&4&5\\[\jot] +h & x^2 & h & 1&4&9&\phz16&\phz25&. +\end{array} +\] +\end{qn} + +\section{Hand-crafting alignments} +In this section I show a few tricks for difficult alignments. I show them +because I know that I am not the only Mathematician who needs +to produce these effects. I am not particularly proud of the methods I have +used, because in each case I have had to either measure a length explicitly or +use phantoms: I couldn't find a way of getting the right sizes automatically. +So if any reader can write in with a better way of doing these things, I shall +be delighted. + +\subsection{Horizontal braces in arrays} +When I use an \latexword{array} to show a chain of equalities, I often use an +under- or overbrace to indicate how terms are grouped. Here is an example. + +\newlength{\gnat} +\settowidth{\gnat}{$\bar{y} (1,\ldots, 1)$} +\newlength{\gnu} +\settowidth{\gnu}{$\RBdfrac{\CS(x,y)}{\CS(x,x)} x'$} +\[ +\begin{array}{rcccccc} +y & = & \multicolumn{3}{c}{f} & +& r\\ + & & \multicolumn{3}{c}{ +\overbrace{\hphantom{\bar{y} (1,\ldots, 1)\quad+\quad +\RBdfrac{\CS(x,y)}{\CS(x,x)} +x'}}}\\ + &= & \bar{y} (1,\ldots, 1)&{}+{}&\RBdfrac{\CS(x,y)}{\CS(x,x)} x' +&{}+{} & r\\ + & & \uparrow & & \uparrow & & \uparrow\\ + & & \multicolumn{1}{p{\gnat}}{\centering fit for null model} && + \multicolumn{1}{p{\gnu}}{\centering +extra fit \mbox{for straight} line model} && + \mbox{residual} +\end{array} +\] + +The problem is that the brace needs to span several columns. So the brace needs +to be put in with a \verb+\multicolumn+ command, so it cannot automatically be +set to the correct width. I solve this by using \verb+\hphantom+ to obtain the +width of the spanned columns. Here there is an entry +\begin{verbatim} + \multicolumn{3}{c}{f} +\end{verbatim} +in the first row; and the corresponding entry in the second row is +\begin{verbatim} + \multicolumn{3}{c}{ + \overbrace{\hphantom{\bar{y} (1,\ldots, 1) + \quad+\quad ... x'}}} +\end{verbatim} +I have used the fact that the intercolumn space is one quad. + +An alternative solution is to use the command \verb+\downbracefill+ as the +final argument of the \verb+\multicolumn+ in the second row. However, you have +to be outside Maths mode to use \verb+\downbracefill+, and putting it inside an +\latexword{mbox} is no good because that destroys the expandability. So you +have to set the whole thing in a \latexword{tabular} environment rather than +\latexword{array}, and then enclose every other entry in \verb+$ $+, which is a +pain. There is also an analogous command \verb+\upbracefill+. + +\subsection{Paragraph boxes in arrays} +In the preceding display I have also set some explanatory text in paragraph +boxes whose width is determined by the width of a Mathematical expression in +the same column. For each such column I make a new length and use +\verb+\settowidth+ to make it as wide as the desired Mathematical expression: +see \cite[page~95]{leslie} or \cite[page~101]{newleslie}. Then I make a +\verb+p+ column element of that width. + +For example, in the first column I get the correct width with +\begin{verbatim} + \newlength{\gnat} + \settowidth{\gnat}{$\bar{y} (1,\ldots, 1)$} +\end{verbatim} +and then use it as follows. +\begin{verbatim} + \multicolumn{1}{p{\gnat}}{\centering + fit for null model} +\end{verbatim} + + +\subsection{Top-aligned matrices} + +\newcommand{\topthing}[1]{\begin{array}{@{}c@{}}#1\\\phz\end{array}} +\newcommand{\vecmu}{\mbox{\boldmath$\mu$}} +\newcommand{\vecx}{{\bf x}} +\newcommand{\cov}{\mathop{{\rm Cov}}\nolimits} + +\begin{figure*} +\[ +\topthing{3(\vecx - \vecmu)^{\rm T} \Sigma^{-1} (\vecx - \vecmu) += +(x-1, y+2)} +\left[\begin{array}{rr} +4&1\\1&1 +\end{array} +\right] +\left(\begin{array}{c} +x-1\\y+2 +\end{array} +\right) +\] +\caption{Matrices aligned on their top rows} +\label{topmat} +\end{figure*} + +In the last article I showed Figure~\ref{topmat} as an example of +something that is not easy to do in \LaTeX. To achieve this I have +made a macro \verb+\topthing+ which takes as its single argument any +item that must be aligned with the top rows of the arrays. The biggest +arrays here have two rows, so \verb+\topthing+ produces a two-rowed +array whose second row is empty. If there were bigger arrays here I +would have to have a macro for each smaller size of array. The empty +second row of the array contains a phantom zero: this works because +zero is the standard height, as are all the entries that occur in the +second rows of arrays. I don't know how to fudge this for arbitrary +heights of entries. Finally, I remove the extra space that is usually +put on each side of an array. + +The \verb+\topthing+ macro is defined by +\begin{verbatim} + \newcommand{\topthing}[1]% + {\begin{array}{@{}c@{}} + #1\\\phantom{0} + \end{array}} +\end{verbatim} +Then the equation in Figure~\ref{topmat} is done with +\begin{verbatim} + \topthing{3(... (x-1, y+2)} + \left[\begin{array}{rr} + 4&1\\1&1 + \end{array} + ... +\end{verbatim} + + +Top-aligned matrices can be done very simply if you have access to the package +\latexword{delarray}. Get it. See \cite[Section 5.3.6]{companion}. However, be +warned that \latexword{delarray} inputs the package \latexword{array}, which +makes a small difference to the way that \verb+|+ works in all +\latexword{array}s. + + +\subsection{Bordered matrices} +Using \verb+\left[+ and so on to get the right size of fences around a matrix +works fine for unbordered matrices. But how do you get a bordered matrix such +as the following? +\newlength{\perch} +\newcommand{\fish}[2]{\settowidth{\perch}{$#1$}\makebox[\perch]{$#2$}} +\newcommand{\minone}{\llap{$-$}1} +\begin{equation} +\begin{array}{c@{}c} + & \begin{array}{ccccc} +\emptyset & \{1\} & \{2\} & \{1,2\} & \{1,2,3\}\\ +\end{array}\\ +\begin{array}{c} +\emptyset \\ \{1\} \\ \{2\} \\ \{1,2\} \\ \{1,2,3\} +\end{array} +& +\left[ +\begin{array}{ccccc} +\fish{\emptyset}{1} & \fish{\{1\}}{\minone} & \fish{\{2\}}{\minone} +& \fish{\{1,2\}}{1} & \fish{\{1,2,3\}}{0}\\ +0 & 1 & 0 & \minone & 0\\ +0 & 0 & 1 & \minone & 0\\ +0 & 0 & 0 & 1 & \minone\\ +0 & 0 & 0 & 0 & 1 +\end{array} +\right] +\end{array} +\label{zeta} +\end{equation} + +The command \verb+\bordermatrix+ given by plain \TeX\ will not do, because it +uses parentheses for the fences and does not let you choose how the columns are +aligned. + +The problem is to get the fences of the right size while keeping the alignment +of the two borders with the body of the matrix. My solution is to set the whole +thing as a $2 \times 2$ array with no space between the columns. The top left +entry is empty. The top right entry is a one-rowed array containing the column +labels. The bottom left entry is a one-columned array containing the row +labels. The bottom right entry is the body of the matrix, including the fences. + +If all entries have the same width and height, that's enough. However, if any +column in the body of the matrix has a different width from the corresponding +column in the top border, then the narrower of the two has to be expanded. +Set a new length equal to the wider item and then put the smaller item in a +\latexword{makebox} of that width. + +In the matrix~(\ref{zeta}) it is clear that, in every column, it is the label +that is the widest element. So I made a macro to set the first row of the body +of the matrix to the width of the labels, as follows. +\begin{verbatim} + \newlength{\perch} + \newcommand{\fish}[2]% + {\settowidth{\perch}{$#1$} + \makebox[\perch]{$#2$}} +\end{verbatim} +For example, the first entry in the main body of the matrix is +\begin{verbatim} + \fish{\emptyset}{1} +\end{verbatim} +Note that it suffices to make a single entry in each column of the body as wide +as the column label. + +(By the way, I can never decide whether the minus signs should be taken into +account or not when centering the columns of such a matrix. Here I decided not +to, and so I defined +\begin{verbatim} + \newcommand{\minone}{\llap{$-$}1} +\end{verbatim} +and then used \verb+\minone+ for each $-1$.) + +If the row heights in the body of the matrix do not match those in the array of +row labels, as in the following matrix, they can be adjusted with +\verb+\vphantom+. If \verb+X+ is the tallest item in the row, simply put +\verb+\vphantom{X}+ in a single entry of the corresponding row of the other +array: it will not affect the horizontal spacing. + +\begin{equation} +\begin{array}{c@{}c} + & \begin{array}{c|c} +\multicolumn{1}{c}{1\quad \ldots\quad r} & r+1 \quad\ldots\quad n +\end{array}\\ + \begin{array}{c} + \begin{array}{c} + 1\\\vdots\\ r + \end{array}\\ + \begin{array}{c} + r+1\\\vdots\\ n + \end{array} + \end{array} + & +\left[ +\begin{array}{c|c} +\fish{1\quad \ldots\quad r}{\Sigma_1} + \vphantom{\begin{array}{c} + 1\\\vdots\\r + \end{array}} +& \fish{r+1\quad \ldots\quad n}{0}\\ +\hline + \vphantom{\begin{array}{c} + r+1\\\vdots\\ n + \end{array}} + 0 + & +\Sigma_2 +\end{array} +\right] +\end{array} +\label{showoff} +\end{equation} + +\section{Exercises} +\begin{qn} +\[ +\begin{array}{ccccccc} +\normof{f} & = & e_1^2 u_1\cdot u_1 & + & e_2^2 u_2 \cdot u_2 &+& e_3^2 u_3 +\cdot +u_3\\[\jot] + & & 18 \bar{y}^2 & + & {\tt ss1} & + & {\tt ss2}\\[\jot] + & & & & 104474 & + & 2284\\ + & & & & +\multicolumn{3}{c}{\underbrace{\hphantom{e_2^2 u_2 \cdot u_2\quad+\quad +e_3^2 u_3 \cdot u_3}}_{\textstyle 106758}} +\end{array} +\] +\end{qn} + +\begin{qn} +\begin{bettereqnarray} +\topthing{\cov(U,V)} & +\topthing{=} & +\topthing{(2,1)} +{ +\renewcommand{\arraycolsep}{5pt} + \left[\begin{array}{@{}rr@{}}1 & -1 \\ -1 & 4 + \end{array}\right] + \left(\begin{array}{@{}r@{}}-2 \\ 1\end{array}\right) +} +\nonumber\\ + & +\topthing{=} & +\topthing{(2,1)} + \left(\begin{array}{@{}r@{}}-3 \\6\end{array}\right) + \topthing{{}=0} +\nonumber +\end{bettereqnarray} +\end{qn} + +\begin{qn} +{\it Typeset the matrix~(\ref{showoff}).} +\end{qn} + +\section{Acknowledgements} +While writing these tutorials I have had to expand my own knowledge of how to +typeset Mathematics in \LaTeX\ to cover topics that I had never really bothered +with properly. I should like to thank David Carlisle, Frank Mittelbach and +Chris Rowley for patiently answering my questions, even when they did not +wholly approve of what I was writing. Of course, any remaining mistakes are my +own, as are the personal opinions expressed. + +Thanks also to many of my colleagues, both at Goldsmiths' College and at Queen +Mary and Westfield College, for badgering me to explain how to do these things. +And thanks to those readers who have sent kind messages of appreciation while +the tutorials have been appearing. + +\begin{thebibliography}{9} +\bibitem{ams} +\writer{American Mathematical Society} +\book{\AMS-\LaTeX\ Version~1.2 User's Guide} +\publish{American Mathematical Society}{Providence, Rhode Island} +\byear{1995} + + +\bibitem{companion} +\writer{Goossens,~M., Mittelbach,~F. \& Samarin,~A.} +\book{The \LaTeX\ Companion} +\publish{Addison-Wesley}{Reading, Mass.} +\byear{1994} + +\bibitem{leslie} +\writer{Lamport,~L.} +\book{\LaTeX: A Document Preparation System} +first edition, +\publish{Addison-Wesley}{Reading, Mass.} +\byear{1986} + +\bibitem{newleslie} +\writer{Lamport,~L.} +\book{\LaTeX: A Document Preparation System} +second edition, +\publish{Addison-Wesley}{Reading, Mass.} +\byear{1994} +\end{thebibliography} +\end{Article} + + diff --git a/usergrps/uktug/baskervi/5_4/ballot.tex b/usergrps/uktug/baskervi/5_4/ballot.tex new file mode 100644 index 0000000000..2a18f5d8c5 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/ballot.tex @@ -0,0 +1,170 @@ +\documentclass[11pt,a4paper]{article} + +\pagestyle{empty} + + +\parindent 0pt + + +\newcommand{\uktug}{UK \TeX\ Users Group} +\newcommand{\shortuk}{UK TUG} +\newcommand{\vvv}{\vspace*{0.5in}} + +\newcommand{\daytitle}{Ballot for Chair} +\setlength{\fboxsep}{0pt} +\newcommand{\vote}{\framebox[1cm]{\rule[-0.5cm]{0cm}{1cm}}} +\begin{document} +\vvv + +\begin{center} +\LARGE\bf \uktug\ + +\huge\bf\daytitle + + + +\end{center} + +\vvv + +The following people have been nominated as Chair of \uktug\ for 1995--97. +Please vote for one of them by placing a cross in the box next to the name of +the candidate for whom you wish to vote. + +\vvv + +\begin{center} +\renewcommand{\arraystretch}{3} +\addtolength{\tabcolsep}{\tabcolsep} +\begin{tabular}{ll} +\vote & Robin Fairbairns\\ +\vote & Jonathan Fine +\end{tabular} +\end{center} +\vvv + +Place your completed ballot paper in an envelope. Write `\shortuk\ Chair +Election' on the front of the envelope; write your own name in block capitals on +the back of the envelope. Then put that envelope in a second envelope, which +should be addressed as shown below. This procedure will enable us to check only +current members of \uktug\ vote, and that no member votes more than once, while +maintaining secrecy of the ballot. + +\vvv +Return the completed ballot paper, +to arrive by 6~October 1995, to: +\begin{center} +\begin{tabular}{l} +The Returning Officer, \shortuk\\ +c/o Professor R.~A.~Bailey \\ +School of Mathematical Sciences\\ +Queen Mary and Westfield College\\ +Mile End Road \\ +London E1 4NS +\end{tabular} +\end{center} + +\end{document} +\newpage +\parindent 0pt + +\begin{flushleft} +\bf Return by 31~May 1995 +\end{flushleft} + +\begin{center} +\LARGE\bf \uktug + +\huge\bf\daytitle + +\LARGE\bf\where, \when + +\huge\bf Booking Form + +\end{center} + +I wish to attend the \uktug\ meeting on \when: + +{\renewcommand{\baselinestretch}{1.5}\Huge\normalsize + +\ruled{Name: } +\ruled{Organisation: } +\ruled{Address: } +\ruled{} +\ruled{} +\partruled{Telephone: }{Email: } +\ruled{Please specify any special dietary requirements: } +*I +enclose a cheque$^{\ref{payment},\ref{cheques},\ref{no-vat}}$ + for \pounds \makebox[3em]{\hrulefill} made payable to +the \uktug\ or \shortuk.\newline +*I enclose Purchase Order$^{\ref{purchase-order}}$ + number \makebox[6em]{\hrulefill}. +\hfill {\footnotesize *Delete one}\newline +\partruled{Signed: }{Date: } +%\HalfLine{Signed: }\hspace{2em}Date: \hrulefill + +%\begin{flushright} +%\begin{tabular*}{0.75\textwidth}{@{\extracolsep{\fill}}llp{0.25\textwidth}} +% &Payment enclosed$^{\ref{payment},\ref{cheques},\ref{no-vat}}$ &\\ +%or&purchase order number$^{\ref{purchase-order}}$ &\\ \cline{3-3} +% &\multicolumn{1}{r}{Signed:}&\\ \cline{3-3} +% &\multicolumn{1}{r}{Date:} &\\ \cline{3-3} +%\end{tabular*} +%\end{flushright} +} + + +\section{Notes} +\begin{enumerate} +\item +The registration fee for the meeting, +including refreshments and lunch, +is as follows. +\begin{center} +\begin{tabular}{l|*{4}{r|r||}} + \multicolumn{5}{c}{} & \multicolumn{4}{c}{Purchase order}\\ + \multicolumn{1}{c}{} & \multicolumn{2}{c}{Discount} & +\multicolumn{2}{c}{Standard} & \multicolumn{2}{c}{Discount} & +\multicolumn{2}{c}{Standard} \\ +\cline{2-9} +Member of \uktug& \pounds20 & & \pounds25 & & \pounds30 & & \pounds35&\\ +\cline{2-9} +Non-member & \pounds30 & &\pounds35 && \pounds40& & \pounds45 &\\ +\cline{2-9} +\end{tabular} +\end{center} +Please tick ONE box. %to show how much money you are sending. +\label{payment} +\item Up to 20~people from each institutional member of \uktug\ may attend the +meeting at the individual member's rate. If you are such a person, please tick +this box.\unskip\nobreak\hfill\makebox[0pt][l]{\fbox{\phantom{$\sum$}}} +\item Sterling cheques should be made payable to +`UK \TeX\ Users Group'.\label{cheques} +\item A Purchase Order, with an order number, is an +acceptable alternative method of payment, but +will attract a \pounds10 surcharge on the amount due.\label{purchase-order} +\item The discount of \pounds 5 applies to bookings received by 25~May 1995. +\item Return the completed form to arrive by 31~May 1995. +We cannot guarantee registration after that date. If you are unable to +return the form by then, but are definitely coming, contact +the local organizer by email, telephone, fax or mail to secure a place. +%\item If your requirements are not met by the options offered, +%contact the local organizer. +\item Note that VAT is not chargeable.\label{no-vat} +\item +Return the completed booking form, together +with your payment, to arrive {\bf by} 31~May 1995, to +the local organizer: +\begin{center} +\begin{tabular}{ll@{ }l} +R.~A.~Bailey &&\\ +School of Mathematical Sciences&tel:& 0171 975 5517\\ +Queen Mary and Westfield College&fax:& 0181 981 9587\\ +Mile End Road &email &\tt r.a.bailey@qmw.ac.uk\\ +London E1 4NS +\end{tabular} +\end{center} + +\end{enumerate} +\end{document} diff --git a/usergrps/uktug/baskervi/5_4/ballot2.tex b/usergrps/uktug/baskervi/5_4/ballot2.tex new file mode 100644 index 0000000000..bdf5cb0a6d --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/ballot2.tex @@ -0,0 +1,199 @@ +Return-Path: <R.A.Bailey@qmw.ac.uk> +Delivery-Date: +Received: from epsilon.qmw.ac.uk (no rfc931) by swan.cl.cam.ac.uk + with SMTP (PP-6.5) to nrs hosts; Thu, 27 Jul 1995 10:30:49 +0100 +Received: from laplace.maths.qmw.ac.uk by epsilon.qmw.ac.uk with SMTP-DNS (PP) + id <15462-0@epsilon.qmw.ac.uk>; Thu, 27 Jul 1995 10:30:10 +0100 +Received: from euclid.maths.qmw.ac.uk by laplace.maths.qmw.ac.uk; + Thu, 27 Jul 95 10:29:04 BST +From: R A Bailey <R.A.Bailey@qmw.ac.uk> +Message-Id: <10776.9507270932@euclid.maths.qmw.ac.uk> +Subject: ballot for BV 5.4 +To: baskerville@tex.ac.uk +Date: Thu, 27 Jul 1995 10:32:15 +0100 (BST) +X-Mailer: ELM [version 2.4 PL24] +Content-Type: text +Content-Length: 5240 + +\documentclass[11pt,a4paper]{article} + +\pagestyle{empty} + + +\parindent 0pt + + +\newcommand{\uktug}{UK \TeX\ Users Group} +\newcommand{\shortuk}{UK TUG} +\newcommand{\vvv}{\vspace*{0.5in}} + +\newcommand{\daytitle}{Ballot for Chair} +\setlength{\fboxsep}{0pt} +\newcommand{\vote}{\framebox[1cm]{\rule[-0.5cm]{0cm}{1cm}}} +\begin{document} +\vvv + +\begin{center} +\LARGE\bf \uktug\ + +\huge\bf\daytitle + + + +\end{center} + +\vvv + +The following people have been nominated as Chair of \uktug\ for 1995--97. +Please vote for one of them by placing a cross in the box next to the name of +the candidate for whom you wish to vote. + +\vvv + +\begin{center} +\renewcommand{\arraystretch}{3} +\addtolength{\tabcolsep}{\tabcolsep} +\begin{tabular}{ll} +\vote & Robin Fairbairns\\ +\vote & Jonathan Fine +\end{tabular} +\end{center} +\vvv + +Place your completed ballot paper in an envelope. Write `\shortuk\ Chair +Election' on the front of the envelope; write your own name in block capitals on +the back of the envelope. Then put that envelope in a second envelope, which +should be addressed as shown below. This procedure will enable us to check only +current members of \uktug\ vote, and that no member votes more than once, while +maintaining secrecy of the ballot. + +\vvv +Return the completed ballot paper, +to arrive by 6~October 1995, to: +\begin{center} +\begin{tabular}{l} +The Returning Officer, \shortuk\\ +c/o Professor R.~A.~Bailey \\ +School of Mathematical Sciences\\ +Queen Mary and Westfield College\\ +Mile End Road \\ +London E1 4NS +\end{tabular} +\end{center} + +\end{document} +\newpage +\parindent 0pt + +\begin{flushleft} +\bf Return by 31~May 1995 +\end{flushleft} + +\begin{center} +\LARGE\bf \uktug + +\huge\bf\daytitle + +\LARGE\bf\where, \when + +\huge\bf Booking Form + +\end{center} + +I wish to attend the \uktug\ meeting on \when: + +{\renewcommand{\baselinestretch}{1.5}\Huge\normalsize + +\ruled{Name: } +\ruled{Organisation: } +\ruled{Address: } +\ruled{} +\ruled{} +\partruled{Telephone: }{Email: } +\ruled{Please specify any special dietary requirements: } +*I +enclose a cheque$^{\ref{payment},\ref{cheques},\ref{no-vat}}$ + for \pounds \makebox[3em]{\hrulefill} made payable to +the \uktug\ or \shortuk.\newline +*I enclose Purchase Order$^{\ref{purchase-order}}$ + number \makebox[6em]{\hrulefill}. +\hfill {\footnotesize *Delete one}\newline +\partruled{Signed: }{Date: } +%\HalfLine{Signed: }\hspace{2em}Date: \hrulefill + +%\begin{flushright} +%\begin{tabular*}{0.75\textwidth}{@{\extracolsep{\fill}}llp{0.25\textwidth}} +% &Payment enclosed$^{\ref{payment},\ref{cheques},\ref{no-vat}}$ &\\ +%or&purchase order number$^{\ref{purchase-order}}$ &\\ \cline{3-3} +% &\multicolumn{1}{r}{Signed:}&\\ \cline{3-3} +% &\multicolumn{1}{r}{Date:} &\\ \cline{3-3} +%\end{tabular*} +%\end{flushright} +} + + +\section{Notes} +\begin{enumerate} +\item +The registration fee for the meeting, +including refreshments and lunch, +is as follows. +\begin{center} +\begin{tabular}{l|*{4}{r|r||}} + \multicolumn{5}{c}{} & \multicolumn{4}{c}{Purchase order}\\ + \multicolumn{1}{c}{} & \multicolumn{2}{c}{Discount} & +\multicolumn{2}{c}{Standard} & \multicolumn{2}{c}{Discount} & +\multicolumn{2}{c}{Standard} \\ +\cline{2-9} +Member of \uktug& \pounds20 & & \pounds25 & & \pounds30 & & \pounds35&\\ +\cline{2-9} +Non-member & \pounds30 & &\pounds35 && \pounds40& & \pounds45 &\\ +\cline{2-9} +\end{tabular} +\end{center} +Please tick ONE box. %to show how much money you are sending. +\label{payment} +\item Up to 20~people from each institutional member of \uktug\ may attend the +meeting at the individual member's rate. If you are such a person, please tick +this box.\unskip\nobreak\hfill\makebox[0pt][l]{\fbox{\phantom{$\sum$}}} +\item Sterling cheques should be made payable to +`UK \TeX\ Users Group'.\label{cheques} +\item A Purchase Order, with an order number, is an +acceptable alternative method of payment, but +will attract a \pounds10 surcharge on the amount due.\label{purchase-order} +\item The discount of \pounds 5 applies to bookings received by 25~May 1995. +\item Return the completed form to arrive by 31~May 1995. +We cannot guarantee registration after that date. If you are unable to +return the form by then, but are definitely coming, contact +the local organizer by email, telephone, fax or mail to secure a place. +%\item If your requirements are not met by the options offered, +%contact the local organizer. +\item Note that VAT is not chargeable.\label{no-vat} +\item +Return the completed booking form, together +with your payment, to arrive {\bf by} 31~May 1995, to +the local organizer: +\begin{center} +\begin{tabular}{ll@{ }l} +R.~A.~Bailey &&\\ +School of Mathematical Sciences&tel:& 0171 975 5517\\ +Queen Mary and Westfield College&fax:& 0181 981 9587\\ +Mile End Road &email &\tt r.a.bailey@qmw.ac.uk\\ +London E1 4NS +\end{tabular} +\end{center} + +\end{enumerate} +\end{document} + +malcolm clark tel: (+44) 01203 523365 +computing services fax: (+44) 01203 523267 +university of warwick url: http://www.warwick.ac.uk/~cudax/egotrip.html +coventry, cv4 7al, uk email: m.clark@warwick.ac.uk + golden rule: whoever has the gold, rules + + +try these two: +i think they still need a bit of adjustment, +but see if you think they summarize the information. + diff --git a/usergrps/uktug/baskervi/5_4/bask5_4.rep b/usergrps/uktug/baskervi/5_4/bask5_4.rep new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/bask5_4.rep diff --git a/usergrps/uktug/baskervi/5_4/bask5_4.tex b/usergrps/uktug/baskervi/5_4/bask5_4.tex new file mode 100644 index 0000000000..2b8a15bc94 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/bask5_4.tex @@ -0,0 +1,102 @@ +\errorcontextlines=10 +\documentclass[]{baskrep} + +\newcommand{\boldaster}{% + \bf A\kern -.1667em\lower .5ex\hbox {S}% +\kern -.175em{T}\kern -.1667em\lower .5ex\hbox {E}\kern -.175em R} +\newcommand{\aster} +{A\kern -.1667em\lower .5ex\hbox {S}% +\kern -.175em{T}\kern -.1667em\lower .5ex\hbox {E}\kern -.175em R} +\newlength\asterlength +\newcommand{\asterphoto}{% + \includegraphics*[width=\asterlength]{aster}} +\newcommand{\asterlogo}{%Uses \asterlength + \settowidth\asterlength{\boldaster} + \setbox0=\hbox{\asterphoto} + \mbox{\asterphoto\hspace{-\asterlength}\raise\dp0\hbox{\boldaster}} + } + +\newcommand{\etex}{$\varepsilon$-\TeX} +\usepackage{version} +\excludeversion{notBV} +\usepackage{amsmath} +\usepackage{hhparmrk} % for presentation +\usepackage{hhcount} +\usepackage{epic,curves} +\usepackage{verbatim} % for verbatim displaying of examples +\usepackage{xspace} % for ease of typing +\usepackage{hhmuf,hhflxbox} % used in examples +\usepackage{amssymb} % used in examples +% The following are document specific macros defined for ease of typing: + +\makeatletter + +% The following has been copied from my personal tools style file hhutils.sty +% (NB: This is _not_ the same file as the public style file hhutils0.sty!) + +\showboxdepth=10 % For ease of debugging. +\showboxbreadth=100 % For ease of debugging. +\def\0#1.{\oldstylenums{#1}} % For ease of typing. +\def\packagename#1{{\sffamily\upshape #1}} % For consistent displaying of + % package names. To be redefined + % by the editor if desired. +\chardef\@ttbs="5C % This the only way I could figure +\def\macroname#1{{\ttfamily\upshape\@ttbs#1}} % out to get the right backslashes + % when displaying macro names + % (math \backspace is too thin). +\def\envirname#1{{\ttfamily\upshape #1}} % For consistent etc. +\def\scheiding{\par % Because I cannot help to show my + % `stamp' in and out of season. + % Remove the stamps it you cannot + % stand them. + \nobreak\addvspace{26pt plus 6pt minus 6pt}% + \nobreak\centerline{{\unitlength1pt\begin{picture}(0,0) + \thicklines + \put(-10,2.5){\line(1,-1){10}}\put(-10,2.5){\line(1,1){10}} + \put(10,2.5){\line(-1,-1){10}}\put(10,2.5){\line(-1,1){10}} + \put(-5,7.5){\line(0,-1){10}}\put(5,7.5){\line(0,-1){10}} + \put(-5,0){\line(2,1){10}}% + \qbezier(-31.8,-2.5)(-12.6,12.2)(0,12.5) + \qbezier(0,12.5)(14.2,12.8)(20.9,-2.5) + \qbezier(-31.8,-2.5)(-16.5,15.8)(0,16.1) + \qbezier(0,16.1)(16,16.4)(20.9,-2.5) + \end{picture}}}% + \addvspace{18pt plus 6pt minus 6pt}} +\def\hhparmrk{\packagename{hhparmrk}\xspace} +\def\hhflxbox{\packagename{hhflxbox}\xspace} +\def\hhunits{\packagename{hhunits}\xspace} +\def\hhutils0{\packagename{hhutils0}\xspace} +\def\hhqueue{\packagename{hhqueue}\xspace} +\def\hhmuf{\packagename{hhmuf}\xspace} +\def\hhfLxbox{\packagename{hhf\hbox{}lxbox}\xspace} +\def\hhcount{\packagename{hhcount}\xspace} + +\makeatother +\BASKvol{5} +\BASKno{4} +\def\thisyear{1995} +\def\thismonth{August} +\begin{document} +\vspace*{-1cm} +\begin{multicols}{2}[\makeBSKtitle] +\begin{raggedright} +\tableofcontents +\end{raggedright} +\input editor +\end{multicols} +\input raman +\Dings +\input hhstyles +\Dings +\input bailey +\Dings +\input rowley +\Dings +\input goossens +\Dings +\input glean +%\newpage +%\setcounter{tocdepth}{-2} +%\pagestyle{empty}\advance\textwidth by -1.5in +%\input agm +\end{document} diff --git a/usergrps/uktug/baskervi/5_4/bask5_4.uni b/usergrps/uktug/baskervi/5_4/bask5_4.uni new file mode 100644 index 0000000000..aeaa4998a0 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/bask5_4.uni @@ -0,0 +1,2 @@ +\relax +\h@resetunit pagenr:{6.30554pt} diff --git a/usergrps/uktug/baskervi/5_4/baskerv.cls b/usergrps/uktug/baskervi/5_4/baskerv.cls new file mode 100644 index 0000000000..4d2c4971e4 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/baskerv.cls @@ -0,0 +1,795 @@ +% Baskerville.cls: +% Adrian Clark +% Sue Brooks +% Sebastan Rahtz +% +% based on the original LaTeX ARTICLE DOCUMENT STYLE +% +% for LaTeX2e +% +\def\filedate{1995/07/30} +\def\fileversion{3.11} +% 29.5.94 added ISSN +% 2.6.94 corrected \ukt\ macro +% 7.6.94 centered captions +% 15.8.94 changed editor names etc +% 2.11.94 use Alan Jeffrey's code for paths, emails, URLs etc +% from faq.sty +% put PA address in mast head +% Journals use two-sided printing. +% 1.12.94 cleaned again for FAQ issue. +% 6.12.94 more little fixes for FAQ issue +% 14.3.95 parameterized date +% 12.6.95 removed JF +% 8.95 worked on to make HH run. color and array need to go back +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{baskerv}[\filedate, Baskerville newsletter class \fileversion] +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions +\LoadClass{article} +\RequirePackage[noisy]{textfit} +\RequirePackage{pifont} +\RequirePackage{latexsym} +%\RequirePackage{calc} +\RequirePackage{ifthen} +\RequirePackage{longtable} +\RequirePackage{texnames} +\RequirePackage{shortvrb} +\let\FAQverbFamily\ttfamily +\DeclareRobustCommand{\FAQverb}[2]{{% + \ifvmode\leavevmode\fi + \lefthyphenmin=256\setlanguage\language + \FAQverbFamily\hyphenchar\the\font`#1\relax + \def\@tempa{#2}% + \expandafter\@faq@strip\meaning\@tempa\@faq@strip + \hyphenchar\the\font\m@ne +}\setlanguage\language} +\def\@faq@strip#1->#2\@faq@strip{#2} +% +% Document markup: +% +\makeatother % because @ is a delimiter here, it had better have the + % same catcode as it will when the macro's invoked +\def\Email|#1@#2|{\FAQverb\-{#1@}\penalty10\FAQverb\.{#2}} % email +\makeatletter +\def\FTP|#1|{\FAQverb\.{#1}} % FTP site +\def\File|#1|{\FAQverb\/{#1}} % file name +\def\CTAN{\FAQverb\/} % CTAN path +\def\Newsgroup|#1|{\FAQverb\.{#1}} % newsgroup +\def\URL|#1://#2/#3|{\FAQverb\.{#1://#2/}\penalty10\FAQverb\/{#3}} +\def\path|#1|{\FAQverb\/{#1}} % generic path +\renewcommand{\rmdefault}{mbvx} +\renewcommand{\sfdefault}{cmss} +\renewcommand{\ttdefault}{cmtt} +\fontfamily{mbv}\selectfont +\DeclareFontShape{T1}{mbv}{m}{sl}{<->ssub * mbv/m/it}{} +\RequirePackage{t1enc} +%\RequirePackage{array} +\RequirePackage{shortvrb} +\RequirePackage[dvips]{epsfig} +%\RequirePackage[dvips]{color} +\RequirePackage{multicol} +\RequirePackage{mflogo} +%\RequirePackage{footcols} +\newcommand\bs{{\ttfamily\upshape\char'134}} +%\def\arraybackslash{\let\\=\@arraycr} +%\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}} +%\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} +\lineskip 1\p@ +\normallineskip 1\p@ +\def\baselinestretch{1} +\renewcommand\normalsize{% + \@setfontsize\normalsize\@xpt\@xiipt + \abovedisplayskip 8\p@ \@plus1\p@ \@minus1\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 4\p@ \@plus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\let\@normalsize\normalsize +\normalsize +\renewcommand\small{% + \@setfontsize\small\@ixpt{10.5}% + \abovedisplayskip 4\p@ \@plus1\p@ \@minus1\p@ + \abovedisplayshortskip 4\p@ \@plus1\p@ + \belowdisplayshortskip \abovedisplayshortskip + \def\@listi{\leftmargin\leftmargini + \topsep 2\p@ \@plus1\p@ \@minus1\p@ + \parsep \z@ + \itemsep 2\p@}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\footnotesize{% + \@setfontsize\footnotesize\@viiipt{9}% + \abovedisplayskip 4\p@ \@plus1\p@ \@minus1\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 1\p@ \@plus1\p@ \@minus1\p@ + \parsep \z@ + \itemsep 2\p@}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt} +\renewcommand\tiny{\@setfontsize\tiny\@vpt\@vipt} +\renewcommand\large{\@setfontsize\large\@xipt{12}} +\renewcommand\Large{\@setfontsize\Large\@xiipt{14}} +\renewcommand\LARGE{\@setfontsize\LARGE\@xivpt{17}} +\renewcommand\huge{\@setfontsize\huge\@xviipt{20}} +\renewcommand\Huge{\@setfontsize\Huge\@xxpt{30}} +\normalsize +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} + +% **************************************** +% * PAGE LAYOUT * +% **************************************** +% +% SIDE MARGINS: +\oddsidemargin -2.5pc \evensidemargin -2.5pc +\marginparwidth 4pc % don't use marginal notes... +\marginparsep 0.5pc % ...in the UK TUG newsletter + +% VERTICAL SPACING: +\topmargin -3pc +\headheight 12\p@ +\headsep 15\p@ +\topskip 10\p@ +\footskip 15\p@ + +% DIMENSION OF TEXT: + +\textheight 250mm % height of text on a page (A4 paper) +\textwidth 180mm % total width of a page +\columnseprule 0.5\p@ % width of line in the inter-column gutter +\columnsep 10mm % space between columns +\tolerance 9999 % make those columns justify + +% FOOTNOTES: +\footnotesep 6\p@ +\skip\footins 19.5\p@ plus 12\p@ \@minus 1\p@ + +% FLOATS: +\floatsep 12\p@ plus 5.5\p@ \@minus 1\p@ +\textfloatsep 15\p@ plus 4.5\p@ \@minus 3\p@ +\intextsep 12\p@ plus 5.5\p@ \@minus 2\p@ +\dblfloatsep 12\p@ plus 5.5\p@ \@minus 2\p@ +\dbltextfloatsep 15\p@ plus 4.5\p@ \@minus 3\p@ +\@fptop 0\p@ plus 0fil +\@fpsep 12\p@ plus 0fil +\@fpbot 0\p@ plus 3fil +\@dblfptop 0\p@ plus 0fil +\@dblfpsep 12\p@ plus 0fil +\@dblfpbot 0\p@ plus 3fil +\marginparpush 5\p@ + +% **************************************** +% * PARAGRAPHING * +% **************************************** +% +\parindent 12\p@ +\parskip \z@ plus .1\p@ +\partopsep 0\p@ plus 1\p@ +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\clubpenalty=0 +\widowpenalty=10000 + +% **************************************** +% * SKIPS * +% **************************************** +% +\newskip\@indentskip +\newskip\smallindent +\newskip\@footindent +\newskip\@leftskip +\@indentskip=1.25pc +\smallindent=\parindent +\@footindent=\smallindent +\@leftskip=\z@ + + +% **************************************** +% * SECTIONS * +% **************************************** +% +\def\Section{\@startsection{newarticle}{0}{\z@} + {-24\p@ \@plus -12\p@ \@minus -.1\p@} + {12\p@ \@plus 1\p@} + {\raggedright\Large\bfseries}} +\def\SSection{\@startsection{newarticle}{0}{\z@} + {-24\p@ \@plus -12\p@ \@minus -.1\p@} + {12\p@ \@plus 1\p@} + {\raggedright\Large\bfseries}[\@title]} +\def\section{%\typeout{** section!}% +\@startsection {section}{1}{\z@} + {-12\p@ \@plus -6\p@ \@minus -.1\p@} + {6\p@} + {\raggedright\large\bfseries}} +\def\subsection{\@startsection{subsection}{2}{\z@} + {-4\p@ \@plus -2\p@ \@minus -.1\p@} + {0.1\p@ \@plus 2\p@} + {\raggedright\normalsize\itshape}} +\def\subsubsection{\@startsection{subsubsection}{3}{\z@} + {-6\p@ \@plus -3\p@ \@minus -1\p@} + {0.1\p@ \@plus 2\p@} + {\raggedright\normalsize\it}} +\def\paragraph{\@startsection{paragraph}{4}{\z@} + {12\p@ \@plus 2.25\p@ \@minus -1\p@} + {-0.5em} + {\normalsize\bfseries}} +\def\subparagraph{\@startsection{subparagraph}{5}{\z@} + {12\p@ \@plus 2.25\p@ \@minus 1\p@} + {-0.5em} + {\normalsize\it}} +\setcounter{secnumdepth}{-1} +% +\def\appendix{\par + \setcounter{section}{0} + \setcounter{subsection}{0} + \def\thesection{\Alph{section}}} + +% **************************************** +% * PARTS & SECTIONS NUMBERS * +% **************************************** +% +\newcounter{newarticle} +\@newctr{section}[newarticle] +\def\thenewarticle {\Alph{newarticle}} + +% **************************************** +% * LISTS * +% **************************************** +% +\leftmargini \@indentskip +\leftmarginii 1pc +\leftmarginiii 1pc +\leftmarginiv 1pc +\leftmarginv 1pc +\leftmarginvi 1pc +\leftmargin\leftmargini +\labelsep 0.5em +\labelwidth\leftmargini\advance\labelwidth-\labelsep +% +% label macros for Range-Left and Range-Right labels +\def\makeRLlabel#1{\rlap{#1}\hss} +\def\makeRRlabel#1{\hss\llap{#1}} +% +\def\@listI{\leftmargin\leftmargini + \parsep \z@ + \topsep 2\p@ \@plus 1\p@ \@minus 1\p@ + \itemsep \z@ \@plus .1\p@ +} +\let\@listi\@listI +\@listi +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii\advance\labelwidth-\labelsep + \topsep 2\p@ \@plus 1\p@ \@minus 1\p@ + \parsep \z@ + \itemsep \z@ \@plus .1\p@ +} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii\advance\labelwidth-\labelsep + \topsep 1\p@ \@plus 1\p@ \@minus 1\p@ + \parsep \z@ + \partopsep \z@ + \itemsep \topsep +} +\def\@listiv{\leftmargin\leftmarginiv + \labelwidth\leftmarginiv\advance\labelwidth-\labelsep +} +\def\@listv{\leftmargin\leftmarginv + \labelwidth\leftmarginv\advance\labelwidth-\labelsep +} +\def\@listvi{\leftmargin\leftmarginvi + \labelwidth\leftmarginvi\advance\labelwidth-\labelsep +} +% +% ITEMIZE +\def\itemize{\ifnum \@itemdepth >3 \@toodeep + \else \advance\@itemdepth \@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \list{\csname\@itemitem\endcsname}% + {\let\makelabel\makeRRlabel}% + \fi} +\def\labelitemi{$\bullet$} +\def\labelitemii{--} +\def\labelitemiii{$\cdot$} +\def\labelitemiv{*} +% +% ENUMERATE with optional argument to set left margin... +\def\enumerate{\ifnum \@enumdepth >3 \@toodeep \else + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \fi + \@ifnextchar [{\@enumeratetwo}{\@enumerateone}% +} +\def\@enumeratetwo[#1]{% + \list{\csname label\@enumctr\endcsname}% + {\settowidth\labelwidth{[#1]} + \leftmargin\labelwidth \advance\leftmargin\labelsep + \usecounter{\@enumctr} + \let\makelabel\makeRRlabel} +} +\def\@enumerateone{% + \list{\csname label\@enumctr\endcsname}% + {\usecounter{\@enumctr} + \let\makelabel\makeRRlabel}} +% +\def\labelenumi{\theenumi} +\def\theenumi{\arabic{enumi}.} +\def\labelenumii{(\theenumii)} +\def\theenumii{\alph{enumii}} +\def\p@enumii{\theenumi} +\def\labelenumiii{\theenumiii} +\def\theenumiii{\roman{enumiii}} +\def\p@enumiii{\theenumi(\theenumii)} +\def\labelenumiv{\theenumiv} +\def\theenumiv{\Alph{enumiv}} +\def\p@enumiv{\p@enumiii\theenumiii} +% ARRAY AND TABULAR +% +\arraycolsep 5\p@ +\tabcolsep 6\p@ +\arrayrulewidth .5\p@ +\doublerulesep 1.5\p@ + +% **************************************** +% * TITLES AND ABSTRACT * +% **************************************** +% +\def\BASKvol#1{\gdef\BASK@vol{#1}} +\gdef\BASK@vol{?} +\def\BASKno#1{\gdef\BASK@no{#1}} +\gdef\BASK@no{?} +\def\makeBSKtitle{\par + \begingroup + \vspace*{-\headheight}% + \@maketitle + \bigskip\hrule\bigskip + \thispagestyle{plain} + \endgroup + \let\maketitle\relax + \let\@maketitle\relax +} +\newbox\BSKbox +\def\@maketitle{% +\centerline{{\bfseries \scaletowidth{\textwidth}{B\,a\,s\,k\,e\,r\,v\,i\,l\,l\,e}}} + \medskip + \hbox to \textwidth{\bfseries The Annals of the UK \TeX\ Users' + Group\hfill Editor: Sebastian Rahtz\hfill Vol.~\BASK@vol\ No.~\BASK@no} + \smallskip\hbox to \textwidth{\bfseries ISSN 1354--5930 +\hfill \thismonth\ \thisyear} + \medskip + \noindent Articles may be submitted via electronic mail to + \texttt{baskerville@tex.ac.uk}, or on MSDOS-compatible discs, + to Sebastian Rahtz, Elsevier Science Ltd, The Boulevard, Langford +Lane, Kidlington, Oxford OX5 1GB, to whom any correspondence +concerning \BV\ should also be addressed. This \BV\ is set in Monotype +Baskerville, with Computer Modern Typewriter for literal +text, and printed on a Xerox Docutech. Production and distribution is +undertaken in Cambridge by Robin Fairbairns. Back +issues from the previous 12 months may be ordered from \ukt\ for +\pounds2 each; earlier issues are archived on \textsc{ctan} in +\texttt{usergrps/uktug}. + +Please send \ukt\ subscriptions, and book or software orders, to +Peter Abbott, 1 Eymore Close, Selly Oak, Birmingham B29 4LB. +Fax/telephone: 0121 476 2159. Email +enquiries about \ukt\ to \protect\texttt{uktug-enquiries@tex.ac.uk}. + } + +\def\and{\end{tabular}\vskip 6pt\par + \begin{tabular}[t]{@{}l@{}}} +% +\def\abstract{\@abstract} +%\def\endabstract{\endlist} +%\def\@abstract{\list{}{\leftmargin \z@\rightmargin\z@ +% \parsep 0\p@ \@plus 1\p@}\item[]\normalsize{\bfseries Summary}\\} +\def\endabstract{\par} +\def\@abstract{\subsection*{Summary}} + +% **************************************** +% * PAGE STYLES * +% **************************************** +% +\mark{{}{}} +\gdef\@author{} +\def\author{\@ifnextchar [{\@authortwo}{\@authorone}} +\def\@authortwo[#1]#2{\gdef\@author{#2}\gdef\@shortauthor{#1}} +\def\@authorone#1{\gdef\@author{#1}\gdef\@shortauthor{#1}} +\gdef\@shortauthor{Dummy Author} +\gdef\@title{} +\gdef\@longtitle{} +\def\title{\@ifnextchar [{\@titletwo}{\@titleone}} +\def\@titletwo[#1]#2{\gdef\@title{#1}\gdef\@longtitle{#2}} +\def\@titleone#1{\gdef\@title{#1}\gdef\@longtitle{#1}} +\gdef\@longtitle{Dummy Title} + +% +% \ps@empty defined in LATEX.TEX +% +\def\ps@plain{\let\@mkboth\markboth + \def\@oddhead{} + \def\@evenhead{} + \def\@oddfoot{\rm \hfil --\thepage--\hfil} + \def\@evenfoot{\rm \hfil --\thepage--\hfil} +} +\def\ps@headings{\let\@mkboth\markboth + \def\@oddhead{\hfill\emph{\@title}\hfill} + \def\@oddfoot{\rm \hfil --\thepage--\hfil} + \def\@evenhead{\it Baskerville \hfill Volume \BASK@vol, Number \BASK@no} + \def\@evenfoot{\rm \hfil --\thepage--\hfil} +} +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \def\@oddhead{\it\@shortauthor \hfill \@title} + \def\@oddfoot{\rm \hfil --\thepage--\hfil} + \def\@evenhead{\it Baskerville \hfill Volume \BASK@vol, Number \BASK@no} + \def\@evenfoot{\rm \hfil --\thepage--\hfil} + \def\sectionmark##1{} + \def\subsectionmark##1{}} + +% **************************************** +% * TABLE OF CONTENTS, ETC. * +% **************************************** +% +\def\@pnumwidth{1.4pc} +\def\@tocrmarg {2pc} +\def\@dotsep{10} +\setcounter{tocdepth}{0} +%\def\tableofcontents{\@restonecolfalse +% \if@twocolumn\@restonecoltrue\onecolumn\fi +% \section*{Contents} \@starttoc{toc} +% \if@restonecol\twocolumn\fi \par\vspace{12\p@}} +\def\tableofcontents{\Section*{Contents}\@starttoc{toc}} +\def\l@part#1#2{\addpenalty{-\@highpenalty} + \addvspace{2.25em \@plus 1\p@} + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + {\normalsize\rm + \leavevmode \hspace*{3pc} + #1\hfil \hbox to\@pnumwidth{\hss \ }}\par + \nobreak \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}\endgroup} +\def\dotfil{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfil\kern\z@} +\def\l@newarticle#1#2{\addpenalty{\@secpenalty} +% \addvspace{1.0em \@plus 1\p@} + \@tempdima 1.5em % width of box holding section number + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode + #1\dotfil \hbox to\@pnumwidth{\hss #2}\par + \endgroup} +\def\l@section{\@dottedtocline{1}{\z@}{1.5em}} +\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} +\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} +\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} +\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} +\def\listoffigures{\@restonecolfalse + \if@twocolumn\@restonecoltrue\onecolumn\fi + \section*{List of Figures\@mkboth{List of Figures}{List of Figures}} + \@starttoc{lof} \if@restonecol\twocolumn\fi} +\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} +\def\listoftables{\@restonecolfalse + \if@twocolumn\@restonecoltrue\onecolumn\fi + \section*{List of Tables\@mkboth{List of Tables}{List of Tables}} + \@starttoc{lot} \if@restonecol\twocolumn\fi} +\let\l@table\l@figure + +% **************************************** +% * BIBLIOGRAPHY * +% **************************************** +% +\def\thebibliography#1{\section*{\refname} + \small +\list + {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \usecounter{enumiv}% + \let\p@enumiv\@empty + \def\theenumiv{\arabic{enumiv}}}% + \def\newblock{\hskip .11em plus.33em minus.07em}% + \parskip\z@ \@plus .1pt\relax + \clubpenalty4000\widowpenalty4000\sfcode`\.=1000\relax} +\def\refname{References} +\def\endthebibliography{% + \def\@noitemerr{\@warning{Empty `thebibliography' environment}}% + \endlist} + +\setcounter{topnumber}{2} +\def\topfraction{.9} +\setcounter{bottomnumber}{1} +\def\bottomfraction{.9} +\setcounter{totalnumber}{3} +\def\textfraction{.1} +\def\floatpagefraction{.75} +\setcounter{dbltopnumber}{2} +\def\dbltopfraction{.9} +\def\dblfloatpagefraction{.75} + +\long\def\@makecaption#1#2{\vskip 6\p@ + \setbox\@tempboxa\hbox{\small{\bfseries #1.} #2} + \ifdim \wd\@tempboxa >.8\hsize + \hbox to\hsize{\hfill\parbox{.8\hsize}{\small{\bfseries #1.} #2\par}\hfill} + \else + \hbox to\hsize{\hfill\box\@tempboxa\hfill} + \fi + \vskip 6\p@ +} + + +% --- ----------------------------------------------------------------- +% --- Shorthands for non-English abbreviations and words. +% --- ----------------------------------------------------------------- + +\def\foreign{\em} +\def\etc{{\foreign etc.}} % etc. +\def\eg{{\foreign e.g.~}\ignorespaces} % e.g. +\def\egc{{\foreign e.g.,~}\ignorespaces} % e.g., +\def\ie{{\foreign i.e.~}\ignorespaces} % i.e. +\def\iec{{\foreign i.e.,~}\ignorespaces} % i.e., + +% --- ----------------------------------------------------------------- +% --- Tex-related mnemonics. +% --- ----------------------------------------------------------------- + + +\def\La{\protect\p@La} +\def\p@La{L% + {\setbox0\hbox{T}% + \setbox2\vbox to\ht0{\kern.07ex\hbox{% + \csname S@\f@size\endcsname + \math@fontsfalse + \fontsize\sf@size\z@\selectfont + A}% + \vss}% + \kern-.5\wd2 + \box2 + }} +\def\AllTeX{(\La)\TeX} +\def\AmSTeX{$\mathcal{A}\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}\kern-.125em S$\TeX} +\def\LamsTeX{$\mathcal{L}\mathcal{A}% +\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}\kern-.125em S$\TeX} +\def\BibTeX{{\rmfamily B\kern-.05em\textsc{i\kern-.025em b}\kern-.08em\TeX}} +\def\INRStex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX} +\def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}} +\def\LAMSTeX{L\kern -0.4 em \raise 0.3 ex \hbox {$\scriptstyle \mathcal{A}$}% + \kern -0.25 em \lower 0.4 ex \hbox {$\cal M$}% + \kern -0.1 em \hbox {$\mathcal{S}$}-\TeX} +\def\AMSLaTeX{{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}\kern-.125em + $\mathcal{S}$-\LaTeX}} +\def\AMS{{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}\kern-.125em + $\mathcal{S}$}} +\def\MakeIndex{{\itshape MakeIndex}} +\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} +\def\PiCTeX{\PiC\kern-.11em\TeX} +% SliTeX from the SliTeX Documentation +\def\SLiTeX{S\kern-.065em L\kern-.18em\raise.32ex\hbox{\textsc{i}}\kern-.03em\TeX} +\let\SliTeX\SLiTeX +\def\POBox{P.\thinspace O.~Box } +\def\TeXhax{\TeX hax} +\def\TeXXeT{\TeX--X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT} +\def\TUB{\emph{TUGboat}} +\def\DVI{\texttt{dvi}} +\def\VF{\textsc{vf}} +\def\BV{\emph{Baskerville}} +\def\UKTUG{UK \TeX\ Users' Group} +\def\ukt{{\footnotesize UK}TUG} +\let\shortuktug\ukt +\def\PS{\textsc{PostScript}} +\newcommand{\payuk}{UK TeX Users' Group} +\newcommand{\Newline}{\\[0.7\baselineskip]} +\newcommand{\FullLine}[1]{% + \makebox[\linewidth][l]{#1\hrulefill}\Newline} +\newcommand{\HalfLine}[1]{% + \makebox[0.5\linewidth][l]{#1\hrulefill}} + +\def\Dash{---} + + +% --- ----------------------------------------------------------------- +% --- Additional commands. +% --- ----------------------------------------------------------------- + +\let\maketitle\make@articletitle +\def\make@articletitle{\Section[\@title]{\@longtitle}} + +\def\article{% + \setcounter{figure}{0}% + \setcounter{table}{0}% + \Section[\@title]{\@longtitle}% + \let\maketitle\relax + \markright{\@shortauthor\hfill\@longtitle}% +} +% +% Article is when the title is double column +\def\Article{% + \setcounter{figure}{0}% + \setcounter{table}{0}% + \begin{multicols}{2}[\SSection{\@longtitle}]% + \let\maketitle\relax + \markright{\@shortauthor\hfill\@longtitle}% +} +% Article is when the title is double column +\def\FArticle{% + \setcounter{figure}{0}% + \setcounter{table}{0}% + \begin{multicols}{2}[\Section*{\@longtitle}]% +} +\def\endarticle{\@signature + \gdef\@author{\mbox{}}} + +\def\endArticle{\@signature + \gdef\@author{\mbox{}}\end{multicols}% +} +\let\endFArticle\endArticle +\def\newarticlemark#1{} + +% --- Macros for cross-referencing tables and figures. + +\def\figref#1{Figure~\ref{#1}} +\def\tabref#1{Table~\ref{#1}} + +% --- Output the attribution at the end of an article. +\def\emptysig{} +\def\@signature{% + \ifx\@author\emptysig\else + \begin{flushright}\begin{tabular}{@{}r@{}}\@author\end{tabular}% + \end{flushright}\fi} + +\def\signature#1{\begin{flushright} + \begin{tabular}{@{}r@{}}#1\end{tabular}% + \end{flushright}} + +% --- ------------------------------------------------------------------ +% --- The following macros are taken from Adrian F. Clark's LaTeX style +% --- file `dates.sty', which provides fairly flexible date inclusions. +% --- ------------------------------------------------------------------ + +\def\today{\thisdayofweek\ \thisdayth\ \thismonth\ \thisyear} + +\def\thisday{\number\day} + +\def\thisdayth{\thisday \ifcase\day + \or\st\or\nd\or\rd\or\th\or\th\or\th\or\th\or\th\or\th\or\th + \or\th\or\th\or\th\or\th\or\th\or\th\or\th\or\th\or\th\or\th + \or\st\or\nd\or\rd\or\th\or\th\or\th\or\th\or\th\or\th\or\th\or\st\fi} + +\def\thisdayofweek{\dayofweek{\year}{\month}{\day}} + +\def\thismonth{\ifcase\month\or \January\or \February\or \March\or + \April\or \May\or \June\or \July\or \August\or \September\or + \October\or \November\or \December\fi} + +\def\thisyear{\number\year} + +% --- Names of days of the week and the months. +% --- This makes it easier to change them for languages other than English. +% --- (And that's why they're not \@Sunday, etc). + +\def\Sunday{Sunday} +\def\Monday{Monday} +\def\Tuesday{Tuesday} +\def\Wednesday{Wednesday} +\def\Thursday{Thursday} +\def\Friday{Friday} +\def\Saturday{Saturday} + +\def\January{January} +\def\February{February} +\def\March{March} +\def\April{April} +\def\May{May} +\def\June{June} +\def\July{July} +\def\August{August} +\def\September{September} +\def\October{October} +\def\November{November} +\def\December{December} + +% --- Counters. Note that we use the same registers as TeX holds other +% --- things in (e.g., \count0 holds the page number). This requires +% --- that \@savestyle, \@setstyle, and \dayofweek perform all +% --- their register manipulations within a group. This may seem +% --- a bit messy, but it saves having eight registers permanently set +% --- aside just for date calculation. + +\def\@cent{\count0 } % century number (1979 == 20) +\def\@diy{\count1 } % day in the year +\def\@dow{\count2 } % gets day of the week +\def\@epact{\count3 } % age of the moon on Jan. 1 +\def\@golden{\count4 } % Moon's golden number +\def\@leap{\count5 } % leap year fingaler +\def\@x{\count6 } % temp register +\def\@y{\count7 } % another temp register + +\def\st{\alien@up{st}} +\def\nd{\alien@up{nd}} +\def\rd{\alien@up{rd}} +\def\th{\alien@up{th}} + +\def\alien@up#1{{\@savestyle\thinspace$^{\underline{\hbox{% + \scriptsize\@setstyle#1\fam=-1 }}}$}} + +% --- Macros to save and restore the font family. + +\def\@savestyle{\count0=\the\fam} + +\def\@setstyle{\ifcase\count0\rm\or\mit\or\cal\or\rm% what's family 3? + \or\it\or\sl\or\bfseries\or\tt\fi} + +% --- The day of the week (\Sunday, etc.) is inserted into the text +% --- by \dayofweek. (This uses registers \@dow, \@leap, \@x and \@y.) +% --- I acquired this from elsewhere; it was apparently written by +% --- Martin Minow, now a DEC employee. + +\def\dayofweek#1#2#3{{% + \@leap=#2 \advance\@leap by -14 \divide\@leap by 12 + \advance\@leap by #1 + \@dow=#2 \advance\@dow by 10 + \@y=\@dow \divide\@y by 13 \multiply\@y by 12 + \advance\@dow by -\@y \multiply\@dow by 13 \advance\@dow by -1 \divide\@dow by 5 + \advance\@dow by #3 \advance\@dow by 77 + \@x=\@leap \@y=\@x \divide\@y by 100 \multiply\@y by 100 \advance\@x by -\@y + \multiply\@x by 5 \divide\@x by 4 \advance\@dow by \@x + \@x=\@leap \divide\@x by 400 \advance\@dow by \@x + \@x=\@leap \divide\@x by 100 \multiply\@x by 2 \advance\@dow by -\@x + \@x=\@dow \divide\@x by 7 \multiply\@x by 7 \advance\@dow by -\@x + \ifcase\@dow \Sunday\or \Monday\or \Tuesday\or \Wednesday\or + \Thursday\or \Friday\or \Saturday\fi}} + +% **************************************** +% * INITIALIZATION * +% **************************************** +% +\ps@headings +\pagenumbering{arabic} +\sloppy +\flushbottom +\frenchspacing + +%\extrarowheight2\p@ +\setlength{\multicolsep}{6\p@} +\let\sl\it +\newcommand{\meta}[1]{{$\langle$\itshape #1\/$\rangle$}} +\def\Gin@extensions{.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.pz,.psz} +\def\Gin@sepdefault{.}% +\@namedef{Gin@rule@.psz}#1{{.eps}{.bb}{`gunzip -c #1}} + +% no rule in footcols + +\def\@makecol@ftn{% + \vskip \skip\footins + \footnoterule + \footnotesize + \multicolsep\z@\relax + \hsize\textwidth + \@parboxrestore + % {\showoutput\batchmode\showbox\footins}% + \raggedcolumns + \bgroup \columnseprule 0\p@ + \begin{multicols}{\the\ftn@col@number}% + \unvbox \footins + \end{multicols}% + \egroup +} +% +% available for inter-article dinglines +% +\def\Dings{\nopagebreak{\footnotesize\dingline{167}}} +% +\@twosidetrue \@mparswitchtrue +\endinput +%% diff --git a/usergrps/uktug/baskervi/5_4/editor.tex b/usergrps/uktug/baskervi/5_4/editor.tex new file mode 100644 index 0000000000..316841d0a2 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/editor.tex @@ -0,0 +1,92 @@ +\title{Editorial} +\begin{article} +\section{Cathy Booth memorial} +As explained in the last issue of \BV, the committee of \ukt\ has been +working to honour the memory of Cathy Booth in its various activities +and donations to good causes. Continuing an occasional tradition +started by Malcolm Clark, we decided to award a prize in Cathy's name +at this year's \TeX\ User Group conference. At the meeting a poll of +delegates was arranged, and Donald Knuth was also asked to nominate +his favourite papers. The first choice was overwhelmingly for the work +of T.~V.~Raman, who presented a paper, and demonstrated his audio +`views' of \TeX\ documents. For anyone who has met Raman, or +experienced his work, this will come as no surprise --- his system for +speaking mathematical formulae (and any other \TeX\ construct!) is an +incredible achievement, recognized by the national award for his +doctoral thesis last year. Raman (and his guide-dog Aster) received a +remarkable standing ovation when the Cathy Booth prize was awarded at +TUG95, for what one voter aptly described as his `contribution to +humanity'. We are very pleased to be allowed to reprint his paper from +the conference preprints in this issue of \BV. + +\section{Looking for a new captain of \BV} +At the 1995 meeting of the \TeX\ User's Group, I was elected as +Secretary of the group by the Board of Directors. \ukt\ members who +are also members of TUG will be aware that the group has been going +through rough times recently, with its publication program adrift, and +its relationship with other groups being questioned. Since I want to +give my best effort to getting TUG back on its feet, and working for +the good of all \TeX\ users, I have very reluctantly decided that I +will have to give up work for the \UKTUG, including the editorship of +\BV. A replacement is being sought --- if you think you can do it, +let's hear from you. The most important criterion is that you be able +to garner 24 pages of interesting material every other month --- all +sorts of people can help with the typesetting, proofing, production +etc, but it is the firm overall control that we want. + +\section{Corrigendum} + +In \BV~5.3 Rosemary Bailey gave a list of the members of the committee +of \ukt\ in 1991--1992. Unfortunately, she omitted the names +of two members: Angus Duggan and David Osborne. She has asked the \BV\ +editor to pass on her apologies. + +\section{Words from the Treasurer} +Peter Abbott asks me to remind/inform members of the following points: +\subsection{Book discounts} +Any book from the Addison-Wesley Complete Computer Science +catalogue may be ordered from \uktug. The published price should +be discounted by 10\% rounded to the nearest 5p. If you are unsure +please let me know the ISBN and I will quote a price. +A-W books are delivered direct so I would appreciate notification +of delivery. + +Books from O'Reilly are as listed on the sheet included in \BV\ from +time to time. O'Reilly books +are forwarded by me so again I would appreciate notification of receipt. + +Cheques should be made payable to `UKTUG' and sent to +Peter Abbott (see banner for address, phone etc). + +\subsection{4allTeX CD-ROM 3rd edition} + +This newly released CD is available for \pounds 25. It now has +\emph{two} CDs, the latest em\TeX, and more goodies than you can imagine. +A few copies of the 2nd edition are on sale for \pounds5. + +\subsection{Em\TeX\ new release} + +By the time you read this you should have received the update mentioned +in the last edition of \BV. Please contact me if you paid the +\pounds 30 in 1995 or the \pounds 5 for the update service, and have +not received your disks. + +\end{article} +\endinput +\section{Overload} +Any editor of a publication about \TeX\ meets the problems of +conflicting macros more than most people; curiously enough, no issue +of \BV\ has yet proved impossible to run in one go. But this time it +came close; for Haverkort's packages alone, it took me several hours +to work out which packages to omit (like \LaTeX\ color), and where to +cheat. At the last moment, Rowley's article needed \texttt{amsmath}, +which then fought with Bailey's work\ldots The fact that \LaTeXe\ did +not trivially permit me to load \texttt{amsmath} for the duration of +one paper only (it used to be easy in the days of \LaTeX209) is a +cause of irritation. Recalling observations in the last \BV, and this, +about the direction \LaTeX{} is taking, I take the opportunity to +commend to \ukt\ members a paper by Matt Swift on `Modularity in \LaTeX' +which will appear in TUGboat 16.3 --- whatever you think of his +suggestions, it is way past time to stop relying on just hope and +goodwill as methods of preventing macro clashes. + diff --git a/usergrps/uktug/baskervi/5_4/eurotex.tex b/usergrps/uktug/baskervi/5_4/eurotex.tex new file mode 100644 index 0000000000..025b612426 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/eurotex.tex @@ -0,0 +1,248 @@ +% EuroTeX'95 announcement +\documentclass{article} +\usepackage{multicol} +\usepackage{times} +\usepackage{a4} + +\parindent0pt +\parskip1mm + +\def\Theme#1{\vskip2mm{\bf Theme: #1}\vskip2mm} +\def\Day#1{\vskip 6mm\hrule\vskip1mm + \centerline{\bf#1}\vskip1mm} +\def\Paper#1#2{\par\hangindent5mm\textbf{#2} -- #1\par} +\def\Head{\centering\Large\bf + Euro\TeX'95\\ + September 4--8\\ + Arnhem, The Netherlands\\ + Conference information\\~\\ + \hrule} + +\begin{document} + +%% \begin{multicols}{2}[\Head] +%% +%% \section*{The \TeX\ Toolbox} +%% +%% The Euro\TeX\ conference 1995, including tutorials, will take place from +%% \textit{September 4th until September 8th} in the Netherlands. The +%% conference will be held at Papendal, near the city of Arnhem. +%% +%% Papendal is located in one of the most beautiful areas of the +%% Netherlands. Right in the middle of the vast woods of the province of +%% Gelderland. About eight kilometers west of Arnhem. Tucked away under the +%% lee of the green Veluwe-fringe. +%% +%% The conference starts on September 4th in the afternoon and runs until +%% September 7th noon. Thursday afternoon and Friday September 8th are +%% reserved for tutorials. +%% +%% The theme of the conference is: The \TeX\ Toolbox. +%% +%% \section*{Preliminary program} +%% +%% (Items marked `*' are not confirmed yet) + +\Day{Monday a.m.} + +Welcome Reception and registration of conference attendants. + +\Day{Monday p.m. (14:00--18:30)} + +\Theme{I) Fonts} + +\Paper{S. Turtia, A.Berdikov} + {VFComb -- a program for design of virtual fonts} +\Paper{E.J. Vens} + {The Conversion of the Euler Metafont sources to PostScript Type1} +\Paper{J. Knappen*} + {EC and DC fonts} + +\Theme{II) Multiple languages} + +\Paper{A.F. Slepuhin} + {A package for Church Slavonic type-setting} +\Paper{O. Lapko, I. Makhovaya} + {A Russian style for Babel: problems and solutions} +\Paper{Y. Haralambous} + {Scholar\TeX} +\Paper{J. Braams*} + {Status of Babel} + +\Day{Tuesday a.m. (9:00--12:30)} + +\Theme{Graphics and packages} + +\Paper{A.V. Astrelin} + {Graphics in \TeX: a new implementation} +\Paper{S. Turtia, A. Berdikov} + {\TeX\ Plotter -- program for creating 2D and 3D pictures} +\Paper{G. Feruglio} + {Packages for typesetting Commutative Diagrams} +\Paper{J. Hagen} + {Package for typesetting chemical diagrams} +\Paper{D. Taupin} + {Musix\TeX, a package for typesetting music} + +\Day{Tuesday p.m.} + + From 13:30--14:30: NTG meeting. + +\Theme{Electronic documents} + +\Paper{W. Tierie} + {Presentation of Acrobat} +\Paper{J. Hagen} + {Producing electronic books? -- all you need is \TeX!} +\Paper{M. Goossens} + {SGML, a practical introduction} +\Paper{M. Goossens} + {From \LaTeX\ to HTML, and back} +\Paper{S. Rahtz*} + {SGML, Acrobat, \LaTeX, Hyper\TeX} + +Panel discussion. + +\Day{Wednesday a.m.} + +\Theme{Tools I} + +\Paper{R. Koning, S. Kliffen, A. Lenstra} + {Da\TeX, \TeX\ macros for storing and retrieving data} +\Paper{P. Taylor} + {\TeX: an unsuitable language for document markup?} +\Paper{K. van der Laan} + {Blue's Data Bases} +\Paper{L. Siebenmann} + {Occam's razor and macro management} +\Paper{P. Palao, M. N\'u\~nez} + {Formating Pascal using \TeX} + +\Day{Wednesday p.m.} + +\Theme{General developments in \TeX\ and \LaTeX} + +\Paper{C. Rowley*} + {\LaTeX3} +\Paper{P. Taylor} + {$\varepsilon$-\TeX} +\Paper{Y. Haralambous} + {Omega} +\Paper{Joachim Schrod} + {tds} + +Panel discussion. + + 16:00--???: the social event, still a secret\ldots + +\Day{Thursday a.m.} + +\Theme{Tools II} + +\Paper{P. Taylor} + {$\backslash$csname u n d e f i n e d $\backslash$endcsname = + $\backslash$relax: feature or flaw?} +\Paper{L. Siebenmann} + {Atomic fonts and electronic archiving of scientific documents} +\Paper{A. Strejc} + {The W95 Environment} +\Paper{K. van der Laan} + {Indexing with `Any'\TeX} +\Paper{B. Jackowski} + {Metafont as generator of EPS graphics} + +\Day{Thursday p.m. and Friday} + +\Theme{Tutorials} + +Parallel sessions. + +\Paper{L. Siebenmann} + {Sweet-\TeX\ tutorial} +\Paper{P. van Oostrum} + {Page layout in \LaTeX} +\Paper{K. van der Laan} + {\TeX ing Paradigms} +\Paper{K. van der Laan} + {BLU \TeX} +\Paper{K. van der Laan} + {Plain \TeX\ Macro writing, why?} +\Paper{B. Jackowski} + {Metafont} +\Paper{P. Taylor} + {$\varepsilon$-\TeX\ tutorial} +\Paper{M. Goossens \& S. Rahtz} + {Workshop on Acrobat and electronic document delivery} + +%% \section*{Meeting costs} +%% +%% The registration fee includes the Welcome Reception on Monday, all +%% lunches from Monday to Thursday and all dinners from Monday to Wednesday. +%% One tutorial ($\frac12$ day) is included in the conference fee. +%% Extra tutorials cost Hfl~70 each. Lunch on Friday is Hfl~15. +%% +%% The conference fee also includes the `social event' on Wednesday +%% afternoon and evening. +%% +%% Conference rates:\\ +%% -- members of TUG or Local \TeX\ User Groups (please specify): Hfl~375\\ +%% -- others: Hfl~450 +%% +%% Reservations of hotel rooms at the conference site can only be done +%% by the Euro\TeX\ organisation committee. Papendal offers the following +%% accomodation: +%% +%% -- single rooms Hfl~90 per day per person\\ +%% -- double rooms Hfl~75 per day per person\\ +%% -- quadruple rooms Hfl~50 per day per person\\ +%% (breakfast included). +%% +%% Accomodation is limited, so register as soon as possible. +%% +%% \section*{How to get there} +%% +%% Papendal is located just outside the city of Arnhem. From Arnhem it can +%% be reached by bus or taxi in approximately 15 minutes. There is a +%% train going from Amsterdam airport (Schiphol) to Arnhem every 30 +%% minutes. +%% +%% The address is: +%% +%% Papendal Nationaal Sport Centrum\\ +%% fax +31 8308 21853 \\ +%% tel +31 8308 37911 \\ +%% P.O. Box 484\\ +%% 6800 AL Arnhem\\ +%% The Netherlands\\ +%% +%% +%% People coming from Russia, Poland or ... may be interested in the +%% Euro\TeX\ Bus Project. On September 2nd a \TeX\ bus will drive from +%% Brest, through Warsaw, through ... to Arnhem, where it will arrive on +%% Sunday in the afternoon. Taking the bus will be extremely cheap, thanks +%% to sponsoring by ... +%% However, seats are limited so register as soon as possible. +%% +%% +%% \section*{Bursary fund} +%% +%% There is a Bursary Fund available for those who require financial +%% support to attend the meeting. While we cannot guarantee all requests +%% will be fulfilled, we will do our best to support as many as we can. +%% +%% We encourage all conference attendants to contribute a small amount of +%% money to the Bursary Fund along with their registration fee. +%% +%% More information about contributing to or applying to the Bursary Fund +%% can be obtained from ... +%% +%% \section*{Further information} +%% +%% Updates of this information will be sent to all known electronic \TeX\ +%% related mailing lists and to all Local \TeX\ User Groups. If you have +%% access to a WWW browser you can go to +%% {\small\texttt{http://www.cs.ruu.nl/piet\~\ /eurotex}}. There you can +%% find the latest news, a registration form and other useful information. +%% +%% \end{multicols} +\end{document} diff --git a/usergrps/uktug/baskervi/5_4/glean.tex b/usergrps/uktug/baskervi/5_4/glean.tex new file mode 100644 index 0000000000..bd0a2dfba3 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/glean.tex @@ -0,0 +1,177 @@ +\newcommand{\sgml}{\textsc{sgml}} +\newcommand{\mime}{\textsc{Mime}} + +\title{Malcolm's Gleanings} +\author{Malcolm Clark} +\begin{Article} +\section{Indefatigable} +There hardly seems a month goes by when I do not pick up a journal or magazine +with an article by one of \LaTeX's most indefatigable proselytisers, Allan +Reese. This month it was \textit{Axis} (a rather specialised journal for +`Academic Computing and Information Systems'). In a rather fetchingly titled +article, `!`Hoja! Herr B\"oll, \c Ca va?' he champions the use of \LaTeX\ as a +suitable medium for email in order to accommodate all those annoying foreign +languages which have accents. Well, we've been here before, but it is +still good to see Allan determinedly and relentlessly spreading the word. An +accolade to that man. + +\section{Synchronicity} +In the last \BV\ I extolled \textsc{Gut}enberg and their +\textit{Cahiers}, noting that their next volume would be on character +coding. This volume arrived on my desk a week or so ago. It began with +a brief \textit{In memoriam} to Cathy Booth. Cathy attended several of +the early \textsc{Gut}enberg meetings, and had many friends in the +french-speaking \TeX\ community. It was a very thoughtful and touching +gesture to dedicate the volume to her. A similar event was perpetuated +at the TUG conference, where Sebastian Rahtz presented a prize for +best paper to T.~V.~Raman in her name. Personally, I can think of few +people more worthy than T.~V.\ to receive any sort of prize -- and on top +of that, he's a really nice person. + +\section{\mime} +Our out going and retiring chair, Chris Rowley, points out that +\texttt{x-dvi} is already a \mime\ type. In theory this should mean +that you can include a \texttt{dvi} file with an email message and the +recipient will be able to read it. I'd be reluctant to contemplate +this outside the arcane world of Unix. In any case, what I had in mind +was to have a simple viewer which exploited Adobe's Multiple Master +fonts, rather than (say) Computer Modern. It would be interesting to +know if this \mime\ type is used in real life, or whether it merely +represents good intentions. In passing, it was serendipitous that the +last \BV\ was printed in Adobe Minion, one of the two main Multiple +Master fonts. But at least it almost demonstrated that \LaTeX\ and +Multiple Masters can co-exist. + + +\section{What I did on my summer hols} +I've stopped going to international \TeX\ conferences, and I no longer +do much \TeX\ or \LaTeX\ teaching (the former on moral and ethical +grounds: those and the fact that you have to tell your audience to +suspend disbelief for the first morning: ``you do \textit{what}?''), +but I was inveigled into giving a course on \LaTeXe, the only true +\LaTeX, in Malaysia. Imagine bringing latex to Malaysia. It is an +ironic footnote that the rubber plantations there are being cut down, +or the timber being used for wood, rather than for the harvesting of +latex. This course turned out to be one of the most enjoyable that I +have taught. Besides the pleasure of teaching a really nice bunch of +people (and by and large, \TeX ies tend to be in that +category% +%\footnote{Having said that, a few cronies were trying to +% decide just who are the really, really nice, but not boring, \TeX\ +% people. We only managed Don Knuth, T V Raman, Tom Rokicki and Nelson +% Beebe. Much more difficult than 10 famous Belgians.} +) this was +virtually the first time I have had access to teaching facilities +where I didn't have to waste half the first day teaching people how to +use the operating system and its interaction with \TeX. I had two +teaching rooms: one with pc\TeX\ for Windows, the other with +\textit{Textures} 1.7.5. Since I had to do a little of the software +installation (pc\TeX, for example, doesn't come with all the bits and +pieces I might have expected), I can also vouch for the relative +robustness and ease of the installations. pc\TeX\ is only a couple of +years behind \textit{Textures} -- \iec where \textit{Textures} was +maybe two or three years ago. They should almost catch up within a +year or so. Naturally there is a catch: both these implementations +cost money. Since I now have copies of both these implementations I'll +say more about their limitations and ease of use at some future point, +but the issue here is that some of the pain and difficulty of learning +\LaTeX\ was removed `at a a stroke' by the availability of a +responsive and easy to use point and click version of \TeX. + +Naturally, since the predominant language of Malaysia, Melayu (or +Bahasa Malay) is not English, they wanted \LaTeX\ to reflect the +difference. Fortunately it is a Latin script and they had the very +great sense to spell it phonetically, with no accents. One difficulty +is that many words form their plural by doubling the word, separated +by a hyphen: \egc it is as if the plural of sheep were sheep-sheep. +Fine, but how will \TeX\ hyphenate this? The answer is that it won't. +By default, \TeX\ does not add hyphens to words which already contain +a hyphen. That's one of the reasons that the Cork encoding has a +`link-hyphen'. With eight bit encoding, therefore, it can be done. +The other problem, of language localisation (turning `Appendix' to +`Lampiran' or `Contents' to `Kandungan') was wonderfully easy thanks +to Babel. In there you will find \texttt{bahasa.dtx}. This is a +language conversion which claims to handle Bahasa, which is closer to +an Indonesian `dialect' of Malay. I gained a lot of kudos from a quick +hack of what will become \texttt{melayu.dtx}. There really is lots to +be said, not just for \LaTeXe, but the comprehensive installation +which accompanies it. + +\section{When shall I rebuild \LaTeXe?} +Since \LaTeXe\ pops up every six months now, there is an interesting question +developing: when should you download it from the archive and rebuild your +installation?. There is no point taking it as soon as it is released, since you +know that the first patch will be released about 26 hours after the +announcement. Experience seems to indicate that patch level 3 represents +\LaTeXe\ approaching its asymptote. Having said that, I couldn't build that +patch level on my Mac (despite everything I said earlier\dots). + +\section{\etex\ escapes} +\etex, the first stage in a new improved (but not called) \TeX\ has +been sort of released. DOS versions were distributed at the TUG +conference in St Petersburg Beach. There are also unconfirmed rumours +that a VMS Alpha version is lurking somewhere south of the Thames. But +what is it all for? Can anyone point me to a description of the real +and tangible benefits which will accrue from its adoption? I know how +the committee structure works, and who does the work, thanks to Phil +Taylor's \TUB\ notes, but I don't yet know what real world +typesetting problems it will solve, at a stroke. + +\section{The empty vessel} +\dots giveth a greater sound than the full +barrel\footnote{\textit{John Lyly}, 1579, Euphues, the Anatomy of + Wit.}. Goodbye special directors: having been implicated in the +creation of TUG's special directors\footnote{\textit{one} of the + allegations of my influence on TUG which is based in fact.}, it's +good to see that TUG has now dispensed with them. The special +directors were the chairs or presidents (in the case of those whose +boots grew) of the `older' European users groups. When they were +adopted onto the TUG Board it was a useful way to try to redress the +very strong US-ocentric focus which TUG had. Now I hear that the +Americans are complaining that TUG is a European dominated +organisation which just happens to have its headquarters in San +Francisco (this week). + +Barbara Beeton's hold on \TUB\ has been reduced. It will have been +obvious that one of TUG's major problems, and one of the reasons its +membership has fallen to unsustainable levels, has been the persistent +non-appearance of \TUB. Some of the responsibility for this has to +laid at the feet of Barbara (one of the nicest people I could ever +hope to meet, whose knowledge of \TeX\ is legendary, whose standards +are Knuth-like, and whose skills in the art of delegation are +limited). The production of \TUB\ will now be based in Florida. +Editorial matters remain within Barbara's +control. Incoming President Michel Goossens has placed the production +of \TUB\ as a top priority for TUG. + +As predicted, Florida was hot and sweaty. Some say it was the +sweatiest on record, but I guess they didn't go partying in the flesh +pots of Santa Barbara. Mind you, not much partying went on at St +Petersburg Beach -- and no bowling.\footnote{\emph{Clearly Malcolm's sources + did not tell him about the `Three Dancing \TeX xies', Tom Rokicki, + Petr Sojka and Michael Cohen --- Editor}} + +Just as this column was the first to reveal that Michel Goossens (of +the \LaTeX\ \textit{Companion} fame) was to be the next TUG President, +it can also reveal that Sebastian Rahtz is the new Secretary, +Mimi Jett Treasurer and the startling Judy Johnson is +Vice-President (she startled me!). With the Rahtz--Goossens dynamic +duo at the helm we can expect some interesting developments at TUG. At +the very least, \TUB\ should start to appear regularly. + +You may wonder how Sebastian manages to accomplish so much. A +carefully inspection of his name is revealing: S.~P.~Q.~Rahtz. Not +many people realise that this is actually a shorthand alias for three +people, S., P.\ and Q.\ Rahtz. Sebastian is merely the public face of +this triumvirate. There is no other rational explanation. QED + +Another of S.\ or P.\ or Q.\ Rahtz' good ideas was auctioning off signed +Knuth books to raise money for the Euro\TeX\ bursary. This was made +easier by the presence of Don Knuth to sign the books, and Addison +Wesley's generosity in donating them. But what a good idea; and what a +worthy cause. +% As long as no-one withdrew their money on hearing that +%the money was already assigned\footnote{an obscure, scurrilous and +% unjustified reference to \textsc{Dante} who did something very +% similar.}. +\end{Article}
\ No newline at end of file diff --git a/usergrps/uktug/baskervi/5_4/goossens.tex b/usergrps/uktug/baskervi/5_4/goossens.tex new file mode 100644 index 0000000000..410600fca9 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/goossens.tex @@ -0,0 +1,592 @@ +\newcommand{\Lcs}[1]{{\ttfamily\char'134#1}} +\providecommand{\PS}{PostScript} +\def\MP{MetaPost} +\providecommand{\PDF}{PDF} +\title{TUG95 at St. Petersburg Beach, Florida} +\author[Michel Goossens]{Michel Goossens\\\emph{Email: } + \texttt{m.goossens@cern.ch}} +\begin{Article} +[\emph{Editor's note:} Michel has kindly allowed us to print portions +of his longer report on TUG 95, which will be distributed on the +Internet.] + +\section{Monday July 24th} + +Monday morning saw the official opening of the Conference, with TUG95 +Organizing Committee Chairperson Mimi Burbank welcoming all +participants before passing the floor on to Michel Goossens, who +thanked everybody for coming, and emphasized the different +structure of this conference as compared to previous years, since this +time we had more workshop oriented sessions (in the afternoons) and +were opening up the area of presentations to the world of electronic +publishing at large, and SGML/HTML, Adobe Acrobat, CD-ROMs, hypertext, +etc.\ in particular. At that point the representatives of +NTG said a few words about their third edition of the 4All\TeX{} +CD-ROM, and Wietse Dol took this occasion to offer the first pressed +CD to Donald Knuth who was a guest of honour at this 16th +($2^{2^{2}}$) \TeX{} Annual Meeting. + +The first talk was by Ji\v{r}\'{\i} Zlatu\v{s}ka, who showed how \MF{} and +\TeX{} can work together to typeset combinations of text and graphics. +His new approach based on \TeX's extended ligature mechanism, reduces +the number of \MF{} passes to one, and also simplifies the +\TeX-\MF{} interface. This permits easier typesetting of text +along curves and in particular allows one to generate beautiful +institutional seals and logos in various forms and combinations +starting from the same base elements. He noted that, although \PS{} +is often the first choice for including graphics information in \TeX{} +documents, \MF{} often offers improved legibility of the +logos and the letters at smaller sizes. + +The next speaker, Richard Kinch, discussed his work on building +reliable \PS{} Type1 and Truetype outlines for the Computer Modern +fonts. He emphasized that several \MF{} primitives (stroked pens, +overlapping ink) have no equivalent in these formats, since they +support only non-overlapping B\'ezier curves. His program, +\texttt{MetaFog}, handles most of the difficult problems associated +with these conversions. He went on to discuss how \texttt{MetaFog} works, +pointing out some of its drawbacks and making a plea for including +hints inside the \MF{} sources. He finally compared his results to +other outline instances of the CM fonts. + +After refreshments Alan Hoenig gave another one of his almost +``perfect'' pedagogical talks, this time showing how one can use +Adobe's Poetica font set, comprising 21 fonts in two families, +exploiting the possibilities of the virtual font mechanism. Alan +showed us how his macro package together with the font metrics +generated by Alan Jeffrey's \texttt{fontinst} package are able to +typeset a sonnet by Shakespeare as though it were written in the most +beautiful calligraphy of a scribe. + +One can never exaggerate the importance of documentation, and to teach +first-year students the benefits of that approach an experiment was +started at Texas' A\&M University by teaching Knuth's \texttt{WEB} +system, that fully exploits combining code and documentation in the +same source. It was found that students who had to ``mix'' program +description and code acquired increased problem solving skills. They +tended to analyse their problems not merely in function of the +programming language used, but in terms of the more general literate +programming paradigm. Thanks to this increased awareness the students +who took the \texttt{WEB} course also were more successful in grasping +data structures and program development in general. + +The morning session was concluded by W{\l}odek Bzyl who showed how by +extending Nowman Ramsey's generic literate tool \texttt{noweb} with a +few stand-alone front-end programs, it became relatively easy to +create a \texttt{\TeX-WEB} system that is easy to understand for the +novice user. The system is extensible by allowing customized styles +and additional features. As an example he showed the literate source +of \texttt{plain.tex}, the \TeX{} source of Knuth's \texttt{plain} +format, and proudly handed a printed copy to Donald Knuth, who browsed +through it with great interest. + +After lunch Sebastian Rahtz discussed some advanced exotic features +of Timothy van Zandt's \texttt{PSTricks} package, that provides an +easy interface between the PostScript and \TeX{} languages +(\texttt{PSTricks}'s operating principles were described at +TUG94---see \TUB\ 15(3), pp.\ 239--246). The talk was a shortened +version of a three-hour presentation by Denis Girou, a well-known +\texttt{PSTricks} guru, at the GUTenberg meeting on June 1st in +Montpellier (France). By using the electronic version of the slides, +Sebastian could easily zoom in on fractions of text and drawings. +Fractals, complicated curves, like cycloids (this is the first time +that curves of this type published in books on calculus will +actually be drawn correctly, Don Knuth remarked when seeing the +beautiful and precise graphs), and three dimensional multi-colour +calendars were only of few of the graphics gems possible by this +approach. + +Jerry Marsden introduced his \texttt{FAS\TeX} system, a library of +standardized system-independent shortcuts for \TeX{} commands. At +present versions for Mac and Unix exist. This approach speeds up the +keying of input material and greatly increases the accuracy of the +final text. Abbreviations exist for most of the well know formats +and extensions, like the AMS packages. Commands can easily be edited +or added. This approach is especially interesting in an environment +where many non-specialist typists have to work together so that +consistency and ease of input are important considerations. + +After tea Denis Kletzing showed how he uses his \texttt{multienumerate} +package to handle complicated list structures. This environment +handles narrow numbered list entries by bundling them in multiple +columns. The drawback of the approach is that the user must specify +the actual layout by typing the explicit position of the entry via +different \Lcs{mitem\emph{ijk}} commands, where \texttt{\emph{ijk}} +are column identifiers. With a little more \TeX{} programming a lot of +the positioning can probably be made automatic, but the approach shows +that it is relatively straightforward to extend \LaTeX{} to cope with +moderately simple but useful structures. + +Jon Stenerson described the experience gained by using the style files +he developed for use with \emph{Scientific Word} and which he +described last year at TUG94 (\TUB\ 15(3), pp.\ 247--254). He thought +that the basic ideas of his original approach were still all right but +that most of them will have to be rewritten for streamlining and to +better reflect his present thoughts on the subject. + +At the end of the day the editors of the journals edited by the +various \TeX{} User Groups gave an overview of the problems +encountered and ways of improving communication and mutual +re-publication of worthwhile material. A few weeks before the +conference, an electronic discussion list coordinated by Christina +Thiele (TUG and former editor of \emph{TTN}) and Gerard van Nes (NTG, editor +of \emph{MAPS}) had been set up and allowed the editors to exchange valuable +information. Presentations were made by Sebastian Rahtz (editor of +the \ukt's \BV), Michel Goossens (for Jacques Andr\'e, editor +of GUTenberg's \emph{Cahiers GUT\-en\-berg} and \emph{Lettre + GUT\-en\-berg}), Christina Thiele (previous editor of TUG's \emph{TTN}), +Luzia Dietsche (editor of \textsc{Dante}'s \emph{Die \TeX{}nische Kom\"odie}), +Gerard van Nes (editor of NTG's \emph{MAPS}), Wietse Dol (editor of +the Euro\TeX95 Proceedings), Barbara Beeton (editor of \TUB), and +W{\l}odek Bzyl (editor of GUST's magazine). From the various talks it +became soon evident that most of the encountered problems were common +to most user groups' publications, with in particular often an extreme +dependence on a single individual so that when s/he is unavailable +the whole production process suffers. It was clear that a production +team of a few individuals is the only way out of this situation to +ensure that issues can be produced at more or less regular intervals. +Other themes were the difficulty of finding authors, and volunteers to +proofread, correct and edit the articles. All in all, editing a +journal is a non-trivial task and involves the dedication and hard +work of a lot of individuals. As Jacques Andr\'e summed it all up: +``An editor is like an organists at Sunday mass: if the music is good, +no one hears it; if it is bad, everyone cries.'' At the end of the +session Gerard distributed \emph{MAPS} awards to Christina Thiele for her +many years as \emph{TTN} editor and to Mimi Burbank for her hard work +organizing the TUG95 Conference. + +\section{Tuesday July 25th} + +As Donald Knuth only rarely attends TUG conferences these days +it was a real pleasure to have him with us at TUG95 and we gave him +the floor for the first part of the morning. After answering the +``usual'' first question---``when is volume four of \emph{The Art of + Computer Programming} coming out?'' (it will be published over several +years with about 200 pages coming out every six months or so)---he +talked at length about \TeX{} and how he would do it in basically the +same way if he were to start over today. A more detailed account of +Knuth's presentation will be published elseware based on notes taken +by Christina Thiele. + +After the break John Hobby, the author of \MP{}, gave a live +demonstration of his program which is now used by Knuth himself to +prepare the graphical material of his books. \MP{} implements a +picture-drawing language based on Knuth's \MF{}, but it outputs \PS{} +commands instead. It moreover gives access to all features of \PS{} +and allows easy inclusion of text and graphics (for more details on +\MP{} see the user guide available on CTAN or an introductory article +in the Euro\TeX92 Proceedings, pp.\ 21--36, Prague, Sep.\ 1992). + +The last set of presentations were about ``future systems''. First +Robin Fairbairns gave an introduction to Unicode. He reviewed the +winding road from 6-bit propriety codes for encoding information on +computers, to 7-bit ASCII-like codes, then to 8-bit EBCDIC and ISO +standards 8859-xx, specific language encodings, the 16-bit East-Asian +JIS, GB, KS and Big Five codes, to Unicode and 32-bit ISO 10646 (for a +detailed discussion of questions of encoding and multi-linguism see, +e.g., \emph{Cahiers GUTenberg} 20, pp.1--53). It is to be noted that Unicode +is the internal encoding used by Haralambous and Plaice's $\Omega$ +program, a 16-bit extension of \TeX{} (\TUB\ 15(3), pp.\ 320--324 and +344--352). Ji\v{r}\'{\i} Zlatu\v{s}ka then brought us up-to-date on +the \etex{} project, whose first version had just been distributed to +developers. Peter Breitenlohner complemented Ji\v{r}\'{\i}'s talk with +some more technical details on \etex{}. It all sounds like an +interesting development. + +During the first part of the afternoon Wietse Dol showed how easy it +is to use the ``plug-and-play'' 4all\TeX{} CD-system for PC's. An +interactive live presentation showed the ease with which the system +can be installed from the CD, and also how applications can be run. + +\section{Wednesday July 26th} + +Mark Swift was the first speaker of the day and in his talk +\emph{Modularity in \LaTeX} he explained that \LaTeX{} should be built +in a highly modular way. In particular an abstraction of functional +modules not mapped onto filenames would be an important point, as +shown by recent discussions on the \texttt{LATEX3} discussion list +where the ``forced'' uniqueness of filenames in the basic \LaTeX{} +distribution, like \texttt{article.cls}, was questioned. The speaker +proposed some possible extensions to \TeX{} and discussed his work on +the \texttt{frankenstein} package, which adds certain kinds of +modularity to \LaTeX. + +Bart Wage of Elsevier Science in Amsterdam gave an interesting +description of how journals are handled from source copy to +printed/electronic document. Text is converted into SGML, figures are +kept in various formats (e.g., TIFF, JPEG) and \LaTeX{} sources are +also translated into SGML using the Elsevier DTD. \LaTeX{} allows for +easy typesetting, but it has no formal DTD, making extensive tagging +somewhat difficult, while SGML allows for a formal DTD, where explicit +tagging of all document elements with respect to that DTD is possible. +Formal specifications exist for math, tables, bibliographic material, +etc.. Elsevier see SGML as an ideal exchange format between different +source representations. All documents are translated into SGML and +stored in the ``Warehouse'', which forms the common repository for the +various further uses of the documents. This is extremely important +for electronic documents, where re-use and structure-awareness are of +prime importance. Bart emphasized that a journal is not just a +collection of articles, but a real web of cross-links to related +topics and references, and the future of publishing lies in the +optimization of these facilities for all potential users. + +Pierre Mackay then read a paper on \emph{Modern Catalan Typographical + Conventions} written by Gabriel Valiente Feruglio, who could not +attend. It was an interesting journey in search of typographic rules +for scientific Catalan texts. The author complained that no normative +typographical conventions existed for his language and then went on to +propose a set based on his study of several reference texts. Finally +he introduced a set of possible \TeX{} definitions implementing these +rules. + +After coffee Petr Sojka gave one of the best technical papers of +TUG95---Petr got the ``Knuth'' prize of the Conference for discussing +something important that Knuth did not think about when developing +\TeX---a follow-up of his detailed paper describing the problems +of hyphenation with \TeX{} presented at in Gdansk in September 1994 +(Euro\TeX94 Proceedings pp.\ 59--68). This time he discussed the +problems of hyphenating long compound words, which occur very often in +German, Dutch, and the Slavic languages, since in these languages the +constituent parts are not signalled by a hyphen or other fill +character. This makes it often difficult, if not impossible, to +hyphenate words correctly. Therefore Petr suggests extensions to the +hyphenation algorithms of \TeX{} to successfully treat such cases +and he discussed in a generic way which basic functionalities +would be needed. Perhaps something to be implemented in (one of) the +``successor(s)-to-\TeX'', he commented (and Don seemed to agree). + +The last talk of the morning was by Sebastian Rahtz, who discussed +the translation of \LaTeX{} sources into SGML. His +presentation was a complement to Bart Wage's earlier that +morning. After working on the conversion problem for several months, +Sebastian came to the conclusion that the only foolproof way is to use +\TeX{} itself to output SGML, a solution implemented by ICPC in Dublin. +He is actually using an intermediate approach, (pioneered by +Sebastian and myself at CERN), which +translates most \LaTeX{} commands into SGML by redefinition of macros, +and then extracts the text from the dvi file. This system +copes with almost all \LaTeX{} commands (including math). + +The afternoon had presentations by convenors of various working +groups. First Norman Walsh presented the work of the \texttt{tds} +(\TeX{} Directory Structure) working group. He explained the rationale +of the choices that have been made, emphasizing that one of the basic +constraints had been ISO-9660, which (only) allows for directories +eight deep and limited to ``8+3'' case-insensitive names for files +(for DOS users this will sound as a blessing, I am sure). Since not +all \TeX{} engines support an optimized recursive directory search +major attention was paid to propose an efficient structure that +minimizes losses of efficiency while searching for package and +font-related files by \TeX. It was emphasized that a production +run-time directory structure, like \texttt{tds} is different in nature +to an archive, like CTAN, and that the two cannot be married easily. + +Tomas Rokicki and Michael Sofka then discussed the work in the +dvi-standard committee, especially the standardization of the various +\Lcs{special} commands, that had been discussed by an extremely active +interested group of implementors, meeting over several of ``working +breakfasts and lunches''. I think that real progress was made in this +area where a normative syntax had been awaited for too long. I am +very grateful for the enthusiasm shown by these people, and am +convinced that we shall see their work bear fruit in the near future +(Tom told he will be working actively on his program \texttt{dvips} +over the next few months, so that we can be sure, knowing Tom's +reputation, that many of the hyper- and other goodies discussed during +the conference, will become part of this, and other popular +dvi-drivers). + +After the refreshment break T.~V.~Raman gave a practical demonstration +of his ASTER system, which allows one to ``hear'' \LaTeX{} sources, +including mathematical formulas, being read out. His system uses a +speech synthesizer via an augmented emacs editor running with Common +Lisp, and is able to analyse, decode and then transcribe into +audible form well-structured \LaTeX{} documents. This last remark is +extremely important, since, as already pointed out by Sebastian Rahtz +in his talk earlier that day, due to the various (ambiguous) ways that +mathematics can be coded in \TeX{}, there exists no automatic way to +parse such \TeX{} source into something usable more generally, such as +SGML or audible sound. This was the loudest plea yet for using +well-structured markup. + +Just preceding the Conference dinner the editors of the various +\TeX-related magazines had a second meeting to discuss ways of +improving communication. It was decided to write a short overview of +the experiences of each team for \emph{TTN}, to provide cross-references to +each other's publications on the user groups' respective WWW pages, +where tables of contents of the magazines will be posted (in fact, +GUT\-enberg already decided to make freely available on the Internet +via WWW, all articles---initially in \PS{} form only---of the +\emph{Cahiers} and \emph{Lettre GUTenberg}). It was also proposed that +all non-English publications try and provide an abstract in both the +local language and in English, so that these abstracts can be +published in \TUB\ (or elsewhere). Editors were also asked to +signal potential articles that might be interesting for translation +into English and publication into \TUB\ (of course, editors can +translate articles from \TUB\ into their national language also!). +Presently, CSTUG, GUST, GUTenberg, NTG, TUG, and \ukt\ are working on +a TEXART CD-ROM that will make all publications of those user groups +available on this electronic medium (and on the Web). It was also +agreed that each author should be asked permission to reprint her/his +article(s) in this way. During the meeting Gerard had the pleasure to +offer the third \emph{MAPS} award to Barbara Beeton, the most senior and +long-standing editor present for her 16 years of efforts to make +\TUB\ an example of the typographic quality that can be achieved +with \TeX{}. + +At the end of the conference dinner in the evening a set of books +written (and dedicated) by Donald Knuth were put up for sale to the +highest bidder. Even Lamport's \LaTeX{} book got a nice inscription by +the hand of Knuth. After I let the the volumes of the ``Art of +Computer Programming'' escape I concentrated on the ``big one'', +namely the five volumes of \emph{Computers \& Typesetting}, who became +mine for the nice little round sum of \$700. Adorned with the +dedication of Donald Knuth this will remain one of the treasures of my +personal library! The sales were an outstanding success and about +\$1800 were collected towards the funding of the Euro\TeX{} bus which +will take participants from Russia and central Europe to the +Euro\TeX{}95 Conference in Papendaal (the Netherlands). Many thanks +to Addison-Wesley, who donated the books. + +\section{Thursday July 27th} + +In his presentation T.~V.~Raman gave an overview of ASTER---an Audio +System For Technical Rea\-dings---the system he demonstrated the day +before. ASTER renders \LaTeX{} documents in an audible way, so that +visually impaired persons can ``listen'' to their contents. Raman +emphasized the importance of the use of clear generic markup for the +input source document to ease the extraction of structural logical +information that can be easily translated into an internal +representation. ASTER then renders information by applying rendering +rules written in AFL---Audio Formatting Language---to the internal +representation. In a sense AFL is to audio formatting what \PS{} is to +visual formatting (although AFL is by far not as complex). As a +conclusion he emphasized that one needs a semantic-oriented DTD to +produce a high-quality audio document. Since no such completely +general DTD can be constructed, one has to use the facilities provided +by \LaTeX{} and its hyper\TeX{}t extensions. + +Mark Doyle next reviewed the purpose and history of the Los Alamos preprint +server, which is one of the first (and more successful) document +servers on the Web. In fact it started in the area of +(theoretical) High Energy Physics and took place in close +collaboration with CERN (where WWW was ``invented''). Today several +tens of thousands of preprints are available online and over 20000 +users visit the server each day. Although at present most documents +are only available as (mainly \TeX) source and standard \PS{}, they are +now producing \PDF{} versions that include cross-references to +other documents on the Web using the \texttt{hyper\TeX} tool and \PDF\ +hypertext links. In this way cross-references to other +documents can be easily instantiated. + +During the next half-hour I gave an introduction to Nikos Drakos' tool +\texttt{latex2html} and showed how by simple customization the visual +quality of the output HTML files can be substantially improved. I went +on the show how the \texttt{latex2html} system also allows for +interconnecting separate documents. I ended with a few examples of +HTML3 output generated by an ad-hoc program developed at CERN and +viewed with the HTML3-capable \texttt{arena} browser. + +After the break Sebastian Rahtz showed how with his \texttt{hypertex} +package (sharing some code with the \texttt{Hyper\TeX} package +discussed earlier by Mark Doyle) it is easy to turn \LaTeX{} documents +into hyper-documents. Their ``hyper'' contents can be enriched by +adding supplementary information about \LaTeX's cross-references via +\Lcs{special} commands. These are picked up and translated into +\PDF{}'s \texttt{pdfmark} commands by Mark Doyle's ``hypertext'' +\texttt{dvihps} program, an extension to Tom Rokicki's \texttt{dvips} +program. Tom stated that these extensions will end up, in one form +or another, in the forthcoming upgrade of standard \texttt{dvips}. + +The afternoon started by a second presentation of the \emph{4All\TeX} +system, and, as always, there was great admiration amongst all those +present for the ease with which it is possible to ``plug and play'', +i.e., start to setup and run the system without much ado. It became +all the more evident that such a CD-ROM for Unix is a real need, and a +recurring proposal for the next great thing that TUG should come up +with (and we are surely thinking about a way get this done). + +During the next hour I gave an introduction to SGML using HTML as an +example of a DTD, and showed that it is not difficult to understand +the structure and syntax of a DTD, and from there to figure out the +various possible document elements, their attributes and the entities +that are available to the user. Work on other DTD's for mathematics +and tables were briefly mentioned, as were a few tools for authoring +and checking SGML documents. I came away with the feeling that at the +end of my talk most of the audience had a more balanced view about +what SGML is, and what it is not. I therefore hope that my presentation +will also contribute to eliminate most of the artificial animosity +between the SGML and \TeX{} worlds. As Sebastian, myself and a few of +the other speakers tried to show, SGML is about structure, and \TeX{} +about typesetting, and the two tools are therefore complementary and +both useful. + +Chris Hamlin, in the last scheduled talk of the day, described the +production work at the American Physical Society, and, as expected, it +is similar in content, form, and structure to what we had heard by +other speakers (at this conference Elsevier, or at other conferences +Springer, OUP, etc.), namely a mixture of \TeX{} and other +word-processor inputs are accepted by the production team. The +proportion of \TeX{} sources varies wildly between publications +(between almost nothing in the chemical journals to well over 50--60\% +in some of the physical journals). Various house styles are available, +and at present ways are being investigated to translate the inputs +into SGML to take full advantage of electronic publishing tools. + +The last part of the afternoon was for the TUG Business meeting. + +\section{Friday July 28th 1995} + +Already Friday. It seemed as though the Conference only just started, +but the bags at the sides of the room and the now-empty vendor's room +made us realize that we were only here for another few hours. + +The morning started with a paper submitted by Jonathan Fine, but read +by Alan Hoenig in Jonathan's absence. The title was \emph{New + perspectives in \TeX{} Macros} and dealt with a possible way of +combining the advantages of both SGML and \TeX. His \TeX{} macro +package \textsc{simsim} takes SGML and style files as input and +generates pages formatted with \TeX{} as output. \textsc{simsim} comes +with an SGML parser and the style files are used to link \TeX{} +actions to SGML events. The \textsc{simsim} system also offers a +programming environment for writing \TeX{} macros and style files. At +present issues of performance were not addressed directly but on +sample documents the speed was comparable to that of \LaTeX{}. All by +all an interesting idea, and I look forward to see Jonathan's finished +product soon. + +Sergey Lesenko then told us about his \emph{t1part} tool that +partially embeds Type1 \PS{} font files into a document. The +principle is to include the \PS{} code for only those characters that +are actually referenced. This can result in huge savings in size if +one uses only a few characters from many fonts (the procedure is based +on the same model that includes only the necessary Type3 bitmaps for +characters built with \MF). Tom Rokicki and Sergey have been working +together over the last few months and this facility will be built into +the ``next'' version of Tom's \texttt{dvips}. I mentioned that Basil +Malushev has a somewhat similar utility \texttt{fload}, that uses the +publicly available \texttt{ghostscript} program to make a map of all +referenced fonts and then includes only the characters needed. +Basil's approach can be used for any kind of \PS{} file, so that it is +complementary to Sergey's which is well integrated with \TeX{} and +needs no supplementary external program. During the discussion there +were some interesting remarks on copyright issues connected with +including Type1 fonts inside documents. It was felt that, although +partial font loading would make pirating fonts less effective, it +does not mean that all font vendors would agree to let us include +their fonts in this way in files distributed electronically (on CD-ROMs +or the Internet). To be continued\ldots + +A more technical talk, on \MF{} this time, was Jeremy Gibbons' +presentation \emph{Dotted and dashed lines in \MF}. He showed that +drawing evenly spaced dotted and dashed lines in \MF{} is a +non-trivial task, and he proposed several solutions to make it +possible. He introduced the notions \emph{evenly spaced in time} as +opposed to \emph{equally spaced in space} and went on to show that +they are far from identical, since points can move at different +``speeds'' in space as they progress along a path evenly in time. +Using recursive adaptive refinement techniques he showed how one can +solve the problem in \MF. His procedure can be extended to allow for +dashed, or alternating dashes and dots. As recursive techniques have +the unwanted feature that they can overflow the stack, Jeremy also +proposed a solution based on an iterative non-adaptive technique that, +although perhaps less elegant and automatic, does the job almost +equally well. At the end of his talk he showed several attempts at +drawing an attractive muskrat, the logo of the \emph{Mississippi + Muskrats} jazz band he used to play in. + +The last scheduled talk was by Robin Fairbairns. After explaining the +principles of the \PS{} multiple master Type1 font format, Robin +showed how a crude first system of using these fonts with \TeX{} was +set up. All font instances are expressed in function of weights with +respect to the master designs. These weights are calculated by the +\PS{} interpreter from the design parameters via the \PS{} operator +\texttt{ConvertDesignVector}. One has to use version 3.x of the +\texttt{ghostscript} program to extract the weights, which were then +used to generate the Adobe Font Metrics (AFM) instances from the AFM +files for the master designs. Then Rokicki's \texttt{afm2tfm} program +was run to generate corresponding tfm files needed by \TeX{}, while a +header file was also defined to allow \texttt{dvips} to actually +specify the font instances from the weightvector. This set up was used +to typeset the last issue of \ukt's magazine \BV\ in +Minion, one of Adobe's Multiple Master fonts. + +The morning ended with the ``Closing Ceremony'' and the announcements +of the TUG95 prize winners. + +Christina Thiele, as vendor and public-relations liaison thanked the +various companies who had vendor booths or otherwise contributed to +the TUG95 conference, in particular Addison-Wesley for the books they +donated (and that were put on for sale on the Wednesday evening for +the Euro\TeX95 bus, and still a few left for another sales idea we are +playing with for spicing the TUG96 bursary. Stay tuned to \TUB\ or +\emph{TTN}!). + +Mimi Burbank, as Chair of the Organizing Committee, thanked all the +people at SCRI who helped her financially, organizationally, by +providing PC's or a printer. She also thanked the extremely efficient +hotel staff for their never-ending devotion to a job well-done. + +Sebastian Rahtz, the chair of the Programming Committee, then +announced the prize winners for TUG95. Just before coffee that +morning all participants were asked to write down an ordered list of +the four papers they liked most, and on the basis of that list it was +Raman who was selected as best presentation, best paper, and most +important contribution to the \TeX{} world (and humanity, one person +wrote). The Knuth prize, for the paper discussing something that he +``forgot'' in his \TeX{} program, went to Petr Sojka for his work on +hyphenation. Other prizes went to Richard Kinch for \texttt{MetaFog} +(who put his prize copy of Textures up for sale, so that the +Euro\TeX{} bus got again somewhat more money to take home), Alan +Hoenig for his marvellous Poetica work, Jeremy Gibbons for his +entertaining and erudite explanation of \MF, and Sergey Lesenko and +Tom Rokicki for partial font downloading, and work on dvi standards. +Many thanks are due to the fine \TeX\ vendors Blue Sky Research, Y\&Y, +PC\TeX, and Richard Kinch, who generously donated copies of their +products for the prizes. + +Of course we did not forget +our friends from NTG, without which this conference would not have +been the same. Their \emph{4All\TeX} CD-ROM was one of the highlights +at this conference (they sold about 40 copies, and the remaining 60 +were taken to the TUG office for selling them to the North American +TUG community). Their ``presence'', good humour, the organization of +the book auction, the coordination of the TEX-ED initiative and the +hundred or so photos they took made them a memorable and unforgettable +part of this meeting. Therefore a signed copy of the \MF{} book was +given to Wietse Dol. In a gesture underlining their dedication to +\TeX{} and TUG Wietse then offered TUG the two golden (original) +CD-masters of the third edition of \emph{4All\TeX} that just appeared. +I had the pleasure to receive them in name of TUG and I promised that +they would be framed and displayed in a prominent place in the TUG +office in San Francisco. The gifts were concluded with the UK \TeX\ +Users Group and TUG presented 2 bottles of wine, and 2 boxes of +chocolates, to Don Knuth, maintaining the `2' theme begun by NTG's 2 +CDs at the start of the conference. + +Finally it was my duty to formally end the TUG95 meeting, and after +thanking Knuth for his presence, which made this $2^{2^{2}}$th meeting +even more special, I re-iterated the thanks to all vendors, SCRI and +the hotel staff, for their display of (southern) American hospitality. +Then I invited all participants to the next (17th) TUG annual meeting +in 1996 in Dubna (Russia, 150 kms north of Moscow, on the Volga +River), where from July 28th to August 1st TUG96 will be hosted by the +Joint Institute of Nuclear Research. + +During the afternoon Alan Hoenig gave a partical introduction to the +use of virtual fonts. He showed how they can be used to create new +characters as various combinations of glyphs and rules. He described +how Alan Jeffrey's \texttt{fontinst} package allows one to easily +install \PS{} font families. In his usual pedagogical approach Alan +made it all sound as though it is extremely simple and +straightforward, and all fifty participants to this last ``event'' of +the conference came away with the feeling there were ready to generate +some virtual fonts themselves. + +\end{Article} + + + + + + + diff --git a/usergrps/uktug/baskervi/5_4/hewlett.tex b/usergrps/uktug/baskervi/5_4/hewlett.tex new file mode 100644 index 0000000000..2c2c8ca314 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hewlett.tex @@ -0,0 +1,25 @@ + +" \TeX for the Non-Technical + + The afternoon meeting on 18 October (after the UK \TeX + Users' Group AGM) will be devoted to the use of \TeX + and \LaTeX for work which is not full of equations---hence + non-technical. + + \TeX and \LaTeX have a lot to offer Arts and Humanities + specialists. Papers at this meeting will present introductions + to some of these features at a level suitable for the + non-technically inclined, so in keeping with both the + implications of the title for the afternoon. + + Carol Hewlett + Programme Organiser " + + +I promised Ro that I would finish the flyer for the +afternoon meeting that has to go out with Baskerville, +but it is not yet done. I imagine that it can go straight +to Robin for printing, replicating and stuffing, so I +will warn (if that's the word) him. + +Carol diff --git a/usergrps/uktug/baskervi/5_4/hhmuf.sty b/usergrps/uktug/baskervi/5_4/hhmuf.sty new file mode 100644 index 0000000000..2af77a1a0f --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhmuf.sty @@ -0,0 +1,600 @@ +% MULTINOTE (MUF) MACROS for LaTeX2e, version 1.11, +% written by Herman Haverkort, 13 may 1995 +% See end of file for information on warranty, distribution etc. + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{hhmuf}[1995/05/13 Multinote system] +\RequirePackage{hhqueue}[1995/02/14] +\RequirePackage{hhutils0}[1995/03/08] + +% ============================================================================= +% - \muf... (to set footnotes) +% +% \muf:{TEXT} for a ordinary footnote +% \muf LABEL:{TEXT} for a footnote which is labelled LABEL, +% to make it possible to reuse the footnote +% later on by stating: +% \muf LABEL:{} which sets the previously defined footnote +% labelled LABEL. +% Labels should not contain commas, periods or colons! +% If you use the same footnote several times, the multinote macros try +% to ensure that the actual footnote text appears at most once on +% every page. +% ============================================================================= + +\long\def\muf#1:#2{\@covermufpunct{% + \h@ifespecified{#1}{\@mufsymonly #1:{#2}\muftxtonly #1:}% + {\@mufsymonly tmp@:{#2}\muftxtonly tmp@:\muffire tmp@:}}} +% If no label is specified, a temporary label is used. + +% ============================================================================= +% - \mufsym... (to postpone the setting of footnote texts) +% +% If you use \mufsym instead of \muf, only the footnote's marker will be +% set. The footnote text itself will not be set until \muffin is called. +% \mufsym's syntax is similar to \muf's: you can use \mufsym:{TEXT}, +% \mufsym LABEL:{TEXT} and \mufsym LABEL:{}. \mufsym is especially useful +% for footnotes in `forbidden' environments, like tables and parboxes. +% Just say \mufsym in the forbidden environment, and call \muffin as soon +% as you get out of it. +% ============================================================================= + +\long\def\mufsym#1:#2{\@covermufpunct{% + \h@ifespecified{#1}{\edef\@@@lab{#1}}% + {\stepcounter{@muftmps}\edef\@@@lab{tmp@\roman{@muftmps}}}% + \h@enqueue{@@@lab}{mufs@postponed}% + \@mufsymonly \@@@lab:{#2}}} +% If no label is specified, one of the temporary labels tmp@i, tmp@ii etc. +% is used. The label is appended to the list of postponed footnotes. + +% ============================================================================= +% - \muffin (to set postponed footnote texts) +% +% \muffin sets all footnote texts which were postponed by using \mufsym +% since the last call to \muffin. +% ============================================================================= + +\def\muffin{{% + \@muffin + \setcounter{@muftmp}{0}% + \@whilenum \value{@muftmp}<\value{@muftmps}\do + {\stepcounter{@muftmp}\muffire tmp@\roman{@muftmp}:}% + \setcounter{@muftmps}{0}}} +\def\@muffin{% + \h@ifqnonempty{mufs@postponed}{% + \h@getfirst{@@@lab}{mufs@postponed}% + \muftxtonly \@@@lab:% + \@muffin}} +% \muffin calls \@muffin to set alle postponed footnotes. Then it frees +% all temporary labels and the markers assigned to them. + +% ============================================================================= +% - \mufoff +% +% The \mufoff macro makes handling forbidden environments even easier +% than \mufsym. This is the way to use it: +% \begin{ForbiddenEnvironment} +% \mufoff +% Lots of bla, possibly containing calls to \muf with fingers itching +% to set a footnote. However, \mufoff guarantees that those footnotes +% will be postponed like \muf were \mufsym. +% \end{ForbiddenEnvironment} +% \muffin +% +% Nesting several forbidden environments which all insist on calling +% \mufoff and \muffin is no problem. \mufoff redefines \muffin to do +% nothing, so that only the outer \muffin will result in an attempt +% to set footnotes, and that is exactly what should be done. +% ============================================================================= +% - \mufoff[ENVIRONMENTNAME] +% +% \mufoff[ENVIRONMENTNAME] makes handling forbidden environments even +% easier than basic \mufoff en \muffin. Type \mufoff[ForbiddenEnvironment] +% and all multinotes between \begin{ForbiddenEnvironment} and +% \end{ForbiddenEnvironment} will be postponed to just after closing +% the forbidden environment. +% For example: if you type \mufoff[tabular] in the preamble of your +% document, then \muf's in the tabular environment will be handled +% correctly automatically. Because that is so useful I already included +% it in this style file, like I did with \mufoff[array] and +% \mufoff[eqnarray]. +% ============================================================================= + +\def\mufoff{\@ifnextchar[\@mufoff{\def\muf{\mufsym}\def\muffin{}}} +\def\@mufoff[#1]{% Stole a great deal of this macro from + % Kresten Krab Thorup's ftn.sty! + \@ifundefined{h@mf@#1}{% + \expandafter\let\csname h@mf@#1\expandafter\endcsname + \expandafter=\csname #1\endcsname + \expandafter\let\csname h@mf@end#1\expandafter\endcsname + \expandafter=\csname end#1\endcsname + \@namedef{#1}{\bgroup\mufoff\@nameuse{h@mf@#1}}% + \@namedef{end#1}{\@nameuse{h@mf@end#1}\egroup\muffin}}{}} + +\mufoff[tabular] +\mufoff[array] +\mufoff[eqnarray] +\mufoff[minipage] + +% - \mufhire LABEL:{TEXT} (to define a footnote) +% +% The footnote labelled LABEL will be defined, but neither the text +% nor the marker will be set. +% ============================================================================= + +\long\def\mufhire#1:#2{{% + \edef\@@@lab{#1}% + \h@ifnonempty{mufgrp@\@@@lab}% + {\PackageWarning{hhmuf}{Refusing to redefine multinote `#1'.\MessageBreak + Muffire it first}}% + {\h@ifqempty{mufsyms@avail}% + {\PackageWarning{hhmuf}{Out of multinote symbols.\Messagebreak + Using `?' instead}% + \@namexdef{mufsym@\@@@lab}{?}}% + {\h@getfirst{mufsym@\@@@lab}{mufsyms@avail}}% + \h@enqueue{@@@lab}{mufgrp@\arabic{@mufgrplevel}}% + \@namexdef{mufgrp@\@@@lab}{\arabic{@mufgrplevel}}% + \@namegdef{muftxt@\@@@lab}{#2}% + \@namexdef{mufpag@\@@@lab}{}}}} +% If footnote symbols are available, the first one is chosen from the +% symbol queue \mufsyms@avail. The footnote text is stored and the +% page identifier is reset (see \muftxtonly for further explanation) + +% ============================================================================= +% - \muffire LABEL: (to undefine a footnote) +% +% \muffire frees the footnote's label and marker, to enable their use +% for footnotes which will be defined later on. +% ============================================================================= + +\def\muffire#1:{{% + \edef\@@@lab{#1}% + \h@ifnonempty{mufgrp@\@@@lab}% + {\edef\@tempa{\@arabic{\c@@mufgrplevel}}% + \edef\@tempb{\@nameuse{mufgrp@\@@@lab}}% + \ifx\@tempa\@tempb + \expandafter\ifx\@nameuse{mufsym@\@@@lab}?\else + \h@enqueue{mufsym@\@@@lab}{mufsyms@avail}\fi + \h@delete{@@@lab}{mufgrp@\arabic{@mufgrplevel}}% + \@namegdef{mufgrp@\@@@lab}{}% + \else + \PackageWarning{hhmuf}{Multinote `#1' was defined at level \@tempb,% + \MessageBreak so cannot muffire it at level \@tempa}% + \fi}% + {\PackageWarning{hhmuf}{Cannot muffire multinote `#1':\MessageBreak + it is not defined}}% + }} +% \muffire will free the footnote's label by emptying the footnote text, +% and free the footnote's marker by appending it to the footnote symbol +% queue \mufsyms_avail. Thus the available footnote symbols will usually be +% used in turn, which establishes some nice variation in the type-setting +% of your article, report or book. + +% ============================================================================= +% - \mufsymonly... (to set a footnote's marker without the text) +% +% The same as \mufsym, except for the footnote text, which will _not_ +% be set automatically by a following call to \muffin +% ============================================================================= + +\def\mufsymonly#1:#2{\@covermufpunct{\@mufsymonly{#1}:{#2}}} +\def\@mufsymonly#1:#2{% + \h@ifspecified{#2}{\mufhire #1:{#2}}{}% + \h@ifnonempty{mufgrp@#1}% + {\@makemufmark{\@nameuse{mufsym@#1}}}% + {\PackageWarning{hhmuf}{Reference to undefined multinote `#1'% + \MessageBreak}% + \@makemufmark{??}}} + +% ============================================================================= +% - \muftxtonly LABEL: (to set a footnote's text without its marker) +% +% The footnote text will be set, but no marker will show up at the +% reference point. +% ============================================================================= + +\def\muftxtonly#1:{{% + \h@ifnonempty{mufgrp@#1}% + {\edef\@tempa{\@arabic{\c@page}}\edef\@tempb{\@nameuse{mufpag@#1}}% + \ifx\@tempa\@tempb\else + \@mufinsert{\@nameuse{mufsym@#1}}{\@nameuse{muftxt@#1}}% + \@namexdef{mufpag@#1}{\@tempa}\fi}% + {\PackageWarning{hhmuf}{Cannot type-set multinote `#1':\MessageBreak + it is not defined}}}} +% \muftxtonly checks if the identifier of the current page equals +% the page identifier which is stored for the footnote to be set. +% If so, the footnote is already set on this page, so it should not be set +% again. If not so, it is set, and the current page identifier is stored. + +% ============================================================================= +% - \mufbegin{GROUP} (to start a multinote group) +% +% See \mufend for explanation +% ============================================================================= + +\def\mufbegin#1{% + \muffin + \stepcounter{@mufgrplevel}% + \h@initqueue{mufgrp@\arabic{@mufgrplevel}}{}% + \@namexdef{mufgrpname@\arabic{@mufgrplevel}}{#1}} +% \mufbegin increases the nesting level counter and initializes the list +% of footnote labels for the new level. It stores the group name for +% matching it with the \mufend later on. + +% ============================================================================= +% - \mufend{GROUP} (to end a multinote group) +% +% \mufend sets all postponed footnotes (like \muffin), and then muffires +% all footnotes which had been defined since the corresponding call to +% \mufbegin{GROUP}. Thus \mufbegin and \mufend establish some kind of +% footnote definition environment, called a mufgroup. +% Mufgroups can be nested, but if you do nest them, nest them properly. +% So this is not permitted: +% +% \mufbegin{A}\mufbegin{B}\mufend{A}\mufend{B}, +% +% while this is OK: +% +% \mufbegin{A}\mufbegin{B}\mufend{B}\mufend{A}. +% +% Whenever you enter a new group, a \muffin is performed and then all +% footnotes which have already been defined are frozen. You cannot fire +% them until the new group is closed with \mufend. So the following is OK: +% +% \mufhire F:{Foo}\mufbegin{B}\mufend{B}\muffire F: +% +% while this is not: +% +% \mufhire F:{Foo}\mufbegin{B}\muffire F:\mufend{B} +% +% Whenever you are in a group, you cannot redefine footnotes which have +% been defined already in some outer group, because in that case you +% would have to muffire the footnote, which is not allowed. You cannot +% even define a new footnote which is local to the group but gets the +% same label as some footnote which has been defined in some outer group +% (e.g. a global footnote). The muf macros are not that smart. So the +% following is not allowed: +% +% \mufhire F:{Foo}\mufbegin{A}\mufhire F:{bar} +% +% If you have closed all the groups you had opened (or if you never +% opened any), then you are in the outermost, nameless group. You can +% close that group with \mufend{}. It will muffire all footnotes you +% had defined, and automatically reopen a outermost nameless group. +% So it is a kind of: \muffin \muffire ALL. +% ============================================================================= + +\def\mufend#1{{% + \edef\@tempa{#1}\edef\@tempb{\@nameuse{mufgrpname@\arabic{@mufgrplevel}}}% + \ifx\@tempa\@tempb + \muffin + {\def\\##1{\muffire ##1:}\h@processq{mufgrp@\arabic{@mufgrplevel}}} + \global\advance\c@@mufgrplevel-1 + \ifnum\value{@mufgrplevel}=0\mufbegin{}\fi + \else + \PackageWarning{hhmuf}{Refusing to end multinote group \@tempb\ + by\MessageBreak\protect\mufend{\@tempa}} + \fi}} + +% *************************** +% * LAY-OUT * +% *************************** + +% ============================================================================= +% \mufword defines the word which is used in references to multinotes. +% It is `footnote'; redefine it if you like, preferably by defining the +% appropriate language option (see below). +% ============================================================================= + +\def\mufword{footnote~} + +% ============================================================================= +% \@makemufword defines how to format a footnote's marker (in the text, not +% in the insertion at the foot of the page). Redefine it if you like. +% ============================================================================= + +\def\@makemufmark#1{\hbox{$^{#1}$}} + +% ============================================================================= +% by default \@covermufpunct will pull periods and commas following a +% footnote's marker under the marker. With some definitions of \@makemufmark +% this will not be desirable: \@covermufpunct should be redefined to +% \def\@covermufpunct{} then. +% ============================================================================= + +\def\@covermufpunct#1{\def\next{\@@covermufpunct{#1}}\futurelet\@@@tok\next} + +\newcount\@gsavsf +\def\@@covermufpunct#1{\ifx\@@@tok.\def\next{\@@@covermufpunct{#1}}\else + \ifx\@@@tok,\def\next{\@@@covermufpunct{#1}}\else + \def\next{#1}\fi\fi\next} +\def\@@@covermufpunct#1{\global\@gsavsf=\spacefactor + \rlap{\spacefactor=\@gsavsf\@@@tok\global\@gsavsf=\spacefactor}\nobreak #1% + \spacefactor=\@gsavsf\@gobble} + +% ============================================================================= +% \@makemuftext defines how to format a footnote. It takes two arguments: +% #1 is the footnote's marker; #2 is the footnote text. Redefine it if you like. +% ============================================================================= + +\long\def\@makemuftext#1#2{% + \sbox\@tempboxa{ $#1$ }% + \@tempdima\smallunitindent{\wd\@tempboxa}% + \parindent\z@ \parskip\z@ + \@setpar{% + \@@par \@tempdimb\hsize\advance\@tempdimb-\@tempdima + \parshape \@ne \@tempdima \@tempdimb}% + \par + \noindent\llap{\hbox to \smallunitindent\z@{\hss$#1$ \hss}}#2} + +\providecommand{\smallunitindent}[1]{10pt} +% This is to prepare hhmuf for use with the hhtext class (when I write this it's +% still under construction). The hhtext class will provide a \smallunitindent +% macro with some self-scaling features. + +% ============================================================================= +% The following has been taken from LaTeX2e (\@footnotetext), +% with the necessary modifications. +% ============================================================================= + +\long\def\@mufinsert#1#2{\insert\footins{% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{\mufword\@makemufmark{#1}}% + \color@begingroup + \@makemuftext{#1}{% + \rule\z@\footnotesep\ignorespaces #2\@finalstrut\strutbox} + \color@endgroup}} + +% *************************** +% * SOME INTERNAL UTILITIES * +% *************************** + +\long\def\h@ifnonempty#1#2#3{% + \@ifundefined{#1}{#3}{\h@ifespecified{\csname #1\endcsname}{#2}{#3}}} + +% ****************************** +% * OPTIONS AND INITIALIZATION * +% ****************************** + +\newcounter{@muftmps} +\newcounter{@muftmp} +\newcounter{@mufgrplevel} +\h@initqueue{mufs@postponed}{} +\mufbegin{} +\AtEndDocument{\mufend{}} + +% ============================================================================= +% Below is a list of recognized language options. Probably their only use +% is the ability to redefine \mufword. +% ============================================================================= + +\DeclareOption{dutch}{\def\mufword{voetnoot~}} + +% ============================================================================= +% The following specifies the footnote markers which will be used for +% multinotes. You can replace it with your own specification if you like. +% Please note that it makes no sense to use symbols with a well-defined +% order: the muf macros will not respect it. +% To make it easier to choose out of the numerous possibilities for +% footnote markers I defined some sets of markers which can be selected by +% specification of the appropriate option. The recognized options are: +% - black 8 black symbols (requires amssymb.sty) +% - circlox 12 circle and box symbols (requires amssymb.sty) +% - fuss 10 miscellaneous symbols (requires amssymb.sty) +% - geometry 10 geometrical symbols (requires amssymb.sty) +% - misc 19 miscellaneous symbols (default) +% - music 3 music symbols +% - strokes 8 symbols made of thin strokes (requires amssymb.sty) +% Take care that you do not select a set which is too small for your purposes. +% ============================================================================= + +\def\@@@mufset{\mufset@misc} + +\DeclareOption{black}{\def\@@@mufset{\mufset@black}} +\def\mufset@black{% + \RequirePackage{amssymb} + \h@initqueue{mufsyms@avail}{% 7 symbols + \\{\bullet}\\{\blacklozenge}\\{\blacktriangledown}% + \\{\clubsuit}\\{\blacksquare}\\{\blacktriangle}% + \\{\blacktriangleleft}\\{\spadesuit}}} + +\DeclareOption{circlox}{\def\@@@mufset{\mufset@circlox}} +\def\mufset@circlox{% + \RequirePackage{amssymb} + \h@initqueue{mufsyms@avail}{% 12 symbols + \\{\oslash}\\{\odot}\\{\boxtimes}\\{\oplus}\\{\square}% + \\{\circledast}\\{\boxminus}\\{\otimes}\\{\circledcirc}% + \\{\boxdot}\\{\circleddash}\\{\boxplus}}} + +\DeclareOption{fuss}{\def\@@@mufset{\mufset@fuss}} +\def\mufset@fuss{% + \RequirePackage{amssymb} + \h@initqueue{mufsyms@avail}{% 10 symbols + \\{\ast}\\{\diamondsuit}\\{\circledast}\\{\divideontimes}% + \\{\sharp}\\{\star}\\{\clubsuit}\\{\aleph}\\{\infty}% + \\{\circlearrowleft}}} + +\DeclareOption{geometry}{\def\@@@mufset{\mufset@geometry}} +\def\mufset@geometry{% + \RequirePackage{amssymb} + \h@initqueue{mufsyms@avail}{% 10 symbols + \\{\blacklozenge}\\{\square}\\{\blacktriangledown}\\{\vartriangle}% + \\{\blacksquare}\\{\triangleleft}% + \\{\blacktriangle}\\{\lozenge}\\{\blacktriangleleft}\\{\triangledown}}} + +\DeclareOption{misc}{\def\@@@mufset{\mufset@misc}} +\def\mufset@misc{% + \h@initqueue{mufsyms@avail}{% 19 symbols + \\{\spadesuit}\\{\triangle}\\{\ominus}\\{\clubsuit}% + \\{\times}\\{\diamondsuit}\\{\otimes}\\{\wr}\\{\odot}\\{\vee}% + \\{\oplus}\\{\infty}\\{\star}\\{\oslash}\\{+}\\{\triangleleft}% + \\{\top}\\{\bullet}\\{\nabla}}} + +\DeclareOption{music}{\def\@@@mufset{\mufset@music}} +\def\mufset@music{% 3 symbols + \h@initqueue{mufsyms@avail}{\\{\sharp}\\{\flat}\\{\natural}}} + +\DeclareOption{strokes}{\def\@@@mufset{\mufset@strokes}} +\def\mufset@strokes{% + \RequirePackage{amssymb} + \h@initqueue{mufsyms@avail}{% 8 symbols + \\{\top}\\{\times}\\{\curlyvee}\\{+}\\{\veebar}\\{\nshortparallel}% + \\{\barwedge}\\{\wr}}} + +\ProcessOptions +\@@@mufset + +\endinput% *********************** +% * FAILURES AND POSSIBLE CAUSES * +% ******************************** +% +% ! Package hhmuf Warning: Refusing to redefine multinote `LABEL'. +% (hhmuf) Muffire it first. +% +% If you defined a footnote labelled LABEL, using \muf, \mufsym, +% \mufsymonly or \mufhire, you should call \muffire LABEL: before +% defining another footnote having the same label. +% +% +% ! Package hhmuf Warning: Out of multinote symbols. +% (hhmuf) Using `?' instead. +% +% A marker is assigned to each footnote which has been defined. Because +% the number of markers is limited, you will run out of markers if +% too many footnotes have been defined at the same time. To prevent this +% from happening, use \muffire to undefine footnotes as soon as you +% do not need them anymore. +% Keep in mind that each call to \mufsym:{TEXT} (even without a explicit +% label) reserves a marker, which will not be released until the +% next call to \muffin, \mufbegin or \mufend. +% Also each call to \muf:{TEXT} which is placed in a `forbidden' environment +% protected by \mufoff reserves a marker, which will not be released until +% the environment is closed. +% +% +% ! Package hhmuf Warning: Reference to undefined multinote `LABEL'. +% +% ! Package hhmuf Warning: Cannot type-set multinote `LABEL': +% (hhmuf) it is not defined. +% +% ! Package hhmuf Warning: Cannot muffire multinote `LABEL': +% (hhmuf) it is not defined. +% +% Should be evident. If it is not, please check if you did not close +% the group in which the multinote was defined already (using \mufend). +% One other mistake you could have made, is calling \muffire LABEL: +% somewhere between \mufsym LABEL:{OPTIONAL-TEXT} and the first \muffin +% following it. This happens implicitely if you call \muffire LABEL: +% somewhere between \muf LABEL:{OPTIONAL-TEXT} in a protected forbidden +% environment and the closure of that environment. +% Note that if the multinote LABEL is undefined, calling for example +% \muf LABEL:{} results in two warnings: one for the in-text +% multinote reference marker (`Reference to undefined...'), and another +% for the type-setting of the footnote itself (`Cannot type-set...'). +% +% +% ! Package hhmuf Warning: Reference to undefined multinote `tmp_'. +% (and similar messages) +% +% You used \muf:{} or \mufsym:{}, which does not make any sense. +% +% +% ! Package hhmuf Warning: Multinote `LABEL' was defined at level 1, +% (hhmuf) so cannot muffire it at level 3. +% (and similar messages) +% +% Since you defined the multinote LABEL, you opened another group which +% is still open. It is not possible to undefine the multinote then. +% Muffire before opening the current group, or after closing it. +% +% +% ! Package hhmuf Warning: Refusing to end multinote group `GROUPA' by +% (hhmuf) \mufend{GROUPB}. +% (and similar messages) +% +% This warning should be caused by mismatched \mufbegins and \mufends. +% Remember mufgroups should be properly nested. +% +% +% - The footnote's marker appears all right, but the text is missing +% +% Two possible causes: +% 1. You used \mufsym but forgot \muffin. +% 2. You used \muf, \muftxtonly or \muffin in some `forbidden' +% environment. The constraints are the same as for ordinary +% LaTeX footnotes, unless the environment is protected by +% \mufoff[ENVIRONMENT-NAME]. +% +% +% - A footnote text is set although it should not be there. +% +% You probably forgot some \muffin some time ago, so that the footnote +% texts, which should have been set by that \muffin, are set by a following +% \muffin. +% +% +% - A footnote text appears twice on the same page. +% +% LaTeX could have floated a identical footnote from the previous page to +% this one which cannot be detected by the multinote macros. +% Another possible cause is probably the multinote macros getting the +% the page number of the in-text marker wrong. This problem is very +% much like the inability to start the footnote numbering every page +% (which - by the way - is no problem if you use multinotes, because +% they use a shift-system for their numbering). This problem can be +% solved, and probably will be solved as soon as I encounter it in +% practice. +% In both cases correct the error `manually' by using \mufsymonly once +% instead of \muf or \mufsym, or by omitting a \muftxtonly. +% +% +% ************************************************** +% * PROBLEMS TO BE SOLVED / EXTENSIONS TO BE MADE: * +% ************************************************** +% +% - The last mentioned failure. +% - Enabling multinotes under minipages. +% - A switch to force muf to set footnote texts at most once at +% a pair of opposite pages. +% +% +% ******************************* +% * WARRANTY, DISTRIBUTION ETC. * +% ******************************* +% +% This is a TeX style file by Herman Haverkort. This file is distributed +% in the hope that it will be useful, but without any warranty; without +% even the implied warranty of merchantability or fitness for a particular +% purpose. The author does not accept any responsability for any damage, +% loss, injury, psychosis, annoyance, marital problems, murders etc. which +% are caused by this file. +% +% This style file has not been tested systematically, so there are +% probably undiscoverd errors in it. If you find one, if you have +% trouble using this file, if you have a suggestion for an extension or +% another modification, or if you are just a happy user, please report +% it to: +% Herman Haverkort +% Heyenoordseweg 40 +% NL-6813 GA Arnhem +% herman@fgbbs.iaf.nl +% +% You are allowed to change this file, but you are not allowed to distribute +% the changed version unless you obey the following: +% - give the changed version another file name than the original one; +% - record clearly in the changed version: +% - the original name of the file; +% - its original author; +% - that it is a changed version; +% - do not remove the restrictions on distributing this file. +% +% You are not allowed to take money for the distribution or use of either +% this file or a changed version, except for a nominal charge for copying +% etc. +% +% Have fun! + diff --git a/usergrps/uktug/baskervi/5_4/hhst11a.tex b/usergrps/uktug/baskervi/5_4/hhst11a.tex new file mode 100644 index 0000000000..50a8adc9ba --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst11a.tex @@ -0,0 +1,36 @@ +% step 1:
+\newcommand\getfootnotemarker[1]{%
+ \stepcounter{footnote}%
+ \newcounter{#1}%
+ \setcounter{#1}{\value{footnote}}%
+ \expandafter\newcommand\csname #1\endcsname
+ {\footnotemark[\value{#1}]}}
+\getfootnotemarker{notea}%
+\getfootnotemarker{noteb}%
+\getfootnotemarker{notec}%
+
+% step 2:
+\newcommand\tablenotes{%
+ \footnotetext[\value{notea}]{%
+ First example footnote}%
+ \footnotetext[\value{noteb}]{%
+ Second example footnote}%
+ \footnotetext[\value{notec}]{%
+ Third example footnote}}
+
+% step 3:
+\tablenotes
+\begin{center}
+\begin{tabular}{|l|l|}%
+\hline
+ name & amount in \$ \\
+\hline
+ Achterberg & 100 \\
+ Bosman & 150\notea \\
+ Evers & 125\noteb \\
+ Gerritsen & 145 \\
+ Hooier & 170\notec \\
+ Jansen & 165\notea \\
+\hline
+\end{tabular}
+\end{center}
diff --git a/usergrps/uktug/baskervi/5_4/hhst11b.tex b/usergrps/uktug/baskervi/5_4/hhst11b.tex new file mode 100644 index 0000000000..43374660db --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst11b.tex @@ -0,0 +1,19 @@ +\mufhire note1:{First example footnote}%
+\mufhire note2:{Second example footnote}%
+\mufhire note3:{Third example footnote}%
+%
+\begin{center}
+\begin{tabular}{|l|l|}%
+\hline
+ name & amount in \$ \\
+\hline
+ Achterberg & 100 \\
+ Bosman & 150\muf note1:{} \\
+ Evers & 125\muf note2:{} \\
+ Gerritsen & 145\muf:{Example
+ of an incidental note} \\
+ Hooier & 170\muf note3:{} \\
+ Jansen & 165\muf note1:{} \\
+\hline
+\end{tabular}
+\end{center}
diff --git a/usergrps/uktug/baskervi/5_4/hhst12a.tex b/usergrps/uktug/baskervi/5_4/hhst12a.tex new file mode 100644 index 0000000000..cff866e765 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst12a.tex @@ -0,0 +1,3 @@ +\renewenvironment{specialtext}%
+ {\par$\bigtriangledown$\par}%
+ {\par$\bigtriangleup$\par}
diff --git a/usergrps/uktug/baskervi/5_4/hhst12b.tex b/usergrps/uktug/baskervi/5_4/hhst12b.tex new file mode 100644 index 0000000000..051df077ba --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst12b.tex @@ -0,0 +1,6 @@ +\begin{specialtext}
+If I have a piece of text like this paragraph, which
+refers to a footnote\rlap{,}\footnote{which occurs
+frequently in my ever changing text} this should cause
+me no problems.
+\end{specialtext}
diff --git a/usergrps/uktug/baskervi/5_4/hhst12c.tex b/usergrps/uktug/baskervi/5_4/hhst12c.tex new file mode 100644 index 0000000000..e7a6c8435e --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst12c.tex @@ -0,0 +1,4 @@ +\renewenvironment{specialtext}%
+ {\par\setbox0\vbox\bgroup\hsize5cm\relax}%
+ {\egroup
+ \begin{center}\fbox{\box0}\end{center}}
diff --git a/usergrps/uktug/baskervi/5_4/hhst12d.tex b/usergrps/uktug/baskervi/5_4/hhst12d.tex new file mode 100644 index 0000000000..49d0027941 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst12d.tex @@ -0,0 +1,6 @@ +\begin{specialtext}
+If I have a piece of text like this paragraph,
+which refers to a footnote\muf:{which occurs
+frequently in my ever changing text}, this
+should cause me no problems.
+\end{specialtext}
diff --git a/usergrps/uktug/baskervi/5_4/hhst12e.tex b/usergrps/uktug/baskervi/5_4/hhst12e.tex new file mode 100644 index 0000000000..db8a6fd3c6 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst12e.tex @@ -0,0 +1,5 @@ +\renewenvironment{specialtext}%
+ {\par\setbox0\vbox\bgroup\hsize5cm\relax}%
+ {\egroup
+ \begin{center}\fbox{\box0}\end{center}}
+\mufoff[specialtext]
diff --git a/usergrps/uktug/baskervi/5_4/hhst22a.tex b/usergrps/uktug/baskervi/5_4/hhst22a.tex new file mode 100644 index 0000000000..bca28f10ff --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst22a.tex @@ -0,0 +1,7 @@ +\newcommand\sillyshape{%
+ \begin{picture}(2000,2000)
+ \thicklines
+ \put(1000,1000){\arc(0,1000){360}}
+ \put(1000,-498){\arc(662,749){83}}
+ \put(1000,2498){\arc(-662,-749){83}}
+ \end{picture}}
diff --git a/usergrps/uktug/baskervi/5_4/hhst22b.tex b/usergrps/uktug/baskervi/5_4/hhst22b.tex new file mode 100644 index 0000000000..1ae671a9e9 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst22b.tex @@ -0,0 +1,7 @@ +\newcommand\sillyframe[1]{%
+ \iframe\sillyshape(134,500){1732}{0pt}%
+ \ifrch\ifrcv:{\sepbox(0pt,2pt,0pt,2pt){#1}}}
+
+Now we can put \sillyframe{all}
+\sillyframe{sorts} \sillyframe{of}
+\sillyframe{things} in silly frames.
diff --git a/usergrps/uktug/baskervi/5_4/hhst22c.tex b/usergrps/uktug/baskervi/5_4/hhst22c.tex new file mode 100644 index 0000000000..1e0623a4cf --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst22c.tex @@ -0,0 +1,7 @@ +\newcommand\pagenrframe[1]{%
+ \iframe\sillyshape(134,500){1732}%
+ {0pt}\ifrch\ifrcv pagenr:{%
+ \sepbox(0pt,2pt,0pt,2pt){#1}}}
+
+framed numbers like \pagenrframe{\oldstylenums
+{21}} and \pagenrframe{\oldstylenums{25}}.
diff --git a/usergrps/uktug/baskervi/5_4/hhst22d.tex b/usergrps/uktug/baskervi/5_4/hhst22d.tex new file mode 100644 index 0000000000..b95527fa82 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst22d.tex @@ -0,0 +1,2 @@ +pages \lcenter{\pagenrframe{\oldstylenums{21}}}
+and \lcenter{\pagenrframe{\oldstylenums{25}}}
diff --git a/usergrps/uktug/baskervi/5_4/hhst22e.tex b/usergrps/uktug/baskervi/5_4/hhst22e.tex new file mode 100644 index 0000000000..33c329c449 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst22e.tex @@ -0,0 +1,14 @@ +\newcommand\jarshape{%
+ \begin{picture}(1800,1500)
+ \thicklines
+ \put(360,0){\line(-1,3){360}}
+ \put(0,1080){\line(3,1){1260}}
+ \put(540,1500){\line(1,0){720}}
+ \put(1440,0){\line(1,3){360}}
+ \put(1800,1080){\line(-3,1){1260}}
+ \put(360,0){\line(1,0){1080}}
+ \end{picture}}
+
+\newcommand\jarframe[1]{%
+ \iframe\jarshape(300,180){1200}{10pt}%
+ \ifrch\ifrb:{\separbox{1pt}{#1}}}
diff --git a/usergrps/uktug/baskervi/5_4/hhst23a.tex b/usergrps/uktug/baskervi/5_4/hhst23a.tex new file mode 100644 index 0000000000..1c52b80415 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst23a.tex @@ -0,0 +1 @@ +1\ringbox:{2}3 and 1\outringbox:{2}3
diff --git a/usergrps/uktug/baskervi/5_4/hhst24a.tex b/usergrps/uktug/baskervi/5_4/hhst24a.tex new file mode 100644 index 0000000000..d9bc04b7b7 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst24a.tex @@ -0,0 +1,4 @@ +\newcommand\templebox[1]{\sframe
+ [1]\fancycolumn [2]\fancytympan
+ [1]\fancycolumn [-]\-%
+ {\separbox{3pt}{#1}}}
diff --git a/usergrps/uktug/baskervi/5_4/hhst24b.tex b/usergrps/uktug/baskervi/5_4/hhst24b.tex new file mode 100644 index 0000000000..690d66295c --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst24b.tex @@ -0,0 +1,2 @@ +\templebox{hello there!} and \templebox{%
+ \vbox{\hbox{b}\hbox{y}\hbox{e}}}
diff --git a/usergrps/uktug/baskervi/5_4/hhst25a.tex b/usergrps/uktug/baskervi/5_4/hhst25a.tex new file mode 100644 index 0000000000..c855cd4158 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst25a.tex @@ -0,0 +1,5 @@ +\begin{sframed}%
+ [1]\fancycolumn [2]\fancytympan [1]\fancycolumn [-]\-
+ \begin{separboxed}{3pt}
+ \begin{broadboxed}{30pt}
+
diff --git a/usergrps/uktug/baskervi/5_4/hhst25b.tex b/usergrps/uktug/baskervi/5_4/hhst25b.tex new file mode 100644 index 0000000000..9d78fa1aa1 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst25b.tex @@ -0,0 +1,3 @@ + \end{broadboxed}%
+ \end{separboxed}%
+\end{sframed}
diff --git a/usergrps/uktug/baskervi/5_4/hhst32a.tex b/usergrps/uktug/baskervi/5_4/hhst32a.tex new file mode 100644 index 0000000000..5ca371cd73 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst32a.tex @@ -0,0 +1 @@ +\def\rulesseries{9}
diff --git a/usergrps/uktug/baskervi/5_4/hhst32b.tex b/usergrps/uktug/baskervi/5_4/hhst32b.tex new file mode 100644 index 0000000000..8f436cef2c --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst32b.tex @@ -0,0 +1,4 @@ +\combinecounters\rulesseries{%
+ \\{ruleschapter}%
+ \\{rulessection}%
+ \\{rulesparagraph}}
diff --git a/usergrps/uktug/baskervi/5_4/hhst32c.tex b/usergrps/uktug/baskervi/5_4/hhst32c.tex new file mode 100644 index 0000000000..a0a2166a4e --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhst32c.tex @@ -0,0 +1,12 @@ +\setcounterformat\rulesseries{#1-#2-#3}{%
+ \fcorfinally
+ % capitals for chapter numbers:
+ \fcformat{#1}{\fcalpha}%
+ % digits for section numbers:
+ \fcformat{#2}{\fcdigit}%
+ % a period to separate section and paragraph
+ % numbers:
+ \fcformat{#3}[.]%
+ % digits for paragraph numbers:
+ {\fcdigit}%
+ \fcordespair}
diff --git a/usergrps/uktug/baskervi/5_4/hhstyles.tex b/usergrps/uktug/baskervi/5_4/hhstyles.tex new file mode 100644 index 0000000000..b966bc2e97 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/hhstyles.tex @@ -0,0 +1,736 @@ +%\usepackage{hhmuf,hhflxbox} % for presentation +%\usepackage{hhcount} % for presentation +%\usepackage{amssymb,epic,curves} % for illustrations +%\usepackage{verbatim} % for verbatim displaying of examples +%\usepackage{xspace} % for ease of typing + +\makeatletter + +% The following has been copied from my personal tools style file hhutils.sty +% (NB: This is _not_ the same file as the public style file hhutils0.sty!) + +\def\={\verb=} +\def\<#1>{\macroname{#1}} +\def\:{\linebreak[1]} + +% The following input definitions used for examples: + +% \input hhst11a.tex and hhst11b.tex are input where needed +% \input hhst12a.tex up to hhst12e.tex are input where needed +\input hhst22a.tex +% hhst22b.tex, hhst22c.tex and hhst22d.tex are input where they are needed +\input hhst22e.tex +% hhst23a.tex is input where needed +\input hhst24a.tex +% hhst24b.tex is input where needed +\input hhst32a.tex +\input hhst32b.tex +\input hhst32c.tex + +\def\dashbox(#1,#2)(#3,#4){ + \dashline{40}(#1,#2)(#1,#4)\dashline{40}(#1,#4)(#3,#4) + \dashline{40}(#1,#2)(#3,#2)\dashline{40}(#3,#2)(#3,#4)} +\def\hmeasure(#1,#2)(#3,#4){ + \put(#1,#2){\makebox(0,0)[l]{$\blacktriangleleft$}} + \put(#3,#4){\makebox(0,0)[r]{$\blacktriangleright$}} + \drawline(#1,#2)(#3,#4)} +\def\vmeasure(#1,#2)(#3,#4){ + \put(#1,#2){\makebox(0,0)[b]{$\blacktriangledown$}} + \put(#3,#4){\makebox(0,0)[t]{$\blacktriangle$}} + \drawline(#1,#2)(#3,#4)} + +\def\fancycolumn#1#2#3#4#5#6#7#8{% + \sbox#1{% + \sfrcalclength{#2}{#3}{#4}% + \def\\##1;##2;{\vrule height\@tempdimq width ##1pt\kern ##2pt}% + \\0.05;0.15;\\0.60;0.44;\\1.11;0.65;\\1.45;0.77;\\1.57;0.77;% + \\1.45;0.65;\\1.11;0.44;\\0.60;0.15;\\0.05;0;}% + \sfrsetoffsets{15pt}{#3}{#4}#5#6#7#8}% +\def\fancytympan#1#2#3#4#5#6#7#8{% + \sbox#1{% + \sfrcalclength{#2}{#3}{#4}% + \unitlength\@tempdimq + \vbox{\hsize\@tempdimq\offinterlineskip + \hbox{\begin{picture}(1,0.1) + \thicklines + \put(0,0){\line(1,0){1}} + \put(0,0){\line(5,1){0.5}} + \put(0.5,0.1){\line(5,-1){0.5}} + \thinlines + \put(0.5,0.05){\circle*{0.072}} + \end{picture}} + \hbox{\vrule width\@tempdimq height 2pt}}}% + \sfrsetoffsets{\ht#1}{#3}{#4}#5#6#7#8}% + +% THE FOLLOWING DEFINITION IS ALSO INCLUDED VERBATIM AS AN EXAMPLE! +\newenvironment{templeboxed}{% + \begin{sframed}% + [1]\fancycolumn[2]\fancytympan[1]\fancycolumn[-]\- + \begin{separboxed}{3pt} + \begin{broadboxed}{30pt} +}{% + \end{broadboxed}% + \end{separboxed}% + \end{sframed}% +} + +\makeatother + + + +\title[\hhmuf, \hhflxbox\ and \hhcount packages]{HH Gets Carried Away: the \hhmuf, \hhflxbox\ and \hhcount packages} +\author[Herman Haverkort]{Herman Haverkort\\\emph{Email}: \texttt{herman@fgbbs.iaf.nl}} +\begin{Article} + +\begin{abstract} +\end{abstract} + +In this article I present some of the features of three packages, +\hhmuf, \hhflbox\ and \hhcount, that I have written recently. However, +this presentation is far from complete. A more detailed manual and +the packages themselves can be obtained from the author at {\sc fgbbs} +(tel. +31 85 21 70 41) or CTAN +(\path|macros/latex/contrib/supported/hh|. \hhmuf\ offers `multinotes' +---special cheery footnotes to be used in special situations, +including so-called `forbidden environments'. \hhflxbox's provides +self-scaling frames: encircling macros are provided but you can define +whatever features you like by means of the macros provided. Finally +\hhcount is presented: macros to handle simple and composite counters +in a fancy way. \scheiding + +\section{Some Features of the \hhmuf Package} + +\subsection{Reusable Footnotes and Recycled Markers} + +Suppose you have to typeset some tables containing many entries which are +amplified by footnotes outside the table. Several entries, possibly but not +necessarily in the same table, refer to the same footnote. +If references to the same footnote appear in different tables on different +pages, the footnote text should be set on all pages involved, +while the footnote marker should be the same each time the footnote is +set. The first to avoid unnecessary turning over, the second to avoid +confusion. + +Typesetting such tables is not very easy in basic \LaTeX. A relatively easy +way to do the job is probably as follows:\begin{enumerate} +\item first get markers for all the footnotes and define macros to set + the footnote markers; +\item then define a macro \<tablenotes> which typesets the footnotes; +\item then typeset the tables, using the macros defined in the steps + mentioned above; +\end{enumerate} +Here is some example input: + +\verbatiminput{hhst11a.tex} +And the resulting output: + +\input hhst11a.tex + +This article is too short to demonstrate it, but when typesetting multiple +tables this way problems are likely to arise. If you typeset +another table on the same page, calling \<tablenotes> again will cause the +footnote texts to be typeset twice on the same page. If you typeset +another table on another page, {\em all} table footnote texts will be +typeset on that page, even if the table which is on that page does +not refer to all of them. + +The \hhmuf package solves these problems, although the solution of +the twice-on-the-same-page problem may be buggy in rare contexts. +If you use the \hhmuf package you can replace the previous listing by +the following: + +\verbatiminput{hhst11b.tex} +And get this result: + +\input hhst11b.tex + +You will note that \=\mufhire= {\it label\/}\=:{={\it footnote text\/}\=}= +is used to define footnotes. Its opponent is, of course, +\=\muffire= {\it label\/}\=:=, which undefines footnotes, while +\=\muf= {\it label\/}\=:{}= is used to set previously defined +footnotes. As shown in the example, \=\muf=\:\=:{={\it footnote text\/}\=}= +can be used to set incidental footnotes. \=\muf=\:\=:{={\it footnote text\/}\=}= +actually acts as an abbreviation for hiring, typesetting and firing +an incidental note. Thus it is well-suited for setting normal in-text +footnotes. + +\hhmuf does not use common footnote markers. Most common sets of +symbols have a well-defined order which makes them ill-suited for +\hhmuf since the \hhmuf macros do not respect that order. +While defining footnotes, markers are assigned in turn. Thus there is +no need to restart footnote numbering every chapter or every page, +because you never run out of markers, unless you hire a lot of them +without ever firing any. Restarting footnote numbering does +not make sense anyway because there is no such +thing as a {\em first} marker. + +The set of markers used by \hhmuf can be fully specified by the user, +either by selecting one of the predefined sets or by compiling a new one. +The predefined sets are the following: +\begin{center} +\begin{tabular}{|l|l|}\hline + set name & markers included\\ +\hline\hline + black & $\bullet$\,$\blacklozenge$\,$\blacktriangledown$\,$\clubsuit + $\,$\blacksquare$\,$\blacktriangle$\,$\blacktriangleleft$\,$\spadesuit$\\ +\hline + circlox & $\oslash$\,$\odot$\,$\boxtimes$\,$\oplus$\,$\square$\,$\circledast$\,$\boxminus + $\,$\otimes$\,$\circledcirc$\,$\boxdot$\,$\circleddash$\,$\boxplus$\\ +\hline + fuss & $\ast$\,$\diamondsuit$\,$\circledast$\,$\divideontimes$\,$\sharp + $\,$\star$\,$\clubsuit$\,$\aleph$\,$\infty$\,$\circlearrowleft$\\ +\hline + geometry & $\blacklozenge$\,$\square$\,$\blacktriangledown$\,$\vartriangle$\,$\blacksquare + $\,$\triangleleft$\,$\blacktriangle$\,$\lozenge$\,$\blacktriangleleft$\,$\triangledown$\\ +\hline + misc & $\spadesuit$\,$\triangle$\,$\ominus$\,$\clubsuit$\,$\times + $\,$\diamondsuit$\,$\otimes$\,$\wr$\,$\odot$\,$\vee + $\,$\oplus$\,$\infty$\,$\star$\,$\oslash$\,$+$\,$\triangleleft$\,$\top$\,$\bullet$\,$\nabla$\\ +\hline + music & $\sharp$\,$\flat$\,$\natural$\\ +\hline + strokes & $\top$\,$\times$\,$\curlyvee$\,$+$\,$\veebar$\,$\nshortparallel$\,$\barwedge$\,$\wr$\\ +\hline +\end{tabular} +\end{center} +For details see the documentation in the package file. + +\subsection{The Forbidden Environment Problem} + +Suppose I typed several pieces of text that have to be typeset all +in the same special way. For that purpose I (re)defined an environment +\envirname{specialtext}: + +\verbatiminput{hhst12a.tex} +\newenvironment{specialtext}{}{}\input hhst12a.tex +\input hhst12b.tex +Then I defined a package option in the package I used to typeset +my document. If I specified that option when loading the package, +then \envirname{specialtext} would be defined as follows: + +\verbatiminput{hhst12c.tex} +\input hhst12c.tex +Now problems arise. I typeset the same text again: +\input hhst12b.tex +The paragraph is shown framed all right, but something went wrong with +the footnote. With the new definition of \envirname{specialtext}, +the footnote suddenly appears in a `forbidden' environment and therefore it +actually disappears. Although the in-text marker is typeset, there is +no note at the foot of the page. + +While writing this article I discovered Kresten Krab Thorup's style +file {\tt ftn.sty}\rlap{,}\footnote{Available at {\sc ctan} as +{\tt macros/latex209/contrib/misc/ftn.sty}} +which attempts to solve this problem but does so +quite buggily. Footnotes disappear when forbidden environments are nested. +When multiple footnotes are type-set in forbidden environments, footnotes +are repeated and their numbering is wrong. A modified version of +{\tt ftn.sty} exists (by Zdenek Wagner), which solves the repetition problem +correctly, and suppresses incorrect numbers by omitting them: at least that +is what I got. I tried to contact Krab Thorup about making +{\tt ftn.sty} more robust, but have not so far succeeded. +Nevertheless Krab Thorup's style file contained some very useful ideas, +which I combined with my own ideas to construct a set of macros which +seem to be quite robust. I will now show you the result: how easy it is +to use \hhmuf's footnotes in forbidden environments. + +The kind of unpleasant surprises presented above is easy to prevent when +typesetting footnotes with \<muf> instead of \<footnote>, +as in: + +\verbatiminput{hhst12d.tex} +When using the first definition of \envirname{specialtext}, this +yields: +\input hhst12a.tex +\input hhst12d.tex +In the following example the second definition of \envirname{specialtext} +is used, but I added one line of code to `protect' the environment: + +\verbatiminput{hhst12e.tex} + +And here is the result: +\input hhst12e.tex +\input hhst12d.tex + +Without changing the text in my document, I could redefine +\envirname{specialtext} to use forbidden environments in such a way +that my footnotes did not disappear. \<mufoff> did the job. + +\subsection{Shortcomings: \envirname{minipage} Fans Beware!} +\hhmuf does not support \envirname{minipage}s yet. If \<muf> is used +in a \envirname{minipage} environment, the footnote will be placed +at the foot of the `master page' instead of under the \envirname{minipage}! + +\scheiding + +\section{The \hhflxbox Package} +\hhflxbox contains a number of boxing macros. The kernel consists of +\<iframe>, which boxes things and sets self-scaling frames around, and +\<sframe>, which sets more complex self-scaling and -stretching frames. +Besides \hhflxbox provides the encircling macros \<ringbox>, \<bellybox> +and \<outringbox> (which use \<iframe>), the macros \<sepbox> and +\<separbox>, which set empty space around boxes, and \<broadbox>, which +boxes its argument in a \<vbox> of which the width is the line width +minus some specified value. + +\subsection{\<sepbox> and \<separbox>} +For the introduction of \<sepbox> and \<separbox> it is convenient to +look at \<bellybox> first. \<bellybox> is one of the +\hhflxbox macros which can be used to encircle things, for example +\bellybox:{3}, which is set with: \=\bellybox=\:\=:{3}=. + +You probably notice that the circle around the digit is somewhat +tight. This problem can be solved by putting a \<separbox> around the +digit, as in \=\bellybox=\:\=:{\separbox=\:\={1pt}{3}}=, which +yields: \bellybox:{\separbox{1pt}{3}}. +Actually \=\separbox=\:\={={\it dimension\/}\=}{={\it stuff\/}\=}= puts +{\it dimension\/} wide empty space around {\it stuff\/} on all sides. + +A more general form is:\\ +\=\sepbox=\:\=(={\it leftspace\/}\=,={\it topspace\/}% +\=,={\it rightspace\/}\=,={\it bottomspace\/}\=){={\it stuff\/}\=}= +which adds empty spaces of the specified widths to the sides of the box +containing {\it stuff\/}. + +\subsection{\<iframe>: Isomorphous Frames} +\<iframe> is only a frame drawing {\em tool}: it does not draw frames +itself but it can take care of the proper positioning and scaling of frames +drawn by other macros. To explain the functioning of \<iframe> it is +probably best to give an example of the development of a framing macro +using \<iframe>. + +Suppose we want to set self-scaling frames which have the following shape: +\begin{center}\unitlength.01pt\sillyshape\end{center} +then we could imagine a box-shaped area in the frame which will contain +the frame's contents (the inner dashed box in the figure below). Also +we could imagine a box surrounding the frame (the outer dashed box in +the figure). +\begin{center}\unitlength.05pt\noindent + \hbox{% + \rlap{\sillyshape}% + \begin{picture}(2000,2000) + \thinlines + \dashbox(0,0)(2000,2000)\dashbox(134,500)(1866,1500) + \hmeasure(134,500)(0,500)\put(67,450){\makebox(0,0)[t]{$x$}} + \vmeasure(134,500)(134,0)\put(184,150){\makebox(0,0)[l]{$y$}} + \hmeasure(134,1250)(1866,1250)\put(1000,1300){\makebox(0,0)[b]{$w$}} + \vmeasure(584,500)(584,1500)\put(634,800){\makebox(0,0)[l]{$h=1000$}} + \end{picture}}% +\end{center} + +Since \<iframe> expects the inner box height to be $1000$ times the +\<unitlength>, all dimensions have to be chosen so that the inner box +height equals $1000$ indeed. Then \<iframe> can scale the frame by +setting the \<unitlength>. Furthermore \<iframe> expects the lower left +corner of the outer box to have coordinates $(0,0)$. Taking these +expectations in account we can design a macro which draws the frame: + +\verbatiminput{hhst22a.tex} + +\noindent (\<arc> is defined in the \packagename{curves} package by +I.~L.~Maclaine-Cross.) Now we can define a silly shape framing macro +by defining \<sillyframe> +as: \=\iframe=\:\=\sillyshape=\:\=(=$x$\=,=$y$\=){=$w$\=}{0pt}\ifrch=\:% +\=\ifrcv=\:\=:{#1}=. Actually we will set \=#1= in a +\=\sepbox=\:\=(0pt,2pt,0pt,2pt){#1}= to prevent the frame from touching +its contents. In the above example we have $x=134$, $y=500$ and $w=1732$, +so we write: + +\verbatiminput{hhst22b.tex} + +\input{hhst22b.tex} + +Note that I do not claim this kind of silly frame to be good-looking: +it is just an example. + +The dimension \=0pt= in the example above determines the minimal height +of the silly frame's inner box. Sometimes it is necessary to define it +because \LaTeX's picture environment suppresses small line segments. + +The macro \<ifrch> determines what should be done if the frame's +contents width/height ratio is too small. By specifying \<ifrch> +we instruct \<iframe> to center the contents. Instead of +\<ifrch> we could have specified \<ifrl> or \<ifrr> to +have the contents flush left or right. + +The macro \<ifrcv> determines what should be done if the frame's +contents height/width ratio is too small. \<ifrcv> yields +vertical centering, while \<ifrt> and \<ifrb> yield top and bottom +flushing. + +If we put frames around for example page numbers, then +the self-scaling properties of isomorphous frames may have an unpleasant +result: numbers of the same type, like +page number \sillyframe{\oldstylenums{21}} and +page number \sillyframe{\oldstylenums{25}}, might get differently sized +frames because of their different natural sizes. This can be solved by +redefining \<sillyframe> to specify a {\em unit name}, since all things +typeset with the same unit name get equally sized frames. The unit name, +for example \=pagenr=, should be placed between the vertical alignment +specification and the colon, like in: + +\verbatiminput{hhst22c.tex} +which yields (after compiling our document twice): + +\input hhst22c.tex + +However, this is not fully satisfactory yet: now the frames are equally +sized but the first frame is positioned higher than the second. +This is no bug, it is a feature. No really, it is! It is, however, a +sometimes unwanted feature. The solution is using \<lcenter> to center +the frames on their line, like in: + +\verbatiminput{hhst22d.tex} + +\noindent resulting in: + +\input hhst22d.tex + +\leavevmode\jarframe{As} a final example of isomorphous frames, consider +the following framing macro. +Note that the inner box height is $1000$ again, as expected +by \<iframe>. +\begin{center}\unitlength.05pt\noindent + \hbox{% + \rlap{\jarshape}% + \begin{picture}(1800,1500) + \thinlines + \dashbox(0,0)(1800,1500)\dashbox(300,180)(1500,1180) + \hmeasure(300,180)(0,180)\put(150,280){\makebox(0,0)[br]{$x=300$}} + \vmeasure(300,180)(300,0)\put(400,60){\makebox(0,0)[l]{$y=180$}} + \hmeasure(300,930)(1500,930)\put(1050,980){\makebox(0,0)[b]{$w=1200$}} + \vmeasure(550,180)(550,1180)\put(600,500){\makebox(0,0)[l]{$h=1000$}} + \end{picture}}% +\end{center} + +\verbatiminput{hhst22e.tex} + +\subsection{\<ringbox>, \<bellybox> and \<outringbox>: Encircling} + +\=\ringbox{={\it optional unit name\/}\=}:{={\it stuff\/}\=}= sets +a circle around {\it stuff\/}. The specification of a unit name is optional; +its use is explained above. + +\<outringbox> is very much like \<ringbox>, +but the following example demonstrates their difference: + +\verbatiminput{hhst23a.tex} +yields: + +\input hhst23a.tex + +If \<ringbox> is used, the circle contributes to the width, height and +depth of the result. If \<outringbox> is used, the circle does not +contribute any width, height or depth, so that the text is typeset as +if the circle were not present and the circle were added after typesetting +the text. + +The result of \<bellybox> is a circle which contributes a bit to the +dimensions of the encircled result but also sticks out a bit +(by 10 percent of its radius to be sort of exact). So \<bellybox> is +an intermediate form of \<ringbox> and \<outringbox>. + +\subsection{\<sframe>: Stretchable Frames} + +Putting \<sframe> to good use is a rather complex task. \<sframe> +assembles user-defined frame components which actually are macros which +set the values of a box and several dimension registers. Therefore I +decided to give only an example of what can be achieved in this article; +for explanation see the manual and demo files available at {\sc fgbbs}. + +If one has defined suitable macros \<fancycolumn> and \<fancytympan>, one +can define: + +\verbatiminput{hhst24a.tex} + +\noindent which should be read as: after 3pt wide empty space is set +around \=#1=, first add columns to the left and the right, second put +a tympan on top of the result, and never put anything at the foot. +Then typing this: + +\verbatiminput{hhst24b.tex} +will yield: + +\leavevmode\input hhst24b.tex + +\subsection{\<broadbox> for Setting Line Wide Frames} + +\noindent +\begin{templeboxed} +\<broadbox> can be useful to set frames that fill the line. Its use is best +explained through an example. Suppose we want to set a paragraph of text +in a line wide temple box. Then the lines will be filled by (from left to +right): a column, empty space added by \<separbox>, text, empty space and +a column. In other words: the whole line is available for setting text, +except for the space needed by the columns and the empty space set by +\<separbox>. The columns are 12pt each while \<separbox> adds 3pt wide empty +space to the left and the right: that makes a total of 30pt. So we write: +\=\templebox=\:\={\broadbox=\:\={30pt}{\broadbox= \=can= \=be= \ldots +\=\textit=\:\={dimension}.}}=, which yields a paragraph typeset like this. +So \=\broadbox=\:\={={\it dimension\/}\=}{={\it stuff\/}\=}= sets {\it stuff\/} +in a \<vbox> which has width line width minus \textit{dimension}. +\end{templeboxed} + +\subsection{Environment Versions} + +Some of the macros defined in \hhflxbox are available as \LaTeX\ +environments. For example: instead of \=\broadbox=\:\={30pt}{={\it +text to be boxed\/}\=}= one could also use \=\begin=\:\={broadboxed}{30pt}= +{\it text to be boxed\/}\=\end=\:\={broadboxed}=. Similarly one +could use the environments \envirname{sepboxed}, \envirname{separboxed} +and \envirname{sframed} instead of the macros \<sepbox>, \<separbox> +and \<sframe>. + +Actually I have to confess something: I lied to you about the +typesetting of the section about \<broadbox>. I did it with: + +\begin{verbatim} +\newenvironment{templeboxed}{% + \begin{sframed}% + [1]\fancycolumn [2]\fancytympan + [1]\fancycolumn [-]\- + \begin{separboxed}{3pt} + \begin{broadboxed}{30pt} +}{% + \end{broadboxed}% + \end{separboxed}% + \end{sframed}% +} + +\begin{templeboxed}% + \broadbox can be useful to set frames that + : : : : : + width line width minus dimension. +\end{templeboxed} +\end{verbatim} + +I hope you will forgive me my cheating. I mean, without using +these environments, typesetting verbatim stuff is so troublesome\ldots + +\scheiding + +\section{Some Features of the \hhcount Package} + +\subsection{Simple Number Formatting} + +Let us start by summarizing the simple +number formatting macros which are provided by \hhcount: +\begin{center} +\begin{tabular}{|l|c||c|}\hline + example input & \vbox{\hbox{corresp.\strut}% + \hbox{output\strut}} & + \vbox{\hbox{other example\strut}% + \hbox{output\strut}} \\ +\hline\hline + \=\fctabdigit{2}= & \fctabdigit{2} & \fctabdigit{29} \\ +\hline + \=\fcolddigit{2}= & \fcolddigit{2} & \fcolddigit{29} \\ +\hline + \=\fcloweralpha{2}= & \fcloweralpha{2} & \fcloweralpha{29} \\ +\hline + \=\fcbigalpha{2}= & \fcbigalpha{2} & \fcbigalpha{29} \\ +\hline + \=\fcsmallalpha{2}= & \fcsmallalpha{2} & \fcsmallalpha{29} \\ +\hline + \=\fclowerroman{2}= & \fclowerroman{2} & \fclowerroman{29} \\ +\hline + \=\fcbigroman{2}= & \fcbigroman{2} & \fcbigroman{29} \\ +\hline + \=\fcsmallroman{2}= & \fcsmallroman{2} & \fcsmallroman{29} \\ +\hline + \=\fcbigromanlined{2}= & \fcbigromanlined{2} & \fcbigromanlined{29} \\ +\hline + \=\fcsmallromanlined{2}= & \fcsmallromanlined{2} & \fcsmallromanlined{29} \\ +\hline + \=\fcbigdice{2}= & \fcbigdice{2} & \fcbigdice{29} \\ +\hline + \=\fcsmalldice{2}= & \fcsmalldice{2} & \fcsmalldice{29} \\ +\hline + \=\fcbigscore{2}= & \fcbigscore{2} & \fcbigscore{29} \\ +\hline + \=\fcsmallscore{2}= & \fcsmallscore{2} & \fcsmallscore{29} \\ +\hline + \=\fcfnsymbol{2}= & \fcfnsymbol{2} & \\ +\hline +\end{tabular} +\end{center} + +The next step in complexity are number formatting macros which give +context-dependent output. This is implemented by using the {\it context +switches} \=\if@fcoldstyle= and \=\if@fcsmall=, which are set by +context switching macros like \<fcinheading> and \<fcintext>. We say that +a context switching macro is active if it was the last one to affect +the context switches. +\begin{center} +\begin{tabular}{|l|c|c|}\hline + example input & \vbox{\hbox{output when\strut}% + \hbox{\<fcinheading>\strut}% + \hbox{is active\strut}} + & \vbox{\hbox{output when\strut}% + \hbox{\<fcintext>\strut}% + \hbox{is active\strut}} \\ +\hline\hline + \=\fcdigit{14}= & {\fcinheading\fcdigit{14}} & {\fcintext\fcdigit{14}} \\ +\hline + \=\fcalpha{14}= & {\fcinheading\fcalpha{14}} & {\fcintext\fcalpha{14}} \\ +\hline + \=\fcroman{14}= & {\fcinheading\fcroman{14}} & {\fcintext\fcroman{14}} \\ +\hline + \=\fcromanlined{14}= & {\fcinheading\fcromanlined{14}} + & {\fcintext\fcromanlined{14}} \\ +\hline + \=\fcdice{14}= & {\fcinheading\fcdice{14}} & {\fcintext\fcdice{14}} \\ +\hline + \=\fcscore{14}= & {\fcinheading\fcscore{14}} & {\fcintext\fcscore{14}} \\ +\hline +\end{tabular} +\end{center} + +By default \<fcinheading> is active; \<fcintext> is active when using +\<ref> or \<pageref> (those two macros are redefined by \hhcount). + +\subsection{How to Define Composite Counters} + +I will now try to give an impression of the way in which composite +counters can be defined using \hhcount. However, this is \emph{not} a manual. +After reading the following paragraphs you may be able to hack a +composite counter together yourself, by imitating what is done below +and experimenting with some small modifications of your own. If you +want to be taught how to use \hhcount efficiently and effectively, then +you should read the manual. + +Suppose we want to set up a three-level section numbering system for +some sub-document in another document, for example the rules of a club +embedded in some booklet about that club. +The section numbers should be composed from the values of three +\hbox{(sub-)}counters: {\tt ruleschapter}, +{\tt rulessection} and {\tt rulesparagraph}. Chapter numbers +should be represented by capital alphabetic characters; +elementary section and paragraph numbers by arabic digits. +What should be done? + +First we select a {\it series identifier} for our composite counter. +Series identifiers are natural numbers which are assigned to +composite counters. Each composite counter should be assigned a unique +identifier. Because identifiers {\tt 1} to {\tt 8} and {\tt 12} +are reserved for common purposes we select {\tt 9} for our rules section +numbers. + +Then we define a macro which expands to the series identifier: + +\verbatiminput{hhst32a.tex} + +Next we specify how the three sub-counters are to be combined: + +\verbatiminput{hhst32b.tex} + +And finally we define how the counter is to be formatted: + +\verbatiminput{hhst32c.tex} + +If you want to understand the definition above, read the manual. + +\subsection{The Result} + +Now the composite counter can be accessed by the macros +\<theruleschapter>, \<therulessection> and \<therulesparagraph>, +which give results like: ``\fancycounter9-1-0-0-!'', +``\fancycounter9-1-2-0-!'' and ``\fancycounter9-1-2-3-!''. +The macros \=\stepcounter=\:\={ruleschapter}=, +\=\stepcounter=\:\={rulessection}= and +\=\stepcounter=\:\={rulesparagraph}= can be used to step the counter. + +When \<fcinheading> is active, rules paragraph numbers will be set like +``{\fcinheading\fancycounter9-1-2-3-!}'', but when \<fcintext> is active, +the same number will be set like ``{\fcintext\fancycounter9-1-2-3-!}''. + +More complex distinctions in representation of counters are possible. +\hhcount provides a set of macros which can be used in the last argument +of \<setcounterformat>. Those macros enable definition of counters +which are set like ``A2.3'' in headings and like ``section {\sc a}\02., +par. \03.'' in text etc. For details see the manual. + +\subsection{\hhcount and \texttt{makeindex}} + +Composite section numbers like ``A2.3'' cannot be handled by the +{\tt makeindex} program. Besides, {\tt makeindex} has problems +with sorting alphabetic numbers since it cannot determine whether +or not they are roman numbers. \hhcount provides a way to get around +these problems. + +All composite numbers defined by \hhcount constructs +are internally represented by a sequence of natural numbers, separated +by hyphens and embedded in a macro call. A typical example is +\=\fancycounter= \=9-1-2-3-!=. The first number represents the +series identifier (\=9= in the example), while the following +numbers represent the values of the relevant sub-counters. + +\hhcount provides macros \<initfancycounters>, \<indextolabels> and +\<indextopages>. The first redefines the section and page numbering +systems to use \hhcount's composite counters. \<indextolabels> sort of +redefines \<index> to use the redefined section numbers and strip the +\<fancycounter> and the \=-!= off the composite counter representation. +\<indextopages> does the similar thing for page numbers. +In both cases the result is a sequence of natural numbers, +separated by hyphens, which can be handled perfectly well by +{\tt makeindex}. +By embodying the appropriate definitions in your index style +(\hbox{\tt .ist}) file {\tt makeindex} will undo the stripping after +sorting the page or section numbers, so that your index entries will +still be typeset as defined by means of \hhcount macros. Thus section +numbers like ``A2.3'' can be used for references in the index. +Inserting equation, table and figure numbers in the index is just as +easy. It is +even possible to have different kind of composite numbers in the +same index, for example page as well as section numbers, because +the series identifiers are not stripped off so that it remains possible +to determine the proper series and formatting of each composite number. +For details see the manual. + +\subsection{Bugs and Deficiencies} + +Class files tend to make the \TeX\ compiler show on your terminal +which chapter of your book or report is being processed. Error messages +often contain the page number. When using \hhcount +there is a chance that the chapter and page numbers shown on your +terminal look weird: you will be shown the internal representation +of your counter (\=\fancycounter= \=9-1-0-0-!= for example). This is +caused by an incorrect timing of macro expansion: in this case +\<fancycounter> is expanded too late (that is to say, not at all). + +Late expansion with \hhcount is typically a problem with +error and other messages: I would be highly surprised if someone +discovers something like \=\fancycounter= \=9-1-0-0-!= outside +verbatim environments in a typeset document. However, when compiling your +document you might run into early expansion, which causes severe errors. +With the latest version of \hhcount this problem does not seem to +emerge in `usual' contexts; however I am not sure. + +Front matter, appendix and back matter peculiarities (with respect +to page and section numbering) are not automatically supported +by \hhcount. Class +files are too different in that respect. If \hhcount is to be used +to handle the section and page numbering in documents containing +front matter and appendices, it would probably be best to incorporate +\hhcount in the class file, instead of loading it as an additional +package. + +\subsection{Gamesters Page Numbers} + +The following redefines the {\tt page} counter so that page numbers +will be set as dice (I designed this for a gamesters society): + +\begin{verbatim} +\def\fcpageseries{12} +\combinecounters\fcpageseries{\\{page}} +\setcounterformat\fcpageseries{#1}{% + \fcorfinally + \fcformat{#1}\fcdice + \fcordespair} +\end{verbatim} + +I could not resist giving you this as an final example. + +\end{Article} + + diff --git a/usergrps/uktug/baskervi/5_4/raman.tex b/usergrps/uktug/baskervi/5_4/raman.tex new file mode 100644 index 0000000000..b0e9f1c08c --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/raman.tex @@ -0,0 +1,530 @@ +\def\dash{---} +\let\Dash\dash +\def \ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax } +%Use to generate a new row in tables with a horizontal line separating +%them: +\newcommand{\newrow}{\\ \hline} +\newcommand{\headrow}{\\ \hline \hline} +\newcommand{\mdash}{---} +\newcommand{\lisparg}[1]{{\em #1\/}} +\newcommand{\lispname}[1]{{\sf #1\/}} +\newtheorem{theorem}{Theorem} +\newtheorem{algorithm}{algorithm} +\newtheorem{lemma}{Lemma} +\newtheorem{definition}{Definition} +\newtheorem{corollary}{Corollary} +\newtheorem{conjecture}{Conjecture} +\newcommand{\nonterm}[1]{\mbox{${\scriptstyle <}{\mbox{\em #1\/}}{\scriptstyle >}$}} +\newcommand{\bld}[1]{{\bf #1}} +\newcommand{\type}[1]{{\tt #1}} +\newcommand{\pz}{\phantom{0}} +\newcommand{\inference}[2]{\frac{#1}{#2}} +\newcommand{\induction}[2]{\frac{#1}{#2}} +\newcommand{\kronecker}{\raisebox{1pt}{$ \:\otimes \:$}} +\newcommand{\subst}[3]{{#1[#2/#3]}} +\newcommand{\id}[1]{\mbox{{\sf #1\/}}} +\newcommand\french[1]{{\it #1\/}} +\newcommand{\afl}{{AFL}} +\newcommand{\term}[1]{\mbox{\sf #1\/}} +\newcommand{\divides}[2]{#1/#2} +\newcommand{\subgroup}{\triangleright } +%slide title. +\newcommand{\itidetitle}[1]{\center \framebox{\large\bf #1}} + +%section reference. +\newcommand{\sref}[1]{Section~$\ref{#1}$} +\newcommand\cref[1]{Chapter~$\ref{#1}$} +\newcommand{\aref}[1]{Appendix~$\ref{#1}$} +%integral d +\newcommand{\varint}[1]{\,d#1} +%quantifiers: cs611 +\newcommand{\all}[2]{\forall #1\!\!:\!#2.\:} +\newcommand{\exist}[2]{\exists #1\!\!:\!#2.\:} +%integrals +\newcommand{\dx}{\,dx} +\newcommand{\dy}{\,dy} +\newcommand{\dz}{\,dz} +\newcommand{\dt}{\,dt} + +\newcommand{\naive}{na{\"\i}ve{}} +\providecommand\AmSTeX{$\cal A\kern-.1667em\lower.5ex\hbox{$\cal + M$}\kern-.075emS$-\TeX} +\providecommand{\amstex}{\AmSTeX{}} +\newcount\TestCount +\providecommand{\La}{\TestCount=\the\fam \leavevmode L\raise.42ex + \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}} +\providecommand\AllTeX{(\La)\TeX} +\providecommand{\alltex}{\AllTeX{}} + +\providecommand{\latex}{\LaTeX{}} + +\providecommand{\tex}{\TeX{}} + +\providecommand{\macro}[1]{{\cal M}_#1} + +\providecommand{\rfb}{{\sc RFB}\footnote{Recordings for the +Blind}} + +% +\newcommand{\www}[1]{{\it WWW}: {\small #1}} +\newcommand{\email}[1]{{\it E-mail\/}: $\langle\hbox{\tt#1}\rangle$} +\newcommand{\phone}[1]{{\it Phone\/}: {\tt #1}} + +\newcommand{\voicemail}[1]{{\it Voice-mail\/}: {\tt #1}} +\newcommand\homepage{\sf http://www.research.digital.com/CRL/personal/raman/raman.html} +\newcommand{\faxno}[1]{{\it Fax\/}: {\tt #1}} + +\newcommand{\textalk}{\rm T\kern -.1667em\lower .5ex\hbox {E}\kern% + -.125emXT\kern -.1667em\lower .5ex\hbox {A}\kern -.125em L\kern -.125em K} + + + + +\newcommand{\Dectalk}{{\sc dectalk}} +\newcommand{\Sparc}{{\sc sparc}} + + +\title{An Audio View of \alltex{} Documents} +\author[T. V. Raman]{T.\ V.\ Raman\\ +Digital Equipment Corporation\\ + Cambridge Research Lab\\ + One Kendall Square, Building 650\\ + Cambridge, MA 02139\\ +\emph{Email:} \texttt{raman@crl.dec.com} +} +\begin{Article} +\begin{abstract} + \aster{} \dash Audio System For Technical Readings\dash is a computing + system that produces audio renderings from the {\em same\/} \alltex{} source + used to produce the printed document. \cite{Raman:TB13-3-372-377} + described our preliminary + work on this project. At the time, correct handling of user-defined + \alltex{} macros was described as one of the key issues in building a fully + extensible audio rendering system. + \aster{} \cite{raman-phd-thesis} has now been fully implemented. + This paper reports on the approach used + in \aster{} to handle user-defined macros. + +\aster{} treats macro definitions as introducing new object types +into the document logical structure. The \alltex{} macro consists of two +parts; a declaration, and a series of \TeX{} commands that the macro expands +into. The macro expansion is nothing but a visual rendering rule that +specifies how \TeX{} should display instances of the object represented by the +macro. + +\aster{} provides an equivalent mechanism for extending the class of +logical structures that are recognized. Once \aster{} has been told about a +user-defined macro, audio rendering rules for the new object type introduced +by this macro can be defined in AFL (Audio Formatting Language). + +The approach used not only makes \aster{} fully extensible; +it points out a unique advantage of \alltex\dash the ability of the +author to encode semantic meaning into the markup by extending the document +model in ways appropriate to the specific document instance that is being +encoded. + \end{abstract} +\section{Introduction}\label{s:introduction} + + +\begin{center} + \asterlogo +\end{center} + +\aster\dash Audio System For Technical Readings\dash is a computing +system that aurally renders electronic documents marked up in the \alltex{} family of +markup languages (see~\cite{raman-phd-thesis} for details). \aster{} uses the +structural markup present in the electronic source to advantage in producing +high-quality, interactive audio renderings. This paper focuses on a specific aspect of the +problem; namely that of flexibly rendering the extended document logical +structure encapsulated in a \alltex{} document. + + +One primary advantage of \alltex{} is the flexibility it provides the author +in defining logical structures that are specific to a particular document +instance. In this sense, the class of logical structures that can be +encapsulated in a \alltex{} document is extensible. \alltex{} macros allow +an author to abstract away the layout details. At the same time, they provide +a powerful mechanism for defining new constructs that are not already present +in the document style (DTD in SGML parlance) in use. As a consequence, + when introducing a new piece of mathematical notation, an author can first define +a new \alltex{} macro that produces a desired layout, and then use this newly +defined construct throughout the document. + +The flexibility of the \alltex{} macro facility initially proved a major +stumbling block in building a fully extensible audio rendering system. A +system that attempts to produce aural renderings by {\em mapping\/} the +built-in \alltex{} commands to an equivalent aural representation faces the +severe shortcoming of not being able to render documents that contain +user-defined macros. At the same time, it is impossible to translate such +user-defined \alltex{} macros into a suitable aural representation. This is +because \tex{} in its full glory is a Turing-complete programming language, and +saying ``we can translate a general \tex{} macro to audio'' is equivalent to +saying that ``Given a \tex{} program, we can predict the result''. Being able +to achieve the above without actually running \tex{} on the program (document +fragment) would amount to being able to solve the Halting Problem! + +In the rest of this paper, we describe the solution used in \aster{} to +circumvent this difficulty. The solution we used in fact turns the presence of +user-definable \alltex{} macros into an advantage. +Such user-defined constructs allow \aster{} to glean even more information +about the document logical structure than would be possible if the document +were encoded using only the built-in \alltex{} operators; as a consequence, +the audio renderings produced are also significantly better. + +\section{Document Models in \protect\aster{}}\label{s:represent} + + +\aster{} produces audio renderings by first extracting the document +logical structure. In this model, all forms of rendering, \ie visual, +aural, etc.\ are regarded as a projection of the structure present in +the information being conveyed onto the medium being used to +communicate the information. Thus, typesetting a document requires +visual formatting\Dash projecting the information structure onto a +two-dimensional visual tablet; aural rendering requires presenting the +structure using various features of the auditory display. + +The recognizer used in \aster{} extracts logical structure present in +documents encoded in the \alltex{} family of languages. An important +feature of this recognizer is that it works on the entire gamut of +encodings, ranging from plain ASCII documents, \ie no explicit markup, +up to documents containing completely unambiguous encodings of the +logical structure. + + +The basic document model used in \aster{} is the attributed tree. +Each hierarchical level of the document is modeled as a node in this +tree. Each node can have content, children and attributes. Using +object-oriented terminology, each different kind of node of the tree +is called an {\em object\/} and represents a document element. Thus, +``chapter'', ``section'', ``paragraph'', and ``sentence'' are all +objects. If a document contained five sections, its representation in +\aster{} would have five instances of object ``section''. This +object-oriented terminology is used because \aster{} actually uses +CLOS objects in this fashion. The use of an object-oriented language +was instrumental in allowing us to develop and implement the ideas in +\aster{} incrementally and effectively. + +This attributed tree +structure is augmented to represent mathematical content; we call this +augmented representation the {\em quasi-prefix form}, +(see figure~\ref{fig:math-object} below). +Expressions that are completely unambiguous, \eg $x+y$, are captured in their +prefix form. In addition to linearizing the underlying tree structure, +mathematical notation uses {\em visual attributes\/} such as superscripts and +subscripts, whose interpretation is context-dependent. We extend the prefix +form to capture such visual attributes\Dash hence the name {\em + quasi\/}-prefix. +\begin{minipage}{\linewidth} +\makeatletter\def\@captype{figure}\makeatletter + \begin{center} +\begin{tabular}[h]{|rcl|}\hline +left-superscript & accent & superscript \\ + &$\displaystyle \nwarrow$ \hfill + $\displaystyle \uparrow$ + \hfill $\displaystyle \nearrow$ & \\ +& {\bf math object } & \\ + & $\displaystyle \swarrow$ \hfill + $\displaystyle \downarrow$ + \hfill $\displaystyle \searrow$ & \\ +left-subscript & underbar & subscript \\ \hline +\end{tabular} +\end{center} +\caption{A math object with attributes. Each of the attributes + themselves contain math objects.} + \label{fig:math-object} +\end{minipage} + +The next section describes how this model is extended to encapsulate the use +of user-defined constructs in \alltex. +\section{Extended Logical Structure}\label{s:macros} + +The \alltex{} facility can be used to extend the document logical structure by +defining new constructs. Thus, an author preparing a manuscript on inference +logic might define +\begin{verbatim} +\newcommand{\inference}[2]{{#1\over#2}} +\end{verbatim} +\noindent and write +\begin{verbatim} +\inference{x}{y} +\end{verbatim} +\noindent and use this construct throughout the document. + +Notice that defining the \verb|\inference| as shown above and using it to +encode inference statements is distinct from and more powerful than just using +the \tex{} built-in operator \verb|\over| throughout the document. +A commonly mentioned advantage in this context is that using the newly +defined construct \verb|\inference| will permit the author to easily change +the notation used to denote {\it inference}. +Notice, that this is in fact the same as saying that +\begin{quote} + If distinct elements in a document instance are marked up using distinct + constructs, then it is possible to recognize and process these elements + in a multiplicity of ways. +\end{quote} +In \aster, the \alltex{} facility of defining a second \verb|\inference| macro +that produces a different layout for {\it inference\/} can be generalized to +the notion of different {\em audio renderings\/} for {\it inference}. + + + As explained above (``Document models''), \aster{} achieves its + aural renderings by building a rich internal representation of the + document content. In this representation, each document + element\footnote{We use the term {\em element\/} loosely to mean a + logical unit of the document. } $E$ is represented by an instance + of object $O_E$. \aster{} provides a predefined type $O_E$ for each + of the built-in constructs in \alltex. Thus, we could represent the + use of \verb|\inference| defined above in terms of object $O_{\rm + over}$. However, notice that this would mean losing valuable + information. When building up the internal representation, the + additional semantic information provided by the author's use of the + \verb|\inference| construct is very useful. In addition, expanding + all \alltex{} macros results in a pure layout representation, which + is not appropriate for producing aural renderings + (see~\cite{Raman:TB13-3-372-377}). If we were to represent + instances of \verb|\inference| in terms of $O_{\rm over}$, \aster{} + would be forced to render \verb|\inference| the same as the + \verb|\over| construct. Though the author in this particular + example may have chosen to use the same visual rendering for + inferences that is normally used for fractions, the same may not + carry over well to the aural domain. + + +\subsection*{Representing Extended Logical Structure}\label{s:extend} + + + \aster{} solves the problem of representing and rendering the + extended logical structure arising from user-definable macros by + considering each macro definition as introducing a new object type. + Instances of a macro $M$, are represented by instances of object + $O_M$. Thus, in the example shown above, the definition of the + construct \verb|\inference| introduces a new object type $O_{\rm + inference}$. The \alltex{} macro consists of two parts; a + declaration, and a series of \TeX{} commands that the macro expands + into. The macro expansion is nothing but a visual rendering rule + that specifies how \TeX{} should display instances of the object + represented by the macro. + + +\aster{} provides an equivalent mechanism for extending the class of logical +structures that are recognized. Once \aster{} has been told about a +user-defined macro, audio rendering rules for the new object type introduced +by this macro can be defined in AFL (Audio Formatting Language). Notice that +such audio rendering rules have to be defined by the user, just as the +\alltex{} macro is defined by hand. It is not possible in general to translate +the \tex{} macro into a set of audio rendering rules. This is because the +\tex{} macro is capable of performing any arbitrary computation permitted by +the operators present in the \tex{} language \cite{knuth84}\dash a +Turing-complete programming language. +\section{Rendering Information}\label{s:rendering} +\aster{} renders information by applying {\em rendering rules\/} to the +internal representation described above (``Document models''). + The system of rendering rules used in \aster{} +and the language in which they are written (AFL\dash Audio Formatting +Language) are described in detail in~\cite{raman-phd-thesis}. In a sense, AFL +is to audio formatting as Postscript is to visual formatting, although AFL is +a much smaller language. + +Here, we show a +small example of such a rendering rule for a user-defined macro. In the +following, we use \term{CLOS} generic function \term{read-aloud}. For the +present, let us assume that function \term{read-aloud} executes the necessary +actions to render its argument. + + + After extending \aster{} to process the \alltex{} macro + \verb|\inference| shown above (``Logical structure''), we can define + +{\small +\begin{verbatim} + (defmethod read-aloud((inference inference)) + "Sample rendering for object inference." + (read-aloud (argument 1 inference)) + (read-aloud "implies") + (read-aloud (argument 2 inference))) +\end{verbatim} +} +\noindent Given $\inference{A}{B}$, this produces ``A implies B''. + +If we wished to produce a rendering that inverts the order in which the +arguments to macro \verb|\inference| are rendered, we would define: + +{ +\small\begin{verbatim} + (defmethod read-aloud((inference inference)) + "Renders inference with arguments reversed." + (read-aloud "We know") + (read-aloud (argument 2 inference)) + (read-aloud "because") + (read-aloud (argument 1 inference))) +\end{verbatim} +} +\noindent which produces ``We know B because A''. + +Switching between these two rendering rules has the effect of inverting a +proof-tree! +Notice that writing a new rendering rule for an object $O_E$ has the same +effect as redefining the \alltex{} macro that corresponds to $E$. + +\aster{} makes it easy to write several rendering rules for the same object +and also allows rendering rules to be partitioned into rendering {\em + styles}. Such {\em styles\/} can be thought of as being analogous to +\latex{} styles, but with one important difference. Due to the +non-interactive nature of traditional paper documents, a paper is typically +typeset in a given style. It is not possible for the reader to change the +style in which the document is typeset. +Typically, we do not feel the shortcoming of not being able to change the way +a mathematical expression is rendered when reading a printed paper because the +eye is capable of reading the various parts of an expression in any order that +is convenient. However, when listening to an aural presentation, the listener +does not have this flexibility. In other words, an active reader peruses a +printed paper, a passive display, whereas in the case of audio, these roles +are reversed\dash the aural display scrolls {\em actively\/} past a passive +listener. + +\aster{} overcomes these difficulties by being a fully interactive system. +It is possible for the listener to interrupt the rendering, change the +rendering style in use, and listen to the document. In an interactive session +with \aster{}, switching between rendering styles (a collection of rendering +rules for different objects) and invoking individual rendering rules can be +done with a few keystrokes, making it easy for a listener to obtain many +different views of a document. +This facility enables {\em active\/} listening. + +\aster{} derives its power from representing document content as objects and +by allowing multiple user-defined rendering rules for individual object types. +These rules can cause any number of audio events (ranging from speaking a +simple phrase, to playing a digitized sound). The pitch of the voice, the +physical head-size of the virtual speaker, the volume, and many other +parameters can be changed by rendering rules, making it easy to create sound +cues to help display structure. +In fact, the design of \aster{} does not restrict the system to producing +purely aural renderings; there is nothing to preclude us from defining +renderings that produce truly multimodal output; \ie renderings where the +traditional visual rendering is augmented with aural feedback. We conjecture +that such multimodal renderings may prove very useful for persons with +learning impairments. + +To give an example of a multimodal rendering, the logo for \aster{} is +\begin{center} + \asterlogo{} + \end{center} + \noindent and is produced by \alltex{} macro \verb|\asterlogo|. + After appropriately extending \aster{} to recognize this macro, we + can define an audio rendering rule for object {\em asterlogo\/} that + produces a bark when rendering instances of this macro. Thus, the + same piece of markup \verb|\asterlogo| produces the picture of + Aster\footnote{Aster is my guide-dog. } when rendered visually, and + an appropriate sound\footnote{The bark is that of a generic dog, + Aster is too well trained to bark, and could not therefore be + recorded.} when rendered aurally. + + + This feature was exploited to advantage when producing the audio formatted + version of the author's thesis. The dedication page of the thesis contains + a large picture of Aster, and the audio formatted version\footnote{An audio + formatted version of the thesis produced by \aster{} (about 6 hours) is + being distributed by RFB\dash Recordings For The Blind\dash as the first fully + computer-generated talking book. } contains a verbal description of the + picture, accompanied by the sound of Aster panting in the background. You + can listen to this example on the WWW\dash visit the \aster{} home + page by following the link to the \aster{} demonstration + from my home + page\footnote{\URL|http://www.research.digital.com/CRL/personal/raman/raman.html|} + and clicking on the picture of Aster. + +Several ideas come together to make all this possible. First, logical +structure is of paramount importance\dash not its display on any one +particular medium. The more a document makes structure explicit, +the better the document can be displayed on (projected onto) several +different media. + +Next, the use of \alltex{} macros to encode structure makes it +possible to have a system like \aster, in which the internal +structure can be extended to fit a document. This allows the encoding +of the structure in a flexible, uniform, and consistent representation +such as an attributed tree, with the addition of the quasi-prefix form +for dealing with mathematics. + +Finally, providing different rendering rules and styles and a +flexible way to switch among them makes it possible to obtain multiple +views of a document in an interactive fashion. + +\section{Conclusion}\label{s:conclusion} + + + The approach used in \aster{} to exploit the additional semantic + information present in the electronic encoding in the form of + user-defined constructs points to an important feature of markup + systems like \alltex{} that is currently missing to a certain extent + in systems like SGML. When \aster{} was at its inception, I firmly + believed that one should use a semantic-oriented DTD to encode a + document in order to be able to produce high-quality audio + renderings. I still believe this; however the work on \aster{} does + point out one shortcoming with the fixed document DTD model. Given + that mathematical and technical notation is being invented all the + time, a fixed DTD forces the author to encode new constructs using + {\em only\/} primitives that are provided by the DTD. As a + consequence, authors end up using a presentation-oriented encoding + even though the DTD in use is one that is semantically oriented. + + + To make this concrete, consider the case of the {\it inference\/} + construct described above (``Logical structure''). If the document + were being encoded using a fixed non-extensible DTD that only + provides a {\it fraction\/} element, the author would be forced to + encode {\it inference\/} using this element. + +Since in general it is not possible to define an all-encompassing DTD that +covers every possible kind of math notation (those currently known and those +yet to be discovered) extensibility of the DTD as provided by \alltex{} is of +vital importance. + +Another good example of this facility in \alltex{} being put to good +use is the Hyper\tex{} system \mdash an extension to \tex{} that +allows the user to view his legacy \alltex{} documents as online +hypertext. Conceptually, we can think of \verb|\ref| and +\verb|\label| as being object types; traditionally, these cause +specific marks to appear on paper when rendered visually by \tex; to a +system like Hyper\tex{} these turn into {\em active\/} links that a +user can follow interactively. + +The ability to produce multiple renderings of the same object provided by +\aster{} was introduced in the context of aural presentations. However, such +multiple presentations become equally relevant when interactively perusing +online documents visually. For instance, when reading a document that +presents a complex proof, a user may wish to have the same proof displayed as +an outline in one window, and as a proof-tree in another +(see~\cite{lamport:proofs93}). In the case of paper documents, the user has +to use her imagination to achieve such multiple views \mdash though she is +aided in this by the visual notation. + In the interactive scenario presented by electronic +documents, the previewer can provide some additional functionality to aid in +this process. + +\begin{thebibliography}{} +\bibitem[Knuth 1984]{knuth84} +Knuth, D.~E. +\newblock {\em The \TeX{}book}, volume~A of {\em Computers and Typesetting}. +\newblock Addison-Wesley, Reading, Massachusetts, 1984. + +\bibitem[Lamport 1993]{lamport:proofs93} +Lamport, L. +\newblock ``How to write a proof''. +\newblock Technical Report~94, DEC Systems Research Center, Palo Alto, {CA}, + 1993. +\newblock To appear in {\em American Mathematical Monthly}. + +\bibitem[Raman 1992]{Raman:TB13-3-372-377} +Raman, T.~V. +\newblock ``An audio view of \TeX\ documents''. +\newblock {\em TUGBoat} {\bf 13}(3), 372--377, 1992. + +\bibitem[Raman 1994]{raman-phd-thesis} +Raman, T.~V. +\newblock {\em Audio System for Technical Readings}. +\newblock Ph.D. thesis, Cornell University, 1994. + +\end{thebibliography} + +\end{Article} diff --git a/usergrps/uktug/baskervi/5_4/rowley.tex b/usergrps/uktug/baskervi/5_4/rowley.tex new file mode 100644 index 0000000000..324e6e75f4 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/rowley.tex @@ -0,0 +1,185 @@ +% \interval is used to provide better spacing after a [ that +% is used as a closing delimiter. +\newcommand{\interval}[1]{\mathinner{#1}} +% Enclose the argument in vert-bar delimiters: +\newcommand{\envert}[1]{\left\lvert#1\right\rvert} +\let\abs=\envert +\newcommand{\wt}{\widetilde} + +\title[Somethin' there is about you\ldots]{Somethin' there is about you,\\ + That I can't quite put my finger on} + +\author{Chris Rowley} + +\begin{Article} + +I have been stimulated (goaded?) into penning these thoughts by Peter +Cameron's expression of concerns about the future utility of \TeX{} to +mathematicians. Many of these I share and, indeed, feel all the more +pressing since I have set myself up as being responsible for them (and +even, in some cases, I do directly bear that burden). + +I shall first consider some particulars of speaking mathematics and, +in particular, voicing division; then conclude with some more general +thoughts about communicating with and via computers. + +\section{Talking divisively} + +Peter, in company with Don Knuth, wants to write his \TeX{} ``as close +as possible to the way [he] pronounces'' it (I added the ``he'' +deliberately, see below). + +Well, he may say `x over y' for $\frac{x}{y}$ or even `n-one-factorial +n-two-factorial n-three-factorial, over, n-one + n-two + n-three' for +$(n_1!\,n_2!\,n_3!)\,/\, (n_1+n_2+n_3)$ but I suspect that he would +not say `x overwithdelims \ldots' for +% $x \overwithdelims() y$ +$ \genfrac{(}{)}{}{}{x}{y} $ +(\verb|$x \overwithdelims() y$|)---and how would he cope with this (selected +``at random'' from an AMS paper)? +\[ +\left\lvert\frac{\hat v(s)-\hat +v(t)}{\abs{\wt{D}u}(\interval{\left[t,s\right[})} -\frac{f(\hat +u(t)+\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t) +\abs{\wt{D}u}(\interval{\left[t,s\right[}))-f(\hat +u(t))}{\abs{\wt{D}u}(\interval{\left[t,s\right[})}\right\rvert +\] + +Of course, Peter may put only very simple fractions into his letters +but an average physicist is not so fortunate (or so communicatively +challenged?). + +The problem with `over' (in the sense of `divided by') derives from +the development over time of the notation for division; the use of +built-up fractions is one of the more bizarre of the many usages that +historical accidents have bequeathed us. If the good old `division +sign' (whose \TeX{} name I have, I suspect, never known) had won out +then life would have been much easier for coders and typesetters of +mathematical documents, and possibly also for mathematicians. I also +have a feeling that our generation were perhaps the first to adopt +such a sloppy mode of mathematical speech---the phrase `quotient of x +by y' seems only a little old-fashioned to me. + +In practice, mathematicians can often speak to each other in many +abbreviated forms just like `over'. For example, in context I could +say to Peter: +\begin{quote} +For t greater than $0$, $-1$ $0$ $1$ t is non-singular. +\end{quote} +and I would expect \emph{him} to very easily (sic) understand that +the `$-1$, $0$, $1$, t' should be formatted as: +$ ( +\begin{smallmatrix} + -1 & 0 \\ 1 & t +\end{smallmatrix} +) $ + +My `day job' (but I do it evenings too) involves me in spending more +time than your average mathematician communicating notation over the +telephone, so I have become quite adept at inventing methods of +speaking math notation to a fairly wide variety of people---this often +involves private codes which I would not expect anyone else to +understand. This has little to do with talking or writing to either +computers or general mathematical audiences, nor should it have, but +for me it has illustrated very clearly the fact that any particular +convention, however well it works in a restricted context, is not a +good paradigm for a general way of making mathematical documents +portable. I would, of course, place the method that Don and Peter use +to talk mathematics to each other firmly in this category of ``private +codes''. + +Knuth's idea of writing mathematics as he and Peter would say it is +both impractical (as is well illustrated by most of plain \TeX{}), and +irrelevant to the real problem of communicating mathematics (not just +the notation, but the structures), both between people and computers +and inter-computer. + +I shall pick over just one other point in Peter's article before +moving to more general matters: he complains that some of us are +``obsessed with the need for all operators to be prefix''. + +All operators? No, at least not in the mathematical sense. All +commands, yes: but that is a consequence of yet another accident of +mathematical history---if you need general functions with an +arbitrary, and possibly not fixed, number of arguments then the +functions should be prefix, otherwise neither the computer (without a +lot of extra work) nor the user (often, remember, this is not a +mathematician) will be able to understand (in the sense of ``parse'') +them. As Leslie Lamport observed, this convention does also have the +advantage that the syntax of prefix commands often also makes it +necessary to delimit the arguments; this syntactical nicety is +essential for human readability but not much appreciated by most +mathematicians (see my remark about ``What are we summing?'' below). +If you do not understand the importance of writing commands in this +very inefficient (from the computer's viewpoint) prefix form, try +learning more than about a dozen Postscript commands with one to three +arguments and then try and read a file that uses them. + +% Also, of course, to pursue Peter's argument about the paramount +% importance of how one says things: I do not say + + +\section{Talking to computers} + +I shall now make some more general observations concerning maths, +communication and computers. + +Knuth's bestiary of mathematical symbols and constructions is no +better or worse than any other: from the perspective of anyone from +outside mathematics they are all both mysterious and infuriating. + +I have in other \emph{fora} argued strongly against too much formalism in the +definition of a language in which computers can communicate +mathematical notation. I now realise that, for general formatting +purposes, rather more structure needs to be expressed in the mark-up +than that which Knuth (and, hence, Lamport) thinks necessary. I say +`thinks' since recent reports from Florida suggest that Don is +unrepentant in thinking that he got it right---for example it is, +apparently, OK (\textsc{TM}) if the computer never knows what is being +summed by a summation sign, just like it does not need to know when it +is starting a quotient construction. + +Computers need a lot more information than is provided by most schemes +in order to format notation properly; this is very eloquently and +dramatically illustrated by the work of T.~V.~Raman, who is getting +the computer to answer back (audibly!) so that he knows what it cannot +understand. I can assure Peter that Raman does \emph{not} want his +computer saying `over' at random places but rather needs it to be able +to efficiently distinguish and locate the beginning, end and ``type'' +of all substructures. If it is ever sensible to use the phrase ``how +mathematics \emph{should} be spoken'' (when this is the only available +means of communication) then the only relevant answers must surely be +Raman's? + +It has been apparent to me throughout my mathematical life that the +world would be a better place if mathematicians were more respectful +of an audience's intelligence (rather than of her knowledge of the +bizarre conventions of the subject itself) when writing about it; it +would be nice to think that training them to `talk to computers' would +make them more polite, but I doubt it. + +I agree that it would be nice to talk informally about mathematics to +my computer, and I expect that to happen long before it can understand +(in any format) all the implicit conventions contained in the way I +write notation that is to be understood only by other mathematicians. +However, I am sure that it will never be so good to talk about the +subject, and others, with a computer as it is to do so with Peter. + +\section{Talking to each other} + +The article also touches on many other areas which contain genuine +problems (and I cannot see them becoming less numerous in the near +future). Amongst them are some that the new standard \LaTeX{} +attempts to tackle, and others that we know must be tackled by +\LaTeX3. One of the former is the ability to substitute for fonts +that you do not have. + +Peter's thoughts are of great value to those of us who are actively +influencing the future of \TeX{}, both as a typesetting system and as +a mathematical lingua franca. Thus I hope we shall see many more +articles like this one---and not just from mathematicians, please! I +don't promise to argue with them all in print but I shall certainly +read them carefully and, who knows, they may goad someone else into +explaining a different viewpoint on a controversial issue. + +\end{Article} diff --git a/usergrps/uktug/baskervi/5_4/taylor.tex b/usergrps/uktug/baskervi/5_4/taylor.tex new file mode 100644 index 0000000000..647d871ad7 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/taylor.tex @@ -0,0 +1,9 @@ +Sir -- A.N.Other asks ``to which vastly under-rated electronic publishing +package do I refer?''. I would suggest, Sir, that the answer is quite possibly +3B2, although it is moot as to who is performing the under-rating. May I ask +that my prize be sent to Redwings Horse Sanctuary, with any balance after the +first <sterling>25000 being sent to the International League for the Protection +of Horses? + +Yours very sincerely, +A.Contestant. diff --git a/usergrps/uktug/baskervi/5_4/tug-repo.tex b/usergrps/uktug/baskervi/5_4/tug-repo.tex new file mode 100644 index 0000000000..4ae854d7c3 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/tug-repo.tex @@ -0,0 +1,93 @@ +\documentclass{article} +\usepackage{mflogo,multicol,shortvrb} +\usepackage{bv-emu} + +\MakeShortVerb\| + +\begin{document} +\section*{A first-timer's impression of TUG95} + +\begin{multicols}{2} +Well, we've heard Malcolm Clark's view of Florida as a meeting venue, +and I'm not going to suggest that you ignore him: but it turns out +that Mimi Burbank had selected a remarkably good venue\footnote{Though + it must be admitted that it was expensive!}, and despite the general +decline in TUG membership in general (and meeting attendances in +particular), we had a particularly jolly meeting. + +What's Florida like? Well, on my previous visit (for a standards +meeting in January 1986), the air was crisp and cool (the +orange-growers were complaining bitterly about frosts), and the +weather was unremittingly sunny. This time, at the end of July, the +air was muggy and hot, it rained every day, and on the west coast of +Florida we only saw part of one sunset during the course of the +meeting\footnote{On the day of the excursion, the sun set between two + hotels on a distant shore, having been shrouded in cloud up to that + point (and the rain came again immediately afterwards)}. + +The hotel backs on to the beach on the Gulf of Mexico, and the +energetic could swim at all sorts of hours (Pierre Mackay, for +example, claimed to have swum at 6am on the first day of the meeting). +The sea water was startlingly warm, which rather dulled the effect of +the hotel hot-tub that I (at least) regularly dipped in after +swimming. + +And what of my personal highlights in the meeting? Well, I (as +proceedings editor) had read most of the formal papers before they +were presented, but I was enormously impressed by T.~V. Raman's talk +about audio rendering despite that. His argument for structured +markup is so strong as to be almost irresistible. + +I delighted in the papers by Ji\v r\'\i{} Zlatu\v ska (extending Alan +Hoenig's ideas on composite logo design) and Jeremy Gibbons (dotted +and dashed lines, ending up with muskrats) on doing yet more +extraordinary things with \MF{}. I almost never write metafont code +myself, but I still find it fascinating. + +Alan Hoenig's own paper on making use of Adobe's Poetica fonts was +that rare animal, the technically interesting paper that also +expressed great beauty. + +Gabriel Valiente Feruglio's passionate paper on typesetting Catalan +was presented with great wit and erudition by Pierre Mackay. Feruglio +and Petr Sojka (on compound word hyphenation) did the conference great +service by reminding us all that we ignore support for languages other +than our own at our peril. (I tried to make the same point in the +panel session on \Om{}, talking to a revision of what I published in +\BV{} volume~5 number~3.) + +The most surprising sessions (to me) were the ones on standards (the +new \TeX{} directory structure, presented by Norm Walsh, and standards +for DVI processor specials, presented by Tom Rokicki (of |dvips| and, +now, dancing fame) and Mike Sofka. I was also fascinated by the +discussions of journal production; the accounts of how the massive +Elsevier machine produces (and archives) its enormous range of +journals, and how the American community is slowly moving towards the +same end. My accolade for most useful piece of work reported goes to +Sergey Lesenko: Tom Rokicki has taken up his work on partial font +downloading for a future version of dvips. As the one who regularly +worries whether issues of \BV{} will fit on one floppy disc for +submission to the Docutech printer, I shall no doubt be able to sleep +easier in my bed in future\dots + +And there was Knuth. Knuth came because he had promised to when he +last attended. It was, he said, the \ensuremath{2^{2^{2^{2^{-\infty}}}}}th +meeting, and who's to argue with the great man? (Actually, I think +most mathematics lecturers would, but I'm inclined to forgive the man: +his eccentric sense of humour makes so much of his writing a real +joy.) He gave an extended question and answer session immediately +before the sessions on \Om, \NTS{} and \eTeX: in the circumstances, he +very understandably dodged questions about ``what he would do +differently if he were starting today''. He spent ages discussing how +he was going about typesetting errata for the first three volumes of +\textsl{the Art of Computer Programming}. Among other errata, he has +removed Fermat's last theorem as a `research problem' and replaced it +with something about fourth powers of integers; he was obviously +delighted that the final publication of Wiles' proof of the theorem +was set in \TeX{} (and looked beautiful!). + +\rightline{Robin Fairbairns} + +\rightline{\texttt{rf@cl.cam.ac.uk}} +\end{multicols} +\end{document} diff --git a/usergrps/uktug/baskervi/5_4/tug95.tex b/usergrps/uktug/baskervi/5_4/tug95.tex new file mode 100644 index 0000000000..2a8764e9a6 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/tug95.tex @@ -0,0 +1,15 @@ +\documentclass{artikel3} +\usepackage{lucbr} +\title{Report on \TeX\ Users Group conference 1995} +\author{Sebastian Rahtz} +\date{July 30th 1995} +\begin{document} +\section{Introduction} +This was the 16th annual meeting of the \TeX\ Users Group. It was held +during the last week of July at the TradeWinds hotel, St Petersburg +Beach, Florida. Papers and tutorials extended over 4 1/2 days, with +ample opportunity to meet people, see vendors exhibits and so on. + +\section{Social notes} + +\end{document} diff --git a/usergrps/uktug/baskervi/5_4/version.sty b/usergrps/uktug/baskervi/5_4/version.sty new file mode 100644 index 0000000000..81a6b3b950 --- /dev/null +++ b/usergrps/uktug/baskervi/5_4/version.sty @@ -0,0 +1,51 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Version control macros. These let you define environments whose contents +% will be optionally added to or deleted from the text when you run LaTeX. +% Usage: place either of the following near the start of your file: +% \includeversion{NAME} +% \excludeversion{NAME} +% Here, "NAME" is any name you choose. The first one indicates that text +% between \begin{NAME} and \end{NAME} will be processed in the normal way. +% The second indicates that text between \begin{NAME} and \end{NAME} will +% be totally deleted. +% You can define environments for as many versions as you want. +% A ``comment'' environment has already been pre-defined for you with +% \excludeversion{comment}; you can override this using \includeversion. +% +% Example: +% \includeversion{abridged}\excludeversion{unabridged} +% Text for the +% \begin{abridged} +% short +% \end{abridged} +% \begin{unabridged} +% long and really longwinded, opaque and boring +% \end{unabridged} +% version of the paper. Punctuation works correctly\begin{unabridged} +% because sphack is used\end{unabridged}. +% \begin{comment} This is deleted by default. \end{comment} +% +% Stephen Bellantoni 1990, loosely based on "annotation.sty" by Tom Hofmann. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begingroup +\catcode`@=11\relax% +\catcode`{=12\relax\catcode`}=12\relax% +\catcode`(=1\relax \catcode`)=2\relax% +\gdef\includeversion#1(% + \expandafter\gdef\csname #1\endcsname% + ()% + \expandafter\gdef\csname end#1\endcsname% + ()% +)% +\gdef\excludeversion#1(% + \expandafter\gdef\csname #1\endcsname% + (\@bsphack\catcode`{=12\relax\catcode`}=12\relax\csname #1@NOTE\endcsname)% + \long\expandafter\gdef\csname #1@NOTE\endcsname ##1\end{#1}% + (\csname #1END@NOTE\endcsname)% + \expandafter\gdef\csname #1END@NOTE\endcsname% + (\@esphack\end(#1))% +)% +\endgroup +\excludeversion{comment} + |