Chapter 3.2

Typesetting

"You don't pay back, you pay forward."

Robert A. Heinlein, as quoted by Jerry Pournelle in Starswarm

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


results matching ""

    No results matching ""