Autor Thema: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?  (Gelesen 4544 mal)

Manuela

  • Gast
Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« am: Montag, 26. September 2016, 09:47 »
Hi, ich bin noch immer bei meiner Liedersammlung.

Das Inhaltsverzeichnis bereitet mir Kopfzerbrechen, der Seitenumbruch erfolgt früher als beim Rest der Lieder, es scheint so, als ob das Seitenlayout anders ist als beim Rest des Dokuments. Ich füge mal als Beispiel einen Teil des erzeugten PDFs ein  (komplettes Inhaltsverzeichnis plus ein paar Lieder) sowie die ly-Dateien. Es kompiliert nur die Datei "__Header.ly", wenn sich die anderen Lieder aus der ZIP-Datei im gleichen Verzeichnis befinden (ich hoffe, ich habe bei der Aufbereitung keinen Fehler gemacht)

harm6

  • Gast
Re: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« Antwort #1 am: Montag, 26. September 2016, 10:50 »
Zitat
Das Inhaltsverzeichnis bereitet mir Kopfzerbrechen, der Seitenumbruch erfolgt früher als beim Rest der Lieder, es scheint so, als ob das Seitenlayout anders ist als beim Rest des Dokuments.

Das Seitenlayout ist nicht anders. Aber das Inhaltsverzeichnis ist eine markuplist. LilyPond versucht allerdings eine gleichmäßige Aufteilung auf mehrere Seiten.
Beim Inhalstsverzeichnis ist das in der Regel unerwünscht.

Ich würde das Inhaltserzeichnis in einen eigenen bookpart setzen und im bookpart
ragged-last-bottom = ##t
evtl auch page-count


Folgendes minimal hat ragged-last-bottom = ##f und die Zeilen sind über zwei Seiten verteilt.
Ändere auf ##t und beobachte was passiert.
Ohne es mit Deinen files ausprobiert zu haben erwarte ich dort den gleichen Effekt.

\bookpart {
   \paper { ragged-last-bottom = ##f }
   $(make-list 120 "xy")
}


Gruß,
  Harm

Manuela

  • Gast
Re: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« Antwort #2 am: Montag, 26. September 2016, 12:12 »
Danke, Harm.
Inzwischen habe ich sogar herausgefunden, wie man das Inhaltsverzeichnis in einen eigenen Bookpart setzt  ;)

Inhaltsverzeichnis seitlich enger

Manuela

  • Gast
Re: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« Antwort #3 am: Montag, 26. September 2016, 16:30 »
Harm, das funktioniert leider nicht, zumindest nicht mit dem Inhaltsverzeichnis.

Ich habe ein Beispiel zusammengestellt, leider nicht unbedingt minimal (muss jetzt dringend weg)
« Letzte Änderung: Montag, 26. September 2016, 17:02 von Manuela »

Manuela

  • Gast
Re: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« Antwort #4 am: Montag, 26. September 2016, 22:51 »
Ich habe jetzt in einer Brachialaktion das Papierformat des Inhaltsverzeichnisses auf 20" Höhe gesetzt

#(set! paper-alist (cons '("mein Format" . (cons (* 8.27 in) (* 20 in))) paper-alist))
\bookpart {
  \paper {
    #(set-paper-size "mein Format")
    %right-margin =3.5\cm %rechter Rand
    left-margin = 3.5\cm %linker Rand
    top-margin = 20\mm
    bottom-margin = 35\mm
    annotate-spacing = ##f
    #(define page-breaking ly:minimal-breaking)
    print-page-number = ##f
    %\override #'(font-size . -3)
    last-bottom-spacing  = #'((basic-distance . 12)
                              (padding . 4)
                              (minimum-distance . 10)
                              (stretchability . 60))
  }


  \markuplist
  \table-of-contents
  \pageBreak
  \markuplist \index
  \indexSection #"#" \markup { " " }
}

Die tatsächliche Seitenhöhe ist zwar noch immer A4, aber das Verzeichnis geht bis zum unteren Rand.
« Letzte Änderung: Montag, 26. September 2016, 22:58 von Manuela »

harm6

  • Gast
Re: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« Antwort #5 am: Dienstag, 27. September 2016, 00:49 »
Hallo Manuela,

ich hatte nur kurz Zeit durch Deine files zu schauen, aber es gibt dort dermaßen viele Setzungen, daß ich denke es gibt sich widersprechende/ausschließende Setzungen. Ich zumindest habe nach kurzer jeglichen Überblick verloren...
Allerdings denke ich nach wie vor, daß ragged-last-bottom = ##t der Weg zum Ziel ist.
Siehe auch folgendes Beispiel, in dem zu einem minimal einfach weitere tocItems hinzugesetzt werden (um die korrekte Seitenzahl hab' ich mich nicht gekümmert, deshalb erscheint immer "?")

#(define (add-more-tocs i)
  (set! toc-items
     (lambda ()
       (map
         (lambda (nmbr)
           `(,(string->symbol (format #f "toc~a" nmbr)) tocItemMarkup "foo"))
         (iota i 99 1)))))

\bookpart {
  \paper {
    ragged-last-bottom = ##t
  }
  \markuplist \table-of-contents
}


\score {
  {
    #(add-more-tocs 110)
    c'1
  }
}

Du solltest wohl alle paper-Setzungen auskommentieren und mit einem score anfangen, um das Problem zu finden.
Viel Arbeit, ich weiß...

Gruß,
  Harm

Manuela

  • Gast
Re: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« Antwort #6 am: Dienstag, 27. September 2016, 05:29 »
ich hatte nur kurz Zeit durch Deine files zu schauen, aber es gibt dort dermaßen viele Setzungen, daß ich denke es gibt sich widersprechende/ausschließende Setzungen. Ich zumindest habe nach kurzer jeglichen Überblick verloren...
Allerdings denke ich nach wie vor, daß ragged-last-bottom = ##t der Weg zum Ziel ist.
Siehe auch folgendes Beispiel, in dem zu einem minimal einfach weitere tocItems hinzugesetzt werden (um die korrekte Seitenzahl hab' ich mich nicht gekümmert, deshalb erscheint immer "?")


Danke Harm, es scheint, dass ich ganz von vorne beginnen muss.
Zum Glück habe ich die Formatierung in einem eigenen File.

Manuela

  • Gast
Re: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« Antwort #7 am: Dienstag, 27. September 2016, 05:42 »
Du hast recht, das hängt irgendwie mit diesen Einstellungen zusammen:

  %% Abstand von Liedtext zu nachfolgender Überschrift
  markup-markup-spacing  = #'((basic-distance . 12)
                              (minimum-distance . 5)
                              (padding . 5)
                              (stretchability . 0))

  %% Abstand des Textes nach den Noten
  score-markup-spacing  = #'((basic-distance . 3)
                             (minimum-distance . 15)
                             (padding . 5)
                             (stretchability . 0))
  %% Abstand vom oberen Seitenrand
  top-markup-spacing  = #'((basic-distance . 0)
                           (minimum-distance . 0)
                           (padding . 0)
                           (stretchability . 0))
  top-system-spacing  = #'((basic-distance . 0)
                           (minimum-distance . 4)
                           (padding . 0)
                           (stretchability . 0))
  markup-system-spacing  = #'((basic-distance . 3)
                              (minimum-distance . 8)
                              (padding . 0)
                              (stretchability . 0))
  last-bottom-spacing  = #'((basic-distance . 8)
                            (padding . 0)
                            (stretchability . 0))

Jetzt muss ich nur rausfinden, wie.

harm6

  • Gast
Re: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« Antwort #8 am: Dienstag, 27. September 2016, 10:28 »
Für einen bookpart der nur das Inhaltsverzeichnis umfaßt sind die meisten spacings doch sowieso überflüssig. Verwende dort nur was Du wirklich haben willst.
Du hast auch stretchability überall auf null gesetzt. Und nimmst LilyPond damit einen großen Teil der Flexibilität, wohl um auf Deinen Angaben zu bestehen. Allerdings wundert es nicht wenn LilyPond das dann auch macht ;)

Also, ins paper für das file gehören nur die Sachen die für alle books eines files gelten sollen.
Ins book-paper gehören nur die Sachen, die für das ganze book gelten sollen.
Ins bookpart-paper gehören nur die Sachen, die für diesen bookpart gelten sollen.
Einzelne score-Setzungen ins score-layout.

Entsprechendes gilt natürlich fürs file/book/bookpart/score-layout.

Gruß,
  Harm

Manuela

  • Gast
Re: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« Antwort #9 am: Dienstag, 27. September 2016, 10:44 »
Danke Harm für deine Mühe.

Ich muss die komplette Ausgabe neu sortieren (ist irgendwie "historisch" gewachsen und daher nicht ganz durchdacht) und melde mich dann wieder.

Manuela

  • Gast
Inzwischen bin ich der Verzweiflung nahe
« Antwort #10 am: Dienstag, 27. September 2016, 16:06 »
Jetzt funktioniert zwar das Inhaltsverzeichis, aber sonst nichts.

Ein Minimalbeispiel:

\version "2.19.37"

\bookpart {
  \paper {
    line-width = 150\mm
  }
  \include "test.ly"
}

%%%%% test.ly

firstvoice =
\relative c' {
  \key g \major
  c c c
  \bar "|."
}
#'()
\relative c'' \firstvoice

liefert die Fehlermeldung

G:/Lilypond/_Liederheft/Forum/test.ly:3:1: Fehler: syntax error, unexpected STRING

firstvoice =
G:/Lilypond/_Liederheft/Forum/test.ly:12:15: Fehler: Ungültige Fluchtsequenz: »\firstvoice«
\relative c''
              \firstvoice
G:/Lilypond/_Liederheft/Forum/test.ly:12:15: Fehler: falscher Typ für Argument 2; music erwartet, "firstvoice" gefunden

Schreibe ich die Includedatei um, so kompiliert der Code

#(define firstvoice #{
\relative c' {
  \key g \major
  c c c
  \bar "|."
 } #} )

#'()
\relative c'' \firstvoice

Das Problem ist jetzt natürlich, dass ich schon ca. 70 Dateien habe, wo ich in jeder 4-5 Variable auf diese Art umschreiben müsste. Gibt es einen einfacheren Weg?

harm6

  • Gast
Re: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« Antwort #11 am: Dienstag, 27. September 2016, 22:47 »
pseudocode:

\bookpart {
#(define <whatever>)
...
}

birgt ein Problem. Ich hab' aber vergessen welches :(
Auf jeden Fall würde ich das lassen.

Der sicherste Weg wäre Deine Lieder in einzelne files abzulegen in denen ausschließlich Variablen definiert sind.
Im master-file werden sie dann via include eingebunden.
Im eigentlichen book(part) dann aufgerufen.
Die einzelnen bookparts können dann problemlos eigene Setzungen haben.


Nichtsdestotrotz im Anhang eine minimal-invasive Korrektur Deiner files. Hier verlasse ich mich aber auf bestimmte LilyPond-Automatismen, das kann auch schon mal in die Hose gehen...

Gruß,
  Harm

Manuela

  • Gast
Re: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« Antwort #12 am: Mittwoch, 28. September 2016, 07:03 »
Wieder einmal danke Harm  :)

pseudocode:

\bookpart {
#(define <whatever>)
...
}

birgt ein Problem. Ich hab' aber vergessen welches :(
Auf jeden Fall würde ich das lassen.

Scheint ein älteres Problem zu sein, ich glaube, über genau das gleiche wird hier diskutiert

making a book with LilyPond
Re: \bookpart and the "\include trouble"
variables in \book { }

Das bedeutet, dass in diesem Fall der Fehler nicht vor dem Bildschirm sitzt, oder täusche ich mich?
« Letzte Änderung: Mittwoch, 28. September 2016, 07:05 von Manuela »

harm6

  • Gast
Re: Inhaltsverzeichnis hat andere Seitengröße als der Rest -wieso?
« Antwort #13 am: Mittwoch, 28. September 2016, 11:51 »
Dieser thread variables in \book { } diskutiert das Problem, und, ja, an diese Diskussion hatte ich nur noch eine schwache Erinnerung. ;)
Danke für die Mühe ihn rausgesucht zu haben.

Zur Illustration:

music = \relative c' { c4 d e f }

\bookpart {
#(define music #{ \transpose c cis \music #})
\new Staff \music
}

\bookpart {
\new Staff \music
}

Welchen Inhalt soll "music" im zweiten bookpart haben?

Tatsächlich wird die transponierte Fassung genommen, denn faktisch ist die Definition im ersten bookpart eine auf toplevel-Niveau.

Allerdings gibt es ja die Möglichkeit in book(parts) eigene papers zu setzen, inwieweit es problematisch wäre diese Möglichkeit auch auf andere Typen von Setzungen auszudehnen, ist meinem Gefühl nach jedoch nicht völlig ausdiskutiert.

Gruß,
  Harm