Neueste Beiträge

#91
Fragen und Probleme aller Art / Antw:Seitennummer nach Inhalts...
Letzter Beitrag von martinmagtenor - Sonntag, 1. Dezember 2024, 12:13
Ich habe nun eine für mich taugliche Lösung gefunden. Damit erreiche ich, dass das Inhaltsverzeichnis römische Seitenzahlen im Header (oder Footer) bekommt und der eigentliche Inhalt mit der Seitenzahl 1 beginnt, ohne dass das Inhaltsverzeichnis selber mit römischen Seitenzahlen erzeugt wird. Ursache für Letzteres ist, dass fromproperty beim Zugriff auf page:page-number-string die Seitenzahl als String gemäß Parameter (page-number-type = #'roman) erhält. Da kann nicht mehr unterschieden werden, ob die aktuelle Seitenzahl des Inhaltsverzeichnisses ausgegeben werden soll oder die Seitenzahl als Verweis auf eine Stelle im Dokument.

Was bleibt, ist der Umstand, dass die Navigation im PDF-Dokument über die als Link ausgestalteten Inhaltsverzeichniseinträge weiterhin um den Offset der Seitenanzahl des Inhaltsverzeichnisses nicht stimmt. Und ob ich da ran komme, überblicke ich im Moment nicht. Das lagere ich in ein eigenes Problem/Frage aus.

Zurück zu den Seitenzahlen in römischer Schreibweise. Die ersten Versuche, in den Header-Definitionen (oddHeaderMarkup und Co) die Darstellung der Seitenzahl zu ändern ist fehlgeschlagen. Das liegt schlicht daran, dass dort die Seitenzahl als String abgerufen wird (\fromproperty #'page:page-number-string). Man könnte auf die Idee kommen, einfach die Zahl abzurufen (#'page:page-number). Das erzeugt keinen Fehler ist aber erfolglos.

Nach etwas Suchen ist mir klar geworden, woran das liegt. Die Definition von \fromproperty sieht die Rückgabe anderer Datentypen als String/Markup nicht vor, dann wird einfach ein leeres Stencil zurückgegeben. Und in einem leeren Stencil ist keine Seitenzahl enthalten, also kann man da nichts machen.

Meine Lösung ist nun ein angepasstes \fromproperty. Das muss einen anderen Namen bekommen. Ich habe mich für \number-fromproperty entschieden. Eigentlich müsste man die Spezialisierung hinten anhängen, das wäre dann fromproperty-number. Da die eigentliche Semantik von fromproperty mit get-string-from-property beschrieben ist, ist number-fromproperty nach meinem Verständnis "näher".

Und so sieht der modifizierte Scheme-Code aus:

#(define-markup-command (number-fromproperty layout props symbol type)
 (symbol? symbol?)
 #:category other
 #:as-string (markup-string
        (chain-assoc-get symbol props)
        #:layout layout
        #:props (prepend-alist-chain
              symbol
              (make-property-recursive-markup symbol)
              props))
 (let ((m (chain-assoc-get symbol props)))
   (if (number? m)
       ;; prevent infinite loops by clearing the interpreted property:
       (interpret-markup layout
                         (prepend-alist-chain
                          symbol
                          (make-property-recursive-markup symbol)
                          props)
                       (number-format type m))
       empty-stencil)))

Der Aufruf sieht dann so aus, dass man einen zusätzliches Argument mit gibt, das den Nummerntyp, hier roman, bestimmt. Damit lassen sich dann die oddHeaderMarkup und evenHeaderMarkup-Definitionen beispielsweise so modifizieren:

oddHeaderMarkup = \markup \fill-line {
  ""
  \unless \on-first-page-of-part \fromproperty #'header:title
  \if \should-print-page-number \number-fromproperty #'page:page-number #'roman
}
evenHeaderMarkup = \markup \fill-line {
  \if \should-print-page-number \number-fromproperty #'page:page-number #'roman
  \unless \on-first-page-of-part \fromproperty #'header:title
  ""
}

Ausblicke:
  • Das ursprüngliche fromproperty mit einem case-Statement anstelle des if ertüchtigen ...
  • Offen, also noch zu lösen, ist das Seiten-Offset-Problem. Aber das ist eine andere Baustelle.
#92
Fragen und Probleme aller Art / arpeggio mit 2 Stimmen
Letzter Beitrag von viertel - Samstag, 30. November 2024, 19:49
Hallo
Ich bekomme nur ein "halbes" arpeggio. Es sollte eigentlich vom unteren d zum oberen gehen.
Im zweiten Takt gibt es sogar eine Fehlermeldung:
Warnung: keine Notenköpfe für Arpeggio gefunden?
\version "2.24.4"
\relative c' {
   c4
   << { d'4. c8 } \\ { <d, g>2\arpeggio } >>
   e4

   c4
   << { d'4.\arpeggio c8 } \\ { <d, g>2\arpeggio } >>
   e4
}
Du darfst diesen Dateianhang nicht ansehen.
Oder anders gefragt: wie müßte ich es richtig machen?
#93
Fragen und Probleme aller Art / Antw:Seitennummer nach Ihaltsv...
Letzter Beitrag von martinmagtenor - Freitag, 29. November 2024, 22:24
Hallo Harm,

vielen Dank. Zu Deiner Frage: Ja und Nein.

Einerseits habe ich dadurch gelernt, dass man innerhalb eines bookpart auch paper verwenden darf und das auch wirkt. Aber es entstehen komische Effekte.

Beispiel: Das Inhaltsverzeichnis wird am Anfang des Dokuments ausgegeben. In den Bookparts gibt es jeweils ein

\paper {
  bookpart-level-page-numbering = ##t
  print-first-page-number = ##t
}

Dann wird in jedem so ausgestatteten bookpart wieder bei 1 zu zählen begonnen. Im Inhaltsverzeichnis werden die Seitenzahlen der bookparts ausgewiesen, was wenig hilfreich ist, weil man dann sehr viele Seiten 1 hat, aber das ist im Moment egal. Aber wenn man dann in dem PDF auf die Seitenzahl klickt, z.B. die 1, dann wird die "globale Seite 1" angesprungen, also die Seite, auf der das Inhaltsverzeichnis beginnt.

Mein vorläufiges Fazit: Inhaltsverzeichnis, bookpart und die Einstellung bookpart-level-page-numbering = ##t ergeben zusammen kein sinnvolles Resultat.

Hinsichtlich meines Ziels bringt mich das nicht weiter.

Oder könnte man das Inhaltsverzeichnis in einen bookpart packen?

Zumindest auf den ersten Blick ergibt das einen Fortschritt. Das Inhaltsverzeichnis enthält die richtigen Seitenzahlen. Aber das Klicken im PDF springt nicht an die referenzierte Seite des PDF-Dokuments sondern an die angegebene Blattnummer und liegt dann um die Anzahl der Seiten im Inhaltsverzeichnis daneben.

Wenn man dann noch in dem diesem Inhaltsverzeichnis-Bookpart in dem paper-Block page-number-type = #'roman einträgt, hat man römische Seitenzahlen und ein Inhaltsverzeichnis, in dem auch alle Seitenzahlen römisch dargestellt sind. Irgendwie unpraktisch. Ob das gewollt oder ein Bug ist? Denn die Seitenzahlen der Seiten, auf die verwiesen wird, sind in arabischer Schreibweise dargestellt.

Grüße
 Martin
#94
Fragen und Probleme aller Art / Antw:Seitennummer nach Ihaltsv...
Letzter Beitrag von harm6 - Donnerstag, 28. November 2024, 22:35
Hilft der thread der hier
https://lists.gnu.org/archive/html/lilypond-user/2024-11/msg00121.html
anfängt?

Gruß,
  Harm
#95
Fragen und Probleme aller Art / Seitennummer nach Inhaltsverze...
Letzter Beitrag von martinmagtenor - Donnerstag, 28. November 2024, 22:15
Die Digitalisierung, an der ich arbeite, ist schon weit fortgeschritten. Das geht in Richtung 200 Seiten. Das Inhaltsverzeichnis wird entsprechend lang (um 5 Seiten, da es um Orgelnoten geht, alles im Querformat).

Nun ist es durchaus üblich, dass der Vorspann eines Werks mit dem Inhaltsverzeichnis eine eigene Seitennummerierung, häufig mit römischen Zahlen, bekommt. Und der eigentliche Inhalt beginnt dann mit der Seite 1 in arabischer Darstellung.

Lilypond kann Zahlen in römischer Darstellung ausgeben (page-number-type = #'roman). Das Einzustellen passiert in \paper { ... }, genauso wie das Setzen der ersten Seitenzahl. So, wie ich Lilypond verstehe gilt \paper { ... } aber für das ganze Dokument! Und das schließt dann das Zurücksetzen der Seitenzahl unterwegs auf 1 aus und ebenso die Änderung der Darstellung von römischen Zahlen auf Arabische.

In \layout kann man ausgewählte paper-Variablen verwenden, aber eben nicht die für die Seitennummerierung.

Oder habe ich etwas übersehen?

Gibt es einen Trick, das zu überwinden?


Die Struktur der Dokumentquellen sieht so aus:

\version ...

% allgemeine Deklarationen paper

% Dann schließen sich Gruppen aus includes und bookparts an. Skizze:

\include "noten_1.ly"
\include "noten_2.ly"
...
\bookpart {
  \include "score_u_a_1.ly"
  \include "score_u_a_2.ly"
  ...
}

\include "noten_3.ly"
\bookpart {
  \include "score_u_a_3.ly"
}

... usw.

Das jeweilige \header + \tocItem steckt dann in den score-Dateien.

So bleibt alles schön übersichtlich. Die Dateinamen sind natürlich "sprechender" und in jeweiligen Unterordnern angesiedelt. So kann ich die Dateien (alias Stücke) einzeln Versionieren usw.

Danke und Grüße
Martin
#96
Fragen und Probleme aller Art / Antw:Übernahme von Angaben in ...
Letzter Beitrag von martinmagtenor - Donnerstag, 28. November 2024, 21:45
DANKE
#97
Fragen und Probleme aller Art / Antw:Übernahme von Angaben in ...
Letzter Beitrag von harm6 - Donnerstag, 28. November 2024, 21:44
Zitat von: martinmagtenor am Dienstag, 26. November 2024, 17:57Kann man das irgendwie als Feature-Request oder Community-Beitrag vorschlagen?

Im allgemeinen:
Feature-Requests, etc kannst Du mit mail(s) an die bug-mailing-list vorschlagen.
Das LSR bietet ansonsten die beste Möglichkeit wie user an der Weiterentwicklung teilhaben können. Wenn Du also ein interessantes snippet hast oder bemerkst kannst Du es dort einstellen (account erforderlich). Ein LSR-Editor wird das snippet dann annehmen (evtl. nach Rückfragen). In dem Fall hier, gibt es jetzt eine Erweiterung zu einem bereits bestehenden snippet. Auch das könntest Du dort einstellen (siehe die entsprechenden Seiten des LSR zum Verfahren). Ein LSR-Editor wird es dann evtl einpflegen.

Im besonderen:
Es gibt nicht so viele LSR-Editoren, aber ich selbst bin einer ;)
Insoweit werde ich das snippet selbst verändern (sobald es meine Zeit zulässt).
Allerdings bin ich noch nicht ganz zufrieden, denn nach wie vor werden score-header nicht erfasst. Ich weiss aber auch nicht recht wie es mit vertretbarem Aufwand gelingen kann...

Viele Grüße,
  Harm
#98
Fragen und Probleme aller Art / Antw:Übernahme von Angaben in ...
Letzter Beitrag von martinmagtenor - Mittwoch, 27. November 2024, 20:41
Hallo Harm,

entschuldige bitte, das war voreiliger Alarmismus. Problem gelöst. Da waren noch tocItem-Restanten, die auf's Löschen warteten.

Nochmal Danke! Eine sehr hilfreiche Erweiterung ist das geworden!

Martin
#99
Fragen und Probleme aller Art / Antw:Übernahme von Angaben in ...
Letzter Beitrag von martinmagtenor - Mittwoch, 27. November 2024, 20:28
Hallo Harm,

irgendwas ist an der Lösung noch "unrund". Ich sehe teilweise mehrfache Einträge im Inhaltsverzeichnis, obwohl das Makro tocItem jeweils nur einmal in den Quellen enthalten ist.

Wovon das abhängt und wie man das in einem Minimalbeispiel provoziert bekommt, muss ich noch herausfinden.

Martin
#100
Fragen und Probleme aller Art / Antw:Volta ohne Alternative
Letzter Beitrag von Hilflos-im-Code - Mittwoch, 27. November 2024, 15:16
Ja, Danke. Zielstrebig immer vorbeigesucht.