lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Raise the "Fine" and "D.C. Fine" above the repeat volta alternative


From: Jean Abou Samra
Subject: Re: Raise the "Fine" and "D.C. Fine" above the repeat volta alternative brackets, how?
Date: Tue, 20 Sep 2022 03:30:05 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1

Le 20/09/2022 à 02:45, Kenneth Wolcott a écrit :
HI David;

   Thank you.

   What is "\rightjust"? Is it a variable (macro) that you have
defined? I can't find that command in the NR.



I suppose David defined it as something like

rightjust = \tweak self-alignment-X #RIGHT \etc


The alignment of a mark is defined by self-alignment-X. #RIGHT
specifies to align on the right side.


How does that differ
from right-align, which I tried and it didn't work for me.



Trying to use alignment markup commands like \left-align, \center-align,
\right-align, \general-align, \halign, etc. for aligning marks, text
scripts or other textual objects is a mistake I have seen quite a number
of people doing. I wonder if the manual should be explicitly warning against
it, but it's difficult to know in which section to put it, since it can
occur in many different contexts.

The problem with `\mark \markup \right-align Fine` is that \right-align
acts on the text that \mark prints as a RehearsalMark grob, but the RehearsalMark
grob also realigns itself. For simplicity, let's assume rehearsal marks are
always centered by default (it's more complex but this is illustrative).
When you write "Fine", this makes a markup, and when this markup is interpreted,
it has a certain width, say, '(0 . 4), which means from point 0 horizontally
to point 4 (in a certain unit defined by LilyPond). To ensure the centering,
the RehearsalMark grob will move itself by 2 units on the left so that
this extent becomes '(-2 . 2). By using \right-align, you translate the
Fine text in the initial step so its extent is '(-4 . 0), but the centering
step still happens, and recenters at '(-2 . 2).

Here is a little visualization. The red X indicates the X coordinate 0
in the Fine markup. As you can see, \right-align does move the Fine text
relative to this X, but the X also gets moved relative to the bar line,
which cancels the effect.


{
  c'1
  \mark \markup \combine
    Fine % also try \right-align Fine
    \with-outline \stencil #empty-stencil \fontsize #-5 \with-color "red" ×
}


So, instead of \right-align, you need to tweak self-alignment-X, which
modifies the realignment step to suit your desired alignment. I hope
that was clear.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]