FILTER = 'filter'
FRAGMENT = 'fragment'
LAYOUT = 'layout'
-LILYQUOTE = 'lilyquote'
LINE_WIDTH = 'line-width'
NOFRAGMENT = 'nofragment'
NOGETTEXT = 'nogettext'
NOINDENT = 'noindent'
-NOQUOTE = 'noquote'
INDENT = 'indent'
NORAGGED_RIGHT = 'noragged-right'
NOTES = 'body'
# NOTIME and NOGETTEXT have no opposite so they aren't part of this
# dictionary.
-# NOQUOTE is used internally only.
no_options = {
NOFRAGMENT: FRAGMENT,
NOINDENT: INDENT,
INDENT: r'''indent = %(indent)s''',
LINE_WIDTH: r'''line-width = %(line-width)s''',
QUOTE: r'''line-width = %(line-width)s - 2.0 * %(exampleindent)s''',
- LILYQUOTE: r'''line-width = %(line-width)s - 2.0 * %(exampleindent)s''',
RAGGED_RIGHT: r'''ragged-right = ##t''',
NORAGGED_RIGHT: r'''ragged-right = ##f''',
},
def classic_lilypond_book_compatibility (key, value):
+ if key == 'lilyquote':
+ return (QUOTE, value)
if key == 'singleline' and value == None:
return (RAGGED_RIGHT, None)
return (None, None)
+# TODO: Remove the 1mm additional padding in the line-width, once lilypond
+# creates tighter cropped images!
PREAMBLE_LY = '''%%%% Generated by %(program_name)s
%%%% Options: [%(option_string)s]
\\include "lilypond-book-preamble.ly"
\paper {
%(paper_string)s
- line-width = #(- line-width (* mm %(padding_mm)f))
+ %% offset the left padding, also add 1mm as lilypond creates cropped
+ %% images with a little space on the right
+ line-width = #(- line-width (* mm %(padding_mm)f) (* mm 1))
}
\layout {
self.option_dict[option] = None
- # If LINE_WIDTH is used without parameter, set it to default.
+ # Store if we have an explicit line-width given
has_line_width = self.option_dict.has_key (LINE_WIDTH)
if has_line_width and self.option_dict[LINE_WIDTH] == None:
has_line_width = False
del self.option_dict[LINE_WIDTH]
- # TODO: Can't we do that more efficiently (built-in python func?)
+ # Use default options (i.e. auto-detected line-width, etc)
for k in self.formatter.default_snippet_options:
if k not in self.option_dict:
self.option_dict[k] = self.formatter.default_snippet_options[k]
if has_relative and not self.option_dict.has_key (FRAGMENT):
self.option_dict[FRAGMENT] = None
- if not has_line_width:
- if type == 'lilypond' or FRAGMENT in self.option_dict:
- self.option_dict[RAGGED_RIGHT] = None
-
- if type == 'lilypond':
- if LINE_WIDTH in self.option_dict:
- del self.option_dict[LINE_WIDTH]
- else:
- if RAGGED_RIGHT in self.option_dict:
- if LINE_WIDTH in self.option_dict:
- del self.option_dict[LINE_WIDTH]
-
- if QUOTE in self.option_dict or type == 'lilypond':
- if LINE_WIDTH in self.option_dict:
- del self.option_dict[LINE_WIDTH]
-
if not INDENT in self.option_dict:
self.option_dict[INDENT] = '0\\mm'
# all settings before writing them in the \paper block.
if not LINE_WIDTH in self.option_dict:
if not QUOTE in self.option_dict:
- if not LILYQUOTE in self.option_dict:
- self.option_dict[LINE_WIDTH] = "#(- paper-width \
+ self.option_dict[LINE_WIDTH] = "#(- paper-width \
left-margin-default right-margin-default)"
def get_option_list (self):