Werner Lemberg [Sat, 29 Nov 2008 07:31:31 +0000 (08:31 +0100)]
Introduce @endpredefined.
Fix @funindex as a preparation for using texi2html to expand macros.
Note that both makeinfo and texi2dvi are buggy currently and can't do
what we need :-( We have to wait until texi2html is in shape so that
it can replace `makeinfo -E ...'. Right now, it has some syntax issues
which prevents it, but the maintainer is already going to fix them.
John Mandereau [Sat, 22 Nov 2008 19:04:38 +0000 (20:04 +0100)]
Docs: hack HTML gettextization again
Section titles which contain @-commands are still not translated in
<title>, because there is no way to guess them easily in HTML output;
this will remain broken until we drop 'makeinfo --html' support and
translate node names only in the source.
MusicXML: Make tuplet detection work a bit better with nested tuplets
At least the script now detects the correct boundaries for nested
tuplets. It does not, however, correctly group the notes. For this,
the code needs to be substantially changed...
MusicXML: Implement support for transposed instruments
We simply need to take the <transpose> attribute and determine
the correct sounding pitch from the chromatic tag (adjust it
enharmonically if an explicit diatonic shift is given)...
MusicXML: Add a way to force a pitch output to be in absolute pitch
Even when we convert in relative pitch mode, some pitches will still
need to be written out in absolute pitch. Examples are the arguments
of \transposition or \transpose...
Nicolas Sceaux [Sun, 16 Nov 2008 22:32:33 +0000 (23:32 +0100)]
Book parts: \bookpart implementation
Book parts aim at splitting a book into several parts, in order to be
able to use eg. different page breaking functions, or to make the page
breaking problem less difficult and more likely to finish.
- Book and Paper_book instances respectively are nestable: children
book or paper_book are added to the bookparts_ slot;
- the paper_ slot of a child Book (or Book_paper) is created empty,
and has its parent set to the paper object of the parent Book (or
Paper_book), so that default paper properties are got from the
higher level paper object, and child objects only store part-wide
overrides. This way, we ensure that fonts are loaded in the higher
level paper object, so that the output framework can get all the
loaded fonts from the top level book;
- a Paper_book::top_paper() method is added to access the higher level
paper object, to access properties that are book-wide, for instance
the table used to store labels and page numbers;
- in the parser, \bookpart blocks are introduced, which can be used at
toplevel, or inside a \book block. It can contain the same things as
\book blocks (except \bookpart blocks, though that would be
possible). The associated handlers are added.
- in header and footer markups, the following predicates can be used
to determine if a page is the first or the last one in a book part:
part-first-page, part-last-page.
makefiles: Don't sort file list in lys-to-tely, but sort lsr list on creation
Also, Fix musicxml regression test to no longer duplicate the .texi files.
For this, I first need to sort the list of *.{xml,mxl,texi,tely,itexi,itely}
files and only after that rewrite all *.{mxl,xml} files to their out-www/*.ly
counterparts...
Docs: Rework the way collated-files.html is generated.
-) List the files to be collated in a makefile variable COLLATED_FILES
(will default to $(sort $(TEXINFO_SOURCES) $(LY_FILES) $(OUT_LY_FILES) )
if unset)
-) Get rid of AAA-intro-regression.ly hack and instead include a
.tely file.
lilypond-book: Pass lilypond version to lilypond-book via env var in makefiles
When lilypond-book.py is called from our makefiles to build the documentation,
the @TOPLEVEL_VERSION@ string has not been expanded and the lilypond
version will not be available to lilypond-book.
This patch detects this case and uses the LILYPOND_VERSION environment
variable in that case, which is passed to lilypond-book.py by the makefiles.
Makefiles: Remove old ports targets and the convert-ly target
The convert-ly target was intended to automatically download and convert all
scores from mutopia and was last changed in lilypond 1.4. It is not called
except from the ports-*.make files, which in turn are not included anywhere.
MusicXML: Insert the section headers as pure texinfo code
Unfortunately, we can't yet get rid of the AAA-intro-regression.ly
hack, because the description in that file tries to include the
lilypond version. lilypond-book now supports @liypondversion, but
unfortunately, that's not available during docs building,
so I have to leave that one .ly in there :((((
lys-to-tely: If a .i?te(ly|xi) file is passed to the script, include it
lsy-to-tely simply creates one texinfo page from a list of snippets. If
one wants to insert some texinfo code in between some snippets,
that's currently not really possible (only as texidoc header field of
some dummy snippet, that will create an empty image and display the
dummy file name). This patch allows *.i?te(ly|xi) files to be passed
to lys-to-tely, too, which will simply be include via
@include ${filename}
in the .tely file. All other files are still treated as lilypond snippets
with no difference to the current state.
lys-to-tely will use the same order of files as passed on the command line,
so by sorting the file names appropriately, one can now insert
arbitrary texinfo code somewhere in between some snippets (or at beginning
or end of the file).
This allows the metronome-markup function to be called from anywhere in the
score, e.g. to generate the markup for a (sub)title (header field!) or to
generate text markup without changing the midi performance at all.
MusicXML: Add test case for directions in the middle of some multimeasure-rests
This is currently broken: the direction element is placed after the final
barline, thus creating invalid LilyPond syntax... For this reason, this
file does not have the default .xml file extension for now, until I have
resolved the problem...