Subject: Curieux comportement graphique

From: Gilles Tiar <[email-masked]>
Date: Fri, 29 Jan 2021 10:42:53 -0700 (MST)

Bonjour à tous,

Je rencontre un curieux comportement graphique. J’écris un livre sur la
musique de la Bible retrouvée (grâce au décryptement de Suzanne
Haïk-Vantoura). Pour le public francophone, je translittère l’hébreu
biblique et j’ajoute graphiquement les signes de cantillation (format .eps,
créé par Inkscape) à la translittération.

J’ai trouvé la bonne taille, le bon espacement, tout se passe bien… SAUF
qu’un signe réagit différemment. Ce signe, le plus simple, la tonique
(/sillouk/ en hébreu), petit bâton rectangulaire, a la même hauteur que les
autres, mais son rendu est toujours plus grand (sous la syllabe /scha/).
Exemple :

<http://lilypond-french-users.1298960.n2.nabble.com/file/t23433/ex15_4.png> 

J’ai fait toutes sortes d’essais, je l’ai même redessiné. Il sort toujours
plus grand. Le problème semble lié à la forme du signe (trait, rectangle?). 

Il existe un autre signe formé d’un trait/rectangle, mais accompagné de deux
points, là le rendu est normal. J’ai repris ce signe dans Inkscape, j’ai
retiré les deux points, mais là à nouveau quand je l’appelle le rendu est
plus grand.

La solution que j’ai bricolée et qui fonctionne, mais qui n’est pas très
élégante, est d’ajouter au trait du /sillouk/ un ou deux points (de couleur
blanche pour qu’on ne les voit pas) et là le rendu a la même taille que ses
collègues (dernière syllabe sous le mot /çouf/).

Mon problème regarde peut-être plus un forum Inkscape plus que Lilypond,
mais j’ai vu que des problèmes graphiques ont déjà été discutés sur la
liste.

Merci pour l’aide, j’ai essayé d’être le plus clair que possible,

Gilles

--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 29 Jan 2021 19:32:52 +0100

> Merci pour l’aide, j’ai essayé d’être le plus clair que possible,

Bonjour,

Le problème me paraît tout à fait clair, cependant il est difficile de
déboguer le code sans le voir. Pourriez-vous envoyer les images que vous
utilisez et un extrait fonctionnel de votre fichier LilyPond ? Il
faudrait examiner l'EPS, en particulier ses dimensions, pour savoir
si le problème est du côté d'Inkscape ou de LilyPond.

Cordialement,
Jean

---

From: Olivier Miakinen <[email-masked]>
Date: Sat, 30 Jan 2021 00:04:31 +0100

Bonjour,

Le 29/01/2021 18:42, Gilles Tiar a écrit :
> [...]

Une idée pourrait être d'utiliser directement les accents hébreux sous
les caractères latins, mais le résultat n'est pas génial en soi car les
accents sont trop petits.
Ici l'essai de mettre un « HEBREW POINT METEG = siluq » en dessous du h
de scha et en dessous du u de çouf : scֽha çoֽuf

Une autre idée serait de faire deux lignes de lyrics, une avec le texte
translittéré seul, et en dessous une en taille plus importante, avec
juste les accents en dessous d'espaces insécables.

Tu peux jouer avec Unicode ici : <http://hapax.qc.ca/conversion.fr.html>
et les accents sont là : <https://www.unicode.org/charts/PDF/U0590.pdf>.

Par exemple, avec « 73 63 5BD 68 61 » dans le cadre de gauche « numéros
de caractères en hex » ça donne « scֽha » dans le cadre de droite
« caractères », sachant que « 5BD 68 » met un siluq sous un h. Pour
un siluq sous une espace insécable, ce serait « 5BD A0 », ce qui devrait
ressembler à « _ֽ _ » sans les « _ » (il y a un bug dans Thunderbird et
SeaMonkey qui empêche d'utiliser l'espace insécable).

Cordialement,
-- 
Olivier Miakinen

---

From: Gilles Tiar <[email-masked]>
Date: Sat, 30 Jan 2021 01:30:25 -0700 (MST)

Bonjour et merci pour vos réponses,

Jean, je joins, comme tu me le demandes, mon code Lilypond et les 4 images
de mon exemple (toutes de même hauteur).
Comme je l'avais indiqué, l'image /silloukdeux.eps/ est constituée de
/sillouk.eps/ avec deux petits cercles blancs.

exode_15_4_ex.ly
<http://lilypond-french-users.1298960.n2.nabble.com/file/t23433/exode_15_4_ex.ly>  
merha.eps
<http://lilypond-french-users.1298960.n2.nabble.com/file/t23433/merha.eps>  
tipha.eps
<http://lilypond-french-users.1298960.n2.nabble.com/file/t23433/tipha.eps>  
sillouk.eps
<http://lilypond-french-users.1298960.n2.nabble.com/file/t23433/sillouk.eps>  
silloukdeux.eps
<http://lilypond-french-users.1298960.n2.nabble.com/file/t23433/silloukdeux.eps>  

Olivier,

Olivier Miakinen-3 wrote
> accents sont trop petits.

C'est ce que je fais en général, mais ici il s'agit d'un ouvrage expliquant
le fonctionnement du système des /te'amim/ (signes de cantillation
bibliques) et comme tu le remarques, les accents apparaissent trop petits
pour le lecteur inexpérimenté.

Olivier Miakinen-3 wrote
> juste les accents en dessous d'espaces insécables.

Je fais en fait quelque chose de similaire. Les signes inférieurs
apparaissent sur une même ligne, à la distance et avec la taille que je veux
(sauf que le /sillouk/ apparaît toujours avec une hauteur augmentée par
rapport aux autres signes). Exemple de code:

 Il y aura aussi les signes supérieurs qui apparaîtront selon une ligne
au-dessus des mots.

Olivier Miakinen-3 wrote
> Tu peux jouer avec Unicode ici :
> &lt;http://hapax.qc.ca/conversion.fr.html&gt;
> et les accents sont là :
> &lt;https://www.unicode.org/charts/PDF/U0590.pdf&gt;.
> 

Il y a là peut-être une piste, je m'y intéresserai si nécessaire.

Cordialement,

Gilles

---

From: Olivier Miakinen <[email-masked]>
Date: Sat, 30 Jan 2021 13:29:30 +0100

[nouvel envoi à la liste plutôt qu'en privé]

> rapport aux autres signes). Exemple de code:

L'exemple de code n'a pas marché. Mais en voici un, à partir du code de
<http://lilypond-french-users.1298960.n2.nabble.com/file/t23433/exode_15_4_ex.ly>

============================================================
merha = \markup { \lower #8 \fontsize #8 \concat {
 \char ##x00A0 \char ##x05A5 \char ##x00A0 \char ##x00A0 }
}
tipha = \markup { \lower #8 \fontsize #8 \concat {
 \char ##x00A0 \char ##x0596 \char ##x00A0 \char ##x00A0 }
}
sillouk = \markup { \lower #8 \fontsize #8 \concat {
 \char ##x00A0 \char ##x05BD \char ##x00A0 \char ##x00A0 }
}

melody = \relative do' {
  \clef "treble"
  \key do\major
  % \tempo "env. 8=132"

  \time 2/8 la'8 [la]|
  \time 3/8 fa_\merha mi_\sillouk [mi]|
  \time 2/8 sold_\tipha sold\noBeam|
  \time 3/8 fa_\merha fa [fa]|
  \time 4/8 mi_\sillouk r

  \bar "|."
}
============================================================

---

From: Gilles Tiar <[email-masked]>
Date: Sat, 30 Jan 2021 06:39:13 -0700 (MST)

Direction très intéressante, Olivier. Je garde l'idée, elle me servira sans
doute.

Le problème, pour l'heure, est que les signes (qui doivent ici apparaître
sous les mots) étant liés aux notes apparaissent au-dessus des mots.

J'ai essayé de les entrer dans les syllabes concernées, mais ça ne donne pas
le résultat souhaité, ça rajoute une syllabe à la mélodie.

Peut-être à creuser.

Merci,

Gilles

---

From: Jean Abou Samra <[email-masked]>
Date: Sat, 30 Jan 2021 15:30:49 +0100

Bonjour,

> <http://lilypond-french-users.1298960.n2.nabble.com/file/t23433/silloukdeux.eps>

Après un peu de débogage, je crois que le comportement
de LilyPond est voulu. Comme vous le dites, les images
ont les mêmes dimensions, cependant, l'image sillouk.eps
est constituée d'un rectangle noir et de vide autour, et
non pas de blanc. LilyPond, un peu trop intelligemment
peut-être, au lieu de prendre tout simplement la taille
de l'image, enlève à cette taille tout ce qu'il y a de
vide, autrement dit elle ne prend en compte que ce qui
est vraiment rempli dans la taille utilisée pour mettre
l'image à l'échelle. Comme sillouk.eps est deux fois moins
large que silloukdeux.eps de ce point de vue, le
\epsfile #X #1.1 "sillouk.eps" produit une image deux
fois plus grande que \epsfile #X #1.1 "silloukdeux.eps".
En revanche, les deux reviennent à la même taille si
vous remplacez #X par #Y.

Cela étant dit, l'idée d'Olivier d'employer les caractères
Unicode est excellente. Je joins un fichier fonctionnel
qui utilise les commandes qu'il propose.

Au passage, supprimer le Timing_translator vous épargnera
tous les \time. La barre de mesure finale n'apparaît pas
puisque vous supprimez également le Bar_engraver. Une
solution pour l'afficher sans avoir à insérer des \bar ""
se trouve ici :

https://lists.gnu.org/archive/html/lilypond-user/2021-01/msg00058.html

Cordialement,
Jean

---

From: Gilles Tiar <[email-masked]>
Date: Sat, 30 Jan 2021 07:42:51 -0700 (MST)

J'ai réussi quelque chose en suivant ton idée :

 un \lyrics sous les mots (pour les signes inférieurs) et, le moment venu,
un \lyrics au-dessus des mots pour les signes supérieurs.

ex_15_4_new.ly
<http://lilypond-french-users.1298960.n2.nabble.com/file/t23433/ex_15_4_new.ly>  

J'ai une seule petite réticence, le /sillouk/ est un peu court en hauteur,
il est de la taille des autres signes dans les Bibles conformes. Existe-t-il
un autre code ?

Merci,

Gilles

---

From: Gilles Tiar <[email-masked]>
Date: Sat, 30 Jan 2021 08:07:44 -0700 (MST)

Merci Jean,

Tes deux solutions fonctionnent. 

Pour le remplacement de #X par #Y, j'ai dû juste ajuster la taille, qui
ressort plus petite que celle des autres signes #Y #1.7
#"../images/sillouk.eps" au lieu de #X #1.1 #"../images/sillouk.eps".

Pour ta deuxième, suivant l'idée d'Olivier, les traits de soulignements sont
peut-être préférables à l'entrée de durées, comme je l'ai fait.

Je n'avais pas de solutions, j'en ai trois !

Merci encore à vous deux,

Gilles

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 30 Jan 2021 16:20:31 +0100

Une autre solution possible :
(j'ai repris les coordonnées des fichiers eps)

\version "2.21.2"
\include "italiano.ly"

\layout {
  \context {
    \Staff
\remove "Time_signature_engraver"
\remove "Bar_engraver"
}
  \context {
    \Score
\omit "BarNumber"
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/32)
}
}

\paper  {
    indent = 3\mm
    system-system-spacing.padding = 5\mm
    paper-height = 14.4\cm
    paper-width = 13.5\cm
    %line-width = 13\cm
    tagline = ##f
    last-bottom-spacing = 0
}

merha = \markup \stencil #(make-path-stencil
      '(M 3.098 2.027
        C 3.098 3.066 2.844 3.996 2.332 4.82
        C 1.848 5.605 1.34 6 0.812 6
        C 0.27 6 0 5.773 0 5.32
        C 0 5.133 0.074 4.969 0.219 4.82
        C 0.566 4.516 0.91 4.207 1.25 3.898
        C 1.711 3.34 1.941 2.617 1.941 1.727
        L 1.941 0.57
        C 1.941 0.191 2.137 0 2.527 0
        C 2.906 0 3.098 0.191 3.098 0.57
        L 3.098 2.027
        Z)
       0 .27 -.27 #t)

tipha = \markup \stencil #(make-path-stencil
      '(M 0 2.027
        C 0 3.066 0.254 3.996 0.766 4.82
        C 1.25 5.605 1.758 6 2.285 6
        C 2.824 6 3.098 5.773 3.098 5.32
        C 3.098 5.133 3.023 4.969 2.879 4.82
        C 2.531 4.516 2.188 4.207 1.848 3.898
        C 1.383 3.34 1.152 2.617 1.152 1.727
        L 1.152 0.57
        C 1.152 0.191 0.961 0 0.57 0
        C 0.191 0 0 0.191 0 0.57
        L 0 2.027
        Z)
       0 .27 -.27 #t)

sillouk = \markup \stencil #(make-path-stencil
      '(M 0 0
        L 1.418 0
        L 1.418 6
        L 0 6
        Z)
       0 .27 -.27 #t)

melody = \relative do' {
  \clef "treble"
  \key do\major
  % \tempo "env. 8=132"

  \time 2/8 la'8 [la]|
  \time 3/8 fa -\markup\merha
            %_\markup{\lower #8 \epsfile #X #1.1 #"merha.eps"}
            mi -\markup\sillouk
            %_\markup{\lower #8 \epsfile #X #.55 #"sillouk.eps"}
            [mi]|
  \time 2/8 sold-\markup\tipha
            %_\markup{\lower #8 \epsfile #X #1.1 #"tipha.eps"}
  sold\noBeam|
  \time 3/8 fa -\markup\merha
            %_\markup{\lower #8 \epsfile #X #1.1 #"merha.eps"}
  fa [fa]|
  \time 4/8 mi -\markup\sillouk
            %_\markup{\lower #8 \epsfile #X #1.1 #"silloukdeux.eps"}
  r

  \bar "|."
}

traduc = \new Lyrics \with { alignAboveContext = "staff"
   \override LyricText.font-shape = #'italic
   fontSize = #-2
}
\lyricmode {

  16l'élite8 de ses8. combattants8. se8 sont16 noyés8 dans16 la mer des
Joncs.
}

paroles = \lyricmode {

  ou -- miv -- \markup\concat{\underline  "h""ar"} scha -- li -- schav toub
-- 'ou ve -- yam çouf
}

\score {
\new Staff = "staff"
<<
\new Voice ="chant" \melody
\traduc
\new Lyrics \with {
      \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #3
    } \lyricsto "chant" \paroles

}

Cordialement,
Pierre

---

From: Olivier Miakinen <[email-masked]>
Date: Sat, 30 Jan 2021 16:26:44 +0100

> Je n'avais pas de solutions, j'en ai trois !

Et maintenant, grâce à Pierre, tu en as quatre !

---

From: Olivier Miakinen <[email-masked]>
Date: Sat, 30 Jan 2021 16:43:30 +0100

> https://lists.gnu.org/archive/html/lilypond-user/2021-01/msg00058.html

<cit.>
> merha = \markup \concat { \char ##x00A0 \char ##x05A5 \char ##x00A0 \char ##x00A0 }
> tipha = \markup \concat { \char ##x00A0 \char ##x0596 \char ##x00A0 \char ##x00A0 }
> sillouk = \markup \concat { \char ##x00A0 \char ##x05BD \char ##x00A0 \char ##x00A0 }
</cit.>

Je reprends ta version simplifiée, où le fontSize est reporté dans le
\new Lyrics.

Tout d'abord, on peut remplacer chaque espace insécable \char ##x00A0
par une espace simple " ". La raison pour laquelle j'ai mis des espaces
insécables et que j'en ai mis plusieurs, c'est que je ne comprenais pas
pourquoi ça ne marchait pas avec :
 sillouk = \markup \concat { \char ##x05BD " " }

Je viens de comprendre mon erreur. Même si en Unicode on doit mettre
l'accent *avant* le caractère, c.-à-d. U+05BD *avant* l'espace, l'hébreu
se lit de droite à gauche, et donc *avant* c'est *plus à droite* !

Du coup, ceci fonctionne et est beaucoup plus simple :

merha = \markup \concat { " " \char ##x05A5 }
tipha = \markup \concat { " " \char ##x0596 }
sillouk = \markup \concat { " " \char ##x05BD }

Cordialement,
-- 
Olivier Miakinen

---

From: Gilles Tiar <[email-masked]>
Date: Sat, 30 Jan 2021 08:46:37 -0700 (MST)

Merci Pierre.

N'en jetez plus !

En fait, ça fait même 5 solutions avec mon bricolage initial.

Cordialement à tous,

Gilles

---

From: Olivier Miakinen <[email-masked]>
Date: Sat, 30 Jan 2021 16:49:02 +0100

> sillouk = \markup \concat { " " \char ##x05BD }

Voire, pour agrandir le sillouk :

merha = \markup \concat { " " \char ##x05A5 }
tipha = \markup \concat { " " \char ##x0596 }
sillouk = \markup \larger \concat { " " \char ##x05BD }

---

From: Gilles Tiar <[email-masked]>
Date: Sat, 30 Jan 2021 08:57:12 -0700 (MST)

Merci Olivier pour la simplification de code.

J'avais fait des essais pour agrandir le /sillouk/, mais il grandit aussi en
épaisseur et on s'en rend compte visuellement.

Il faudrait lui conserver son épaisseur et augmenter sa hauteur. Je pense la
chose faisable, je ne sais pas encore comment.

Cordialement,

Gilles

---

From: Gilles Tiar <[email-masked]>
Date: Sun, 31 Jan 2021 00:40:09 -0700 (MST)

Rectification,

Après un examen à la loupe, dans les Bibles conformes le /sillouk/ est bien
un peu moins haut que les autres signes. Je n'ai donc rien à changer, juste
à utiliser les unicodes tels qu'ils sont.

Bonne journée,

Gilles