Chapter 3.2
Typesetting
"You don't pay back, you pay forward."
The Web and Plain Text aren't the only document formats you can target with Common Lisp. You can generate code for any other programming language, including the TeX Typesetting System, it's variants and extensions LaTeX, ConTeXt, and XeTeX, such as with the CL-Docutils library; or you can typeset your documents as PDF natively from within Lisp using the CL-Typesetting and CL-PDF libraries.
In this chapter we will explore single-source documents with multiple output formats; structured text formats; native CL-Typesetting syntax; book design; fonts & typography; in-line graphics; typesetting math; self-publishing your documents and books; and collect everything together in a library that will let you focus entirely on your writing while simultaneously publishing professional documents to every platform and medium.
Exercise 3.2.1
CL-Typesetting Syntax
Exercise 3.2.2
Markdown vs. reStructuredText
(and thus, CL-Typesetting vs. CL-Docutils)
Note: we will prefer CL-Typesetting integrated with 3bmd for a Lispier solution; but CL-Docutils is useful for outputting LaTeX.
Exercise 3.2.3
Integrating 3bmd with CL-Typesetting
Exercise 3.2.4
Target Templates
Highlight unique considerations for:
- LaTeX
- PDF/Print
- Ebook
- Web
- Screen Readers
Exercise 3.2.5
Book Design
Exercise 3.2.6
Fonts & Typography
Exercise 3.2.7
Document Structure
Exercise 3.2.8
White-space and Black-space
Exercise 3.2.9
Headers, Footers, and Margins
Exercise 3.2.10
Footnotes, Citations, Bibliographies
Exercise 3.2.11
Contents and Indices
Exercise 3.2.12
In-Line Graphics and Plots
Exercise 3.2.13
Typesetting Mathematical Notation
Exercise 3.2.14
Self-Publishing Services
Project 3.2.15
CL-BookKit: A Single-Source Publishing Library for Typesetting in Common Lisp
Output to:
- PDF/Print
- Ebook
- Web
- Plain-Text