]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/engraver-init.ly
Issue 5167/6: Changes: show \markup xxx = ... \etc assignments
[lilypond.git] / ly / engraver-init.ly
index a7754ef67c54aa095ee6b3639c55c57b523a5142..325622a15c8a2b07e0d1fa84c707a3308c320809 100644 (file)
@@ -1,6 +1,6 @@
 %%%% This file is part of LilyPond, the GNU music typesetter.
 %%%%
-%%%% Copyright (C) 1996--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+%%%% Copyright (C) 1996--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
 %%%%                          Jan Nieuwenhuizen <janneke@gnu.org>
 %%%%
 %%%% LilyPond is free software: you can redistribute it and/or modify
@@ -16,7 +16,7 @@
 %%%% You should have received a copy of the GNU General Public License
 %%%% along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
-\version "2.17.11"
+\version "2.19.46"
 
 \context {
   \name "Global"
@@ -26,7 +26,6 @@
   \defaultchild "Score"
   \description "Hard coded entry point for LilyPond.  Cannot be tuned."
   \grobdescriptions #all-grob-descriptions
-  EventClasses = #all-event-classes
 }
 
 \context {
@@ -36,7 +35,6 @@
   \description "A context for displaying fret diagrams."
 
   \consists "Fretboard_engraver"
-  \consists "Output_property_engraver"
   \consists "Axis_group_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Font_size_engraver"
@@ -55,7 +53,6 @@
   \type "Engraver_group"
   \name "Staff"
 
-  \consists "Output_property_engraver"
   \consists "Bar_engraver"
   \consists "Pure_from_neighbor_engraver"
   %% Bar_engraver must be first so default bars aren't overwritten
@@ -66,7 +63,7 @@
   \consists "Dot_column_engraver"
   \consists "Staff_collecting_engraver"
 
- %% perhaps move to Voice context?
 %% perhaps move to Voice context?
   \consists "Ottava_spanner_engraver"
   \consists "Clef_engraver"
   \consists "Key_engraver"
@@ -87,7 +84,7 @@
   \consists "Cue_clef_engraver"
   \consists "Fingering_column_engraver"
 
-  localKeySignature = #'()
+  localAlterations = #'()
   createSpacing = ##t
   ignoreFiguredBassRest = ##f
 
@@ -98,8 +95,9 @@
   shortInstrumentName = #'()
 
   \defaultchild "Voice"
-  \accepts "Voice"
   \accepts "CueVoice"
+  \accepts "NullVoice"
+  \accepts "Voice"
 
   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
 @code{Voice} contexts."
   \name "ChoirStaff"
   \consists "Vertical_align_engraver"
   topLevelAlignment = ##f
+  localAlterations = #'()
 
   \consists "Instrument_name_engraver"
   \consists "System_start_delimiter_engraver"
   vocalName = #'()
   shortVocalName = #'()
 
-  \accepts "Staff"
+  \accepts "ChoirStaff"
+  \accepts "ChordNames"
   \accepts "DrumStaff"
-  \accepts "RhythmicStaff"
+  \accepts "Dynamics"
+  \accepts "FiguredBass"
   \accepts "GrandStaff"
-  \accepts "PianoStaff"
   \accepts "Lyrics"
-  \accepts "ChordNames"
-  \accepts "FiguredBass"
-  \accepts "ChoirStaff"
+  \accepts "OneStaff"
+  \accepts "PianoStaff"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
   \accepts "StaffGroup"
   \defaultchild "Staff"
   \description "Identical to @code{StaffGroup} except that the
@@ -162,21 +163,19 @@ contained staves are not connected vertically."
 \context{
   \type "Engraver_group"
 
-  localKeySignature = #'()
+  localAlterations = #'()
   createSpacing = ##t
 
   squashedPosition = #0
-  \name RhythmicStaff
+  \name "RhythmicStaff"
   \alias "Staff"
 
-  \override BarLine.bar-extent = #'(-2 . 2)
   \override VoltaBracket.staff-padding = #3
   \override StaffSymbol.line-count = #1
 
   \override Stem.neutral-direction = #UP
   \override Beam.neutral-direction = #UP
 
-  \consists "Output_property_engraver"
   \consists "Font_size_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Dot_column_engraver"
@@ -192,8 +191,9 @@ contained staves are not connected vertically."
   instrumentName = #'()
   shortInstrumentName = #'()
 
-  \accepts "Voice"
   \accepts "CueVoice"
+  \accepts "NullVoice"
+  \accepts "Voice"
   \defaultchild "Voice"
 
   \description "A context like @code{Staff} but for printing rhythms.
@@ -211,11 +211,11 @@ subscripts, slurs, ties, and rests.
 
 You have to instantiate this explicitly if you want to have
 multiple voices on the same staff."
-
+  %% Grace_engraver sets properties, it must come first.
+  \consists "Grace_engraver"
   \consists "Font_size_engraver"
 
   \consists "Pitched_trill_engraver"
-  \consists "Output_property_engraver"
   \consists "Arpeggio_engraver"
   \consists "Multi_measure_rest_engraver"
   \consists "Text_spanner_engraver"
@@ -231,7 +231,6 @@ multiple voices on the same staff."
   \consists "Note_heads_engraver"
   \consists "Dots_engraver"
   \consists "Rest_engraver"
-  \consists "Tweak_engraver"
 
   %% switch on to make stem directions interpolate for the
   %% center line.
@@ -241,6 +240,7 @@ multiple voices on the same staff."
   \consists "Beam_engraver"
   \consists "Grace_beam_engraver"
   \consists "Auto_beam_engraver"
+  \consists "Grace_auto_beam_engraver"
 
   %% must come before Script_column_engraver.
   \consists "New_fingering_engraver"
@@ -252,9 +252,8 @@ multiple voices on the same staff."
   \consists "Part_combine_engraver"
 
   \consists "Text_engraver"
-  \consists "New_dynamic_engraver"
+  \consists "Dynamic_engraver"
   \consists "Dynamic_align_engraver"
-%  \consists "Dynamic_engraver"
   \consists "Fingering_engraver"
   \consists "Bend_engraver"
 
@@ -268,16 +267,16 @@ multiple voices on the same staff."
   \consists "Slur_engraver"
   \consists "Tie_engraver"
   \consists "Tuplet_engraver"
-  \consists "Grace_engraver"
   \consists "Instrument_switch_engraver"
 }
 
 \context{
   \Voice
 
-  \name CueVoice
-  \alias Voice
+  \name "CueVoice"
+  \alias "Voice"
   fontSize = #-4
+  \override NoteHead.ignore-ambitus = ##t
   \override Stem.length-fraction = #(magstep -4)
   \override Beam.length-fraction = #(magstep -4)
   \override Beam.beam-thickness = #0.35
@@ -285,8 +284,8 @@ multiple voices on the same staff."
 
 \context {
   \Voice
-  \name DrumVoice
-  \alias Voice
+  \name "DrumVoice"
+  \alias "Voice"
 
   \description "A voice on a percussion staff."
   \remove "Arpeggio_engraver"
@@ -306,8 +305,8 @@ multiple voices on the same staff."
 
 \context{
   \type "Engraver_group"
-  \name GrandStaff
-  localKeySignature = #'()
+  \name "GrandStaff"
+  localAlterations = #'()
 
   \description "A group of staves, with a brace on the left
 side, grouping the staves together.  The bar lines of the
@@ -315,6 +314,9 @@ contained staves are connected vertically."
 
   \consists "Instrument_name_engraver"
   \consists "Span_bar_engraver"
+  %% The default for DynamicText.extra-spacing-width causes dynamics to
+  %% be placed across span bars, so switch it off:
+  \override DynamicText.extra-spacing-width = ##f
   \consists "Span_bar_stub_engraver"
   \consists "Span_arpeggio_engraver"
   \consists "System_start_delimiter_engraver"
@@ -326,14 +328,14 @@ contained staves are connected vertically."
   shortInstrumentName = #'()
 
   \defaultchild "Staff"
-  \accepts "Staff"
-  \accepts "RhythmicStaff"
+  \accepts "ChordNames"
   \accepts "DrumStaff"
-  \accepts "TabStaff"
-  \accepts "Lyrics"
-  \accepts "FiguredBass"
   \accepts "Dynamics"
-  \accepts "ChordNames"
+  \accepts "FiguredBass"
+  \accepts "Lyrics"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
+  \accepts "TabStaff"
 }
 
 \context{
@@ -361,9 +363,11 @@ together, never separately."
 
   \consists "Instrument_name_engraver"
   \consists "Span_bar_engraver"
+  %% The default for DynamicText.extra-spacing-width causes dynamics to
+  %% be placed across span bars, so switch it off:
+  \override DynamicText.extra-spacing-width = ##f
   \consists "Span_bar_stub_engraver"
   \consists "Span_arpeggio_engraver"
-  \consists "Output_property_engraver"
   systemStartDelimiter = #'SystemStartBracket
   %% explicitly set instrument, so it is not inherited from the parent
   instrumentName = #'()
@@ -372,17 +376,19 @@ together, never separately."
   \consists "System_start_delimiter_engraver"
 
   \defaultchild "Staff"
-  \accepts "Staff"
-  \accepts "RhythmicStaff"
+  \accepts "ChoirStaff"
+  \accepts "ChordNames"
   \accepts "DrumStaff"
+  \accepts "FiguredBass"
+  \accepts "FretBoards"
   \accepts "GrandStaff"
-  \accepts "PianoStaff"
-  \accepts "TabStaff"
   \accepts "Lyrics"
-  \accepts "ChordNames"
-  \accepts "FiguredBass"
-  \accepts "ChoirStaff"
+  \accepts "OneStaff"
+  \accepts "PianoStaff"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
   \accepts "StaffGroup"
+  \accepts "TabStaff"
 
   \description "Groups staves while adding a bracket on the left
 side, grouping the staves together.  The bar lines of the contained
@@ -392,19 +398,46 @@ a collection of staves, with a bracket in front and spanning bar lines."
 
 \context {
   \type "Engraver_group"
-  \name Dynamics
-  \alias Voice
-  \consists "Output_property_engraver"
+  \name "OneStaff"
+  \accepts "ChordNames"
+  \accepts "DrumStaff"
+  \accepts "Dynamics"
+  \accepts "FiguredBass"
+  \accepts "FretBoards"
+  \accepts "GregorianTranscriptionStaff"
+  \accepts "KievanStaff"
+  \accepts "Lyrics"
+  \accepts "MensuralStaff"
+  \accepts "NoteNames"
+  \accepts "PetrucciStaff"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
+  \accepts "TabStaff"
+  \accepts "VaticanaStaff"
+  \defaultchild "Staff"
+  \consists "Axis_group_engraver"
+
+  \description "Provides a common axis for the contained staves,
+making all of them appear in the same vertical space.  This can be
+useful for typesetting staves of different types in immediate succession
+or for temporarily changing the character of one staff or overlaying
+it with a different one.  Often used with @code{\\stopStaff} and
+@code{\\startStaff} for best results."
+}
+
+\context {
+  \type "Engraver_group"
+  \name "Dynamics"
+  \alias "Voice"
   \consists "Bar_engraver"
   \consists "Piano_pedal_engraver"
   \consists "Script_engraver"
-  \consists "New_dynamic_engraver"
+  \consists "Dynamic_engraver"
   \consists "Dynamic_align_engraver"
   \consists "Text_engraver"
   \consists "Text_spanner_engraver"
   \consists "Font_size_engraver"
   \consists "Axis_group_engraver"
-  \consists "Tweak_engraver"
 
   pedalSustainStrings = #'("Ped." "*Ped." "*")
   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
@@ -414,13 +447,9 @@ a collection of staves, with a bracket in front and spanning bar lines."
        (padding . 0.5))
   \override TextScript.font-shape = #'italic
   \override DynamicLineSpanner.Y-offset = #0
-  \override DynamicText.X-offset =
-  #(ly:make-simple-closure
-    `(,+
-      ,(ly:make-simple-closure
-         (list ly:self-alignment-interface::centered-on-note-columns))
-      ,(ly:make-simple-closure
-        (list ly:self-alignment-interface::x-aligned-on-self))))
+  \override DynamicLineSpanner.outside-staff-priority = ##f
+  \override DynamicText.outside-staff-priority = ##f
+  \override Hairpin.outside-staff-priority = ##f
 
   \description "Holds a single line of dynamics, which will be
 centered between the staves surrounding this context."
@@ -437,7 +466,6 @@ printing of a single line of lyrics."
   \consists "Lyric_engraver"
   \consists "Extender_engraver"
   \consists "Hyphen_engraver"
-  \consists "Tweak_engraver"
   \consists "Stanza_number_engraver"
   \consists "Instrument_name_engraver"
   \consists "Font_size_engraver"
@@ -457,9 +485,9 @@ printing of a single line of lyrics."
        (stretchability . 1))
   \override VerticalAxisGroup.nonstaff-nonstaff-spacing =
      #'((basic-distance . 0)
-       (minimum-distance . 2.8)
-       (padding . 0.2)
-       (stretchability . 0))
+        (minimum-distance . 2.8)
+        (padding . 0.2)
+        (stretchability . 0))
   \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.padding = #1.5
   \override InstrumentName.self-alignment-Y = ##f
 
@@ -474,7 +502,7 @@ printing of a single line of lyrics."
 
 \context {
   \type "Engraver_group"
-  \name NoteNames
+  \name "NoteNames"
   \description "A context for printing the names of notes."
   \consists "Axis_group_engraver"
 
@@ -497,20 +525,22 @@ printing of a single line of lyrics."
 
 \context {
   \type "Engraver_group"
-  \name ChordNames
+  \name "ChordNames"
+  \alias Staff                 % Catch Staff-level overrides like
+                               % \key, \transposition
   \description "Typesets chord names."
 
-  \consists "Output_property_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Chord_name_engraver"
   \consists "Axis_group_engraver"
-%  \consists "Note_spacing_engraver"
+  %\consists "Note_spacing_engraver"
 
   \override VerticalAxisGroup.remove-first = ##t
   \override VerticalAxisGroup.remove-empty = ##t
   \override VerticalAxisGroup.staff-affinity = #DOWN
   \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #0.5
   \override VerticalAxisGroup.nonstaff-nonstaff-spacing.padding = #0.5
+  \override ParenthesesItem.font-size = #1.5
 }
 
 \context {
@@ -541,10 +571,11 @@ automatically when an output definition (a @code{\\score} or
   %% Timing variables in layout definitions before any
   %% Timing_translator has been run.
 
-  % timing translator must come BEFORE bar number engraver
+  %% timing translator must come BEFORE bar number engraver
   \consists "Timing_translator"
   \consists "Default_bar_line_engraver"
   \consists "Output_property_engraver"
+  \consists "Tweak_engraver"
   \consists "System_start_delimiter_engraver"
   \consists "Mark_engraver"
   \consists "Volta_engraver"
@@ -562,25 +593,27 @@ automatically when an output definition (a @code{\\score} or
 
   \defaultchild "Staff"
 
+  \accepts "ChoirStaff"
+  \accepts "ChordNames"
+  \accepts "Devnull"
+  \accepts "DrumStaff"
+  \accepts "Dynamics"
+  \accepts "FiguredBass"
   \accepts "FretBoards"
-  \accepts "Staff"
-  \accepts "RhythmicStaff"
-  \accepts "TabStaff"
-  \accepts "VaticanaStaff"
+  \accepts "GrandStaff"
   \accepts "GregorianTranscriptionStaff"
-  \accepts "MensuralStaff"
-  \accepts "PetrucciStaff"
-  \accepts "StaffGroup"
-  \accepts "DrumStaff"
   \accepts "KievanStaff"
   \accepts "Lyrics"
-  \accepts "ChordNames"
-  \accepts "GrandStaff"
-  \accepts "ChoirStaff"
-  \accepts "PianoStaff"
-  \accepts "Devnull"
+  \accepts "MensuralStaff"
   \accepts "NoteNames"
-  \accepts "FiguredBass"
+  \accepts "OneStaff"
+  \accepts "PetrucciStaff"
+  \accepts "PianoStaff"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
+  \accepts "StaffGroup"
+  \accepts "TabStaff"
+  \accepts "VaticanaStaff"
 
   noteToFretFunction = #determine-frets
   predefinedDiagramTable = ##f
@@ -593,6 +626,7 @@ automatically when an output definition (a @code{\\score} or
 
   drumStyleTable = #drums-style
 
+  associatedVoiceType = #'Voice
   melismaBusyProperties = #default-melisma-properties
   tieWaitForNote = ##f
   clefGlyph = #"clefs.G"
@@ -608,22 +642,23 @@ automatically when an output definition (a @code{\\score} or
   doubleRepeatType = #":..:"
   startRepeatType = #".|:"
   endRepeatType = #":|."
+  alternativeRestores = #'(measurePosition measureLength lastChord)
   barNumberVisibility = #first-bar-number-invisible-and-no-parenthesized-bar-numbers
   barNumberFormatter = #robust-bar-number-function
-  clefOctavationFormatter = #clef-octavation-markup
-  cueClefOctavationFormatter = #clef-octavation-markup
+  clefTranspositionFormatter = #clef-transposition-markup
+  cueClefTranspositionFormatter = #clef-transposition-markup
   automaticBars = ##t
 
   explicitClefVisibility = #all-visible
   explicitCueClefVisibility = #end-of-line-invisible
   explicitKeySignatureVisibility = #all-visible
-  implicitTimeSignatureVisibility = #end-of-line-invisible
+  initialTimeSignatureVisibility = #end-of-line-invisible
 
   repeatCountVisibility = #all-repeat-counts-visible
 
-%% Other Timing variables are derived and set by the Timing_translator
-%% at initialization time by calling the functions in
-%% scm/time-signature-settings.scm
+  %% Other Timing variables are derived and set by the Timing_translator
+  %% at initialization time by calling the functions in
+  %% scm/time-signature-settings.scm
 
   timeSignatureSettings = #default-time-signature-settings
   timeSignatureFraction = 4/4
@@ -633,6 +668,8 @@ automatically when an output definition (a @code{\\score} or
   autoBeaming = ##t
   autoBeamCheck = #default-auto-beam-check
 
+  completionFactor = #unity-if-multimeasure
+
   scriptDefinitions = #default-script-alist
 
   pedalSustainStrings = #'("Ped." "*Ped." "*")
@@ -640,10 +677,10 @@ automatically when an output definition (a @code{\\score} or
   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
   pedalUnaCordaStyle = #'text
 
-%% These are in ordinary italic font, including the *,
-%% but they are unlikely to be used,
-%% as the default pedal-style for SostenutoPedal is 'mixed':
-%% i.e.  Sost. Ped_____________________
+  %% These are in ordinary italic font, including the *,
+  %% but they are unlikely to be used,
+  %% as the default pedal-style for SostenutoPedal is 'mixed':
+  %% i.e.  Sost. Ped_____________________
   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
   pedalSostenutoStyle = #'mixed
 
@@ -652,6 +689,7 @@ automatically when an output definition (a @code{\\score} or
   stringNumberOrientations = #'(up down)
   strokeFingerOrientations = #'(right)
 
+  extendersOverRests = ##t
   lyricMelismaAlignment = #LEFT
   markFormatter = #format-mark-letters
   rehearsalMark = #1
@@ -670,7 +708,7 @@ automatically when an output definition (a @code{\\score} or
 
   barCheckSynchronize = ##f
 
-%% chord names:
+  %% chord names:
   chordNameFunction = #ignatzek-chord-names
   minorChordModifier = #(make-simple-markup "m")
   additionalPitchPrefix = #"" % was "add"
@@ -686,16 +724,12 @@ automatically when an output definition (a @code{\\score} or
   chordNameExceptionsPartial = #partialJazzExceptions
   noChordSymbol = #(make-simple-markup "N.C.")
 
-  bassStaffProperties = #'((assign clefGlyph "clefs.F")
-  (assign clefPosition 2)
-  (assign middleCPosition 6)
-  (assign middleCClefPosition 6))
-%% tablature:
+  %% tablature:
   stringOneTopmost = ##t
   highStringOne = ##t
 
-%% One may change the string tunings as follows :
-%% The length of the list must be equal to the number of strings
+  %% One may change the string tunings as follows :
+  %% The length of the list must be equal to the number of strings
   stringTunings = #guitar-tuning
   tablatureFormat = #fret-number-tablature-format
   tabStaffLineLayoutFunction = #tablature-position-on-lines
@@ -704,26 +738,8 @@ automatically when an output definition (a @code{\\score} or
   figuredBassFormatter = #format-bass-figure
   metronomeMarkFormatter = #format-metronome-markup
 
-
   %% See also make-voice-props-set
-  graceSettings = #`(
-    (Voice Stem direction ,UP)
-    (Voice Stem font-size -3)
-    (Voice Flag font-size -3)
-    (Voice NoteHead font-size -3)
-    (Voice TabNoteHead font-size -4)
-    (Voice Dots font-size -3)
-    (Voice Stem length-fraction 0.8)
-    (Voice Stem no-stem-extend #t)
-    (Voice Beam beam-thickness 0.384)
-    (Voice Beam length-fraction 0.8)
-    (Voice Accidental font-size -4)
-    (Voice AccidentalCautionary font-size -4)
-    (Voice Slur direction ,DOWN)
-    (Voice Script font-size -3)
-    (Voice Fingering font-size -8)
-    (Voice StringNumber font-size -8)
-  )
+  graceSettings = #score-grace-settings
 
   keepAliveInterfaces = #'(
     bass-figure-interface
@@ -740,7 +756,7 @@ automatically when an output definition (a @code{\\score} or
     ;; need this, as stanza numbers are items, and appear only once.
     stanza-number-interface
   )
-  % \quoteDuring is supposed to quote everything, cueDuring only the essentials
+  %% \quoteDuring is supposed to quote everything, cueDuring only the essentials
   quotedEventTypes = #'(StreamEvent)
   quotedCueEventTypes = #'(
     note-event
@@ -778,13 +794,49 @@ automatically when an output definition (a @code{\\score} or
   \name "Devnull"
   \type "Engraver_group"
 
-%% don't want to route anything out of here:
+  %% don't want to route anything out of here:
   \alias "Staff"
   \alias "Voice"
   \description "Silently discards all musical information given to this
 context."
 }
 
+\context {
+  \name "NullVoice"
+  \type "Engraver_group"
+  \description "For aligning lyrics without printing notes"
+
+  %% don't route anything out of here
+  \alias "Staff"
+  \alias "Voice"
+
+  %% provide non-printing NoteHeads with proper extents for lyric alignment
+  \consists "Note_heads_engraver"
+  \omit NoteHead
+  \override NoteHead.X-extent = #(lambda (g)
+    (ly:stencil-extent (ly:note-head::print g) X))
+
+  %% generate no accidentals
+  nullAccidentals = ##t
+
+  %% keep noteheads inside the staff
+  \consists "Pitch_squash_engraver"
+  squashedPosition = 0
+
+  %% generate no ledger lines, needed for staves with custom
+  %% line positions and ledger lines that appear inside the staff
+  \override NoteHead.no-ledgers = ##t
+
+  %% the engravers that control the 'busy' flags for note-onsets and melismata
+  \consists "Grob_pq_engraver"
+  \consists "Tie_engraver"
+  \omit Tie
+  \consists "Beam_engraver"
+  \omit Beam
+  \consists "Slur_engraver"
+  \omit Slur
+}
+
 \context {
   \Voice
   \name "TabVoice"
@@ -799,6 +851,51 @@ context."
 
   \description "Context for drawing notes in a Tab staff."
 
+  %% No accidental in tablature !
+  \remove "Accidental_engraver"
+}
+
+\context {
+  \Staff
+  \alias "Staff"
+  \name "TabStaff"
+  \denies "Voice"
+  \consists "Tab_staff_symbol_engraver"
+
+  \description "Context for generating tablature. It accepts only @code{TabVoice}
+contexts and handles the line spacing, the tablature clef etc. properly."
+
+  \accepts "TabVoice"
+  \defaultchild "TabVoice"
+
+  %% 6 strings, bigger spacing
+  \override StaffSymbol.staff-space = #1.5
+
+  %% Don't draw stems over the tablature figures !
+  \override Stem.avoid-note-head = ##t
+
+  %% No accidental in tablature !
+  \remove "Accidental_engraver"
+  \remove "Key_engraver"
+
+  \remove "Ottava_spanner_engraver"
+  %% the clef handler
+  \override Clef.stencil = #clef::print-modern-tab-if-set
+  %% no time signature
+  \override TimeSignature.stencil = ##f
+  %% no arpeggios
+  \override Arpeggio.stencil = ##f
+  %% we ignore collision warnings that may occur due to
+  %% stem overlapping, because we have no stems ;-)
+  \override NoteColumn.ignore-collision = ##t
+  %% Special "TAB" clef
+  clefGlyph = #"clefs.tab"
+  clefPosition = #0
+  %% Change string if note results in negative fret number
+  handleNegativeFrets = #'recalculate
+  %% Allow open strings even if minimumFret is set
+  restrainOpenStrings = ##f
+
   %% TabStaff increase the staff-space, which in turn
   %% increases beam thickness and spacing; beams are
   %% too big. We have to adjust the beam settings:
@@ -813,8 +910,6 @@ context."
                                                (/ 1 (ly:staff-symbol-staff-space grob)))
   \override StemTremolo.beam-width = #stem-tremolo::calc-tab-width
 
-  %% No accidental in tablature !
-  \remove "Accidental_engraver"
   %% make the Stems as short as possible to minimize their influence
   %% on the slur::calc-control-points routine
   \override Stem.no-stem-extend = ##t
@@ -859,56 +954,14 @@ context."
   %% the direction for glissando lines will be automatically corrected
   \override Glissando.extra-dy = #glissando::calc-tab-extra-dy
   \override Glissando.bound-details.right = #`((attach-dir . ,LEFT)
-                                                  (padding . 0.3))
+                                                   (padding . 0.3))
   \override Glissando.bound-details.left = #`((attach-dir . ,RIGHT)
-                                                  (padding . 0.3))
+                                                   (padding . 0.3))
   %% dead notes
   \override TabNoteHead.glyph-name = #tab-note-head::calc-glyph-name
   \override TabNoteHead.stencil = #tab-note-head::whiteout-if-style-set
 }
 
-\context {
-  \Staff
-  \alias "Staff"
-  \name "TabStaff"
-  \denies "Voice"
-  \consists "Tab_staff_symbol_engraver"
-
-  \description "Context for generating tablature. It accepts only @code{TabVoice}
-contexts and handles the line spacing, the tablature clef etc. properly."
-
-  \accepts "TabVoice"
-  \defaultchild "TabVoice"
-
-  %% 6 strings, bigger spacing
-  \override StaffSymbol.staff-space = #1.5
-
-  %% Don't draw stems over the tablature figures !
-  \override Stem.avoid-note-head = ##t
-
-  %% No accidental in tablature !
-  \remove "Accidental_engraver"
-  \remove "Key_engraver"
-
-  \remove "Ottava_spanner_engraver"
-  %% the clef handler
-  \override Clef.stencil = #clef::print-modern-tab-if-set
-  %% no time signature
-  \override TimeSignature.stencil = ##f
-  %% no arpeggios
-  \override Arpeggio.stencil = ##f
-  %% we ignore collision warnings that may occur due to
-  %% stem overlapping, because we have no stems ;-)
-  \override NoteColumn.ignore-collision = ##t
-  %% Special "TAB" clef
-  clefGlyph = #"clefs.tab"
-  clefPosition = #0
-  %% Change string if note results in negative fret number
-  handleNegativeFrets = #'recalculate
-  %% Allow open strings even if minimumFret is set
-  restrainOpenStrings = ##f
-}
-
 \context {
   \Voice
   \name "VaticanaVoice"
@@ -966,7 +1019,7 @@ of Editio Vaticana."
   middleCPosition = #1
   middleCClefPosition = #1
   clefPosition = #1
-  clefOctavation = #0
+  clefTransposition = #0
 
   %% Select vaticana style font.
   \override KeySignature.glyph-name-alist = #alteration-vaticana-glyph-name-alist
@@ -995,7 +1048,6 @@ of Editio Vaticana."
 
   %% There are no beams in Gregorian Chant notation.
   autoBeaming = ##f
-
 }
 
 \context {
@@ -1059,12 +1111,13 @@ accommodated for typesetting a piece in mensural style."
   middleCClefPosition = #-6
   middleCPosition = #-6
   clefPosition = #-2
-  clefOctavation = #0
+  clefTransposition = #0
 
   %% Select mensural style font.
   \override TimeSignature.style = #'mensural
   \override KeySignature.glyph-name-alist = #alteration-mensural-glyph-name-alist
   \override Accidental.glyph-name-alist = #alteration-mensural-glyph-name-alist
+  \override AccidentalSuggestion.glyph-name-alist = #alteration-mensural-glyph-name-alist
   \override Custos.style = #'mensural
   \override Custos.neutral-position = #3
   \override Custos.neutral-direction = #DOWN
@@ -1091,7 +1144,7 @@ accommodated for typesetting a piece in Petrucci style."
   \override NoteHead.style = #'petrucci
   \override Rest.style = #'mensural
 
-  % Thickens and shortens stems.
+  %% Thickens and shortens stems.
   \override Stem.thickness = #1.7
   \override Stem.length = #5
 
@@ -1118,7 +1171,7 @@ accommodated for typesetting a piece in Petrucci style."
   middleCClefPosition = #-6
   middleCPosition = #-6
   clefPosition = #-2
-  clefOctavation = #0
+  clefTransposition = #0
 
   \override Custos.style = #'mensural
   \override Custos.neutral-position = #3
@@ -1133,55 +1186,58 @@ accommodated for typesetting a piece in Petrucci style."
 }
 
 \context {
- \Voice
- \name "KievanVoice"
- \alias "Voice"
- \description "Same as @code{Voice} context, except that it is
 \Voice
 \name "KievanVoice"
 \alias "Voice"
 \description "Same as @code{Voice} context, except that it is
 accommodated for typesetting a piece in Kievan style."
 
- %% Set glyph styles.
- \override NoteHead.style = #'kievan
- \override Stem.X-offset = #stem::kievan-offset-callback
- \override Stem.stencil = ##f
- \override Flag.stencil = ##f
- \override Rest.style = #'mensural
- \override Accidental.glyph-name-alist = #alteration-kievan-glyph-name-alist
- \override Dots.style = #'kievan
- \override Slur.stencil = ##f
- \override Stem.length = #0.0
- \override Beam.positions = #beam::get-kievan-positions
- \override Beam.quantized-positions = #beam::get-kievan-quantized-positions
- \override NoteHead.duration-log = #note-head::calc-kievan-duration-log
-
- %% There are beams in Kievan notation, but they are invoked manually
- autoBeaming = ##f
+  \remove "Ligature_bracket_engraver"
+  \consists "Kievan_ligature_engraver"
+
+  %% Set glyph styles.
+  \override NoteHead.style = #'kievan
+  \override Stem.X-offset = #stem::kievan-offset-callback
+  \override Stem.stencil = ##f
+  \override Flag.stencil = ##f
+  \override Rest.style = #'mensural
+  \override Accidental.glyph-name-alist = #alteration-kievan-glyph-name-alist
+  \override Dots.style = #'kievan
+  \override Slur.stencil = ##f
+  \override Stem.length = #0.0
+  \override Beam.positions = #beam::get-kievan-positions
+  \override Beam.quantized-positions = #beam::get-kievan-quantized-positions
+  \override NoteHead.duration-log = #note-head::calc-kievan-duration-log
+
+  %% There are beams in Kievan notation, but they are invoked manually
+  autoBeaming = ##f
 }
 
 \context {
- \Staff
- \name "KievanStaff"
- \alias "Staff"
- \denies "Voice"
- \defaultchild "KievanVoice"
- \accepts "KievanVoice"
- \description "Same as @code{Staff} context, except that it is
 \Staff
 \name "KievanStaff"
 \alias "Staff"
 \denies "Voice"
 \defaultchild "KievanVoice"
 \accepts "KievanVoice"
 \description "Same as @code{Staff} context, except that it is
 accommodated for typesetting a piece in Kievan style."
 
- \remove "Time_signature_engraver"
-
- %% Choose Kievan tsefaut clef
- clefGlyph = #"clefs.kievan.do"
- middleCClefPosition = #0
- middleCPosition = #0
- clefPosition = #0
clefOctavation = #0
-
- %% Accidentals are valid only once (if the following note is different)
- extraNatural = ##f
- autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0)
-                            ,neo-modern-accidental-rule)
- autoCautionaries = #'()
- printKeyCancellation = ##f
 \remove "Time_signature_engraver"
+
 %% Choose Kievan tsefaut clef
 clefGlyph = #"clefs.kievan.do"
 middleCClefPosition = #0
 middleCPosition = #0
 clefPosition = #0
 clefTransposition = #0
+
 %% Accidentals are valid only once (if the following note is different)
 extraNatural = ##f
 autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0)
+                             ,neo-modern-accidental-rule)
 autoCautionaries = #'()
 printKeyCancellation = ##f
 
 }