確かにRasterBoxは幅によって自動的に改行したりするので
強制的に改行させるようなオプションは見当たらないですね。
ですが、改行({br})を含んだtextプロシージャをRasterBoxに入れると
改行がされます。
以下のように文字列内に\nがある場合に、
{br}に置き換えそれらをtextプロシージャに渡して、
それをRasterBoxに渡します。
すると\nの箇所で改行されます。
Code:
{let caption:String = "any\nstring"}
{define-class public MyRasterBox {inherits RasterBox}
{constructor public {default ...}
let args:Arguments = {Arguments}
let txt-args:Arguments = {Arguments}
{for (val-identifier:any, key-identifier:#String) key index:int in ... do
{if key-identifier == null and val-identifier isa String then
let split-strs:StringArray =
{val-identifier.split
split-chars = '\n'
}
{if split-strs.size >= 2 then
{for s:String key index:int in split-strs do
||{dump s}
{if index != 0 then
{txt-args.append {br}}
}
{txt-args.append s}
}
{continue}
}
}
||{dump key-identifier, val-identifier}
{args.append val-identifier, keyword = key-identifier}
}
{construct-super
{text {splice txt-args}},
{splice args}
}
}
}
{value
{MyRasterBox
font-size = 9pt,
font-weight = "bold",
background = "yellow",
caption
}
}