HTMLフォーマッタ FORMHTML
これは HTML を拡張し、統一的な文書作成を可能にするための フォーマッタです。HTMLとTeXの中間的な性格をもちます。
基本的にHTMLですが、タグを追加し、スタイルを一定にするための 各種機能を装備し、PSファイル、TeX数式の張り込みの挿入を 可能にします。

  • あらかじめ定義したスタイルによって、全体の外観を統一できます。
  • 文章のまとまりである SECTION から自動的に目次ファイルを 生成します。そのため、大規模なドキュメント作成が可能です。
  • ヘッダ・フッタを定義することで、ひとつのソースファイルを 複数のHTMLファイルに分割したときに、同じヘッダ・フッタをつけます。
  • 既存のHTMLタグを組み合わせ、自分であたらしくタグを定義することが 可能です。独自のタグは出力HTMLには含まれないため、css, スタイルシート などに頼らずに スタイルを規定することが可能で、多くのブラウザに 対応可能です。
  • 図形の挿入を自動化し、HTML表示を高速化できる WIDTH, HEIGHT の 自動計算をします。
  • EPSファイルを自動的にGIFに変換して組み込むことが可能です。 これによってTeXで使用した図などがそのまま表示できます。
  • TeXの数式表記を自動的にGIFに変換して組み込むことが可能です。 これによって学術文章も容易に表すことが可能です。
  • perlにより記述されているため、移植は容易です。また、 JISで記載されたファイルも問題なく扱うことができます。
ここにマニュアルらしき物がありますが、試験用に作っているサンプルデータであって、まっとうなマニュアルはありません。
それでも、この変換システムにご関心がある場合は、下記よりダウンロードして下さい。 <#>asiswareAS IS 提供です。作った本人もよく分からなくなり始めて、自分の要望を自分でかなえるためにしょっちゅういじっているので、動かない瞬間の可能性もありえます。


ps2imgが別途必要です。

_LAST_MODIFILED:   <#>_LAST_MODIFIED
_CURRENT_TIME:     <#>_CURRENT_TIME
_SOUCE_FILE:       <#>_SOURCE_FILE
_SOUCE_SIZE:       <#>_SOURCE_SIZE
_DESTINATION_FILE: <#>_DESTINATION_FILE
ソースファイル(推奨拡張子 .bhtml)を用意し、 formhtml (オプション) ファイル名.bhtml とします。ファイルは複数指定でき、もしなければ、標準入力から 標準出力へのフィルタになります。実行するたびにインデックスファイル "sectionindex.html" を新作しますので、目次をまとめたい一群は 一括して指定します。

オプションには、formhtmlそのもののオプションとして -indexfile=目次ファイル 目次の出力先、デフォルトは sectionindex.bhtml があります。そのほか、条件付き処理のために指定します。

その他のオプション: -includepath= path: 追加するincludeパス (必要なら -includepath は複数指定可) -dsuffix= 出力ファイルの拡張子を指定 例: .bhtml -> .html .bhtml -> _s.html -timeformat= 時間形式指定 (YYYY/MM/DD hh:mm:ss) -timezone= タイムゾーン 0でGMT, 9でJST (9) -debug= debug-level: メッセージの表示レベル

なお、別途 GIF変換関係の処理のためライブラリ "psimglib.pl" が必要です。 すべてのタグ(含むHTML)を条件付きで処理できます。 source.bhtml: ## 通常(CSS版)

\TITLE\



## シンプル版(単純HTML)

\TITLE\



-------------------------- % formhtml source.bhtml 後者のOVERWRITEが無効=前者の OVERWRITE が有効 % formhtml -simple source.bhtml 後者のOVERWRITEが有効 基本的にはタグの中に IF="オプション" UNLESS="オプション" を 加えます。IF の場合には formhtml の起動時に "-オプション" が していされていた場合に有効、UNLESS の場合は指定されていない 場合に有効になります。何もない場合は常に有効です。

もし、閉じタグ( に対する )があった場合、 そこまで一括して無効化します。条件によって全体のスタイルを 変える場合などは、とあわせて使うとよいでしょう。

"ファイル名" で示されたファイルを文字通り挿入します。 ただ、読み込んで繋ぐだけなので、自分自身を読み込むと、たぶん、 おちます。 以後の処理結果を"ファイル名"で示したファイルに出力します。 デフォルトでは、ソースファイルの拡張子をとり、".html"を つけたファイルに出力されています。 このタグによってひとつのソースファイルを複数の出力に分割できます。

"ファイルタイトル" は目次ファイル sectionindex.html に出力する ファイルの見出しです。あれば見出しが出力されます。

どちらかを省略することが可能です。
(両方省略するとほとんどなにもしないタグになります)

へっだ
ふった
<DESTINATION>タグで複数の出力ファイルを指定した 場合に、すべてのファイルに自動的にヘッダ・フッタを挿入します。 <INCLUDE>によって、<HEADER> タグを含むファイルを 読み込むことで、ソースファイル群で統一的な設定が可能になります。 定義 以後"<タグタイプ>"というタグが現れる度に "定義" と 置き換えます。これのOVERWRITEたる由縁は、既存のタグさえ 置き換えてしまいます。

定義の中に "\オプション\"という文字列があった場合、 "<タグタイプ オプション="内容">" と表記すると、 "\オプション\" 部分が "内容" で置換されます。

本文書で説明されているタグ類は置換の影響を受けませんが、 以下に説明する

は 例外的に影響をうけます。目次を作成するなどの動作は 変化しませんが、見出しのスタイルはこれで変化します。 <TITLE>の定義では "\TITLE\" を入れることで、 タイトルの文字列が表示されます(それ以外の \\ は無視されます)。
1節分の文章(HTML)
節を区分するタグです。この外側にある文章は出力されません。 <SECTION>タグでは、節の見出しを作成するほか、目次ファイル sectionindex.html にリンク付きの見出しをつくります。

見出しは TITLE= で与えます。スタイルは <OVERWRITE>で 指定可能です。INDEX= は省略可能ですが、ある場合は目次には この文字列を使用します。また、"noindex" が指定された場合、 目次には出力されません。

</SECTION> は節を閉じます。スタイルは <OVERWRITE> で指定可能です。 目次の出力を別ウインドウや別フレームに出力するための規定で、 具体的には <A HREF="..." TARGET="ターゲット">という 出力になります。指定しなければ、特に TARGET= は生成されません。

こめんと HTMLにもコメントはありますが、このフォーマッタはそれには 反応しません。そのかわり、<COMMENT> </COMMENT> で囲まれた領域を無視します。
条件付きでコメントアウトする場合は こめんと とします。 これは、<COMMENT>タグは、文字列"</COMMENT>"までをコメントにします。 そのため、IF=(UNLESS=)を付けた場合、<COMMENT>にはIFを付けられません。 そこで、ダミーを一つ入れます。IF=が満たされない場合にも相殺します。 auau <#>subtag → auau !-subtag-! → auau 文書上で置換します。<SUBSTITUTE>によって置換の登録を行い、<#>によって置換を実行します。 たとえば、用語解説をつくったりするとき、キーワードそのものを置換対象にして、リンクしたいところで、<#>で囲むという使い方ができます。
さらに強力で危ない?のが、!- -!です。 <#>と同様に機能しますが出力直前に置換を行うため、制限がありません(SECTIONの中身は通常は置換できない、PROTECT中は置換できないなど)。 ただ、何が起こるかよく分からない機能です。 以下は定義済み置換です。 _LAST_MODIFILED: ソース更新日 <#>_LAST_MODIFIED _CURRENT_TIME: 現在時 <#>_CURRENT_TIME _SOUCE_FILE: ソースファイル <#>_SOURCE_FILE _SOUCE_SIZE: 同サイズ   <#>_SOURCE_SIZE _DESTINATION_FILE: 出力ファイル <#>_DESTINATION_FILE .... formhtmlで出力されたファイルには、セクションごとに<A NAME="">が付与されています。内容は章のタイトルそのものですが、JISのシフトコードなどの有害コードを除去した物になっています。 そのままだとリンクしづらいので<A代わりに使える物を用意しました。
また、タグにRWSをいれておくと、オプション -dsuffix による置換を行います。 ※ CSS版とCSS無し版で比べると違いがあります。 <PROTECT> <PROTECT> </PROTECT> で囲まれた領域は HTML の タグ的にほごされます。この間にある <, >は &lt;, &gt; に変換されます。ソースリストなど、無意識に <, > を含む 文書を安全に出力できます。 #c00000 #0000ff #ff00ff #ff00ff #0000ff #c00000 #0000ff #ff00ff #ff00ff #0000ff C言語ソース シェルコマンド <PROTECT>の仲間ですが、それっぽいキーワードに勝手に色を付けます。 見やすくなるかは不明です。また、適当に置換しているのでかなりいい加減です。 SHELLのほうなんか、%と#しかみてません。 #include int main(void) { // コメント printf("%s","hello world!\n"); } /* コメント */ #include int main(void) { // コメント printf("%s","hello world!\n"); } /* コメント */ % ユーザのコマンド # ルートのコマンド % ユーザのコマンド # ルートのコマンド
<IMG SRC=...>の上位タグです。<IMG SRC=...>を使う場合に 幅、高さを指定しておくと今時のブラウザは表示が速くなったりしますが、 いちいちチェックするのは面倒です。<FIG> はGIF,JPEGについては 自動的に幅・高さをチェックします。"倍率" は縦横相似に画像を伸縮させます (WIDTH, HEIGHT のみ)。WIDTH, HEIGHT を明示的に指定した場合は、その 値を使用します。

<FIG>タグにはもうひとつ、PostScript(PS)ファイルの自動変換という 機能があります。画像ファイルとしてPSファイルを指定すると、自動的に GIFに変換し、リンクしてくれます。
この場合、オプションが増えて となります。幅などをなにも設定せずに使用すると、PSファイルに 含まれるBoundingBoxから 幅と高さを計算し、その大きさのGIFを生成します。 逆にBoundingBoxは必ず含まれていなければなりません。必要なら ps2epsiを使用します。
変換結果は DEST= が指定されていればそれに、指定されていなければ、 "画像ファイル.gif"というファイルに出力されます。

WIDTH および HEIGHT についてですが、指定の仕方で結果が変わります。

  • WIDTH, HEIGHT ともに指定:指定サイズのGIFファイルを生成
  • WIDTH のみ指定:幅は指定通り、高さはPSファイルの縦横比に 比例して算出。
  • HEIGHTのみ指定:WIDTHのみの場合の逆。
  • 指定なし:BoundingBoxのサイズそのまま。
さらに、COLOR= で色を指定(red などの色文字列もしくは#RRGGBBの16進RGB形式) を指定すると、図の背景色を指定可能です。図をページに溶け込ませる場合に 有効です(<BODY BGCOLOR="色">と一致させる)。DEFAULT_BGCOLOR= で 指定した場合には以後のPSファイルの背景はすべて指定色になります。
なお、作図段階で白で上書きして線を消した、という様な場合には そこだけ白くなってしまいます。
ファイルの変換は、PSファイル・GIFファイルの変更日時と縦横サイズを 監視して、もしPSが古くてサイズも問題なければ、変換作業をスキップします。 色の変更には対応しませんので PSファイルをtouchするか、GIFを 削除するかしてください。 <THUMBLINK>は<FIG>とほとんど同じです。 ただし、インラインイメージは縮小版を貼り、原図にリンクします。 そのサイズはTWIDTH,THEIGHTで決めます。 FORMAT: 適当なフォーマット文字列  
... がファイルへのリンクに展開される(無ければ両端) \NAME\ ファイル名 \DATE\ 更新日 \TIME\ 更新時刻  \SIZE\ サイズ \IMG\ IMGで指定されるイメージ  \CAPTION\ 引数のCAPTION FORMAT, IMG, CAPTION, ALT は DEFAULT_??? が指定可能 ファイルや映像のダウンロードのフォーマットを統一します。 DEFAULT_FORMATを指定しておくことにより、ファイル名を指定するだけで サイズなどを伴ったダウンロードリンクを作ることが出来ます。 HTMLできれいな数式を埋め込みたい、という要望は古くからありました。 手っ取り早いのは なんらかのソフトで数式を表示し、それをキャプチャ する、というものです。ですが、これはわりと手間がかかります。 そこで、その処理をTeXを使って自動化したのがこの機能です。 TeXの数式の形式で SRC を記述すると、GIFファイルに変換してくれます。

DEST= が指定されている場合はそのファイルを使いますがデフォルトでは "ソースファイル名.eqn通し番号.gif" に格納されます。大きさは MAG= で指定します。倍率に比例して大きくなります。COLOR= は <FIG>同様に背景色を指定します。それぞれ DEFAULT_MAG, DEFAULT_BGCOLOR で 以降のデフォルトを変更可能ですので、最初に一度指定すれば、 いちいち指定する必要がなくなります。

例: <FIG>同様、変換作業は最低限のみにしています。変換の 情報を格納するため "GIFファイル.tgi" というファイルが出来ます。 このファイルは最終的には不要なので、今後変換しない場合には 削除してもかまいません。

なお、この変換では pLaTeX → dvips → ps2epsi → gs → ppmscale → ppmtogif と多数のプログラムが動作するため、 処理に時間を要します。