LaTeX によるドイツ語・日本語処理 (obsolete: 2002.03.10.)


counter_gif

me and LaTeX click me!

Copyright © Yoshi Nagata
Created: February 10, 1999
Updated: August 16, 2006
Comment to: mail_address

本ウェブページの追加・更新情報とお知らせ


「多言語処理用 TeX システムの構築」商用メディアパッケージを基本とした、多言語処理用 TeX システムの詳しいインストール法(福岡大学総合情報処理センター提供. OS 別インストールガイドは第 3 章にあります. また、ドイツ語・フランス語・ギリシア語・ロシア語入力等、多言語処理に関わる部分のチュートリアルも PDF 形式で用意してあります.)


「TeX を使う人のために」:はじめて TeX に興味を持たれた方のための、精選された必要な情報源が記載されたコンパクトな案内文書(北海道大学大学院文学研究科思想文化学 栗山雅俊氏作成)。ご自由にダウンロードしてください。

PostScript 形式
PDF 形式


藤野先生の「音声学者御用達 pTeX 入門」リンクを張らせていただきました。LaTeX パッケージ TIPA を使った音声学文書の作成・閲覧に関わる情報が提供されています。

「英語版 TIPA と LaTeX2e 入門」ページもあります。


「pLaTeX2e と Babel」:日本語環境の中で Babel を使用するためのインストール法及びシステムの説明。(株)郁文堂 稲垣 徹氏作成。

PDF 形式 (pbabel.pdf A4版14ページ)

「語学論文用パッケージの紹介」:語学論文を執筆するときに便利なパッケージ gb4e, linguex, convington 及び樹形図出力用パッケージ qtree, tree-dvips の紹介と解説。(株)郁文堂 稲垣 徹氏作成。

PDF 形式 (linguistik.pdf A4版26ページ)

「続 pLaTeX2e と Babel」:Babel を用いての 35 言語における実際の出力処理例の紹介。pLaTeX2e 上での各言語用ハイフネーションパタンの使用可否についても言及。(株)郁文堂 稲垣 徹氏作成。

PDF 形式 (exbabel.pdf A4版73ページ)

「続々 pLaTeX2e と Babel」:前ドキュメント「続 pLaTeX2e と Babel」及び「pLaTeX2e と Babel」のバグフィックス。各言語のアルファベット表付き。(株)郁文堂 稲垣 徹氏作成。

PDF 形式 (addbabel.pdf A4版20ページ)

「Omega and/or LaTeX 諸言語出力例第3版」:Omega/LaTeX による160以上もの言語・文字の出力が例示されたレポートの改訂新版。(株)郁文堂 稲垣 徹氏作成。圧巻です。(ファイル容量が大きいので二分割されています)

PDF 形式 (smpl_1.pdf 28ページ 2.25MB)

上記 smpl_1.pdf を圧縮したもの (smpl_1.lzh 1.59MB)

PDF 形式 (smpl_2.pdf 36ページ 1.34MB)

上記 smpl_2.pdf を圧縮したもの (smpl_2.lzh 0.99MB)

「Babel に日本語環境を追加するパッケージ」:(株)郁文堂 稲垣 徹氏作成。基底語を日本語あるいはその他の言語とすることが可能です。

LHA 圧縮形式 (japanese.lzh 5.05KB)


「芸術と技術のリンク --- TeX ワールドへのお誘い」(永田)

特に芸術にご関心がある方に、是非 TeX ワールドの素晴らしさをお知らせしたい、との思いで書いたものです。


目次
  1. 本ウェブページ開設・運営の目的
  2. 「LaTeX によるドイツ語・日本語処理」マニュアル
  3. 論より証拠:LaTeX による実際の組版例
  4. TeX, LaTeX の簡単な紹介
  5. TeX, LaTeX に関する情報収集源
    1. ウェブサイト編
    2. 書籍編
  6. LaTeX システムのインストールについて
    1. 標準システム(日本語 LaTeX2e 日本語・英語処理用)のインストール
    2. 多言語処理のための LaTeX システム拡張法
    3. Emacs と LaTeX による UNIX 上での古典ギリシア語処理パッケージについて
  7. LaTeX による多言語処理
    1. 多言語処理における「ワードプロセシング」と「テクストプロセシング」
      1. デフォルトの LaTeX で可能となっているのは「米語」環境での「多文字処理」であるということ
      2. フレンチスペーシング vs. ノンフレンチスペーシングに代表されるフランス語正書法の実現
      3. ウムラウトの点位置下方修正・ドイツ語引用符出力とドイツ語処理環境の実現
      4. 米語と英語とのスウィッチ
      5. ASCII ベースでの babel によるギリシア語・ロシア語処理
    2. CM フォント vs. EC フォント
    3. LaTeX による多言語混在同時処理と ASCII 以外の文字コード制御について
      1. ASCII ベースでの多言語・多文字体処理
      2. LaTeX による ASCII 以外の文字コード制御
      3. 教材の速成作成 --- ドイツ語ニュースのインスタント加工の例
    4. babel と日本語 pLaTeX2e とのドッキング -- 欧文・日本語混在文書の「テクストプロセシング」
      1. pLaTeX での「7 ビットハイフネーションパタンファイル」使用について
      2. 「言語定義ファイル(*.ldf)」上の相互参照部分カスタマイズと「jbabel スタイルファイル」作成について
      3. 欧文・日本語混在文書における精密組版の実現
  8. LaTeX の入力ファイル作成を簡便にする(入力支援)ソフトウェアの紹介
    1. スペルチェックソフト ispell の Windows 上での使用法
    2. スペルチェックソフト ispell の Linux & Mule 上での使用法
    3. 4Spell
  9. Latin-1(ISO-8859-1)コード文字の LaTeX, HTML それぞれにおける入力命令一覧表
  10. 1「母音の上に小さな e を添える方式のウムラウト」出力用マクロ
  11. 1s-yfonts パッケージ

1 本ウェブページ開設・運営の目的

 皆さんは、日本における通常のパソコン環境(ワープロ環境)において「英語・日本語以外」の言語を取り扱おうとする際、いくつか不満を持たれたことはありませんか?

 一度でもそのような不満を持たれた方に、私は是非お知らせしたいことがあります。それは、そういった皆さんにとって LaTeX は明らかに一つの素晴らしい解答を提供してくれている、という事実です。現段階では、殆ど「唯一の」といえるかもしれません。なぜなら、LaTeX は言葉の真の意味において「多言語処理・多言語混在同時処理」(ここでいう「処理」とは「組版処理」のことであるとお考えください)を行ってくれるからです[]。このことをお伝えしたいがために、そして、色々な言語に携わるより多くの方が LaTeX のコミュニティを一層豊かなものにしていってくださり、そこから私自身もより多くのことを学ばせていただけるようになることを祈念して、私はこのウェブページを開設・運営しています。


[]:とはいえ、このウェブページでご紹介出来る LaTeX による言語処理例はヨーロッパ諸語のうちのごく少数に留まります。しかしながらこれは、LaTeX ではなく私自身の能力限界を示すものに過ぎないことを強調しておきたいと思います。
 例えば、CTAN (= Comprehensive TeX Archive Network) の language ディレクトリには現在[2000.03.06.] 48 個ものサブディレクトリが含まれていますが、これらの中には、インドヨーロッパ語族以外の有力言語であるアラビア語を扱う arabtex や、中国語を扱う chinese や、ヘブライ語を扱う hebrew や、朝鮮語を扱う korean 等々も含まれています。また、hieroglyphsanskrit といったサブディレクトリもあります。
 その他にも、例えば CTAN の fonts ディレクトリにある archaic パッケージを用いれば、古代エトルリア文字・古代キプロス文字・紀元前 6C/4C のギリシア文字・古代フェニキア文字・線文字 B・ルーネ文字等々が使用できるようになります。こうした多様性と豊潤さこそ、TeX / LaTeX ワールドの魅力といえましょう。


 「多言語処理」を謳った、LaTeX の他にもいくつかあるワードプロセッサ等のアプリケーションソフトウェアと LaTeX とを比較した場合、やはり一つ決定的な差異があるといえます。それは、一言で述べると、各言語の「正書法(正字法)」が実現されているか否か、という点です。そして多くのワードプロセッサが結局は「ワードプロセシング(文字処理)」レヴェルでの「多文字処理」に終始しているのに対し、LaTeX はこれとは異なり「テクストプロセシング(文書処理)」レヴェルでの正確な「多言語処理」を実現しているのです。(詳しくは第7節をご覧ください。)

 例えば、丁寧に作られた(信頼のおける出版社から発行された)「英語」、「フランス語」、「ドイツ語」の書籍における組版を一度比較してみてください。すると、即座にあることに気がつきます。それは、「英語」の紙面からは「英語」の、「フランス語」の紙面からは「フランス語」の、そして「ドイツ語」の紙面からは「ドイツ語」の、それぞれに固有の「らしさ」がはっきりと感じ取られる、ということです。人間の目は、こういった微妙な差異を見逃すほど鈍感ではありません。具体的には、各段落でのインデントの有無、語間と文間におけるスペースの差異、コロン・セミコロン・感嘆符・疑問符まわりのアキ、省略符や引用符号、ハイフネーション等々がそれぞれの言語に固有に正確に実現されているからこそ、私達はこのような印象を抱くことになるのだと思います。ある言語が文字や記号に固定されることで顕在化し、その際他ならぬその言語特有の外見を呈するというとき、その背後には「正書法」というルールが働いています。そして LaTeX はこうした各言語の正書法まで正確に反映した組版を実現してくれるのです。

 本ウェブページでは、LaTeX を用いて「ドイツ語、ドイツ語・日本語(横書きが主)」を簡便かつ本格的に処理するための具体的方法を紹介します。「本格的に処理する」とは、学術レヴェルで要求されるような、現代ドイツ語正書法に則った分綴(新・旧両正書法を含む)を正確に反映させたテクストを組版したり、初期新高ドイツ語テクストを、原典通り Fraktur, Schwabacher, Gotisch 等を用いて、合字処理を含め一切の妥協なく組版すること等を意味し、「簡便に処理する」とは、こういった組版作業に関わる大部分を LaTeX の自動処理に委ねることを意味する、とお考えください。なお筆者は、ドイツ語以外の言語の専門家ではありませんが、自分の LaTeX システムでは、上に述べたような「ドイツ語・日本語処理」に関わる組版処理レヴェルを、日本語・英語・米語・ドイツ語・フランス語・ギリシア語・ロシア語においても同様に実現してい(ると思い)ます。従ってドイツ語・日本語以外の言語を正確に扱う必要のある方にとっても、このウェブページが何らかの参考になることを願っています。

 最後にもうひとつ。LaTeX の入力ファイルは徹頭徹尾単なる「テキストファイル」です[](そして第7節で詳しく紹介しますが、現在の LaTeX はアスキーベースのテキストファイルのみに制約を受けず、複数の文字コードを制御できます。ですから、例えば Latin-1コード、即ち ISO-8859-1 コードでダイレクトに記述された「ドイツ語・フランス語・スペイン語等々混在の Latin-1 テキストファイル」をそのままダイレクトに処理できます)。従って、これを例えば Perl のような「正規表現をサポートするテキスト処理系プログラム」に渡すことによって、テクストデータを高度に分析することも可能となります。このように LaTeX システムにおいては、電子化された入力ファイルはそれが「単なるテキストファイル」であることから如何様にも加工・再利用が可能となっており、この意味においてテクストデータが死蔵されるということがありません。今後この方面においても、LaTeX が「語学・文学研究」における確かなツールとして認知され、この活用法を巡り様々な知見が集約されていくことを希望します。


[]:テキストファイルを扱うために機能特化したソフトウェアであるエディタの中でも、特に「アウトライン機能」をサポートしているものを使用すれば、常に原稿テクスト全体を見渡しながらの文書作成が可能となり、長文原稿を作成する際、大いにその作業能率を高められます。WZ Editor 上での文書作成場面を例として掲げておきます。その他にも、例えば、YaTeX を組み込んだ Mule でもセクション区切りのアウトライン表示が可能です。

 アウトライン機能を使った WZ Editor 上での長文文書作成場面


contents目次に戻る

2 「LaTeX によるドイツ語・日本語処理」マニュアル

「LaTeX によるドイツ語・日本語処理」マニュアルを用意しています(ファイル形式は PDF です)。必要な方はご自由にダウンロードしてください。また各部の「目次」のみをテキストファイルで置いてあります。先ず記述内容を鳥瞰されたい方はこちらをご利用ください。

第1部 ラテン活字体による新高ドイツ語の組版処理 第1部マニュアル第1部目次
第2部 ラテン筆記体及びドイツ筆記体による新高ドイツ語の組版処理、ドイツ活字体及びラテン活字体による初期新高ドイツ語の組版処理、ラテン活字体による古期ドイツ語・中高ドイツ語の組版処理 第2部マニュアル第2部目次
第3部 ドイツ語・日本語混在文書の組版処理 第3部マニュアル第3部目次
第4部 近代フラクトゥア、人文主義斜字体、写本書体、ヴァーサル、旧貨幣単位等の組版処理 第4部マニュアル第4部目次

contents目次に戻る

3 論より証拠:LaTeX による実際の組版例

  1. Jacob Grimm: »Ueber den Ursprung der Sprache«(1851年)の組版例(ギリシア語、サンスクリット語の力点を含む)
  2. »Lalebuch«(1597年:初期新高ドイツ語)の組版例
  3. 同じく »Lalebuch« のラテン活字体による組版例
  4. ラテン筆記体の組版例(グリム童話集第一番『カエルの王様または鉄のハインリヒ』より)
  5. ドイツ筆記体(Schwellschrift)の組版例(ゲーテ『魔王』より)
  6. ラテン活字体による古高ドイツ語の組版例(『ヒルデブラントの歌』紀元9世紀初頭)
  7. 7言語(日本語・英語・フランス語・ロシア語・古典ギリシア語・新高ドイツ語・初期新高ドイツ語)、6文字体(日本語明朝体・ラテン活字体・ラテン筆記体・ドイツ筆記体・ゴシック体・フラクトゥア体)の同時組版処理例
  8. 上記組版例の PDF ファイル(紙媒体で確認されたい方はこちらからどうぞ)
  9. PostScript フォントの Times Roman 体によるドイツ語テクスト組版
  10. LaTeX による多言語プレゼンテーションの例 (multilng.pdf) (Ppower4 パッケージ使用. ハードディスク等に保存して「フルスクリーン」でご覧ください. Ctrl + l で「トグル」ことができます. 終了する場合はフルスクリーンモードから抜けて PDF 画面を終了してください. Enter または PageDown キーを押していってください. 一歩前の画面に戻るには PageUp キーを押します.)

contents目次に戻る

4 TeX, LaTeX の簡単な紹介

 TeX とは、理科系・文科系とを問わず、学術レヴェルで要求される文書を最上質に組版処理してくれるフリーソフトウェアです。なおここでいう「フリー」とは、無料という点はいうまでもなく、それを超えて「オープンソース」という側面からこそ強調されてしかるべきでしょう。TeX はスタンフォード大学の数学者 Donald E. Knuth(高徳納)という「カッコ良すぎる[]」教授によって作成されました。LaTeX とは、TeX をより簡便に、そして文書の「論理構造」に基づいて使用できるようマクロ機能拡張されたもので、これもフリーソフトウェアです。LaTeX は多くの人によって、実に洗練された「文書作成システム(Document Preparation System)」である、と高く評価されています。LaTeX の作者 Leslie Lamport の比喩によれば、超高機能であるが誰にでも使いこなせるというわけではないレーシングカーを TeX とするならば、その機能は保ちながらも一応は誰にでも扱えるように、かつ、乗り心地の良いようにように作り替えられたファミリーセダンが LaTeX である、ということだそうです。日本語が使える TeX / LaTeX は、pTeX / pLaTeX2e として(株)アスキーにより配布されています。


[]:「カッコ良すぎる」という表現はいかにも陳腐ですが、クヌース教授のパーソナリティを知れば知るほど、同様の印象を持たれる方も多いと思います。ドン・クヌースは、例えば、e-mail はもう使われない、とか、自宅に備え付けられたパイプオルガンを演奏される玄人肌のピアノ・オルガン奏者である、とか、その他いろいろの点でとにかく垢抜けすぎているように思われます。「高徳納」は教授の中国語名だそうです。私自身は、TeX 及び METAFONT というコンピュータプログラムは、間違いなく一つのアートであると考えます。その完成度の高さ、その奥深さ等、学べば学ぶほど心底驚嘆します。ドン・クヌースのホームページはこちら
 なお、TeX を用いれば、様々な音楽を非常に美しく記譜することも可能です。これは一つの例ですが、こうした具合に、TeX が持つ組版ポテンシャルには際限がないことも強調しておきたいと思います。MuTeX, MusicTeX, MusiXTeX についての情報はこちら。また同サイトには、ベートーヴェン、ショパン、モーツァルト等々、多くの作曲家のスコアが既に PostScript ファイルで用意されています。例えば、MusiXTeX を用いて組版された J.S.Bach の無伴奏ヴァイオリンソナタ・パルティータ全曲のスコアが、ヴァイオリン用のみならず、チェロやヴィオラ用に編曲された形でもダウンロード可能となっています。(例:無伴奏ヴァイオリンパルティータ第2番第1楽章アルマンド)


contents目次に戻る

5 TeX, LaTeX に関する情報収集源

5-1 ウェブサイト編

 まずは松阪大学奥村晴彦先生の「日本語 TeX についての情報」ページを訪ねてみてください。有益な情報が満載です。スタンダードの TeX, LaTeX の実際のシステム構築に関しては、ここから色々なリンク先へと飛んで情報を集めてください。私自身は、主に、近畿大学九州の角藤 亮先生がパックされている TeX, LaTeX 一式に、色々な多言語処理用パッケージを組み込んだものを Windows で使用しています。エディタは WZ を使っています。ただし、ドイツ語入力ファイルを Latin-1 コードでダイレクトに作成する場合には、Linux 上で多言語処理エディタ Mule を使って作業することもあります。Mule に YaTeX を組み込んでおけば、ここから LaTeX プログラムを呼び出せますし、ドイツ語スペルチェックプログラムも統合できます。何より文字コードを明示的に切り替えられる Mule の高機能性と LaTeX との親和性とを考えた場合、本格的な多言語処理はやはり UNIX 上で、ということになるのかもしれません(これに関しては、6-3 節 の記述も参考にしてください)。

 なお、Windows 上での TeX については特に乙部さんの、Macintosh 上での TeX に関しては特に内山さんの、そして、Ghostscript / Ghostview 等の PostScript 関連(これらと組み合わせることによって LaTeX システムは、特に「フォント」や「画像」や「カラー」といった領域において本格的な拡張が可能となります)については特に堀田さんのウェブページが、それぞれ極めて充実しています。定期的に訪問されることを是非お奨めします。

contents目次に戻る

5-2 書籍編

 TeX, LaTeX に関しては既に色々な書物が出版されていますが、ここでは LaTeX のみに焦点を絞り、かつ、多言語処理に関連して有益な情報が得られるものを挙げておきます。

 日本語書籍

  1. 『[改訂版] LaTeX2e 美文書作成入門』奥村晴彦(技術評論社 2000)
  2. 『pLaTeX2e for Windows Another Manual Vol.1 Basic Kit 1999』乙部/江口(ソフトバンク 1998)
  3. 『pLaTeX2e for Windows Another Manual Vol.2 Extended Kit』乙部/江口(ソフトバンク 1997)
  4. 『pLaTeX2e 入門・縦横文書術』藤田眞作(ピアソン・エデュケーション 2000)

 1. は通読すべき日本語用 LaTeX の定番教科書として皆さんにお勧めしたいと思います。2. 及び 3. は網羅的な優れた参考書として、是非手元に置かれることを薦めます。また、4. は LaTeX で「縦書き」文書を扱うための必携の参考書です。藤田先生はこの他にも数多くの優れた参考書をお書きになっています。是非、適宜ご参照ください。

 英語書籍

  1. "LaTeX---A Document Preparation System, User's Guide and Reference Manual (Updated for LaTeX2e)" Leslie Lamport (Addison-Wesley 1994)
  2. "The LaTeX Companion" Goosens/Mittelbach/Samarin (Addison-Wesley 1994)
  3. "The LaTeX Graphics Companion" Goosens/Rahtz/Mittelbach (Addison-Wesley 1997)

 1. は LaTeX マニュアルの原典。明快な文体を持つ、是非通読したい書籍です。2. は参考書として手元に置きたい本。babel 等 LaTeX で用いるパッケージ群の詳しい紹介と解説が満載されています。3. は LaTeX でグラフィック関係(フォントも含む)を扱う際の網羅的な参考書です。PostScript との連動についても詳しく解説されています。同書111ページにある曲線に沿って組版されたアポリネールの現代詩は圧巻。

 ドイツ語書籍

  1. "Das LaTeX-Handbuch" Leslie Lamport (Addison-Wesley 1995)
  2. "Der LaTeX-Begleiter" Goosens/Mittelbach/Samarin (Addison-Wesley 1996)
  3. "LaTeX Band 1, 2, 3" Helmut Kopka (Addison-Wesley 1996, 1997, 1997)
  4. "Schnell ans Ziel mit LaTeX2e" Jörg Knappen (Oldenbourg 1997)

 1. 2. はそれぞれ英語書籍 1. 2. の翻訳。ただし細部はドイツ語用にアレンジしてあります。3. の3巻本はドイツ語で書かれた LaTeX に関する最も網羅的な書籍。スタンダードの LaTeX の解説のみならず、諸パッケージを使用して数学・物理学・化学・音楽などを正確に組版する方法が詳しく紹介されています。4. は EC フォントの作者として名高いクナッペンの著したコンパクトな LaTeX 参考書。

 なお、Schmidt/Knappen/Partl/Hyna 執筆の "LaTeX2e-Kurzbeschreibung" という極めてコンパクトな LaTeX ドイツ語マニュアルもあります(最新版ヴァージョン:Version2.1[18. April 1999])。PDF ファイル形式で置いておきます。なお、このマニュアルに記載されている LaTeX コマンドを全て機能させるためには、1998年06月01日以降配布の LaTeX が必要です。

l2kurz.pdf

contents目次に戻る

6 LaTeX システムのインストールについて

6-1 標準システム(日本語 LaTeX2e 日本語・英語処理用)のインストール

 大きく分けて、

  1. 書籍添付の CD-ROM を利用する
  2. インターネットを通じてダウンロードする

といった二つの方法があります。手っ取り早く LaTeX システムを構築したいという方は前者が、最新のシステムを用いたいという方は後者の方法が、それぞれ適していると思います。詳しくは、奥村先生の「TeX と関連ソフトの入手先」ページをご覧ください。

contents目次に戻る

6-2 多言語処理のための LaTeX システム拡張法

 標準システム「日本語 LaTeX2e」で処理可能となっている言語は、「日本語と英語」のみです(もっとも文字のレヴェルでいえば、ドイツ語のウムラウト・エスツェットや、フランス語のアクサン記号等も、デフォルトのままできちんと出力できます。日本語・英語以外の言語は稀にしか使わない、つまり「多言語処理(テクストプロセシング)をする必要は特にない」ということでしたら、デフォルトの LaTeX のままで必要十分であるといえるでしょう。ただしキリル文字の出力はデフォルトのままでは不可能です)。

 そこで、LaTeX に本格的に多言語処理をさせるためには、多言語処理のための諸パッケージを標準 LaTeX システムに組み込む必要が出てきます。こういったパッケージ群を具体的にどのように組み込むか、については、その作業行程を詳しく解説したマニュアルを公開していますのでどうぞご利用ください(ちょっと古い -- 1998年3月 -- ので恐縮ですが、LaTeX や Dviout のヴァージョンアップによる細部の名称変更等に注意すれば、まだまだ参照するに足ると信じます。なおマニュアル本文中、ドイツ活字体処理のために oldgerm パッケージを、また、国際音標文字処理のために wsuipa パッケージをインストールするよう記述していますが、現在ではそれらの代わりに yfontstipa をインストールした方が、より使い勝手がよくなると思います)。また、マニュアルの「目次」のみをテキストファイルで置いてあります。先ず記述内容を鳥瞰されたい方はこちらもご利用ください。

 なお北海道大学大学院の栗山さんが、本マニュアルの「新旧対応読み替えリスト」を作成してくださっています。解凍プログラム・インストール方法の註記が追加され、babel 関係の URL 変更等も丁寧に反映されています。また、すべてのファイルを Web から集めるのは大変と思われる方々のために、奥村晴彦著『LaTeX2e美文書作成入門』(第1版第4刷、1999.8)付属の CD-ROM 利用についても触れられています。是非こちらの方も参考にしてください。現在「新旧対応読み替えリスト」の最新版は第7版(2000.04.29.)です。最新版では、(1) 角藤先生の TeX 関連ページの URL 変更、(2) pTeX-2.1.9 関連の記述追加、(3) texmf.cnf 記述を最新版に変更、(4) pLaTeX 上の hyphen.cfg ファイルの削除の指示、(5) ギリシャ語関連の記述の追加(greek.ldf の修正)、(6) Dviout の最新ヴァージョン(3.11)への言及、(7) 最新版 Ghostscript / GSview のダウンロードやインストール法への言及、(8) Windows 以外の OS に関する記述の追加、(9) yfonts パッケージのインストールに関する記述追加、(10) tipa パッケージのインストールに関する記述追加、(10) okumura 版についての読み替えリスト補記等がなされています。初版、第2版、第3版、第4版、第4a版、第5版、第6版もあわせて置いておきます。(参考「個人的には第4版以前は不要ではないかと思われます」と栗山さんは言われています。)

[2001.04.21.] 栗山さんによる『最新版 LaTeX2e, pLaTeX2e におけるギリシャ語・ロシア語環境の使用について(Win32版)』もあります。ここでは角藤版 Web2C-7.3.3 for Win32(奥村晴彦著『[改訂版] LaTeX2e 美文書作成入門』第2版第1刷 2000.12.25 技術評論社所収)上でギリシャ語・ロシア語を使うための方法が詳しく解説されています。

多言語処理システム構築マニュアル マニュアル「目次」
「読み替えリスト第7版」(最新版) 「読み替えリスト初版」 「読み替えリスト第2版」
「読み替えリスト第3版」 「読み替えリスト第4版」 「読み替えリスト第4a版」
「読み替えリスト第5版」 「読み替えリスト第6版」 「ギリシア語・ロシア語関連」

contents目次に戻る

6-3 Emacs と LaTeX による UNIX 上での古典ギリシア語処理パッケージについて

 明治学院大学の水落先生、京都大学の鎌田先生、そして通産省工業技術院電子技術総合研究所の高橋さんによる「Emacs-20 古典ギリシア語パッケージインストール & オペレーションマニュアル」という素晴らしい Webpage があります。ここでは、マルチリンガルエディタ Emacs-20 上で、英・独・仏・伊・西などヨーロッパ諸言語、さらに、日本語、古典ギリシア語を「混在して」使用可能にする環境を構築するパッケージが公開・配布されています。また、このようにして作られた「多言語混在文書」を TeX 用マークアップ言語形式に「自動変換」させる機能も付されるなど、極めて完成度が高いものとなっています。

 ここで、水落先生方のパッケージと、私のウェブページで紹介している多言語処理の路線の違いについて、簡単に説明しておきたいと思います。

 私のウェブページで紹介している LaTeX による多言語混在処理の路線は、あくまで日本語及びASCIIテキストファイルベース入力であり、ドイツ語・フランス語特殊文字やギリシア語やロシア語などは、それらに固有の文字をローマ字アルファベットやその他の記号を用いて一対一対応をつけてやる、つまりマークアップしてやる、ことで処理しようとするものです。また、原則として、多言語混在処理に関して既に高レヴェルの完成をみている babel というシステムに、何とか日本語処理環境をドッキングさせよう、というアプローチをとっています。もちろん、最初から Latin-1 コードしか用いないことが分かっている場合は、ドイツ語やフランス語をダイレクトに入力することもありますが、いずれにせよ、一文書内では一文字コードしか扱いません。

 これに対し、水落先生のパッケージは、文書入力作成の段階から、「日本語は日本語で、ドイツ語はドイツ語で、フランス語はフランス語で、ギリシア語はギリシア文字で」表記することを、つまり複数文字コードの混在使用を、一文書内で可能としているものです。

 こうした異なる二つの路線には、それぞれ長所と短所があります。

 先ず、一文字コード使用のマークアップ方式では、日本語と混在させた場合、ギリシア語をギリシア文字で入力できない、ロシア語をキリル文字で入力できないといった制約があります。最初から、「ギリシア語はギリシア文字で、ロシア語はキリル文字で、記述・思考したい」という人にとっては、根幹に関わる問題といえるでしょう。しかし、入力ファイルの二次利用という観点からすれば、これが一文字コードしか取り扱っていないため、何のトラブルもなく他のプログラムに渡すことが出来る、というメリットもあります。また、入力用エディタとしては各人が好きなものを選ぶことが出来ます。

 これに対し異種文字コードの混在を可能とする水落方式は、「ドイツ語はドイツ語で、ギリシア語はギリシア文字で思考したい」という人には間違いなく福音です。しかし、このままでは LaTeX が受け付けてくれませんし(LaTeX が制御できるのは一処理時に一文字コード)、grep 等の検索機能も異種文字コード混在の複雑さが原因で十全に働き得ないというデメリットもあるように思われます。入力用エディタが Emacs-20 に限定されるのも仕方のないことでしょう。多言語処理という点に関しては、Emacs / Mule は間違いなく他に比肩するもののないベストのエディタですから。そもそも水落先生のパッケージは Emacs という高機能エディタがあってはじめて可能となっている多言語処理環境であるといえるでしょう。もっとも、コンピュータ上での本格的な多言語処理を考えるとき、UNIX における Emacs / Mule + LaTeX という選択肢は、その抜きん出た高機能性のゆえに、将来スタンダードとして確実に普及していくことになるだろうという予感もします

contents目次に戻る

7 LaTeX による多言語処理

 ここからは、やや詳しく LaTeX における多言語処理の実際を解説していきます。

7-1 多言語処理における「ワードプロセシング」と「テクストプロセシング」

7-1-1 デフォルトの LaTeX で可能となっているのは「米語」環境での「多文字処理」であるということ

 もちろん「米語」即ち「アメリカ英語」レヴェルでは、完璧な「言語処理」つまりテクストプロセシングをしてくれる、ということを次の例で確認してください。

入力ファイル usenglish.tex
出力ファイル(その1) usenglish.dvi
出力ファイル(その2 拡大部分) usenglish.dvi

 ご覧いただけば分かる通り、スタンダードの LaTeX だけを用いても、ドイツ語のエスツェットやフランス語の oe 合字といった特殊文字、また、ドイツ語のウムラウトやフランス語のアクサン記号、といったものの出力が可能となっています。表記にラテン文字を用いる諸言語においては、その文字表記レヴェルに限って言えば、殆ど全ての主要言語がスタンダードの LaTeX のみで処理できます。しかし、ここまではいわばワードプロセシングのレヴェルであり、LaTeX が本来自動的に行ってくれるテクストプロセシング(例えば、行末における自動ハイフネーション -- 例えば英語とドイツ語の分綴規則はもちろん異なっています -- や、目次・索引・日付等の自動作成)レヴェルにおける言語処理が、例えばドイツ語やフランス語に対しても最初から実現されているというわけではありません。ここの例では、目次や日付の自動出力が「米語」式に行われていることを確認してください。

contents目次に戻る

7-1-2 フレンチスペーシング vs. ノンフレンチスペーシングに代表されるフランス語正書法の実現

 次に問題となるのは、それでは、英語以外の諸言語においてもデフォルトの LaTeX で実現されているようなテクストプロセシングレヴェルでの組版を実現するにはどのようにしたらよいのか、ということです。実は、こうしたことを実現するために、LaTeX には夥しい数の言語パッケージが用意されているのです。その中でも、「多言語混在同時処理」を可能とする babel というパッケージは出色です。ここで、babel におけるフランス語オプションを選択したとき、テクストプロセシングが如何に実現されるのか、を見てみましょう。

入力ファイル french.tex
出力ファイル(その1) french.dvi
出力ファイル(その2 拡大部分) french.dvi

 今度は、「目次・日付」部分が自動的にフランス語で出力されているのが分かります。しかし、LaTeX のテクストプロセシングはこのレヴェルに留まりません。是非、コロンやセミコロン、また、感嘆符まわりのアキもじっくりご覧ください。そして出力ファイルと入力ファイルとをよく比較してみてください。

 いかがですか。入力ファイル段階では語の後にスペースを置かずそのまま打たれていたコロン・セミコロン・感嘆符の前後に、出力ファイルでは自動的に適当なアキが挿入されていることが確認できたと思います。実はこれがフランス語の正書法なのです。微妙ではありますが、この間の事情は先の米語関連ファイル usenglish.tex, usenglish.dvi と比較していただきますと、一層よく理解出来ると思います。英語(ドイツ語も同様)では、コロン・セミコロン・感嘆符の前にアキを設けません。

 さらに、フランス語の組版においては、各段落が自動的にインデントされることも指摘しておくべきでしょう(古典ギリシア語もそうらしいです)。これも、先ほどの usenglish.tex, usenglish.dvi と比較しますとよく分かります。

 さて次に、先の出力ファイル(その2 拡大部分) usenglish.dvi出力ファイル(その2 拡大部分) french.dvi とを注意深く比較してみてください。かなり微妙ではありますが(TeX は 0.000005mm 単位で文字位置を決定します)、

The Romans wrote I + I = II. Really!
cf. Fig. 5

の部分における双方の組版例の違いは分かりますでしょうか?

 英語(米語も含む)においては、単語間のアキより文間のアキを少々多く取ることになっており、これは「ノンフレンチスペーシング」と呼ばれています。ところで、ピリオドは文末を示す以外に省略符号としても用いられます。こうした使い分けを自動的に区別するため、原則としてデフォルトの LaTeX は、前に小文字がある場合は文末、それ以外は省略符号、としてピリオドを認識します。このとき注意せねばならないことは、大文字の後に続くピリオドでも文末となっている場合(The Romans ... の例)、と、小文字の後に続くピリオドでも省略符号となっている場合(cf. Fig. 5 の例)、の二つの例外があるということです。こういった場合には、\@\ (円またはバックスラッシュ記号の後に半角スペース)を明示的に打ってやり、それぞれ文末であること、省略符号であることを、LaTeX に教えてやらねばなりません。

 一方、フランス語では(ドイツ語も同様)単語間のアキと文間のアキをほぼ等しくしており、これは「フレンチスペーシング」と呼ばれます。この場合は、英語用デフォルトの LaTeX で意識しておかねばならなかった \@\ (円またはバックスラッシュ記号の後に半角スペース)といったコマンドは無視してよいことになります。従って、フランス語においては、入力ファイルにおけるこうしたコマンドの有無は、出力には何の違いももたらさないのです。

contents目次に戻る

7-1-3 ウムラウトの点位置下方修正・ドイツ語引用符出力とドイツ語処理環境の実現

 今度は babel におけるドイツ語処理を見てみましょう。

入力ファイル german.tex
出力ファイル(その1) german.dvi
出力ファイル(その2 拡大部分) german.dvi

 今回ももちろん、目次や日付は自動的にドイツ語として出力されます。注目されるのは、第一に、ウムラウトやエスツェットの入力が "x のように簡略化されたことです(もちろんデフォルトの LaTeX におけるように \"x と打ってもかまいません)。そして第二には、デフォルトの LaTeX では不可能であった「ドイツ語引用符(Anführungszeichen, Gänsefüßchen)」の出力が可能となったことです(一重のドイツ語引用符は \glq\grq で出力されます)。また、フランス語オプションにおけるのと同様、ドイツ語オプションにおいてもフランス語引用符(guillemets)の出力も可能となっています(\flqq \frqq, \flq \frq で出力されます。ただしドイツ語においてはフランス語におけるのとは「逆向き」にギユメが用いられます。もっとも、スイス圏のドイツ語だけはフランス語同様のギユメを使用し、かつ、エスツェットは用いません。また、フランス語においてはギユメの後には必ずスペースを設けますが、ドイツ語の場合はこうしたスペースを置きません)。

 しかし、さらに「出力ファイル(その2 拡大部分) german.dvi」に目を凝らしてみてください。するとデフォルトの LaTeX 出力に比べてウムラウトの点位置が若干下方に修正されているのが分かります(出力ファイル(その2 拡大部分) usenglish.dvi と比較してみてください)。これぞ「ドイツ語のこだわり」という気がしませんか。実は、TeX におけるデフォルトフォントである Computer Modern (CM) フォントにおいては、ウムラウト等は「合字」させて出力されています。このアイディアそのものは素晴らしいものであると思いますが、ドイツ人達が苦にしたように「字面の見てくれ」という美的側面からは問題がないわけではありませんでした。また、ドイツ語やフランス語の引用符号まわりの「字詰め(kerning)」においても不具合があったようです。さらには、組版における根幹的問題として、CM フォント使用時には LaTeX の \hyphenation コマンドにおいてアクセント記号や特殊文字を含んだ単語指定が出来ない、ということがありました。こうした欠点を克服するために開発されたのが EC (Extended Computer) フォントです。EC フォントは、ヨーロッパ諸語におけるアクセント付文字や特殊文字をそもそもフォントセットに含んでいるため(大文字に付くアクセント記号の傾き具合等までデザインされている!)、ヨーロッパ諸語を LaTeX で取り扱う際には、最初からこれを用いることが推奨されています。詳しくは 7-2 節をご覧ください。

 なお、babel のドイツ語オプション使用においては、他言語との混在使用に関わる制約から、例えば「タイトル・著者名」等の自動出力において "x 形式のコマンドが使用不可となっていること、また、なぜかフレンチスペーシングがデフォルトではオフとなっていること、の二つの理由から、私自身はドイツ語をメインに用いるときは german パッケージを使用しています。もっとも、新正書法と旧正書法との切り替えは babel でも同様に可能です。

contents目次に戻る

7-1-4 米語と英語とのスウィッチ

 初めに、デフォルトの LaTeX は「米語」処理環境になっている、ということを述べました。babel を用いれば、これを「英語」処理環境に変更することがいとも簡単に出来ます。次の例を見てください。

入力ファイル british.tex
出力ファイル(その1) british.dvi
出力ファイル(その2 拡大部分) british.dvi

 ここに掲げた入力ファイルは、基本的に先ほどの 入力ファイル usenglish.tex と同一のものです。そこに一言 \usepackage[english]{babel} と付け加えるだけで、例えば日付の出力が「英語」式になることが分かります。これを「米語」式にする場合は、オプションを [american] とすれば OK です。もちろん LaTeX のデフォルトは米語式ですから babel をロードする必要はそもそも特にないわけですが、このようにした方が、ユーザ自身使用言語に関して意識的になり、言語自身も相対化されるという意味においてベターだと思うのですが、いかがでしょうか。

 さらに細かいことをひとつ。英語圏においては日本と同様、小数点にはいわゆる「小数点」が用いられます(しかし例えばドイツ語・フランス語ではこれが「コンマ」になります。または少しの空白のみを設けます)。米語においては日本における小数点と同じ位置に小数点が打たれますが、英国ではこの小数点がやや上方に置かれます。このことを反映させるコマンド \textperiodcentered や「序数」を扱うコマンド \textsuperscript がどのように機能するのか「入力ファイル british.tex」と「出力ファイル(その2 拡大部分) british.dvi」を比較しながらじっくりとご覧ください。なお、英国用小数点記号は Latin-1 コードにも含まれています(例:3·14159 ...)。

contents目次に戻る

7-1-5 ASCII ベースでの babel によるギリシア語・ロシア語処理

 私はギリシア語やロシア語の専門家ではありませんから、偉そうなことは何もいえませんが、ここでは入出力ファイルを掲げ、若干のコメントのみを記しておきたいと思います[]


[]:現在([2000.02.26.]) babel におけるギリシア語・キリル文字系言語オプションに関して「本格的な」拡張がなされているようで、パッケージはいささか流動的なようです。しばらくはその推移を見守りたいと思います。


ギリシア語入力ファイル greek.tex
ギリシア語出力ファイル(その1) greek.dvi
ギリシア語出力ファイル(その2 拡大部分) greek.dvi

ロシア語入力ファイル russian.tex
ロシア語出力ファイル(その1) russian.dvi
ロシア語出力ファイル(その2 拡大部分) russian.dvi

 先ずギリシア語に関してですが、古典ギリシア語に関わる多くのアクセントと気息記号を扱う場合は、オプション欄に greek ではなく polutonikogreek を指定するようになっています。古典ギリシア語では段落はじめは必ずインデントするようになっているらしいので(現代ギリシア語ではそうではないようです)、これを実現するためにはプリアンブルで明示的に \usepackage{indentfirst} と記してやり、indentfirst パッケージをロードします。また、イタリック体、ボールドフェイス体、サンセリフ体等々といったフォントの変更も、スモールキャピタル体のみを除けば、通常の LaTeX と全く同様に扱えるようになっています。ギリシア数字やアテネ数字も扱えます。

 ロシア語に関しては、スランティド体・イタリック体・タイプライタ体・ボールドフェイス体・サンセリフ体・スモールキャピタル体のいずれも、通常の LaTeX におけるのと全く同様に扱えるようになっています。疑問符や感嘆符まわりのアキに関しては、フランス語正書法の影響を受けている気がします。

contents目次に戻る

7-2 CM フォント vs. EC フォント

 7-1-3 節でも既に述べましたように、英語・ドイツ語・フランス語以外のヨーロッパ諸語で用いられている文字の中には、例えば Ð ð Þ þ のように、CM フォントでは出力不可のものがいくつかあります。こうしたものを取り扱えるようにするためには、CM フォントの代わりに EC フォントを使用するようにプリアンブル指定してやれば OK です。\usepackage[T1]{fontenc} と記しておくだけです。文字以外にも、ヨーロッパ諸語の文書内で用いられる典型的な 97 個の記号類を使用可能とするために、同時に textcomp パッケージをロードしておくとよいでしょう。以下の例で確認してみてください。なお、 textcomp パッケージを使用するには、1998.06.01. 以降の LaTeX ヴァージョンが必要です。

EC フォント使用入力ファイル ec_english.tex
EC フォント使用出力ファイル(その1) ec_english.dvi
EC フォント使用出力ファイル(その2 拡大部分) ec_english.dvi

 指摘されないと気付きにくいことですが、ウムラウトの点位置はそもそも下方に(これは見分けにくい)修正され、エスツェットのデザインも CM フォントとは異なり、アクサンシルコンフレックスも下方に置かれています。また、ドイツ語・フランス語引用符号の入力が、より直観的になっています。入・出力ファイルを比較してみてください。また、これで CM フォント使用時に見られた \hyphenation コマンドに関する問題は解消されました。

 なお、オプション欄の T1 は Text 1 の略です。T2 はキリル系文字に、T3 は国際音標文字に、T4 はラテン字ベースのアフリカ系文字に、それぞれ割り振られています。これらは全て 8 ビットですが、旧 7 ビット系のフォントセットを扱う際には、例えばキリル文字の場合、[OT2] (Old Text 2 の略) 等とします。

contents目次に戻る

7-3 LaTeX による多言語混在同時処理と ASCII 以外の文字コード制御について

7-3-1 ASCII ベースでの多言語・多文字体処理

 さて、以上までは babel による「各言語処理」の話でしたが、次に babel による「多言語混在同時処理」の説明をしたいと思います。以下の入出力例をご覧ください。これは 6 言語(英語・フランス語・ロシア語・ギリシア語・新高ドイツ語・初期新高ドイツ語) 6 文字体(ラテン活字体・ラテン筆記体・ドイツ筆記体・ゴシック体・フラクトゥア体・イニシャル体)を取り扱ったものですが、全て一つのシステムで処理されています。

入力ファイル1(プリアンブル、英語)
入力ファイル2(フランス語、ロシア語、ギリシア語)
入力ファイル3(ギリシア語、ドイツ語ラテン活字体・筆記体)
入力ファイル4(ドイツ筆記体、ゴシック体)
入力ファイル5(イニシャル体、フラクトゥア体)
出力ファイル1(タイトル、目次)
出力ファイル2(英語、フランス語)
出力ファイル3(ロシア語、ギリシア語、ドイツ語ラテン活字体)
出力ファイル4(ドイツ語ラテン筆記体)
出力ファイル5(ドイツ筆記体)
出力ファイル6(イニシャル体、フラクトゥア体)

 さて、多言語混在同時処理にあたっては、いくつかのポイントがあります。

 先ずはじめに、どの言語を「基底語」とするか、を決めなくてはなりません。babel ではオプション欄に最後に記された言語が基底語となり、この言語用にハイフネーション等の正書法が実現され、また目次・日付出力等がなされます。上の例では、ドイツ語を基底語としていますので、ドイツ語による目次・日付出力が確認できます。

 次に、基底語以外の言語を使う個所では、\selectlanguage コマンドを用いて、各言語の正書法を切り替えてやります。もちろん基底語以外の言語を単語レヴェルで単発的に扱う場合はこの限りではありませんが、上の例のようにまとまって多言語を扱う場合は、このコマンドが如何に重宝するか実感できることでしょう。フランス語部分(「出力ファイル2」)で、ここだけ段落初めが自動的にインデントされているのを確認してください。また、ドイツ筆記体の箇所(「出力ファイル5」)では、ドイツ語正書法に則り、Glocken-schlag, kulmi-nierte, Sa-turn と正しく自動分綴が実現されている点もご確認ください。

 さらに、ラテンアルファベット以外で表記される言語を混在させて扱う場合で、LaTeX に目次等自動作成関連のクロスリファレンス処理をさせるときは、注意が必要です。といいますのも、例えば \selectlanguage{greek} としますと、これ以降表記が全てギリシアアルファベットベースになり、セクション名等もギリシアアルファベットでなされてしまうからです。
 こういった場合は、当該 \section, \subsection 等の前に \selectlanguage コマンドを打ち、クロスリファレンスの言語ベースを「基底語」に戻しておきます。「入力ファイル1」の 45 行目、「入力ファイル2」の 57 行目、をそれぞれ参照してください。

 最後に、この「多言語混在同時処理例」においては EC フォントを用いていることから、\hyphenation コマンドにおいて、アクセント記号や特殊文字を含んだ単語指定も可能であることを確認しておいてください。なお、ここでは babel パッケージを使用しているため、本文以外でのウムラウトの入力形式は \"x となっており、このため分綴当該箇所(「入力ファイル5」の 107 行目)のみ「入力ファイル1」の 3 行目と同様 \"x 形式のウムラウト表記がなされています。もっとも babel の代わりに german パッケージを使用するのであれば、全て "x 形式で統一できます。
 因みにこの箇所が、babel によりドイツ語用ハイフネーションプログラムがロードされた LaTeX においても自動分綴されない理由は、weitläufftigen という綴りが「現代ドイツ語正書法」と衝突するからです。weitläuftigen と f が一つであったなら、きちんと自動分綴されます。また、分綴符号がラテン活字体用ではなく、ドイツ活字体用に実現されているという点にも是非注目してください。「入力ファイル1」の 5 行目にある [varumlaut] というのは、yfonts パッケージにおいて、通常は *x 形式で入力する「母音の上に小さな e を添えるウムラウト」を "x 形式 で出力可能にするためのオプションです。

contents目次に戻る

7-3-2 LaTeX による ASCII 以外の文字コード制御

 さて、ここまでは ASCII コードによる LaTeX 入力ファイル作成のお話でしたが、現在の LaTeX は ASCII コードによる入力ファイルしか扱えないわけではありません。最新の LaTeX (1999.12.01.) では、16 もの文字コードを制御できるようになっています

これは、言い換えるなら、「ドイツ語文書はダイレクトにドイツ語で打ち込み、かつ、こうして作成された入力ファイルをそのまま LaTeX に渡すことで高品質の組版機能までをも享受することが可能となっている」ということです。

 さらにいえば、babel の持つ「多言語混在同時処理」機能を使えば、言語は異なっても、その表記文字コードが同一であるならば(例えば、英語・フランス語・スペイン語・ドイツ語など)、複数の言語を入力の段階からダイレクトな表記で統一的に処理することが出来るわけです。

 とはいえ、現実問題として、こうした入力ファイルを作成するためには、色々な文字コードを明示的に切り替えて使用できるような高機能のエディタが是非とも必要です。そして使用する文字コードに応じてキーボードを取り替える等という煩雑なことを避けるならば、あわせてインプットメソッドまでサポートしているようなエディタを求めねばなりません。私の知る限り、このようなエディタは UNIX 文化の中にしかありません。

 以下では、Linux 上において Mule を使って ISO 8859-1 (Latin-1) コードをダイレクトに扱い、これをそのまま LaTeX に渡す例を紹介します。ドイツ語のウムラウトやエスツェット、フランス語のアクサン記号等が、マークアップされることなくそのまま入力されていることをご確認ください。また、LaTeX による処理画面において、babel がロードされる際、「米語・英語・フランス語・ロシア語・ギリシア語・ドイツ語(旧正書法)・ドイツ語(新正書法)」という 7 つのハイフネーションパタンが読み込まれていることもチェックしてください(「Mule から YaTeX を使って LaTeX 処理をする場面」参照)。なお、oe 合字 はそもそも Latin-1 コードにありませんので、ここだけはマークアップしてやる必要があります。Mule 上で Latin-1 コードを扱う具体的方法も、一応参考資料としてテキストファイルで挙げておきます(しかし、私自身は Mule 使いではありませんので、ここで紹介しているのは決してスマートな方法ではないと思います。この点断っておきます)。「Mule 上で Latin-1 コードを扱う方法」を参照してください。

 Latin-1 コードを直接 LaTeX で取り扱うためにロードするパッケージは、inputenc です。\usepackage[latin1]{inputenc} としてください。なお、Windows 上で同様のことを行う場合は、latin1 の代わりに ansinew オプションを使用します(Macintosh の場合は applemac とします)。

 一応、Windows 上でドイツ語をダイレクトに処理した例も掲げておきます。

Linux / Mule 入力ファイル1
Linux / Mule 入力ファイル2
Linux / Mule 入力ファイル3
Linux / Mule 入力ファイル4
Linux / Xdvi 出力ファイル1
Linux / Xdvi 出力ファイル2
Linux / Xdvi 出力ファイル3
Mule から YaTeX を使って LaTeX 処理をする場面
Mule 上で Latin-1 コードを扱う方法
Windows 上でのドイツ語直接入力画面
LaTeX による上記入力ファイルの処理結果

contents目次に戻る

7-3-3 教材の速成作成 --- ドイツ語ニュースのインスタント加工の例

 「それにしても、LaTeX の入力ファイルを作成する際に、わざわざ Latin-1 コードを用いるメリットがそれほどあるのかしら」という疑問を持たれる方も当然いらっしゃると思います。

 そこで、私は次のような例を紹介しておきたいと思います。

 インターネットが普及した現在では、私達は日本にいながらにして、例えばドイツ語圏の最新ニュースに接することが出来ます。こうしたニュースは、もちろんブラウザ上の表示画面からそのまま印刷することが出来るわけですが、これでは種々の余白も含めた不必要箇所も同時に印刷されてしまうので、資源の無駄遣いにつながりますし、第一美的ではありません。

 ところが LaTeX なら、改行コード等 LaTeX の命令に特に関係のないものは一切無視して処理してくれるので、ブラウザの表示画面上からコピーしたものをそのまま貼り付けて編集できるのです。これなら、編集に時間を取られることなく、必要な箇所のみを、美しく再構成できます。下の例で確認してください。

 例として取り上げたニュースは、今日 2000.03.01. tagesschau からそのままコピーしてきて貼り付けただけのものです。エディタは標準の日本語文字コード表示になっていますが、LaTeX の処理とは何の関係もありませんのでそのままにしておきます。コピーに際しての注意点を一つだけ。Internet Explorer 上でコピーしたものを貼り付けると「ウムラウト・エスツェット」は全て落ちてしまいますから、Netscape 上でコピーしたものを使用する必要があります。

Latin-1 コード使用による教材速成加工の入力例
Latin-1 コード使用による教材速成加工の出力例

contents目次に戻る

7-4 babel と日本語 pLaTeX2e とのドッキング -- 欧文・日本語混在文書の「テクストプロセシング」


ここで説明している手続きの実際の作業行程は「多言語処理システム構築マニュアル」に詳しく記述してあります。必要な方はそちらを参照してください


7-4-1 pLaTeX での「7 ビットハイフネーションパタンファイル」使用について

 それでは最後に、以上で見てきたような babel の持つ多言語処理機能を、日本語が混在する文書の中でも享受できるようにするにはどのようにしたらよいのでしょうか。

 この場合、「基底語を何にするか」、によって当然アプローチ法が異なってきます。例えば、英語のような横文字系言語を基底語とする場合には、CJK というパッケージを使用するのが一番よいでしょう。しかし、「日本語」を基底語とする場合は、やはり日本語そのものを高度に組版処理できる pLaTeX2e のようなシステムが是非とも必要です。従って、以下では babel と pLaTeX とを融合することを考えます。

 先ず考慮せねばならないのは、babel が読み込む分綴用アルゴリズム(ハイフネーションパタンファイル)と pLaTeX との整合性です。

 日本語が含まれる文書を pLaTeX で処理しようとするとき、ヨーロッパ系言語の正確なハイフネーションを実現する 8 ビットの内部コードを用いる分綴用アルゴリズムは、原理的に使用できません。では、どのようにしたらよいのでしょうか。実は、8 ビットの代わりに、少々昔に書かれた 7 ビット用のハイフンパタンファイルを組み込めばよいのです(このヒントは、1995年に早稲田大学の辻先生からご教示いただきました)。こうした上で、babel を読み込んだ pLaTeX フォーマットファイルを作成すれば、pLaTeX においても babel を使用することが可能となるのです。

 もちろん、7 ビットハイフネーションパタンファイル使用時には、8 ビット用分綴アルゴリズムで実現されていた機能のうちの幾分かは、その享受を断念せねばなりませんが、日本語を基底語とする日本語・ドイツ語混在文書処理においては、ドイツ語はあくまで副次的扱いのはずですから、このような分綴が問題になる場合は、極めて稀にのみ生起するこうした不具合箇所だけを手作業で直してやればすむことであるといえます。つまり、\hyphenation コマンドを用いてプリアンブルに当該語の分綴位置を明示した上で再度処理してやるか、または、当該部分に \- "- といったコマンドを追記しておけばよいのです。

いずれにせよ、7 ビット用ハイフンパタンを読み込ませてカスタマイズされた pLaTeX では、組版する際行末にドイツ語単語がきた場合で、かつ、組版上分綴したほうが美しい仕上がりになるとプログラムの方が判断した場合、ほぼ何の問題もなくドイツ語用の正しい分綴がなされることを強調しておきたいと思います。

contents目次に戻る

7-4-2 「言語定義ファイル(*.ldf)」上の相互参照部分カスタマイズと「jbabel スタイルファイル」作成について

 さて、上のような 7 ビットハイフンパタンを組み込むことで、pLaTeX でも babel パッケージや german パッケージを用いて実用レヴェルでの多言語混在同時処理が出来るようになります。

 ただしその際、自動的に目次・日付・参考文献等をも出力させる LaTeX のクロスリファレンス(相互参照)機能を利用しようとすれば、pLaTeX で処理させた場合に出力される相互参照キャプション部分にちゃんと「日本語」の見出しが出るよう、babelgerman に含まれる当該ファイルのキャプション出力に関わる部分を少々書き換えておかねばなりません。

 カスタマイズするファイルは、german の場合は german.stybabel の場合は、例えば、germanb.ldf となります。後者は、日本語と混在させて用いる場合の主言語がドイツ語で、これを babel のオプション欄の最後に記す場合の話ですが、これがドイツ語ではなくフランス語である場合には frenchb.ldf をカスタマイズすることになります。なお、「言語定義ファイル(*.ldf)」は babel をインストールする際、自動生成されます。

 さて、上のようにしてカスタマイズされたファイルは、例えば jgermanb.ldf 等としてオリジナルファイルと同じディレクトリに保存します。変更したのが german.sty だった場合は、これを例えば deutsch.sty 等としておけばよいでしょう。

 次に、babel.sty ファイルの一部分を以下のように書き換え、jbabel.sty というファイル名でオリジナルと同じディレクトリに保存します。

(変更前)
%% This is file `babel.sty'
\ProvidesPackage{babel}
\DeclareOption{german}{\input{germanb.ldf}}

(変更後)
%% This is file `jbabel.sty'
\ProvidesPackage{jbabel}
\DeclareOption{german}{\input{\input{jgermanb.ldf}}

 以上の作業を経ることによって、以後、pLaTeX で babel を使いたいときには jbabel を、german を使いたいときには deutsch をそれぞれロードしてやればよいのです。

contents目次に戻る

7-4-3 欧文・日本語混在文書における精密組版の実現

 さて次に、地の文(本文)が日本語である文書の中で、例えばドイツ語を取り扱う場合の問題点を考えてみましょう。

 いわゆるワープロで日本語・ドイツ語混在の文書を作り、そこにいくつかの改行を含むまとまった量のドイツ語文章が現れる場合、先ず私達の目に付くのは、ドイツ語部分における行送りの不自然さです。端的にいいますと、ドイツ語部分が何か「パラパラした」感じに映るのです。その原因は、この場合の基底語である日本語の行送り量が、そのままドイツ語部分にも適用されているところにありましょう。こういった場合は、やはり、欧文だけからなる段落は欧文に標準の行送りに戻してやる必要があります。そのとき重宝するのは、松阪大学の奥村晴彦先生が作成された \narrowbaselines というコマンドです。『LaTeX2e 美文書作成入門---論文作成からDTPまで自由自在』奥村晴彦 (技術評論社 1997) の219ページに詳しい解説があります。是非参照してください。

 また、日本語・欧文の語間に挿入されるアキについても注意したいと思います。

 アスキー(株)配布の pLaTeX は大変素晴らしいもので、ヨーロッパ諸語と日本語とを混在させた場合、入力時に両者の語間にスペースを入れなくても、出力時には自動的に全角文字の約4分の1のアキ(四分アキ)が入るようになっています。しかし、こうした自動処理が行われるのは、残念ながら通常の地の文における和語・欧語並列の場合のみに限られており、その中に、例えばフォントを変更するための \text?? 系のコマンドが含まれていたならば、和語・欧語間の四分アキは除去されてしまうのです。

 こうしたデフォルトの pLaTeX における瑕疵を改善してくれるのが、東京大学大学院数理科学研究科の乙部さんによる jnic というパッケージです。是非利用させていただくべきものといえるでしょう。

瑕疵といえばもう一つ。デフォルトの pLaTeX が組版処理の際に読み込む和文フォントの tfm (TeX Font Metrics) ファイル使用の場合は、「ちょっとチェック」のような拗促音文字が微妙に近づきすぎてしまう、という問題点があります。これに対しては、東京書籍印刷の小林さんによってこうした欠点を改善して作成された jis.tfm という素晴らしいものが存在しますので、こちらで置き換えて使用したほうがよいでしょう。『LaTeX2e 美文書作成入門---論文作成からDTPまで自由自在』奥村晴彦 (技術評論社 1997) の263--266ページに詳しい解説がありますのでご覧ください。また、同書 67--72 ページ「ちょっと便利なマクロ集」にある「ルビや倍角ダッシュ」出力用のコマンドも重宝すると思います。

contents目次に戻る

8 LaTeX の入力ファイル作成を簡便にする(入力支援)ソフトウェアの紹介

8-1 スペルチェックソフト ispell の Windows 上での使用法

 多言語用スペルチェックソフト ispell の使用例を紹介します。このプログラムは germanbabel パッケージに従った入力方式(例えば K"onig のような入力)をきちんと認識してくれる(そしてもちろん LaTeX のコマンド群も自動識別する)フリーのスペルチェックソフトです。入力ファイル作成における更なる簡便性を追及される方は、参考にしてください。このソフトの入手と組み込みについては、「多言語処理システム構築マニュアル」に詳しく解説してありますので、そちらをご覧ください

contents目次に戻る

8-2 スペルチェックソフト ispell の Linux & Mule 上での使用法

 なお、ispell は Mule に組み込んで使用したほうが、より簡便かつ洗練された環境が構築できます。参考までに、Linux 上で Mule から ispell を呼び出してドイツ語スペルチェックをかけている様子と、Mule にドイツ語スペルチェック機能を追加するための手順について記した説明ファイルとを掲げておきます。

Mule 上でのドイツ語スペルチェックの様子
ドイツ語スペルチェック組込手順説明ファイル

8-3 4Spell

4Spell使用報告 (rep_4spell.txt)

contents目次に戻る

9 Latin-1(ISO-8859-1)コード文字の LaTeX, HTML それぞれにおける入力命令一覧表

 Latin-1 (ISO-8859-1) コード文字を出力するための LaTeX, HTML それぞれの入力命令を一覧表にまとめました。PDF ファイルで作成してあります。必要な方は、下の zeichen.pdf をクリックしてください。なお、HTML で対応する文字記号が出力不可の場合や、入力・出力が全く同じものは、省略してあります。また、LaTeX の \textcent や \textlnot 等々といった命令の出力には、textcomp パッケージが必要です。

101「母音の上に小さな e を添える方式のウムラウト」出力用マクロ 

(株)プレインの本田様作成 [2001.06.08.]。文字属性の変更にも連動して機能する素晴らしいものです。

varuml.txt (ファイルの中身を、例えばプリアンブルに貼り付けてお使いください)

使用法説明ページ

contents目次に戻る

111s-yfonts パッケージ 

(株)プレインの本田様作成 [2001.07.09.]。ドイツ旧字体を取り扱う yfonts パッケージの使い勝手を更に高める素晴らしいものです。こちらの Web からダウンロードできます

s-yfonts パッケージの使用法説明ページへ

contents目次に戻る

|ホームページ||自己紹介||授業||研究||Grimm_Database||リンク|