Subject: alignement horizontal des markup

From: Daniel Cartron <[email-masked]>
Date: Sat, 16 May 2015 06:28:29 +0200

Bonjour,

Je veux centrer mon markup sur la note, donc \center-align. Oui mais ça centre 
le markup sur le début de la note, donc légèrement décalé vers la gauche, 
c'eest pas très beau. J'ai essayé \override TextScript #'extra-spacing-width 
mais ça ne fait apparemment pas le boulot.

J'ai triché en rajoutant deux espaces au début de mon markup mais c'est du 
bricolage indigne de Lilypond.

C'est quoi la solution élégante ?

-- 
Cordialement, Daniel Cartron
« On devrait toujours être légèrement improbable. »
Oscar Wilde - Aphorismes

---

From: Martial <[email-masked]>
Date: Sat, 16 May 2015 07:40:43 +0200

%---------------------------------------
   \relative c'' {
   \override TextScript.self-alignment-X = #CENTER
     c2-\markup {   "123456"  }
   }
%---------------------------------------

---

From: Daniel Cartron <[email-masked]>
Date: Sat, 16 May 2015 14:53:11 +0200

Ben non pas chez moi (2.16). J'ai écrit 444444 pour vérifier que c'est pas une 
question d'espace différent pour chaque caractère et la hampe tombe exactement 
entre le 3 et le 4. Et si je ne laisse qu'un 4 la hambe tombera au milieu du 4 
or je veux que ce soit le milieu de la note qui soit au milieu du 4, pas sa 
hampe.

Genre ça c'est pas aligné :

 \relative c'' {
   \override TextScript#'self-alignment-X = #CENTER
     c1-\markup {   "4"  }
   }

Mais merci qd mm !

-- 
Cordialement, Daniel Cartron
« Je suis contre les femmes, tout contre. »
Sacha Guitry

---

From: Martial <[email-masked]>
Date: Sat, 16 May 2015 17:16:29 +0200

\relative c'' {
   \override TextScript.self-alignment-X = #CENTER
     c2-\markup { \hspace #1  "4"  }
   }

---

From: Daniel Cartron <[email-masked]>
Date: Sat, 16 May 2015 18:04:32 +0200

Le samedi 16 mai 2015, 17:16:29 Martial a écrit :
> \hspace #1

J'avais bien pensé à ça mais c'est juste un décalage dont je ne sais pas s'il 
sera proportionnel à la taille de la note... Ben non. En exagérant

 \relative c'' {
   \override NoteHead #'font-size = #8
   \override TextScript #'self-alignment-X = #CENTER
     c2-\markup { \hspace #1  "4"  }
   }

 Et si je joue sur GlobalSize pareil, ça suit pas...

Et si j'insère des espaces avant pareil ça suit pas...

-- 
Cordialement, Daniel Cartron
« On ne prête qu'aux riches. Et on a raison : les pauvres remboursent 
difficilement. »
Tristan Bernard

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 16 May 2015 19:18:48 +0200

Bonjour Daniel,
Bonjour Martial,

\version "2.16.2"

\relative c'' {
  \once \override TextScript #'self-alignment-X = #CENTER
  \override TextScript #'X-offset =
    #(ly:make-simple-closure
        `(,+ ,(ly:make-simple-closure
                 (list ly:self-alignment-interface::centered-on-x-parent))
                     ,(ly:make-simple-closure
                         (list
ly:self-alignment-interface::x-aligned-on-self))))
  \override NoteHead #'font-size = #8
  c^\markup"4"
}

Cordialement,
Pierre

Le 16 mai 2015 18:04, Daniel Cartron <[email-masked]> a écrit :

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

---

From: Martial <[email-masked]>
Date: Sat, 16 May 2015 21:12:09 +0200

Impec ! Pas simple mais impec !

Le 16/05/2015 19:18, Pierre Perol-Schneider a écrit :
> Le 16 mai 2015 18:04, Daniel Cartron <[email-masked]
> <mailto:[email-masked]>> a écrit :
>
>     [email-masked] <mailto:[email-masked]>

---

From: Daniel Cartron <[email-masked]>
Date: Sun, 17 May 2015 10:56:06 +0200

> Impec ! Pas simple mais impec !

Oui pour un markup simple mais le pb est que je dois afficher des markup super 
complexes, je vous donne un exemple :

la'^\markup \line { \line { \line { \with-color #'(0.0 0.0 0.0) \center-align 
\concat { \raise #-2.2 "" \center-column { \pad-x #0.35 " " \raise #1.5 \line 
{ \pad-markup #0.35 "6"}} \raise #-1.5 \abs-fontsize #6 \concat { "" ""} 
\raise #-2.2 ""}}}}

si'_\markup \line { \line { \line { \center-align \concat { \raise #-2.2 
\with-color #'(1.0 1.0 1.0) "�\x86\x91" \with-color #'(0.0 0.0 0.0) \center-
column { \pad-x #0.35 "�\x87�" \raise #1.5 ""} \raise #-2.2 \with-color #'(1.0 
1.0 1.0) ""}}}}^\markup \line { \line { \line { \with-color #'(0.0 0.0 0.0) 
\center-align \concat { \raise #-2.2 "�\x86\x91" \center-column { \pad-x #0.35 
" " \raise #1.5 \line { \pad-markup #0.35 "7"}} \raise #-1.5 \abs-fontsize #6 
\concat { "" ""} \raise #-2.2 ""}}}}

Oui, au secours ! Vous avez raison c'est totalement fou. Mais je ne peux pas 
faire autrement, sauf à apprendre à fabriquer des articulations persos, et 
encore je suis pas certain que ça marcherait..

Parce que voilà le rendu graphique qu'il faut avoir. Donc il faut pouvoir 
afficher des symboles avant, ou après le numéro de trou de l'harmonica, voire 
dessus ou dessous, et dans ce cas il doit être aligné sur le numéro, mm s'il y 
a qq chose avant (voir numéro 7). La seule solution que j'ai trouvée est 
d'écrire la mm chose dans deux markups, un dessus et un dessous, avec une 
couleur blanche dans l'un des deux.

S'il y a plus simple je suis très intéressé. 

Le principe est que si le numéro est au-dessus de la ligne il doit pouvoir 
avoir un symbole avant, un au-dessus et un à droite, et il faut aussi un 
symbole en dessous de la ligne, qui soit aligné avec le numéro. Évidemment les 
symboles latéraux doivent être alignés verticalement avec le numéro.

Et si le markup est sous la ligne c'est le contraire, avant dessous après et 
au-dessus de l'autre côté de la ligne (en fait c'est un drumstaff à une seule 
ligne).

Un petit défi pour les fortiches en markup, non ?

-- 
Cordialement, Daniel Cartron
« Si ça fait mal c'est que ça fait du bien!! »
Devise Shadock

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sun, 17 May 2015 12:26:55 +0200

Bonjour Daniel,

C'est dommage de ne pas nous envoyer d'exemples compilables ça nous aiderai
grandement à te suivre... Berf !

Effectivement tes 'markup' sont un peu compliqués.
L'un des risques est que, lorsque tu vas passer à la v2.18 tu vas devoir
revoir tous les alignements ; en d'autres termes, ton code n'intéressera,
au final, que les utilisateurs de la v2.16 qui sont de moins en moins
nombreux.

On peut, je pense, simplifier comme ceci :

%%%%%%%%%%%
\version "2.16.2"
\include "italiano.ly"

laSix = \markup \line {
  \line {
    \line {
      \with-color #'(0.0 0.0 0.0)
      \center-align
      \concat {
        \raise #-2.2 ""
        \center-column {
          \pad-x #0.35 " "
          \raise #1.5
          \line {
            \pad-markup #0.35 "6"
          }
        }
        \raise #-1.5 \abs-fontsize #6 \concat { "" "" }
        \raise #-2.2 ""
      }
    }
  }
}

laSixBis = \markup {
  \with-dimensions #'(0 . 0) #'(0 . 0) %% <= pour ne pas "gêner" des
glyphes voisins
  \translate #'(-0.6 . 0.35)
  "6"
}

{
  la'^\laSix
  la'^\laSixBis
}
%%%%%%%%%%%%%%%%

En outre :
- 'laSixBis' est compatible avec les versions ultérieures
- '\with-dimensions' te permettra de jouer sur les écarts et autres
alignements entre deux 'markup'

Cordialement,
Pierre

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sun, 17 May 2015 12:30:00 +0200

PS. Tes nouveaux glyphes sont sûrement facilement faisables avec la
commande 'path' (cf.
http://lilypond.org/doc/v2.16/Documentation/notation/graphic.fr.html ).

Le 17 mai 2015 12:26, Pierre Perol-Schneider <
[email-masked]> a écrit :

> Bonjour Daniel,
>
> C'est dommage de ne pas nous envoyer d'exemples compilables ça nous
> aiderai grandement à te suivre... Berf !
>

---

From: Daniel Cartron <[email-masked]>
Date: Sun, 17 May 2015 15:51:27 +0200

Le dimanche 17 mai 2015, 12:30:00 Pierre Perol-Schneider a écrit :
> commande 'path' (

Oui je sais mais le principe est que chacun a le droit de choisir le caractère 
utf-8 qui lui plait et l'indiquer dans le fichier de config. Je ne fais pas un 
truc figé mais totalement personnalisable, c'est surement plus complexe mais 
plus intéressant pour les intéressés :-)

-- 
Cordialement, Daniel Cartron
« Celui qui peut, agit. Celui qui ne peut pas, enseigne.  »
George Bernard Shaw - Maximes pour révolutionnaires

---

From: Daniel Cartron <[email-masked]>
Date: Sun, 17 May 2015 15:49:01 +0200

> grandement à te suivre... Berf !

Moi je veux bien mais il y a plus de 1000 lignes de scheme derrière... Mais si 
tu veux je peux.
 
> Effectivement tes 'markup' sont un peu compliqués.

J'adore ton sens de la litote :-)

> au final, que les utilisateurs de la v2.16 qui sont de moins en moins

J'en suis conscient mais j'ai bien réfléchi à ça et mon but est à la base de 
permettre au pékin moyen de se mettre à lilyond pour écrire les belles 
tablatures dont il rêve et en plus gratos. Je ne sais pas comment c'est sur 
les autres OS mais sur ubuntu on en est à la 2.16 encore aujourd'hui. Si je 
dis qu'avant de pouvoir utiliser mon code il faut faire une install manuelle 
de lilyond il restera qui ? Les habitués et personne d'autre. C'est con mais 
c'est comme ça.

Mais dès que ubuntu propose en standard la 2.18 je change. Au passage, la 
rétro-activité ils connaissent pas chez miss lily :-(
 
> On peut, je pense, simplifier comme ceci :

oai mais si j'ai ça :

%%%%%%%%%%%
\version "2.16.2"
\include "italiano.ly"

laSix = \markup \line {
  \line {
    \line {
      \with-color #'(0.0 0.0 0.0)
      \center-align
      \concat {
        \raise #-2.2 "-"
        \center-column {
          \pad-x #0.35 "-"
          \raise #1.5
          \line {
            \pad-markup #0.35 "-6"
          }
        }
        \raise #-1.5 \abs-fontsize #6 \concat { "'" "°" }
        \raise #-2.2 "-"
      }
    }
  }
}

laSixBis = \markup {
  \with-dimensions #'(0 . 0) #'(0 . 0) %% <= pour ne pas "gêner" des glyphes 
voisins
  \translate #'(-0.6 . 0.35)
  "6"
}

{
  la'^\laSix
  la'^\laSixBis
}
%%%%%%%%%%%%%%%%

on voir que les signes - ne sont plus alignés avec le chiffre et il faut 
proutant lire moins six... Je n'ai pas tout étudié mais c'est pas encore ça à 
mon avis. Les markups c'est vraiment de la poésie à l'état pur ! :-)

-- 
Cordialement, Daniel Cartron
« Pour marcher au pas d'une musique militaire, il n'y a pas besoin de cerveau, 
une moelle épinière suffit. »
Albert Einstein