TeX(テック)は,マクロによっていろいろに拡張できることで知られている.真に素の TeX 用にソースを記述する人はなかなかおらず,少なくとも Knuth 自身が執筆するために作成した最低限のマクロ,plain TeX(プレインテック)マクロは使っているだろう.もちろん,それよりも普及しているのはLaTeX(ラテック)マクロである.LaTeX になれば,マークアップ言語と呼んでもよい状態になる.\section
などの命令を用いて,文書中の構造を体裁とは独立に指定できるからである.
ここ最近になって,LaTeX とは独立なマークアップマクロである,ConTeXt(コンテクスト)マクロが,ヨーロッパを中心に開発・利用され始めている.開発は Hans Hagen(ハンス・ハーゲン)が一人で行っていると思って差し支えない.ConTeXt ユーザグループやメーリングリスト,年に一度の集会 ConTeXt meeting があり,周りでサポートする体制は整っている.
LaTeX ではマクロをいろいろな人が独立に開発して発展してきたという事情から,パッケージの読込み順番によって正常に機能する場合とそうでない場合があるといった問題をはらんでいることは有名で(たとえば mr_konn さんの今日の記事),それを解決するために,現代的に必要な機能を一人ですべて実装した,というのが当初のふれこみであった(と理解している).
Hans はオランダ人であり,元はオランダ語を扱うために作り始めたということだが,最近では多言語を統一的に扱って,各言語のルールなどを内部で実装している.言語と言えば英語のことしか知らない人たちが作ったシステムでは小手先の改良しか施せないので,根本から多言語に対応しなければならないという信念のようである.フォントプロジェクトとしてポーランドを中心に開発が進む TeX Gyre の要求をすぐに取り込むなど,一人で開発していることによる機動力が利点である.ConTeXt プロジェクトへの貢献方法としては,いきなりパッチやプログラムを頑張って作って送ることよりも,「要求」をまずは自然言語で説明することが歓迎されている.
以前のバージョンは MkII(Mark II, マークツー)と呼ばれており,e-拡張のあるTeX拡張エンジンであればどんなエンジンでも内部処理に使えた.ただし,日本語組版に関しては「使えた」といった状態であり,動作確認程度にしか使われていなかったのではないかと思われる.開発の中心は MkIV(Mark IV, マークフォー)に移っており,エンジンは LuaTeX(ルアテック)を用い,マクロのほとんどは Lua 言語で記述するという方針で進んでいる.日本語に関してもいくつかのルールを2012年に実装してもらったのだが,まだまだ発展途上である.Requirements for Japanese Text Layout(以下,jlreq)の存在は伝えてあるが,いきなりすべてを実装するように要請するのは酷だというのも理解できるので,jlreq の入力例をテキストファイルで提供して trial and error を促すなど,日本語利用者が努力して貢献できることもまだまだたくさんある.
今後投稿を予定している一連の記事では,ConTeXt の使い方や,これから実装を促したい事柄について紹介していければ幸いである.