<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.lilypond.community/index.php?action=history&amp;feed=atom&amp;title=Line_breaking_rehearsal_mark_%28obsolete_in_2.23%29</id>
	<title>Line breaking rehearsal mark (obsolete in 2.23) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lilypond.community/index.php?action=history&amp;feed=atom&amp;title=Line_breaking_rehearsal_mark_%28obsolete_in_2.23%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Line_breaking_rehearsal_mark_(obsolete_in_2.23)&amp;action=history"/>
	<updated>2026-05-10T09:50:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Line_breaking_rehearsal_mark_(obsolete_in_2.23)&amp;diff=4382&amp;oldid=prev</id>
		<title>Lemzwerg: New category</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Line_breaking_rehearsal_mark_(obsolete_in_2.23)&amp;diff=4382&amp;oldid=prev"/>
		<updated>2025-11-21T23:21:41Z</updated>

		<summary type="html">&lt;p&gt;New category&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:21, 21 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l341&quot;&gt;Line 341:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 341:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Breaks]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Breaks]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Workaround]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Workaround]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Legacy code]][[Category:Snippet]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Legacy code]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Snippet]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lemzwerg</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Line_breaking_rehearsal_mark_(obsolete_in_2.23)&amp;diff=3618&amp;oldid=prev</id>
		<title>Lemzwerg at 22:55, 21 November 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Line_breaking_rehearsal_mark_(obsolete_in_2.23)&amp;diff=3618&amp;oldid=prev"/>
		<updated>2025-11-21T22:55:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:55, 21 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l341&quot;&gt;Line 341:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 341:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Breaks]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Breaks]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Workaround]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Workaround]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Legacy code]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Legacy code&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]][[Category:Snippet&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lemzwerg</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Line_breaking_rehearsal_mark_(obsolete_in_2.23)&amp;diff=2522&amp;oldid=prev</id>
		<title>Jean Abou Samra: Replace version=&quot;2.24.0&quot; with version=&quot;2.24&quot; now that the LilyWiki extension supports auto-selecting the latest release in a stable series</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Line_breaking_rehearsal_mark_(obsolete_in_2.23)&amp;diff=2522&amp;oldid=prev"/>
		<updated>2025-11-16T18:52:17Z</updated>

		<summary type="html">&lt;p&gt;Replace version=&amp;quot;2.24.0&amp;quot; with version=&amp;quot;2.24&amp;quot; now that the LilyWiki extension supports auto-selecting the latest release in a stable series&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:52, 16 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Thus unapproving it --Harm&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Thus unapproving it --Harm&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;lilypond version=&quot;2.24&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.0&lt;/del&gt;&quot; full&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;lilypond version=&quot;2.24&quot; full&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%by: ArnoldTheresius&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%by: ArnoldTheresius&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;% update for cooperation with poly-mark-engraver or multi-mark-engraver&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;% update for cooperation with poly-mark-engraver or multi-mark-engraver&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Line_breaking_rehearsal_mark_(obsolete_in_2.23)&amp;diff=2050&amp;oldid=prev</id>
		<title>Jean Abou Samra: Import snippet from LSR</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Line_breaking_rehearsal_mark_(obsolete_in_2.23)&amp;diff=2050&amp;oldid=prev"/>
		<updated>2025-11-14T18:06:10Z</updated>

		<summary type="html">&lt;p&gt;Import snippet from LSR&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;If you need at a line break at the same time step two rehearsal marks, one rehearsal mark at the end of the line with right aligned text, and another rehearsal mark at the beginning of the next line with left aligned text, but if there is no line break these two marks should be concatenated with a space between, try this &amp;#039;&amp;#039;&amp;#039;\doubleMark&amp;#039;&amp;#039;&amp;#039; command. It takes two arguments (string or markup).&amp;lt;br /&amp;gt;&lt;br /&gt;
Additionally one of the two arguments may be the boolean &amp;#039;&amp;#039;##f&amp;#039;&amp;#039; to indicate a begin-of-line-invisible and right alinged resp. a end-of-line-invisible and left aligned rehearsal mark, and if one of the two arguments is the boolean value &amp;#039;&amp;#039;##t&amp;#039;&amp;#039; then the remaining text will be centered if it occurs within the line.&amp;lt;br /&amp;gt;&lt;br /&gt;
Override the value of &amp;#039;&amp;#039;gap&amp;#039;&amp;#039; in &amp;#039;&amp;#039;Score.RehearsalMark&amp;#039;&amp;#039; if you need a different spacing between the two text markups.&amp;lt;br /&amp;gt;&lt;br /&gt;
 &amp;lt;br /&amp;gt;&lt;br /&gt;
Handicaps:&lt;br /&gt;
&lt;br /&gt;
* An argument &amp;#039;\default&amp;#039; is not supported.&lt;br /&gt;
&lt;br /&gt;
Also providing some functions to separately address RehearsalMarks depending on their break-direction, to tweak &amp;#039;&amp;#039;direction&amp;#039;&amp;#039; and &amp;#039;&amp;#039;padding&amp;#039;&amp;#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
And for compatibility when using the poly-mark-engraver (LSR No. 976) a &amp;#039;&amp;#039;&amp;#039;\doublePolyMark&amp;#039;&amp;#039;&amp;#039; command is provided (which otherwise will not work).&lt;br /&gt;
&lt;br /&gt;
This snippet is obsolete starting from LilyPond version 2.23.14, which introduces the &amp;lt;code&amp;gt;\textMark&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;\textEndMark&amp;lt;/code&amp;gt; commands. There is no restriction similar to rehearsal marks: there can be several text marks at the same moment.&lt;br /&gt;
&lt;br /&gt;
Thus unapproving it --Harm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24.0&amp;quot; full&amp;gt;&lt;br /&gt;
%by: ArnoldTheresius&lt;br /&gt;
% update for cooperation with poly-mark-engraver or multi-mark-engraver&lt;br /&gt;
&lt;br /&gt;
% see LSR No. 976 for the poly-mark-engraver&lt;br /&gt;
% \include &amp;quot;poly-mark-engraver.ly&amp;quot;&lt;br /&gt;
% The compatibility test with the poly-mark-engraver below&lt;br /&gt;
% is commented out, too!&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
% START of my personal include file &amp;#039;double-mark.ly&amp;#039;&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
#(define-public (string-or-markup-or-boolean? e)&lt;br /&gt;
  (or (string? e) (markup? e) (boolean? e)))&lt;br /&gt;
&lt;br /&gt;
#(define (music-property-description symbol type? description)&lt;br /&gt;
  (if (not (equal? #f (object-property symbol &amp;#039;music-doc)))&lt;br /&gt;
      (ly:error (_ &amp;quot;symbol ~S redefined&amp;quot;) symbol))&lt;br /&gt;
  (set-object-property! symbol &amp;#039;music-type? type?)&lt;br /&gt;
  (set-object-property! symbol &amp;#039;music-doc description)&lt;br /&gt;
  symbol)&lt;br /&gt;
&lt;br /&gt;
#(for-each&lt;br /&gt;
  (lambda (x)&lt;br /&gt;
    (apply music-property-description x))&lt;br /&gt;
    `((left-label&lt;br /&gt;
       ,string-or-markup-or-boolean?&lt;br /&gt;
       &amp;quot;set the left part of a RehearsalMark&amp;quot;)&lt;br /&gt;
      (right-label&lt;br /&gt;
       ,string-or-markup-or-boolean?&lt;br /&gt;
       &amp;quot;set the right part of a RehearsalMark&amp;quot;)&lt;br /&gt;
       ))&lt;br /&gt;
&lt;br /&gt;
#(define (double-rehearsalmark-stencil grob)&lt;br /&gt;
  (let*&lt;br /&gt;
   ((grobs-event (ly:grob-property grob &amp;#039;cause &amp;#039;()))&lt;br /&gt;
    (left-label (ly:event-property grobs-event &amp;#039;left-label))&lt;br /&gt;
    (right-label (ly:event-property grobs-event &amp;#039;right-label))&lt;br /&gt;
    (gap (ly:grob-property grob &amp;#039;gap 1.4)))&lt;br /&gt;
   (if (not (or (null? left-label) (null? right-label)))&lt;br /&gt;
    (case (ly:item-break-dir grob)&lt;br /&gt;
     ((-1)&lt;br /&gt;
      (if (boolean? left-label) empty-stencil&lt;br /&gt;
       (grob-interpret-markup grob&lt;br /&gt;
        (make-right-align-markup left-label))))&lt;br /&gt;
     ((1)&lt;br /&gt;
      (if (boolean? right-label) empty-stencil&lt;br /&gt;
       (grob-interpret-markup grob&lt;br /&gt;
        (make-left-align-markup right-label))))&lt;br /&gt;
     (else&lt;br /&gt;
      (if (boolean? left-label)&lt;br /&gt;
       (grob-interpret-markup grob&lt;br /&gt;
        (if left-label&lt;br /&gt;
         (make-center-align-markup right-label)&lt;br /&gt;
         (make-left-align-markup right-label)))&lt;br /&gt;
       (if (boolean? right-label)&lt;br /&gt;
        (grob-interpret-markup grob&lt;br /&gt;
         (if right-label&lt;br /&gt;
          (make-center-align-markup left-label)&lt;br /&gt;
          (make-right-align-markup left-label)))&lt;br /&gt;
        (ly:stencil-add&lt;br /&gt;
         (ly:stencil-translate&lt;br /&gt;
          (grob-interpret-markup grob&lt;br /&gt;
           (make-right-align-markup left-label))&lt;br /&gt;
          (cons (* -0.5 gap) 0.0))&lt;br /&gt;
         (ly:stencil-translate&lt;br /&gt;
          (grob-interpret-markup grob&lt;br /&gt;
           (make-left-align-markup right-label))&lt;br /&gt;
          (cons (* 0.5 gap) 0.0)))))))&lt;br /&gt;
    (begin&lt;br /&gt;
     (ly:warning &amp;quot;\&amp;quot;doubleMark stencil\&amp;quot; did not find \&amp;quot;doubleMark texts\&amp;quot;.&amp;quot;)&lt;br /&gt;
     (ly:warning &amp;quot;fallback to using \&amp;quot;ly:text-interface::print\&amp;quot;.&amp;quot;)&lt;br /&gt;
     (ly:text-interface::print grob)))))&lt;br /&gt;
&lt;br /&gt;
doubleMark =&lt;br /&gt;
#(define-music-function&lt;br /&gt;
  (left-string right-string)&lt;br /&gt;
  (string-or-markup-or-boolean? string-or-markup-or-boolean?)&lt;br /&gt;
  (if (and (boolean? left-string) (boolean? right-string))&lt;br /&gt;
   (ly:warning &amp;quot;~a \\doubleMark - at least one string or markup required&amp;quot; (*location*)))&lt;br /&gt;
  (make-music &amp;#039;SequentialMusic&lt;br /&gt;
   &amp;#039;elements (list&lt;br /&gt;
    (make-music &amp;#039;ContextSpeccedMusic&lt;br /&gt;
     &amp;#039;context-type &amp;#039;Score&lt;br /&gt;
     &amp;#039;element&lt;br /&gt;
      (make-music &amp;#039;OverrideProperty&lt;br /&gt;
       &amp;#039;symbol &amp;#039;RehearsalMark&lt;br /&gt;
       &amp;#039;grob-value double-rehearsalmark-stencil&lt;br /&gt;
       &amp;#039;grob-property-path (list &amp;#039;stencil)&lt;br /&gt;
       &amp;#039;pop-first #t&lt;br /&gt;
       &amp;#039;once #t))&lt;br /&gt;
    (make-music &amp;#039;ContextSpeccedMusic&lt;br /&gt;
     &amp;#039;context-type &amp;#039;Score&lt;br /&gt;
     &amp;#039;element&lt;br /&gt;
      (make-music &amp;#039;OverrideProperty&lt;br /&gt;
       &amp;#039;symbol &amp;#039;RehearsalMark&lt;br /&gt;
       &amp;#039;grob-value #f&lt;br /&gt;
       &amp;#039;grob-property-path (list &amp;#039;self-alignment-X)&lt;br /&gt;
       &amp;#039;pop-first #t&lt;br /&gt;
       &amp;#039;once #t))&lt;br /&gt;
    (make-music &amp;#039;ContextSpeccedMusic&lt;br /&gt;
     &amp;#039;context-type &amp;#039;Score&lt;br /&gt;
     &amp;#039;element&lt;br /&gt;
      (make-music &amp;#039;OverrideProperty&lt;br /&gt;
       &amp;#039;symbol &amp;#039;RehearsalMark&lt;br /&gt;
       &amp;#039;grob-value `#(,(not (boolean? left-string))&lt;br /&gt;
                      #t&lt;br /&gt;
                      ,(not (boolean? right-string)))&lt;br /&gt;
       &amp;#039;grob-property-path (list &amp;#039;break-visibility)&lt;br /&gt;
       &amp;#039;pop-first #t&lt;br /&gt;
       &amp;#039;once #t))&lt;br /&gt;
    (make-music &amp;#039;RehearsalMarkEvent&lt;br /&gt;
     &amp;#039;label #f&lt;br /&gt;
     &amp;#039;left-label left-string&lt;br /&gt;
     &amp;#039;right-label right-string&lt;br /&gt;
     &amp;#039;origin (*location*)))))&lt;br /&gt;
&lt;br /&gt;
% only for use with the poly-mark-engraver, based on a&lt;br /&gt;
% copy of &amp;#039;mark&amp;#039; from music-functions.ly, then extended:&lt;br /&gt;
doublePolyMark =&lt;br /&gt;
#(define-music-function&lt;br /&gt;
   (key left-string right-string)&lt;br /&gt;
   (((lambda (x) (or (symbol? x)&lt;br /&gt;
                  (and (pair? x) (symbol? (car x))))) #f)&lt;br /&gt;
    (string-or-markup-or-boolean? #f) (string-or-markup-or-boolean? #f))&lt;br /&gt;
  &amp;quot;Make the music for the \\doublePolyMark command.&amp;quot;&lt;br /&gt;
  (let* ((set (and (integer? label)&lt;br /&gt;
                   (context-spec-music (make-property-set &amp;#039;rehearsalMark label)&lt;br /&gt;
                                       &amp;#039;Score)))&lt;br /&gt;
         (ev (make-music &amp;#039;RehearsalMarkEvent&lt;br /&gt;
                         &amp;#039;left-label left-string&lt;br /&gt;
                         &amp;#039;right-label right-string&lt;br /&gt;
                         &amp;#039;origin (*location*)))&lt;br /&gt;
         (entry-key (if (symbol? key) key&lt;br /&gt;
                     (if (and (list? key) (symbol? (car key))) (car key)&lt;br /&gt;
                      #f)))&lt;br /&gt;
         (add-opts (if (pair? key) (cdr key) &amp;#039;())))&lt;br /&gt;
&lt;br /&gt;
    (if (symbol? entry-key)&lt;br /&gt;
      (ly:music-set-property! ev &amp;#039;key entry-key))&lt;br /&gt;
    (ly:music-set-property! ev &amp;#039;additional-options&lt;br /&gt;
      (acons &amp;#039;stencil double-rehearsalmark-stencil&lt;br /&gt;
        (acons &amp;#039;self-alignment-X #f&lt;br /&gt;
          (acons &amp;#039;break-visibility `#(,(not (boolean? left-string))&lt;br /&gt;
                                      #t&lt;br /&gt;
                                      ,(not (boolean? right-string)))&lt;br /&gt;
            add-opts))))&lt;br /&gt;
&lt;br /&gt;
    (if set&lt;br /&gt;
        (make-sequential-music (list set ev))&lt;br /&gt;
        (begin&lt;br /&gt;
          (set! (ly:music-property ev &amp;#039;label) #f)&lt;br /&gt;
          ev))))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
% END of my personal include file &amp;#039;double-mark.ly&amp;#039;&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  c&amp;#039;&amp;#039;1&lt;br /&gt;
  % make the coda sign begin-of-line-invisible&lt;br /&gt;
  % center it, except at the end of line, there let it be right adjusted&lt;br /&gt;
  \doubleMark&lt;br /&gt;
    \markup { \musicglyph &amp;quot;scripts.coda&amp;quot; }&lt;br /&gt;
    ##t&lt;br /&gt;
  c&amp;#039;&amp;#039;&lt;br /&gt;
  % line breaking RehearsalMark&lt;br /&gt;
  % will be joined with a space of the size &amp;#039;gap&amp;#039; of no line break occurs&lt;br /&gt;
  \doubleMark&lt;br /&gt;
    \markup { \with-color #blue { &amp;quot;D.C. al  &amp;quot; \raise #1.0 \musicglyph &amp;quot;scripts.coda&amp;quot; &amp;quot;e poi&amp;quot; } }&lt;br /&gt;
    \markup { \with-color #blue &amp;quot;CODA&amp;quot; }&lt;br /&gt;
  \break&lt;br /&gt;
  c&amp;#039;&amp;#039;&lt;br /&gt;
  % make the &amp;quot;Fine&amp;quot; begin-of-line-invisible and right adjusted&lt;br /&gt;
  \doubleMark&lt;br /&gt;
    &amp;quot;Fine&amp;quot;&lt;br /&gt;
    ##f&lt;br /&gt;
  c&amp;#039;&amp;#039;&lt;br /&gt;
  \doubleMark&lt;br /&gt;
    &amp;quot;CODA da capo al Fine&amp;quot;&lt;br /&gt;
    ##f&lt;br /&gt;
  \bar &amp;quot;|.&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
% using \doublePolyMark,&lt;br /&gt;
% only possible if the poly-mark-engraver is loaded&lt;br /&gt;
% therefore it&amp;#039;s commented out here!&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
%{&lt;br /&gt;
  c&amp;#039;&amp;#039;1&lt;br /&gt;
  % make the coda sign begin-of-line-invisible&lt;br /&gt;
  % center it, except at the end of line, there let it be right adjusted&lt;br /&gt;
  \polyMark #&amp;#039;CenterDown \markup \box \fontsize #-3 \column { &amp;quot;another&amp;quot; &amp;quot;polyMark&amp;quot; }&lt;br /&gt;
  \doubleMark&lt;br /&gt;
    \markup { \musicglyph &amp;quot;scripts.coda&amp;quot; }&lt;br /&gt;
    ##t&lt;br /&gt;
  c&amp;#039;&amp;#039;&lt;br /&gt;
  % line breaking RehearsalMark&lt;br /&gt;
  % will be joined with a space of the size &amp;#039;gap&amp;#039; of no line break occurs&lt;br /&gt;
  \mark \markup \box \fontsize #-3 \column { &amp;quot;another&amp;quot; &amp;quot;mark&amp;quot; }&lt;br /&gt;
  \doublePolyMark #&amp;#039;anySymbol&lt;br /&gt;
    \markup { \with-color #blue { &amp;quot;D.C. al  &amp;quot; \raise #1.0 \musicglyph &amp;quot;scripts.coda&amp;quot; &amp;quot;e poi&amp;quot; } }&lt;br /&gt;
    \markup { \with-color #blue &amp;quot;CODA&amp;quot; }&lt;br /&gt;
  \break&lt;br /&gt;
  c&amp;#039;&amp;#039;&lt;br /&gt;
  % make the &amp;quot;Fine&amp;quot; begin-of-line-invisible and right adjusted&lt;br /&gt;
  \mark \markup \box \fontsize #-3 \column { &amp;quot;another&amp;quot; &amp;quot;mark&amp;quot; }&lt;br /&gt;
  \doublePolyMark #&amp;#039;CenterDown&lt;br /&gt;
    &amp;quot;Fine&amp;quot;&lt;br /&gt;
    ##f&lt;br /&gt;
  c&amp;#039;&amp;#039;&lt;br /&gt;
  \doublePolyMark #&amp;#039;CenterDown&lt;br /&gt;
    &amp;quot;CODA da capo al Fine&amp;quot;&lt;br /&gt;
    ##f&lt;br /&gt;
  \bar &amp;quot;|.&amp;quot;&lt;br /&gt;
%}&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
% Some more functions for tweaking a broken RehearsakMark&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
%% direction&lt;br /&gt;
&lt;br /&gt;
set-mark-y-dir =&lt;br /&gt;
#(define-music-function (ls)(list?)&lt;br /&gt;
&amp;quot;&lt;br /&gt;
 Sets &amp;#039;direction of RehearsalMark. Depending on their break-dir.&lt;br /&gt;
 &lt;br /&gt;
 @var{ls} is supposed to be an alist with entries like&lt;br /&gt;
  (&amp;lt;break-dir of the item&amp;gt; . &amp;lt;Y-direction&amp;gt;)&lt;br /&gt;
 A full list is not needed. An empty list is possible, too, will default to all&lt;br /&gt;
 items UP.&lt;br /&gt;
 &lt;br /&gt;
 Example:&lt;br /&gt;
 `( (,left . ,DOWN) (,center . ,DOWN) (,right . ,UP) )&lt;br /&gt;
 Ofcourse this is the same as:&lt;br /&gt;
 &amp;#039;((-1 . -1)(0 . -1)(1 . 1))&lt;br /&gt;
 &amp;quot;&lt;br /&gt;
#{&lt;br /&gt;
  \override Score.RehearsalMark.before-line-breaking =&lt;br /&gt;
    #(lambda (grob) &lt;br /&gt;
       (let* ((get-break-dir (ly:item-break-dir grob))&lt;br /&gt;
              (left-y-dir (or (assoc-get left ls) 1))&lt;br /&gt;
              (right-y-dir (or (assoc-get right ls) 1))&lt;br /&gt;
              (center-y-dir (or (assoc-get center ls) 1)))&lt;br /&gt;
         &lt;br /&gt;
         (ly:grob-set-property! grob &amp;#039;direction&lt;br /&gt;
           (case get-break-dir&lt;br /&gt;
            ((-1) left-y-dir)&lt;br /&gt;
            ((1) right-y-dir)&lt;br /&gt;
            ((0) center-y-dir)&lt;br /&gt;
            ;; better be paranoiac&lt;br /&gt;
            (else 1)))))&lt;br /&gt;
#})&lt;br /&gt;
     &lt;br /&gt;
\relative c&amp;#039; {  &lt;br /&gt;
  \set-mark-y-dir #`( (,left . ,DOWN) (,center . ,DOWN) (,right . ,UP) )&lt;br /&gt;
  c4 d e f g a b c b a g f e d c b \bar &amp;quot;||&amp;quot;&lt;br /&gt;
  \once \override Score.RehearsalMark.self-alignment-X = #RIGHT&lt;br /&gt;
  \doubleMark&lt;br /&gt;
  \markup \fontsize #-3 \italic { D.C. al Coda }&lt;br /&gt;
  \markup { \musicglyph &amp;quot;scripts.coda&amp;quot; }&lt;br /&gt;
  \break  &lt;br /&gt;
  \key d \major &lt;br /&gt;
  d&amp;#039; e fis g a b cis d\mark &amp;quot;XY&amp;quot; cis b a g fis e d cis \bar &amp;quot;|.&amp;quot;  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
%% padding&lt;br /&gt;
&lt;br /&gt;
set-broken-mark-padding =&lt;br /&gt;
#(define-music-function (ls)(list?)&lt;br /&gt;
&amp;quot;&lt;br /&gt;
 Sets &amp;#039;padding of RehearsalMark. Depending on their break-dir.&lt;br /&gt;
 &lt;br /&gt;
 @var{ls} is supposed to be an alist with entries like&lt;br /&gt;
  (&amp;lt;break-dir of the item&amp;gt; . &amp;lt;Y-direction&amp;gt;)&lt;br /&gt;
 A full list is not needed. An empty list is possible, too, will default to all&lt;br /&gt;
 items having @code{padding} 0.&lt;br /&gt;
 &lt;br /&gt;
 Example:&lt;br /&gt;
 `( (,left . 1) (,center . 2) (,right . 3) )&lt;br /&gt;
 Ofcourse this is the same as:&lt;br /&gt;
 &amp;#039;((-1 . 1)(0 . 2)(1 . 3))&lt;br /&gt;
 &amp;quot;&lt;br /&gt;
#{&lt;br /&gt;
  \override Score.RehearsalMark.padding =&lt;br /&gt;
    #(lambda (grob) &lt;br /&gt;
       (let* ((get-break-dir (ly:item-break-dir grob))&lt;br /&gt;
              (y-off #f)&lt;br /&gt;
              (left-y-off (assoc-get left ls))&lt;br /&gt;
              (right-y-off (assoc-get right ls))&lt;br /&gt;
              (center-y-off (assoc-get center ls)))&lt;br /&gt;
         &lt;br /&gt;
           (case get-break-dir&lt;br /&gt;
            ((-1) left-y-off)&lt;br /&gt;
            ((1) right-y-off)&lt;br /&gt;
            ((0) center-y-off)&lt;br /&gt;
            ;; better be paranoiac&lt;br /&gt;
            (else 0))))&lt;br /&gt;
#})&lt;br /&gt;
&lt;br /&gt;
\paper { tagline = ##f }&lt;br /&gt;
     &lt;br /&gt;
\relative c&amp;#039; {  &lt;br /&gt;
  \set-mark-y-dir #`( (,left . ,DOWN) (,center . ,DOWN)  )&lt;br /&gt;
  \set-broken-mark-padding #`( (,right . 3))&lt;br /&gt;
  &lt;br /&gt;
  c4 d e f g a b c b a g f e d c b \bar &amp;quot;||&amp;quot;&lt;br /&gt;
  \once \override Score.RehearsalMark.self-alignment-X = #RIGHT&lt;br /&gt;
  \doubleMark&lt;br /&gt;
  \markup \fontsize #-3 \italic { D.C. al Coda }&lt;br /&gt;
  \markup { \musicglyph &amp;quot;scripts.coda&amp;quot; }&lt;br /&gt;
  \break  &lt;br /&gt;
  \key d \major &lt;br /&gt;
  d&amp;#039; e fis g a b cis d cis b a g fis e d cis \bar &amp;quot;|.&amp;quot;  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Text]]&lt;br /&gt;
[[Category:Repeats]]&lt;br /&gt;
[[Category:Symbols and glyphs]]&lt;br /&gt;
[[Category:Breaks]]&lt;br /&gt;
[[Category:Workaround]]&lt;br /&gt;
[[Category:Legacy code]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
</feed>