## 3.4 Invoking `lilypond-book`

`lilypond-book` produces a file with one of the following extensions: ‘`.tex`’, ‘`.texi`’, ‘`.html`’ or ‘`.xml`’, depending on the output format. All of ‘`.tex`’, ‘`.texi`’ and ‘`.xml`’ files need further processing.

### Format-specific instructions

#### LaTeX

There are two ways of processing your LaTeX document for printing or publishing: getting a PDF file directly with PDFLaTeX, or getting a PostScript file with LaTeX via a DVI to PostScript translator like `dvips`. The first way is simpler and recommended1, and whichever way you use, you can easily convert between PostScript and PDF with tools, like `ps2pdf` and `pdf2ps` included in Ghostscript package.

To produce a PDF file through PDFLaTeX, use

>     lilypond-book --pdf yourfile.lytex
>     pdflatex yourfile.tex

To produce PDF output via LaTeX/`dvips`/`ps2pdf`, you should do

>     lilypond-book yourfile.lytex
>     latex yourfile.tex
>     dvips -Ppdf yourfile.dvi
>     ps2pdf yourfile.ps

The ‘`.dvi`’ file created by this process will not contain note heads. This is normal; if you follow the instructions, they will be included in the ‘`.ps`’ and ‘`.pdf`’ files.

Running `dvips` may produce some warnings about fonts; these are harmless and may be ignored. If you are running `latex` in twocolumn mode, remember to add ‘`-t landscape`’ to the `dvips` options.

#### Known issues and warnings

The `\pageBreak` command will not work within a `\begin{lilypond} … \end{lilypond}` environment.

Many `\paper` block variables will also not work within a `\begin{lilypond} … \end{lilypond}` environment. Use `\newcommand` with `\betweenLilyPondSystem` in the preamble;

>     \newcommand{\betweenLilyPondSystem}[1]{\vspace{36mm}\linebreak}

#### Texinfo

To produce a Texinfo document (in any output format), follow the normal procedures for Texinfo; this is, either call `texi2pdf` or `texi2dvi` or `makeinfo`, depending on the output format you want to create. See the documentation of Texinfo for further details.

### Command line options

`lilypond-book` accepts the following command line options:

`-f format`
`--format=format`

  Specify the document type to process: `html`, `latex`, `texi` (the default) or `docbook`. If this option is missing, `lilypond-book` tries to detect the format automatically, see Filename extensions. Currently, `texi` is the same as `texi-html`.

`-F filter`
`--filter=filter`

  Pipe snippets through filter. `lilypond-book` will not –filter and –process at the same time. For example,

  >     lilypond-book --filter='convert-ly --from=2.0.0 -' my-book.tely

`-h`
`--help`

  Print a short help message.

`-I dir`
`--include=dir`

  Add dir to the include path. `lilypond-book` also looks for already compiled snippets in the include path, and does not write them back to the output directory, so in some cases it is necessary to invoke further processing commands such as `makeinfo` or `latex` with the same ‘`-I dir`’ options.

`-l loglevel`
`--loglevel=loglevel`

  Set the output verbosity to loglevel. Possible values are `NONE`, `ERROR`, `WARNING`, `PROGRESS` (default) and `DEBUG`. If this option is not used, and the environment variable `LILYPOND_BOOK_LOGLEVEL` is set, its value is used as the loglevel.

`-o dir`
`--output=dir`

  Place generated files in directory dir. Running `lilypond-book` generates lots of small files that LilyPond will process. To avoid all that garbage in the source directory, use the ‘`--output`’ command line option, and change to that directory before running `latex` or `makeinfo`.

  >     lilypond-book --output=out yourfile.lytex
  >     cd out
  >     …

`--skip-lily-check`

  Do not fail if no lilypond output is found. It is used for LilyPond Info documentation without images.

`--skip-png-check`

  Do not fail if no PNG images are found for EPS files. It is used for LilyPond Info documentation without images.

`--lily-output-dir=dir`

  Write lily-XXX files to directory dir, link into ‘`--output`’ directory. Use this option to save building time for documents in different directories which share a lot of identical snippets.

`--lily-loglevel=loglevel`

  Set the output verbosity of the invoked `lilypond` calls to loglevel. Possible values are `NONE`, `ERROR`, `WARNING`, `BASIC_PROGRESS`, `PROGRESS`, `INFO` (default) and `DEBUG`. If this option is not used, and the environment variable `LILYPOND_LOGLEVEL` is set, its value is used as the loglevel.

`--info-images-dir=dir`

  Format Texinfo output so that Info will look for images of music in dir.

`--latex-program=prog`

  Run executable `prog` instead of `latex`. This is useful if your document is processed with `xelatex`, for example.

`--left-padding=amount`

  Pad EPS boxes by this much. amount is measured in millimeters, and is 3.0 by default. This option should be used if the lines of music stick out of the right margin.

  The width of a tightly clipped system can vary, due to notation elements that stick into the left margin, such as bar numbers and instrument names. This option will shorten each line and move each line to the right by the same amount.

`-P command`
`--process=command`

  Process LilyPond snippets using command. The default command is `lilypond`. `lilypond-book` will not ‘`--filter`’ and ‘`--process`’ at the same time.

`--pdf`

  Create PDF files for use with PDFLaTeX.

`--redirect-lilypond-output`

  By default, output is displayed on the terminal. This option redirects all output to log files in the same directory as the source files.

`--use-source-file-names`

  Write snippet output files with the same base name as their source file. This option works only for snippets included with `lilypondfile` and only if directories implied by ‘`--output-dir`’ and ‘`--lily-output-dir`’ options are different.

`-V`
`--verbose`

  Be verbose. This is equivalent to `--loglevel=DEBUG`.

`-v`
`--version`

  Print version information.

#### Known issues and warnings

The Texinfo command `@pagesizes` is not interpreted. Similarly, LaTeX commands that change margins and line widths after the preamble are ignored.

Only the first `\score` of a LilyPond block is processed.

### Footnotes

[1] Note that PDFLaTeX and LaTeX may not be both usable to compile any LaTeX document, that is why we explain the two ways.

其他语言：deutsch, español, français, italiano, 日本語。
About automatic language selection.

#### LilyPond — Usage v2.18.2 (稳定分支).