2015-09-26 0:42 GMT+02:00 Simon Albrecht <[email protected]>:
> On 25.09.2015 23:10, Thomas Morley wrote:
>>
>> 2015-09-25 12:28 GMT+02:00 Malte Meyn <[email protected]>:
>>>
>>>
>>> Am 25.09.2015 um 10:58 schrieb Urs Liska:
>>>>
>>>> {
>>>>     \override TextScript.self-alignment-X = #LEFT
>>>>     c'2 ^\markup \rotate #90 "This is a long markup" c
>>>> }
>>>>
>>> You could use an event function:
>>>
>>> %%%%%
>>> \version "2.19.27"
>>>
>>> verticalText =
>>> #(define-event-function (text) (markup?)
>>>     #{
>>>       -\tweak TextScript.self-alignment-X #LEFT
>>>       -\markup \rotate #90 #text
>>>     #})
>>>
>>> {
>>>    c'2^\verticalText \markup \italic "This is a long markup" c
>>>    c'2\verticalText "This is a long text" c
>>> }
>>> %%%%%
>>
>>
>>
>> Using \override or \tweak or an event-function will not work for
>> markups at toplevel and/or if not the entire markup is rotated, see:
>>
>> \markup {
>>      "ab"
>>      \rotate #90 "------|------"
>>      "xy"
>> }
>>
>>
>> Hence I wrote 'my-rotate':
>>
>>
>> #(define-markup-command (my-rotate layout props ang arg)
>>    (number? markup?)
>>    (let* ((stil (interpret-markup layout props arg))
>>           (stil-x-length (interval-length (ly:stencil-extent stil X)))
>>           (stil-y-length (interval-length (ly:stencil-extent stil Y))))
>>      (ly:stencil-rotate stil ang (/ stil-y-length -2) (/ stil-x-length
>> -2))))
>
>
> I also wrote a markup function for this (several hours ago, then I forgot to
> actually send it here…).
> This is just a modification of the original \rotate definition from the code
> base, adding another argument to specify the reference point used by
> ly:stencil-rotate. Choose your favourite…
>
> Yours, Simon

Actually, my proposal could be regarded as a special case of yours :)

Best,
  Harm

_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to