[Please stay on the list]

>>> I want to tweak the spacing between double dots, which is a bit
>>> wide (in my context, at least).  I have found ways to reduce the
>>> spacing before and after the group of dots, but can't uncover
>>> anything that relates to spacing within the group.
>>
>> You have to override the 'stencil' property of the 'Dots' grob
>> with your own function.  Right now, it uses `ly:dots::print` (see
>> file `output-lib.scm`), which takes the horizontal extent of
>> Emmentaler's 'dots.dot' glyph as a padding value while stacking the
>> dots horizontally.
>>  
>> Copy this function to your input file, call it 'my-dots' and
>> slightly modify it to, say, multiply the padding with factor 0.9,
>> then register it by saying
>>  
>> ``` 
>> \override Dots.stencil = #my-dots 
>> ``` 
>
> Thanks for that - but sadly it seems not to be possible in v2.23.3,
> which I'm stuck with for now, because dots::print is not in Scheme.

In such situations I suggest that you look into LilyPond's git
repository at 

  https://gitlab.com/lilypond/lilypond/

as an inspiration for what you need :-)

I tested the following with 2.23.6.  Note that it doesn't produce
correct output with 2.25.29.  Maybe Harm finds a better solution...


    Werner


======================================================================


#(define (my-dots grob)
   (let* ((font (ly:grob-default-font grob))
          (dot-stencil (ly:font-get-glyph font "dots.dot"))
          (padding (* (interval-length (ly:stencil-extent dot-stencil X))
                      0.5))
          (count (ly:grob-property grob 'dot-count 0)))
     (stack-stencils X RIGHT padding
                     (cons point-stencil (make-list count dot-stencil)))))

{
  f'2.... s32 \break
}

{
  \override Dots.stencil = #my-dots
  f'2.... s32
}

Reply via email to