Ly2dvi
******

DESCRIPTION
===========

ly2dvi is a Python script which creates input file for LaTeX, based on information from the output files from LilyPond. The script handles multiple files. If a lilypond file name is specified LilyPond is run to make an output (TeX) file.

One or more LaTeX files are created, based on information found in the output (TeX) files, and latex is finally run to create one or more DVI files.

The majority of this utility came from a bourne script written by Jan Arne Fagertun name ly2dvi.

SYNOPSIS
========

ly2dvi [options] inputfile[.ly] [....]

OPTIONS
=======

-D,--debug
     Set debug mode. There are two levels - in level one some debug info is written, in level two the command set -x is run, which echoes every command in the ly2dvi script.

-F,--headers=
     Name of additional LaTeX headers file. This is included in the tex file at the end of the headers, last line before \begin{document}

-H,--Heigth=
     Set paper heigth (points). Used together with width and LaTeX name of papersize in case of papersize unknown to ly2dvi.

-K,--keeplilypond
     Keep LilyPond output after the run.

-L,--landscape
     Set landscape orientation - portrait is the default. (-L produces \usepackage[landscape]{article})

-N,--nonumber
     Switch off page numbering.

-O,--orientation=
     Set orientation landscape - obsolete, use -L instead.

-P,--postscript
     In addition to the DVI file, also Generate a postsript file.

-W,--Width=
     Set paper width (points). Used together with heigth and LaTeX name of papersize in case of papersize unknown to ly2dvi.

-d,--dependencies
     Tell lilypond to make dependencies file.

-h,--help
     Print help.

-k,--keeply2dvi
     Keep the LaTeX file after the run.

-l,--language=
     Specify LaTeX language. (-l norsk produces \usepackage[norsk]{babel}).

-o,--output=
     Set output directory.

-p,--papersize=
     Specify papersize. (-p a4 produces \usepackage[a4paper]{article})

-s,--separate
     Normally all output files are included into one LaTeX file. With this switch all files are run separately, to produce one DVI file for each.

Features
========

ly2dvi responds to several parameters specified in the lilypond file. They are overridden by corresponding command line options.

language="";
     Specify LaTeX language

latexheaders="";
     Specify additional LaTeX headers file

orientation="";
     Set orientation.

paperlinewidth="";
     Specify the width (pt, mm or cm) of the printed lines.

papersize="";
     Specify name of papersize.

Environment
===========

LILYPONDPREFIX
     Sets the root directory of the LilyPond installation

LILYINCLUDE
     Additional directories for input files.

TMP
     Temporary directory name. Default is /tmp

Files
=====

titledefs.tex is inspected for definitions used to extract additional text definitions from the lilypond file. In the current version the following are defined:

title
     The title of the music. Centered on top of the first page.

subtitle
     Subtitle, centered below the title.

poet
     Name of the poet, leftflushed below the below subtitle.

composer
     Name of the composer, rightflushed below the subtitle.

metre
     Meter string, leftflushed below the below poet.

opus
     Name of the opus, rightflushed below the below composer.

arranger
     Name of the arranger, rightflushed below the opus.

instrument
     Name of the instrument, centered below the arranger

piece
     Name of the piece, leftflushed below the instrument

$LILYPONDPREFIX/share/.lilyrc $HOME/.lilyrc ./.lilyrc are files to set up default running conditions.  On Windows OS initialization files are named _lilyrc. The file syntax is as follows:

     VARIABLE-NAME=VALUE

Where VARIABLE-NAME is the name of the variable documented below and VALUE is either a string, a 1, or a 0.  All files are parsed, in the shown sequence. In the current version the following are allowed:

DEBUG=value
     This turns off (default) or on the debug capabilities.  Possible values are 0 (off) and 1 (on).

DEPENDENCIES=value
     This turns off (default) or on the ability to generate a Makefile dependency list.  Possible values are 0 (off) and 1 (on).

KEEPLILYPOND=value
     This turns off (default) or on the ability to keep the log file associated with the LilyPond job.  Possible values are 0 (off) and 1 (on).

KEEPLY2DVI=value
     This turns off (default) or on the ability to keep the temporary files that are generated by the ly2dvi job.  Possible values are 0 (off) and 1 (on)

LANGUAGE=value
     Specify LaTeX language.  Possible value is a valid LaTeX language.

LATEXHF=value
     Specify additional LaTeX headers file.  Possible value is a file specification.

LILYINCLUDE=value
     Additional directories for input files.  Possible value is a delimited directory path list.

LILYPONDPREFIX=value
     This defines the LilyPond root directory.  Possible value is a valid directory specification to the LilyPond distribution location.

NONUMBER=value
     This turns off (default) or on the page numbering capability. Possible values are 0 (page numbering enabled) and 1 (page numbering disabled).

ORIENTATION=value
     This sets the image orientation.  Possible values are portrait (default) and landscape.

OUTPUTDIR=value
     This defines the directory where the resultant files will be generated.  Possible value is a valid directory specification. Default is the current working directory.

PAPERSIZE=value
     This defines the papersize the image will be sized to fit.  Possible values are a0, a1, a2, a3, a4 (default), a5, a6, a7, a8, a9, a10, b0, b1, b2, b3, b4, b5, archA, archB, archC, archD, archE, flsa, flse, halfletter, ledger, legal, letter, or note.

PHEIGHT=value
     Specify paperheight (points - an inch is 72.27, a cm is 28.453 points).

POSTSCRIPT=value
     This turns off (default) or on the capability of additionally generating a postscript file.  Possible values are 0 (off) and 1 (on).

PWIDTH=value
     Specify paperwidth (points - an inch is 72.27, a cm is 28.453 points).

SEPARATE=value
     This turns off (default) or on the capability of generating multiple dvi and postscript files from multiple source files.  The default is to generate a concatenation of the source files.  Possible values are 0 (single file) and 1 (separate files).

TMP=value
     This defines the emporary directory.  Actually this is not used at the present.  Possible value is a valid directory specification that is writable to the user.

Initialization Sequence
=======================

The initialization process reads inputs for several sources.  Below is a list of priorities for lowest to hightest proirity.

  * Program's defaults

  * Values found in LilyPond output file

  * Environment variables

  * $LILYPONDPREFIX/share/lilypond/.lilyrc

  * $HOME/.lilyrc

  * ./.lilyrc

  * command line options

Note that this differs slightly from the original bourne shell version.

See Also
========

lilypond(1), tex(1), latex(1)

Bugs
====

If you have found a bug, you should send a bugreport.

  * Send a copy of the input which causes the error.

  * Send a description of the platform you use.

  * Send a description of the LilyPond and ly2dvi version you use.

  * Send a description of the bug itself.

  * Send it to bug-gnu-music@gnu.org (you don't have to subscribe to this mailinglist).

Remarks
=======

Many papersizes are now supported. Information on other sizes (LaTeX names, horizontal and vertical sizes) should be mailed to the author or to the mailing list.

Supported papersizes are:

a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, archA, archB, archC, archD, archE, b0, b1, b2, b3, b4, b5, flsa, flse, halfletter, ledger, legal, letter, note

Authors
=======

Python Version author: Jeffrey B. Reed, http://home.austin.rr.com/jbr/jeff/lilypond/

Original bourne shell version author: Jan Arne Fagertun, http://www.termo.unit.no/mtf/people/janaf/