アスキー - みる会図書館


検索対象: 月刊 C MAGAZINE 1993年10月号
23件見つかりました。

1. 月刊 C MAGAZINE 1993年10月号

List 1 2 }def*a(33) *def}ai{44} }defm(ll) \ def \ 文章 { 11 } }def} ; { 55 } *def*@{66} A* あ A* いう A*a A*a i A} 漢 A \ 文章 A*endl inechar=-l AY あ A% いう A}a A#a i A} 漢 A \ 文章 }end を試みました。 58 C MAGAZINE 1 3 10 てるビットが取れないのて , 2 バイト文字ト このままて、は文字カテゴリコードを割り当 うかによって区別を行うことにしました。 し , トークンの値が 32 , 768 以上て、あるかど ークンには文字コードの値をそのまま代入 上位ビットが必ず 1 なのて、 , 2 バイト文字ト コードはすべて 32 , 768 以上の値をとり , 最 現は ShiftJIS て、扱われていますが , 漢字の ビットは 0 のままて、す。また , 漢字の内部表 を合計しても 32 , 767 以内に入るのて、最上位 ス定義を割り当てています。これらすべて 9 , 500 個 ( BigTeX ) のコントロールシーケン 残った部分に 4 , 000 個 ( 普通の TeX ) ないし 字カテゴリに 19 通りの計 4 , 864 個を使用し , 増加させており , 文字コードに 256 通り , 文 す。アスキー日本語 TeX て、はカテゴリ数を 同時に存在させることが可能となっていま 字を任意のカテゴリに変更したトークンを 英字については , これによって任意の文 されていることがわかりました。 って , 全体て、 16 ビットに納まるように設計 の場合はコントロールシーケンスとして扱 ゴリに 4 ビット使用し , 13 ビット目以上が 1 解析したところ , 文字に 8 ビット , 文字カテ まず , オリジナル TeX のトークン構造を Fig. 9 List 1 2 の出力例 ( きちんと処理できた場合 ) あ thuuui 21 ha ひらがな no hi / 漢 / 字 / だ / / よ / 4 / /a/5/ /b/6/c/ / 7 / 漢 / 8 / / 字 / 9 / だ / / 0 / よ a: true (true) b: false (false) c: true (true) d: false (false) e: true (true) f: false (false) g: true (true) h: false (false) h: false (false) i: false (false) j: false (false) k: false (false) 1 : true (true) m: true (true) n: true (true p: false (false) q: false (false) r: false (false) s: false (false) t: false (false) A11A22A33A44A11A11A55 A66 AA11A22A33A44A11A11A55A66 ークンのカテゴリは必要になった際に随時 カテゴリ定義配列より得て決定します。 したがって , 2 バイト文字トークンのカテ ゴリは静的に固定されてしまいますが , 従 来からも 2 バイト文字のカテゴリを変更する ことは禁止 , と規定されていたのて、とくに 問題は発生しないと思われます。また , 「ア スキー日本語 TeX テクニカルブック』て、は 「英字のカテゴリを 16 以上に変更することは 危険度が高いのて、注意が必要」とあります が , 今回「 16 以上へのカテゴリ変更は一切禁 止」と明確に規定することにします ( いまま て、も 16 以上への変史は単に動作不良を起こ すだけて、あったのて、機能的には問題ありま せん ) 。 従来の 2 バイト文字の 2 トークン実装にお いては TeX 内部て、は一応漢字のカテゴリ変 更が可能となっています。ソースコードを 調査したところ , 実際に 2 バイト文字のカテ ゴリ変更が発生している場所が 1 か所ありま した。 \ string によって 2 バイト文字トークン を含むコントロールシーケンス名を文字に 展開したときに , 従来のアスキー日本語 Te X て、はすべての 2 バイト文字がカテゴリ 18 ( そ のほかの全角文字 ) に変更されています。 カテゴリ 18 はいわゆる記号文字のカテゴ リて、あり , コントロールシーケンス名とし て登録するときに 1 文字しか有効にならない ことだけがほかの 2 バイト文字 ( 漢字 , かな ) と異なる点て、す。したがって , Ystring を通 した文字列からコントロールシーケンス名 を (Ydef などて、 ) 登録しようとしたときに 従来は最初の 1 文字のみコントロールシーケ ンス名として登録されていたところが , 今 回の変更によっては漢字やカナがカテゴリ 16 ないし 17 に固定されてしまっているのて、 , 2 文字以降もコントロールシーケンス名とし て有効になります。このように動作が異な る場合があります。 実用上はこれて、まったく不都合がありま せん。ただし , もしも将来アスキーの手に よって 2 バイト文字のカテゴリ変更や機能拡 張が行われる場合は何らかの支障が生じる 可能性があります。たとえば 2 バイト文字を 完全に 1 バイトの文字と同様に扱うように し , 半角の \ て、も全角の \ ても同じように E SC 文字として働かせるようにする・・ しかし , それを実現するためには私の修 正よりもさらに変更を行わなければならな ことが予想されます。トークンに文字コ ード情報とカテゴリの双方を含まなければ なりませんから , トークン配列の要素サイ ズを 2 バイトから 4 バイトに拡張し , それに 合わせて内部配置を全部変更しなければな りません。現状て、は作業量に見合うほどの 効果のある変更て、はないようて、す。 一方 , 今回のパッチによって 2 バイト文字 を TeX 内部て、も完全に 1 文字として扱うこと がて、きるため , 英字とまったく同じ扱いて、 極めて自然な処理が可能になりました。コ

2. 月刊 C MAGAZINE 1993年10月号

特集 X List List スタイルファイル TeX ファイル *documentstyle[nrlist](jarticle) *begin{document) *input{hello. inc) *end(document) *newdimen*wtt *setbox*@tempboxa*hbox{*footnotesize*tt a)%wtt=*wd*@tempboxa *newdimen*verbwidth *def*@sverb#l(%def*@tempa ##l#l(%leavevmode}nul 1 ##l*setbox*@tempboxa=*hbox{##l)*global*verbwidth=}wd*@tempboxa *endgroup)*@tempa) *def*hangcom#l # 2 ( % *@tempdima=*textwidth *advance*@tempdima by -*verbwidth *setbox*z@*hbox tO *@tempdima{%hss ー *ifdim%@tempdimbく\颶 %advance*@tempdima by -*@tempdimb *fi *parbox[t](*@tempdima){X }basel ineskip=9pt *ifdim}@tempdimbく*z@ }hangindent=-*@tempdimb *hangafter=- 1 *else *hangindent=*@tempdimb }fi *def*comment#l{{*parshape 0 *hangindent*verbwidth*relax #l%par)) *newenvironment{ 1 isting)(*vspace(3pt)X *begin{list)(){% *Ieftmargin=Opt }itemindent=Opt *Iabelwidth=0pt *IabeIsep=Opt }rightmargin=Opt *itemsep=Opt *parsep=Opt *topsep=6pt plus lpt minus lPt *partopsep=3pt plus 6Pt minus lPt \ 1 istparindent=Opt)X %clubpenalty 9999 }widowpenalty 9999 *@itempenalty 9999 *interlinepenalty 9999 *footnotesize *basel ineskip=9pt*relax)(*end{l ist)) ペースを入れたら奇麗に仕上がるかという ような細かいことや , LaTeX のバグ回避 法 , 写植機に出力してもらう際のノウハウ , TeX をビジネスにしておられる方々のイン タビューまて、 , およそ非本質的なことばか りを集めたものて、す。ちなみにタイトルも サプタイトルも出版社がつけてくださった ものて、 , 確かにサプタイトル「パソコンによ る文書レイアウト」はおかしいて、すね。 最近の情勢 「 LaTeX 美文書作成入門』は増刷ごとに 少しすっ修正していますが , それて、もだん だん古くなってきました。全面的に改訂し たいのて、すが , なかなか暇がありません。 , こて、はこの本が出たあとに起こったこと をまとめておきます。 ・アスキーの日本語 TeX が jl. 7 版になり , p TeX のバグも取れました。 223 ページには pTeX はバグがあるのて、使っていないとい うようなことが書いてありますが , 現在 て、はもう心配不要て、す。 ・吉澤康介さんが 16 ビット MS-DOSze ソコ ン十 EMS て動作する「 EMS 日本語 TeX 」 を作ってくださいました。 ・ Mac 上て、も NTT 版以外にアスキー版の日 本語 TeX も現れたようて、す。 ・プレビューア dviout, プリンタドライバ d viprt が大きく変わりました。 PC ー 9801 , DOS/V, J ー 3100 , AX 用に分か れ , ツアイトのアウトラインフォント ( 書 体倶楽部フォント , JG3 のフォント ) も使 えるようになりました。各種ドットプリ ンタに加え , LIPSIII や ESC/Page の内蔵 スケーラブルフォントに対応しました。 Fig. 7 List 5 , 6 , 7 の出力例 これは世界に挨拶するプログラムである。 五 e110. c ・えれ c1 Ⅱ de <stdio . h 〉 1 2 第 a 加 ( ) 4 5 ″入出力の準備・ / / 事以下がプログラム本体り 挨拶・ / 正常終了・ / printf("He110, 習 orld ! 学れ” ) ; return 0 , Fig. 8 List 8 , 9 , 10 , 11 の出力例 入出力の準備 $include く stdio . h 〉 以下がプログラム本体 用 a ( ) 騒がしい Disneyland ですが , この歌を聞くとほっとし printf("lt's") ; ます。各国語で歌われます。 printf(" a 3 第 a11 を orld , after a11 叭れ“ ) ; 正常終了 return 0 , 特集 TeX 53

3. 月刊 C MAGAZINE 1993年10月号

特集 X 械て、処理出力をさせてもプリンタの解像度 一方 , 最近急激にパーソナルコンビュー TeX が仲よくしている絵が描いてありま の違いを除けば同じ結果を得ることがて、き タの性能が向上してきました。すて、に過去 す。フォントまて、含めたフリーの組版シス ます。このような特徴は , TeX の作者て、あ のワークステーションの機能に匹敵してい テムとしては TeX が唯一のものて、 , StaIIm an もそのへんがお気に入りなのて、しよう る Knuth のたいへんな努力によって , て、きる る ( 上回る ) ものも登場しています。 CPU の かぎり環境に依存せずに同一の印刷結果が 機能を見ると , 最近の標準的なパソコンは すべて 32 ビットのデータサイズ , 32 ビット 残念ながら , とただし書きをつけなけれ 得られるように工夫されていることと , フ ばいけませんが , 前記のような状況はアル のリニアアドレスに対するアクセスを実現 オントの生成プログラムを含めて TeX プロ しています。このような条件て、動作するプ ファベットを使用する言語にかぎられてい グラムの全ソースプログラムが公開されて ログラムを以後「 32 ビット動作の」プログラ ます。 Knuth 先生もさすがに TeX を日本語 いることとが大きく寄与しています。 て、使用することまて、は考えていませんてし ムと便宜上呼ぶことにします。実は , UNI とくに , フォントがソースを含めてフリ た。オリジナルの TeX て、は 1 フォントに含 ーて、あることは , たいへんに重要な意味を X て、動作するよう書かれたプログラムを動か まれる文字の数は 256 まて、しかありません。 持ちます 0TeX システムて、は METAFONT すためのもっとも大きな条件のひとつが 32 多文字言語はオリジナルの TeX て、は表現て、 ビット動作て、あることて、す。このパソコン というプログラムによって , 必要なフォン のアーテキクチャの進歩にともない , UNI きません。しかし , TeX のすばらしさに魅 トを自由に生成て、きます。最近の GUI の普及 X 上て、走るプログラムのパソコンへの移植が せられた日本の人々によって日本語 TeX が にともない , フォントの開発と供給の重要 それほど困難て、はない状況になってきてい 開発されました。おもなものは NTT て、開発 性が認識されてきていますが , すぐれたフ された TNTT 版 jTeX 』と , アスキーによっ ます。パソコンの 32 ビット化は , 高性能化 オントの開発にはたいへんな手間とコスト て開発された『アスキー日本語 TeX 』て、 の謳い文句て、したが , 真に喜んだのは 32 ビ がかかります。したがって , 開発側て、は自 ット動作のプログラムをパソコンて、動作さ す。どちらも日本語の組版システムとして ら開発し所有するフォントに対して何らか は完成されたものて、はありません。元来が の保護対策を講じる傾向にあります。たと せようと苦労していた人々かもしれません。 いわゆる DOS マシンて、も , i386 以降の CPU を 英語の組版のために作られた TeX をベース えばスケーラブルフォントのソースや展開 持つものは 32 ビット動作が可能て、す。しか に日本語化を行ったため , 日本語の組版特 アルゴリズムを公開しない , フォントにプ 有のいくつかの要素を完全に取り込み切れ し , 残念ながら , MS ー DOS は 16 ビットの OS な ロテクトをかけるなどの方法をとるべンダ ずにいます。たとえば日本語の文章て、は重 のて、そのままて、は 32 ビットのプログラムを があります。しかしながら , ューザサイド 要なルビ ( ふりがな ) を TeX て、自在に処理す 動作させることは困難て、 , 、、 DOS ェクステン からみれば , 表示の同一性を保証するには ることはて、きません。 ダ〃と呼ぶプログラムを利用して DOS と 32 同一のフォントが必要て、あり , テキストフ とても残念なことて、すが , 日本語 ビット動作のプログラムとの橋渡しを行う また , ァイルは異機種間て、移動て、きるとしても , に関しては現状て、はフリーなフォントソー ことて、 , DOS 上て、も 32 ビットプログラムを フォントを移動て、きないことがひとつの機 スが存在していません。漢字のデータはあ 動作させることが可能になっています。 種間障壁となっています。 最近て、は GNU C や Emacs などの最新のソ まりに巨大て、あり , 誰もフォントソースを これに対するひとつの解答が TeX て、あっ 開発していません。したがって , 現在のと ースが FSF て、の公開後ただちにパソコン通 て , フォントを含めた組版システム全体が 信のライプラリに転載されるなどの状況が ころ日本語については TeX プログラム自身 自由に移植可能て、あることによって , 生成 確立しつつあり , 関心さえあればソースを はフリーて、ありながらフォントのみ購入す された印刷結果に対しての同一性を保証す 入手して動作させることは比較的容易とな るという事態になっています。さらには , るものとなっているのて、す。 っています。 環境によってフォントが異なるために , 機 NU の標準的なドキュメント TeX は GNU と直接の関係はありません 種間て、の同一性の保証という TeX の魅力も 己述ツーレ が , GNU プロジェクトの主要なドキュメン やや薄れがちになっています。 しかしながら「日本語て、も TeX が使える」 トファイルが、、 texinfo 〃という形式をとって UNIX て、は多くの人の努力によって , 現在 ということのすばらしさは , 少々の欠点を まてに膨大なプログラムのソースコードが おり , 印刷には TeX を利用します。この形 も乗り越えてしまうものてす。数百ページ 公開され , 蓄積されてきています。そのひ 式は同時に Emacs 用のオンラインヘルプ Ci のスケールて、完全に出版に耐え得る版下を とつが Stallman の主宰する FSF が公開して nfo" という ) 生成のためのソースファイル 著者が作成し得るシステムは TeX しかあり いる GNU プロジェクトて、あって , たいへん としても利用されます。これは階層構造を に優れたコンパイラやエデイタが動いてい 持っスタック形式のオンラインヘルプて、す。 ません。 ます。 このように , 日本語 TeX についてはいま texinfo マニュアルの表紙を見ると GNU と - 三ロ 特集 TeX 55

4. 月刊 C MAGAZINE 1993年10月号

のフロッピーディスク ( 3.5 インチまたは 5 イ ンチ ) と 2 冊のマニュアルをバンドルしたも のて、 , お買い得て、す。もう「パソコン通信を やってないのて、 Tex 一式を送ってくれ」とい う手紙や電話がきても「『パーソナル日本語 TeX 』を買ってください」て、済ませられるの て , 助かっています。 アスキーからは TeX 関連のユーティリテ ィを集めた『日本語 TeX フリーソフトウェ ア集』 ( 5 インチ十 3.5 インチディスクっき , 3 , 800 円 ) も出ました。また , インプレスか ら『日本語 LaTeX 定番スタイル集 No. 1 』 ( 鷺谷好輝著 , インプレス編集部編 , 5 イン チ十 3.5 インチディスクっき , 4 , 500 円 , ラ ジオ技術社 ) が出ました。 フォントについては , 先ほどもちょっと 書きましたが , アスキーから 360dpi の各種サ イズの明朝・ゴシックフォントを 18 枚のデ イスクに収めた『パーソナル TeX フォント Fig. 6 List 4 の出力例 これは世界に挨拶するプログラムである。 / 事人出力の準備 #include <stdio. h> 以下がプログラム本体り nain ( ) printf("He110, を orld ! \ Ⅱ " ) : / ・挨拶事 / / 事正常終了事 / return 0 ー List タイプライタフォント , 行送り 10 ポイント }documentstYle[a4j, yenverb]{jarticle) }beg i n {document } これは世界に挨拶するプログラムである。 }begin{small) *basel ineskip=10pt }begin(verbatim) / * 入出力の準備 * / #include く stdiO. h> / * 以下がプログラム本体 * / main() printf( ” Hel 10 , world!*n") ; / * 挨拶 * / / * 正常終了 * / return 0 ; *end{verbatim) }end{smal 1 } *end{document) C から LaTeX ファイルへの変換 List5 while (len > 0 li れ e [ 15 ー 1 ] = if ( 1 印 > = 4 line[len ー 1 ] = ' / ' 1 ⅲ e [ 1 ー 2 ] ー coænt end = 1 印ー 2 ; while (comment--end > 0 line[comnent-end ー 1 ] - cx)mænt_end— true 1 = coænt_end ー 2 ; while ( t 理 e 」〉 = 0 true len—— if ( t e コ > = の ( coænt_start. = true 1 + 2 : while (line[comænt-start] = = ' ) conent-start + + : while (true—len > 0 line[true—len ー 1 ] ー } else true—len = co•nt—start = comænt = 15 : } else t e ー 1 = coænt—start = = 1 印 : if (true-len トの { for (t = ' ' + 1 ; t く 1 ; t + + ) table[t] = 0 : table[' * ' ] = table[' ] = ね ble [ 0X60 ] = 1 : fo 「 (i = 0 : i く true—len; i + + ) if (line[i] く 127 ) table[line[i]] t = while (table[t] トの t + + : if (t = 127 ) { fputs("Error*n ” , stderr); return 1 : fputs( ” Hverb ” , outfile); fmztc(), outfile); for (i = 0 ; i く true—len; i + + ) fputc(line[i], outfile); fputc(), outfile); if (comænt—start く coment—end) ( if (true-len ! = 0 true-len + comment-end ー comment—start 〉 55 ) fnts ( ” , outfile); fmlts( ” Hcomnent(), outfile); while (coment—start く comment end) ( outfile); conænt ー s ね「 t + + ; fputc(' } ' , outfile); } else if ( t e 」 = の fputs(" 料 x{} ” , outfile); fputc(' ' , outfile); if (c ト EOF) c = fgetc(infile); fm-lts( ” }*end(listing)%n ” , outfile); fclose(infile) ; fclose(outfile); return 0 ; c21atex. c ーー converts C so ccne into IaTeX file Haruhik0 Okumura く g44140g ucc. ・ n oya ー u ・ ac ・ jp 〉 #include く s iO. h > # i 1 面 e く s lib. h 〉 #define TABSTEP 4 #define LINELEN 512 int zin(int argc, char * 空ロ ) int i, c, t, le 店 true len, coænt—start, *. end; static sign char fine[LlNELEN + T ] , ね bl 矼 1 囲 ] ; PILE *infile, *outfile; if (argc ト 3 ) { fputs("Usage: c21atex sourcenane ” , stderr); return 1 ; fputs("can' t 08 Ⅱ” , stderr); f ts ( [ 1 ] , stderr); fputc( ・ }n' , stderr) : return 1 : fputs( ” can' t 0 Ⅱ " , stderr); fputs(argv[2], stderr) : fmltc(' %n' , stderr); return 1 : fputs( ” *%tegin{listing)*n", outfile); c = fgetc(infile); while (c トの { fputs("%*item ” , outfile); le れ = 0 : if (len く LINELEN) { do ( line[len + + ] ー } while (len % T 齦トの : ) else line [ 1 印 + + ] = c; c = fgetc(infile); 神 / 特集 TeX 51

5. 月刊 C MAGAZINE 1993年10月号

ズて、は 160dpi, LASER SHOT は , 240dpi または 300dpi て、す。 フォント ( たとえば cmr10 ) を指定し , 解像 度や拡大率を与えて METAFONT を動かす と , ふたつのファイルが作成されます。ひ とつは , tfm (TeX Font Metric) の拡張子 を持つファイル ( たとえば cmr10. tfm ) て、 , も うひとつは , ラスターデータ ( ビットイメー ジのデータ ) の入った GF ファイル ( たとえば cmr10. (f) てす。 tfm ファイルはそのフォントに属する各文 字の幅や高さ , 配置するときの相対位置 , 文字の特別な組み合わせに関する処理 , イ タリック補正 ( イタリック文字の後に通常の 文字がきたときの空きの補正 ) などの情報が 入っていますが , これは , ひとつのフォン トに対して定まっているものて、 , 解像度や フォントの拡大率とは無関係て、す。実際の ドット単位の文字幅などは , もうひとつの GF ファイルのほうにあります。 画面用とプリンタ用の 2 種類の解像度て、 , magstep 0 , half, 1 , 2 , 3 , 4 , 5 を用意す ると , それはラスターデータの記録された 14 個のファイル ( 単にフォントファイルと呼 びましよう ) とひとつの tfm ファイルから構 成されます。 それを , 各フォントごと (cmr10 とか cmr 7 とか ) に揃えると , たいへん多くのファイ ルが必要て、 , ディスクを多く占有すること になります。とくに , 解像度の大きいフォ ントのラスターデータのファイルはサイズ が大きくなるのて、 , 適当な方法て、圧縮され た形式が一般的て、す。 解像度や拡大率の異なったフォントファ イルを区別するため , その情報をファイル 名の拡張子に入れたり , あるいは , ディレ クトリ名の異なるところに入れたりします。 通常 , 解像度 ( dpi の値 ) に拡大率をかけて整 数に丸めた数字 , あるいは , さらに 5 倍して から整数に丸めた数字 ( こちらのほうが古い やり方 ) を用いて区別します (180dpi<mags tepl ては 216 あるいは , その 5 倍の 1080 ) 。 元来は , フォントのフォーマットの情報 も入れて , 216gf , 216Pk , 1080PX1 というよ うな拡張子を用いますが , DOS< は , 拡張 子の長さに制限があるのて、実現てきません。 また , 同じ解像度て、同じ拡大率のフォン トをひとつのファイルにまとめて扱えるよ うになっているデバイスドライバもあり ( ア スキーの FAR ファイル , dviout/dviprt の G TH ファイル , emTeX の fli ファイル ) , これ は , ディスクスペースの節約とフォントフ ァイルの管理に役立ちます。 フォントファイルの形式はいくつかあり , METAFONT が出力する GF ファイル ( 横方 向に描いていくような形式 ) , PXL1001 , P XL1002 , PXL1003 , PK などがあります。 PXL1001 はラスターデータをそのまま収 めてあるのて、もっとも大きくなり ( データ は , TeX のワード , すなわち 4 バイトを単位 として区切られます ) , PXL1002 はそれをバ イト単位の区切りにして空きを節約したも の , PK はある種の圧縮を施したものて、す。 PXL1003 はアスキー独自のものて , PK と同 じ圧縮方法て、すが , ほかの部分 ( 各文字のサ イズやアロケーションの書き方 ) を , PXLI 002 などに倣ったものてす。 世界的には , この中て、もっともファイル サイズが小さくなる PK フォーマットを使う のが一般的のようてす。デバイスドライバ も , 種々の形式のフォントファイルを扱え るようになっているものが多いようて、す。 一方 , アスキー日本語 TeX の和文フォン トは , JXL4 フォーマットという独自の形式 の圧縮ファイルが使われ , 欧文フォントの tfm ファイルに対応するものは jfm ファイル と呼ばれるものて、すが , これの拡張子は tfm ファイルと同じく tfm となっています。 dviout/dviprt て、は , PXL1001 , PXL1002 , PXL1003 , PK, JXL4 が扱え , JXL4 以外は それらを GTH あるいは FAR ファイルや f ⅱフ ァイルにまとめたものも扱えます。推奨は PK フォーマットて , GTH ファイルにまとめ ておくのがよいてしよう。 TeX コンパイラは , plain TeX などのマ クロ ( または , それのコンパイルされたもの ) と文書ソースを読んて、 , 文書の各文字にマ クロて、指定されたやり方て、選んだフォント の文字を対応させ , tfm ファイルから文字幅 などの情報を得て , dvi ファイルを作成しま す。て、すから , TeX コンパイラは , ラスタ ーデータが記録されているフォントファイ ルを必要としません。 一方 , マクロには , 通常使われるいくつ かのフォントの tfm ファイルの情報を読み込 むように書かれています。マクロをコンパ イルしたものを読み込んて、 d ⅵファイルを作 成する通常の場合には , コンパイルしたも のの中にその情報が入っています。そのた め , tfm ファイルも必要としないことがほと んどて、す。もちろん , 特別のフォントを使 うように文書のソースに指示してあれば別 てす。 plain TeX て、は , 最初に *magnification=*magstepl と書いておくと , それは , すべてが 1.2 倍に 拡大された文書を作成することを意味しま す。 しかし , TeX コンパイラが作成する dvi フ ァイルの本体は変わらず , ただ ,magstep が 1 てあるという情報が別に入っているだけて す。デバイスドライバは , デフォルトて、は , その magstep を見て , 必要なフォントファイ ルから文字のラスターデータを読んて , 各 デバイスに出力します。てすから , デバイ スドライバは起動時のパラメータて , デフ ォルトとは異なる magstep を得て , それに応 じた出力をすることは極めて簡単て、 , 通常 この機能を備えています。 ひとつの単語中の文字の場合 , 通常 1 文字 ごとに , その文字に固有の幅 ( tfm ファイル に書かれてある。単位は , 文字のデザイン サイズ , すなわち point の値の 1 / 1 , 048 , 576 て 4 バイト整数 ) を空けて次の文字を配置しま す。 dvi ファイルにもそのように書かれてい ます。 よって , デバイスドライバも各文字の幅 ( 文字のビットイメージの横のドット数ては ない ) のデータが必要てす。しかし , まった く同じ文字幅のデータが , フォントファイ ルにも書かれているのて , デバイスドライ バは , tfm ファイルを必要としません。 特集 TeX 45

6. 月刊 C MAGAZINE 1993年10月号

ダの フィンロ あつばれ ご意見番 「例外」 上の長さの文字列が入力されたときはやや ロのプログラマとは こしいことになる。絶対と断言することは 危険なのだが , int に代入する値を入れる場 合には , 256 文字もある数値を入力すること 「『すべての事には例外がある』という命 は絶対にないはずだ。しかし , キーポード 題の例外はあるか」という問題があるが , 結 の上に物を置く人はいるようだ。 局なにごとにも例外というものがある。プ ログラムの中て、 , 例外に気づかずに処理し プロが書いたプログラムならこのような てしまうと , 思わぬトラブルに巻き込まれ トラブルは発生しないように作られている るのが常て、ある。とくに , ある種の特別な に決まっているから , ネットにアクセスし たとき , うつかりキーを押しつばなしにし 条件が成立した場合のみ , 振る舞いが異な てもセンターがダウンすることなどは絶対 るときは , 注意が必要だ にない。しかし , 本当かどうかを実験する このような場合がもっともバグの 実際に銀行て、預金をおろすときに 1 , 000 円 ことは , 慣習的に禁止されている。 原因となりやすいわけだから , 経験を積ん とするところを誤って 10 兆円と入力してし 実際に gets て、どれくらいの長さの文字列が だプログラマは , どのような場合をチェッ まい , しかも出てきた , なんてことは物理 的にもないわけて、 , 実際あったら怖い。だ 入力て、きるか , という興味ある別の問題も クすればバグを減らすことがて、きるか , 勘 がホームバンキングなどて、 , 実はデータ操 ある。一見 , いくらて、も長い文字列が入力 て、探り当てることがて、きる。 て、きそうな気がしそうだが , 手持ちの環境 作だけという場合には , このようなバグが 初心者のうちは , あたりまえの処理があ あると笑い事て、は済まない。幸い , このよ て、は , 127 文字が限界て、 , List 1 のような処 たりまえに処理て、きないような失敗もある。 理を実行しても 256 バイトのバッフアを使い うな異常な数値の入力は , それをあらかじ プロはあたりまえて、ない処理も , うまくこ め予期することさえて、きれば , 事前のテス 切ることがて、きなかった。 なすはずて、ある。それがプロというものだ トにより障害を回避することが比較的簡単 しかし , 入力をリダイレクトすると 400 バ ( もちろん例外もある ) 。 イト程度まて、入るようだ。このとき , この て、ある。 常な数値の入力 List 1 のようなコードは , とくに初心者の プログラムは破綻する。 512 バイトのバッフ 書いたプログラムによく見かけるものて、あ アを使っておくと , 破綻は防げるが , 予期 る。 buf のサイズは 16 だったり 128 だったり , しない結果になる危険は回避されていない 異常値の処理て、最近経験した派手な例と fgets を使うべきて、ある。 512 て、あることもある。多分 , C 言語の入門 いえば , アスキーネットのギャラクティッ 書に書いてあるのを見て , それを真似する ク・フリー・トレーダーズというオンライ い込み のだと思う。私は , 初心者がこのようなコ ンゲームがある。春頃に追加された機能に , ードを書いているのを見たら , 入力された数値が正しい範囲内かどうかを 「なぜ buf のサイズは 256 なのか ? 」 ほかの例だが , ある種のプログラムは行 確認する処理にバグがあった。あり得ない 単位て、処理を行う。最後の行に改行コード という質間をすることにしている。 ような数値を入れたとき , 本来受け付けな が含まれていない場合には , 最後の行は処 期侍している回答は , いはずの値が処理されてしまうのて、ある。 理されないことがある。 「 256 あれば十分だから」 これに気づいたプレイヤーは大金持ちにな 1 行を読み込む処理として , 改行コードが ってしまって , 本質的に , 苦労して金儲け というものだが , そう回答て、きる人は経験 現れるまて、バッフアに書き出しておき , 改 的にあまりいない。なんとなく 256 にしたと をするというゲームだったから興ざめとい 行コードが現れた時点て、行処理を呼び出す か , いつもそうしているから , 程度の感覚 うか , 変な雰囲気て、ある。もちろん , この ような記述をするとこうなる。この場合は , なのて、はないか。いずれにせよ , 256 文字以 バグは , 今は修正されているはずて、ある。 第 18 回 イラスト / 椙村嘉ー 0 168 C MAGAZINE 1993 10

7. 月刊 C MAGAZINE 1993年10月号

また ,Ver. 2.33 まてはプログラムのサイ ズが大きくならないように努力しました。 これは Ver. 2.34 以降て、も同様て、すが , 多数 の人による開発て、はそれをある程度犠牲に しなくてはなりませんてした。 現在の dviout/dviprt は , 当初考えていた 以上の発展を遂げました。現在の機能を実 現するうえて , 提供されているソースは複 雑怪奇なものになってしまっています。書 き直せばすっきりしたものになるて、しよう が , これも幾多のバージョンアップや多く の人の共同作業の結果という面もあり , そ のまま受け入れることにしています。書き 直すとすれば , コンヒ。ュータのダウンサイ ジングが進み , OS においてもノヾソコンとワ ークステーションとの垣根がなくなる時代 を念頭に置くべきて、しよう。 また , dviout/dviprt は多機能化が進み , 使い方によっては Knuth のめざした TeX と は離れてしまうこともあり得ます。このよ うな点て、正しい TeX の普及に悪影響をおよ ばさなければよいがと考えてしまうのが , 懸念て、あれば嬉しいと思っています。 それからもうひとつ。 TeX は中間言語と いう考え方があります。 TeX は組版ソフト て、すが , 一般の人が直接使うには難しすぎ ます。 TeX のソースを吐き出すような何ら かのよいシステムが ( 商品も含め ) 開発され てもよいのて、はないかと思います (WYSIW YG 型の Leo という意欲的なソフトもありま Fig. 18 d ⅵファイルの作成により出力される表示 ( 1 ) This is BigTeX, C Version 2.99 (texjman. tex LaTeX Version 2. 09 く 14 January 1991 > (texnical.sty Document StYIe 、 texnical User's Guide of DVIOUT/DVIPRT ー pl. 0 (preloaded format=jlplain 93. 3. 15 ) —references. 3 undefined. Note: Run JLaTeX three times to resolve cross LaTeX Warn ing : Reference sec : . par' on page [ 1 ] (general. tex [ 1 ] [ 2 ] No file texjman. toc. Note: We assume that cminch is available. (hyoushi . tex NO file texjman. aux. Fig. 19 d ⅵファイルの作成により出力される表示 ( 2 ) LaTeX Warning: Label(s) may have changed. Rerun t0 get cross-references right. (dist. tex) (thanks. tex) [ 93 ] [ 94 ] (texjman. aux) Note: We assume that cminch is available. Fig. 20 3 回目の表示 Transcript written on texjman.log. 0utput written on texjman. dvi ( 96 pages, 405272 bytes). Transcript written on texjman.log. Output written on texjman. dvi ( 98 pages, 439920 bytes). したが ) 。 dvi フルの作成 , 出力 とします。 eX のスタイルファイルも含まれているもの これらのマクロには , 拡張子 sty を持つ LaT はヾ a : / tex / macro クに入れてあるとします。 ファイルをカレントに置き , TeX のマクロ トリを示します。上記ては , TeX のソース や LaTeX のマクロファイルのあるディレク TEXINPUTS は ,TeX のソースファイル て、す。詳しくはパート 2 をご覧ください。 set TZ=JST-9 set G032TMP=a : /tmp a : /tex/tfm set TEXFONTS=a : /tex/jfm setTE 刈 NPUTS= ; a : /tex/macros set G032=ansi handle 30 例は , します。このときに重要な環境変数の設定 の通ったディレクトリに入れてあるものと DOS Extender の g032. exe て、 , ともにパス プログラムは , 上記の latex. exe と , djgpp の LaTeX のファイルのコンパイルに必要な 提となっています。 EMS に IM バイト以上の空きがあることが前 の VCPI 対応の仮想 EMS などを使っていて , モリを使用していないか , あるいはメルコ 合は , i386SX 以上の CPU て、 , プロテクトメ ー 9801 て、使うという想定て、考えます。この場 xe という名前て、生成されていて , それを PC X の日本語 LaTeX の実行ファイルが latex. e EastWind 版の TeX て、アスキー日本語 Te 印字をする作業を例にとってみましよう。 の LaTeX のソースをコンパイルして表示と 階があります。 dviout/dviprt のマニュアル ⅵファイルを解釈して出力するまて、との 2 段 コンパイラて、 d ⅵファイルを作るまて、と , d TeX を使って文書を作成するには , TeX 特集 TeX 79 存在するディレクトリを示します。これら m など ) と , tfm ファイル ( cmr10. tfm など ) の TEXFONTS は , jfm ファイル (min10. tf

8. 月刊 C MAGAZINE 1993年10月号

イバを使い , たまに必要な和文の場合とは 別にしていました。 また , PC ー PR201 用のプリンタドライバを 使う上て、も困ったことがありました。当時 の AMS-TeX は , まだ Ver. 2.0 になってい ませんて、した。 AMS ー TeX 用の追加の記号 や Fraktur などのフォントは METAFONT ソースがなく , PK フォントなどのファイル のみて、提供されていました。これは , 118d pi, 180dpi, 240dpi, 300dpi などのシリーズ のみて、 , 160dpi シリーズのものは存在しなか ったのて、す。 180dpi のものを無理に 160dpi と してインストールしてごまかしましたが , 横幅などがずれてしまいました ( て、も校正用 ということて、何とか使っていました ) 。 このころ , 筆者の手元のプリンタは EPS ON の VP-80K という 180dpi のドットインパ クトプリンタて、した ( 現在て、も同じて、す ) 。 PC ー RP201 用のドライバ d ⅵ 2pr は当然使えま せんが , やはり 180dpi のドライバにしたい ということて、 PersonaI TeX 社の pcdot とい う IBM のパソコン用のプリンタドライバを 購入してみました。 IBM のプログラムを PC ー 9801 て、使うため の IBM Simulator SIM が田中氏により開発 公開されていました。この pcdot はファイル に出力可能だったのて、 , SIM をメモリに常 駐させ , PCー9801 の画面を Graphic Mode に して PRN デバイスに出力することにより , EPSON の 24 ドットプリンタて、の印字が可能 て、 , 筆者はそのような使い方をしました。 しかし , フォントファイルが見つからない などのエラーて、キー入力を求められること になるとハングアップするという不都合が ありました。 IBM 用のプログラムを PC ー 98 01 て、使っているのて、致し方ないことなのて、 すが。 ヾソコンでフリーに使える TeX TeX やその周辺のデバイスドライバなど のプログラムは , もともと , フリーに提供 され , UNIX 上て、は自由に使うことがてきま す。一方 , パソコン上て、は , メモリの制約 などから MS-DOS( 以下 PC-DOS も含めて D OS と表記 ) 上て、そのまま動かすことは不可能 て、した。 TeX て、は整数は 32 ビットて、あり , ( コンパイラも含めて ) 32 ビット CPU 時代以 前て、は , プログラムを工夫して書き直すこ とが必要て、 , いくつかの市販品が販売され ていました。 しかし , このころからいくつかの試みが 出てきました。 TeX の PascaI のソースのコ ンパイルに工夫をしてディスクを仮想メモ リにして動かすものもありました。筆者も 興味を持ちましたが , スピードの点からは 実用的て、ないようて、 , 実際には使用しませ んて、した。 TeX コンパイラとデバイスドライバなど を含んて、いる DOSTeX, pubTeX などの Te X コンパイラ , dvivga, dview, cdvi などの IBM パソコン用のドライバて、す。日本て、も 1989 年に , 吉田英樹氏による Turbo PascaI を用いた METAFONT の移植がなされてい たことを記しておきたいと思います。 筆者は自分の求めることをやってくれる プログラムは , 市販品かフリーかはそれほ ど間わずに使っています。また , 筆者自身 いくっかのプログラムを作成してフリーに 公開していますが , それは市販品には存在 しないものか , 満足てきない場合がおもて、 あり , 単に市販品に対するフリーの代替品 を目的として作って公開するというのは , 作成の動機にはなりません。 金銭的に余裕のない人のためにフリーの ソフトウェアを提供することももちろん有 用て、すが , 日本によいソフトウェア産業を 育てていくこともたいへん重要だと考えて います。これには賢いユーザが必要て、 , ュ ーザが違法コピーを行わないことと , ソフ トハウスはプログラムを適正な価格て、提供 し , よいユーザを大事にすることが大切だ と思います。 このような意味て、 , アスキーが日本語 Te X の開発とともにパソコンて、使用可能な日本 語 MicroTeX のパッケージを早い時期に販冗 ことは , 技術者の先導があったのて、し ようが , 日本て、の TeX の普及の上て、高く評 価したいと思います。 さて , 1989 年夏頃に Wayne G. Sullivan 氏によりフリーな TeX コンパイラ SB24TeX が発表され , これを入手することがてきま した。 Turbo Pascal とインラインアセンプ ラを使って書かれたものて、 , コンパクトて、 , MicroTeX より高速 , かっ軽快にコンパイル することがて、きました。さっそくこれを 1 枚 にまとめたディスクに入れ , MicroTeX のも のと入れ換えました。 その後 , SB26TeX, SB29TeX, SB38TeX とバージョンがあがっていきまし たが , 速度の点から見て , DOS 上ては (EM S や DOS Extender などを使わない場合の ) 最良の TeX コンパイラて , CPU が 80286 以下 の場合には今て、も薦められるものて、す。筆 者自身はメモリ効率の点から SB29TeX を長 らく愛用し , それ以降のバージョンアップ はしていません。 また , METAFONT も , コンパイラ同様 に Sullivan 氏により DOS 上に移植され , SB MF13 のような名前て、公開されています。 T eX のデバイスドライバと異なり , TeX コン パイラや METAFONT プログラムは , 上記 のものを含めて , ほとんどが DOS generic てす。 工デイタにはフリーなものがありました から , SBTeX の出現てデバイスドライバに フリーなものがあれば , TeX を使用するう えて、必要なプログラムがフリーに揃うこと になり , 自由に配れるディスクにまとめる ことがて、きます。またそれ以上に , PC ー 980 1 上て満足に動く EPSON の ESC/P 対応のプ リンタドライバがほしいと感じました。 米国て、 TeX を使っていたときは , TeX の フォントファイルとか dvi ファイルなどにつ いての知識はまったくなしに TeX を使って ちょうどこのころ「 TeX 入門』 ( 大野義夫 編 , 共立出版 ) が刊行され , TeX や METAF ONT の仕組みの概略を知ることがてきまし た。 TeX のデバイスドライバの手本があれ ば , それをもとにあまり時間をかけないて , ほしいものに書き直すことは筆者にもてき 特集 TeX 75

9. 月刊 C MAGAZINE 1993年10月号

最初のものは , オーディオテープがプログ ラムやデータの保存手段て、した。プログラ ムのプリントアウトも , マイプライタを経 由してタイプライタを使っていました。フ ロッヒ。ーディスク装置はとても高価て、した。 実用的な速度を得るため一部はアセンプ ラを用いましたが , 開発のためのユーティ リティはあまりなく , ディスアセンプラや デバッガなどは自分て、作りました。自分て、 使うことが目的だったのて、 , 原稿をメモリ において作成しながらプログラムを改変可 能なシステムにしてあり , リセットキーを 押しても , 元のプログラムに戻ってくるよ うになっていました。そのため , コマンド モードからの戻り方を忘れるといつもリセ ットキーを使うという人がいて , びつくり こともありました。これは , たとえハ ングアップしても作成中の文章を失うこと と思い作った機能だったの がないように て、すが・・・ 筆者のプログラムを使ってくれる人が次 第に増え , それを使うためにコンピュータ を含めハードウェアー式を初めて買う人も いて , 質問などの問い合わせが夜間にもく とても対応 るようになってしまいました。 しきれなくなって , このプログラムをソフ トハウスて、扱ってもらうことにし , WordT ech という商品名て、販売しました。 その後のコンヒ。ュータと周辺機器の進歩 はめまぐるしいものて、 , プリンタ関連の変 化はとくに大きかったと思います。タイプ ライタもディジーホイル型の電動タイプラ イタて、コンヒ。ュータに接続て、きるものが比 較的安く出るようになり , パソコンて、日本 語が扱えるようになってくると同時に , ド ットプリンタも , 8 ドットから 16 ドット , 24 ドットと高解像度化の道をたどりました。 また ,Canon からは 300dpi のレーザプリンタ LBP ー 8 が発売され , 咼品位の出力が可能と なりました。 作成したプログラムは WYSIWYG 型の数 式を扱えるワープロといったものて、 , subs cript や superscript がそれぞれ 4 段まて、可能 て、 , 各種記号や字体が扱え , 最終的には LB P による高品位出力もサポートしました。プ リンタが次第に高品位になってきたのて、 , 印刷所に渡す原稿もタイプライタを使う必 要がなくなり , 筆者の周辺て、は , より融通 のきくドットインパクト型のプリンタやレ ーザプリンタが原稿作成に使われるように なりました。 WordTech はソフトハウスの予想以上に 売れたようて、 , そのソフトハウスはその後 主流になった PC ー 9801 への移植を計画し , あ る方に依頼しました。しかし , なかなか完 成せず , ついに日の目を見ることなくその 方は不慮の交通事故て、亡くなってしまいま した。しかし , 開発に関係したノウハウの 一部は , 現在発売されている CD - ROM 版『世 界大百科事典』 ( 平凡社 ) に生きていると聞 いています。 筆者はワークステーションを自由に便利 に使える環境て、はなく , 特殊な計算などを 行う場合以外の , 前記のような原稿作成に は , やはり身近に個人て、所有して使えるコ ンピュータ , すなわち , パソコンのほうが 便利て、した。 そのような環境て、 TeX の存在を知ったの は , アスキーから 1986 年ごろに MicrioTeX が発売されたときて、した。これは , Addiso n-WesIey Publishing 社の MicroTeX に , ア スキーが PC ー 9801 用のプレビューア dvi2 と P C-PR 系の 160dpi プリンタ用のドライ '*dvi 2pr とそれに適合するフォントとを付属させ たものて、した。 これには , initex, virtex から TeX の実行 ファイルを作成する方法の説明とファイル の一覧表とが書かれたもののコピー 10 枚程 度がついていただけて、 , TeX についての知 識がすてになければ使えないものて、した。 自作のプログラムを使っていた筆者は , 実 際には使用しませんて、した。 e との出会い ( これにはガイドブックが付属していたそう たが , そのときは興味がありませんて、した その後 , 日本語 MicroTeX も発売されまし て、す ) 。 1987 年の秋に 3 か月間米国に滞在する機会 がありました。そのころ筆者のプログラム は PC ー 8801 の上て、動いていましたが , 米国て、 使うことは期待て、きず , 行けば何とかなる だろうということて、 , 出発しました。滞在 した場所には IBM のパソコンと Macintosh がありました。 ChiWriter や T3 など IBM 用 の数式が扱えるエデイタも試しに使ってみ ましたが , 後者のほうが環境が整備されて いたのと , 初めての場合使いやすいという こともあって Macintosh て、文章を作成しまし 期限の迫った ( または , 期限をすぎて待っ てもらっている ) 原稿がたくさんありまし た。滞在していたところのコンヒ。ュータ室 に置いてあった解説書には , いくつかの数 式の扱えるエデイタについての記述があり , 「 TeX はもっとも難しいのて、 , 習熟に多くの 日数がかかる」と書いてありました。期限の こともあるのて、 Microsoft Word を使い , 数 式は「数式工デイタを呼び出してエデイタの 中て、張り付ける」という方法を用いることに しました。これを使うと自動的に , 数式の subscript などはポイントを変えた文字にな って綺麗にて、きます。 活字を組むための原稿作成て、あり , 従来 は subscript などて、も , タイプライタのとき からの習慣て、同じサイズの文字を使ってい ました。プリンタの解像度が小さいときは , 小さい文字を使うとフォントや文字を間違 えやすいという事情もあったからて、すが。 ところが , 本文中にも数式て、使われる記 号の一部が現れて subscript があったりする と , 全体のバランスから考えて , 数式工デ イタて、作成した部分とフォントやポイント 数を揃えないとたいへん見苦しくなります。 このときにわざわざ数式工デイタを呼び出 して本文に張り付けるのは厄介て、す。そこ て、 , 工デイタの中て、フォントやポイント数 の切り換えを行うことにしましたが , キー やマウスをたびたび操作しなくてはならず , 作成にたいへん時間がかかってしまいまし 、 0 特集 TeX 73

10. 月刊 C MAGAZINE 1993年10月号

実際のドット単位て、の幅は , 解像度や , 拡大率などを使って計算され , しかも丸め 誤差が加算されないように配慮されていま す。 アスキー日本語 TeX て JXL4 以外の代替の 和文フォントを用いる場合は , この横幅の Section 2 TEX 周辺事情 Vz や MIFES や Brief といったエデイタを 使いだすと , あまりにも軽快なため , ワー プロを使うのがおっくうになり , 手紙も報 告書もみなエデイタて、書きたくなるものて、 す。私も朝から晩まて、 emacs というエデイタ を立ち上げつばなして , 何から何まて、これ て、書いてしまっています。 こは太い字にしたい ところが , eX ( テック ) とは何か はイタリック ( 斜体 ) にしたい こは下ツ キ添字にしたいなどと思っても , 工デイタ て、は表現て、きません。 工デイタて、このようなリッチテキストを 表現するためには , 地の文と区別てきるよ うな特別なコマンドを使えばいいのて、す。 UNIX て、昔から使われている roff 系のフォー マッタもこの考え方に基づいていますし , 今て、もこういったフォーマッタはいろいろ 作られており , フリーソフトとしてネット に流れたり , 販売されたりしています。 しかし最近て、はこの種のフォーマッタは TeX ( テック ) の仲間 , とくに LaTeX( ラテ ック ) に収束しつつあります。 TeX はコンヒ。ュータ科学の神様 Donald E. Knuth ( クヌース ) が長年手塩にかけた芸術作 品といっていいようなプログラムてす。フ リーソフトて、 , UNIX や DOS, Mac などて、 使えます ( 本誌付録ディスクに DOS 用の TeX が入っています ) 。 TeX て、は , たとえば こを強調したい のようなリッチテキストは 46 C MAGAZINE 1993 10 , こを {Ybf 強調 } したい と表します。これを TeX て、処理してプリン タや画面に送ると「強調」の 2 文字がゴシック 体になります 0Ybf は boldface を意味する T eX のコマンドて、 , 中力ッコ { } はそのコマ ンドの及ぶ範囲を表します。 とくにコマンドを挿入しなくても , また , TeX を使えば禁則処理などを自動的にして くれますし , 英語の部分はプロポーショナ ルて、印字してくれますし , ジャスティフィ ケーション ( 空白を調整して右端を揃えるこ , ハイフネーション ( 語を音節の切れ目 て、ハイフンをつけて切って次行に送ること ) もちゃんとやってくれます。 TeX の出力ドライバは , 種々のドットプ リンタやページプリンタ用からプロの使う 写植機用まて、たくさんありますし , パソコ ンやワークステーションの画面に出力する プレビューアもあります。 TeX は世界中て広く使われていますの て、 , リッチテキストを電子メールて、外国に 送りたいときも , TeX を使うのがいちばん 安全て、す。 TeX 形式のファイルを受け付けてくれる 専門誌や出版社も増えてきました。欧米に は TeX 原稿を受け付ける専門誌が多数あり ますが , 日本ても応用物理学会 , 化学工学 会 , 土木学会 , 日本気象学会 , 日本数式処 理学会 , 日本数理科学協会 , 日本ソフトウ ェア科学会 , 日本天文学会 , 日本伝熱学会 などて、 TeX 原稿を受け付けているようて、す ( 多数漏れがあると思います ) 。 私もこれまて、℃言語による最新アルゴリ ズム事典』 ( 1991 年 ) , 「 LaTeX 美文書作成入 門』 ( 1991 年 ) , fNumerical Recipes in C データがフォントからは得られません。よ って , jfm ファイル ( min10. tfm など ) を必要 とします。 奥村晴彦 eX の拡張 語を使って TeX の機能を拡張することがて、 ンタブリタを書いた人まて、います。 TeX 言 TeX は一種の言語て、す 0TeX て、 BASIC イ 読む人が大勢います。 うて、す。日本て、はどういうわけか「テフ」と があり , TeX もテックになってしまったよ しかし英語圏て、は「ハ」は「ク」に化ける傾向 ドイツ語のバッハやマッハの「ハ」の音て、す。 音 ) のように読むのが正しいとのことて、す。 は後舌面を軟ロ蓋に近づけて出す無声摩擦 語のタウ・エプシロン・カイて、「テッハ」 ( 「ハ」 すが , 作者 Knuth によれば , これはギリシャ 英語圏て、は TeX を普通「テック」と読みま せん。 芸当は TeX て、ないとなかなかうまくて、きま 下げて詰め気味に書くのて、すが , なお , TeX の e は本当は大文字の E を少し のて、す。 イフンをホワイトて、塗り潰してくださった 算て、した。編集部て、ちゃんと TeX 出力のハ いだろうと思って TeX にしたのて、すが , 誤 所て、はハイフネーションもまともにて、きな 英語の文献が多かったのて、 , 日本の印刷 プリンタて、出力してあります。 考文献 ) だけ TeX て、組版して編集部のレーザ 年 1 月号の私の記事は , 58 ページ下半分 ( 参 下出力しました。また , ℃マガジン』 1991 はいずれも東京書籍印刷の写研写植機て、版 号 , 10 月号 ) を TeX て組版しました。これら 論社 ) , 2 編の雑誌記事 ( 『ざべ』 1992 年 2 月 日本語版』 ( 共訳 , 1993 年 , いずれも技術評