Autor Thema: Standardschriftgröße ändern  (Gelesen 3999 mal)

Moeffz

  • Member
Standardschriftgröße ändern
« am: Sonntag, 3. April 2011, 15:14 »
Moin,

ich komme nicht drauf:
Ich möchte in meinem Dokument, welches aus einem \book-Kontext besteht, die Standardschriftgröße, die in den \markup-Kontexten verwendet wird, verändern. Ich kann natürlich in jeden \markup-Satz gehen und \abs-fontsize setzen, aber genau das will ich einmalig zentral einstellen.
Die #(set-global-staff-size x) ist zwar ganz nett, scheint aber keinen Einfluss auf die \markup-Kontexte zu haben.

Wer kann mir hier weiterhelfen oder einen entscheidenden Hinweis geben?

Vom Handling her soll das vergleichbar sein wie die Formatvorlagen in diversen Textverarbeitungsprogrammen.

ding-dong

  • Member
Re:Standardschriftgröße ändern
« Antwort #1 am: Sonntag, 3. April 2011, 16:48 »
#(set-global-staff-size 26)kombiniert mit
\layout {
  #(layout-set-staff-size 20)
}
und falls nötig am geeignetsten ort \override StaffSymbol #'staff-space = #(magstep -1)hinzufügen

hdh

Moeffz

  • Member
Re:Standardschriftgröße ändern
« Antwort #2 am: Sonntag, 3. April 2011, 22:37 »
Hi ding-dong,

danke für Deine Antwort. Ich habe es mal ausprobiert:
#(set-global-staff-size 26)Verändert die Größe innerhalb aller \score-Umgebungen.
\layout {
  #(layout-set-staff-size 20)
}
Verändert die Größe innerhalb der \score-Umgebungen, denen es hinzugefügt wurde.

Zwischen den Score-Umgebungen habe ich diverse Markup-Umgebungen mit reinem Text.
Beispielsweise die hier:
\markup \fill-line {
\column \abs-fontsize #13 {
\line {\bold {Einzug }}
\line {\null}
\line {\bold {Eröffnungslied}}
}
\hspace #1
\column \abs-fontsize #13 {
\line {"\"Prince of Denmark's March\""}
\line {\null}
\line {"\"Geh' aus mein Herz\" " }
}

}

Derzeit hat jede dieser Markup-Umgebungen an der entsprechenden Stelle ein
\abs-fontsize #13so dass ich in jeder Markup-Umgebung die Schriftgröße einzeln anpassen muss. Die Schriftgröße ist aber noch nicht final. Wie kann ich diese Schriftgröße zentral einstellen?

ding-dong

  • Member
Re:Standardschriftgröße ändern
« Antwort #3 am: Sonntag, 3. April 2011, 22:57 »
mit untenstehendem code wird jeglicher text zwischen den - normal-grossen - scores grösser!
du musst nur noch etwas mit dem magstep herumspielen resp. nachlesen, wie der zur globalen layout-grösse sich verhält!
\version "2.13.56"
#(set-global-staff-size 66)
\layout {
  #(layout-set-staff-size 23)
  \context {
  \Staff
  \override StaffSymbol #'staff-space = #(magstep -9)
  }
}
\header { title = title }
\relative c' { c d e f}
\markup { title = after }

Moeffz

  • Member
Re:Standardschriftgröße ändern
« Antwort #4 am: Montag, 4. April 2011, 09:20 »
Danke.

Wenn ich es erfolgreich ausprobiert haben werde, werde ich berichten!

RobUr

  • Member
Re:Standardschriftgröße ändern
« Antwort #5 am: Montag, 4. April 2011, 21:41 »
Hallo Moeffz,

zieh \abs-fontsize vor die Klammer, das ist am unaufwändigsten:
\markup \abs-fontsize #13 \fill-line {
\column {
\line { \bold { Einzug } }
\line { \null }
\line { \bold { Eröffnungslied } }
}

\hspace #1

\column {
\line { "„Prince of Denmark’s March“" }
\line { \null }
\line { "„Geh’ aus mein Herz“" }
}
}

Die Kombination
#(set-global-staff-size X) % default: 20
\layout {
#(layout-set-staff-size Y)
}
bringt Probleme, wenn man die Dokumentschriftart global (durch make-pango-font-tree) geändert hat: Lily fällt dann auf seine Hausschrift zurück :(

Meine persönliche Lösung ist die Definition gebräuchlicher Größen in Variablen, die in einer Include-Datei gespeichert sind. Die Bezeichner und Größen sind an LaTeX angelehnt. Bei mir sieht das in der Include-Datei dann folgendermaßen aus:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%   5  .......  ttiny
%%   7  .......  sscriptsize
%%   8  .......  ffootnotesize
%%   9  .......  ssmall
%%  10  .......  nnormalsize
%%  12  .......  llarge
%%  14  (14.40)  LLarge
%%  18  (17.28)  LLARGE
%%  20  (20.74)  hhuge
%%  24  (24.88)  HHuge
%%  30  (29.86)
%%  36  (35.83)
%%  43
%%  52  (51.60)
%%  62  (61.92)
%%  74  (74.30)
%%  90  (89.16)
%% 107
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

#(define-markup-command (ttiny layout props arg) (markup?)
(interpret-markup layout props
(markup #:abs-fontsize 5 #:medium arg)))

#(define-markup-command (sscriptsize layout props arg) (markup?)
(interpret-markup layout props
(markup #:abs-fontsize 7 #:medium arg)))

#(define-markup-command (ffootnotesize layout props arg) (markup?)
(interpret-markup layout props
(markup #:abs-fontsize 8 #:medium arg)))

#(define-markup-command (ssmall layout props arg) (markup?)
(interpret-markup layout props
(markup #:abs-fontsize 9 #:medium arg)))

#(define-markup-command (nnormalsize layout props arg) (markup?)
(interpret-markup layout props
(markup #:abs-fontsize 10 #:medium arg)))

#(define-markup-command (llarge layout props arg) (markup?)
(interpret-markup layout props
(markup #:abs-fontsize 12 #:medium arg)))

#(define-markup-command (LLarge layout props arg) (markup?)
(interpret-markup layout props
(markup #:abs-fontsize 14.4 #:medium arg)))

#(define-markup-command (LLARGE layout props arg) (markup?)
(interpret-markup layout props
(markup #:abs-fontsize 17.28 #:medium arg)))

#(define-markup-command (hhuge layout props arg) (markup?)
(interpret-markup layout props
(markup #:abs-fontsize 20.74 #:medium arg)))

#(define-markup-command (HHuge layout props arg) (markup?)
(interpret-markup layout props
(markup #:abs-fontsize 24.88 #:medium arg)))
Der erste Buchstabe des Bezeichners ist jeweils verdoppelt, um Konflikte mit Lily-internen Bezeichnern zu vermeiden.

Die LaTeX-Entwickler legen immer großen Wert auf die richtigen Proportionen, weshalb die Werte auf den ersten Blick krumm aussehen. Und wie du siehst, gibt es Größe 13 schonmal gar nicht ;) Probier doch statt dessen mal \LLarge:
\markup \LLarge \fill-line {
\column \bold {
"Einzug"
\null
"Eröffnungslied"
}

\hspace #1

\column {
"„Prince of Denmark’s March“"
\null
"„Geh’ aus mein Herz“"
}
}

Viel Spaß und immer schön klammern :)
Robert

Moeffz

  • Member
Re:Standardschriftgröße ändern
« Antwort #6 am: Sonntag, 17. April 2011, 17:41 »
Hi Robert,

auf die Idee, das \abs-fontsize vorzuziehen, hätte ich eigentlich selbst kommen können.

Der Ansatz über eine globale Definition (per \include) war genau das, was mir vorschwebte, wo ich jedoch nicht wusste, wie ich es angehen soll. Hat super geklappt. Vielen Dank für Dein Muster  :)

Leider kenne ich LaTeX nur vom Hörensagen, so dass mir an der Stelle die Erfahrung fehlt. Danke auch hier für die hilfreichen Ausführungen zum Schriftsatz.

Die Klammern sind so eine Sache - nicht nur bei Lilypond ;-)

EDIT:
Eine Nachfrage habe ich noch:
Ich habe den Textteil genau so, wie er sein soll und jetzt festgestellt, dass ich die Lieder ruhig etwas größer setzen kann. Dazu habe ich
#(set-global-staff-size 18)verändert. Wenn ich diesen Welt verändere, verändert sich aber auch die Schriftgröße des Textes, den ich mit \abs-fontsize eingestellt habe. Wie ist denn da der Zusammenhang?

In den Griff bekomme ich das mit dem Tipp von ding-dong:
\layout {
  #(layout-set-staff-size 20)
}
« Letzte Änderung: Sonntag, 17. April 2011, 19:29 von Moeffz »

RobUr

  • Member
Re:Standardschriftgröße ändern
« Antwort #7 am: Montag, 18. April 2011, 18:45 »
Hallo Moeffz!

Zitat von: Moeffz
Ich habe den Textteil genau so, wie er sein soll und jetzt festgestellt, dass ich die Lieder ruhig etwas größer setzen kann. Dazu habe ich
#(set-global-staff-size 18)verändert. Wenn ich diesen Welt verändere, verändert sich aber auch die Schriftgröße des Textes, den ich mit \abs-fontsize eingestellt habe. Wie ist denn da der Zusammenhang?
Das kann eigentlich nicht sein. \abs-fontsize ist ja gerade dazu da, die Schriftgröße absolut angeben zu können. Poste doch bitte ein Codebeispiel, bei dem es auftritt.

Es kann einzig vorkommen, dass der Abstand vor und nach dem entsprechenden Markup-Block geändert wird.

Grüße, Robert

Moeffz

  • Member
Re:Standardschriftgröße ändern
« Antwort #8 am: Dienstag, 19. April 2011, 16:32 »
Hi Robert,

genau das dachte ich auch. Darum war ich so überrascht. Ich verwende übrigens Version 2.13.59. Vielleicht liegt da auch schon der Hund begraben.

Angehängt habe ich Dir vier Dateien:
- die Datei, in der die Schriftgröße definiert wird (s.o.)
- den eigentlichen Code
- den Output einmal mit set-global-staff-size 22 und einmal mit set-global-staff-size 18

RobUr

  • Member
Re:Standardschriftgröße ändern
« Antwort #9 am: Dienstag, 19. April 2011, 18:26 »
Hallo Moeffz,

deine Beispiel-PDFs zeigen doch eindeutig, dass sich die Schriftgröße nicht geändert hat! Allerdings befindet sich im Markup ja doch ein relativer Abstand: line-width. Dieser Wert (in staff spaces) wird durch set-global-staff-size skaliert.

Achtung: Lily 2.13.x hat eine neue vertical spacing engine! Die herkömmlichen Befehle after-title-space etc. gibt es nicht mehr. Nachzulesen unter Liste der flexiblen vertikalen Abstandsvariblen in \paper.

Grüße, Robert

Moeffz

  • Member
Re:Standardschriftgröße ändern
« Antwort #10 am: Dienstag, 19. April 2011, 19:47 »
Hi Robert,

Du hast Recht.  :o Da habe ich echt Tomaten auf den Augen gehabt. Sorry für die Aufregung.

Dass die Engine anders arbeitet, war der Grund, warum ich die Testing verwende. Danke für den Hinweis auf die geänderten Befehle.
« Letzte Änderung: Dienstag, 19. April 2011, 19:49 von Moeffz »