c''4-|_"c-|" s4
c''4->_"c->" s4
c''4-^_"c-\\^{ }" s4
+ c''4-__"c-\_" s4
}
}
@end lilypond
@cindex staccatissimo
@cindex fermata
@cindex stopped
-@cindex staccato
+@cindex staccato
+@cindex portato
@cindex tenuto
@cindex upbow
@cindex downbow
\property Score.LyricText \override #'font-shape = #'upright
\context Staff \notes {
c''-\accent c''-\marcato c''-\staccatissimo c''^\fermata
- c''-\stopped c''-\staccato c''-\tenuto c''-\upbow
+ c''-\stopped c''-\staccato c''-\tenuto c''-\portato
+ c''-\upbow
c''-\downbow c''^\lheel c''-\rheel c''^\ltoe
c''-\rtoe c''-\turn c''-\open c''-\flageolet
c''-\reverseturn c''-\trill c''-\prall c''-\mordent
}
\context Lyrics \lyrics {
accent__ marcato__ staccatissimo__ fermata
- stopped__ staccato__ tenuto__ upbow
+ stopped__ staccato__ tenuto__ portato
+ upbow
downbow__ lheel__ rheel__ ltoe
rtoe__ turn__ open__ flageolet
reverseturn__ trill__ prall__ mordent
-New features in 1.5
+New features in 1.6 since 1.4
-* Development hosted at savannah.gnu.org
-
-* Tablature support.
-
-* Many speedups, many slowdowns.
-
-* More extensibility.
-
-* Figured bass support.
+* Support for figured bass and tablature.
* Completely rewritten beam formatting: provides much better output
now.
-* Completely rewritten grace note support.
+* Completely revised and improved music font.
-* Improved accidental handling and formatting.
+* Completely rewritten MIDI import support.
+
+* Completely rewritten grace note support. Practically speaking this means
+that grace notes can be slurred to normal normal notes.
-* Better spacing: both globally and locally. It includes subtle
+* Improved accidental handling and formatting: styles for producing
+cautionaries may vary, and complex collisions between accidentals of a
+chord are handled much better.
+
+* Better spacing: both globally and locally. This includes subtle
details like optical stem spacing.
-* More ancient notation support: mensural ligatures, ambitus (pitch
-range) of voices, more shapes, etc.
+* More support for ancient notation: mensural ligatures, ambitus
+(pitch range) of voices, more shapes, etc.
-* Piano notation: bracket pedals, directed arpeggios, arpeggio
-brackets.
+* More support for piano notation: bracket pedals, directed arpeggios,
+arpeggio brackets.
-* Some music entry optimizations.
+* Easier music polyphonic music entry.
-* Font completely revised and improved.
+* More extensibility, many speedups and bugfixes
-* Completely rewritten MIDI import support.
+* The manual has been thoroughly revised.
-* Manual thoroughly revised.
+* Development is now hosted at http://savannah.gnu.org, and sources
+can be downloaded through anonymous CVS.
-* Many bugfixes.
+* Support for windows: LilyPond is part of the cygwin distribution,
+which comes with a user-friendly installer.
program_version = '@TOPLEVEL_VERSION@'
if program_version == '@' + 'TOPLEVEL_VERSION' + '@':
- program_version = '1.5.53'
+ program_version = '1.6.0'
# if set, LILYPONDPREFIX must take prevalence
# if datadir is not set, we're doing a build and LILYPONDPREFIX
self.m_document_preamble = []
self.m_num_cols = 1
self.m_multicols = 1
+
def find_latex_dims(self):
if g_outdir:
fname = os.path.join(g_outdir, "lily-tmp.tex")
f = open(fname, "w")
except IOError:
error ("Error creating temporary file '%s'" % fname)
+
for s in self.m_document_preamble:
f.write(s)
f.write(r"""
""")
f.close()
re_dim = re.compile(r"\\(\w+)\s+(\d+\.\d+)")
- p = os.popen("latex %s" % fname)
+
+ cmd = "latex '\\nonstopmode \input %s'" % fname
+ if verbose_p:
+ sys.stderr.write ("Invoking `%s' as pipe" % cmd)
+ p = os.popen(cmd)
ln = p.readline()
while ln:
ln = string.strip(ln)
'include': r'(?m)^[^%\n]*?(?P<match>\\mbinclude{(?P<filename>[^}]+)})',
'option-sep' : ',\s*',
'header': r"\n*\\documentclass\s*(\[.*?\])?",
- 'preamble-end': r'(?P<code>\\begin{document})',
- 'verbatim': r"(?s)(?P<code>\\begin{verbatim}.*?\\end{verbatim})",
+ 'preamble-end': r'(?P<code>\\begin\s*{document})',
+ 'verbatim': r"(?s)(?P<code>\\begin\s*{verbatim}.*?\\end{verbatim})",
'verb': r"(?P<code>\\verb(?P<del>.).*?(?P=del))",
'lilypond-file': r'(?m)^[^%\n]*?(?P<match>\\lilypondfile\s*(\[(?P<options>.*?)\])?\s*\{(?P<filename>.+)})',
'lilypond' : r'(?m)^[^%\n]*?(?P<match>\\lilypond\s*(\[(?P<options>.*?)\])?\s*{(?P<code>.*?)})',
'lilypond-block': r"(?sm)^[^%\n]*?(?P<match>\\begin\s*(\[(?P<options>.*?)\])?\s*{lilypond}(?P<code>.*?)\\end{lilypond})",
'def-post-re': r"\\def\\postLilypondExample",
'def-pre-re': r"\\def\\preLilypondExample",
- 'usepackage-graphics': r"\usepackage{graphics}",
+ 'usepackage-graphics': r"\usepackage\s*{graphics}",
'intertext': r',?\s*intertext=\".*?\"',
'multiline-comment': no_match,
'singleline-comment': r"(?m)^.*?(?P<match>(?P<code>^%.*$\n+))",
'numcols': r"(?P<code>\\(?P<num>one|two)column)",
- 'multicols': r"(?P<code>\\(?P<be>begin|end){multicols}({(?P<num>\d+)?})?)",
+ 'multicols': r"(?P<code>\\(?P<be>begin|end)\s*{multicols}({(?P<num>\d+)?})?)",
},
return (0,0)
def error (str):
- sys.stderr.write (str + "\n Exiting ... \n\n")
+ sys.stderr.write ("\n\n" + str + "\nExiting ... \n\n")
raise 'Exiting.'
paperguru.m_num_cols = 2
break
+
# Then we add everythin before \begin{document} to
# paperguru.m_document_preamble so that we can later write this header
# to a temporary file in find_latex_dims() to find textwidth.
continue
paperguru.m_document_preamble.append(chunks[idx][1])
idx = idx + 1
+
+ if len(chunks) == idx:
+ error ("Didn't find end of preamble (\\begin{document})")
+
paperguru.find_latex_dims()
def scan_texi_preamble (chunks):
# because we don't want to include files that are mentioned
# inside a verbatim environment
chunks = chop_chunks(chunks, 'verbatim', make_verbatim)
+
+
chunks = chop_chunks(chunks, 'verb', make_verb)
chunks = chop_chunks(chunks, 'multiline-comment', do_ignore)
#ugh fix input