| [ << Tweaking output ] | [Top][Contents][Index] | [ Templates >> ] |
| [ < Style sheets ] | [ Up: Further tweaking ] | [ Advanced tweaks with Scheme > ] |
5.8.4 Other sources of information
The Internals Reference documentation contains a lot of information about LilyPond, but even more information can be gathered by looking at the internal LilyPond files. To explore these, you must first find the directory appropriate to your system. If you say
lilypond --help
on the command line, the top-level directory of LilyPond’s data tree is shown near the end of the help output, for example
Top-level directory of LilyPond's data tree: '/usr/local/share/lilypond/2.25.35'
Within this directory the two interesting subdirectories are
- ly/
contains files in LilyPond format
- scm/
contains files in Scheme format
Let’s begin by looking at some files in ly/.
Open ly/property-init.ly in a text editor – the one
you normally use for .ly files will be fine. This file
contains the definitions of all the standard LilyPond predefined
commands, such as \tieUp and \slurDotted. You will
see that these are nothing more than definitions of variables
containing one or a group of \override commands. For
example, \textLengthOn is defined to be:
textLengthOn = {
% 0.4 staff-space between adjacent texts
\override TextScript.extra-spacing-width = #'(-0.0 . 0.4)
\override TextScript.extra-spacing-height = #'(-inf.0 . +inf.0)
}
If you do not like the default values these predefined commands can be redefined easily, just like any other variable, at the head of your input file.
The following are the most useful files to be found in ly/:
Filename Contents ly/engraver-init.ly Definitions of engraver contexts ly/paper-defaults-init.ly Specifications of paper-related defaults ly/performer-init.ly Definitions of performer contexts ly/property-init.ly Definitions of all common predefined commands ly/spanner-init.ly Definitions of spanner-related predefined commands
Other settings (such as the definitions of markup commands) are stored as .scm (Scheme) files. The Scheme programming language is used to provide a programmable interface into LilyPond’s internal operation. Further explanation of these files is outside the scope of this manual, as some knowledge of the Scheme language is required. Users should be warned that a substantial amount of technical knowledge or time is required to understand Scheme and these files (see Scheme tutorial).
If you have this knowledge, the Scheme files that may be of interest are:
Filename Contents scm/auto-beam.scm Sub-beaming defaults scm/define-grobs.scm Default settings for grob properties scm/define-markup-commands.scm Almost all markup commands scm/midi.scm Default settings for MIDI output scm/output-lib.scm Settings that affect appearance of frets, colors, accidentals, bar lines, etc. scm/parser-clef.scm Definitions of supported clefs scm/script.scm Default settings for articulations
| [ << Tweaking output ] | [Top][Contents][Index] | [ Templates >> ] |
| [ < Style sheets ] | [ Up: Further tweaking ] | [ Advanced tweaks with Scheme > ] |