![]() |
![]() |
H1:” のオプション
-a” あるいは “+a” オブション

tt の処理プロセッサ ptt は W3C の
Valid HTML 4.01 Transitional
として認定される HTML ドキュメントを生成します。
工事中
2007/10/16 更新
2007/10/02 改訂(ver.3.1)
2007/09/23 改訂(ver.3.0)
2005/07/15 更新
H1:” のように、タグは行の開始位置から書き始め、":" で終わります。
< > &
は原則として HTML のタグや特殊文字として扱われます。但し “<” や “>” や “&” の両側が空白の場合には特殊文字としての扱いは受けず、ブラウザではそのまま見えます。(その際には両端の空白は削除されます)
http://ar.aichi-u.ac.jp/semi/
のようにインターネットでアドレスを指定する文字列です。自動処理されるのは “http://” で始まる文字列です。 “http” の他、 “https” や “ftp” が使えます。二重引用符で始まる場合にはリンクされません。
<” で始まり “>” で終わる行は Ptt の加工を受けません。Ptt の加工を受けるようにするには行頭を空白で始めるとよいでしょう。(Ptt 3.2 の新機能)
script style pre textarea form select iframe
tt タグの中には、そのタグが使用している HTML タグの属性が指定できるものがあります。それらの形式は
属性名="値" 属性名="値" ...
のようなものです。「値」の中には空白を入れてはなりません。クラスの指定は一番左に書いて下さい。また、クラスに関しては簡単に値だけで指定できます。指定できるクラスはスタイルシートで定義されています。例えば画像であれば
I: cat.jpg width="400"
のように表示幅を指定できます。
値は必ず二重引用符で囲みます。どのような属性が指定できるかはタグ毎に異なります。広く使えるのはスタイルを示す style 、配置を示す align、表示幅を示す width です。スタイルシートでクラスが定義されていれば class も使えます。
スタイルに関する情報を HTML 属性で指定するのは可能ならば避けるのが好ましく、一般的な好みはスタイルシートを使用するのが良いでしょう。
HTML の h1, h2, h3, h4 に対応して、以下のタグが定義されています。
H1 H2 H3 H4
“H1:” タグは必須です。 “H1:” に続く文字列はページのタイトルとして大きな文字で表示されるばかりではなく、ウィンドウの名前としてウィンドウの上部に表示されます。
目次は表題を基に自動的に作成されます。但し
H1:” のオプションとして与えます
H1:” のオプション H1: [-lteq] 表題
ここに [ ] の中はオプションです。
" を “ と ” に変換する。つまり単に "二重引用符" と書くだけで、 “二重引用符” に変換される。このオブションを指定する時には -e オプションも指定して下さい。でないと、大抵のブラウザは奇麗な表示になりません。
なお、このページは “-eq” オプションで作成されています。二重引用符の見え方はブラウザとフォントに依存しています。ブラウザで日本語文字フォントが指定されている場合には、“ と ” は(まるで全角文字フォントで代用したかのように)大きな空白が発生する場合があります。(Mac の場合、Safari や Opera は奇麗な二重引用符を表示しますが Camino や Firefox はダメです。それから Windows の場合 IE7.0 の二重引用符はため息が出る程ひどい!)
リストの表現には以下の3つのタグが準備されています。
UL:
OL:
DL:
リストの項目は “- ” で開始します。すなわちマイナス記号で行を開始し、空白を1つ以上続けます。
“UL:” は省略できます。従って番号づけない項目は単に
- 項目1 - 項目2 -
のように、マイナス記号の後に空白文字を入れて行を開始します。
定義付けリストは
DL: - 名前1 名前1の説明 - 名前2 名前2の説明 -
のように書きます。
リストの項目の終了は空行あるいは “-” だけの行、あるいはヘッダタグによって示されます。
筆者の経験ではリスト項目の終了は常に “-” で示すよう習慣づけた方が良い。
-a” あるいは “+a” オブションリストに対して
-a
あるいは
+a
のオプションがある場合には最初のフィールドはリンクであると見なされます。すなわちこの場合には項目は
UL:-a - パス1 説明文1 - パス2 説明文2 -
のように書きます。ここにバスとは「説明文」をクリックしたときに表示されるファイルへのパスです。パスは表示されません。パスを表示させるには
UL: +a
の指示を使います。
画像の取り込みは “I:” タグまたは “II:” タグを使って行われます。
一つの画像の取り込みは
I: cat.jpg
のように書きます。この結果は

のようになります。
パスに続けて表示の大きさを指定することもできます(注)。例えば
I: cat.jpg width=400
とすれば、横幅 400 ピクセルで表示します。
画像はセンター配置です。画像に続けて画像の説明を書く事が多いでしょう。その場合には C: タグあるいは CC: タグを使ってセンター配置で説明するとよいでしょう。
一般的な形式は
I: 画像ファイル [表示サイズ] [その他のオプション]
複数の画像を並べるには
II: 終了文字列 [オプション0] 表題1 画像ファイル1 [オプション1] 表題2 画像ファイル2 [オプション2] ... 終了文字列
画像配列はテーブルを用いて実現しています。
「オプション0」はテーブル全体に関するオプション(テーブル属性)で、実際には
width="90%"
のように、行幅に対する画像配列の幅を “%” で指定するのが唯一の使い方だろうと思われます。このオプションを省略すると、画像が1個の場合には 60% 、複数の場合には 90% が仮定されます。
「オプション1」、「オプション2」... はテーブルの個々の要素に対するオプションで、やはり実際には
width="30%"
のように、個々の画像幅の占める割合を “%” で指定するのが唯一の使い方だろうと思われます。 これらを省略すると均等分割として扱われます。
例えば
II:! リリー lily.jpg アイリス irise.jpg ポーチェラカ portyeraka.jpg !
で次のようになります。
|
|
|
| リリー | アイリス | ポーチェラカ |
IE6.0, IE7.0 では正しく表示されない。多分 IE5.0 も同様であろう。
IE には問題が多すぎる!
Win系 では Opera, Firefox は正しく表示される。
OSX では Safari, Firefox, Opera も OK
(2007/02/09)
理想的には画像の高さで自動調整してくれた方が良いのですが、HTML の仕様のなかにはそれを可能にするものは見当たりません。
クリックすれば別頁に大きく表示される。
なお、この写真のポーチェラカは変わり花である。
画像配列にはテーブルが使用されており、オプションは table の td タグに与える HTML の属性を指定できる。
例えば
II:! リリー lily.jpg width="30%" アイリス irise.jpg width="40%" ポーチェラカ portyeraka.jpg width="20%" !
で
|
|
|
| リリー | アイリス | ポーチェラカ |
となる。合計 100% になっている必要は無い。
表題に空白文字が含まれる場合には '(引用符) または “(二重引用符) で囲む。
初等的ではあるが、ありふれたテーブルから解説します。例えば
| 名前 | 年齢 | 性別 |
|---|---|---|
| alice | 16 | 女 |
| bob | 20 | 男 |
を表示するには
Ta: 名前 年齢 性別 alice 16 女 bob 20 男
と書きます。テーブルの終了は空行で示されています。
この例では、テーブルはマトリックス形で、どのデータにも空白文字が含まれていません。最初の行は、項目の説明欄で太字になっています。各行の最初の項目は、行の説明で、やはり太字で表示されています。
上の例では空白文字がデータを区切っていました。それではデータに空白が含まれる場合にはどのように書けばよいのか。誰でも考える事でしょうが、データを区切る文字(区切り文字)を指定できれば解決できます。区切り文字を “|” として指定するには
Ta: | 名前 | 年齢 | 性別 alice | 16 | 女 bob | 20 | 男
のように、 “Ta:” に続いて “|” を書きます。
テーブルの表現は単純形、すなわち、碁盤の目のような形のものを基礎にしています。tt 形式での記述は
Ta: 区切り記号 属性 Ca: テーブルの説明 項目名:書式 項目名:書式 項目名:書式 行説明 区切り記号 データ 区切り記号 データ 行説明 区切り記号 データ 区切り記号 データ
のようなものです。
区切り記号は項目名やデータを区切る記号で1文字で示します。省略すると空白文字が区切り記号として使用されます。「属性」には HTMLの table タグの属性を
| 属性名 | 値の例 |
|---|---|
align |
right left center |
width |
40% |
などで
Ta: align="right"
のように指定します。詳しくは HTML に関する解説書を見てください。
align="center"
が使用されます。Ptt 3.1 では表のデザインは全てスタイルシートで行われます。
C:” の行)は省略できます。
Cap:” になっていましたが、ptt でこの旧形式を使うと警告メッセージがでますが正しく処理されます。
項目名が全て省略された場合には、その行は表示されません。例えば
Ta: | | | alice | 16 | 女 bob | 20 | 男
と書くと
| alice | 16 | 女 |
|---|---|---|
| bob | 20 | 男 |
となります。また項目の書式で “-” を指定するとその列は表示されません。例えば
Ta: | :- | | alice | 16 | 女 bob | 20 | 男
と書くと
| 16 | 女 |
| 20 | 男 |
となります。
一部の項目名が省略された場合には、その前の項目名が使用されます。例えば
Ta: | :- | 2000 | | | 2010 | | | <b>名前</b> | <b>年齢</b> | <b>性別</b> | <b>名前</b> | <b>年齢</b> | <b>性別</b> | <b>alice</b> | 16 | 女 | <b>alice</b> | 26 | 女 | <b>bob</b> | 20 | 男 | <b>bob</b> | 30 | 男
は
| 2000 | 2010 | ||||
|---|---|---|---|---|---|
| 名前 | 年齢 | 性別 | 名前 | 年齢 | 性別 |
| alice | 16 | 女 | alice | 26 | 女 |
| bob | 20 | 男 | bob | 30 | 男 |
となります。
この表をグローバルな視点で見ると、表の中に表が埋め込まれていると解釈できます。そのような見方からこの表を構成することもできます。後の「長い文字列定義」を参照して下さい。
項目の書式は次のように指定できます。
項目名:<表示幅 |
データを左寄せで配置します |
|---|---|
項目名:>表示幅 |
データを右寄せで配置します |
項目名:表示幅 |
データを中央に配置します |
項目名:-表示幅 |
この項目の列は捨てられます(データを隠すのに便利です) |
ここに書いた書式の説明には実はテーブルが使用されており、このテーブルは次のように記述されています。
Ta: | noborder width="70%" align="center" :<150 | :<70% 項目名: < 表示幅 | データを左寄せで配置します 項目名: > 表示幅 | データを右寄せで配置します 項目名:表示幅 | データを中央に配置します 項目名:-表示幅 | この項目の列は捨てられます(データを隠すのに便利です)
行単位でセンター配置を指定する時の構文は
C: 文
です。
複数の行を纏めてセンター配置を指定する時の構文は
CC: 終了文字列 文1 文2 ... 終了文字列
です。
プログラムコードを示すには、タブで書き始める方法の他に、
P: 終了文字列 [tab=n] プログラムの内容 終了文字列
の形式を使用できます。この形式を使用すると、書かれた文字がそのまま表示され、背景に色が付けられます。(実現にはテーブルが使用されています)
タブサイズはオプションとして指定できます。省略されれば tab=8 が使用されます。
例えば次の C のプログラムコードを表示するには
#include <stdio.h>
main(){
printf("OK\n");
}
tt 形式では
P:!
#include <stdio.h>
main(){
printf("OK\n");
}
!
と書きます。(プログラムをそのまま Cut&Paste で持ってこれる事に注目しましょう)
注釈は
注釈の内容は右にインデントされて表示されます。例えば次のようにです。
これは長い注釈の例です。長い注釈の中では
なども扱えます。例えば次の画像は長い注釈の中で扱われています。

でもこれはまだ新しい機能なので殆どディバッグされていません。
文や単語に注釈を1行で付けたい場合には
N: 注釈
の形式で表します。
文や単語に注釈を付けたい場合には
NN: 終了文字列
注釈
終了文字列
の形式で表します。
注釈は終了文字列またはヘッダによって終了します。
長い注釈には水平線によって視覚的な効果を持たせることができます。
これは次のように書かれています。
NN:! <hr> 長い注釈には水平線によって視覚的な効果を持たせることができます。 <hr> !
引用には HTML の blockquote が使用されています。
「短い引用」とは1行からなる引用文です。
Q: 引用
2行以上の引用は
QQ: 終了文字列
引用
...
終了文字列
と書きます。
「コメント」の部分は翻訳された HTML の文書の中には現れません。プログラミング言語におけるコメントのような機能を果たします。
tt 形式の文書の中にコメントを1行で書きたいときには
#: コメント
の形式で入れることができます。
tt 形式の文書の中にコメントを何行にも渡って書きたいときには
##: 終了文字列
コメント
終了文字列
の形式で入れることができます。
tt の加工を受けない純粋な HTML のモードに移行できます。そのためには
!: nantarakantara この間の文は純粋な HTML の文書として扱われる nantarakantara
のように、
!: 終了文字列
で純粋 HTML モードを終了させる文字列を定義します。
!」。びっくりマークだけの文など滅多に現れないからね。このモードは古い HTML 文書を処理するのに特に便利ですね。
注釈: 言語設計の問題: 純粋 HTML モードも、他のブロックモードと同様に “!” と “!!” を定義した方が良かったと思いますね。結果的には「統一性」を破ってしまいました。
Ptt 3.2 では純粋 HTML モードのニーズは殆ど無くなりました。現在では保険的な機能になっています。
D: 文字列 定義
の形式で、文字列が定義でます。ここで定義された文字列は定義で置き換えられます。例えば
D: { <code>
D: } </code>
となっていると、文中の
{sample.txt}
は
<code>sample.txt</code>
に変換されます。この例では文字列は1文字で構成されていますが、複数個の文字で構成しても構いません。
定義に必要な行が複数に渡る場合には “DD” を使えます。
DD: 文字列 終了文字列
定義の内容
...
終了文字列
この定義の内容を tt の規則に従って変換したい場合には “DD+:” が使えますが、あまり推奨はしません。
注意: Ptt ver.3.0 から仕様が変更されています。ver.3.0 の “DD:” は ver.3.1 では “DD+:” の意味です。
“DD+:” はテーブルの中に複雑な内容、例えばテーブルを書きたい場合などに役に立ちます。
| 2000 | 2010 | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
これは次のように書いています。
DD+: $1 !
Ta: noframe
名前 年齢 性別
alice 16 female
bob 20 male
!
DD+: $2 !
Ta: noframe
名前 年齢 性別
alice 26 female
bob 30 male
!
Ta: nopad align="center"
:- 2000 2010
- $1 $2
空行はテーブル記述の終了を表しており、 “DD+:” の中でも必要です。ここで “noframe” と言うのは、外枠の無いテーブルです。この場合には次のようになっています。
| 名前 | 年齢 | 性別 |
|---|---|---|
| alice | 16 | female |
| bob | 20 | male |
これをテーブルに埋め込む場合には、padding されていると、罫線が繋がりません。 “nopad” は padding なしのテーブルのクラスです。 “nopad” も “noframe” もスタイルシートで定義されています。
Ptt 3.1 では、複雑なテーブルの構成を、「テーブル要素の中へのテーブルの埋め込み」によって解決しています。
D: 文字列
または
DD: 文字列
によって「文字列」の定義を取り消します。
“DD+:” の使用は屢々 HTML の正しい記述スタイルから外れる原因を作ります。これは HTML のパラグラフの考え方が、我々の日常的な感覚と外れていることと関係があります。例えば Ptt は
<div> alice X bob </div>
に出会った時に、 “alice” から “bob” までを一つのパラグラフと見なして、正しく
<div> <p> alice <br>X <br>bob </p> </div>
を吐き出します。しかし “X” が
DD+: X ! Q: carol !
と定義されている場合にも同様に一つのパラグラフと見なして
<div> <p> alice <br><blockquote>carol</blockquote> <br>bob </p> </div>
となりますが、これは HTML の正しい規則から外れます。HTML では “<p>” と “</p>” の間にブロックタグを入れてはならないからです*。この問題の解決は非常に難しい問題で、また解決する価値があるかどうかもはっきりしません。(僕には禁止する理由もよく分からない!)
注*: http://www.w3.org/TR/html401/struct/text.html#h-9.3
Ptt ver.3.1 では正規表現による変換を次のようにサポートしました。
RD: 正規表現 置換文字列
によって正規表現のパターンマッチングに従って置換が行われます。正規表現や置換文字列に空白が含まれる時にだけ、引用符(' または ")で囲みます。
取り消しは
RD: 正規表現
です。正規表現については Python のマニュアルを参照して下さい。
特に指定しなければドキュメントルートの
style.css
が使用されます。この置き場所は各自の事情があるので ptt のソースコードを変更してください。
S: スタイルファイル
SS: 終了文字列
スタイル定義
...
終了文字列
Ptt ver.3.1 で使用されている新しいスタイルシートではテーブルの罫線スタイルが指定されており、その場合には HTML のテーブルタグの罫線の指定
<table border="0">
が無効になります。従って罫線を除去するためにテーブルタグ “Ta:” で “border=0” と指定しても効果はありません。新しいスタイルシートではテーブルのクラス “noborder” が定義されているので、罫線の無いテーブルを作る時には “noborder” を指定して下さい。
実験的にスタイルシートの効果を確認したい場合があると思います。その場合には “S:” または “SS:” を使います。これらは “H1:” の前に書きます。
次の形式で与えます。
BO: オプション
この結果は
<body オプション>
となります。このタグは “H1:” タグの前に書きます。
tt 形式は任意の HTML タグを文章中で使用できるのでリンクの扱いは HTML と同じに行えますが、リストの “-a” や “+a” オプションのように簡略化された方法はとても便利です。リストの外でも同様に
-a: パス 説明文
あるいは
+a: パス 説明文
の形式を使用でできます。 “-a” の場合にはパスは表示されませんが、 “+a” の場合にはパスは表示されます。
HR: 属性
でルーラを表します。
属性には hr タグの属性を指定します。特に指定しなければ
ですが、例えば
HR: size="10" width="50%" align="right"
で
となります。
hr タグの color 属性は HTML 4.0 ではサポートされていません。目立たさせるために color を使いたくなることもありますが、これを理解しないブラウザが存在する事を自覚しておいて下さい。
HR:” は蛇足だったかも知れない。 “<hr>” と書けば良いのだから... これも “<div>” と同じ処理をすればよいだけだ。LaTeX でお馴染みの、参考文献の番号の自動割当です。
リファレンスリストは
<bib{キー}> 引用文献
の形式で書きます。リスト形式にはしません。ptt が自動的に文献番号を振ります。
本文の中では
本文<cite{キー}>本文
のように本文に埋め込みます。
出来上がりの具体例は
http://plan9.aichi-u.ac.jp/rit/rit-1.4.html
を見て下さい。これの基になった tt ファイルは
http://plan9.aichi-u.ac.jp/rit/rit-1.4.tt
です。このケースでは “html2tex” を使って rit-1.4.html を LaTeX に自動翻訳できるように rit.1.4.tt が書かれているため、幾分複雑になっています。
リストの label と ref に相当する Ptt 3.2 の仕様です。
| LaTex | Ptt |
|---|---|
\label{foo} |
<lab{foo}> |
\ref{foo} |
#ref{foo} |
ここに “foo” は任意のラベル名である。また “<lab{foo}>” は H2:, H3:, H4: の直後の行に置きます。
例えば
...
look <a href="#ref{abc}>ABC</a>
...
H2: ABC
<lab{abc}>
...
の様に書きます。ラベル名(ここでは “abc” の中に空白文字は使えません。
Ptt の記法を LaTex の記法と同じにしなかったのは html2tex のようなツールとの関係である。
先頭行が
#!/
で始まる場合にはプログラムが埋め込まれると仮定されます。その場合にはプログラムコードは
${
プログラムコード
}$
の形式で挿入されるとして rit に適した形式で処理します。これは筆者のサーバ向けの仕様です。
漢字空白に対して警告メッセージが表示されます。意識的に漢字空白を使用したのであれば、この警告メッセージは無視して構いません。
以下の表の中で
<br>で改行を表現します)
| タグ | 意味 | 形式 | 作用範囲 |
|---|---|---|---|
H1: |
表題 ( H2:,H3:,…,も同様) |
H1:[-lte] 文字列 |
行末まで |
BO: |
body オプション | BO: オプション |
行末まで |
S: |
スタイルシート | S: URL |
行末まで |
SS: |
インラインスタイルシート | SS: 終了文字列スタイル 終了文字列 |
終了文字列まで |
UL: |
番号なしリスト (省略可能) |
UL:[-a][+a]- 説明 - 説明 … |
空行まで |
OL: |
番号付けリスト | OL:[-a][+a]- 説明 - 説明 … |
空行まで |
DL: |
定義リスト | DL:[-a][+a]- 説明 - 説明 … |
空行まで |
-a: |
パスにリンクを張り隠す | -a: パス 文字列 |
行末まで |
+a: |
パスにリンクを張り隠さない | +a: パス 文字列 |
行末まで |
C: |
センター配置 | C: 文字列 |
行末まで |
CC: |
複数行にわたるセンター配置 | CC: 終了文字列テキスト 終了文字列 |
終了文字列まで |
I: |
画像 | I:パス [サイズ [属性]] |
行末まで |
II: |
画像の配列 | II: 終了文字列 [属性]表題 画像ファイル [属性] ... 終了文字列 |
終了文字列まで |
HR: |
ルーラ | HR: [属性] |
行末まで |
Ta: |
テーブル | Ta:[記号] [属性][ C:文字列]文字列[:書式] [記号] 文字列[:書式] [記号] … 文字列 [記号] 文字列 [記号] … … |
空行まで |
Ca: |
キャプションTa:の直後に使用する |
Ca:文字列 |
行末まで |
P: |
プログラムコード | P:終了文字列 [tab=n]プログラムコード 終了文字列 |
終了文字列まで |
N: |
短い注釈 | N:注釈 |
行末まで |
NN: |
長い注釈 | NN:終了文字例 [属性]注釈 ... 終了文字列 |
終了文字列まで |
Q: |
短い引用 | Q:引用 |
行末まで |
QQ: |
長い引用 | QQ:終了文字例 [属性]引用 ... 終了文字列 |
終了文字列まで |
#: |
コメント | #:文字列 |
行末まで |
##: |
長いコメント | ##:終了文字例コメント 終了文字列 |
終了文字列まで |
D: |
文字列定義 文字列1を文字列2で置き換える |
D: 文字列1 文字列2 |
行末まで |
DD:DD+: |
文字列定義 文字列を文字列ブロックで置き換える |
DD: 文字列 終了文字列文字列ブロック 終了文字列 |
終了文字列まで |
RD: |
正規表現による置換 | RD: 正規表現 置換文字列 |
行末まで |
!: |
純粋HTMLモード | !:終了文字列HTMLコード 終了文字列 |
終了文字列まで |
DD:” を使って書いてください。
H1:” などのヘッダを書いても変換はしません。
DD+:” を使って作成できますが、推奨しません。擬似二重引用符の自動変換アルゴリズムは次の考察に依存しています。
,.;:!?” の中の文字のいずれか
日本語の文書の中では「。」、「、」などの文字に関するルールをさらに追加すべきですが、今の所それを行っていません。特に “、” や “。” に続く二重引用符には注意して下さい。