\NeedsTeXFormat{LaTeX2e} \documentclass[10pt,twoside]{letter} \usepackage{geometry} \geometry{a4paper,noheadfoot,nomarginpar,left=1.5cm,right=1.5cm,top=1.5cm,bottom=1.5cm,} \usepackage{fontspec} \defaultfontfeatures{Ligatures=TeX} \usepackage{polyglossia} \setdefaultlanguage[spelling=old]{german} \setmainfont{CMU Serif} \setsansfont{CMU Sans Serif} \setmonofont{CMU Typewriter Text} \usepackage{graphicx} \usepackage{luatex} \pdfcompresslevel=9 % lualatex and lilypond mixed in one file % % tex, lilypond headers and lyrics use the same fonts. % % lyrics fontsize matches the fontsize of the TeX \normalsize. % % Use lualatex --shell-escape lilyinluatex to generate pdf. % % lualatex will % write tmplily.ly, % call lilypond to generate tmplily.pdf % call pdfcrop to remove extra white space % \def\tmplilyname{tmplily.ly } \def\tmppdfname{tmplily.pdf } \def\lilycommand{lilypond } \newwrite\tmplilyfile { \catcode`|=0 \catcode`[=1 \catcode`]=2 \catcode`\{=12 \catcode`\}=12 \catcode`\\=12 |gdef|eolily[\end{lilypage}] ] \obeylines \def\doline#1 { \def\oneline{#1} \ifx\oneline\eolily \def\next{\end{lilypage}} \else \immediate\write\tmplilyfile{\oneline} \let\next\doline \fi \next% } \makeatletter \newenvironment{lilypage}[1]{ \gdef\lilypdf{#1} \immediate\openout\tmplilyfile=\tmplilyname address@hidden }{ \immediate\closeout\tmplilyfile \immediate\write18{\lilycommand \tmplilyname}% \immediate\write18{pdfcrop \tmppdfname \lilypdf}% } \makeatother \begin{document} \pagestyle{empty} Remember to use \verb+lualtex --shell-escape example.tex+ \begin{lilypage}{example1.pdf} \version "2.18.2" \include "deutsch.ly" #(set! paper-alist (cons '("mySize" . (cons (* 10 cm) (* 4.5 cm))) paper-alist)) \paper { #(set-paper-size "mySize") left-margin = 0\cm top-margin = 0\cm bottom-margin = 0\cm line-width = \paper-width indent = 0 page-count = #1 ragged-bottom = ##f ragged-last-bottom = ##f annotate-spacing=##f } \header { title = \markup { \override #'(font-name . "CMU Serif Bold") "Macht hoch die Tür" } subtitle = \markup { \override #'(font-name . "CMU Serif Bold") "Only an example" } tagline = ##f } #(set-global-staff-size 17) allowGrobCallback = #(define-scheme-function (parser location syms) (symbol-list?) (let ((interface (car syms)) (sym (cadr syms))) #{ \with { \consists #(lambda (context) `((acknowledgers . ((,interface . ,(lambda (engraver grob source-engraver) (let ((prop (ly:grob-property grob sym))) (if (procedure? prop) (ly:grob-set-property! grob sym (prop grob))))))))))}#})) absFontSize = #(define-scheme-function (parser location pt)(number?) (lambda (grob) (let* ((layout (ly:grob-layout grob)) (ref-size (ly:output-def-lookup (ly:grob-layout grob) 'text-font-size 12))) (magnification->font-size (/ pt ref-size))))) \score { << \new Voice = "Melody" \relative g'{ \key es \major \time 6/4 \partial 4 g4 b2 as4 g2 f4 es (f) g f2 \breathe \bar"" \break b4 as2 as4 g2 g4 f (es) f es2 \breathe } \new Lyrics \lyricsto "Melody" { \set stanza = "1." Macht hoch die Tür, die Tor macht weit; es kommt der Herr der Herr -- lich -- keit, } >> \layout { \context { \Score \allowGrobCallback font-interface.font-size \omit BarNumber } \override LyricText.font-size = \absFontSize #10 \override Lyrics.LyricText #'font-name = #"CMU Serif" \override StanzaNumber.font-name = #"CMU Serif Extra" \override StanzaNumber.font-size = \absFontSize #10 } } \end{lilypage} \includegraphics{\lilypdf} \end{document}