% 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