[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: utf-8-strings
From: |
Thomas Morley |
Subject: |
Re: utf-8-strings |
Date: |
Sun, 8 Jul 2012 18:46:28 +0200 |
2012/7/8 David Kastrup <address@hidden>:
> Thomas Morley <address@hidden> writes:
>
>> Seems I have to extend my scheme-vocabulary.
>> I didn't know/remember `append-map' and `string-concatenate'.
>
> Picked them from the Guile manuals.
I know.
I tend to define my own helpers if I don't find sth useful in the
guile-manual in a short amount of time.
Should invest more time in looking through the manual.
Defining my own helpers is a nice exercise, but ...
>
>> I really have to learn more of the predefined guile-procedures.
>>
>>>> (new-args (list-join args-rev " "))
>>>
>>> list-join?
>>
>> I wanted to insert " " between every element of new-args. Otherwise
>> there will be no space between the words of p.e. \markup \char-space
>> #1 { This little text }
>> list-join seems to be a nice function to do so. Anything problematic
>> with it?
>
> I did not find it in the Guile documentation and did not think of
> looking in scm/lily-library.scm instead. Looks suboptimal: an
> unnecessary test inside of the loop.
>
> Better is likely
>
> (define-public (list-join lst intermediate)
> (if (null? lst) lst
> (cons (car lst)
> (append-map!
> (lambda (elem) (list intermediate elem))
> (cdr lst)))))
>
> Or even
>
> (define-public (list-join lst intermediate)
> (if (null? lst) lst
> (cons (car lst)
> (concatenate!
> (zip (circular-list intermediate) (cdr lst))))))
>
> The last version is probably fastest since it avoids any user-defined
> function in the loop.
Could be integrated in the intended patch.
>
>>>> (ly:stencil-combine-at-edge
>>>> (ly:stencil-combine-at-edge
>>>> (ly:make-stencil ""
>>>> (cons 0 (abs (* pos-nmbr 3 (if (number? word-space-left)
>>>> word-space-left word-space))))
>>>
>>> word-space-left has been given a default in the function definition. So
>>> if it is not a number, this is an error case I would not try to catch.
>>
>> Do you mean writing
>>
>> (ly:stencil-combine-at-edge
>> (ly:stencil-combine-at-edge
>> (ly:make-stencil ""
>> (cons 0 (abs (* pos-nmbr 3 (if word-space-left
>> word-space-left word-space))))
>>
>> instead?
>
> No.
>
> (ly:stencil-combine-at-edge
> (ly:stencil-combine-at-edge
> (ly:make-stencil ""
> (cons 0 (abs (* pos-nmbr 3 word-space-left))))))
>
> word-space-left has no business being anything but a number.
Well, then I don't understand what you want me to do.
Intended is the behaviour that the space to the left and to the right of
\char-space #<nmbr> {<args> } is increased if nmbr is positive.
Additional I want to offer the possibility to add more space in three
different ways (if the user wants):
only to the left
only to the right
on both sides
using \override #'(word-space-left . 2) etc.
I don't see how this could be achieved with your proposal.
-Harm
- Re: utf-8-strings, (continued)
- Re: utf-8-strings, Thomas Morley, 2012/07/08
- Re: utf-8-strings, David Kastrup, 2012/07/08
- Re: utf-8-strings, David Nalesnik, 2012/07/08
- Re: utf-8-strings, David Kastrup, 2012/07/08
- Re: utf-8-strings, Thomas Morley, 2012/07/10
- Re: utf-8-strings, David Nalesnik, 2012/07/10
- Re: utf-8-strings, David Kastrup, 2012/07/10
- Re: utf-8-strings, David Kastrup, 2012/07/08
- Re: utf-8-strings, Thomas Morley, 2012/07/08
- Re: utf-8-strings, David Kastrup, 2012/07/08
- Re: utf-8-strings,
Thomas Morley <=
- Re: utf-8-strings, David Kastrup, 2012/07/08