## 4 Changing defaults

The purpose of LilyPond's design is to provide the finest output quality as a default. Nevertheless, it may happen that you need to change this default layout. The layout is controlled through a large number of proverbial “knobs and switches.” This chapter does not list each and every knob. Rather, it outlines what groups of controls are available and explains how to lookup which knob to use for a certain effect.

The controls available for tuning are described in a separate document, the Program reference manual. This manual lists all different variables, functions and options available in LilyPond. It is written as a HTML document, which is available on-line, but is also included with the LilyPond documentation package.

There are three areas where the default settings may be changed:

- Output: changing the appearance of individual objects. For example, changing stem directions, or the location of subscripts.
- Context: changing aspects of the translation from music events to notation. For example, giving each staff a separate time signature.
- Global layout: changing the appearance of the spacing, line breaks and page dimensions.

Then, there are separate systems for typesetting text (like ritardando) and selecting different fonts. This chapter also discusses these.

Internally, LilyPond uses Scheme (a LISP dialect) to provide infrastructure. Overriding layout decisions in effect accesses the program internals, so it is necessary to learn a (very small) subset of Scheme. That is why this chapter starts with a short tutorial on entering numbers, lists, strings and symbols in Scheme.

Read comments on this page, or add one. This page is for LilyPond-2.2.5 (stable-branch).