1.はじめに
Solは項目名と本文を区別せずに記述できるアウトライン・プロセッサです。しかし、きれいな印刷結果を実現するためには、項目名と本文を識別する必要があります。この識別をSolでは一定のルールに基づいて行っています。本稿ではこの項目名と本文の識別ルールと識別結果に基づいた書式の割り当てについて説明します。本稿で説明するルールは、Sol5-1.0.0 以降のSol5で採用しているものです。それ以前のSol5とは若干異なる部分がありますので、その点はご注意下さい。
Sol5が採用している識別ルールは比較的自然なものですので、あまり意識しなくても、多くの場合比較的きれいな印刷結果が得られると思います。しかし、意図したものと異なる印刷結果になったときは、ここに書かれたルールや書式の割り当てを見直して下さい。そうすれば、問題を解決するにはどうすれば良いかが分かると思います。
(2022/7/12 に一部修正)
2.項目名トピックと本文トピックの識別
(1)識別のやり方
Solではトピックを項目名トピックと本文トピックに分けます。Sol5ではこの識別を次の2つのステップに分けて行っています。
1) 一次識別
粗い基準で、トピックを項目名トピック、本文トピック、分類不明トピックの3つに分けます。
2) 二次識別
トピックを兄弟ごとにグループ化し、兄弟トピックの中に1つでも本文トピックがあれば、兄弟全部を本文トピックとし、さもなければ、兄弟全部を項目名トピックにします。
(2)一次識別の詳細
1) レベル=0、レベル=1 のトピックは項目名
レベル=0 のトピックは、1行目の青字タイトルのトピック。レベル=1 のトピックは、2行目以降で左端の黒ゴシック文字のトピックです。
2) ダミー・トピックは項目名
ダミー・トピックとは、利用者には見えず、印刷されないトピックです。例えば、レベル=1に項目名があり、レベル=2がなくて、レベル=3に本文があるとき、利用者には見えませんが、内部的にはレベル=2の空トピックが作られています。この空トピックがダミー・トピックです。
それ自身は印刷されませんが、その子孫のトピックの印刷位置に影響しますので、このダミー・トピックも項目名トピックとして扱います。
3) 空文字列のトピックは項目名
ダミー・トピックと同様に扱います。ただし、印刷時には1行のあきが作られます。
4) 特殊なspanタグをもつトピックはそれぞれ項目名または本文
(1) span.text があれば本文
(2) span.title があれば項目名
(3) span.center があれば項目名
(4) span.right があれば本文
ここで、span.textとは「<span class=”text”>トピックの文章</span>」のHTMLテキストのことです。他も同様です。
5) 改行があるトピックは本文
途中に改行があるケースは、データ表やプログラム・リストのことが多いので、本文とみなします。
6) 画像を含むトピックは本文
Sol5-0.12.3 で追加したルールです。
7) テキストの終端が「.」や「。」であるトピックは本文
8) テキストの終端が空白であるトピックは項目名
文末が「.」や「。」であっても項目名とみなしたいことがあります。そのようなときは、その後に全角または半角の空白を入れます。
(3)二次識別の詳細
兄弟トピックに1つでも本文があれば、兄弟すべてが本文であるとみなします。さもなければ、兄弟すべてを項目名であるとみなします。
兄弟がいない単独トピックについては、一次識別で項目名か本文か決まっていればそれを採用します。決まっていないときは、そのトピックに子トピックがあれば項目名とみなし、子トピックがなければ、本文であるとみなします。
3.ゴシック体項目名と明朝体項目名
(1)ゴシック体項目名
ゴシック体項目名は、大項目の表記に使われるもので、トピックレベルに対応した項目タグをもつもので、以下の3種類のものがあります。
レベル1 → 1. 2. 3.…
レベル2 → (1)(2)(3)…
レベル3 → 1) 2) 3)…
ゴシック体項目名にはゴシック体フォントを使用し、項目タグは全角で表記されます。また、項目文の上下に若干の空白(4pt)が置かれます。
(2)明朝体項目名
明朝体項目名は、本文より下位の項目や短い内容を代表する項目の表記に使われるもので、使用順に応じて以下の6種類のものがあります。
1番目 → 1. 2. 3. …
2番目 → (1) (2) (3) …
3番目 → 1) 2) 3) …
4番目 → a. b. c. …
5番目 → ・ ・ ・ …
6番目 → – – – …
明朝体項目名には明朝体フォントを使用し、項目タグは半角で表記されます。
(3)明朝体項目名を使用するケース
以下の条件を満たす項目には明朝体項目名が使われます。
1)レベル4以上の項目名トピック
2)本文が検出されたレベル以上のレベルをもつ項目名トピック
3)兄弟トピックのすべてが一定行数(デフォルトでは7行程度)以下である項目名トピック(ここでの行数は、当該トピックだけではなく、当該トピックの家族全体の行数を指しています。)
上の条件を満たすときは、レベルが3以下でも明朝体項目名を適用します。ただし、兄弟がいない単独トピックは除きます。
(4)明朝体項目タグの使用順
明朝体項目タグの1番目(1. 2. 3. …)は通常使いません。レベル1トピックが明朝体項目になったときだけ、これを使用します。
通常は2番目((1) (2) (3) …)から使います。ただし、直前にレベル2のゴシック体項目タグ((1)(2)(3)… )が使われているときは、3番目(1) 2) 3) …)から使い始めます。これは似たタグが続くと紛らわしいからです。
(5)単独トピックの項目名
兄弟のいない単独トピックの項目では、タグを使用しないで、アンダーラインを引きます。フォントは、明朝体項目名の条件を満たしているときには明朝体を、それ以外ではゴシック体を使います。
5.レベル別タイプ別トピックの字下げと右寄せ
(1)項目名トピック
レベル=0, 1, 2, 3 右寄せなし
通常の報告書の書式をまねて、印字枠の左端から書くようにしています。ただし、レベル=3は先頭に全角空白をつけます。これ以下のように、レベル2とレベル3の数字の表示位置を合わせるためです。
レベル=1 1.
レベル=2 (1)
レベル=3 1)
レベル=4以上 全体を右に8ポイントずらす
レベル4以上では、本文の下の項目を意識して、上の本文や項目名から8ポイント右にした位置に印刷するようにしています。レベルが上がる都度、この8ポイントが累積した位置に文章が表示されるようになります。
(2)本文トピック
レベル=2, 3, 4 先頭に空白文字をつけて1字分字下げする
通常の報告書の書式をまねて、印字枠の左端から書くようにしています。ただし、途中改行がある本文は、データ表やプログラムリストであることが多いですので、字下げを行いません。
レベル=5以上 全体を右に16ポイントずらし、先頭に空白文字をつける
レベル5以上では、本文下の項目以下の本文を意識して、上の項目名から16ポイント下げた位置に印刷するようにしています。途中改行があるケースは上と同じです。
6.むすび
旧版のSol4.xではドキュメント・スタイルというもっと複雑な印刷書式設定を用意していましたが、デフォルトのスタイル以外はあまり使われませんでした。そこで、Sol5では、上記のような単純なルールだけにしています。
それでも、それぞれのルールの役割や例外の記述方法を理解すれば、かなりの程度まで体裁の整った印刷が可能であると思います。皆さまのご意見・ご要望をお寄せいただけるとありがたいです。