plain2--ファイル変換・表示プログラム

by K.I
2004/01/12

Index


概要

この文章自体もplain2で記述されていますので 参考にして下さい。
1さらにフィルタを通してるだけですが。。

[top]

Plain2での文書の作り方

ファイルの作成

ファイルの拡張子を .pln として、DocumentRoot下に入れて下さい。

タイトルを付ける

最初にタイトルを付けます。
        『文書名は鍵括弧内に記述します』
                by 文書作成者
                2004/01/12

セクションタイトル

文書をセクション(章)で分けることが出来ます。
        1. 深さ1のセクション

        ...
        ...


        1.1 深さ2のセクション

        ...

        1.1.1 深さ3のセクション

        ...

プログラムリスト・例示

        [[E
        # apt-get update
        # apt-get install ldap-util
        ]]E
        # apt-get update
        # apt-get install ldap-util

箇条書き

        ・単純な箇条書きは、先頭に'・'(ビュレット)
        ・或いは'*'等を記述すればHTMLのリストに変換されます
         - 頭に空白を入れると入れ子になります。
          - ハイフンを使う時は、文書との間に空白を入れます。

番号を付けた列挙

(1) これも番号による列挙です。 (2) これも番号による列挙です。 (3) これも番号による列挙です。
         1. 番号を付けた列挙
         2. 章との違いは先頭に空白を入れることです
         3. こんな感じになります。

         (1) これも番号による列挙です。
         (2) これも番号による列挙です。
         (3) これも番号による列挙です。

タイトル付きの列挙

タイトル: タイトル付きの列挙 [タイトル] これもタイトル付き列挙
        タイトル:       タイトル付きの列挙
        [タイトル]      これもタイトル付き列挙

目次について

これは,この文書の最初にある目次を作成する機能です。
2漢字(EUC)も可能ですが、不具合が起こり易いので推奨しません。
3タイトルとの間に空行を入れないで下さい。

[top]

リンク機能

HTMLの利用のために、リンク機能を追加してあります。 リンクスポットの上にカーソルを乗せると色が赤に変わる4ので、リンクが分かりやすくなっています。

URL記述による自動リンク

URLを記述するだけでリンクが張れます。 メーラーを起動したい場合はこうします。

()によりURLを隠す

URLを()で括ると、こんなふうに リンクのURLを隠す事も出来ます。5但し、TeX文書ではそのまま表示されます。
Ex.     リンク(http//bluefish.orz.hm/index.html)      ←()は半角

フレーム指定

()によるリンクでは、こんなふうに リンクを別フレームで表示することが可能です。','で区切ってフレーム名6を指定します。
Ex.     リンク(http//bluefish.orz.hm/index.html,aaa)  ←()は半角

文書の参照

文書の参照は、例えば Plain2マニュアルという感じで参照可能です。 但し、TeXの文章では表示されません。/doc以下のファイルを、以下の記述で参照することが出来ます。ちなみに、Excel、 Word の文書もリンク可能です。7
Ex.     ROM自動発生仕様 ((s plain2x.pln))←()は半角、.plnは省略可

TEXT参照

文書参照と同様の機能ですが、こちらは文書をテキストで参照します。プログラムを実行せずにソースを表示させることが出来ます。例えばこの文書のplain2のソースを 参照することも可能です。
Ex.     参照 ((t plain2x.pln)) ←()は半角

フットノート

フットノート9も、なかなか便利な機能です。
Ex.     ((fフットノートの内容))        ←これを文書の中に書きます。()は半角

4これはCSSの設定だけど
5リンクする文字列の前に区切りの為の空白を入れて下さい。
6_parentを指定するとフレームが解除されて全体に表示されます。
7拡張子が、.xlsや.docの文書はExcel,Wordの文書として参照されます。
8ファイルのサーチにlocateコマンドを使っています。updatedbは1日1回だけ行われるためです。
9TeXと同じような感じで表示されます。フットノートは章の終わりに挿入され、リンクもされています。

[top]

文書リスト

plain2の対象となるファイルは、test-devの /home/public/doc/下のファイルですが、ディレクトリ毎のファイルのリストへリンクさせたり、文書中にリストを表示することが出来ます。

文書リストへのリンク

文書ディレクトリのリスト表示へリンクさせる機能です。(これは現在動いてません。。。) 例えば、デザインセンターの ドキュメントのリスト((l/doc))へのリンクです。
Ex.     リスト ((l /doc))←()は半角

文書リストの表示

リストを文中に表示することも出来ます。例えば/docのリストを表示します。 ((L/doc))
Ex.     ((L/doc)) ←()は半角

文書リストに表示しない


10*が1個だと表示はされますが、アクセスできなくなる。

[top]

テーブル

見た目に近い形で、表に変換する。

横棒をハイフン、縦棒を'|'で表して、テキストで作成した表をHTMLのテーブルに変換します。
+-------------+--------------+------+-----+---------------------+----------------+
| Field       | Type         | Null | Key | Default             | Extra          |
+-------------+--------------+------+-----+---------------------+----------------+
+-------------+--------------+------+-----+---------------------+----------------+
| ID          | int(11)      |      | PRI | NULL                | auto_increment |
| TesterID    | mediumint(9) |      | MUL | 0                   |                |
| Tester      | int(11)      |      | MUL | 0                   |                |
| ProgramName | char(24)     | YES  | MUL |                     |                |
| ProgramID   | mediumint(9) |      | MUL | 0                   |                |
| Date        | datetime     |      | MUL | 0000-00-00 00:00:00 |                |
| LotNo       | char(16)     | YES  | MUL |                     |                |
| LotNoID     | mediumint(9) |      | MUL | 0                   |                |
| Wafers      | tinyint(4)   | YES  |     | 0                   |                |
| CpWorst     | double       | YES  | MUL | 0                   |                |
| CpkWorst    | double       | YES  | MUL | 0                   |                |
+-------------+--------------+------+-----+---------------------+----------------+
上記の様に記述すれば、以下のような表に変換します。
Field Type Null Key Default Extra
ID int(11) PRI NULL auto_increment
TesterID mediumint(9) MUL 0
Tester int(11) MUL 0
ProgramName char(24) YES MUL
ProgramID mediumint(9) MUL 0
Date datetime MUL 0000-00-00 00:00:00
LotNo char(16) YES MUL
LotNoID mediumint(9) MUL 0
Wafers tinyint(4) YES 0
CpWorst double YES MUL 0
CpkWorst double YES MUL 0

複雑な表

+---------+------------+-----------+---+------------+------+---------+
|         |            |           |   |    YPM     |      |DataChack|
|DATA NAME| FILE NAME  |FLASH COUNT|DAT|------------| ADRS |---------|
|         |            |           |   |B/W|  SIZE  | SIZE | OK | NG |
+---------+------------+-----------+---+------------+------+---------+
+---------+------------+-----------+---+------------+------+---------+
| WLP-1   |SP240WLP0.M2|        234| N | - |  ----  | 0.50 |    |    |
+---------+------------+-----------+---+------------+------+---------+
| LC--2   |SP240LC00.M2|       9641| P | - |  ----  | 0.50 |    |    |
+---------+------------+-----------+---+------------+------+---------+
YPM DataChack
DATA NAME FILE NAME FLASH COUNTDAT------------ ADRS ---------
B/W SIZE SIZE OK NG
WLP-1 SP240WLP0.M2 234 N - ---- 0.50
LC--2 SP240LC00.M2 9641 P - ---- 0.50

箇条書を表に変換

表の内容が多い場合は表形式の記述は却って見難くなるので、箇条書きから表を生成することも出来るようにしてみました。(独自拡張)
        [[|ツール|長所|短所|
         HTML
          ・TEXTで記述するが文書の修飾や画像の貼付け等が出来るので、Webページによる情報発信を容易にした。
           ・HTMLの文法を習得する必要があり、ページの更新はあまり簡単に出来ない。
         PukiWiki
          ・Web上で編集が出来るため、Webの知識がなくてもWebページの作成が簡単に出来る。
           ・Webのフォームで編集するので通常のエディタが使えない。
         plain2
          ・Web上で編集は出来ないが、通常のエディタで編集可能。
          ・Webの知識が無くてもWebページの作成が出来るのはPukiWikiと同様。
          ・WordやExcel等のファイルとのリンク機能等の拡張がされている。
           ・Web上で編集出来ない。いまいちマイナーではある。
        ]]|
上記のように記述すると、以下のように変換されます。
ツール長所短所
HTML ・TEXTで記述するが文書の修飾や画像の貼付け等が出来るので、Webページによる情報発信を容易にした。 ・HTMLの文法を習得する必要があり、ページの更新はあまり簡単に出来ない。
PukiWiki ・Web上で編集が出来るため、Webの知識がなくてもWebページの作成が簡単に出来る。 ・Webのフォームで編集するので通常のエディタが使えない。
plain2 ・Web上で編集は出来ないが、通常のエディタで編集可能。
・Webの知識が無くてもWebページの作成が出来るのはPukiWikiと同様。
・WordやExcel等のファイルとのリンク機能等の拡張がされている。
・Web上で編集出来ない。いまいちマイナーではある。

PukiWiki互換テーブル

PukiWikiと同様11に、|で区切ることで、テーブルと認識するようにしてみました。(独自拡張)
マスクレイヤー説明
WLN1+21+33N-Well
LC(2+3)^0.5+4Locos
AL6+18+19Alminium
上記の表は、以下のように記述されています。
                                →最初に1行必ず空行を入れて下さい(PukiWikiテーブル認識のためです)
        |マスク|レイヤー|説明|  →1行目はタイトルになります。
        |WLN|1+21+33|N-Well|    →縦棒の位置は合せる必要はありません。
        |LC|(2+3)^0.5+4|Locos|
        |AL|6+18+19|Alminium|

11本当に同じかどうか分かりません。違いがあったら教えて下さい。

[top]

画像

画像ファイルの表示

Ex.     ((gイメージファイル名))        ←これを文書の中に記述。gifは拡張子省略可
        ((gイメージファイル名.jpg))    ←JPEGの場合は拡張子を付ける

ALT属性

Ex.     ((gイメージファイル名,ALTテキスト))    ←ALT属性付。()は半角

リンクを併用

図の大きさを指定

Ex.     ((gイメージファイル名,ALTテキスト,幅,高さ))    ←幅と高さの指定も可能

カーソルで絵の変わるリンク

ピカッと光る
Ex.     ((hリンク指定,画像1,画像2,ALTテキスト))        ←簡易リンクの拡張です

縮小画像と拡大画像へのリンク

Ex.     ((G画像ファイル名,ALTテキスト,縮小画像幅,縮小画像高さ,拡大画像幅,拡大画像高さ))        ←幅と高さの指定は省略出来ません
以下のファイルが、イメージ用のキャッシュディレクトリ15に自動生成されてリンクされます。
12LaTeXの場合は、図が任意の場所に入りません。これはTeXでは図や表はフローティングになっているためで、Web上での表示とは異なったものになります。
13画像のリンクは見えるとうざったいので、BORDER="0"指定にしています。
14これは、未生成の場合のみ実行されますので、2回目以降は実行されません。Imagemagickのconvertコマンドがインストールされている必要があります。
15/etc/plain2/plain2.confのwww_root/img_cache/に設定してディレクトリです。

[top]

数式表示

((m ... )) で括って、TeX形式で数式を書くと自動的にGIFファイルを生成16して数式を表示するようにしました。
Ex.     ((m \frac{\pi}{2} = 
        \left( \int_{0}^{\infty} \frac{\sin x}{\sqrt{x}} dx \right)^2 = 
        \prod_{k=1}^{\infty} \frac{4k^2}{4k^2 - 1} = 
        \sum_{k=0}^{\infty} \frac{(2k)!}{2^{2k}(k!)^2} \frac{1}{2k+1}) ))

16生成するのは初回だけで、既に生成済みの場合はそのまま使用します。

[top]

その他の機能について

CSSファイルの指定

参照の第2パラメータで、CSSファイルを指定出来ます。この文書のCSSファイルを変えると シンプルに とか、 bluefish風小林氏のページ風(ちょっとcssファイル拝借)に、同じソースでも外観を大きく変えることが出来ます。
Ex.     参照 ((s plain2x.pln,/css/simple.css)) ←()は半角

プログラムによる表示

cgi-bin17のプログラムを起動して、その出力を表示することが出来ます。
Ex.     今日の日付は ((Xdate))←()は半角

罫線

HTMLでは罫線が含まれると,その部分は単に等幅フォントに設定することで、 出来るだけ元の配置を保つ様にします。 しかし、LaTeXに変換する場合のplain2の色々な変換機能には、残念ながら未対応です。 ┌──┐ │ │ │ A │ ABC │ ┌┼──┐ └─┼┘ │ │ B │ └───┘

簡易指定リンク

httpで始まる リンクを簡易的に指定することも出来ます。http://部分を省略して記述します。同じhttpサーバの場合はアドレスも省略可能です。
Ex.     リンク ((h/doc/))      ←()は半角

改ページ

Plainファイルをそのまま印刷する場合や、HTMLでも印刷の時だけは 改ページの入るべき場所を指定できた方が良いので、 改ページコード(FF)で印刷時のみ改ページする機能を付けました。 以下のスタイルシートの機能を使います。18
        <P STYLE="page-break-before: always">
改ページコードの入れ方は、例えばemacsではM-x quoted-insert C-lで可能です。
17シェルコマンドを直接実行出来るようにした方が面白いのですが、セキュリティ上cgiのディレクトリのコマンドに制限してあります。
18残念ながら、IE4,IE5でのみ有効。NetscapeやHotJavaでも表示上は問題ない。

[top]

明示的な形式指定

Plain2は、基本的には見た目に揃えてTEXTを書けば、自動的に構造を認識して整形してくれます。

指定ブロックの形式指定

[[Xで開始、]]Xで終了です。Xの文字によって形式を指定します。
文書形式明示的指定説明
右寄せ A 右寄せ
コメントアウト C この指定の部分はWeb,TeXで全く表示されません
例示 E プログラムリストやコマンド入力例等の表示。これは指定した方が無難
数式 M LaTeX形式で数式を書くと、GIF画像に変換されて表示されます
センタリング N センタリング
RAW(変換なし) R 変換しないでそのまま出力します。WebページならHTMLを書けます
テーブル T ほぼ見た目通りで表に変換します。TABは4なので注意
テーブル 箇条書きを表に変換します。(独自拡張)

行内の一部形式指定

行内の、((Xから))までの間をある形式で表示したりします。 例えば フットノート19なら以下のように記述します。
        例えば フットノート((fこんな感じで章の最後にコメントを書けます。))なら
文書形式明示的指定説明
フットノート20 f 章の最後にコメントを表示してリンクされます
リンク部分にカーソルを持ってくると、フットノートの内容を確認できます
画像表示 g 行中に画像を表示します
カーソルによる画像切替え h カーソルを近づけると表示画像を切り替える
縮小画像→拡大画像へのリンク G 縮小画像を表示して、拡大画像にリンクされます
文書リストへのリンク((l/doc)) l 指定したディレクトリの文書リストへリンクされます
文書リスト L 指定したディレクトリの文書リストを作成して表示します |
太字 b 指定した部分を太字で表示します
RAW(変換無し) r 変換しないでそのまま出力します。WebページならHTMLを書けます
文書参照 s 指定した文書へのリンクを作成します。pln以外にも、doc,xls等が可能
文書のTEXT参照 t sと同じく、指定した文書へのリンクですが、TEXT形式で表示します

19こんな感じで章の最後にコメントを書けます。
20フットノートへのリンクの番号は自動的に付加されます。

[top]

改定記録

LaTeX文書との互換性が、問題ないレベルになったと思われる。
21実はインデックス生成後に不要な記述の削除や、整形を行っているだけ。
22displaymath環境は複数の数式を含むことが出来ないため。


comments powered by Disqus