Previous: Nonprinting Characters, Up: String Type


2.3.8.4 文字列内のテキスト属性

文字列は、文字そのものに加えて、文字の属性も保持できます。 このため、特別なことをしなくても、 文字列とバッファのあいだでテキストをコピーするプログラムは、 テキスト属性をコピーできます。 テキスト属性の意味については、See Text Properties。 テキスト属性付きの文字列には、特別な入力構文があります。

     #("characters" property-data...)

ここで、property-dataは0個以上のつぎのような3つ組みです。

     beg end plist

3つ組みの要素、begendは整数であり、 文字列内の添字の範囲を表します。 plistはその範囲の属性リストです。 たとえば、

     #("foo bar" 0 3 (face bold) 3 4 nil 4 7 (face italic))

は、最初の3文字がface属性としてboldを持ち、 最後の3文字がface属性としてitalicを持つ、 ‘foo bar’という文字列を表します。 (4番目の文字にはテキスト属性はなく、その属性リストはnil。 デフォルトでは、範囲に含まれない文字には属性はないので、 属性リストがnilであるような範囲を言及する必要はない。)