Subject: Intégrer les caractères de Lilypond dans LaTeX

From: flup <[email-masked]>
Date: Sun, 27 Dec 2009 02:08:39 -0800 (PST)

Bonjour,

Je travaille actuellement sur un package LaTeX permettant d'utiliser les
caractères de Lilypond dans un document LaTeX. Non pas en tant
qu'illustration (comme avec Lilypond-book), mais en tant que caractère (ou
chaîne de caractères) à part entière.

La nécessité s'est fait sentir lors de la rédaction d'un aide-mémoire de
théorie pour mes élèves; pas de problème pour les extraits de partitions,
mais bien pour les symboles pris isolément (nuances, signes spéciaux genre
coda, segno etc). À moins d'être intégrés comme minuscules graphiques, mais
c'est assez lourd.

Je me suis basé sur le package "
http://www.ctan.org/tex-archive/macros/latex/contrib/harmony/ harmony "
(disponible dans les distributions TeXLive). Ce dernier faisait appel à
quelques commandes de MusicTeX. Vu la lourdeur de MusicTeX, j'ai donc
récupéré les polices de Lilypond et adapté le code à ces polices.

Le problème principal est que tout ça est excessivement empirique: je n'y
connais pas grand chose en packages LaTeX ni en polices Unix (encore moins
la façon dont LaTeX gère tout ça).

Au-delà des symboles eux-même, j'ai repris l'idée réalisée dans le package
harmony: les chiffres de mesure. Il est donc possible d'afficher les
chiffres de mesures (même en "rythmes bulgares") de cette façon:
http://n2.nabble.com/file/n4220131/mesure.png 

Bref, c'est un travail en progrès, mais je me permets malgré tout de vous
parler de l'état de la chose.

Avant de soumettre la chose à vos tests (pour ceux que ça intéresse), je
dois installer la chose sur une machine avec une install LaTeX "de base",
histoire de voir quels sont réellement les fichiers à placer dans
l'arborescence LaTeX.

Actuellement, en dehors du package lui-même, j'ai placé dans l'arborescence
LaTeX les fichiers .mf (trouvés dans les sources de Lilypond) et les
fichiers Type1 .pfb, les fichiers .pk et .tmf étant générés lors de la
compilation d'un document.

Tout ça devra bien évidemment être modifié en fonction des évolutions des
polices Feta.

Pour terminer, une autre application: la combinaison des caractères Feta
(pour créer les figures de notes) et du package pgf (permettant de faire
divers dessins, dont des arbres hiérarchiques dans LaTeX):
http://n2.nabble.com/file/n4220131/notes.png 

-- 
View this message in context: http://n2.nabble.com/Integrer-les-caracteres-de-Lilypond-dans-LaTeX-tp4220131p4220131.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Xavier Scheuer <[email-masked]>
Date: Sun, 27 Dec 2009 18:31:12 +0100

Le Sun, 27 Dec 2009 02:08:39 -0800 (PST),
flup <[email-masked]> a écrit :

> Bonjour,
> 
> Je travaille actuellement sur un package LaTeX permettant d'utiliser
> les caractères de Lilypond dans un document LaTeX. Non pas en tant
> qu'illustration (comme avec Lilypond-book), mais en tant que
> caractère (ou chaîne de caractères) à part entière.

Merci beaucoup et bonne continuation.  :-)

-- 
Xavier Scheuer <[email-masked]>

---

From: John Mandereau <[email-masked]>
Date: Mon, 28 Dec 2009 01:16:08 +0100

> chaîne de caractères) à part entière.

Ceci a déjà en quelque sorte existé, non pas en tant que paquet LaTeX
mais comme simples définitions TeX, dans les versions 2.2 et 2.4, puis a
cessé de bien fonctionner lorsque LilyPond a recouru à une sortie
PostScript directe au lieu de passer par TeX (depuis la version 2.6), et
enfin a été peu à peu supprimé dans les versions 2.7 à 2.11.  En fait,
ça n'a jamais été conçu pour l'utilisateur final, comme les bidouillages
tels que
http://lists.gnu.org/archive/html/lilypond-user/2005-02/msg00226.html
proposés en réponse aux utilisateurs peuvent le laisser penser, mais
cette fonctionnalité était une conséquence fortuite de l'utilisation de
TeX comme intermédiaire pour produire une partition en PostScript/PDF.

> coda, segno etc). À moins d'être intégrés comme minuscules graphiques, mais

En effet.  Merci de te préoccuper de cette fonctionnalité qui a été
demandée environ une fois par an sur la liste anglohpone des
utilisateurs -- ce qui veut dire que la demande n'est pas négligeable. 

> récupéré les polices de Lilypond et adapté le code à ces polices.

Je ne sais pas ce que tu as fait, mais il y a (ou plutôt il y avait,
mais ça se ressucite facilement) du code pour générer des noms de
glyphes, je l'ai regénéré au cas où ça puisse servir, mais ce n'est pas
la panacée : les définitions de noms de glyphes avec des tirets dans
feta-braces.tex ne plaisent pas à pdfLaTeX, par exemple.  Plus
généralement on ne devrait pas avoir besoin de ces fichiers mais on
devrait plutôt recourir directement aux noms des glyphes définis dans
les encodages (fichiers .enc, dont pdfTeX a de toute façon besoin), mais
je ne sais pas comment on fait cela avec TeX ou pdfTeX.  Y a-t-il un
TeXpert sur la liste ? :-D

> la façon dont LaTeX gère tout ça).

Unix a peu à voir dans cette histoire.  C'est kpathsee et ses avatars
qui s'occupent de trouver les fichiers TeX/LaTeX au bon endroit, le
mieux est d'installer les fichiers dans une des arborescences Texmf
locale (pas celle contenant les fichiers de ta distribution TeX et qui
seront effacés ou deviendront inutilisés à la prochaine mise à jour de
ta distribution TeX) indiquée par "kpsepath tex", "kpsepath mf",
"kpsepath pk" etc.  Cependant, je n'y connais pas grand chose, mais
comme ça m'intéresse vraiment, j'ai expérimenté plusieurs heures
aujourd'hui, donc si ta distribution TeX est aussi TeXlive, en
décompressant l'archive
http://john.mandereau.free.fr/lilypond-fonts-texmf.tar.bz2
dans une de tes arborescences Texmf (disons TEXMF), et en invoquant

updmap-sys --enable Map=TEXMF/fonts/map/dvips/lilypond/lilypond.map

tu devrais avoir toutes les polices LilyPond accessibles depuis
TeX/pdfTeX.  Avec une distribution autre que TeXlive (c'est-à-dire
MikTeX, à moins qu'il n'existe une autre distribution TeX active sur
MacOS ou un OS peu courant ?), ça peut se passer un peu différemment au
niveau de la prise en compte du fichier .map, et il faut peut-être
refaire un hachage du contenu des arbres Texmf (texhash ou équivalent).
Chez moi j'ai pris TEXMF=$HOME/texmf.

> http://n2.nabble.com/file/n4220131/mesure.png 

Ça me fait penser qu'il existe des exemples LSR qui permettent de graver
avec beaucoup d'\overrides de tels chiffrages composés (et que ça serait
bien qu'on propose ça en standard dans LilyPond avec une jolie syntaxe).
Cependant, ça n'a pas grand chose à voir au niveau de la réalisation
technique, puisque dans ton cas ça s'écrit en TeX/LaTeX et dans LilyPond
ça s'écrit en markup Scheme.

> compilation d'un document.

Les sources .mf ne sont pas nécessaires pour pdfTeX ; les fichiers .pk
sont des polices bitmap, donc à éviter pour un meilleur rendu : en
zoomant le PDF compilé à partir du fichier LaTeX de test (c'est un
affreux mélange de TeX pur et de LaTeX, ne le prends surtout pas comme
exemple pour écrire ton paquet LaTeX), on voit clairement que les
symboles de la police feta26 font partie d'une police bitmap, ce qui est
normal puisque que le fichier fonts/map/dvips/lilypond/lilypond.map que
j'ai écrit est très incomplet, en particulier il ne déclare pas feta26.

> Tout ça devra bien évidemment être modifié en fonction des évolutions des

À part l'ajout ponctuel de symboles et le redressement en cours de la
clé de sol, la police Feta évolue peu. Par contre, ce serait super si ça
pouvait fonctionner avec d'autres polices compatibles LilyPond, par
exemple Gonville ; ce ne sera bien sûr qu'une cerise sur le gâteau.

En tout cas, comme les polices sont compilées directement dans LilyPond
et que le système de compilation peut facilement produire des noms de
glyphes pour TeX/LaTeX, si tu es d'accord pour que ton paquet soit en
licence GPLv3+ (ou une autre licence libre que les développeurs de Lily
acceptent), nous pourrons l'inclure dans LilyPond (en tout cas
j'appuierai dans ce sens), avec des cibles de makefiles (ou plutôt
scripts Waf) spéciales pour produire un paquet LaTeX qui se suffit à
lui-même (c'est-à-dire incluant les polices) ou installer directement le
paquet dans une arborescence Texmf. 

> http://n2.nabble.com/file/n4220131/notes.png 

Chouette ; tu as obtenu les notes avec des extraits ly compilés via
lilypond-book ?

Envoie-nous vite ton paquet LaTeX, même en cours de développement.

Salutations lilyesques,
John