マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

美文書付録Iについて思うことをグダグダ書き連ねるシリーズ (1)

某氏からの問合せもあったので、書き出してみることにした。自分の主観が極めて強い意見については遠慮しているが、それでも主観に基づく感想が混ざり込んでいる。従って、ここに書いたことは必ずしも「美文書がこうであるべきだ」という主張を含まないことを予め確認しておきたい。当該の付録について、内容と紙面との激しいせめぎ合いがあったことは容易に想像できるが、その経済的事情に関しては敢えて度外視しておきたい。

*  *  *

概要
(355ページ)
従来日本語 TeX 環境で多言語混在文書を作成する場合には大きく分けて二つの方法が中心でした。一つは従来の pLaTeX2e(非 Unicode 版)と Babel を併用し日本語+欧米言語(ラテン・キリル・ギリシア文字)を混植処理する方法、今ひとつは CJK パッケージを使った CJK (日中韓)言語の混植処理です。
(注:「従来」というのは、「pTeXUnicode 対応(及び upTeX)」や「現代的な UnicodeTeX(XeTeX・LuaTeX)」より以前のこと。)

何となくこの表現には物凄く違和感を感じる。多分この文脈で言われていることの本質は

LaTeX での非英語言語の処理方法として「pTeX 系での日本語組版」の他に次のものが(日本で?)よく使われている。

  • Babel による欧米言語の組版
  • CJK パッケージによる CJk 言語の組版

であって、元の表現はこれを「無理やり日本語との混植の話にしている」感じがする。まあこれ自体は単なる導入の「流れの話」の中の一部でしかなくてあまり重要でないのだが、これ以降の構成とも関連する話なのでもう少し述べたい。

私の考えでは、「LaTeX における多言語」の話をする時に、「日本語」や「pTeX」を中心に据えるべきでないと思う。元々、Babel や他の言語パッケージは欧文 LaTeX の為に作られたものである。だから、これらについて理解しようとする場合は次のように段階を踏む必要がある。

  1. まず欧文 LaTeX での使用について理解する。
  2. そしてそれと pLaTeX を共存させる方法について理解する。

何故かというと、言語関係のパッケージでは、2 の部分が自明でないことが多いからである。(普通は、「pLaTeX の使い方」を習得した場合、そこから「和文」を取り去ればそれは「欧文 LaTeX の使い方」として通用する。*1pTeX を前提にして話をすると、1 と 2 の話が混然として「欧文 LaTeX で使う」場合の妨げになる虞があるように思う。

例えばの話で言うと(付録 I が実際にそうであるという主張ではない):欧文 LaTeX でロシア語の文書を著したければ、utf8 入力エンコーディング + T2A フォントエンコーディング(+ Babel)で十分だが、ここで「OT2 でないといけない」とか「Utf82TeX が必要」と誤解されるようではまずい。

1 節、第 1 小節
(356ページ)
Babel の際立った特徴は、…(略)…強力なマクロであることです。

TeX のマクロにより実現される LaTeX の機能」のことを「マクロ」と呼ぶのは(以下略 *2

現在の Babel では欧文 7 ビットコード、欧文 8 ビット(ISO 8859)コード、UTF-8 がサポートされていますが、……

UTF-8 と併記されている*3のでここの「7 ビット/8 ビットコード」というのは入力エンコーディング(ソースファイルの文字コード)のことだろうが、Babel は入力エンコーディングについて全く関知しないのでこの書き方はおかしい。「LaTeX では」とすべきだろう。*4

それから、「ASCII」と限定せずに「7 ビットコード」と言うと、ISO 646 や KOI 7 等の「ASCII でない」ものを含むと解釈されるだろうが、LaTeX での入力エンコーディングは 7 ビット部分が ASCII と同一であることが要求される*5ので、ASCII 以外の「7 ビットコード」はサポートされない。

欧文 7 ビットコードを使った latin transliteration(ASCII 翻字)記法について説明します。

「ASCII 翻字(= ASCII transliteration)」と「ラテン翻字(= Latin transliteration)」は別にどちらの用語でも構わないと思う(厳密にはこの 2 つは異なる。((「حرف → ḥarf」のように「アクセント付きラテン文字」で表現するのは「ラテン翻字」ではあるが「ASCII 翻字」ではない。ArabTeX では「.harf」のように「ラテン翻字」を更に「ASCII 翻字」した形式が使われる。)))が、何故「一方の英語と他方の訳語」を併記する? それから、「欧文 7 ビットコード」は結局「ASCII コード」のことなので、全体で「ASCII 文字を使った記法(ASCII 翻字)」という表現でよいと思う。

*1:「折角欧文だから pdfTeX の PDF 出力を使いたい」という場合は話は別だが。

*2:「Babel は多言語処理の為の(   )である。」の括弧内に入る最適な語句は、私の感覚では、「パッケージ」である。「スタイルファイル」という用語は LaTeX2e ではわざわざ使う必要がないように思える。

*3:UTF-8 は 8 ビットコードじゃないのか」というツッコミも考えられるが、ここでは「文字コード論的な正確さ」は求めないことにしよう。

*4:ちなみに、「LaTeX 以外の TeX」については別の話になる。(inputenc は LaTeX のパッケージなので。)

*5:実際には、TeX の下位の機構(encTeX)を利用することで ASCII 非互換の文字コードも使えるが、それは「別の話」。それから、バックスラッシュが全部他の記号に化けている状態で強引に TeX を使っている国もあるようだが、それも「別の話」。