[PREVIOUS CHAPTER] [NEXT CHAPTER]
2 WIX Language

../utility_programs 6.10

"WIX" == "With Index and X-reference"

WIX言語はFMLのドキュメンテーション言語です。
plaintext,html,nroff,texinfoをどう時に生成するという目標のために作られ
ました。が、plaintext,htmlにしか対応していません。ドキュメントを書く人
以外には無関係です。僕は全部これを利用して書いていますが…

言語的には手抜をしているNROFFのような感じです。
注意: ドキュメントへのパッチを無理にWIXで書く必要はないです。
      書いた人は今だかつていませんが…;)


2.1	WIX Language Introduction

WIX は4種類のフォーマットのドキュメントを同時生成するために考え出され
た(妥協ともいう)言語です。名前の通り Index や Xref(Cross Reference)は
重視しますが、大文字、イタリックのような見栄えは何一つ考えていない言語
です。それゆえ、言語仕様は必要最小限のもののみを実装しています。

言語自体はおおむね nroff like + texinfo like 折衷版くらいです専用のフォー
マッタの bin/fwix.pl を使って4種類のフォーマットでマニュアルを生成す
るという野望を持っていますが、現状ではテキストとHTMLの生成しかできませ
ん(FML 2.2)。

doc/ はほとんど全部 wix から作られた plain text です。同じ wix ファイ
ルからHTML版(doc/html/)は作られています。html 版はソースを広げたTOP
directoryで『make doc』でつくってください。

WIX Language はあくまでも

	1	nroff 覚え直すのも面倒臭い
	2	texinfo, html, nroff, plain text 
		4種類を同時に生成する

ために作られたものです。単に僕が書きやすいか否か?で言語仕様が決まって
ます:-)。二か国語対応です(でも翻訳してる暇がないといいつつ2.2では全て
ニか国語になりました;-)

2.2	WIX 言語仕様

WIX は 行の先頭が . で始まっている行をコマンドとみなします。次に示すよ
うなコマンドの後につづく部分は全部が新しい構造の一部とみなされます。つ
まり .S (Section宣言) は新しいセクションの始まりを意味します。それ以降
のパラグラフはどれも新しいセクションの一部です。空行があったら次のセク
ションのようにはカウントしません。

[章立て/構造]

	.P	Part
	.C	Chapter
	.S	Section
	.SS	Sub Section 

	.A	Appendix	Appendix (付録)

TeX も同様なデータ構造を持つので理解はしやすいと思います。

	.if	if
	.fi	end of if

	.return	return at this line

[索引]

	.key	KEYWORD
	.k	KEYWORD

KEYWORDと現在の Chapter.Section との対応づけ。索引に使われる

[ラベルづけ]

	.label	KEYWORD
	.l	KEYWORD

現在の Chapter.Section にラベルをつけ、xref でたどれるようにするための
もの。KEYWORDと現在の Chapter.Section との対応づけに使われます。
xref が使うポインタで索引にも使われます。ラベルの参照は

	.xref	KEYWORD
	.seealso KEYWORD

この Cross Reference は文中では

	see also 10.3 

のように変換されます。

	.ptr{KEYWORD}

役目は xref と同じだが see also の部分は付け加えられない。

[引用]

	.q	引用開始
	.~q	引用終り

これだけがセットで使われているが、.q からは行の最初に3文字スペースでイ
ンデントし、 .~q のところまでそれが行なわれる。
#そのために 終りを示す必要がある。

LaTeX でいえば 

	\begin{quote}
	\end{quote}

構文にあたる。

○特殊な命令

	.#		COMMENT
	.comment	COMMENT

この行はコメント

	.include	FILE

FILE をその部分に挿入する。

2.3	WIXの多国語対応

文章の構造を越えたメタなレベルで2か国語(日本語、英語)を対和訳的に記述
し、あとで分離生成する機能があります。対にしておかないとどの文章の翻訳
がどこに当たるのかわからなくなるので;-)、一つのファイルに対訳で表現し
後で分離しています。

構造とは別のレベルの話なので別の構文が用意されています。

○記述方法

行の最初の=コマンドもしくは空行を区切りとみなし、区切りで挟まれた
文章("パラグラフ")を単位として切りわけます。"パラグラフ"中、

	1)EUCを含まないもので、=E〜(区切り)で囲まれた部分→英語のみ
	     〃     、上記以外         →日英両方

	2)EUCを含むもの→日のみ

のパラグラフに変換されます。現在用意されている切替えコマンドの一覧:

	=E
	以降、EUC文字を含む"パラグラフ"前の区切りまでを英語と見なす。

   例:
	=E
	English
	          ←空行は言語の区切り
	日本語

	==
	言語を日本語に戻す
	(English区間の終わりの区切りを明示したい場合)

	=S
	は、"パラグラフ"内の空行に変換されます。英語文章中、空行を区切
	りにしたくない場合に使用します。
	実のところなくてもいいのですが、あるとたまに便利なことがあります。

2.4	WIX と HTML 例外処理

	.HTML_PRE
	.~HTML_PRE

<PRE> 〜 </PRE> で展開したい部分。


[PREVIOUS CHAPTER] [NEXT CHAPTER]