Lollipop is “TeX made easy” — it is a macro package that functions as a toolbox for writing TeX macros. Its main aim is 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. The aim is that such a task could be accomplished by someone with only a very basic training in TeX programming.
Thus, Lollipop aims to make structured text formatting available in environments where typical users would switch to WYSIWYG packages for the freedom that such a mechanism offers.
In addition, development of support for Lollipop documents written in RTL languages (such as Persian) is underway.
The name “Lollipop” refers to a quote by Alan Perlis, quoted on page 365 of the TeXbook by Donald Knuth. In a way it's rather pretentious.
When someone says, “I want a programming language in which I need only say what I wish done”, give him a lollipop.
Alan Perlis. Epigrams on programming. ACM Sigplan Notices, 17:7–13, 1982.
You can find more information about Lollipop features in the manual.
The Lollipop TeX format tries to bridge the gap between the fact that in TeX anything is programmable, and the fact that doing so is too hard for the people such as typographers, who know actually what to program. Or even for seasoned programmers. Lollipop is a macro package that gives the user powerful tools for programming macros for lists, headings, output routines and a number of other things. The Lollipop macros take the specifications for a macro, and then construct that macro. Lollipop is not finished, but it is already quite powerful; it was used to typeset Victor's book “TeX by Topic”, for instance. Anyone who is interested should format the manual and have a look at the examples in it. They document the current power of Lollipop (really: all examples, including of output routines, are formatted on the fly).
The Lollipop format is a meta-format: it does not define user macros, but it contains the tools with which a style designer can easily implement such user macros.
Lollipop does not make any typographical decisions for you beforehand; that is, defining the style is up you.
The Lollipop format was begun in late 1989 to typeset Victor Eijkhout's Ph.D. thesis, “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 “TeX by Topic”, for which he used Sun 3 and Sun 4 computers. Writing the 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 I took over the development of Lollipop in April 2014. So after more than 20 years, Lollipop is still actively developed and maintained.
The current version of Lollipop is 1.05 (released on 16 April 2016); this version of Lollipop is included in TeXLive 2016. Alternatively, you can Download the current Lollipop version from CTAN and then build the Lollipop formats yourself.
You can Download the latest development version of Lollipop and then build the Lollipop formats if you wish to use the latest features. I try my best to make the development version as stable as possible since that is what I use myself but there may be issues with the development version from time to time. If you notice any issues with the development version, please report them.
fmtutil --byfmt lollipop
in your terminal to build the lollipop
format;
fmtutil --byfmt xelollipop
in your terminal to build the xelollipop
format;
fmtutil --byfmt lualollipop
in your terminal to build the
lualollipop
format.
pdftex -ini -jobname=lollipop -progname=lollipop -translate-file=cp227.tcx -etex lollipop.iniin your terminal to build the
lollipop
format;
xetex -ini -jobname=xelollipop -progname=xelollipop -etex xelollipop.iniin your terminal to build the
xelollipop
format;
luatex -ini -jobname=lualollipop -progname=lualollipop lualollipop.iniin your terminal to build the
lualollipop
format.
To typeset your first Lollipop document, simply create a file containing the following three lines of code:
\Start This document is typeset by Lollipop! \Stopand then save this file as
lollipop-test.tex
; you can
then produce the pdf output as follows
lollipop lollipop-test.tex
if you wish to use the pdfTeX engine;
xelollipop lollipop-test.tex
if you wish to use the XeTeX engine;
lualollipop lollipop-test.tex
if you wish to use the LuaTeX engine.
If you experience any issues in using Lollipop, then please open a ticket; when you report any issues, please explain the problem clearly with enough details and always provide a minimal Lollipop document that illustrates the issue. Please remember than if I can not produce the problem you are having, then obviously I can not help you to resolve the issue.
Please do not send bug reports directly to me (the first thing I would do with your report is to enter it into the bug tracker).
Lollipop is "free," this means that everyone is free to use it and free to redistribute it on certain conditions. Lollipop is not in the public domain; it is copyrighted and there are restrictions on its distribution as follows:
Copyright © 1989–1993 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.