Using \concat doesn't help as it eats ALL white space.
2. Why does a strut have a nonzero width? Can it be used and set to zero? Maybe it has zero width, but because of some internal processing every markup element automatically gets white space glued to it (this may explain my first question in part too).
3. How can I get markup in columns use the font "strut" dimensions for correct vertical padding of a paragraph? In the example below, you'll see that there's an ugly and uncontrollable vertical white space between the 3-column output and the red text, due to using text in the 3 columns with characters protruding below the baseline or not.
So here comes the rather long self-contained example. Colors are only there for identifying semantical elements.
%% BEGIN code \version "2.16.1"
% LSR snippet from http://lsr.dsi.unimi.it/LSR/Item?id=368
#(define-markup-command (when-property layout props symbol markp) (symbol? markup?) (if (chain-assoc-get symbol props) (interpret-markup layout props markp) (ly:make-stencil '() '(1 . -1) '(1 . -1))))
\new Staff { \relative c' { \key c \major \time 3/4 \tempo "Moderato con moto" \repeat unfold 10 { c4 c'8. d,16-. e8. f16-. }
\bar "|." } }
\new Staff { \relative c { \key c \major \clef "bass" \repeat unfold 10 { g4-> f c }
} }
>>
\score { \theMusic
\header { piece = \pieceStr piece-tonality = \markup { C Dur. {\italic Do majeur.} C major. } piece-comment = "This is a sample comment." % {
piece-explanation = ""
piece-explanation-de = "Wird ganz in der zweiten Position gespielt." piece-explanation-fr = "Jouer entièrement à la 2° position." piece-explanation-en = "Play entirely in the 2nd position."
% } }
\markup { \column { \line { \huge { The following also does not work: } }
\rounded-box { \column { \fill-line { { \bold "N° 25. Minuetto" }
\line { \with-color #blue "Nemo Ignoto" "(" \with-color #(rgb-color 1 .5 0) "Opus 3.14" ")" } } \columns { \override #'(baseline-skip . 4) \column { \wordwrap { Wird ganz in der zweiten Position gespielt. }\strut }
\override #'(baseline-skip . 4) \column { \wordwrap { \italic { Jouer entièrement à la 2° position. } } } \override #'(baseline-skip . 4) \column { \wordwrap { Play entirely in the 2nd position. } }
} \line { \with-color #red { C Dur. {\italic Do majeur.} C major. } } } }
\strut \wordwrap { \huge { The following works but (1) does not make use of columns and (2) does not make use of header fields: } }
% But it breaks the vertical spacing again...
\rounded-box { \column { \fill-line { { \bold "N° 25. Minuetto" } \with-color #blue "Nemo Ignoto (Opus 3.14)"
} \line { Wird ganz in der zweiten Position gespielt. } \line { \italic { Jouer entièrement à la 2° position. } } \line { Play entirely in the 2nd position. } \line { \with-color #red { C Dur. {\italic Do majeur.} C major. } }
} } } } %% END code