% prelim.tex copyright 1992 Victor Eijkhout
% copyright 2014--2016 Vafa Khalighi
%
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% This program 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. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program. If not, see .
%
%
\Chapter[chap:prelim] Preliminaries
\Section What is Lollipop?
Lollipop is `\TeX\ made easy'. Lollipop is a macro package
that functions as a toolbox for writing \TeX\ macros. It was my
intention to make macro writing so easy that implementing a fully new
layout in \TeX\ would become a matter of less than an hour for an
average document, and that it would be a task that could be
accomplished by someone with only a very basic training in \TeX\
programming.
Lollipop is an attempt to make structured text formatting available
for environments where previously only wysiwyg packages could be used
because adapting the layout is so much more easy with them than with
traditional \TeX\ macro packages.
\Section But is it compatible?
Lollipop, like \LaTeX, is not compatible with plain \TeX. I~don't
consider this a real problem. Most plain \TeX\ commands will work in
\Lollipop\ with the exception of anything output routine related.
(See also below.)
\Lollipop\ is also not compatible with \LaTeX, although it has a lot
of the same functionality. There are two reasons why \Lollipop\ still
has a reason for existing, even though \LaTeX\ is used pretty much
all over the scientific world.
For one, Lollipop is targeted in part
to different users than the typical plain \TeX\ or
\LaTeX\ user. For another, I~have a vain hope that I~can capture some
of the \LaTeX\ market share. Since developing styles in \Lollipop\ is
so much more easier than in \LaTeX, I~may stand a fighting chance.
\SubSection \Lollipop\ and plain \TeX
Having said the above, I'll conceded that \Lollipop\ is more
compatible with plain \TeX\ than with \LaTeX. You can use quite some
plain \TeX\ commands in \Lollipop. However, stay away from the
following:\Description\item \cs{everypar}
This one is heavily used by \Lollipop. You may use \cs{EveryParagraph}
instead, which functions pretty much like \cs{everypar}; see
section~\ref[sec:everypar].\item \cs{everymath}
This one is heavily used by \Lollipop. You may use \cs{EveryMath}
instead, which functions pretty much like \cs{everymath}; see
section~\ref[sec:everymath].\item \cs{everydisplay}
This one is heavily used by \Lollipop. You may use \cs{EveryDisplay}
instead, which functions pretty much like \cs{everydisplay}; see
section~\ref[sec:everydisplay].\item \cs{output}
Page output is done so very differently from plain \TeX\ that all
commands pertaining to page numbers and head/footlines have been
eradicated. (Well, \cs{pageno} still gives the page number.) See
chapter~\ref[chap:output].
\>
The current version of \Lollipop\ is based on the plain \TeX\ file
that comes with \TeX\ version~3.141592653.
\SubSection \Lollipop\ and \TeX\ programming
The tools in \Lollipop\ allow you to program in a simple manner quite
complicated macros. Still you may want to have some knowledge of
ordinary \TeX\ macro programming. If you are just starting in \TeX\
you can pick up the basics from the book by Seroul and
Levy~\bibref[SeLe:book],
and after that there is the book by
the original author of \TeX~\bibref[Kn:book] and my own \TeX\
reference guide~\bibref[E:book].
\Section How to Use \Lollipop
The following files comprise the Lollipop format:
\Ver>
lollipop-define.tex lollipop-document.tex
lollipop-float.tex lollipop-fontdefs.tex
lollipop-fonts.tex lollipop-heading.tex
lollipop-lists.tex lollipop-output.tex
lollipop-plain.tex lollipop-text.tex
lollipop-tools.tex lollipop.tex
> lollipop test.tex
\InputLollipop:bookstyle.tex
If you find any other issues, or if you have any fixes/workarounds
for any existing issues, then please post them on GitHub.
\Section About this manual
This manual consists of a main file \file{lollipop-manual.tex}, and the
following input files:
\Ver>
titlepag.tex prelim.tex struct.tex head.tex list.tex
out.tex extern.tex opt.tex comm.tex trace.tex appendix.texHere is how much of TeX's memory you used:
1194 strings out of 496579
16173 string characters out of 6202690
72655 words of memory out of 5000000
3270 multiletter control sequences out of 15000+600000
11241 words of font info for 40 fonts, out of 8000000 for 9000
19 hyphenation exceptions out of 8191
24i,4n,24p,187b,562s stack positions out of 5000i,500n,10000p,200000b,80000s
\SubSection A bit of history
The \Lollipop\ format was begun in late 1989 to typeset Victor Eijkhout's Ph.D.
thesis, `{\Style:italic Vectorizable and Parallelizable
Preconditioners for the Conjugate Gradient Method}'. At that time
Victor~was using \TeX\ on an Atari 1040ST.
Loading the style definition for the thesis took about two minutes.
\Lollipop\ was heavily augmented in late 1991 to typeset his book
`{\Style:italic \TeX\ by Topic}', for which he~used Sun~3 and Sun~4
computers. Writing this manual brought \Lollipop\ to its version 0.96; the first public release (version~0.9) was announced on the
internet in October 1992.
Between 1992 and 2014, Lollipop was unmaintained and Vafa Khalighi took over the
development of Lollipop in April 2014.
The name `\n{Lollipop}' refers to a quote by Alan
Perlis~\bibref[Pe:epigrams], quoted on page 365 of the \TeX
book~\bibref[Kn:book]. In a way it's rather pretentious. The philosophy
of the \n{Lollipop} format is described~\bibref[EL:Cork,E:Portland].
\endinput
% 2014/04/13 Added some notes about \EveryMath,
% and \EveryDisplay. Also \EveryPar changed to
% \EveryParagraph
% 2014/04/12 Added note about xelollipop format
% 2014/04/11 Updated the manual
% 92/10/22 historical remark about name added
% 92/11/03 section 'Lollipop and plain TeX' added;
% remarks about IniTeX in Textures
% 92/11/26 uses bibrefs