mots quotidiens.
Daichi Mochihashi (持橋大地) daichi <at> ism.ac.jp by hns, version 2.10-pl1.

先月 2007年10月 来月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

2007年10月02日(火) [n年日記]

#1 jroff (2)

Kernighan(!) の書いた, "A TROFF Tutorial" [ps] をほぼ全部読んでみた。
"August 4, 1978" とあるので, 何とほぼ30年前の文章(!!)だが, 面白い。

troff はKernighanが書いているように, タイプセットのアセンブラのようなもの なのだと思う。 troff のコマンドは下のように, 必ず行頭の . から始まる小文字で, これをマクロ化したものが .TL や .NH のような大文字のマクロ。 これは TeX と LaTeX の関係に似ているが, troffはよりミニマリズムに徹して いて, .sp や .ft のようにコマンドが最小限なのが特徴。
実際, もし自分でタイプセットのプログラムを書け, と言われたら, まず確実にこういうコマンド体系を考えると思うので, それを完全なシステムに しているという意味でも貴重だと思う。 *1

実際に使えるかというと,

というところ。例えば, Σ(α×β)2→∞を(全角文字に頼らずに)組版するには,
\(*S(\(*a\(mu\(*b)\u\s-22\s0\d \(-> \(if
と書く必要がありますが, わかりにくいのと, 現代で使うような複雑な式は 恐らく不可能, という問題がありそうです。
またよく見ると, 時間が経っているだけあって, 普通の組版も微妙にTeXの方が 綺麗な気がします。 *2
まとめると, 組版とはどういうことをするかを知るという意味で, 教養として 知っておく価値はありそう, ということ。 それより, Kernighanが書いた上の文書と 同じ時期(1978年9月)のSIGNLの報告 が平然と手書きだったりする(例えばこれ [pdf] ) ことを考えると, 30年前にこれだけの品質の印刷を, 研究所のUnix上では個人で可能だったことが奇跡的な気がします。
また, まず普通に考えそうなこういうシステムを踏まえた上で TeX や LaTeX があると 考えると, TeX の綺麗でない仕様も, 仕方がないと思えてくるかも。
これで最後に残っていた, man のソースを見た時の .SH や .PP の謎が解けて, すっきりしました。
これはLispが理解できて, .emacs に含まれる cons や append を自由に使える ようになった時の感覚に似ているような気がします。

ソース: % groff -ms -Tps alice.rf > alice.ps
.ps 12
.DS C
.ps +2
.ft B
Alice in Wonderland
.ft
.sp 0.4
Lewis Carroll
.ps -2
.DE
.sp -2.5

.ps 12
.vs 13p

.in +0.6i
.ll -0.3i
.ti -0.4i

\v'1'\s36A\s0\v'-1'
lice was beginning to get very tired of sitting by her sister
on the bank, and of having nothing to do:  once or twice she had
peeped into the book her 
.in -0.4i
sister was reading, but it had no
pictures or conversations in it, `and what is the use of a book,'
thought Alice `without pictures or conversation?'
.sp
  So she was considering in her own mind (as well as she could,
...

*1: こういうシンプルな体系のもう一つの特徴として, (La)TeXと違って, awkやsed等による外部の自動処理が簡潔に書ける点があると思います。 TeXの場合は必ずしもコマンドが行頭に来るわけではなく, 形も自由なので, 一般に特別なパーサを書く必要がありそうです。
*2: 他にも troff の場合はTeXと違い, 明示的に fi などのリガチャを指定しないと いけなかったりするようです。

2007年10月07日() [n年日記]

#1 jroff(3) && 計算機古文書

さらに引っ張る。(というか, 裏で某翻訳が全然終わらないので, 一生懸命頑張っているわけですが..。)

家に帰って junet 時代のドキュメントを眺めていたら, 吉田茂樹さん *1 が書かれた「msマクロを使用した文書の書き方」 という文書があるのを発見した。(1988年)
これは今探すと, http://ftp.riken.jp/pub/misc/Japan/JUNET-DB/troff/ などに置いてある模様。
この中から必要なファイルを取ってきて make を実行すると, ms.tut.ms が処理 されて文書が得られます。結果を ps->pdf 化したものが こちら。 (pdf) これは日本語でmsの各種マクロの意味が解説されており, 特殊文字の一覧や 必要になる troff コマンドの解説も含まれているので, troff についてはかなり役に 立ちそうです。

言うまでもないですが, roff,tbl,eqn 等については "The Unix Super Text"(下)の48章に 簡単な解説が含まれています。 *2
他に, me マクロパッケージについては, /usr/share/doc/groff-1.18.1/ の下に meintro.ms が置いてあって(私の環境の場合), % troff -me -Tps meintro.ms でタイプセット して読めるようです。me の方が, 現代のLaTeXの文書に近いような感じです。
また, メモ代わりですが, ベル研のテクニカルレポートのページ http://cm.bell-labs.com/cm/cs/cstr.html にも各種文書が集まっている模様。

上の junet の文書は前に はらださん に教えてもらったものですが, 僕もそれまで聞いたことがなかったし, かなり知られていないような気がします。 「コアラ大将のTCP/IP入門」とか昔は有名だったらしいですが, 今も役に立つかは 微妙。
「おヒマならMHを使ってよネ!」は このへん に置いてありました。w


*1: 今は iamas におられるらしい。Unix Magazine Classic+DVD を買ったら, 所属に 日本語で「国際情報科学芸術アカデミー」と書かれていて, 一体何だろうと 思ってしまった。
*2: もちろん, ここで紹介した文書の方が詳しい。

#2 圧縮

増井さんのmixi日記の 「圧縮文法」のエントリ を読んでワラタ。

言語モデルでは, 一般に文頭と文末に特殊な文字があると考えるので, 途中の文字の省略も含めて, 言語モデルでデコードしてやると高確率で元に戻せる のではないかと思う。(追加と違って本質的に情報が落ちているので, 確実な復元は 無理ですが..。)
ずっと前に書いた 似非中国語化 ではないですが, 「常考」とか「感感俺俺」とか, 実際に省略が起きている例は あるかもしれない。
「石こは無か」って何だろう, と思っていたら, 突如 「流石にこれは無理か」の省略だとわかった。人間恐るべし。(笑)


2 days displayed.
タイトル一覧
カテゴリ分類
 なかのひと
Powered by hns-2.10-pl1, HyperNikkiSystem Project