Ligature substitution
Ligature substitution(合字置換)は、複数の連続する文字が自動的に単一の合成グリフに置き換えられるタイポグラフィ機能です。
Ligature substitution(合字置換)は、複数の連続する文字が自動的に単一の合成グリフに置き換えられるタイポグラフィ機能です。視覚的な表示では合字が使用されますが、テキスト抽出やアクセシビリティのために元の文字列は維持されます。一般的な例として、“f"と"i"を"fi"に結合する、または"f"と"l"を"fl"に結合するなどがあります。PDF文書では、 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で規定されているように、正確なUnicodeマッピングとテキスト抽出のために、合字の適切な処理が不可欠です。
Ligature substitutionは、PDFレンダリングにおける双方向マッピングプロセスです。表示時には文字列が特別にデザインされたグリフに置き換えられ、コンテンツ抽出時には元の構成文字に正しくマッピングされます。1文字が1グリフに対応する単純な文字対グリフマッピングとは異なり、ligature substitutionはレンダリング時に多対一の関係、抽出時に一対多の関係を持ちます。
PDF仕様 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) では、合字を含むフォントは適切なToUnicodeマッピングを提供することが求められています。これにより、PDFからテキストがコピーまたは抽出される際、合字グリフが表す複数のUnicode文字を正しく返すことが保証されます。これは結合文字とは異なります。結合文字は一緒にレンダリングされる個別のUnicodeコードポイントを表すものであり、単一のグリフに置き換えられる複数の基本文字とは性質が異なります。
PDFテキスト抽出、検索機能、またはアクセシビリティ機能を扱う開発者にとって、ligature substitutionは重要な課題となります。合字が適切にマッピングされていない場合、PDF内で"find"という単語を検索しても、“fi"が合字として表示されていると検索が失敗する可能性があります。また、PDFからテキストをコピーすると、誤った文字が表示されたり、文字が完全に欠落したりする可能性があります。
適切な合字処理は、特にPDF/UA準拠 ( Citation: N.A., 2014 (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html ) において重要です。支援技術は、障害を持つユーザーにコンテンツを提示するために、正確なUnicode抽出に依存しているためです。開発者は、PDF生成または操作ソフトウェアが合字を含むフォントに対してToUnicode CMapsを正しく実装すること、またPDF処理ライブラリがテキスト抽出操作時にこれらのマッピングを正しく解釈することを確認する必要があります。
PDFにおけるligature substitutionは、複数の技術的コンポーネントが連携して機能します:
フォント定義:フォントファイル自体に合字グリフとルール(通常はOpenType GSUBテーブル)が含まれており、レンダリング時にどの文字列を合字に置き換えるかを指定します。一般的な合字には"fi”、“fl”、“ff”、“ffi”、“ffl"などがあります。
ToUnicode CMap: ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で規定されているように、PDFには各合字グリフを構成Unicode文字にマッピングするToUnicode CMapを含める必要があります。たとえば、“fi"合字グリフは、U+0066(f)とU+0069(i)の2文字シーケンスにマッピングされる必要があります。
レンダリングプロセス:テキストを表示する際、PDFレンダラーはフォントの合字ルールを適用して、文字列を適切な合字グリフに置き換え、視覚的なタイポグラフィを改善します。
抽出プロセス:検索、コピー、またはアクセシビリティのためにテキストを抽出する際、PDFプロセッサーはToUnicode CMapを使用して置換を逆転させ、各合字グリフを元の文字列に変換します。
ActualTextオーバーライド:Tagged PDF構造 ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) では、ActualText属性を使用して、合字を含むコンテンツに対して明示的なUnicode文字列を提供でき、正確なテキスト抽出を保証する代替メカニズムを提供します。
- Glyph(グリフ) – フォント内の文字または文字列の視覚的表現
- ToUnicode CMap – テキスト抽出のために文字コードまたはグリフをUnicode値に変換するマッピングテーブル
- Character encoding(文字エンコーディング) – PDFコンテンツストリーム内の文字コードをフォント内のグリフにマッピングするシステム
- OpenType font – ligature substitutionルールを含む高度なタイポグラフィ機能をサポートするフォント形式
- ActualText – 正しく抽出されない可能性のあるコンテンツに対して代替テキストを提供するTagged PDF属性
- (N.A.) (2020)
- (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html
- PDF Association (2023)
- PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
- (N.A.) (2014)
- (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html
