]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/usage/external.itely
Doc: Usage - Update section on articulate.ly
[lilypond.git] / Documentation / usage / external.itely
index c90ad626bbf7e3834e2b8982e78f128cce19bf62..554bde870a8cc7f54766555479f0ce21bf01dcc4 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.12.0"
+@c \version "2.19.21"
 
 @node External programs
 @chapter External programs
 
 @node External programs
 @chapter External programs
@@ -30,25 +30,28 @@ LilyPond can interact with other programs in various ways.
 @cindex point and click
 
 Point and click lets you find notes in the input by clicking on them
 @cindex point and click
 
 Point and click lets you find notes in the input by clicking on them
-in the PDF viewer.  This makes it easier to find input that causes
-some error in the sheet music.
+in the PDF viewer.  This makes it easier to find input that causes some
+error in the sheet music.
 
 
-When this functionality is active, LilyPond adds hyperlinks to the PDF
-file.  These hyperlinks are sent to the web-browser, which opens a
-text-editor with the cursor in the right place.
+@menu
+* Configuring the system for point and click::
+* Enabling point and click::
+* Selective point-and-click::
+@end menu
+
+
+@node Configuring the system for point and click
+@subsection Configuring the system
+
+When this functionality is active, LilyPond adds hyperlinks to PDF and
+SVG files.  These hyperlinks are sent to a @q{URI helper} or a
+web-browser, which opens a text-editor with the cursor in the right
+place.
 
 To make this chain work, you should configure your PDF viewer to
 follow hyperlinks using the @file{lilypond-invoke-editor} script
 supplied with LilyPond.
 
 
 To make this chain work, you should configure your PDF viewer to
 follow hyperlinks using the @file{lilypond-invoke-editor} script
 supplied with LilyPond.
 
-For Xpdf on UNIX, the following should be present in
-@file{xpdfrc}@footnote{On UNIX, this file is found either in
-@file{/etc/xpdfrc} or as @file{.xpdfrc} in your home directory.}
-
-@example
-urlCommand     "lilypond-invoke-editor %s"
-@end example
-
 The program @file{lilypond-invoke-editor} is a small helper
 program.  It will invoke an editor for the special @code{textedit}
 URIs, and run a web browser for others.  It tests the environment
 The program @file{lilypond-invoke-editor} is a small helper
 program.  It will invoke an editor for the special @code{textedit}
 URIs, and run a web browser for others.  It tests the environment
@@ -86,12 +89,144 @@ emacsclient --no-wait +%(line)s:%(column)s %(file)s
 for @code{LYEDITOR} is equivalent to the standard emacsclient
 invocation.
 
 for @code{LYEDITOR} is equivalent to the standard emacsclient
 invocation.
 
+@menu
+* Using Xpdf for point and click::
+* Using GNOME 2 for point and click::
+* Using GNOME 3 for point and click::
+* Extra configuration for Evince::
+@end menu
+
+
+@node Using Xpdf for point and click
+@unnumberedsubsubsec Using Xpdf
 
 
+@cindex Xpdf
+
+For Xpdf on UNIX, the following should be present in
+@file{xpdfrc}.  On UNIX, this file is found either in
+@file{/etc/xpdfrc} or as @file{$HOME/.xpdfrc}.
+
+@example
+urlCommand     "lilypond-invoke-editor %s"
+@end example
+
+If you are using Ubuntu, it is likely that the version of Xpdf
+installed with your system crashes on every PDF file: this state
+has been persisting for several years and is due to library
+mismatches.  Your best bet is to install a current @samp{xpdf}
+package and the corresponding @samp{libpoppler} package from
+Debian instead.  Once you have tested that this works, you might
+want to use
+
+@example
+sudo apt-mark hold xpdf
+@end example
+
+@noindent
+in order to keep Ubuntu from overwriting it with the next
+@q{update} of its crashing package.
+
+
+@node Using GNOME 2 for point and click
+@unnumberedsubsubsec Using GNOME 2
+
+For using GNOME 2 (and PDF viewers integrated with it), the magic
+invocation for telling the system about the @samp{textedit:} URI
+is;
+
+@smallexample
+gconftool-2 -t string -s /desktop/gnome/url-handlers/textedit/command "lilypond-invoke-editor %s"
+gconftool-2 -s /desktop/gnome/url-handlers/textedit/needs_terminal false -t bool
+gconftool-2 -t bool -s /desktop/gnome/url-handlers/textedit/enabled true
+@end smallexample
+
+After that invocation;
+
+@example
+gnome-open textedit:///etc/issue:1:0:0
+@end example
+
+@noindent
+should call @file{lilypond-invoke-editor} for opening files.
+
+
+@node Using GNOME 3 for point and click
+@unnumberedsubsubsec Using GNOME 3
+
+In GNOME 3, URIs are handled by the @q{gvfs} layer rather than by
+@q{gconf}.  Create a file in a local directory such as @file{/tmp}
+that is called @file{lilypond-invoke-editor.desktop} and has the
+contents;
+
+@example
+[Desktop Entry]
+Version=1.0
+Name=lilypond-invoke-editor
+GenericName=Textedit URI handler
+Comment=URI handler for textedit:
+Exec=lilypond-invoke-editor %u
+Terminal=false
+Type=Application
+MimeType=x-scheme-handler/textedit;
+Categories=Editor
+NoDisplay=true
+@end example
+and then execute the commands
+@example
+xdg-desktop-menu install ./lilypond-invoke-editor.desktop
+xdg-mime default lilypond-invoke-editor.desktop x-scheme-handler/textedit
+@end example
+
+After that invocation;
+
+@example
+gnome-open textedit:///etc/issue:1:0:0
+@end example
+@noindent
+should call @file{lilypond-invoke-editor} for opening files.
+
+
+@node Extra configuration for Evince
+@unnumberedsubsubsec Extra configuration for Evince
+
+@cindex Evince
+
+If @code{gnome-open} works, but Evince still refuses to open point
+and click links due to denied permissions, you might need to
+change the Apparmor profile of Evince which controls the kind of
+actions Evince is allowed to perform.
+
+For Ubuntu, the process is to edit the file
+@file{/etc/apparmor.d/local/usr.bin.evince} and append the
+following lines:
+
+@example
+# For Textedit links
+/usr/local/bin/lilypond-invoke-editor Cx -> sanitized_helper,
+@end example
+@noindent
+
+After adding these lines, call
+
+@example
+sudo apparmor_parser -r -T -W /etc/apparmor.d/usr.bin.evince
+@end example
+
+@noindent
+Now Evince should be able to open point and click links.  It is
+likely that similar configurations will work for other viewers.
+
+
+@node Enabling point and click
+@unnumberedsubsec Enabling point and click
 @cindex file size, output
 
 @cindex file size, output
 
+Point and click functionality is enabled by default when creating
+PDF or SVG files.
+
 The point and click links enlarge the output files significantly.  For
 The point and click links enlarge the output files significantly.  For
-reducing the size of PDF and PS files, point and click may be switched
-off by issuing
+reducing the size of these (and PS) files, point and click may
+be switched off by issuing
 
 @example
 \pointAndClickOff
 
 @example
 \pointAndClickOff
@@ -113,7 +248,84 @@ lilypond -dno-point-and-click file.ly
 
 @warning{You should always turn off point and click in any LilyPond
 files to be distributed to avoid including path information about
 
 @warning{You should always turn off point and click in any LilyPond
 files to be distributed to avoid including path information about
-your computer in the .pdf file, which can pose a security risk.}
+your computer in the PDF file, which can pose a security risk.}
+
+
+@node Selective point-and-click
+@unnumberedsubsec Selective point-and-click
+
+For some interactive applications, it may be desirable to only
+include certain point-and-click items.  For example, if somebody
+wanted to create an application which played audio or video
+starting from a particular note, it would be awkward if clicking
+on the note produced the point-and-click location for an
+accidental or slur which occurred over that note.
+
+This may be controlled by indicating which events to include:
+
+@itemize
+@item
+Hard-coded in the @file{.ly} file:
+
+@example
+\pointAndClickTypes #'note-event
+\relative @{
+  c'2\f( f)
+@}
+@end example
+
+or
+
+@example
+#(ly:set-option 'point-and-click 'note-event)
+\relative @{
+  c'2\f( f)
+@}
+@end example
+
+@item
+Command-line:
+
+@example
+lilypond -dpoint-and-click=note-event   example.ly
+@end example
+
+@end itemize
+
+Multiple events can be included:
+
+@itemize
+@item
+Hard-coded in the @file{.ly} file:
+
+@example
+\pointAndClickTypes #'(note-event dynamic-event)
+\relative @{
+  c'2\f( f)
+@}
+@end example
+
+or
+
+@example
+#(ly:set-option 'point-and-click '(note-event dynamic-event))
+\relative @{
+  c'2\f( f)
+@}
+@end example
+
+@item
+Command-line:
+
+@smallexample
+lilypond \
+  -e"(ly:set-option 'point-and-click '(note-event dynamic-event))" \
+  example.ly
+@end smallexample
+
+@end itemize
+
+
 @node Text editor support
 @section Text editor support
 
 @node Text editor support
 @section Text editor support
 
@@ -132,6 +344,7 @@ There is support for different text editors for LilyPond.
 * Other editors::
 @end menu
 
 * Other editors::
 @end menu
 
+
 @node Emacs mode
 @unnumberedsubsec Emacs mode
 
 @node Emacs mode
 @unnumberedsubsec Emacs mode
 
@@ -160,39 +373,22 @@ your @var{load-path} by appending the following line (as modified) to your
 @node Vim mode
 @unnumberedsubsec Vim mode
 
 @node Vim mode
 @unnumberedsubsec Vim mode
 
-For @uref{http://@/www@/.vim@/.org,VIM}, a @file{vimrc} is supplied,
-along with syntax coloring tools.  A Vim mode for entering music and
-running LilyPond is contained in the source archive in @code{$VIM}
-directory.
-
-The LilyPond file type is detected if the file
-@file{~/.vim/filetype.vim} has the following content
-
-@example
-if exists("did_load_filetypes")
-  finish
-endif
-augroup filetypedetect
-  au! BufNewFile,BufRead *.ly,*.ily           setf lilypond
-augroup END
-@end example
-
-Please include this path by appending the following line to your
-@file{~/.vimrc}
+For @uref{http://@/www@/.vim@/.org,Vim}, a filetype plugin, indent
+mode, and syntax-highlighting mode are available to use with
+LilyPond.  To enable all of these features, create (or modify)
+your @file{$HOME/.vimrc} to contain these three lines, in order:
 
 @example
 
 @example
-set runtimepath+=/usr/local/share/lilypond/$@{LILYPOND_VERSION@}/vim/
+filetype off
+set runtimepath+=/usr/local/share/lilypond/current/vim/
+filetype on
+syntax on
 @end example
 
 @noindent
 @end example
 
 @noindent
-where $@{LILYPOND_VERSION@} is your LilyPond version.  If LilyPond was not
-installed in @file{/usr/local/}, then change this path accordingly.
-The path may differ significantly. In Fedora the path leads to the
-current version of Vim instead of Lilypond:
-
-@example
-set runtimepath+=/usr/share/vim/vim72/
-@end example
+If LilyPond is not installed in the @file{/usr/local/} directory,
+change the path appropriately.  This topic is discussed in
+@rlearning{Other sources of information}.
 
 
 @node Other editors
 
 
 @node Other editors
@@ -201,7 +397,7 @@ set runtimepath+=/usr/share/vim/vim72/
 Other editors (both text and graphical) support LilyPond, but
 their special configuration files are not distributed with
 LilyPond.  Consult their documentation for more information.  Such
 Other editors (both text and graphical) support LilyPond, but
 their special configuration files are not distributed with
 LilyPond.  Consult their documentation for more information.  Such
-editors are listed in @rweb{Alternate editors}.
+editors are listed in @rweb{Easier editing}.
 
 
 @node Converting from other formats
 
 
 @node Converting from other formats
@@ -219,7 +415,6 @@ information.  If you have MacOS 10.3 or 10.4 and you have trouble
 running some of these scripts, e.g. @code{convert-ly}, see
 @rweb{MacOS X}.
 
 running some of these scripts, e.g. @code{convert-ly}, see
 @rweb{MacOS X}.
 
-
 @knownissues
 We unfortunately do not have the resources to maintain these
 programs; please consider them @qq{as-is}.  Patches are appreciated, but
 @knownissues
 We unfortunately do not have the resources to maintain these
 programs; please consider them @qq{as-is}.  Patches are appreciated, but
@@ -234,14 +429,13 @@ bug reports will almost certainly not be resolved.
 @end menu
 
 
 @end menu
 
 
-
 @node Invoking midi2ly
 @subsection Invoking @command{midi2ly}
 
 @cindex MIDI
 
 @node Invoking midi2ly
 @subsection Invoking @command{midi2ly}
 
 @cindex MIDI
 
-@command{midi2ly} translates a Type@tie{}1 MIDI file to a LilyPond source
-file.
+@command{midi2ly} translates a Type@tie{}1 MIDI file to a LilyPond
+source file.
 
 MIDI (Music Instrument Digital Interface) is a standard for digital
 instruments: it specifies cabling, a serial protocol and a file
 
 MIDI (Music Instrument Digital Interface) is a standard for digital
 instruments: it specifies cabling, a serial protocol and a file
@@ -257,13 +451,13 @@ for pitches, durations are only written when necessary.
 It is possible to record a MIDI file using a digital keyboard, and
 then convert it to @file{.ly}.  However, human players are not
 rhythmically exact enough to make a MIDI to LY conversion trivial.
 It is possible to record a MIDI file using a digital keyboard, and
 then convert it to @file{.ly}.  However, human players are not
 rhythmically exact enough to make a MIDI to LY conversion trivial.
-When invoked with quantizing (@code{-s} and @code{-d} options)
-@command{midi2ly} tries to compensate for these timing errors, but is not
-very good at this.  It is therefore not recommended to use @command{midi2ly}
-for human-generated midi files.
-
+When invoked with quantizing (@option{-s} and @option{-d} options)
+@command{midi2ly} tries to compensate for these timing errors, but is
+not very good at this.  It is therefore not recommended to use
+@command{midi2ly} for human-generated midi files.
 
 It is invoked from the command-line as follows,
 
 It is invoked from the command-line as follows,
+
 @example
 midi2ly [@var{option}]@dots{} @var{midi-file}
 @end example
 @example
 midi2ly [@var{option}]@dots{} @var{midi-file}
 @end example
@@ -284,7 +478,7 @@ Quantize note durations on @var{DUR}.
 @item -e, --explicit-durations
 Print explicit durations.
 
 @item -e, --explicit-durations
 Print explicit durations.
 
-@item -h,--help
+@item -h, --help
 Show summary of usage.
 
 @item -k, --key=@var{acc}[:@var{minor}]
 Show summary of usage.
 
 @item -k, --key=@var{acc}[:@var{minor}]
@@ -314,9 +508,7 @@ Show warranty and copyright.
 Treat every text as a lyric.
 @end table
 
 Treat every text as a lyric.
 @end table
 
-
 @knownissues
 @knownissues
-
 Overlapping notes in an arpeggio will not be correctly rendered.  The
 first note will be read and the others will be ignored.  Set them all
 to a single duration and add phrase markings or pedal indicators.
 Overlapping notes in an arpeggio will not be correctly rendered.  The
 first note will be read and the others will be ignored.  Set them all
 to a single duration and add phrase markings or pedal indicators.
@@ -331,11 +523,9 @@ to a single duration and add phrase markings or pedal indicators.
 for representing music notation.
 
 @command{musicxml2ly} extracts the notes, articulations, score structure,
 for representing music notation.
 
 @command{musicxml2ly} extracts the notes, articulations, score structure,
-lyrics, etc. from part-wise MusicXML files, and writes them to a .ly
-file.  It is invoked from the command-line.
+lyrics, etc. from part-wise MusicXML files, and writes them to a @file{.ly}
+file and is invoked from the command-line as follows;
 
 
-
-It is invoked from the command-line as follows,
 @example
 musicxml2ly [@var{option}]@dots{} @var{xml-file}
 @end example
 @example
 musicxml2ly [@var{option}]@dots{} @var{xml-file}
 @end example
@@ -353,17 +543,25 @@ The following options are supported by @command{musicxml2ly}:
 @item -a, --absolute
 convert pitches in absolute mode.
 
 @item -a, --absolute
 convert pitches in absolute mode.
 
-@item -h,--help
+@item -h, --help
 print usage and option summary.
 
 @item -l, --language=LANG
 print usage and option summary.
 
 @item -l, --language=LANG
-use a different language file 'LANG.ly' and corresponding pitch names,
-e.g. 'deutsch' for deutsch.ly and German note names.
+use LANG for pitch names, e.g. 'deutsch' for note names in German.
+
+@item --loglevel=@var{loglevel}
+Set the output verbosity to @var{loglevel}. Possible values are
+@code{NONE}, @code{ERROR}, @code{WARNING}, @code{PROGRESS} (default) and
+@code{DEBUG}.
 
 @item --lxml
 
 @item --lxml
-use the lxml.etree Python package for XML-parsing; uses less memory and cpu time.
+use the lxml.etree Python package for XML-parsing; uses less memory and
+cpu time.
 
 
-@item --nd --no-articulation-directions
+@item -m, --midi
+activate midi-block.
+
+@item -nd, --no-articulation-directions
 do not convert directions (@code{^}, @code{_} or @code{-}) for
 articulations, dynamics, etc.
 
 do not convert directions (@code{^}, @code{_} or @code{-}) for
 articulations, dynamics, etc.
 
@@ -371,21 +569,21 @@ articulations, dynamics, etc.
 do not convert beaming information, use LilyPond's automatic
 beaming instead.
 
 do not convert beaming information, use LilyPond's automatic
 beaming instead.
 
-@item -o,--output=@var{file}
-set output filename to @var{file}.  If @var{file} is @file{-}, the output
-will be printed on stdout.  If not given, @var{xml-file}@file{.ly} will
-be used.
+@item -o, --output=@var{file}
+set output filename to @var{file}.  If @var{file} is @file{-}, the
+output will be printed on stdout.  If not given,
+@var{xml-file}@file{.ly} will be used.
 
 
-@item -r,--relative
+@item -r, --relative
 convert pitches in relative mode (default).
 
 convert pitches in relative mode (default).
 
-@item -v,--verbose
+@item -v, --verbose
 be verbose.
 
 @item --version
 print version information.
 
 be verbose.
 
 @item --version
 print version information.
 
-@item -z,--compressed
+@item -z, --compressed
 input file is a zip-compressed MusicXML file.
 @end table
 
 input file is a zip-compressed MusicXML file.
 @end table
 
@@ -393,18 +591,20 @@ input file is a zip-compressed MusicXML file.
 @node Invoking abc2ly
 @subsection Invoking @code{abc2ly}
 
 @node Invoking abc2ly
 @subsection Invoking @code{abc2ly}
 
-@warning{This program is not supported, and may be remove from
-future versions of LilyPond.}
+@warning{This is not currently supported and may eventually be removed
+from future versions of LilyPond.}
 
 @cindex ABC
 
 
 @cindex ABC
 
-ABC is a fairly simple ASCII based format.  It is described at the ABC site:
+ABC is a fairly simple ASCII based format.  It is described at the ABC
+site:
 
 @quotation
 @uref{http://@/www@/.walshaw@/.plus@/.com/@/abc/@/learn@/.html}.
 @end quotation
 
 
 @quotation
 @uref{http://@/www@/.walshaw@/.plus@/.com/@/abc/@/learn@/.html}.
 @end quotation
 
-@command{abc2ly} translates from ABC to LilyPond.  It is invoked as follows:
+@command{abc2ly} translates from ABC to LilyPond.  It is invoked as
+follows:
 
 @example
 abc2ly [@var{option}]@dots{} @var{abc-file}
 
 @example
 abc2ly [@var{option}]@dots{} @var{abc-file}
@@ -413,20 +613,20 @@ abc2ly [@var{option}]@dots{} @var{abc-file}
 The following options are supported by @command{abc2ly}:
 
 @table @code
 The following options are supported by @command{abc2ly}:
 
 @table @code
-@item -b,--beams=None
+@item -b, --beams=None
 preserve ABC's notion of beams
 preserve ABC's notion of beams
-@item -h,--help
+@item -h, --help
 this help
 this help
-@item -o,--output=@var{file}
+@item -o, --output=@var{file}
 set output filename to @var{file}.
 set output filename to @var{file}.
-@item -s,--strict
+@item -s, --strict
 be strict about success
 @item --version
 print version information.
 @end table
 
 There is a rudimentary facility for adding LilyPond code to the ABC
 be strict about success
 @item --version
 print version information.
 @end table
 
 There is a rudimentary facility for adding LilyPond code to the ABC
-source file.  If you say:
+source file.  For example;
 
 @example
 %%LY voices \set autoBeaming = ##f
 
 @example
 %%LY voices \set autoBeaming = ##f
@@ -444,9 +644,7 @@ Similarly,
 will cause the text following the @q{slyrics} keyword to be inserted
 into the current line of lyrics.
 
 will cause the text following the @q{slyrics} keyword to be inserted
 into the current line of lyrics.
 
-
 @knownissues
 @knownissues
-
 The ABC standard is not very @q{standard}.  For extended features
 (e.g., polyphonic music) different conventions exist.
 
 The ABC standard is not very @q{standard}.  For extended features
 (e.g., polyphonic music) different conventions exist.
 
@@ -461,19 +659,20 @@ ABC synchronizes words and notes at the beginning of a line;
 @node Invoking etf2ly
 @subsection Invoking @command{etf2ly}
 
 @node Invoking etf2ly
 @subsection Invoking @command{etf2ly}
 
-@warning{This program is not supported, and may be remove from
-future versions of LilyPond.}
+@warning{This is not currently supported and may eventually be removed
+from future versions of LilyPond.}
 
 
+@cindex Enigma Transport Format
 @cindex ETF
 @cindex enigma
 @cindex Finale
 @cindex Coda Technology
 
 ETF (Enigma Transport Format) is a format used by Coda Music
 @cindex ETF
 @cindex enigma
 @cindex Finale
 @cindex Coda Technology
 
 ETF (Enigma Transport Format) is a format used by Coda Music
-Technology's Finale product.  @command{etf2ly} will convert part of an ETF
-file to a ready-to-use LilyPond file.
+Technology's Finale product.  @command{etf2ly} will convert part of an
+ETF file to a ready-to-use LilyPond file.
 
 
-It is invoked from the command-line as follows.
+It is invoked from the command-line as follows;
 
 @example
 etf2ly [@var{option}]@dots{} @var{etf-file}
 
 @example
 etf2ly [@var{option}]@dots{} @var{etf-file}
@@ -486,19 +685,18 @@ more information about this.
 The following options are supported by @command{etf2ly}:
 
 @table @code
 The following options are supported by @command{etf2ly}:
 
 @table @code
-@item -h,--help
+@item -h, --help
 this help
 this help
-@item -o,--output=@var{FILE}
+@item -o, --output=@var{FILE}
 set output filename to @var{FILE}
 @item --version
 version information
 @end table
 
 set output filename to @var{FILE}
 @item --version
 version information
 @end table
 
-
 @knownissues
 @knownissues
-
 The list of articulation scripts is incomplete.  Empty measures
 The list of articulation scripts is incomplete.  Empty measures
-confuse @command{etf2ly}.  Sequences of grace notes are ended improperly.
+confuse @command{etf2ly}.  Sequences of grace notes are ended
+improperly.
 
 
 @node Other formats
 
 
 @node Other formats
@@ -508,8 +706,7 @@ confuse @command{etf2ly}.  Sequences of grace notes are ended improperly.
 
 LilyPond itself does not come with support for any other formats,
 but some external tools can also generate LilyPond files.  These
 
 LilyPond itself does not come with support for any other formats,
 but some external tools can also generate LilyPond files.  These
-are listed in @rweb{Alternate editors}.
-
+are listed in @rweb{Easier editing}.
 
 
 @node LilyPond output in other programs
 
 
 @node LilyPond output in other programs
@@ -520,7 +717,7 @@ the automated method with @command{lilypond-book}.
 
 @menu
 * Many quotes from a large score::
 
 @menu
 * Many quotes from a large score::
-* Inserting LilyPond output into OpenOffice.org::
+* Inserting LilyPond output into OpenOffice and LibreOffice::
 * Inserting LilyPond output into other programs::
 @end menu
 
 * Inserting LilyPond output into other programs::
 @end menu
 
@@ -531,13 +728,18 @@ If you need to quote many fragments from a large score, you can also use
 the clip systems feature, see @ruser{Extracting fragments of music}.
 
 
 the clip systems feature, see @ruser{Extracting fragments of music}.
 
 
-@node Inserting LilyPond output into OpenOffice.org
-@unnumberedsubsec Inserting LilyPond output into OpenOffice.org
+@node Inserting LilyPond output into OpenOffice and LibreOffice
+@unnumberedsubsec Inserting LilyPond output into OpenOffice and
+LibreOffice
 
 @cindex OpenOffice.org
 
 @cindex OpenOffice.org
+@cindex LibreOffice.org
 
 
-LilyPond notation can be added to OpenOffice.org with
-@uref{http://@/ooolilypond@/.sourceforge@/.net@/,OOoLilyPond}.
+LilyPond notation can be added to OpenOffice.org and LibreOffice with
+@uref{http://@/ooolilypond@/.sourceforge@/.net@/,OOoLilyPond}, an
+OpenOffice.org extension that converts LilyPond files into images within
+OpenOffice.org documents.  Although this is no longer being developed,
+it appears to still work with version 4.
 
 
 @node Inserting LilyPond output into other programs
 
 
 @node Inserting LilyPond output into other programs
@@ -549,8 +751,8 @@ individually and added to the document; consult the documentation for
 that program.  Most programs will be able to insert LilyPond output in
 @file{PNG}, @file{EPS}, or @file{PDF} formats.
 
 that program.  Most programs will be able to insert LilyPond output in
 @file{PNG}, @file{EPS}, or @file{PDF} formats.
 
-To reduce the white space around your LilyPond score, use
-the following options
+To reduce the white space around your LilyPond score, use the following
+options;
 
 @example
 \paper@{
 
 @example
 \paper@{
@@ -565,24 +767,30 @@ the following options
 @{ c1 @}
 @end example
 
 @{ c1 @}
 @end example
 
-To produce a useful @file{EPS} file, use
+To produce useful image files:
 
 @example
 
 @example
-lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts   myfile.ly
+EPS
+
+lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts myfile.ly
+
+PNG
 
 
-@file{PNG}:
 lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts --png myfile.ly
 lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts --png myfile.ly
+
+A transparent PNG
+
+lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts \
+  -dpixmap-format=pngalpha --png myfile.ly
 @end example
 
 
 @node Independent includes
 @section Independent @code{include}s
 
 @end example
 
 
 @node Independent includes
 @section Independent @code{include}s
 
-Some people have written large (and useful!) code that can be
-shared between projects.  This code might eventually make its way
-into LilyPond itself, but until that happens, you must download
-and @code{\include} them manually.
-
+Some users have produced files that can be @code{\include}d with
+LilyPond to produce certain effects and those listed below are part of
+the LilyPond distribution.  Also see @ruser{Working with input files}.
 
 @menu
 * MIDI articulation::
 
 @menu
 * MIDI articulation::
@@ -592,27 +800,12 @@ and @code{\include} them manually.
 @node MIDI articulation
 @subsection MIDI articulation
 
 @node MIDI articulation
 @subsection MIDI articulation
 
-LilyPond can be used to produce MIDI output, for
-@qq{proof-hearing} what has been written.  However, only dynamics,
-explicit tempo markings, and the notes and durations themselves
-are produced in the output.
-
-The @emph{articulate} project is one attempt to get more of the
-information in the score into he MIDI.  It works by shortening
-notes not under slurs, to @q{articulate} the notes.  The amount of
-shortening depends on any articulation markings attached to a
-note: staccato halves the note value, tenuto gives a note its full
-duration, and so on.  The script also realises trills and turns,
-and could be extended to expand other ornaments such as mordents.
-
-@example
-@uref{http://@/www@/.nicta@/.com@/.au/@/people/@/chubbp/@/articulate}
-@end example
-
-@knownissues
-
-Its main limitation is that it can only affect things it knows
-about: anything that is merely textual markup (instead of a note
-property) is still ignored.
-
-
+@cindex MIDI
+@cindex Articulate project
+
+The @uref{http://www.nicta.com.au/articulate,Articulate} project is an
+attempt to enhance LilyPond's MIDI output and works by adjusting note
+lengths (that are not under slurs) according to the articulation
+markings attached to them.  For example, a @q{staccato} halves the note
+value, @q{tenuto} gives a note its full duration and so on.  See
+@ruser{Enhancing MIDI output}.