SDQL を用いて取得した数値を文中に表示するには (literal …) と組み合わせるのが一般的かと思いますが、(literal …) が期待する引数は文字列ですから、取得した数値を一度文字列に変換する必要があります。これには次の手続きを用います。
(number->string number)
この手続きは引数 number の数値を文字列に変換して結果を返しますので、SDQLと (literal …) を次のように組み合わせて使うことができます。
例 7.4
(literal (number->string (child-number (current-node))))
され、これで取り敢えずカウンタの数値を文書中に表示できるようになりましたが、これとは別に数値を特定のフォーマットに従って文字列に変換する手続きがあります。この手続きを次に紹介しましょう。
(format-number number string)
手続き format-number は引数 number を引数 string で示されたフォーマットに従って文字列に変換します。string に指定するフォーマット文字列は次のものが有効です。
表 7.1 手続き format-number に指定可能なフォーマット文字列
文字列 | フォーマット結果 |
---|---|
“1” | 0, 1, 2 … |
“01” | 00, 01, 02, … 10, 11, … |
“a” | 0, a, b, c, … z, aa, ab, … |
“A” | 0, A, B, C, … Z, AA, AB, … |
“i” | 0, i, ii, iii, iv, v, vi, vii, viii, ix, x, … |
“I” | 0, I, II, III, IV, V, VI, VII, VIII, IX, X, … |
二番目の“01”は、最初の 0 の個数によってフォーマット結果がかわってきます。つまり、フォーマット文字列が“0001”であれば、引数 number に 7 を渡した結果は“0007”になります。