マクロツイーター

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

ドイツ語用の新しい分綴パターン

ドイツ語用の分綴パターンについては、従来のものの欠点に対する改善を行った(試験的な)新しいパターン(新・旧正書法の各々に対するもの)が作られていて、dehyph-exptl というパッケージ名で配布されている。数年前から W32TeXTeX Live の欧文 TeX の各種フォーマットにはこの新パターンが組み込まれていたが、最近の W32TeX の更新で、pTeX にもこれが組み込まれることになった。

> dehyph-exptl も組込まれているとありがたいです。
2011/06/11 の更新で組み込みました。そのうち反映されると思います。

このような「既存の言語に対する別のパターン」を Babel *1で用いるには、hyphsubst パッケージ(oberdiek バンドルに含まれる)を用いるのが簡便である。ここではこのパッケージの使い方を解説する。(Polyglossia については後述。)

Babel でのドイツ語の言語オプション名は [n]german (「n」付が新正書法のもの)であり、通常は Babel は同じ名前で登録されたパターンを用いる。対して、新しいパターンは [n]german-x-latest という名前でフォーマットに登録されている。そこで、hyphsubst を次の例に示すようなオプションを指定して読み込む。

% 文字コードは適切なもので
\documentclass[a4paper]{article}
% (この例は新正書法のもの)
% オプションに <言語オプション名>=<分綴パターン名> を指定
\usepackage[ngerman=ngerman-x-latest]{hyphsubst}
% Babel を読み込む
\usepackage[ngerman]{babel}
\begin{document}
Aber es k"onnte keine auf"|f"allige Unterschiede geben.
% \typeout{\the\language} % これについては後述
\end{document}

最後にある \typeout{\the\language} は現在有効なパターンの番号を画面に表示するためのハックである。これを入れておいて hyphsubst のない場合と比べれば、新しいパターンに正しく置き換わったかが判る。*2

なお、Polyglossia では新しいパターンの使用が最初からサポートされている。((ただし [n]german-x-latest に限定したものであり、汎用的ではない。恐らく hyphsubst パッケージの使用も可能だと思われる。))ドイツ語(言語名 german)の言語用オプションとして latesthyphen=true を指定すればよい。((Polyglossia の「言語用オプション」は特定の言語に対するオプション指定のことで、\setdefaultlanguage のオプション引数等において指定される。Babel の「言語オプション」とは意味が異なることに注意。また、Polyglossia では新・旧正書法ともに言語名は german であり、両者の区別は言語用オプションで行う。spelling=old を指定すると旧正書法になる。))

% 文字コードは UTF-8
\documentclass[a4paper]{article}
\usepackage{polyglossia}
\setdefaultlanguage[latesthyphen=true,babelshorthands=true]{german}
\begin{document}
Aber es k&#246;nnte keine auf"|f&#228;llige Unterschiede geben.
%\typeout{\the\language} % 先述の通り
\end{document}

*1:および german パッケージ等のパターン切替を行う他の言語パッケージ。

*2:現在の言語がドイツ語である箇所に書く必要がある。値が「0」になっていたら失敗である。