<p>A description is given of Lilac, an experimental document preparation system designed to provide the best of both the WYSIWYG (what you see is what you get) and the document compiler approaches. It does this by offering both WYSIWYG editing and language-based document description as two views side by side on the screen. The page view is a WYSIWYG editor showing a close approximation to the printed output. The source view shows a programlike description of the document in a special-purpose language. This language supports subroutines, variables, and conditional execution, and is designed to encourage the use of subroutines to embody structure. Both views are editable, but Lilac is designed with the expectation that most editing will occur in the page view.</p>