Hmm...das liest sich alles sehr logisch und entspricht auch exakt dem, was ich erwarten würde.
Offenbar hänge ich an etwas sehr banalem und bin zu vernagelt, das Problem zu sehen. Das folgende Skript ist eine sehr verkürzte Fassung eines Skriptes von Harm aus einem anderen Topic (das ich im Detail zu verstehen suche).
\version "2.19.20"
#(define-markup-command (emphasize layout props strg)(string?)
#:properties ((indicator "*"))
(let* ((mrkp strg)
(display "strg=") (display strg) (display "\n")
)
(interpret-markup layout props mrkp)))
\markup
\rounded-box
\emphasize #"a*äö*de*frü*"
Meine Erwartung ist, die diversen (display ...) schreiben mir irgendetwas auf die Konsole. Ich sehe indessen keinen Output, weder unter Linux in Frescobaldi, noch direkt in einer bash.
Ändere ich das Skript derart, vor dem (let* ein (begin einzufügen, so wie hier:
\version "2.19.20"
#(define-markup-command (emphasize layout props strg)(string?)
#:properties ((indicator "*"))
(begin (display "begin strg=") (display strg) (display "\n")
(let* ((mrkp strg)
(display "strg=") (display strg) (display "\n")
)
(interpret-markup layout props mrkp))))
\markup
\rounded-box
\emphasize #"a*äö*de*frü*"
dann sehe ich auf der Konsole den String "begin strg=a*äö*de*frü*", wenngleich er erst sehr spät erscheint, nämlich nachdem die Verarbeitung der Funktion lange abgeschlossen ist. Würden also dort in einem komplexeren Fall irgendwelche Fehlermeldungen oder Warnungen ausgegeben, dann wären die von diesem Aufruftrace vollkommen getrennt und nur bedingt hilfreich.
Was mache ich falsch, bzw. wo liegt mein Denkfehler ?
Oder was muss ich anders einstellen, um das gewünschte Result/Verhalten zu erzielen ?
Etwas ratlos und wie immer dankbar für jeden Hinweis,
Michael