組版結果の自動分析

AH Formatter V7.1は、組版したエリアツリー内のさまざまな組版上の問題を自動的に検出できます。検出された問題を解決するには、通常、編集上または体裁上の変更が必要です。両方の変更が必要な場合もあります。

AH Formatter V7.1のコマンドラインインターフェイスで -analyze を指定して分析を有効にします。検出された問題はエラー情報を出力して報告されます。検出された問題を視覚的にエリアツリーXMLに注釈付けする XSLTスタイルシートは、GitHubの https://github.com/AntennaHouse/analysis-utility で入手できます。入手したXSLTスタイルシートの改変は自由ですがサポート対象外となります。

英語を含め言語には、それぞれ組版文書の体裁上の規則があります。規則の起源は読みやすさや、美しさ、商用的理由、あるいはこれらの組み合わせにあるのかも知れません。ほとんどは、特に根拠もなくちょうどよい体裁であると考えられています。組版や本のデザインに関する書籍は通常、一般的に起こり得る問題を扱っていますが、参考文献でさえ問題とみなされるケース、問題とみなされる基準、さらには問題について説明するための用語さえも異なります。

分析項目

オプション設定ファイルで個別に有効または無効にできる分析項目は以下のとおりです。

巻末の空白ページ

この自動分析機能は、空白ページの数がオプション設定ファイルの end-blank-pages-limit で指定した値を超えるとレポートを出力します。

書籍の印刷および製本上、書籍は 8、16、32 またはそれ以上のページの倍数である必要があります。force-page-countプロパティの拡張により、AH Formatter V7.1でこれが可能になりました。ただし、要件を満たすためだけに force-page-count が文書の最後に空白のページを作成する場合があります。空白のページは、コストがかかるばかりで出版社にとって利点はありません。

ハイフンで終わる連続する行

この自動分析機能は、ハイフンで終わる連続する行の数がオプション設定ファイルの hyphen-limit で指定した値を超えるとレポートを出力します。

ハイフンで終わる連続する行が多過ぎると、読み手がその行を読み飛ばしたり、同じ行を2回読んでしまう可能性が高くなります。The Chicago Manual of Style (17th edition) と The Elements of Typographic style は、ハイフンで終わる行の連続は三つまでに抑えることを推奨しています。

AH Formatter V7.1は、ハイフンで終わる連続する行の数を自動的に制限するために、XSL 1.1 の hyphenation-ladder-count プロパティを実装しています。CSSについては、GCPMの初期ドラフトから同様の hyphenate-lines を実装しています。ただし、適切なプロパティが設定されているか、AH Formatter V7.1で自動的に行を調整する前に行を確認することをお勧めします。

同じ単語が行頭や行末で連続する行

この自動分析機能は、同じ単語で始まる連続する行の数がオプション設定ファイルの line-start-repeat-limit で指定した値を超えるか、同じ単語で終わる連続する行の数がオプション設定ファイルの line-end-repeat-limit で指定した値を超えるとレポートを出力します。

これは、ハイフンで終わる複数の連続する行の問題に似ています。同じ単語で始まる複数の連続する行、または同じ単語で終わる行は、読み手がその行を読み飛ばしたり、同じ行を2回読んでしまう可能性が高くなります。The Chicago Manual of Style (17th edition) では、同じ単語で開始または終了する行の連続は三つまでに抑えることを推奨しています。Book Typography は同じ単語で終わる複数の行に対して警告していますが制限を設けておらず、同じ単語で始まる行については言及していません。

ブロックの前後の行数 V7.1

章見出しがページの先頭に配置されない場合、章見出しの前または後ろのいずれかに最小行数が必要になる場合があります。Book Typography は、章見出しの上下に少なくとも3行を推奨しています。これは通常、widowsorphansプロパティを使用して実施できますが、例えば、前の章が短い文章で終わっている場合は実施できません。

セクション区切りは、1行または2行の空白行の高さのスペースであり、アスタリスクまたはその他の記号が含まれている可能性があります。内容や題目が変化したことを示します。セクション区切りの上下に最小行数が必要になる場合があります。Book Typography は、セクション区切りの上下に少なくとも2行を推奨しています

この自動分析機能は、ブロックの前の行数がゼロより大きく、axf:analyze-lines-before プロパティよりも小さい場合、またはブロックの後の行数がゼロより大きく、axf:analyze-lines-after プロパティよりも小さい場合にレポートを出します。このプロパティは、オプション設定の lines-before および lines-after を使用して無効にできます。

ページウィドウ

この自動分析機能は、ブロックの最後の短い行がページまたは段の最初の行として組版されたときにレポートを出力します。オプション設定ファイルの page-widow-limit-em または page-widow-limit-percent で指定した値のいずれかより短い場合、行は短か過ぎると判断されます。

widowsは、ページの上部に残す必要がある段落の行数を制御するXSLおよびCSSプロパティの名前です。

段落ウィドウ

この自動分析機能は、ブロックの最後に短い行があるときにレポートを出力します。オプション設定ファイルの paragraph-widow-limit-em または paragraph-widow-limit-percent で指定した値のいずれかより短い場合、行は短か過ぎると判断されます。

widowsは、ページの上部に残す必要がある段落の行数を制御するXSLおよびCSSプロパティの名前です。

リバー V7.1

リバー(川)は、連続する線上の空白が重なるか、ほとんど重なった所で発生します。リバー(川)は、片端揃えのテキストや中央揃えのテキストよりも、両端揃えのテキストで発生する可能性が高くなります。空白が広いリバー(川)または長いリバー(川)は、テキストの理解を妨げる可能性があります。リバー(川)に対する感性は人によって異なりますが、失読症などの特定の認知障害を持つ人にとっては問題であることはよく知られています。

この自動分析機能は、連続する行で重複する空白の累積幅がオプション設定の river の値を超えたときにレポートを出力します。オプション設定は、axf:analyze-river プロパティの設定によって上書きされます。

連続する行上にある重なり合わない空白が river-zone オプション設定の長さの値の範囲内であれば、同じリバー(川)の一部とみなされます。オプション設定は、axf:analyze-river プロパティの設定によって上書きされます。

不均衡な見開きページ

この自動分析機能は、見開きの左ページと右ページの対応する本文領域のテキストの長さが unbalanced-spread-limit オプション設定の値を超えたときにレポートを出力します。オプション設定は、axf:analyze-unbalanced-spread プロパティの設定によって上書きされます。

見開きの左ページまたは右ページのいずれかがページシーケンスの最後のページである場合、見開きはチェックされません。

空白 V7.1

この自動分析機能は、行内の単語間の空白が引き伸ばされ、white-space オプション設定の値を超えたときにレポートを出力します。オプション設定は、axf:analyze-white-space プロパティの設定によって上書きされます。

拡張プロパティ

axf:analyze V7.1

FOとその子孫に対して分析を実行するかどうかを指定します。

Value:true | false | auto
Initial:auto
Applies to:all elements
Inherited:no
Percentages:N/A

値の意味は以下のとおりです。

true

FOとその子孫に対して分析を実行します。

false

FOまたはその子孫のいずれに対しても分析を実行しません。

auto

システムの設定によって異なります。これは、オプション設定ファイルanalyze で指定されている値です。

axf:analyze-end-blank-page V7.1

FOとその子孫に対して巻末の空白ページの分析を実行するかどうかを指定します。

Value:auto | none | <integer>
Initial:auto
Applies to:fo:page-sequence
Inherited:yes
Percentages:N/A

値の意味は以下のとおりです。

auto

システムの設定によって異なります。これは、オプション設定ファイルend-blank-pages-limit で指定されている値です。

none

FOまたはその子孫のいずれに対しても巻末の空白ページの分析を実行しません。

<integer>

巻末に許容される空白ページの数。これを超える空白ページに対しては、分析によるエラーが出力されます。

axf:analyze-hyphen V7.1

FOとその子孫に対してハイフン分析を実行するかどうかを指定します。

Value:auto | none | <integer>
Initial:auto
Applies to:block elements
Inherited:yes
Percentages:N/A

値の意味は以下のとおりです。

auto

システムの設定によって異なります。これは、オプション設定ファイルhyphen-limit で指定されている値です。

none

FOまたはその子孫のいずれに対しても分析を実行しません。

<integer>

ハイフンで終わる連続行の許容数。これを超える行に対しては、分析によるエラーが出力されます。

axf:analyze-line-end-repeat V7.1

FOとその子孫に対して同じ単語で終わる連続する行の分析を実行するかどうか指定します。

Value:auto | none | [<integer> <integer>?]
Initial:auto
Applies to:block elements
Inherited:yes
Percentages:N/A

値の意味は以下のとおりです。

auto

システムの設定によって異なります。これは、オプション設定ファイルline-end-repeat-limit で指定されている値です。

none

FOまたはその子孫のいずれに対しても同じ単語で終わる連続する行の分析を実行しません。

<integer>

同じ単語で終わる連続行の許容数。これを超える行に対しては、分析によるエラーが出力されます。

2番目の整数で、行末で比較する単語の最大文字数を指定します。これは、オプション設定ファイルで指定されている line-end-limit の値を上書きします。

axf:analyze-line-start-repeat V7.1

FOとその子孫に対して同じ単語で始まる連続する行の分析を実行するかどうかを指定します。

Value:auto | none | [<integer> <integer>?]
Initial:auto
Applies to:block elements
Inherited:yes
Percentages:N/A

値の意味は以下のとおりです。

auto

システムの設定によって異なります。これは、オプション設定ファイルline-start-repeat-limit で指定されている値です。

none

FOまたはその子孫のいずれに対しても同じ単語で始まる連続する行の分析を実行しません。

<integer>

同じ単語で始まる連続行の許容数。これを超える行に対しては、分析によるエラーが出力されます。

2番目の整数で、行頭で比較する単語の最大文字数を指定します。これは、オプション設定ファイルで指定されている line-start-limit の値を上書きします。

axf:analyze-lines-after V7.1

ブロック領域の後に表示される行数を分析するかどうかを指定します。

Value:none | <integer>
Initial:none
Applies to:block elements
Inherited:no
Percentages:N/A

値の意味は以下のとおりです。

none

FOに対して lines-after の分析を実行しません。

<integer>

ブロック領域の後に表示される連続行の最小数。 領域の後に続く行が、ゼロ以外のこれより少ない行に対しては、分析によるエラーが出力されます。

axf:analyze-lines-before V7.1

ブロック領域の前に表示される行数を分析するかどうかを指定します。

Value:none | <integer>
Initial:none
Applies to:block elements
Inherited:no
Percentages:N/A

値の意味は以下のとおりです。

none

FOに対して lines-before の分析を実行しません。

<integer>

ブロック領域の前に表示される連続行の最小数。 領域の前に出現する行が、ゼロ以外のこれより少ない行に対しては、分析によるエラーが出力されます。

axf:analyze-page-widow V7.1

FOとその子孫に対してページウィドウの分析を実行するかどうかを指定します。

Value:auto | none | <length> | <percentage>
Initial:auto
Applies to:all elements
Inherited:yes
Percentages:refer to the width of line

値の意味は以下のとおりです。

auto

システムの設定によって異なります。これは、オプション設定ファイルpage-widow で指定されている値です。

none

FOまたはその子孫のいずれに対してもページウィドウの分析を実行しません。

<length>
<percentage>

ページウィドウの最小の長さ。この長さより短いページウィドウに対しては、分析によるエラーが出力されます。

axf:analyze-paragraph-widow V7.1

FOとその子孫に対して段落ウィドウの分析を実行するかどうかを指定します。

Value:auto | none | <length> | <percentage>
Initial:auto
Applies to:all elements
Inherited:yes
Percentages:refer to the width of line

値の意味は以下のとおりです。

auto

システムの設定によって異なります。これは、オプション設定ファイルparagraph-widow で指定されている値です。

none

FOまたはその子孫のいずれに対しても段落ウィドウの分析を実行しません。

<length>
<percentage>

段落ウィドウの最小の長さ。この長さより短い段落ウィドウに対しては、分析によるエラーが出力されます。

axf:analyze-river V7.1

FOとその子孫に対してリバー(川)の分析を実行するかどうかを指定します。

Value:auto | none | [<length> <length>?]
Initial:auto
Applies to:block elements
Inherited:yes
Percentages:N/A

値の意味は以下のとおりです。

auto

システムの設定によって異なります。これは、オプション設定ファイルriver で指定されている値です。

none

FOまたはその子孫のいずれに対してもリバー(川)の分析を実行しません。

<length>

空白のリバー(川)の最大累積長。この長さを超える累積幅に対しては、分析によるエラーが出力されます。

2番目の長さの値で、連続する行上にあるふたつの重なり合わない空白が同じリバー(川)の一部であるとみなされる「リバー領域」を指定します。これは、オプション設定ファイルriver-zone で指定されている値を上書きします。

axf:analyze-unbalanced-spread V7.1

FOとその子孫に対して不均衡な見開きページの分析を実行するかどうかを指定します。

Value:auto | none | <length>
Initial:auto
Applies to:fo:region-body
Inherited:yes
Percentages:N/A

値の意味は以下のとおりです。

auto

システムの設定によって異なります。これは、オプション設定ファイルunbalanced-spread-limit で指定されている値です。

none

FOまたはその子孫のいずれに対しても不均衡な見開きページの分析を実行しません。

<length>

見開きページにおける縦方向の不均衡許容範囲の最大長。この長さを超える不均衡に対しては、分析によるエラーが出力されます。

axf:analyze-white-space V7.1

FOとその子孫に対して空白の分析を実行するかどうかを指定します。

Value:auto | none | <length> | <percentage>
Initial:auto
Applies to:block elements
Inherited:yes
Percentages:refer to the width of line

値の意味は以下のとおりです。

auto

システムの設定によって異なります。これは、オプション設定ファイルwhite-space で指定されている値です。

none

FOまたはその子孫のいずれに対しても空白の分析を実行しません。

<length>
<percentage>

行上にある単語間の空白の最大長。この長さを超える幅に対しては、分析によるエラーが出力されます。

エラーメッセージの形式

エリアツリーの分析によるエラーメッセージには、エラーに関するメッセージとエラー箇所の表示のうち一方または両方が含まれる場合があります。XMLによるエラーの一般的なXML形式は次のとおりです。

<error level="1" code="45959">
Message
location:: page: 3; ax: 18; ay: 242; bx: 191.764; by: 270;
</error>

エラー箇所

  • Message

    エラーメッセージテキスト。省略される場合があります。例えば、ドキュメントの最後の空白ページの数が制限を1ページ以上超えると、各ページにエラーメッセージが生成されますが、余分なページの数を示すエラーメッセージテキストは最後のページにのみ表示されます。

  • location::

    すべてのエラー箇所に含まれる文字テキスト

  • page: 3

    エラーを含むページの絶対ページ番号

  • ax: 18

    エラー表示領域の右端の絶対位置(pt)

  • ay: 242

    エラー表示領域の上端の絶対位置(pt)

  • bx: 191.764

    エラー表示領域の左端の絶対位置(pt)

  • by: 270

    エラー表示領域の下端の絶対位置(pt)

エラー表示領域は、エリアツリーの単一の領域に常に対応するとは限らないことに注意してください。

参考文献

  • Bringhurst, R. (2001). The Elements of Typographic Style (2.4 ed.). Vancouver, BC, Canada: Hartley & Marks.
  • Mitchell, M., & Wrightman, S. (2005). Book Typography: A Designer's Manual. Marlborough, Wiltshire: Libanus Press.
  • The University of Chicago Press. (2017). The Chicago Manual of Style (17th ed.). Chicago and London: The University of Chicago Press.
  • W3C. (2014, September 30). Requirements for Latin Text Layout and Pagination. (D. Cramer, Ed.) Retrieved from: https://www.w3.org/TR/dpub-latinreq/