If I understand correctly, counter gets incremented whenever
interpret-markup is called on a markup containing the counter. If you look
in define-markup-commands.scm, \fill-line calls interpret-markup only once,
but \fill-with-pattern calls interpret-markup twice, first to find out the
width of the left and right text, then it calls interpret-markup again on
the entire line.

On Mon, Jul 2, 2018 at 9:01 AM Pierre Perol-Schneider <
pierre.schneider.pa...@gmail.com> wrote:

> > ... counter shows only pairs.
> " counter shows only even numbers"... sorry.
> Pierre
>
> 2018-07-02 17:23 GMT+02:00 Pierre Perol-Schneider <
> pierre.schneider.pa...@gmail.com>:
>
>> Hi All,
>>
>> I'd like to add a counter (LSR 543) in a table of content.
>> However, when 'tocItemWithDotsMarkup is set, counter shows only pairs.
>> Any idea how to solve this ?
>>
>> Snippet :
>>
>> %%%%
>> \version "2.19.82" %% or 2.18
>>
>> %%% Counter defs
>> % => http://lsr.di.unimi.it/LSR/Item?id=543
>>
>> #(define counter-alist '())
>>
>> #(define-markup-command (counter layout props name) (string?)
>>   "Increases and prints out the value of the given counter named
>> @var{name}.
>>   If the counter does not yet exist, it is initialized with 1."
>>   (let* ((oldval (assoc-ref counter-alist name))
>>          (newval (if (number? oldval) (+ oldval 1) 1)))
>>   (set! counter-alist (assoc-set! counter-alist name newval))
>>   (interpret-markup layout props
>>     (markup (number->string newval)))))
>>
>> #(define-markup-command (setcounter layout props name value) (string?
>> number?)
>>   "Set the given counter named @var{name} to the given @var{value} and
>> prints
>>   out the value. The counter does not yet have to exist."
>>   (set! counter-alist (assoc-set! counter-alist name (- value 1)))
>>   (interpret-markup layout props (make-counter-markup name)))
>>
>> %% Test:
>>
>> \book {
>>   \bookpart {
>>     \markuplist \table-of-contents
>>     \paper {
>>       %% comment the following line:
>>       tocItemMarkup = \tocItemWithDotsMarkup
>>     }
>>   }
>>   \bookpart {
>>     \tocItem \markup { "Étude" \counter #"counter" }
>>     { c' }
>>   }
>>   \bookpart {
>>     \tocItem \markup { "Étude" \counter #"counter" }
>>     { c' }
>>   }
>>   \bookpart {
>>     \tocItem \markup { "Étude" \counter #"counter" }
>>     { c' }
>>   }
>> }
>> %%%%
>>
>> TIA, cheers,
>> Pierre
>>
>>
>>
> _______________________________________________
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to