Subject: "Retour à la ligne" en Scheme

From: Remy CLAVERIE <[email-masked]>
Date: Tue, 27 Feb 2018 05:15:31 +0100 (CET)

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

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Tue, 27 Feb 2018 10:42:32 +0100

> Bonjour à tous,
bonjour Rémy,
> 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

---

From: Gilles Thibault <[email-masked]>
Date: Tue, 27 Feb 2018 10:57:33 +0100

> 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

---

From: Remy CLAVERIE <[email-masked]>
Date: Tue, 27 Feb 2018 16:31:48 +0100 (CET)

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" 
> A : "Jean-Jacques Gerbaud" 
> Copie à : "Remy CLAVERIE" , "Mialing list Lilypond" 
, "lilypond-user-fr" 

> Objet : Re: "Retour à la ligne" en Scheme
> 
>

---

From: Gilles Thibault <[email-masked]>
Date: Tue, 27 Feb 2018 17:28:41 +0100

> (markup #:line                  ;; pourquoi 2 markup ?
> (#:right-column
> #:abs-fontsize 28 "\n"          ;; du coup ça ne sert plus à rien.

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