次: , 前: Dnl, 上: Input Control


7.2 引用符(quote characters)を変更する

デフォルトの引用符は組み込みマクロchangequoteによって変更できます。

     changequote(opt start, opt end)

startは新しい開始引用符でendは新しい終了引用符です。 もし欠けている引数があるときは、デフォルトの引用符(`') がその欠けている引数の代わりに使用されます。

changequoteは展開されると消滅します。

     changequote([, ])
     =>
     define([foo], [Macro [foo].])
     =>
     foo
     =>Macro foo.

適切な文字がないときはstartendを好きな長さにしてかまいません。

     changequote([[, ]])
     =>
     define([[foo]], [[Macro [[[foo]]].]])
     =>
     foo
     =>Macro [foo].

引用符を両方とも空文字列にすると、事実上クォート機構が無効になり、 テキストをクォートする方法が無くなります。

     define(`foo', `Macro `FOO'.')
     =>
     changequote(, )
     =>
     foo
     =>Macro `FOO'.
     `foo'
     =>`Macro `FOO'.'

changequoteを使って現在の引用符を替えない限り、 終了引用符と対になっていない開始引用符を含む文字列をクォートする 方法はm4には存在しません。

入力に含まれる名前と混同されてしまうので、 どちらの引用符も記号でない普通の文字や`_' (アンダースコア)で 始めるべきではありません。そうした場合はクォート機構が無効になります。