AH Formatter V6.6 は、40言語以上のハイフネーション処理を行うことができます。このとき、辞書を用意する必要はありません。
AH Formatter V6.6 は、以下の言語のハイフネーションに対応しています。
コード | 言語 | 単語構成文字 | |
---|---|---|---|
af | afr | 南ア公用オランダ語 | ラテン文字とアポストロフィ |
bg | bul | ブルガリア語 | キリル文字 |
ca | cat | カタロニア語 | ラテン文字とアポストロフィとピリオドと中点 |
cs | ces | チェコ語 | ラテン文字 |
cy | cym | ウェールズ語 | ラテン文字とアポストロフィ |
da | dan | デンマーク語 | ラテン文字とアポストロフィ |
de | deu | ドイツ語(含スイス) | ラテン文字とアポストロフィ |
el | ell | ギリシャ語 | ギリシャ文字 |
en | eng | 英語 | ラテン文字とアポストロフィ |
en-US | eng-US | 米国英語 | ラテン文字とアポストロフィ |
eo | epo | エスペラント語 | ラテン文字 |
es | spa | スペイン語 | ラテン文字 |
et | est | エストニア語 | ラテン文字 |
eu | eus | バスク語 | ラテン文字 |
fi | fin | フィンランド語 | ラテン文字 |
fr | fra | フランス語(含カナダ) | ラテン文字とアポストロフィ |
ga | gle | アイルランド語(含エール) | ラテン文字とアポストロフィ |
hr | hrv | クロアチア語 | キリル文字またはラテン文字 |
hu | hun | ハンガリー語 | ラテン文字 |
id | ind | インドネシア語 | ラテン文字とアポストロフィと数字の2 |
is | isl | アイスランド語 | ラテン文字 |
it | ita | イタリア語 | ラテン文字とアポストロフィ |
la | lat | ラテン語 | ラテン文字 |
lt | lit | リトアニア語 | ラテン文字 |
lv | lav | ラトビア語 | ラテン文字 |
ms | msa | マレー語 | ラテン文字とアポストロフィと数字の2 |
mt | mlt | マルタ語 | ラテン文字とアポストロフィ |
nb | nob | ノルウェー語(ブークモール) | ラテン文字とアポストロフィ |
nl | nld | オランダ語 / フラマン語 | ラテン文字とアポストロフィ |
nn | nno | ノルウェー語(ニーノシュク) | ラテン文字とアポストロフィ |
no | nor | ノルウェー語 | ラテン文字とアポストロフィ |
pl | pol | ポーランド語 | ラテン文字 |
pt | por | ポルトガル語(含ブラジル) | ラテン文字 |
ro | ron | ルーマニア語(含モルダビア) | ラテン文字とアポストロフィ |
ru | rus | ロシア語 | キリル文字 |
sk | slk | スロバキア語 | ラテン文字とアポストロフィ |
sl | slv | スロベニア語 | ラテン文字とアポストロフィ |
sr | srp | セルビア語 | キリル文字またはラテン文字 |
sv | swe | スウェーデン語 | ラテン文字とアポストロフィ |
sw | swa | スワヒリ語 | ラテン文字とアポストロフィ |
th | tha | タイ語 | タイ文字 |
tr | tur | トルコ語 | ラテン文字 |
uk | ukr | ウクライナ語 | キリル文字 |
AH Formatter V6.6 は、単語構成文字で構成される文字列を単語とみなしてハイフネーションを行います。他の文字が含まれる文字列はひとつの単語とみなされません。
例えば、チェコ語のハイフネーションを行うには、次のように指定します。
AH Formatter V6.6 では、辞書を用意する必要はありません。 しかし、標準のハイフネーション処理では望みどおりにならない単語を例外扱いしたいことがあります。そのようなとき、例外辞書を用意し、単語を登録しておくことができます。 また、GUIでの作業中に、例外辞書を編集したときは、メニューの [組版]-[ハイフネーション辞書再読み込み] によってハイフネーション辞書の再読み込みと再組版を行うことができます。
例外辞書は AH Formatter V6.6 がインストールされたフォルダの hyphenation フォルダ、あるいは環境変数 AHF66_HYPDIC_PATH (64ビット版ではAHF66_64_HYPDIC_PATH)で示されるフォルダに格納します。辞書ファイルの名称は、次の規則に従います。
例えば、de.xml、en_US.xml などです。xml:lang="nl-BE" の場合、次の順序で辞書が探されます。
例外辞書の内容は次のとおりです。
要素 | 位置 | 内容 |
---|---|---|
<hyphenation-info> | ルート要素 | |
<hyphen-char> | <hyphenation-info> の子要素 | <exceptions>要素中で、<hyphen/> の代替となるハイフネーション文字を表す要素です。ハイフネーション文字はvalue属性で表されます。初期値は「-」(U+002D)です。 |
<hyphen-min> | <hyphenation-info> の子要素 | ハイフネーションによる行分割が発生した場合に、before, after属性で単語の行分割位置の前後の最小文字数を与えます。 beforeはXSL仕様の hyphenation-remain-character-count プロパティに、after属性は hyphenation-push-character-count プロパティに対応します。AH Formatter V6.6 は、<hyphen-min> の指定をこれらのプロパティの初期値に利用します。 オプション設定ファイルの hyphen-min を参照してください。 |
<exceptions> | <hyphenation-info> の子要素 | 例外辞書のデータです。<exceptions>要素のテキストは空白で区切られたハイフネーション済み単語の集合です。ハイフン情報は<hyphen>要素で示されますが、<hyphen-char>要素で指定された文字を用いることもできます。 |
<hyphen> | <exceptions> の子要素 | TeXの辞書と等価なフル機能のハイフン。pre、post、no の属性を持ちます。pre は単語の行分割が発生した場合に、ハイフネーション文字の前に挿入される文字列、post はハイフネーション文字の後に挿入される文字列、no は単語が行分割されない場合に現れる文字列を表します。<hyphen>要素は単語が行分割されたときに綴りが変化する場合に使用します。 |
<non-eol-words> | <hyphenation-info> の子要素 | 行末禁則させる単語を空白で区切って指定します。ここで指定された単語は、行末に位置しないように調整されますが、場合によってはそれが不可避なこともあります。 行末禁則処理は、FO中のhyphenateプロパティによらず、常に有効です。 |
例外辞書のDTDは次のように単純です。
<!ELEMENT hyphenation-info (hyphen-char?, exceptions?, non-eol-words?)> <!ELEMENT hyphen-char EMPTY> <!ATTLIST hyphen-char value CDATA #REQUIRED> <!ELEMENT hyphen-min EMPTY> <!ATTLIST hyphen-char before NMTOKEN #IMPLIED><!-- digits --> <!ATTLIST hyphen-char after NMTOKEN #IMPLIED><!-- digits --> <!ELEMENT exceptions (#PCDATA|hyphen)*> <!ELEMENT hyphen EMPTY> <!ATTLIST hyphen pre CDATA #IMPLIED> <!ATTLIST hyphen no CDATA #IMPLIED> <!ATTLIST hyphen post CDATA #IMPLIED> <!ELEMENT non-eol-words #PCDATA>
例えば、次のような内容の例外辞書を用意したとします。
<hyphenation-info> <exceptions> ta-ble present ba<hyphen pre="k" no="c"/>ken </exceptions> </hyphenation-info>
table は、ta-ble とのみハイフネーションされる可能性があり、present がハイフネーションされることはありません。backen は、bak-ken とハイフネーションされます。 また、この例で、ta-ble は、ta<hyphen/>ble と書いたのと等価です。
<hyphen>要素によって綴りの変化するハイフネーションを指定することができます。次のようにハイフネーションされます。
例外辞書の指定 | 元の単語 | ハイフネーション |
---|---|---|
ab<hyphen/>def | abdef | ab‐def |
ab<hyphen no="c"/>def | abcdef | ab‐def |
ab<hyphen pre="x"/>def | abdef | abx‐def |
ab<hyphen pre="x" no="c"/>def | abcdef | abx‐def |
ab<hyphen post="z"/>def | abdef | ab‐zdef |
ab<hyphen no="c" post="z"/>def | abcdef | ab‐zdef |
ab<hyphen pre="x" post="z"/>def | abdef | abx‐zdef |
ab<hyphen pre="x" no="c" post="z"/>def | abcdef | abx‐zdef |
注意: | pre/no/post に指定できるのは、U+10000 未満の1文字だけです。 |
---|
以下の言語で、例外辞書を利用することができます。
コード | 言語 | 単語構成文字 | |
---|---|---|---|
km | khm | クメール語 | クメール文字 |
lo | lao | ラーオ語 | ラーオ文字 |
my | mya | ビルマ語(ミャンマー語) | ビルマ文字 |
th | tha | タイ語 | タイ文字 |
これらの言語では、例外辞書はハイフネーションのためではなく、行分割禁止の単語を指定しておくために用いられます。 単語は、それぞれの単語構成文字のみを含むことができます。 <exceptions> 中にハイフン文字や <hyphen> を指定することはできません。
AH Formatter V6.6 では、TeXの辞書によるハイフネーションも行うことができます。 TeXの辞書によるハイフネーションを行うには、オプション設定ファイル で HyphenationOption="false" を指定します。 このとき、TeXの辞書によらないハイフネーション処理は行われなくなります。必要な言語に対応した辞書は、すべて用意しておく必要があります。この辞書は、FOPと同じ形式のXMLファイルです。Apacheのウェブサイトを参照してください。 AH Formatter V6.6 には、英語用のハイフネーション辞書(en.xml)だけがあらかじめ用意されています。
一部の言語だけでTeXの辞書によるハイフネーションを行いたいときは、オプション設定ファイル で hyphenation-TeX に言語を指定してください。
TeXの辞書の名称と位置については、例外辞書を参照してください。
TeXのハイフネーション辞書の内容は hyphenation.dtd で 定義されます。hyphenation.dtd は、FOPのデストリビューションに含まれています。AH Formatter V6.6 ではインストールされたフォルダの hyphenation フォルダにインストールされます。以下は簡単な説明です。詳細は hyphenation.dtd を参照してください。
要素 | 位置 | 内容 |
---|---|---|
<hyphenation-info> | ルート要素 | |
<hyphen-char> | <hyphenation-info> の子要素 | 例外辞書データ(exceptions)中のハイフネーション文字を表す要素です。ハイフネーション文字はvalue属性で表されます。初期値は「-」(U+002D)です。組版結果中のハイフネーション文字は、XSL仕様のプロパティのhyphenation-characterで与えられます。 |
<hyphen-min> | <hyphenation-info> の子要素 | ハイフネーションによる行分割が発生した場合に、before, after属性で単語の行分割位置の前後の最小文字数を与えます。 beforeはXSL仕様の hyphenation-remain-character-count プロパティに、after属性は hyphenation-push-character-count プロパティに対応します。AH Formatter V6.6 は、hyphen-minの指定をこれらのプロパティの初期値に利用します。 |
<classes> | <hyphenation-info> の子要素 | 等価文字クラスと定義されます。class要素のテキストは空白で区切られた文字のグループの集合です。実際にはグループは小文字・大文字の組み合わせで構成されます。例えば英語辞書(en.xml)では以下のようになっています。
aA bB cC dD eE fF gG hH iI jJ kK lL mM nN oO pP qQ rR sS tT uU vV wW xX yY zZ
|
<pattern> | <hyphenation-info> の子要素 | 空白で区切られたハイフネーションパターンの集合のデータ。ハイフネーションパターンはclassesで示されたグループの最初の文字(通常は小文字)と数字から構成されます。文字間の数字はハイフネーション可能性の強度(「hyphenation value」)を表します。 |
<exceptions> | <hyphenation-info> の子要素 | ハイフネーション例外辞書のデータです。exceptions要素のテキストは空白で区切られたハイフネーション済み単語の集合です。ハイフンはhyphen要素で示されますが、hyphen-char要素で指定された文字を用いることもできます。ハイフネーション例外辞書は、ハイフネーションパターンによる処理ではハイフネーション位置が不適切な場合や、特定の単語に別のパターンのハイフネーションを適用したい場合に使用します。 |
<hyphen> | <exceptions> の子要素 | フル機能のハイフン。pre、post、no の属性を持ちます。pre は単語の行分割が発生した場合に、ハイフネーション文字の前に挿入される文字列、post はハイフネーション文字の後に挿入される文字列、no は単語が行分割されない場合に現れる文字列を表します。hyphen要素は単語が行分割されたときに綴りが変化する場合に使用します。 |