lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Description erronée de la commande book


From: Ben
Subject: Re: Description erronée de la commande book
Date: Sat, 11 Mar 2023 14:32:03 +0100

Bonjour Jean, 

Merci pour votre réponse. 

Je faisais allusion à ce texte:

"Lorsqu’un fichier ne comprend qu’un bloc \score, celui-ci est implicitement inclus dans un bloc \book. Le bloc \book d’un fichier source permet la production d’au moins un fichier dont le nom sera, par d ́efaut, d ́eduit du fichier source : le traitement de fandangopourelephants.ly produira donc fandangopourelephants.pdf. " 

et combiné au nom "\bookpart", qui laisserait entendre qu'un \book peut avoir plusieurs \bookpart, alors qu'en fait le \bookpart est au final indépendant du \book. 


Une possibilité serait de mettre tout le \bookpart dans une variable et d'avoir cela: 

\book
{
\bookpart { \ViolonIMouvementI }
\bookpart { \ViolonIMouvementII }
\bookpart { \ViolonIMouvementIII }
}

Sauf que j'ai des "book conceptuels" qui contiennent facilement une centaine de \bookpart, les bookpart se partagent les mêmes structures de header / paper / layout, etc, d'où la grande utilité de ne changer que quelques variables entre chaque bookpart au lieu de réécrire cent fois la même page de code.

Pour ces gros books conceptuels, j'ai pris le temps de développer des scripts shell et python, qui utilisent même une compilation optionnelle via un \include. 


Pour le quatuor, j'ai trouvé plus rapide et plus pratique de tout mettre dans un seul fichier pdf, cela fait juste un peu bizarre d'avoir des parties qui commencent aux pages 28, 38, etc. (vu qu'on ne peut pas non plus facilement redéfinir les numéros de page), mais cela permet aussi une table des matières sur le tout, c'est donc un compromis que je trouve acceptable.

Au plaisir, 

Ben






Le 11 mars 2023 à 13:22, Jean Abou Samra <jean@abou-samra.fr> a écrit :

Le samedi 11 mars 2023 à 09:29 +0100, Ben a écrit :

Bonjour, 

Je profite de la liste pour relever une incongruité de la commande \book qui m'a toujours laissé perplexe: 

Dans la doc, il est dit que lorsqu'on ne met pas de commande \book, celle-ci est implicite au fichier. 

Or, cela n'est pas correct, car le code suivant fonctionne, et c'est heureux, car sinon je serais très embêté:

\version "2.25.1"

\bookpart{ \markup "coucou" }

test = "forêt"

\bookpart{ \markup "hibou" }

Mais si j'indique explicitement le book, cela ne fonctionne plus:

\version "2.25.1"

\book { \bookpart{ \markup "coucou" }

test = "forêt"

\bookpart{ \markup "hibou" } }

Ce qui fait qu'au lieu de pouvoir compiler facilement plusieurs book en lilypond avec cette instruction: 

\version "2.25.1"

\book{  \bookOutputName "Violon 1" \include "ViolonI.ly"  }

\book{  \bookOutputName "Violon 2" \include "ViolonII.ly"  }

Je dois passer par des shell scripts, ce qui rajoute toute une couche de complexité. 

Cette différence de comportement entre le \book implicite et le \book explicite n'est pas cohérente, elle devrait au moins être précisée dans la doc, ou mieux encore, le \book explicite devrait simplement fonctionner comme le \book implicite. 

Il y a plusieurs sections de la documentation qui parlent de structure des fichiers .ly, laquelle induit en erreur selon vous ?

Je peux comprendre votre point de vue... mais le mien est complètement différent, je n'aurais même pas pensé à mettre tout le contenu entier du fichier dans \book { ... }. Il y a bel et bien création d'un book implicite, simplement c'est à un niveau plus « conceptuel » que le niveau purement syntaxique. \book est une commande qui crée un book à partir des éléments qu'il y a à l'intérieur : expressions musicales, markups, bookparts, scores, blocs paper. Et s'il n'y a aucun \book, LilyPond en crée un à partir des « éléments qu'il y a à l'intérieur du fichier » : expressions musicales, markups, bookparts, scores (les blocs \paper, c'est une autre histoire). Remarquez que les affectations ne sont pas la seule chose qui devrait marcher à l'intérieur d'un \book pour faire fonctionner votre code \book { \include "ViolonI.ly" } : il y aurait aussi notamment les blocs \layout (certes, c'est assez dommage que \layout ne puisse pas se mettre dans un \book, il y a eu encore récemment des discussions à ce sujet et j'ai bon espoir que ça change).

Est-ce que vous ne pouvez pas vous en sortir en mettant le \book autour de la musique à l'intérieur des fichiers ViolonI.ly et ViolonII.ly ?

Cordialement,

Jean



reply via email to

[Prev in Thread] Current Thread [Next in Thread]