khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ永田善久

2003 年 3 月 21 日

目次
はじめに

2

1

ドイツ活字体処理用 LATEX パッケージのいろいろ

2

2

khm パッケージ
2.1 新ドイツ活字体フォント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 adcfrak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 ntfrak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3 ntfrakls，ntswab，ntgoth . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 スタイルファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 khm パッケージのインストール法 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 khm パッケージ利用における制約事項 . . . . . . . . . . . . . . . . . . . . . . . . .

4
6
6
8
13
14
24
26

3

入・出力ファイルのサンプル

26
27
27

3.1
3.2
4

headings ページスタイルで「二点式ウムラウト」として組む場合 . . . . . . . . . .
pagekhm ページスタイルで「小添字 e 式ウムラウト」として組む場合 . . . . . . . .

今後の課題

参考文献

30
33

表目次
ドイツ語文書処理に関わる dcfrak / tfrak 比較対照 . . . . . . . . . . . . . . . . .

1
2

ntfrak フォント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4
15

3

ntfrakls フォント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

–2–

4

ntswab フォント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

5ntgoth フォント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

図目次
1
2
3
4

二点式ウムラウトによる第 53 話の組版例第 1 ページ . . . . . . . . . . . . . . . . .
二点式ウムラウトによる第 53 話の組版例第 5 ページ . . . . . . . . . . . . . . . . .
小添字 e 式ウムラウトによる第 53 話の組版例第 1 ページ . . . . . . . . . . . . . . .
小添字 e 式ウムラウトによる第 53 話の組版例第 6 ページ . . . . . . . . . . . . . . .

28
29
31
32

はじめに
本稿では，『グリム童話集第 2 版（オリジナル）』の全文テクストデータベース化作業と並行して作成した，ドイツ活字体によるドイツ語文書処理のための新しい LATEX パッケージである khm を紹介し，その仕組みと使用法とを解説する。

1

ドイツ活字体処理用 LATEX パッケージのいろいろ

Yannis Haralambous が，実際の諸書籍等に現れた歴史上のドイツ活字体（gebrochene Schriften）
をモデルとし，METAFONT の技術を用いて TEX とともに利用可能なドイツ活字体フォント一式「フラクトゥア体（yfrak）・シュヴァーバッハ体（yswab）・ゴシック体（ygoth）
・イニシャル体
1（yinit）」を完成させ，これを公開したのは 1991 年であった 。
ただ，ドイツ活字体には多くのリガチャ（合字）等が含まれている関係上，Haralambous のドイ
ツ活字体フォントのエンコーディングは，通常のラテンアルファベット用に定義されていた当時のTEX フォントエンコーディング（OT1）とはかなり異なっていたため，TEX で実際にドイツ活字体を用いるのはさほど簡単なことではなかった。しかし 1994 年以降，LATEX が LATEX 2ε としてヴァージョンアップされ，それと共にフォント制御システムである NFSS（New Font Selection Scheme）が導入されるようになると，エンコーディングの異なる種々のフォントを LATEX で簡便に取り扱えるようになり， NFSS を開発した LATEX3 プロジェクトチームの一人であった Frank Mittelbach は，自ら Haralambous のドイツ活字体フォントを NFSS のもとで扱えるパッケージ oldgerm を作成し，これを公開したのであった（1994 年）2 。
しかし，oldgerm は NFSS でフォントファミリーとフォントコマンドのみを定義しただけの最もプリミティヴなものであり，ウムラウト出力コマンド等は Haralambous がフォントレヴェル（TFM内）で関連付けていたリガチャを土台としたものを踏襲したから，そのままでは german や babelといった「（ラテン活字体をベースとした）ドイツ語文書処理専用」の標準パッケージとは併用でき

1 永田［19，S.1221–1227］参照。
2 Mittelbach［6］参照。

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）–3–ないという瑕疵を抱えていた3 。
こうした欠点を改良し，Haralambous のドイツ活字体フォントを german や babel とも同時利用
4
できるようなパッケージ yfonts を作成したのが Walter Schmidt である（1997 年）。yfonts には，ラテンアルファベットとは異なる，ドイツ活字体組版時における行送り量を定義する \fraklines
コマンドが導入され，こうした行送りに合わせて装飾イニシャル文字（yinit）までもが自動的にヴァーサル処理されるような工夫も盛り込まれた。もっとも Haralambous 作成フォント群のエン
コーディングは，ラテンアルファベット表記の英語・ドイツ語・フランス語・スペイン語等，西欧語を取り扱う際の現在の標準エンコーディングである T1 とはあくまでも異なっていたため，たとえyfonts を使おうとも，例えば ,,...‘‘ という直観的な入力からドイツ語引用符を得ることは出来
T1 ではこれが可能
といった制約は，なお残されたままとなっていた。とはいえ現時点
では，この yfonts
あるいは，ヴァーチャルフォントの仕組みを利用することで「語末の s が自動認識され，これが丸い ¿ として出力される」よう yfonts を改良した本田知亮氏による s-yfonts
5
パッケージ（2001 年）
が，LATEX において一般的にドイツ活字体（Haralambous のフォント群）ないを扱う場合の標準パッケージとなっている。
さて，Haralambous のドイツ活字体フォントは，15 世紀から 18 世紀というある特定の時代に関する考証に基づいたもので，この時代に属する文書を再現するには何といっても最適のものである。
一例を挙げると，グーテンベルクの『42 行聖書』をモデルとしたゴシック体小文字には 35 個ものリガチャが用意されているし，フラクトゥア体とシュヴァーバッハ体には二点式ウムラウトの他に，小添字 e 式ウムラウトまで存在する。しかしその一方で，大文字における二点式ウムラウトやフラク
トゥア体のコンマ（,）二つ重ね式のドイツ語引用符号（„Breitkopf"）が欠如している

Haralambous

がモデルとしたブライトコプフのフラクトゥア体は，引用符号としてラテン活字体のものをそのまま用いており „Breitkopf“ のようになっている

等，19 世紀以降の時代をも包括する幅広いドイツ語文書を処理したい場合には，今一つ改善の余地があった。
折から，Haralambous のドイツ活字体フォントをめぐっては，そのエンコーディングを TEX の標
準（となりつつあった）である T1 ベースとして作り変えようとする動きも出ていた。早いところでは，Daniel Taupin がフラクトゥア体に限って OT1 エンコーディング用（cmfrak）と T1 エンコー
ディング用（dcfrak）の METAFONT ソースを公開した（1994 年）。ただし，これらのフォントを簡便に用いることが出来るような（yfonts のような）スタイルファイルが欠如していたので，筆者（永田）は，cmfrak と dcfrak フォントを LATEX で扱えるよう，cmdcfrak.sty スタイルファイルを作成・公開した6 。

cmfrak と dcfrak フォントは，Haralambous の yfrak とは異なり，フラクトゥア体コンマ二つ重
ね式のドイツ語引用符号も二点式大文字ウムラウトも備えていたので，ドイツ活字体によるより広範なドイツ語文書処理への可能性を大きく開くものであった。Taupin は 2002 年 7 月，この dcfrak
をさらに発展させた fkt1 フォント群（フラクトゥア体 fkt1rm，フラクトゥア太字体 fkt1bx，フラ3 Haralambous は german や babel において定義されている " を独自に別の意味で定義付けていた。永田［19，S.1222］参照。
4 Schmidt［8］参照。
5 s-yfonts については，永田［22，S.34–36］参照。
6 永田［22，S.36–38］参照。

–4–

クトゥア斜字体7 fkt1sl，フラクトゥア斜字太字体 fkt1bl）を作成，フォント定義ファイルやスタ
イルファイルも同梱し，t1-fraktur パッケージとして公開した。その後 2002 年 11 月，Taupin はVladislav Kurz 等の協力を得つつ，さらに OT1 エンコーディングと互換性のある IL2 エンコーディ
これは主にチェコ語・スロヴァキア語処理の際に用いられる用のフォント群（fkl2rm，
8
fkl2sl，fkl2bx，fkl2bl）をもパッケージに追加した 。
Taupin の他に，Torsten Bronger も Haralambous のドイツ活字体フォントを T1 エンコーディン
グ化することを試みていた。Bronger の場合は，本田氏同様，ヴァーチャルフォントの仕組みを用いるアプローチを取っており，語末における丸い ¿ は自動分別される。Bronger が 2002 年 10月に公開した brokent1 パッケージ
2003 年 2 月には blacklettert1 と改名されたでは，
ング

Haralambous の yfrak，yswab，ygoth をそれぞれ拡張した tfrak，tswab，tgoth の他，tfrakの隔字体ヴァージョンである tfrakls も同梱された。なお，blacklettert1（brokent1 も同様）
においては，コロン・セミコロン・疑問符・感嘆符の前後には自動的に極小スペースが挿入される
ようフォント（TFM ファイル）に仕掛けが施されているので，特にフラクトゥア体で「ドイツ語文書」を組む場合に都合がよい。また，単語間スペースを少々切り詰め，tgoth では文字間スペースを少々広げる等，細かい部分もカスタマイズされている。残念ながら，blacklettert1 にはスタイ
ルファイルは添付されていない9 。

2

khm パッケージ
さて，そもそも時代区分の異なる様々なドイツ語文書をドイツ活字体を用いて LATEX で簡便に処理したいという場合，大きくは二つの点を考慮せねばならない。一つはドイツ活字体フォントそのものの設計であり，もう一つはこのドイツ活字体フォントを正確に制御することの出来るスタイル
ファイルを作成することである。
特殊エンコーディング U（Unknown encoding, Unbekannte Kodierung）に基づいた Haralambousのドイツ活字体よりも，T1 エンコーディングをベースに調整された Taupin の dcfrak や Brongerの tfrak 等のフォントの方がより使い勝手がよいとはいえ，こと「ドイツ語文書処理」という観点からすれば，dcfrak や tfrak フォントにもまだまだ改善の余地があるといえる。以下，この点に焦点を定め，双方のフォントが抱える問題点を整理する。
表 1: ドイツ語文書処理に関わる dcfrak / tfrak 比較対照

アポストロフィは？
ドイツ語引用符は？

dcfraktfrak

geht’¿„Breitkopf"*

geht’¿*„Breitkopf“

7 フラクトゥアの太字体や斜字体の存在に関する歴史的考証は不明。フラクトゥア体では通常，強調部は隔字体で組まれる

か，あるいはシュヴァーバッハ体が用いられた。
8 Taupin［9］参照。
9 Bronger［1］参照。

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）小添字 e 式ウムラウトは？

aus と入力すると？
ausgehen では？
au¿gehen と出力させるには？

Ľ*
ausausgehenaus:gehen

–5–

出力不可

au¿*
ausgehenaus"|gehen*

表 1（4 ページ）にも明らかなように，dcfrak と tfrak の何れもがそれぞれ少しずつ問題点を抱えている。「ドイツ語文書処理」という場合には，表中アスタリスク（*）が付された項目が全て実現されることこそ理想なのである10 。
そこで筆者（永田）は，ドイツ活字体による「ドイツ語文書」処理を，より正確，より簡便に実現することを可能とする新しい LATEX パッケージ khm を作成しようと思い立った。手順は以下の通りである。

1. 全体的方針として，Haralambous のドイツ活字体をベースとする複数のフォントからそれぞれ字形（グリフ）を取り出しこれを組み合わせ，あたかも一つのフォントであるかのような（仮想的な）「ヴァーチャルフォント」を構築する．

2. dcfrak に見られる「アポストロフィ出力に関わる瑕疵」を改善した
さらには細々とし
adcfrak フォントを作成する（METAFONT ファイル・TFMたバグフィックスも施したファイルの作成）．

3. Haralambous のドイツ活字体フォント（yfrak，yswab，ygoth）に加え adcfrak をも呼び出す「ドイツ語文書処理」専用の新しいヴァーチャルフォント ntfrak，ntfrakls，ntswab，
ntgoth を作成する．これらは，tfrak，tfrakls，tswab，tgoth を改良して作る（TFM
ファイル・VF ファイルの作成）．
4. ntfrak，ntfrakls，ntswab，ntgoth，さらに Haralambous のイニシャルフォント（yinit）
を LATEX で簡便に取り扱うためのスタイルファイル khm.sty を作成する．
5. 新たに作成したドイツ活字体フォント一式，LATEX 用スタイルファイル，その他最終出力をPDF とする場合に必要となる関連ファイル一式をまとめ khm パッケージとする．
khm パッケージはそもそも『グリム童話集第 2 版（オリジナル）』（1819 年）の組版を忠実に再現するために作成したものであるが，さらに幅広く，ドイツ活字体によるドイツ語文書処理全般に用いることもできるように開発した。khm パッケージの柱は，大まかに，新しいドイツ活字体フォント（ntfrak，ntfrakls，ntswab，ntgoth）と，これらのフォントを制御する khm.sty スタイルファ
イルから成る。以下，それぞれその仕組みと使用法等について解説する。

10 合成語中の丸い¿ 識別のためのマークアップは，german や babel との整合性のある "| が望ましい。

–6–

2.1

新ドイツ活字体フォント

2.1.1

adcfrak

khm パッケージが提供する新ドイツ活字体フォント（ntfrak，ntfrakls，ntswab，ntgoth）はヴァーチャルフォントとして，標準の TEX / LATEX システムに同梱されている既存の cmr，ecrm，

cmmi，cmmib，cmsy，cmbsy，cmu，cmbx，ecbx，yfrak，yswab，ygoth フォントに加え，さらに
adcfrak を呼び出す。adcfrak は dcfrak を「ドイツ語処理」用に特化させて改良したフォントである。以下，その変更点をまとめる。

adcfrak フォントは，adcfrak.mf，axxfrak.mf，cmfrabase.mf，cmfrakmis.mf，cmfraklow.mf，
cmfraknum.mf，acmfrakoth.mf，acmfrakupp.mf といった METAFONT ソースから成るフォン
トで，METAFONT ソースの構造は dcfrak と同様である。即ち，上記ファイル名において，その先頭に a が付かないものは dcfrak と全く同じものである（khm パッケージではさらに，OT1 エン
コーディング仕様の acmfrak.mf も同梱する）。
基幹ファイルである adcfrak.mf は，以下の通り cmfrabase.mf と axxfrak.mf を読み込む仕様となっている。

% dcfrak transformed to adcfrak by ynagata 2002
if unknown cmbase: input cmbase fi
input cmfrabase;% -sl
15-3-1991

25-3-1994 D.T.

font_identifier:="adcfrak"; font_size 10pt#;
numeric dc_layout; dc_layout:=1;
input axxfrak.mf

そして axxfrak.mf では，cmfrakupp.mf と cmfrakoth.mf の代わりに acmfrakupp.mf とacmfrakoth.mf が読み込まれる仕組みとなっている。

%readfrom("yfrakbase"); % -sl
15-3-1991%if proofing>1: generate ycurrent; fi% switch to the driver file%
generate cmfrakmis;% -sl
15-3-1991 / 24-3-1994 DT
generate cmfraklow;% -sl
15-3-1991 / 25-3-94 DT
generate acmfrakupp;% -sl
15-3-1991 / 24-3-1994 DT / 2002 ynagata
generate cmfraknum;
generate acmfrakoth;% -sl
15-3-1991 / 24-3-1994 DT / 2002 ynagata

acmfrakupp.mf と acmfrakoth.mf は cmfrakupp.mf と cmfrakoth.mf をそれぞれ下のように変更したものである。
■アポストロフィの訂正

cmfrakoth.mf 内に定義されているラテン活字体のアポストロフィをフ

ラクトゥア体のアポストロフィに変更するよう，当該部分を次のように書き換える。

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）–7–.cmchar "Apostrophe";.beginchar("’",5u#,asc_height#,0);
italcorr asc_height#*slant+.5dot_size#-2u#;.adjust_fit(0,0);x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
penlabels(1);.endchar;■バグフィックス T1 エンコーディングにおける文字の対応付けが間違っている箇所がいくつか存在するので，それらを訂正しておかねばならない。cmfrakupp.mf 内の次の箇所.cmchar "The Fraktur letter R hacek";.beginchar(oct"220",10.493u#,cap_height#+0.3x_height#,0);の 8 進数参照番号 220 は 264 に，.cmchar "The Fraktur letter Z acute";.beginchar(oct"231",8.407u#,cap_height#+0.3x_height#,2.528u#);の 231 は 251 に，それぞれ訂正する。
また，cmfrakoth.mf 内の次の箇所

cmchar "Vertical line";
beginchar(oct"174",5u#,body_height#,paren_depth#);の参照番号 174 も，215 としておく。これは OT1 エンコーディング使用の際（つまり，adcfrak の代わりに acmfrak を用いる場合）に不具合が生じないようにするための措置である。
■TFM ファイルの改良 yfrak フォントにおけるのと同様，*a という入力からも「小添字 e 式
ウムラウト」Ľ が得られるように，（通常は dviout や dvips といった DVI ドライヴァによってMETAFONT ファイルから自動生成される）acmfrak.tfm 及び adcfrak.tfm を作成しなおしておく。具体的にはtftopl acmfrak.tfm acmfrak.pl
tftopl adcrak.tfm adcfrak.pl

として，各 TFM ファイルから PL ファイルを取り出した上で，(LABEL O 52)(LIG C a O 211)
(LIG C o O 231)

–8–

(LIG C u O 236)
(STOP)という記述と(CHARACTER O 52
(CHARWD R 0.500002)(CHARHT R 0.75)(COMMENT(LIG C a O 211)
(LIG C o O 231)
(LIG C u O 236)))という（コメント部分の）記述を追記する11 。

2.1.2

ntfrakフラクトゥア体の新しいフォントである ntfrak は tfrak を元に作成する。具体的には，tfrak.vf（Virtual Font，バイナリファイル）と tfrak.tfm（TEX Font Metric，バイナリファイル）から tfrak.vpl（Virtual Property List，テキストファイル）を取り出し，これに手を加え ntfrak.vpl を作り，これから，ntfrak.tfm 及び ntfrak.vf を生成させる，という工程となる。前段・後段のいずれにおいても，標準の TEX / LATEX 配布物に含まれる vftovp 及び vptovf という変換ツールを以下のように使う。

vftovp tfrak.vf tfrak.tfm tfrak.vpl
vptovf ntfrak.vpl ntfrak.vf ntfrak.tfm

さて，以下順を追って，tfrak.vpl の変更箇所を解説する。
■MAPFONT への adcfrak の追加 ヴァーチャルフォントとして adcfrak を呼び出すための記述である。MAPFONT 項目の最後に以下を追記する。

(MAPFONT D 11
(FONTNAME adcfrak)(FONTCHECKSUM O 31755544)(FONTAT R 1.0)
(FONTDSIZE R 10.0))

11 （Virtual）Property List ファイルについては次小々節及び 本田・吉永［15，S.203–269］を参照。

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）–9–■LIGTABLE の訂正 ある文字に別の文字が続く場合の文字間カーニング量やリガチャの有無を制御する項目 LIGTABLE に，以下の記述を加える。これは Haralambous の yfrak や yswab（の TFM
における設定）同様，*a *o *u という入力から Ľ Ź đ という出力を得るための措置である。
「フォン
トテーブルにおける 8 進数正整数値 52 番地（つまり「アスタリスク」*）の後に文字 a が続く場合
はこれをリガチャとみなし，その出力を 8 進数正整数値 211 番地（つまり「a の小添字 e 式ウムラウト」Ľ）とする」等々という意味である。

(LABEL O 52)(LIG C a O 211)
(LIG C o O 231)
(LIG C u O 236)
(STOP)

続いて，LIGTABLE の (LABEL O 136) から，次の記述を除去する。
「ss（fi）の後に空白（スペース）が続く場合のリガチャを ß とする」という元来の定義は，汎用性のあるドイツ語文書処理のためには不要であるため。

(LIG O 40 O 377)

さらに LIGTABLE の (LABEL C s) において以下の記述を加え，(LIG/ O 140 O 255)
(LIG C z O 377)

以下の記述を削除する。

(LIG C f O 134)
(LIG/ O 47 O 255)

前者は，「閉じる」ドイツ語一重引用符に関する措置（s‘ という入力から s‘ ではなく ¿‘ が得られる
ようにする）と sz という入力からも ß が出力されるようにするためのものであり，後者は，バグフィックス（作成すべきは sf のリガチャではなく，ft のリガチャである）と s’ という入力が ¿’ではなく s’ と出力されるようにするための措置である。ドイツ語表記では i prei¿’ ではなく，i preis’が正しい12 。
■CHARACTER の訂正

各文字固有の数値情報が記述される CHARACTER の以下の項目を訂正する。まずは，ラテン活字体コンマに代えてフラクトゥア体のコンマとする箇所。tfrak.vpl の当該部分を以下のように変更する。

12 Duden［2，S.76］参照。

– 10 –

(CHARACTER O 15
(CHARWD R 0.321997)(CHARHT R 0.104993)(CHARDP R 0.1939945)(MAP(SELECTFONT D 3)
(SETCHAR O 54)))

次に，「閉じる」ドイツ語引用符号と「開く」ドイツ語引用符号を，それぞれフラクトゥア体のものにするため，当該部分を次のように変更する。

(CHARACTER O 20
(CHARWD R 0.500002)(CHARHT R 0.700469)(COMMENT(KRN O 41 R 0.1)
(KRN O 77 R 0.1)
(KRN O 72 R 0.05)(KRN O 73 R 0.05))(MAP(SELECTFONT D 11)(SETCHAR O 42)))(CHARACTER O 22
(CHARWD R 0.500002)(CHARHT R 0.46844)(MAP(SELECTFONT D 11)(SETCHAR O 22)))

いわゆるエヌダッシュ（Halbgeviertstrich, Gedankenstrich），エムダッシュ（Geviertstrich）を，フラ
クトゥア体のウェイトに見合うべく太くする。

(CHARACTER O 25
(CHARWD R 0.500002)(CHARHT R 0.463888)(CHARIC R 0.027779)(COMMENT(LIG O 55 O 26))(MAP(SELECTFONT D 11)

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）– 11 –(SETCHAR O 25)))(CHARACTER O 26
(CHARWD R 1.000003)(CHARHT R 0.463888)(CHARIC R 0.027779)(MAP(SELECTFONT D 11)(SETCHAR O 26)))

以下は，LIGTABLE においてアスタリスクに手を入れた関連による訂正分である。

(CHARACTER O 52
(CHARWD R 0.5)
(CHARHT R 0.739997)(COMMENT(LIG C a O 211)
(LIG C o O 231)
(LIG C u O 236))
(MAP
(SELECTFONT D 11)(SETCHAR O 52)))「ss（fi）の後に空白（スペース）が続く場合のリガチャを ß とする」という定義解除に関わる措置である。tfrak.vpl にある以下の箇所のうち (LIG O 40 O 377) を削除する。

(CHARACTER O 136(CHARWD R 0.304993)(CHARHT R 0.636993)(CHARDP R 0.171496)(COMMENT(LIG O 40 O 377)

「閉じる」ドイツ語一重引用符号をラテン活字体のものからフラクトゥア体のものに変更する。

(CHARACTER O 140(CHARWD R 0.277779)(CHARHT R 0.700469)(COMMENT(LIG O 140 O 20)(KRN O 41 R 0.1)
(KRN O 77 R 0.1)

– 12 –(KRN O 72 R 0.05)(KRN O 73 R 0.05))(MAP(SELECTFONT D 11)(SETCHAR O 140)))s 関連のリガチャ追加・解除に伴うコメント部の変更である。tfrak.vpl の (CHARACTER C s のうち，以下の箇所の記述(COMMENT(LIG O 40 O 255)
(LIG C t O 137)
(LIG C s O 136)
(LIG C f O 134)
(LIG C i O 32)(LIG/ O 47 O 255)
(LIG/ O 16 O 255)

を(COMMENT(LIG/ O 140 O 255)
(LIG C z O 377)
(LIG O 40 O 255)
(LIG C t O 137)
(LIG C s O 136)
(LIG C i O 32)(LIG/ O 16 O 255)のように変更する。
次に，T1 エンコーディング上で対応付けられていた 8 進数正整数値 211 番地文字（Lcaron L’）を
小添字 e 式ウムラウト Ľ に変更する。

(CHARACTER O 211(CHARWD R 0.3654375)(CHARHT R 0.46844)(COMMENT(KRN O 41 R 0.1)
(KRN O 77 R 0.1)
(KRN O 72 R 0.05)(KRN O 73 R 0.05))(MAP(SELECTFONT D 11)

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）– 13 –(SETCHAR O 211)))

8 進数正整数値 231 番地文字（Zacute Ź）を小添字 e 式ウムラウト Ź に変更する。

(CHARACTER O 231(CHARWD R 0.345373)(CHARHT R 0.46844)(COMMENT(KRN O 41 R 0.1)
(KRN O 77 R 0.1)
(KRN O 72 R 0.05)(KRN O 73 R 0.05)(KRN O 41 R 0.1)
(KRN O 77 R 0.1)
(KRN O 72 R 0.05)(KRN O 73 R 0.05))(MAP(SELECTFONT D 11)(SETCHAR O 231)))

8 進数正整数値 236 番地文字（dbar d̄）を小添字 e 式ウムラウト đ に変更する。

(CHARACTER O 236(CHARWD R 0.422852)(CHARHT R 0.46844)(COMMENT(KRN O 41 R 0.1)
(KRN O 77 R 0.1)
(KRN O 72 R 0.05)(KRN O 73 R 0.05))(MAP(SELECTFONT D 11)(SETCHAR O 236)
)
)

2.1.3

ntfrakls，ntswab，ntgothntfrak 同様，残りの新フォント ntfrakls，ntswab，ntgoth もそれぞれ tfrakls，tswab，tgoth に改良を加えたものだが，基本的な変更箇所は tfrak に施したものと同じなので解説は割愛

– 14 –する。詳しくは，tfrakls.vpl と ntfrakls.vpl 等をじっくり比較参照して戴きたい。一つ二つだけ注意点を記しておく。

Duden の『正書法辞典』によれば，「隔字体組みにおけるリガチャ」としては  ¡ ß ffl（ch ck sz tz）
のみが用いられるという13 。このルールに基づき，元の tfrakls で定義されていた s（sch）という三文字のリガチャは s  のように解除した。また，先の Duden 記載のルールにも拘らず，実際のフラクトゥア組版においては隔字体にあっても fl（st）のリガチャは保たれている例が多数であるため（『グリム童話集第 2 版（オリジナル）』もそうなっている），このリガチャは解除していない。
参考までに新ドイツ活字体フォントの一覧表を掲げておく（ntfrak は表 2・15 ページ，ntfrakls
は表 3・16 ページ，ntswab は表 4・17 ページ，ntgoth は表 5・18 ページ）。

2.2

スタイルファイル

さて，以上のようにして作成された新ドイツ活字体フォントを LATEX とともに簡便に使えるようにしたのが khm.sty スタイルファイルである。khm.sty は，ntfrak（フラクトゥア体），ntfrakls（フラクトゥア隔字体），ntswab（シュヴァーバッハ体），ntgoth（ゴシック体）と yinit（Haralambousのイニシャル体）を制御し，これらを通常の LATEX コマンドや german や babel パッケージと併用可能なように設定した箇所，つまり，ドイツ活字体による汎用的なドイツ語文書処理に関わる部分と，『グリム童話集第 2 版（オリジナル）』再現のためのページスタイル（ページのレイアウトを規定する）や拡張されたコマンド群（コントロールシークェンス）を定義する部分から成る。
以下，具体的に簡潔な解説を加える。

% by ynagata: 2003.03.09.
% ynagata@fukuoka-u.ac.jp\ProvidesPackage{khm}[2003/03/09 vers. beta %Support for writing german texts in ,,gebrochenen Schriften‘‘]\NeedsTeXFormat{LaTeX2e}\RequirePackage[T1]{fontenc}\renewcommand{\rmdefault}{ntfrak}\renewcommand{\MakeUppercase}{\relax}\def\ck{\discretionary{k-}{k}{ck}}khm.sty は（欧文用である）LATEX で german.sty または babel.sty と併用されることを前提としている14 。また，フォントエンコーディング T1 を基礎とするので，プリアンブルに\usepackage[T1]{fontenc} 指定してやることが必要であるが，この記述が忘れられた場合に備え，T1 フォントエンコーディングが自動的に読み込まれるようにしてある。なお，khm.sty は
ちょっと工夫すれば日本語用 pLATEX とも併用できるが，上の定義にもあるように，基底アルファベット文字をフラクトゥア体に切り替えてしまうので使用の際には注意が必要である。

13 Duden［2，S.74］参照。
14 つまり，「ドイツ語文書処理」に関わるマークアップは基本的に german.sty や babel.sty における流儀に従うというこ

と。

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）– 15 –

表 2: ntfrak フォント

´0

´1

´2

´3

´4

´5

´6

´7

´00x

`

´

ˆ

˜

}

˝



ˇ

´01x

˘

¯

˙

‰

˛

,

‹

›

´02x

"

”

„

«

»

–

—

‌

´03x



“

si

Ď

fi

fl

Ě

Ę

´04x

␣

!

"

#

$

%

&

’

´05x

(

)

*

+

,

-

.

/

´06x

0

1

2

3

4

5

6

7

´07x

8

9

:

;

<

=

>

?

´10x

@

A

B

C

D

E

F

G

´11x

H

I

J

K

L

M

N

O

´12x

P

Q

R

S

T

U

V

W

´13x

X

Y

Z

[

ft

]

Ą

Ć

´14x

‘

a

b

c

d

e

f

g

´15x

h

i

j

k

l

m

n

o

´16x

p

q

r

Ŋ

t

u

v

w

´17x

x

y

z

{

Ń

}

~

-

´20x

Ă

A˛

Ć

Č

Ď

Ě

E˛

Ğ

´21x

Ĺ

Ľ

ÃL

Ń

Ň

S

Ő

´22x

Ř

Ś

Š

S
‰

Ť

T
‰

Ű

Ŕ

U

´23x

}

Y

Ź

Ž

Ż

IJ

İ

đ

<

´24x

ă

a˛

ć

č

d’

ě

e˛

ğ

´25x

ĺ

l’

Ãl

ń

ň

Ŋ

ő

ŕ

´26x

ř

Ŋ́

Ŋ̌

‰Ŋ

t’

‰t

ű

u

´27x

y}

ź

ž

ż

ij

¿

£

´30x

À

Á

Â

Ã

A}

¡

A

AE

C
‰

}

´31x

È

É

Ê

E

Ì

Í

Î

I}

´32x

D̄

Ñ

Ò

Ó

Ô

Õ

}
O

OE

}

U

Ý

Th

SS

´33x

/
O

Ù

Ú

Û

´34x

à

á

â

ã

Ł

a

ae

‰c

´“

ˆ“

}“

é

ê

Ś

´36x

è
Ãd

`“

ñ

ò

ó

ô

õ

Ž

oe

´37x

/

o

ù

ú

û

§

ý

th



˝8

˝9

˝A

˝B

˝C

˝D

˝E

˝F

´35x

˝0x
˝1x
˝2x
˝3x
˝4x
˝5x
˝6x
˝7x
˝8x
˝9x
˝Ax
˝Bx
˝Cx
˝Dx
˝Ex
˝Fx

– 16 –

表 3: ntfrakls フォント

´0

´1

´2

´3

´4

´5

´6

´7

´00x

`

´

ˆ

˜

}

˝



ˇ

´01x

˘

¯

˙

‰

˛

,

‹

›

´02x

"

”

„

«

»

–

—

‌

´03x



“

si

ff

fi

fl

Ě

Ę

´04x

␣

!

"

#

$

%

&

’

´05x

(

)

*

+

,

-

.

/

´06x

0

1

2

3

4

5

6

7

´07x

8

9

:

;

<

=

>

?

´10x

@

A

B

C

D

E

F

G

´11x

H

I

J

K

L

M

N

O

´12x

P

Q

R

S

T

U

V

W

´13x

X

Y

Z

[

ft

]

ss

Ć

´14x

‘

a

b

c

d

e

f

g

´15x

h

i

j

k

l

m

n

o

´16x

p

q

r

Ŋ

t

u

v

w

´17x

x

y

z

{

Ń

}

~

-

´20x

Ă

A˛

Ć

Č

Ď

Ě

E˛

Ğ

´21x

Ĺ

Ľ

ÃL

Ń

Ň

S

Ő

´22x

Ř

Ś

Š

S
‰

Ť

T
‰

Ű

Ŕ

U

´23x

}

Y

Ź

Ž

Ż

IJ

İ

đ

<

´24x

ă

a˛

ć

č

d’

ě

e˛

ğ

´25x

ĺ

l’

Ãl

ń

ň

Ŋ

ő

ŕ

´26x

ř

Ŋ́

Ŋ̌

‰Ŋ

t’

‰t

ű

u

´27x

y}

ź

ž

ż

ij

¿

£

´30x

À

Á

Â

Ã

A}

¡

A

AE

C
‰

}

´31x

È

É

Ê

E

Ì

Í

Î

I}

´32x

D̄

Ñ

Ò

Ó

Ô

Õ

}
O

OE

}

U

Ý

Th

SS

´33x

/
O

Ù

Ú

Û

´34x

à

á

â

ã

Ł

a

ae

‰c

´“

ˆ“

}“

é

ê

Ś

´36x

è
Ãd

`“

ñ

ò

ó

ô

õ

Ž

oe

´37x

/

o

ù

ú

û

§

ý

th



˝8

˝9

˝A

˝B

˝C

˝D

˝E

˝F

´35x

˝0x
˝1x
˝2x
˝3x
˝4x
˝5x
˝6x
˝7x
˝8x
˝9x
˝Ax
˝Bx
˝Cx
˝Dx
˝Ex
˝Fx

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）– 17 –

表 4: ntswab フォント

´0

´1

´2

´3

´4

´5

´6

´7

´00x

„

«

ˆ



ˇ

˘

¯

_

}
˛

˝

´01x

˜
‰

,

‹

›

´02x

"

”

„

«

»

–

—

‌

´03x



“

si

Ď

fi

fl

Ě

Ę

´04x

␣

!

"

#

$

%

&

’

´05x

(

)

*

+

,

-

.

/

´06x

0

1

2

3

4

5

6

7

´07x

8

9

:

;

<

=

>

?

´10x

@

A

B

C

D

E

F

G

´11x

H

I

J

K

L

M

N

O

´12x

P

Q

R

S

T

U

V

W

´13x

X

Y

Z

[

ft

]

Ą

Ć

´14x

‘

a

b

c

d

e

f

g

´15x

h

i

j

k

l

m

n

o

´16x

p

q

r

Ŋ

t

u

v

w

´17x

x

y

{

tz

}

~

-

´20x

A˛

Č
«
N

Ď

Ě

E˛

´21x

Ă
«L

z
«
C

Ň

S

Ő

Ğ
«
R

´22x

Ť

Ű


U

đ

<

Ř

Ľ
«
S

ÃL
Š

´23x

}
Y

Ź

´24x
´25x

ă
«l

´26x
´27x

Ž

S
‰
Z_

IJ

T
‰
_
I

a˛

«c

č

d’

ě

˛e

ğ

l’

Ãl

«n

ň

Ŋ

ő

«r

ř

«Ŋ

Ŋ̌

‰Ŋ

t’

‰t

ű

u

«z
«
A

ž

z_

ij

¡

¿

£

´30x

}y
„
A

Â

Ã

C
‰

„
E

«
E

}
I

D̄

Ô

OE

/
O

«
U

Û

}
U

Õ
«
Y

}
O

´33x

Ñ
„
U

}
E
«
O

Î

´32x

Ê
„
O


A
«
I

AE

´31x

}
A
„
I

Th

SS

´34x

„a

«a

â

ã

Ł

a

ae

‰c

´35x

«e

ê

Ś

„“

«“

ˆ“

´36x

„e
Ãd

ñ

„o

«o

ô

õ

Ž

}“
oe

´37x

o/

„u

«u

û

§

«y

th



˝8

˝9

˝A

˝B

˝C

˝D

˝E

˝F

˝0x
˝1x
˝2x
˝3x
˝4x
˝5x
˝6x
˝7x
˝8x

˝9x
˝Ax
˝Bx
˝Cx

˝Dx
˝Ex
˝Fx

– 18 –

表 5: ntgoth フォント

´0

´1

´2

´3

´4
..

´5

´6

´7

´00x

`

´

ˆ

˜

´01x

˘

˝

˚

ˇ

¯

¸

˛

,

‹

›

´02x

"

”

„

«

»

–

—

‌

´03x



“

si

¸

˛

‚

˜

¨

´04x

␣

!

"

#

$

%

&

’

´05x

(

)

*

+

,

-

.

/

´06x

0

1

2

3

4

5

6

7

´07x

8

9

:

;

<

=

>

?

´10x

@

A

B

C

D

E

F

G

´11x

H

I

J

K

L

M

N

O

´12x

P

Q

R

S

T

U

V

W

´13x

X

Y

Z

[

ft

]

&

<

´14x

‘

a

b

c

d

e

f

g

´15x

h

i

j

k

l

m

n

o

´16x

p

q

r

‘

t

u

v

w

´17x

x

y

z

{

>

}

~

-

´20x

Ă

A˛

Ć

Č

Ď

Ě

E˛

Ğ

´21x

Ĺ

L’

L

Ã

Ń

Ň

S

Ő

Ŕ

´22x

Ś

Š

Ů

Ž

IJ

Ţ
.
I

Ű

Ź

Ş
.
Z

Ť

´23x

Ř
..
Y

d̄

§

´24x

ă

a˛

ć

č

d’

ě

˛e

ğ

´25x

ĺ

l’

Ãl

ń

ň

‘

ő

ŕ

´26x

´
‘

ˇ
‘

ţ

ű

ů

ź

ž

¸‘
.
z

t’

´27x

ř
..
y

¡

¿

£

´30x

À

Á

Â

Å

AE

´31x

È

É

Ê

Ã
..
E

—
..
A
Ì

Í

´32x

D̄

Ñ

Ò

Ó

Õ

OE

´33x

/
O

Ù

Ú

Û

Ô
..
U

Î
..
O

Ç
..
I

Ý

Th

SS

´34x

à

á

â

ã

[

å



´35x

é

ê

\

`“

´“

ˆ“

ç
..
“

´36x

è
Ãd

ñ

ò

ó

ô

õ

]

ff

´37x

fi

ù

ú

û

^

ý

th

ı

˝8

˝9

˝A

˝B

˝C

˝D

˝E

˝F

.

˝0x
˝1x
˝2x
˝3x
˝4x
˝5x
˝6x
˝7x
˝8x
˝9x
˝Ax
˝Bx
˝Cx
˝Dx
˝Ex
˝Fx

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）– 19 –LATEX におけるクラスファイル article.cls 等の初期設定では，セクション見出し等は大文字化して柱出力されるが，ドイツ活字体においてこの挙動は望ましくないため，\MakeUppercase は
そもそも働かないようにしてある。また，行末における ¡ – k-k の自動分割に関しては新たに定義し直している。これは，例えば german.sty における当該部分の定義式のままでは，フラクトゥア体
におけるリガチャと衝突してうまく機能しないためである。従って，ここのマークアップ法だけは

german や babel における gu"cken といった入力ではなく，gu{\ck}en とする。
次の\newcommand{\maerchentitel}{\khm}\newcommand{\untertitel}{\khmut}\newcommand{\response}{\hspace{1.5em}}\newcommand{\verseinsideindent}{\hspace{1.5em}}\newcommand{\hallelujaindent}{\hspace{6em}}\newcommand{\oq}{\glqq}\newcommand{\oqs}{\glq}\newcommand{\cq}{\grqq}\newcommand{\cqs}{\grq}\newcommand{\ecq}{\textbf{\textsf{’’}}}\newcommand{\pr}{\nolinebreak\raisebox{.8ex}{.}}\newcommand{\dasheisst}{d.\,h.\ }\newcommand{\Dasheisst}{D.\,h.\ }\newcommand{\dasist}{d.\,i.\ }\newcommand{\undsoweiter}{u.\,s.\,w.\ }\newcommand{\undandere}{u.\,a.\ }\newcommand{\undanderes}{u.\,a.\ }\newcommand{\unteranderen}{u.\,a.\ }\newcommand{\unteranderem}{u.\,a.\ }\newcommand{\undanderemehr}{u.\,a.\,m.\ }\newcommand{\undanderesmehr}{u.\,a.\,m.\ }\newcommand{\undaenliches}{u.\,"a.\ }\newcommand{\zumbeispiel}{z.\,b.\ }\newcommand{\zumBeispiel}{z.\,B.\ }\newcommand{\divisionbar}%{\begin{center}\rule[0.5ex]{0.25\textwidth}{0.1ex}\end{center}}\newcommand{\titleunderbar}%{\begin{center}\rule[0.5ex]{0.25\textwidth}{0.1ex}\end{center}}\newcommand{\schlussbar}%{\begin{center}\rule[0.5ex]{0.5\textwidth}{0.1ex}\end{center}}\newcommand{\fullbar}%{\begin{center}\rule[0.5ex]{\textwidth}{0.1ex}\end{center}}\newcommand{\almostfullbar}%{\begin{center}\rule[0.5ex]{0.9\textwidth}{0.1ex}\end{center}}\newenvironment{scriptverse}[1]%{\begin{list}{}{\renewcommand{\makelabel}[1]{##1\hfil}%\settowidth{\labelwidth}{#1}%\setlength{\leftmargin}{\labelwidth+\labelsep}}}%{\end{list}}という箇所は，『グリム童話集第 2 版（オリジナル）』用に拡張定義されたコマンド群である。詳細

– 20 –

は別稿15 参照。
先にも述べたように，khm.sty では基底アルファベット文字はフラクトゥア体となる。ここで問題となるのは，特に「ローマ数字」である。ローマ数字とはラテンアルファベットを用いて数字を表すわけだから，この部分がフラクトゥア体ではおかしなことになってしまう。従って，LATEX の標準コマンド \pagenumbering{Roman} 等も問題なく使えるよう，「ローマ数字はローマ（字アルファベット）数字」として出力される定義を以下のように追加した16 。とりあえずフォントは ptm（PostScript の Times Roman 体）としてあるが，この部分は好みによって変更すればよい。

\def\@roman#1{\expandafter\protectedroman\expandafter{\number#1}}\DeclareRobustCommand*\protectedroman[1]{%{\fontfamily{ptm}\selectfont\romannumeral #1}}
\def\@Roman#1{\expandafter\protectedRoman\expandafter{\number#1}}\DeclareRobustCommand*\protectedRoman[1]{%{\fontfamily{ptm}\selectfont \expandafter\@slowromancap\romannumeral #1@}}

次は，『グリム童話集第 2 版（オリジナル）』のページレイアウトを再現するためのページスタイ
ルやセクショニングコマンドを記述してある箇所である。要約すると• \pagestyle{pagekhm} で所期のページスタイルとなり，柱としてページ上部にエムダッシュをともなったページ番号が振られる．ただし第 1 ページには振られない．
• \section，\subsection と似たような振る舞いをするセクショニングコマンド \khm，\khmutを定義した．見出し番号・タイトルともに中央配置され，両者間は改行される．ただし両者間で改ページされることはない．目次出力用ファイル等への自動書き出しも \section 等と同様（ただし，見出しタイトルの後にリーダーが付加されるようになっている）．アスタリス
ク仕様 \khm*{...} の挙動も \section におけるものと同様．\khmut での数字出力はロー
マ数字となる．

\def\ps@pagekhm{%\def\@oddhead{%\hfil{\Large---~~\thepage~~---}\hfil}%\def\@evenhead{%\hfil{\Large---~~\thepage~~---}\hfil}%\let\@oddfoot\@empty%\let\@evenfoot\@empty%\let\@mkboth\@gobbletwo}\newcounter {khm}\newcommand\khm{%\ifnum \c@page=\@ne \thispagestyle{empty}\noindent\else\relax\fi\par \vskip 3.5ex \@plus 1ex \@minus .2ex \@afterindenttrue
15『グリム童話集第 2 版（オリジナル本）』の全文テクストデータベース化

16 吉永徹美氏の御教示による。

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）\secdef\@khm\@skhm}\def\@khm[#1]#2{%\ifnum \c@secnumdepth >\z@\refstepcounter{khm}%{\parindent \z@ \centering\interlinepenalty \@M\normalfont\ifnum \c@secnumdepth >\z@\Large\bfseries \thekhm.
\par \nobreak\fi\Large\bfseries #2.%
\markboth{}{}\par}%\nobreak \vskip 2.3ex \@plus.2ex\@afterheading\addcontentsline{toc}{subsection}{\thekhm.\hspace{1em}#1}%\else\addcontentsline{toc}{subsection}{#1}%\fi}\def\@skhm#1{%{\parindent \z@ \centering\interlinepenalty \@M\normalfont\Large \bfseries #1.\par}%\nobreak \vskip 2.3ex \@plus.2ex\@afterheading}\newcounter {khmut}\newcommand\khmut{%\par \vskip 3.5ex \@plus 1ex \@minus .2ex \@afterindenttrue\secdef\@khmut\@skhmut}\def\@khmut[#1]#2{%\ifnum \c@secnumdepth >\z@\refstepcounter{khmut}%{\parindent \z@ \centering\interlinepenalty \@M\ifnum \c@secnumdepth >\z@\Large{\@Roman\thekhmut}\normalfont.\hspace{1em}\fi\normalfont\Large \bfseries#2.%\markboth{}{}\par}%\nobreak \vskip 1.5ex \@plus.2ex\@afterheading\addcontentsline{toc}{subsubsection}%{{\@Roman\thekhmut}.\hspace{.5em}#1}%\else\addcontentsline{toc}{subsubsection}{#1}%\fi}\def\@skhmut#1{%{\parindent \z@ \centering\interlinepenalty \@M{\normalfont– 21 –

– 22 –

\Large #1}.\par}%\nobreak \vskip 1.5ex \@plus.2ex\@afterheading}

最後はフォント制御の部分である。要約すれば，次のような処理がなされるように設定してある。

• 基底フォントをフラクトゥア体（ntfrak）とする．
• LATEX の標準コマンドである \text?? 系列では，\textit でフラクトゥア隔字体（ntfrakls），\textsl でシュヴァーバッハ体（ntswab），\textbf でゴシック体（ntgoth）がそれぞれ出
力されるようになっている．なお，\emph は LATEX 標準では \textit に対応付けられているから，「強調」部は「隔字体」出力が初期設定となる．

• ウムラウトの入力法としては german においては "a 式のみを想定している．ただし，babelにおいては \"a \"{a} 式でも可能．
• エスツェットの入力法としては da\ss, dasz, da"s のいずれも可．「ラテン活字体」処理用にソースを再利用することも考えると，da"s 式が最善である．
• 行末における ¡ – k-k 自動分綴用のコマンド \ck を除けば，ドイツ語文書処理に関わる諸コマ
ンドは german や babel で定義されているものと同じ．例えば，リガチャを解除するには
Auf"|lage のように入力する（語中の丸い ¿ 用のマークアップもこれと同じく Aus"|gangとする）．

• \usepackage{khm} として読み込んだ場合は「二点式ウムラウト」で，\usepackage[varumlaut]{khm} として読み込んだ場合は「小添字 e 式ウムラウト」でそれぞれ処理される．小添字 e 式ウムラウトの場合，Ae Oe Ue のように大文字では e は次に送られる．

• 「二点式ウムラウト」の場合，NFSS によるイタリックシェイプ（いわゆるイタリック体）とボールドシリーズ（いわゆる太字体）は，それぞれフラクトゥア隔字体（ntfrakls）とゴシック体（ntgoth）に定義付け，「小添字 e 式ウムラウト」の場合は，両者ともフラクトゥア
隔字体に関連付けた．ゴシック体は「小添字 e 式ウムラウト」を持たないから，予期せぬ出力の不具合を避けるためである．また，LATEX 処理時におけるフォント関連のウォーニング
回避のために，スモールキャップスシェイプ等にもフラクトゥア体（ntfrak）を対応させる
記述をしてある．

• ヴァーサル処理に関しては，lettrine パッケージ使用の有無に対応して，二つの方法が使えるようにしてある．lettrine を使用する場合は，そのまま yinit フォントを使える．
lettrine を使わない場合は，\yinipar コマンドで yfonts.sty におけるのと同じ四行取りのヴァーサル処理がなされる（\fraklines コマンド対応）．
• \ntfrakfamily といった宣言型コマンドでもフォントを切り替えられる．もちろん領域指定の \textntfrak 等も使用可能．

\newif\ifyf@v\DeclareOption{varumlaut}{\yf@vtrue}\ProcessOptions\relax

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）\DeclareFontFamily{T1}{ntfrak}{\hyphenchar \font =127}\DeclareFontShape{T1}{ntfrak}{m}{n}{<-> ntfrak}{}\DeclareFontShape{T1}{ntfrak}{m}{it}{<-> ntfrakls}{}\DeclareFontShape{T1}{ntfrak}{m}{sl}{<-> ntswab}{}\DeclareFontShape{T1}{ntfrak}{m}{sc}{<-> ntfrak}{}\DeclareFontShape{T1}{ntfrak}{bx}{n}{<->ssub * ntfrak/b/n}{}\DeclareFontFamily{T1}{ntfrakls}{\hyphenchar \font =127}\DeclareFontShape{T1}{ntfrakls}{m}{n}{<-> ntfrakls}{}\DeclareFontShape{T1}{ntfrakls}{m}{it}{<-> ntfrakls}{}\DeclareFontShape{T1}{ntfrakls}{m}{sl}{<-> ntfrakls}{}\DeclareFontShape{T1}{ntfrakls}{m}{sc}{<-> ntfrakls}{}\DeclareFontShape{T1}{ntfrakls}{b}{n}{<->ssub * ntfrakls/m/n}{}\DeclareFontShape{T1}{ntfrakls}{bx}{n}{<->ssub * ntfrakls/m/n}{}\DeclareFontFamily{T1}{ntswab}{\hyphenchar \font =127}\DeclareFontShape{T1}{ntswab}{m}{n}{<-> ntswab}{}\DeclareFontShape{T1}{ntswab}{m}{it}{<->ssub * ntswab/m/n}{}\DeclareFontShape{T1}{ntswab}{m}{sl}{<->ssub * ntswab/m/n}{}\DeclareFontShape{T1}{ntswab}{m}{sc}{<-> ntswab}{}\DeclareFontShape{T1}{ntswab}{b}{n}{<->ssub * ntswab/m/n}{}\DeclareFontShape{T1}{ntswab}{bx}{n}{<->ssub * ntswab/m/n}{}\DeclareFontFamily{T1}{ntgoth}{\hyphenchar \font =127}\DeclareFontShape{T1}{ntgoth}{m}{n}{<-> ntgoth}{}\DeclareFontShape{T1}{ntgoth}{m}{sc}{<-> ntgoth}{}\DeclareFontShape{T1}{ntgoth}{m}{it}{<->ssub * ntgoth/m/n}{}\DeclareFontShape{T1}{ntgoth}{m}{sl}{<->ssub * ntgoth/m/n}{}\DeclareFontShape{T1}{ntgoth}{b}{n}{<->ssub * ntgoth/m/n}{}\DeclareFontShape{T1}{ntgoth}{bx}{n}{<->ssub * ntgoth/m/n}{}\ifyf@v\catcode‘\"=\active\let\original@dquote@in@german="%\def"#1{%\if#1A{Ae}%\else\if#1O{Oe}%\else\if#1U{Ue}%\else\if#1a{\symbol{’211}}%\else\if#1o{\symbol{’231}}%\else\if#1u{\symbol{’236}}%\else\original@dquote@in@german#1\fi\fi\fi\fi\fi\fi}%\def\"#1{%\if#1A{Ae}%\else\if#1O{Oe}%\else\if#1U{Ue}%\else\if#1a{\symbol{’211}}%\else– 23 –

– 24 –

\if#1o{\symbol{’231}}%\else\if#1u{\symbol{’236}}%\else\relax\fi\fi\fi\fi\fi\fi}%\DeclareFontShape{T1}{ntfrak}{b}{n}{<-> ntfrakls}{}%\else\DeclareFontShape{T1}{ntfrak}{b}{n}{<-> ntgoth}{}%\fi\DeclareFontFamily{U}{yinitas}{}%\@ifpackageloaded{lettrine}{%\DeclareFontShape{U}{yinitas}{m}{n}{<->s*[0.7]yinitas}{}%}{%\DeclareFontShape{U}{yinitas}{m}{n}{%<10>sfixed*yinitas%<10.95>sfixed*[42.34]yinitas%<12>sfixed*[46.39]yinitas%<14.4>sfixed*[55.68]yinitas%<17.28>sfixed*[66.82]yinitas%<20.74>sfixed*[80.19]yinitas%<24.88>sfixed*[96.20]yinitas%}{}%\newcommand{\yinipar}[1]{\par\noindent\yinitpar{#1}}%\newcommand{\yinitpar}[1]{\setbox0=\hbox{\textinit{#1}}%\hangindent=\wd0\hangafter=-4\advance\hangindent by .25em%{\dimen@=-3\baselineskip%\dimen@=\baselinestretch\dimen@%\hskip-\wd0 \hskip-.25em%\raisebox{\dimen@}[0pt][0pt]{\unhbox0}\hskip.25em}}%}\def\ntgothdefault{ntgoth}\def\ntswabdefault{ntswab}\def\ntfrakdefault{ntfrak}\def\ntfraklsdefault{ntfrakls}\def\initdefault{yinitas}\def\ntgothfamily{\usefont{T1}{\ntgothdefault}{m}{n}}\def\ntswabfamily{\usefont{T1}{\ntswabdefault}{m}{n}}\def\ntfrakfamily{\usefont{T1}{\ntfrakdefault}{m}{n}}\def\ntfraklsfamily{\usefont{T1}{\ntfraklsdefault}{m}{n}}\def\initfamily{\usefont{U}{\initdefault}{m}{n}}\DeclareTextFontCommand{\textgoth}{\ntgothfamily}\DeclareTextFontCommand{\textswab}{\ntswabfamily}\DeclareTextFontCommand{\textfrak}{\ntfrakfamily}\DeclareTextFontCommand{\textntfrakls}{\ntfraklsfamily}\DeclareTextFontCommand{\textinit}{\initfamily}\def\fraklines{\baselineskip\f@size dd\relax}

2.3

khm パッケージのインストール法

khm パッケージは圧縮ファイル khm.zip として，下記の Web（もしくはそこからリンクを辿れる
ところ）

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）– 25 –

http://www.lg.fukuoka-u.ac.jp/~ynagata/latex.html
からダウンロード可能としてある。パッケージの中身は以下の通り。

• インストール説明ファイル：khm_install.txt• METAFONT ファイル：acmfrak.mf, adcfrak.mf, axxfrak.mfm acmfrakoth.mf,
acmfrakupp.mf, cmfrakbase.mf• Type1（Printer Font Binary）ファイル：yfrak.pfb, ysmfrak.pfb, yswab.pfb,
ygoth.pfb, yinit.pfb, yinitas.pfb, acmfrak.pfb, adcfrak.pfb• TFM ファイル：acmfrak.tfm, adcfrak.tfm, ntfrak.tfm, ntfrakls.tfm, ntswab.tfm,
ntgoth.tfm• VF ファイル：ntfrak.vf, ntfrakls.vf, ntswab.vf, ntgoth.vf• スタイルファイル：khm.sty, acmdcfrak.sty• マップファイル：gothic.map• テスト用ソースファイル：khmtest.tex, khmvartest.tex, khm53.tex, khm53var.tex,
bg_khm_1819_053_frak_a.txt, bg_khm_1819_053_frak_b.txt
khm.zip は \usr\local 上で展開してやれば，全ファイルが自動的に適当なディレクトリに格納されるようになっているが，一応それぞれのファイルが格納されるべきディレクトリを明記しておく。なお，そもそもの TEX / LATEX システムは標準通り C:\usr\local 以下にインストールされていると仮定してある。

1. METAFONT ファイル：
C:\usr\local\share\texmf\fonts\source\public\gothic 内
2. Type1 ファイル：
C:\usr\local\share\texmf\fonts\type1\public\gothic 内
3. TFM ファイル：
C:\usr\local\share\texmf\fonts\tfm\public\gothic 内
4. VF ファイル：
C:\usr\local\share\texmf\fonts\vf\public\gothic 内
5. スタイルファイル：
C:\usr\local\share\texmf\tex\latex\khm 内
6. マップファイル：
C:\usr\local\share\texmf\dvips\config 内
7. テスト用ソースファイル：
C:\usr\local\share\texmf\tex\latex\khm 内
gothic.map 及び Type1 フォントは，LATEX による最終出力を PDF ファイルとする場合に必要となるものだが，この場合は，さらに次のような設定をしておく。

• C:\usr\local\share\texmf\dvips\config 内にあるファイル config.ps 及び

– 26 –

config.pdf を「テキストエディタで開いて」，それぞれ最後の行に以下の記述を追加する．
p +gothic.map
また，LATEX 入力ファイルを直接 PDF ファイルに変換する pdflatex を使用する場合は，さらに次の設定をする。

• C:\usr\local\share\texmf\pdftex\base 内にあるファイル pdftex.cfg をテキストエ
ディタで開いて，最終行に以下の記述を追加する．

map +gothic.map
インストールが完了したら，テスト用ソースファイルをコンパイルしてみて，作業が正しく行われたかどうかを確認する（上から順に，通常のコンパイル，DVI を PDF に変換，DVI を PS に変換
接 PDF にて出力

Acrobat Distiller を使う場合のプロセス
pdflatex が必要）。

dvipdfm が必要，LATEX 入力ファイルを直latex khmtest
dvipdfm khmtest
dvips -Ppdf khmtest
pdflatex khmtest

2.4

khm パッケージ利用における制約事項

khm パッケージを利用する際には，以下の点に注意すること。
• ヴァーチャルフォント対応の DVI ドライヴァを用いること（もっとも普及している dviout
や dvips 等では標準対応している）．
• Haralambous のドイツ活字体フォントが TEX / LATEX システムに既にインストールされていること．

• 古典的ゴシック体は組めないこと．つまり，特殊な合字が数多く含まれる『グーテンベルクの42 行聖書』のようなものを処理する場合には，ygoth フォントを用いる（具体的には yfonts
や s-yfonts パッケージを用いる）．
• 最終出力を PDF ファイルとする場合には dvipdfm や pdflatex 等の関連プログラム（いずれも TEX / LATEX 同様フリー）を併用すること．

3

入・出力ファイルのサンプル
最後に，通常の article.cls クラスファイルと khm パッケージを用いた簡単な入力サンプル（テスト用ソースファイルとして同梱してある khm53.tex 及び khm53var.tex）と，実際の出力例を二つほど掲げておく。

khm

3.1

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）– 27 –

headings ページスタイルで「二点式ウムラウト」として組む場合

まずは，普通の headings ページスタイルを用いた例である。メルヒェンタイトルも素直に

section に定義付け，「目次」も出力させるように処理してみる。処理対象のドイツ語テクストは「グリム童話集第 2 版テクストデータベース」からの bg_khm_1819_053_frak.txt を元にする。
注意点は，• 「二点式ウムラウト」で処理する．
• 「目次」に相当するドイツ語 Inhaltsverzeichnis は合成語であり語中に s を含んでいるため，
この箇所を明示的に「丸い ¿」指定する．
• 自動ナンバリングが「53」となるようにカウンタをリセットする．
• article.cls の headings ページスタイルでは，柱に出力される文字列にはスランティド
シェイプ
khm.sty では「シュヴァーバッハ体」に関連付けてあるが用いられるので，見出しのゴシック体出力と統一するために，\slshape を \bfseries に再定義する．
• 文章冒頭のヴァーサル処理は \fraklines と \yinipar を用いて行う（bg_khm_1819_053_
frak_a.txt の当該部分を参照）．後の例に比べると，行間がより緻密に詰まった感じの組版結果となる．
ということである。この入力ファイルを実際に処理して得られる出力例は図 1（28 ページ）と図 2（29 ページ）を参照。

\documentclass[a4paper,12pt]{article}\usepackage[T1]{fontenc}\usepackage{german}\usepackage{khm}\pagestyle{headings}\renewcommand{\contentsname}{Inhalts"|verzeichnis}\renewcommand{\maerchentitel}{\section}\renewcommand{\slshape}{\bfseries}\begin{document}\large\tableofcontents\setcounter{section}{52}\input bg_khm_1819_053_frak_a.txt\end{document}

3.2

pagekhm ページスタイルで「小添字 e 式ウムラウト」として組む場合

次は，khm.sty で定義してある pagekhm ページスタイルを用いて，メルヒェンタイトルを khmに関連付け「目次」も出力させるように処理したものである。処理対象のドイツ語テクストは先と同様であるが，先ほどの注意点に加え，今度は• 「小添字 e 式ウムラウト」で処理する．

– 28 –

Inhalt‘verzei˜ni‘

1

Inhalt‘verzei˜ni‘
53 Sneewitt˜en53

1

Sneewitt˜enŊ war einmal mitten im Winter und die SĚneefloĘen fielen wie Federnvom Himmel herab, da sa eine KŽnigin an einem FenĆer, daŊ einen Rahmen von sĚwarzem Ebenholz hatte, und nŁhte. Und wie sie so nŁhte undnaĚ dem SĚnee aufbliĘte, ĆaĚ sie siĚ mit der Nadel in den Finger und eŊ
fielen drei Tropfen Blut in den SĚnee. Und weil daŊ Rothe im weien SĚnee so sĚŽnauŊsah, daĚte sie bei siĚ: „hŁtt’ iĚ ein Kind so wei wie SĚnee, so roth wie Blut undso sĚwarz wie der Rahmen!" Bald darauf bekam sie ein TŽĚterlein, daŊ war so weiwie SĚnee, so roth wie Blut, und so sĚwarzhaarig wie Ebenholz und wurde darumdaŊ SneewittĚen (SĚneeweiĚen) genannt. Und wie daŊ Kind geboren war, Ćarbdie KŽnigin.
}
Uber
ein Jahr nahm siĚ der KŽnig eine andere Gemahlin, sie war eine sĚŽne Frau,aber Ćolz auf ihre SĚŽnheit, und konnte niĚt leiden, da sie von jemand darin sollte§bertroĎen werden. Sie hatte einen wunderbaren Spiegel, wenn sie vor den trat undsiĚ darin besĚaute, spraĚ sie:

E

„Spieglein, Spieglein an der Wand:wer iĆ die sĚŽnĆe im ganzen Land?"so antwortete er:„Ihr, Frau KŽnigin, seyd die sĚŽnĆe im Land."Da war sie zufrieden, denn sie wute, da der Spiegel die Wahrheit sagte.
SneewittĚen aber wuĚŊ heran und wurde immer sĚŽner, und alŊ eŊ sieben Jahr
alt war, war eŊ so sĚŽn, wie der klare Tag und sĚŽner alŊ die KŽnigin selbĆ. Wie diesenun ihren Spiegel wieder fragte:„Spieglein, Spieglein an der Wand,wer iĆ die sĚŽnĆe im ganzen Land?"antwortete er:„Frau KŽnigin, ihr seyd die sĚŽnĆe hier,aber SneewittĚen iĆ tausendmal sĚŽner alŊ ihr."
図 1: 二点式ウムラウトによる第 53 話の組版例第 1 ページ

khm

53

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）Sneewitt˜en5niemand hereinlaĄen." Die Alte aber rief: „sieh einmal die sĚŽnen KŁmme," zog den
giftigen herauŊ und zeigte ihn. Der gefiel dem Kind so gut, da eŊ siĚ bethŽren lie und
die Th§r ŽĎnete. AlŊ eŊ den Kamm gekauft hatte, spraĚ die Alte: „nun will iĚ diĚauĚ kŁmmen." SneewittĚen daĚte an niĚtŊ bŽseŊ, aber die Alte ĆeĘte ihm den Kammin die Haare, alŊbald wirkte daŊ Gift darin so heftig, da eŊ todt niederfiel. „Nun wirĆdu liegen bleiben" spraĚ sie und ging fort. Zum Gl§Ę aber war eŊ bald Abend, wo
die sieben Zwerglein naĚ HauŊ kamen; alŊ sie daŊ SneewittĚen wie todt auf der Erdeliegen sahen, daĚten sie gleiĚ, die bŽse Stiefmutter hŁtte eŊ wieder umbringen wollen,suĚten und fanden den giftigen Kamm; und wie sie ihn herauŊgezogen, kam eŊ wieder
zu siĚ und erzŁhlte ihnen, waŊ vorgegangen war. Da warnten sie eŊ noĚ einmal auf
seiner Hut zu seyn und niemand die Th§re zu ŽĎnen.
Die KŽnigin aber Ćellte siĚ daheim vor den Spiegel und spraĚ:„Spieglein, Spieglein an der Wand,
Wer iĆ die sĚŽnĆe im ganzen Land?"Da antwortete er, wie vorher:„Frau KŽnigin, ihr seyd die sĚŽnĆe hier;aber SneewittĚen §ber den Bergenbei den sieben ZwergeniĆ noĚ tausendmal sĚŽner alŊ ihr."
Bei diesen Worten zitterte und bebte sie vor Zorn und spraĚ: „so soll daŊ SneewittĚennoĚ Ćerben und wenn eŊ mein Leben koĆet!" Darauf ging sie in eine ganz verborgene
einsame Kammer, wo niemand hinkam, und maĚte da einen giftigen, giftigen Apfel.
}AuerliĚ
sah er sĚŽn auŊ mit rothen BaĘen, da jeder, der ihn erbliĘte, eine LuĆ
darnaĚ bekam, aber wer ein St§ĘĚen davon a, der mute Ćerben. AlŊ der Apfel
fertig war, fŁrbte sie siĚ daŊ GesiĚt und verkleidete siĚ in eine BauerŊfrau und so gingsie §ber die sieben Berge zu dem ZwergenhauŊ und klopfte an. SneewittĚen ĆreĘte den
Kopf zum FenĆer herauŊ und spraĚ: „iĚ darf keinen MensĚen einlaĄen, die Zwerge
haben mir’Ŋ verboten." „Nun wenn du niĚt willĆ, antwortete die BŁurin, so iĆŊ auĚ}
gut; meine Apfel
will iĚ sĚon loŊ werden. Da, einen will iĚ dir sĚenken." „Nein,spraĚ SneewittĚen, iĚ darf niĚtŊ annehmen." „Ei, du f§rĚteĆ diĚ wohl vor Gift;da, den rothen BaĘen bei du ab, iĚ will den weien eĄen," spraĚ die Alte. Der Apfel
war aber so k§nĆliĚ gemaĚt, da der rothe BaĘen nur vergiftet war. SneewittĚen
luĆerte den sĚŽnen Apfel an und alŊ eŊ sah, da die BŁurin davon a, so konnte eŊniĚt lŁnger widerĆehen, ĆreĘte die Hand hinauŊ und lie ihn siĚ geben. Kaum aberhatte eŊ einen BiĄen davon im Mund, so fiel eŊ todt zur Erde nieder. Da spraĚ dieKŽnigin: „dieŊmal wird diĚ niemand erweĘen," ging heim und fragte den Spiegel:
図 2: 二点式ウムラウトによる第 53 話の組版例第 5 ページ– 29 –

– 30 –

• 柱はヘッダ部にページ番号のみ，見出しは「フラクトゥア隔字体」で出力される．
• "Au"serlich "Apfel は Aeußerli Aepfel と出力されていることに着目．
• 文章冒頭のヴァーサル処理は lettrine.sty（bg_khm_1819_053_frak_b.txt の当該部分を参照）に拠る．
といった点に注意したい。
この入力ファイルを実際に処理して得られる出力例は図 3（31 ページ）と図 4（32 ページ）を参照。

\documentclass[a4paper,12pt]{article}\usepackage[T1]{fontenc}\usepackage{german,lettrine}\usepackage[varumlaut]{khm}\pagestyle{pagekhm}\renewcommand{\contentsname}{Inhalts"|verzeichnis}\begin{document}\large\tableofcontents\setcounter{khm}{52}\input bg_khm_1819_053_frak_b.txt\end{document}

4

今後の課題
現時点における khm パッケージは，スタイルファイルを直接作成している段階にあるが，今後ドイツ活字体によるドイツ語文書処理の実践とさらなる経験とを積み，安定して使用できる状態となれば，LATEX 世界での標準的な配布方法である DocStrip（ins ファイル及び dtx ファイルより構成される）形式に則り，英文・独文によるドキュメントをも充実させて一般配布したいと思う。
（了）

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）InhaltŊverzeiĚniŊ
53. SneewittĚen . . . . . . . . . . . . . . . . . . . . .

1

53.
SneewittĚen.
Ŋ war einmal mitten im Winter und die SĚneefloĘen fielen wie Federnvom Himmel herab, da sa eine KŹnigin an einem FenĆer, daŊ einen
Rahmen von sĚwarzem Ebenholz hatte, und nĽhte. Und wie sie so nĽhte
und naĚ dem SĚnee aufbliĘte, ĆaĚ sie siĚ mit der Nadel in den Finger
und eŊ fielen drei Tropfen Blut in den SĚnee. Und weil daŊ Rothe im weien SĚnee
so sĚŹn auŊsah, daĚte sie bei siĚ: „hĽtt’ iĚ ein Kind so wei wie SĚnee, so roth wie
Blut und so sĚwarz wie der Rahmen!" Bald darauf bekam sie ein TŹĚterlein, daŊ
war so wei wie SĚnee, so roth wie Blut, und so sĚwarzhaarig wie Ebenholz undwurde darum daŊ SneewittĚen (SĚneeweiĚen) genannt. Und wie daŊ Kind geboren
war, Ćarb die KŹnigin.
Ueber ein Jahr nahm siĚ der KŹnig eine andere Gemahlin, sie war eine sĚŹne
Frau, aber Ćolz auf ihre SĚŹnheit, und konnte niĚt leiden, da sie von jemand darin
sollte đbertroĎen werden. Sie hatte einen wunderbaren Spiegel, wenn sie vor den trat
und siĚ darin besĚaute, spraĚ sie:

E

„Spieglein, Spieglein an der Wand:wer iĆ die sĚŹnĆe im ganzen Land?"so antwortete er:„Ihr, Frau KŹnigin, seyd die sĚŹnĆe im Land."Da war sie zufrieden, denn sie wute, da der Spiegel die Wahrheit sagte.
SneewittĚen aber wuĚŊ heran und wurde immer sĚŹner, und alŊ eŊ sieben Jahr
alt war, war eŊ so sĚŹn, wie der klare Tag und sĚŹner alŊ die KŹnigin selbĆ. Wie diesenun ihren Spiegel wieder fragte:„Spieglein, Spieglein an der Wand,wer iĆ die sĚŹnĆe im ganzen Land?"
図 3: 小添字 e 式ウムラウトによる第 53 話の組版例第 1 ページ– 31 –

– 32 –— 6 —Wer iĆ die sĚŹnĆe im ganzen Land?"Da antwortete er, wie vorher:„Frau KŹnigin, ihr seyd die sĚŹnĆe hier;aber SneewittĚen đber den Bergenbei den sieben ZwergeniĆ noĚ tausendmal sĚŹner alŊ ihr."
Bei diesen Worten zitterte und bebte sie vor Zorn und spraĚ: „so soll daŊ SneewittĚennoĚ Ćerben und wenn eŊ mein Leben koĆet!" Darauf ging sie in eine ganz verborgene
einsame Kammer, wo niemand hinkam, und maĚte da einen giftigen, giftigen Apfel.
AeuerliĚ sah er sĚŹn auŊ mit rothen BaĘen, da jeder, der ihn erbliĘte, eine LuĆ
darnaĚ bekam, aber wer ein StđĘĚen davon a, der mute Ćerben. AlŊ der Apfel
fertig war, fĽrbte sie siĚ daŊ GesiĚt und verkleidete siĚ in eine BauerŊfrau und so gingsie đber die sieben Berge zu dem ZwergenhauŊ und klopfte an. SneewittĚen ĆreĘte den
Kopf zum FenĆer herauŊ und spraĚ: „iĚ darf keinen MensĚen einlaĄen, die Zwerge
haben mir’Ŋ verboten." „Nun wenn du niĚt willĆ, antwortete die BĽurin, so iĆŊauĚ gut; meine Aepfel will iĚ sĚon loŊ werden. Da, einen will iĚ dir sĚenken."„Nein, spraĚ SneewittĚen, iĚ darf niĚtŊ annehmen." „Ei, du fđrĚteĆ diĚ wohl
vor Gift; da, den rothen BaĘen bei du ab, iĚ will den weien eĄen," spraĚ die
Alte. Der Apfel war aber so kđnĆliĚ gemaĚt, da der rothe BaĘen nur vergiftet war.
SneewittĚen luĆerte den sĚŹnen Apfel an und alŊ eŊ sah, da die BĽurin davon a,so konnte eŊ niĚt lĽnger widerĆehen, ĆreĘte die Hand hinauŊ und lie ihn siĚ geben.
Kaum aber hatte eŊ einen BiĄen davon im Mund, so fiel eŊ todt zur Erde nieder. DaspraĚ die KŹnigin: „dieŊmal wird diĚ niemand erweĘen," ging heim und fragte den
Spiegel:„Spieglein, Spieglein an der Wand,wer iĆ die sĚŹnĆe im ganzen Land?"Da antwortete der Spiegel endliĚ:„Ihr, Frau KŹnigin, seyd die sĚŹnĆe im Land."und ihr neidisĚeŊ Herz hatte Ruhe, so gut eŊ Ruhe haben konnte.
図 4: 小添字 e 式ウムラウトによる第 53 話の組版例第 6 ページ

khm

ドイツ活字体による「ドイツ語文書処理」のための新 LATEX パッケージ（永田）– 33 –

参考文献［1］ Torsten Bronger. Blackletter Typefaces in T1 Encoding.

CTAN: fonts/gothic/blacklettert1/blacklettert1.dtx, 2003.
［2］ Duden. Die Rechtschreibung. DUDEN Band 1. Dudenredaktion (Hrsg.): Rechtschreibung derdeutschen Sprache und der Fremdwörter. 19., neu bearbeitete und erweiterte Auflage. Auf derGrundlage der amtlichen Rechtschreibungregeln, Mannheim, 1989.
［3］ Helmut Kopka. LATEX: Band 1 – Einführung. Addison-Wesley Verlag, ein Imprint der Pearson

Education Company Deutschland GmbH, München, 2000.
［4］ Helmut Kopka. LATEX: Band 2 – Ergänzungen. 3., überarbeitete Auflage. Addison-Wesley
Verlag, ein Imprint der Pearson Education Company Deutschland GmbH, München, 2002.
［5］ Helmut Kopka. LATEX: Band 3 – Erweiterungen. Addison-Wesley Longman Verlag GmbH,
München, 1997.
［6］ Frank Mittelbach. The oldgerm package for use with LATEX 2ε .
CTAN: macros/latex/contrib/supported/mfnfss/oldgerm.dtx, 1998.
［7］ Michel Goosens / Frank Mittelbach / Alexander Samarin. Der LATEX-Begleiter. Addison-Wesley

Verlag; Korrigierter Nachdruck 2002 bei Pearson Studium, ein Imprint der Pearson Education
Company Deutschland GmbH, München, 2002.
［8］ Walter Schmidt. Ein Makropaket für die gebrochenen Schriften.
CTAN: macros/latex/contrib/supported/yfonts/yfonts.dtx, 2003.
［9］ Daniel Taupin. Das Klettern in Frankreich.
CTAN: fonts/t1-fraktur/testfrak.tex, 2002.
［10］ Jacob Grimm und Wilhelm Grimm. Kinder- und Haus-Märchen. Gesammelt durch die Brüder
Grimm. Erster Band. Mit zwei Kupfern. Zweite vermehrte und verbesserte Auflage, G. Reimer,
Berlin, Germany, 1819.
［11］ Jacob Grimm und Wilhelm Grimm. Kinder- und Haus-Märchen. Gesammelt durch die Brüder Grimm. Zweiter Band. Mit zwei Kupfern. Zweite vermehrte und verbesserte Auflage,
G. Reimer, Berlin, Germany, 1819.
［12］ Jacob Grimm und Wilhelm Grimm. Kinder- und Hausmärchen. Band 1. Heinz Rölleke (Hrsg.):Nach der zweiten vermehrten und verbesserten Auflage von 1819, textkritisch revidiert und
mit einer Biographie der Grimmschen Märchen versehen, Eugen Diederichs Verlag, München,
1989.
［13］ Jacob Grimm und Wilhelm Grimm. Kinder- und Hausmärchen. Band 2. Heinz Rölleke (Hrsg.):Nach der zweiten vermehrten und verbesserten Auflage von 1819, textkritisch revidiert und
mit einer Biographie der Grimmschen Märchen versehen, Eugen Diederichs Verlag, München,
1989.
［14］ 奥村晴彦. 『［改訂版］LATEX 2ε 美文書作成入門』, 付録 F, pp. 329–346. 技術評論社, 第 2 版,
第 1 刷, 12 月 2000. 『（永田善久寄稿）付録 F. LATEX 2ε における多言語処理』.

– 34 –

［15］ 本田知亮・吉永徹美. 『LATEX 2ε マクロ & クラス プログラミング基礎解説』. 技術評論社, 初版, 第 1 刷, 9 月 2002.
［16］ 永田善久. 『人文系学術文書のデジタル処理に関する研究（1）

多言語処理における入力簡便性・組版出力精密性，入力文書の可塑化性・互換性，ネットワーク上での将来性等，TEX
関連統合システム導入に関する報告』. 福岡大学総合研究所報, 第 205 号, pp. 1–29, 3 月 1998.
［17］ 永田善久. 『人文系学術文書のデジタル処理に関する研究（2）

多言語処理用 TEX 関連統合システムのパーソナルコンピュータへのインストール』. 福岡大学総合研究所報, 第 207 号,

pp. 27–64, 3 月 1998.
［18］ 永田善久. 『LATEX によるドイツ語・日本語処理（第 1 部）
ラテン活字体による新高ドイ
ツ語の組版処理』. 福岡大学人文論叢, 第 31 巻, 第 1 号, pp. 341–361, 6 月 1999.
［19］ 永田善久. 『LATEX によるドイツ語・日本語処理（第 2 部）
ラテン筆記体及びドイツ筆記体による新高ドイツ語の組版処理，ドイツ活字体及びラテン活字体による初期新高ドイツ語の組版処理，ラテン活字体による古期ドイツ語・中高ドイツ語の組版処理』. 福岡大学人文論
叢, 第 31 巻, 第 2 号, pp. 1215–1233, 9 月 1999.
［20］ 永田善久. 『LATEX によるドイツ語・日本語処理（第 3 部）

ドイツ語・日本語混在文書の組版処理』. 福岡大学人文論叢, 第 31 巻, 第 4 号, pp. 2623–2650, 3 月 2000.
［21］ 永田善久. 『LATEX マークアップ方式によるテクストデータベース作成・活用試論』. 福岡大
学総合研究所報, 第 231 号, pp. 83–99, 3 月 2000.
［22］ 永田善久. 『LATEX によるドイツ語・日本語処理（第 4 部）

近代フラクトゥア，人文主義

斜字体，写本書体，ヴァーサル，旧貨幣単位等の組版処理』. 福岡大学研究部論集, 第 1 巻 A=
人文科学編, 第 8 号, pp. 31–60, 3 月 2002.
［23］ 永田善久. 『LATEX マークアップ方式による「グリム童話（第 7 版）」の全文テクストデータ
ベース化及び web 上での公開』. 福岡大学研究部論集, 第 1 巻 A=人文科学編, 第 10 号, pp.

1–12, 3 月 2002.