"Retour à la ligne" en Scheme

classic Classique list Liste threaded Arborescence
5 messages Options
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

"Retour à la ligne" en Scheme

Rémy

Bonjour à tous,

 

Je débute en Scheme. Pour me faire la main, j'essaye d'écrire une fonction qui affiche deux lignes l'une en dessous de l'autre. Simple en apparence, mais je bute. Le code ci-dessous produit deux lignes qui se suivent et non deux lignes qui se superposent.

#(define-markup-command (two-lines layout props nameI nameII) (string? string?)

(interpret-markup layout props ( markup

(markup (#:override '(font-name . "Times New Roman")

#:abs-fontsize 28 #:italic #:medium nameI ))

(markup "\n")

(markup (#:override '(font-name . "Times New Roman")

#:abs-fontsize 28 #:italic #:medium nameII ))

 

)

)

)

 

L'un de vous peut-il me guider (Je suis en version 2.16.2).

 

Merci,

 

Bonne journée,

 

Rémy

 


_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: "Retour à la ligne" en Scheme

Jean-Jacques Gerbaud-2
Le 27/02/2018 à 05:15, Remy CLAVERIE a écrit :
> Bonjour à tous,
bonjour Rémy,

>
>  
>
> Je débute en Scheme. Pour me faire la main, j'essaye d'écrire une fonction qui affiche deux lignes l'une en dessous de l'autre. Simple en apparence, mais je bute. Le code ci-dessous produit deux lignes qui se suivent et non deux lignes qui se superposent.
>
> #(define-markup-command (two-lines layout props nameI nameII) (string? string?)
>
> (interpret-markup layout props ( markup
>
> (markup (#:override '(font-name . "Times New Roman")
>
> #:abs-fontsize 28 #:italic #:medium nameI ))
>
> (markup "\n")
>
> (markup (#:override '(font-name . "Times New Roman")
>
> #:abs-fontsize 28 #:italic #:medium nameII ))
>
>  
>
> )
>
> )
>
> )
>
>  
>
> L'un de vous peut-il me guider (Je suis en version 2.16.2).

Nous en sommes à la version 2.19... Je pense que tu devrais mettre ta
version de lilyponr à jour.

Moi, je n'y connais rien en Scheme mais le "mot" qui permet de mettre
deux textes l'un au dessus de l'autre chez Lilypond est "\column".

Peut être suffit il de le rajouter tout de suite après le dernier
(markup), tel que :

(markup column (#:override '(font-name . "Times New Roman") ...

Essaie et tu verras bien. :-)
(j'ai placé ce bout de code en scheme dans une partition finie et la
compilation ne me présente pas d'erreur !)

Bonne chance

--

JJG



_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: "Retour à la ligne" en Scheme

Gilles Thibault-2

>> #(define-markup-command (two-lines layout props nameI nameII) (string?
>> string?)
>>
>> (interpret-markup layout props ( markup
>>
>> (markup (#:override '(font-name . "Times New Roman")
>>
>> #:abs-fontsize 28 #:italic #:medium nameI ))
>>
>> (markup "\n")
>>
>> (markup (#:override '(font-name . "Times New Roman")
>>
>> #:abs-fontsize 28 #:italic #:medium nameII ))
>>

> Moi, je n'y connais rien en Scheme mais le "mot" qui permet de mettre
> deux textes l'un au dessus de l'autre chez Lilypond est "\column".

Oui, c'est du genre (si mes souvenirs sont bon)
(#:column (list
     arg1
     arg2
     ...))

--
Gilles

_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: "Retour à la ligne" en Scheme

Rémy

Merci à Jean-jacques qui m'a bien aiguillé !

Voici ce qui fonctionne chez moi:

#(define-markup-command (two-lines layout props nameI nameII) (markup? markup? )

(interpret-markup layout props

( markup

(markup #:line

(#:right-column

(#:override '(font-name . "Gentium Book Basic")

(#:abs-fontsize 28 #:italic #:medium nameI )

#:abs-fontsize 28 "\n"

#:override '(font-name . "Gentium Book Basic")

(#:abs-fontsize 28 #:italic #:medium nameII )

)

)

)

)

)

)

 

 

Merci à tous,

Rémy

 

 

> Message du 27/02/18 10:57

> De : "Gilles Thibault" <[hidden email]>
> A : "Jean-Jacques Gerbaud" <[hidden email]>
> Copie à : "Remy CLAVERIE" <[hidden email]>, "Mialing list Lilypond" <[hidden email]>, "lilypond-user-fr" <lilypond-user-fr-bounces+gillesth=[hidden email]>
> Objet : Re: "Retour à la ligne" en Scheme
>
>
> >> #(define-markup-command (two-lines layout props nameI nameII) (string?
> >> string?)
> >>
> >> (interpret-markup layout props ( markup
> >>
> >> (markup (#:override '(font-name . "Times New Roman")
> >>
> >> #:abs-fontsize 28 #:italic #:medium nameI ))
> >>
> >> (markup "\n")
> >>
> >> (markup (#:override '(font-name . "Times New Roman")
> >>
> >> #:abs-fontsize 28 #:italic #:medium nameII ))
> >>
>
> > Moi, je n'y connais rien en Scheme mais le "mot" qui permet de mettre
> > deux textes l'un au dessus de l'autre chez Lilypond est "\column".
>
> Oui, c'est du genre (si mes souvenirs sont bon)
> (#:column (list
> arg1
> arg2
> ...))
>
> --
> Gilles
>
_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
Répondre | Arborescence
Ouvrir ce message en vue arborescente
|

Re: "Retour à la ligne" en Scheme

Gilles Thibault-2


> Voici ce qui fonctionne chez moi:
> #(define-markup-command (two-lines layout props nameI nameII) (markup?
> markup? )
> (interpret-markup layout props
> ( markup
> (markup #:line                  ;; pourquoi 2 markup ?
> (#:right-column
> (#:override '(font-name . "Gentium Book Basic")
> (#:abs-fontsize 28 #:italic #:medium nameI )
> #:abs-fontsize 28 "\n"          ;; du coup ça ne sert plus à rien.
> #:override '(font-name . "Gentium Book Basic")
> (#:abs-fontsize 28 #:italic #:medium nameII )
> )
> )
> )
> )
> )
> )


Hum, on peut sûrement optimiser un peu, si nameI et nameII ont les même
réglages :


#(define-markup-command (two-lines layout props nameI nameII) (markup?
markup? )
(interpret-markup layout props
   (markup
     #:override '(font-name . "Gentium Book Basic")
       #:abs-fontsize 28 #:italic #:medium
         #:right-column (nameI nameII))))

\markup \two-lines #"ligne 1" #"ligne 2"


Note :
Le (markup #:line ...) est inutile sous 2.19, mais peut-être que ça ne
l'était pas sous 2.16. Je ne me rappelle plus.

--
Gilles

_______________________________________________
liste de diffusion lilypond-user-fr
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr