\bookpart \header instrument="abc" is printed twice

Le tag "instrument" du \header d'un \bookpart est imprimé deux fois en tête
de page.
Est-ce un bug déjà relevé ? (pas trouvé dans code.google ni dans les
archives en -- mais elles sont si vastes...)

Jean-Christophe

···

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/bookpart-header-instrument-abc-is-printed-twice-tp5280023p5280023.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

Un exemple stp.

···

Le 11 juil. 2010 à 18:54, Jean-Christophe D a écrit :

Le tag "instrument" du \header d'un \bookpart est imprimé deux fois en tête
de page.
Est-ce un bug déjà relevé ? (pas trouvé dans code.google ni dans les
archives en -- mais elles sont si vastes...)

Un exemple stp.

Voici :

···

\book {
  \paper{
    print-all-headers=##t
  }
  \header {
  dedication = "BOOK dedication"
  title = "BOOK title"
  subtitle = "BOOK subtitle"
  subsubtitle = "BOOK subsubtitle"
  instrument = "BOOK instrument"
  poet = "BOOK poet"
  meter = "BOOK meter"
  piece = "BOOK piece"
  composer = "BOOK composer"
  arranger = "BOOK arranger"
  opus = "BOOK opus"

  copyright = "copyright"
  tagline = "tagline"
  }
  \bookpart { \markup \column { \line { " " } } }

  \bookpart {
  \header {
  dedication = "BOOKPART 1 dedication"
  title = "BOOKPART 1 title"
  subtitle = "BOOKPART 1 subtitle"
  subsubtitle = "BOOKPART 1 subsubtitle"
  instrument = "BOOKPART 1 instrument"
  poet = "BOOKPART 1 poet"
  meter = "BOOKPART 1 meter"
  piece = "BOOKPART 1 piece"
  composer = "BOOKPART 1 composer"
  arranger = "BOOKPART 1 arranger"
  opus = "BOOKPART 1 opus"
  }
  \markup { \vspace #1 }
    \score {
      { c'1 }
  \header {
    dedication = "SCORE a1 dedication"
    title = "SCORE a1 title"
    subtitle = "SCORE a1 subtitle"
    subsubtitle = "SCORE a1 subsubtitle"
    instrument = "SCORE a1 instrument"
    poet = "SCORE a1 poet"
    meter = "SCORE a1 meter"
    piece = "SCORE a1 piece"
    composer = "SCORE a1 composer"
    arranger = "SCORE a1 arranger"
    opus = "SCORE a1 opus"
  }
    }
  \markup { \vspace #1 }
    \score {
      { c'2 }
  \header {
    dedication = "SCORE a2 dedication"
    title = "SCORE a2 title"
    subtitle = "SCORE a2 subtitle"
    subsubtitle = "SCORE a2 subsubtitle"
    instrument = "SCORE a2 instrument"
    poet = "SCORE a2 poet"
    meter = "SCORE a2 meter"
    piece = "SCORE a2 piece"
    composer = "SCORE a2 composer"
    arranger = "SCORE a2 arranger"
    opus = "SCORE a2 opus"
  }
    }
  }

  \bookpart {
  \header {
  dedication = "BOOKPART 2 dedication"
  title = "BOOKPART 2 title"
  subtitle = "BOOKPART 2 subtitle"
  subsubtitle = "BOOKPART 2 subsubtitle"
  instrument = "BOOKPART 2 instrument"
  poet = "BOOKPART 2 poet"
  meter = "BOOKPART 2 meter"
  piece = "BOOKPART 2 piece"
  composer = "BOOKPART 2 composer"
  arranger = "BOOKPART 2 arranger"
  opus = "BOOKPART 2 opus"
  }
  \markup { \vspace #1 }
    \score {
      { c'1 }
  \header {
    dedication = "SCORE b1 dedication"
    title = "SCORE b1 title"
    subtitle = "SCORE b1 subtitle"
    subsubtitle = "SCORE b1 subsubtitle"
    instrument = "SCORE b1 instrument"
    poet = "SCORE b1 poet"
    meter = "SCORE b1 meter"
    piece = "SCORE b1 piece"
    composer = "SCORE b1 composer"
    arranger = "SCORE b1 arranger"
    opus = "SCORE b1 opus"
  }
    }
  \markup { \vspace #1 }
    \score {
      { c'2 }
  \header {
    dedication = "SCORE b2 dedication"
    title = "SCORE b2 title"
    subtitle = "SCORE b2 subtitle"
    subsubtitle = "SCORE b2 subsubtitle"
    instrument = "SCORE b2 instrument"
    poet = "SCORE b2 poet"
    meter = "SCORE b2 meter"
    piece = "SCORE b2 piece"
    composer = "SCORE b2 composer"
    arranger = "SCORE b2 arranger"
    opus = "SCORE b2 opus"
  }
    }
  }
}

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/bookpart-header-instrument-abc-is-printed-twice-tp5280023p5280952.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

Bonsoir !

C'est dû au fait que "instrument" est imprimé _en haut de chaque page_
sauf pour la première page.

  \on-the-fly #not-first-page

ne considère que la "toute première page" (i.e. la page numéro 1) et ne
fait pas de distinction particulière en ce qui concerne les "premières
pages de \bookpart".

Ce sujet a déjà été abordé ici et sur la liste internationale.
Il me semble même que quelqu'un avait proposé une "fonction" (un bout
de code) qui permettait de vérifier qu'on n'était pas à la première
page d'un \bookpart .

Mais malheureusement je ne retrouve plus les fils de discussions là
dessus.

Je pense qu'en effectuant une recherche dans les archives avec des
mots-clés comme "bookpart" "page number" "instrument", il doit y avoir
moyen de les retrouver.

Cela dit, je pense qu'une *demande officielle* pour régler ce problème
de "première page de \bookpart" serait une bonne idée.

Cordialement,
Xavier

···

2010/7/11 Jean-Christophe D <****@****>:

Voici :

[...]

--
Xavier Scheuer <****@****>

Le nom de l'instrument est affiché dans le titre, et dans l'en-tête de
la page (excepté la première page du bouquin, par défaut).

Pour éviter le "BOOKPART 1 instrument" sur la première page du bookpart
(où le titre du bookpart est également imprimé), il faut changer le markup
utilisé pour dessiner les entêtes de page. Une possibilité, qui consiste à
traiter la première page d'un bookpart de la même façon que la première page
du bouquin :

bookpart-title.ly (1.49 KB)

···

Le 11 juil. 2010 à 23:50, Jean-Christophe D a écrit :

Un exemple stp.

Voici :

[...]

Bon, en fait j'ai retrouvé une partie de ce dont je parlais.

Il n'existe pas de "not-first-bookpart-page", comme j'en discutais ici
http://lilypond-french-users.1298960.n2.nabble.com/plusieurs-titres-header-title-dans-le-meme-fichier-tp5090574p5091855.html

Cependant la "pseudo-solution" donnée par Céladon dans le même fil,
i.e. utiliser
  \on-the-fly #print-page-number-check-first
pour _ne pas imprimer_ sur la première page de chaque bookpart
NE FONCTIONNE PLUS depuis que le bug 715 a été corrigé (par Nicolas?).

Il reste donc se décider si les premières pages des \bookpart
  1. doivent avoir un numéro de page ;
  2. doivent avoir le "instrument" imprimé au dessus.

Et à éventuellement demander une modification de comportement en
conséquence.

Cordialement,
Xavier

···

--
Xavier Scheuer <****@****>

Rhaa, il semblerait que Nicolas ait répondu dans le temps où je
rédigeais mon second message ! ;-p

2010/7/12 Nicolas Sceaux <****@****> :

Le nom de l'instrument est affiché dans le titre, et dans l'en-tête
de la page (excepté la première page du bouquin, par défaut).

Pour éviter le "BOOKPART 1 instrument" sur la première page du
bookpart (où le titre du bookpart est également imprimé), il faut
changer le markup utilisé pour dessiner les entêtes de page.
Une possibilité, qui consiste à traiter la première page d'un bookpart
de la même façon que la première page du bouquin :

Waouw !
Ton #not-part-first-page a l'air de correspondre à mon
"not-first-bookpart-page" (sauf que moi je n'ai pas su le définir en
Scheme). ;-D
Bravo !

Je considère que ce n'est pas vraiment un bug, dans la mesure où
\bookpart n'est pas utilisé uniquement pour structurer un bouquin,
mais peut aussi l'être pour faciliter la calcul des sauts de page
(je l'ai implémenté pour cela à l'origine). Dans ce second cas, où
on n'aura pas forcément de titre au début du bookpart, on ne veut
surtout pas que l'entête de page change par rapport aux autres pages,
et supprimer le nom d'instrument.

Oui mais non !
Dans ce cas je trouve que le nom "bookpart", de même que la possibilité
de définir un "header complet" (avec "title", "subtitle", ...) laisse à
penser que le but (unique) de \bookpart est de structurer un bouquin.

Pourquoi ne pas changer \bookpart dans ce sens (similaire à \chapter en
LaTeX : pas de numéro de page, ni de "instrument") et *imaginer* une
autre "subdivision" entre \bookpart et \score pour gérer les sauts de
pages, entre 2 mouvements d'une symphonie par exemple ?

Il me semble que Kieren avat fait une proposition en ce sens.
Qu'est-ce que tu en penses ?

Cordialement,
Xavier

···

--
Xavier Scheuer <****@****>

Je considère que ce n'est pas vraiment un bug, dans la mesure où
\bookpart n'est pas utilisé uniquement pour structurer un bouquin,
mais peut aussi l'être pour faciliter la calcul des sauts de page
(je l'ai implémenté pour cela à l'origine). Dans ce second cas, où
on n'aura pas forcément de titre au début du bookpart, on ne veut
surtout pas que l'entête de page change par rapport aux autres pages,
et supprimer le nom d'instrument.

Oui mais non !
Dans ce cas je trouve que le nom "bookpart", de même que la possibilité
de définir un "header complet" (avec "title", "subtitle", ...) laisse à
penser que le but (unique) de \bookpart est de structurer un bouquin.

Non. C'est une possibilité qui est donnée bien entendu. Mais la
motivation première est de faciliter le calcul des sauts de pages.
Dès lors qu'on travaille sur une partition d'un nombre conséquent de
pages, c'est tout simplement obligatoire, le temps de calcul des
sauts de lignes et de page n'étant pas linéaire de la taille de la
partition. Je n'ai pas bien (pas du tout) documenté cet aspect en
effet.

Pourquoi ne pas changer \bookpart dans ce sens (similaire à \chapter en
LaTeX : pas de numéro de page, ni de "instrument") et *imaginer* une
autre "subdivision" entre \bookpart et \score pour gérer les sauts de
pages, entre 2 mouvements d'une symphonie par exemple ?

Pourquoi pas...
Je pensais à une autre solution, à savoir indiquer dans le \paper du
bookpart quel type de page header on veut (avec numéro et instrument
sur sa première page ou non), par le biais d'une variable du même
genre que le print-all-headers.

J'avais fait une proposition dans ce sens dans le bug report #715
mais je n'avais pas obtenu d'avis, peut-être parce que la fonctionnalité
était trop jeune à l'époque :

  I propose the following regarding page numbering with bookparts:
  - the default behavior is to use continuous page numbering across book
    parts. Only the first page number of the first part is not printed;
  - when some \paper variable, say use-bookpart-page-numbers, is true, then
    each bookpart use first-page-number for is first page number, and the
    first page number is not printed for all bookparts.
  - possibly, a \paper variable would turn of printing of the first page
    numbers for all bookparts, even when using continuous numbering (ie the
    current behavior), as it also make sense not to print the page number at
    the start of a new chapter.

Ca me semble être le plus souple. Quoiqu'il en soit, ça mérite sans doute une
discussion sur -user.

Nicolas

···

Le 12 juil. 2010 à 01:11, Xavier Scheuer a écrit :