]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/ly2dvi.itexi
patch::: 1.4.1.jcn2
[lilypond.git] / Documentation / user / ly2dvi.itexi
index 345d04870d5a868440d2bcb55ac67539ee76f017..0ca57e8064c3b7b8a22137507f732141dcf5f9c4 100644 (file)
 @c -*-texinfo-*-
 
-@node Ly2dvi
-@section Ly2dvi
-
-Ly2dvi is a Python script which creates input file for La@TeX{},
-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 La@TeX{} 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 @file{ly2dvi}. 
-
-@subsection Invoking ly2dvi
-
-        ly2dvi [options] inputfile[.ly] [....]
-
-
-@table @samp
-@item -D,--debug
-    Set debug mode. There are two levels - in level one some debug
-    info is written, in level two the command @strong{set -x} is run, which
-    echoes every command in the ly2dvi script.
-@item -F,--headers=
-    Name of additional La@TeX{} headers file. This is included in the
-    tex file at the end of the headers, last line before @code{\begin@{document@}}
-@item -H,--Heigth=
-    Set paper heigth (points). Used together with width and La@TeX{} name of
-    papersize in case of papersize unknown to ly2dvi.
-@item -K,--keeplilypond
-    Keep LilyPond output after the run.
-@item -L,--landscape
-    Set landscape orientation - portrait is the default.
-    Use together with @code{dvips -t landscape} if you run dvips 
-    separately. 
-@item -N,--nonumber
-    Switch off page numbering.
-@item -O,--orientation=
-    Set orientation landscape - obsolete, use @strong{-L} instead.
-@item -P,--postscript
-    In addition to the DVI file, also Generate a postsript file.
-@item -W,--Width=
-    Set paper width (points). Used together with heigth and La@TeX{} name of
-    papersize in case of papersize unknown to ly2dvi.
-@item -d,--dependencies
-    Tell LilyPond to make dependencies file.
-@item -h,--help
-    Print help.
-@item -k,--keeply2dvi
-    Keep the La@TeX{} file after the run.
-@item -l,--language=
-    Specify La@TeX{} language.
-    (@strong{-l norsk} produces @code{\usepackage[norsk]@{babel@}}).
-@item -o,--output=
-    Set output directory.
-@item -p,--papersize=
-    Specify papersize.
-    (@strong{-p a4} produces @code{\usepackage[a4paper]@{article@}})
-@item -s,--separate
-    Normally all output files are included into one La@TeX{} file.
-    With this switch all files are run separately, to produce one
-    DVI file for each.
-@end table
+@node ly2dvi
+@chapter ly2dvi
 
+@file{ly2dvi} is a Python script that creates a nicely title output file
+from an input file for La@TeX{}. It can create a DVI or PS file. It
+works by running LilyPond on the input files, creating a La@TeX{}
+wrapper around the output, and running La@TeX{} (and optionally
+@code{dvips}).
 
-@subsection Ly2dvi Features
+@unnumberedsubsec Invoking ly2dvi
 
-Ly2dvi responds to several parameters specified in the LilyPond
-file. They are overridden by corresponding command line options.
-
-@table @samp
-@item language="";
-    Specify La@TeX{} language
-@item latexheaders="";
-    Specify additional La@TeX{} headers file
-@item orientation="";
-    Set orientation.
-@item paperlinewidth="";
-    Specify the width (pt, mm or cm) of the printed lines.
-@item papersize="";
-    Specify name of papersize.
-@end table
+@c ly2dvi needs at least one FILE, can't act as filter yet
+@example
+        ly2dvi [@var{OPTION}]@dots{} @var{FILE}@dots{}
+@end example
 
-@subsection Ly2dvi Environment
+@unnumberedsec Options
 
-@table @samp
-@item LILYPONDPREFIX
-    Sets the root directory of the LilyPond installation
-@item LILYINCLUDE
-    Additional directories for input files.
-@item TMP
-    Temporary directory name. Default is /tmp
+@table @code
+@item -k,--keep
+    Keep the temporary directory including LilyPond and ly2dvi output
+files. The temporary directory is created in the current directory as @code{ly2dvi.dir}.
+@item -d,--dependencies
+    Write makefile dependencies for every input file.
+@item -h,--help
+    Print help.
+@item -I,--include=@var{DIR}
+    Add @var{DIR} to LilyPond's include path.
+@item -m,--no-paper
+    Produce MIDI output only.
+@item --no-lily
+    Do not run LilyPond; useful for debugging ly2dvi.
+@item -o,--output=@var{FILE}
+    Generate output to @var{FILE}.  The extension of @var{FILE} is ignored.
+@item -P,--postscript
+    Also generate PostScript output.
+@item -s,--set=@var{KEY}=@var{VAL}
+    Add @var{KEY}= @var{VAL} to the settings, overriding those specified
+in the files. Possible keys: @code{language}, @code{latexheaders},
+@code{latexpackages}, @code{latexoptions}, @code{papersize},
+@code{pagenumber}, @code{linewidth}, @code{orientation},
+@code{textheight}.
+@item -v,--version
+Show version information 
+@item -V,--verbose
+Be verbose
+@item -w,--warranty
+Show the warranty with which GNU LilyPond comes. (It comes with 
+@strong{NO WARRANTY}!)
 @end table
 
-@subsection Ly2dvi Files
+@unnumberedsubsec Titling layout
 
-@file{titledefs.tex} is inspected for definitions used to extract
-additional text definitions from the LilyPond file. In the current
-version the following are defined:
+Ly2dvi extracts the following header fields from the LY files to
+generate titling:
 
-@table @samp
+@table @code
 @item title
     The title of the music. Centered on top of the first page.
 @item subtitle
     Subtitle, centered below the title.
 @item poet
-    Name of the poet, leftflushed below the below subtitle.
+    Name of the poet, left flushed below the below subtitle.
 @item composer
-    Name of the composer, rightflushed below the subtitle.
+    Name of the composer, right flushed below the subtitle.
 @item metre
-    Meter string, leftflushed below the below poet.
+    Meter string, left flushed below the below poet.
 @item opus
-    Name of the opus, rightflushed below the below composer.
+    Name of the opus, right flushed below the below composer.
 @item arranger
-    Name of the arranger, rightflushed below the opus.
+    Name of the arranger, right flushed below the opus.
 @item instrument
     Name of the instrument, centered below the arranger
 @item piece
-    Name of the piece, leftflushed below the instrument
+    Name of the piece, left flushed below the instrument
+@item head
+    A text to print in the header of all pages. It is not called
+@code{header}, because @code{\header} is a reserved word in LilyPond.
+@item footer
+    A text to print in the footer of all pages
+@item tagline
+    Line to print at the bottom of last page. The default text is ``Lily
+was here, @var{version-number}''.
+@end table
+
+
+@cindex header
+@cindex footer
+@cindex page layout
+@cindex titles
+
+
+
+@unnumberedsubsec Additional parameters
+
+Ly2dvi responds to several parameters specified in the LilyPond
+file. They can be overridden by supplying a @code{--set} command line
+option.
+
+@table @code
+@item language
+    Specify La@TeX{} language: the @code{babel} package will be
+included.  Default: unset.
+
+        Read from the @code{\header} block.
+
+@item latexheaders
+    Specify additional La@TeX{} headers file.
+
+        Normally read from the @code{\header} block. Default value: empty
+
+@item latexheaders
+    Specify additional La@TeX{} packages file. This works cumulative,
+so you can add multiple packages using multiple @code{-s=latexpackages} options.
+       Normally read from the @code{\header} block. Default value:
+@code{geometry}.
+
+@item latexoptions
+    Specify additional options for the La@TeX{} @code{\documentclass}. You can put any valid value here. This was designed to allow ly2dvi to produce output for double-sided paper, with balanced margins and pagenumbers on alternating sides. To achieve this specify @code{twoside}
+
+@item orientation
+    Set orientation. Choices are @code{portrait} or @code{landscape}. Is
+read from the @code{\paper} block, if set.
+        
+@item linewidth
+        The music line width. It is normally read from the @code{\paper}
+block.
+
+@item papersize
+   The paper size (as a name, e.g. @code{a4}). It is normally read from
+the @code{\paper} block.
 @end table
 
-@file{$LILYPONDPREFIX/share/.lilyrc $HOME/.lilyrc ./.lilyrc} are files
-to set up default running conditions.  On Windows OS initialization
-files are named @file{_lilyrc}. The file syntax is as follows:
-
-@example 
-VARIABLE-NAME=VALUE 
-@end example 
-
-Where @strong{VARIABLE-NAME} is the name of the variable documented below
-and @strong{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:
-
-@table @samp
-@item DEBUG=value
-This turns off (default) or on the debug capabilities.  Possible
-values are 0 (off) and 1 (on).
-@item DEPENDENCIES=value
-This turns off (default) or on the ability to generate a Makefile
-dependency list.  Possible values are 0 (off) and 1 (on).
-@item 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).
-@item 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)
-@item LANGUAGE=value
-Specify La@TeX{} language.  Possible value is a valid La@TeX{} language.
-@item LATEXHF=value
-Specify additional La@TeX{} headers file.  Possible value is a file
-specification. 
-@item LILYINCLUDE=value
-Additional directories for input files.  Possible value is a delimited
-directory path list.
-@item LILYPONDPREFIX=value
-This defines the LilyPond root directory.  Possible value is a valid
-directory specification to the LilyPond distribution location.
-@item NONUMBER=value
-This turns off (default) or on the page numbering capability.
-Possible values are 0 (page numbering enabled) and 1 (page numbering
-disabled). 
-@item ORIENTATION=value
-This sets the image orientation.  Possible values are
-portrait (default) and landscape.
-@item 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.
-@item 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.
-@item PHEIGHT=value
-Specify paperheight (points - an inch is 72.27, a cm is 28.453 points).
-@item POSTSCRIPT=value
-This turns off (default) or on the capability of additionally
-generating a postscript file.  Possible values are 0 (off) and 1 (on).
-@item PWIDTH=value
-Specify paperwidth (points - an inch is 72.27, a cm is 28.453 points).
-@item 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).
-@item 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.
+@unnumberedsubsec Environment variables
+
+@table @code
+@item LANG
+selects the language for the warning messages of Ly2dvi and LilyPond.
 @end table
 
-@subsection Ly2dvi Initialization Sequence
-The initialization process reads inputs for several sources.  Below is
-a list of priorities for lowest to hightest proirity.
-
-@itemize @bullet
-@item  Program's defaults
-@item  Values found in LilyPond output file
-@item  Environment variables
-@item  $LILYPONDPREFIX/share/lilypond/.lilyrc
-@item  $HOME/.lilyrc
-@item  ./.lilyrc
-@item  command line options
-@end itemize
-
-Note that this differs slightly from the original bourne shell
-version. 
-
-@subsection Ly2dvi Bugs
-
-@c should?
-FIXME.
-See @ref{Bug reports}.
-If you have found a bug, you should send a bugreport.
-
-@itemize @bullet
-@item Send a copy of the input which causes the error.
-@item Send a description of the platform you use.
-@item Send a description of the LilyPond and ly2dvi version you use.
-@item Send a description of the bug itself.
-@item Send it to @email{bug-gnu-music@@gnu.org} (you don't have to subscribe
-    to this mailinglist).
-@end itemize
-
-@subsection Ly2dvi Remarks
-
-Many papersizes are now supported. Information on other sizes
-(La@TeX{} 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
-
-@subsection Ly2dvi Authors
-Python Version author:
-@email{daboys@@austin.rr.com, Jeffrey B. Reed},
-@uref{http://home.austin.rr.com/jbr/jeff/lilypond/}
-
-Original bourne shell version author:
-@email{Jan.A.Fagertun@@energy.sintef.no, Jan Arne Fagertun},
-@uref{http://www.termo.unit.no/mtf/people/janaf/}
+@unnumberedsubsec  Bugs
+
+Cannot generate @TeX{} or @code{PostScript} only.  Send bugreports to to
+@email{bug-gnu-music@@gnu.org}.
+
+@unnumberedsubsec  Authors
+
+@email{hanwen@@cs.uu.nl,Han-Wen Nienhuys}.
+
+Earlier incarnations of ly2dvi were written by
+@email{daboys@@austin.rr.com, Jeffrey B. Reed} (Python version), and
+@email{Jan.A.Fagertun@@energy.sintef.no, Jan Arne Fagertun} (Bourne
+shell version)