サイトトップへこのカテゴリの一覧へ

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

日本工業規格          JIS 

X 4163-1994 

(ISO/IEC 9541-3 : 1994) 

フォント情報交換第3部 グリフ形状表現 

Information technology−Font information interchange  

Part 3 : Glyph shape representation 

日本工業規格としてのまえがき 

この規格は,1994年第1版として発行された,ISO/IEC 9541-3 (Information technology−Font information 

interchange−Part 3 : Glyph shape representation) を翻訳し,技術的内容及び規格票の様式を変更することな

く作成した日本工業規格である。 

なお,この規格で点線の下線を施してある“参考”は,原規格にはない事項である。 

まえがき 国際規格ISO/IEC 9541は,情報技術合同技術委員会ISO/IEC JTC 1が開発し,次の4部構成を

とる。対応する日本工業規格(発行予定も含む。)を( )内に示す。これらをフォント情報交換規格群又

は単に規格群という。 

第1部−体系 (JIS X 4161) 

第2部−交換様式 (JIS X 4162) 

第3部−グリフ形状表現 (JIS X 4163) 

第4部−応用固有拡張 (JIS X 4164) 

第1部は,フォント資源の体系を規定する。つまりフォント資源を参照し交換する際に必要な,フォン

ト記述,フォント配置量,グリフ記述及びグリフ配置量の各属性を規定する。 

第2部は,フォント情報の交換様式,及び交換に必要なフォント情報の最小部分集合を規定する。 

第3部は,グリフ形状表現のための体系及び交換様式を規定する。 

第4部は,応用(例えば数式組版)固有の拡張の際に必要となる体系及び交換様式の拡張を規定する。 

0. 序文 事務文書処理の環境でも出版文書処理の環境でも,文書交換用の開放型計算機網を使用するよ

うになると,フォント情報を交換できるようにする機構が必要になってきた。 

出版文書処理と事務文書処理との技術の統合が予想されている。それにはフォント資源の体系の規格を

規定し,限定された数のフォント資源交換様式の規格を定めることが,大いに寄与することになろう。 

1. 一般 

1.1 

適用範囲 この規格群は,フォント資源の体系を規定するとともに,情報処理システム間でのフォ

ント交換の様式を規定する。一般的な電子文書交換においてフォント参照を行うために必要な体系及び様

式をも規定する。 

この規格は,グリフ形状表現の体系及び交換様式を規定する。 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

JIS X 4161及びJIS X 4162が規定する体系及び交換様式を用いて表現するフォント資源は,ASN.1様式

又はSGML様式の解析系を使う種々の文書処理環境で利用できる。この規格で定義するフォント資源情報

の符号化は,ASN.1様式及びSGML様式の両方の表現で規定し,どちらの処理環境で用いても一貫性を保

ってフォント資源を生成できるように規定する。 

1.2 

適合性 この規格に適合するフォント資源は,ISO/IEC 9541フォント資源に適合する。そのフォン

ト資源はJIS X 4162の2.に示す適合基準に合致しなければならない。この規格に適合するグリフ手続きイ

ンタプリタの実装は最低限,次に示す性能をもつものでなければならない。 

(1) 少なくとも−8 000から+8 000までの範囲の数を,少なくとも小数点以下12ビットで表現する。 

(2) オペランドリストは,最低24のオブジェクトを保持できる。 

1.3 

引用規格 次の規格に含まれる規定内容は,この規格の文中での引用によってこの規格の規定とな

る。各規格には,この規格の出版の際に有効であった版を表示してある。どの規格も改訂を受けるから,

この規格に従った合意を形成するに際しては,それぞれの規格の最新版を調べて適用する。現在有効な国

際規格の登録管理は,ISO及びIECの構成員が行っている。 

ISO/IEC 8824 : 1990 Information technology−Open Systems Interconnection−Specification of Abstract 

Syntax Notation One (ASN.1), 

備考 JIS X 5603-1990が1987年度版のISO 8824に技術的に対応している。 

ISO/IEC 8825 : 1990 Information technology−Open Systems Interconnection−Specification of Basic 

Encoding Rules for Abstract Syntax Notation One (ASN 1), 

備考 JIS X 5604-1990が1987年度版のISO 8825に技術的に対応している。 

ISO 8879 : 1986 Information processing−Text and office systems−Standard Generalized Markup Language 

(SGML), 

備考 JIS X 4151-1992は,ISO 8879 : 1986及びISO 8879/Ammendment 1 : 1988の内容に,技術的追

加及び編集上の変更を加えたものである。 

ISO/IEC 9070 :  1991 Information technology−SGML support facilities−Registration procedures for public 

text owner identifiers. 

ISO/IEC 9541-1 : 1991 Information technology−Font information interchange−Part1 : Architecture. 

備考 JIS X 4161-1993がISO/IEC 9541-1 : 1991に技術的に対応している。 

ISO/IEC 9541-2 : 1991 Information technology−Font information interchange−Part 2 : Interchange Format. 

備考 JIS X 4162-1993がISO/IEC 9541-2 : 1991に技術的に対応している。 

ISO/IEC 10036 : 1993 Information technology−Font information interchange−Procedure for registration of 

glyph and glyph collection identifiers. 

1.4 

表記法 JIS X 4161の4.に記述するBNF表記法を使って,グリフ形状属性の形式的構造を規定する。 

1.5 

グリフ形状表現の概観 グリフ形状表現の方式はいずれも,個別の属性を用い,独自の体系及び交

換様式をもつ。この規格では,グリフ形状表現の各方式を,2.以降が規定する。この版で規定する形状表

現は,ISO/IEC 9541 T1グリフ形状表現(この規格の2.が規定する。)の方式とする。 

備考 3.以降は,他のグリフ形状表現方式を規定する将来の標準化のために確保する。 

グリフ形状表現を,輪郭線表現及びビットマップ表現の2分類に大別する。 

輪郭線表現は,グリフ形状の縁の数学的記述を使ってグリフを記述する。この表現は,変倍,回転及び

傾斜のような変形を可能にするという利点をもち,記憶容量を増やすことなくスタイルをさまざまに変化

させることを可能にする。輪郭線様式は,どのような大きさのラスタ格子についても均整を保たせること

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

に有効な,ヒントと呼ぶ追加の変倍情報を組み込みやすい。その有用性は,ラスタ装置に限定するもので

はない。ヒントは,表示グリフのさまざまな絶対寸法に対する視覚補正として,非線形の変倍を実行する

のにも役立つ。 

ラスタ装置では,輪郭線フォントは,変倍要求に応じた調整の後,最終的な可視化及び表示のためのビ

ットマップ表現への変換を受ける。しかし,輪郭線グリフ形状記述の表示は,ラスタ装置だけで行われる

わけではない。輪郭線グリフ形状記述の表示は,プロッタ,標識カッタ,彫刻マシンなどのベクトル装置,

又はスポットサイズ可変のラスタ装置及びグラビア装置でも行われる。さまざまな表示装置の適性に応じ

て,形状表現の方式は異なる。 

ビットマップ表現は,ラスタ装置で印刷するために必要な画素パターンを記述する。ビットマップグリ

フ表現は,水準の高い組版品質を保って変倍又は変形を任意に行う能力が低い。グリフ形状のビットマッ

プは,ドットが列又は行に並んだものとして表現できるだけでなく,特にもっと大きなサイズ用には,種々

のより圧縮した表現が可能な方式を用いることもできる。 

1.6 

GSHAPES この規格に適合し,グリフ形状を含むフォント資源は,GSHAPES属性をもたなければ

ならない。GSHAPES属性は,フォント資源に関する形状情報の集合を定義するGSHAPE属性リストの属

性リストとする。 

GSHAPES属性リスト::=GSHAPES属性名,GSHAPES属性値の属性リスト 

GSHAPES属性名::=構造化名 −−ISO/IEC 9541-3//GSHAPES 

GSHAPES属性値の属性リスト::=(T1SHAPES属性|属性リスト)* 

どのようなグリフ形状表現もこの方法で定義可能となる。ISO/IEC 9541 T1グリフ形状表現の体系は,

2. が定義する。 

1.7 

フォント交換様式への拡張 JISフォント情報は,JIS X 4162に規定するASN.1様式又はSGML様

式のどちらかを使って交換しなければならない。これらの交換様式は,グリフ形状情報の交換様式を定義

する“マーカ”を含む。1.7でこれらの様式を定義する。 

1.7.1 

ASN.1 

ISO 9541−GSHAPES { 1 0 9541 3 0 } DEFINITIONS : : =BEGIN 

IMPORTS T1−Shape−Property−List FROM ISO 9541−GST1 {1 0 9541 3 0 0} 

Glyph−Shapes : : =SET{ 

t1−shape−property−list 

[0] EXTERNAL T1−Shape−Property−List 

OPTIONAL, 

−−この規格の2.を参照のこと。 

non-iso-properties 

[99] IMPLICIT Property−List 

OPTIONAL} 

1.7.2 

SGML 

<!-- (c) International Organization for Standardization 1994 

Permission to copy in any form is granted for use with conforming 

SGML systems and applications as defined in ISO 8879 : 1986; 

provided this notice is included in all copies. --> 

<!-- Public document type definition. Typical invocation: 

<!DOCTYPE gshapes PUBLIC “ISO 9541-3 : 1994//DTD Glyph Shapes//EN” > --> 

<!ELEMENT gshapes - o (t1shapes? & niprop*) 

--GLYPHSHAPES --> 

<!-- Type 1 shape information. Typical invocation: 

<!DOCTYPE t1shapes PUBLIC”ISO 9541-3 : 1994/DTD Type 1 Glyph Shapes//EN --> 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

2. T1グリフ形状表現 

2.1 

適用範囲 標準グリフ形状表現の一つであるISO/IEC 9541 T1グリフ形状表現の体系及び交換様式

を,2.が規定する。この形状表現の方式は,低解像度,中解像度及び高解像度のラスタ装置上の表示に適

するが,それらに限定するものではない。 

2.2 

定義 この規格の2.で用いる用語の定義は,次のとおりとする。 

2.2.1 

暗号文 (ciphertext)  暗号化した情報。 

2.2.2 

現在点 (current point)  グリフ記述言語のパス構成演算子が参照した最後の点。この点は,最後に

描いた直線若しくは曲線の終点,又はrmoveto演算子若しくはsetcurrentpoint演算子が最後に置いた点のい

ずれかとなる。 

2.2.3 

暗号キー (encryption key)  グリフ手続きの暗号化又は非暗号化に必要な整数。 

2.2.4 

フォントプログラム (font program)  グリフ手続き及びグリフ記述データの構造化集合を組み込

んだ計算機プログラム。 

2.2.5 

仮想ステム (ghost stem)  グリフ範囲のMax-y及びMin-yだけに適用する仮想の水平ステム。も

し正確な垂直そろえが必要であれば,hstemヒント演算子をこの仮想ステムに対して指定しなければなら

ない。 

2.2.6 

グリフ手続き (glyph procedure)  標準グリフ形状記述演算子を使って書き,交換様式で表現した

計算機プログラム。 

2.2.7 

グリフ手続きインタプリタ (glyph procedure interpreter)  グリフの輪郭線表現と,走査変換に必要

な関連データ構造とを構成するための,グリフ手続きを解釈できる計算機処理。 

2.2.8 

ヒント (hint)  ラスタ装置上での表示のためのラスタ化に際して,グリフの均整及び特徴を保存

するのに有効な,グリフの幾何形状に付加する手続き指定情報又は宣言的な指定情報。 

2.2.9 

オーバシュート (overshoot)  平たん(坦)な先端位置をわずかに越えて伸びた,丸い又はとが(尖)

ったグリフ先端の部分。これを用いて水平の表記方向で視覚的に正確なグリフの垂直並びを表現する。 

2.2.10 パス (path)  一つ以上のパス構成演算子が構成する,サブパス及び領域の分離可能な集合。一つ

のグリフの中のすべてのサブパスの集合が一つのパスとなる。 

2.2.11 平文 (plaintext)  暗号化していない情報。 

2.2.12 ラスタ化 (rasterization)  塗りつぶさなければならないグリフ範囲の決定と,それらの範囲を表現

するためのビットマップの生成とからなる2段階の処理。 

2.2.13 領域 (region)  幾何的に定められた範囲。 

2.2.14 区間 (segment)  単一の描画命令で生成した曲線又は直線。すなわち,グリフ形状を定義するパス

の上の連続する点の間の曲線又は直線。 

2.2.15 ステム幅整合 (snap)  装置独立の輪郭線表現における公称幅の異なるグリフステムの集合を,ビ

ットマップ表現へ変換するに際して,強制的に同じ幅にするための機構。 

2.2.16 サブパス (subpath)  一つ以上のパス構成演算子が構成する,連結した直線区間又は曲線区間の列。 

2.2.17 組上り濃度 (typographic color)  表示するフォントの相対的な太さ。フォントの中の主要ステムの

相対的幅に基づく。表示面の範囲に対する,表示グリフ形状の面積の相対量でもある。 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

2.3 

T1グリフ形状表現体系の概要 T1グリフ形状表現は,グリフの形状を記述する図形描画演算子を使

って輪郭線フォントを表現する。この方式は,グリフを種々の方法で変倍,回転及び変形させることがで

き,表示用のビットマップを生成するためのラスタ化を実行できる利点をもつ。グリフ形状を定義する属

性は,手続き的構成子であっても,フォントレベル又はグリフレベルで規定する追加の宣言的データであ

ってもよい。 

グリフ手続きは,選択可能の宣言的ヒントを含んでもよい。ヒントは,グリフを変倍し,ラスタ装置の

画素格子に対してグリフの均整及び特徴を保つために最適化する際に,グリフ手続きインタプリタを支援

するフォントプログラムの情報からなる。しかし,ヒントの有用性は,この応用だけに限定されるもので

はない。フォントレベルヒントは,フォント全体に対して定義し,そろえ及びステム幅を制御する。グリ

フレベルヒントは,定義されているグリフだけに適用され,主に垂直ステム及び水平ステムをラスタ化す

るのに役立つ。 

グリフ形状は,手続き的構成子及び属性と呼ぶ宣言的な付加データで定義する。これらの付加データの

働きは,次のとおりとする。 

(1) 一般属性T1GENERALは,フォントプログラム及び使用するグリフ形状表現の種別を識別する(2.6.1

参照)。 

(2) 組上り濃度属性T1COLORは,画線の幅を均一にすると共に,変倍して表示したグリフの外見上のウ

ェイトを制御する(2.6.2参照)。 

(3) グリフ手続き属性T1GLYPHは,主としてグリフ手続きが使うパラメタ及びサブルーチンを提供する

(2.6.3参照)。 

参考 この規格に適合するグリフ形状表現は,計算機のプログラム又は手続きを構成し,知的財産権

の保護に関する法律が保護する対象となることもある。 

T1グリフ形状の属性を,2.が定義する。 

− 2.4は,T1グリフ形状概念を説明する。 

− 2.5は,T1グリフ形状インタプリタモデルを説明する。 

− 2.6は,T1グリフ形状属性を定義する。 

− 2.7は,グリフレベル手続きの動作内容を定義する。 

− 2.8は,サブルーチン手続きの使用を定義する。 

− 2.9は,交換様式を定義する。 

2.4 

T1グリフ形状概念 T1グリフ形状表現の方式に関連した概念を,2.4.1〜2.4.15に示す。 

2.4.1 

グリフ座標系 T1グリフ形状表現の方式は,JIS X 4161の8.2のグリフ座標系を使う。 

備考 この規格の2.に示す例はすべて,RELUNITS値を1000に設定している。 

2.4.2 

グリフ手続き言語 グリフ形状及びヒントパラメタを指定するためにグリフ手続き言語を使う。こ

の言語は,一つのパスの指定を許す。そのパスは複数の分離したサブパスから成ってもよい。全体のパス

を構成した後に,グリフ手続きインタプリタは,PAINTTYPE属性の値に応じて,グリフを一つの実体と

して塗りつぶすか,又は線を引く。 

2.4.3 

グリフ手続きインタプリタ グリフ手続きインタプリタとは,グリフ手続き言語で書いたグリフ手

続きを解釈する仮想機械をいう(2.7.1参照)。 

background image

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

2.4.4 

並び位置 並び位置とは,y方向でグリフの先端が並ぶ位置を表すy値とする。並び位置は,

LEFT-TO-RIGHT又はRIGHT-TO-LEFTのWRMODENAME属性の値をもつフォント資源に関して,並び域

を定義するのに必ず対で用いる。BASE-ALIGNのALIGNNAME属性の値をもつフォント資源は,x軸上に

ベースラインをもつ。並び位置は,フォントレベルのBLUEVALUES属性及びOTHERBLUES属性で指定

し,又は基準位置及びオーバシュート位置からなる対で指定する(2.4.5及び2.4.6参照)。 

東アジアの表意グリフなどのTOP-TO-BOTTOMのWRMODENAME属性の値をもつフォント資源,又

はCENTRE-ALIGNのALIGNNAME属性の値をもつフォント資源は,一般的に中心だけに並び位置をもち

(フォント中にその並び位置の指定は必要ない。),グリフ形状の先端に他の並び位置をもたない。 

2.4.5 

基準位置 基準位置は,主に平らな形のグリフ先端がそろう,並び位置とする。平らな形状が何で

あるかは,書体デザイナの美的判断による。グリフ先端がほとんど平らであれば,基準位置にそろえるの

がよい。基準位置の概念は,CENTRE-ALIGNのALIGNNAME属性の値をもつフォント,又は

TOP-TO-BOTTOMのWRMODENAME属性の値を持つフォントには一般に適用しない。 

2.4.6 

オーバシュート位置 オーバシュート位置は,基準位置に関連し,それを少し越えた並び位置で,

そこに平らでないグリフ先端をそろえることができる(図1参照)。オーバシュートは,錯視を考慮し,さ

まざまな形態のグリフが垂直方向で精密にそろっているように見せることを目的とする。オーバシュート

位置は,ALIGNNAME属性の値がCENTRE-ALIGNのフォント,又はWRMODENAME属性の値が

TOP-TO-BOTTOMのフォントには一般に適用しない。 

備考 どのグリフがオーバシュートを必要としているか,グリフ先端が理想の輪郭線表現においてど

のくらい基準位置を越しているかは,書体デザイナ又は開発者が決定する。輪郭線調整及び塗

りつぶし処理(ラスタ化処理)は,この規格の範囲ではないが(図7参照),結果として生じる

ビットマップ表現が,必要なグリフサイズ及び表示装置の特徴にあわせてそろって見えるよう

に,これらの飛び出し部分を,制御してもよい。 

2.4.7 

オーバシュート抑制 オーバシュート抑制とは,小さいサイズにラスタ化する変倍処理がオーバー

シュートをさせない機構を言う。この機構によって,基準位置を越えた1画素分のオーバシュートを防ぐ

ことができる。 

2.4.8 

並び域 並び域は,二つの並び位置の間の範囲とする。基準位置の始めからグリフの最上部の最大

オーバシュート位置の間(上部域),最大オーバシュート位置からグリフの底部の基準位置の間(底部域)

の範囲などとする。このような域は,複数あってよい。一つの底部域と二つの上部域の例を,図1に示す。

並び域の概念は,ALIGNNAME属性の値がCENTRE-ALIGNであるフォント,又はWRMODENAME属性

の値がTOP-TO-BOTTOMのフォントには適用しない。 

図1 上部域及び底部域における基準位置及びオーバシュート位置が構成する三つの並び域 

background image

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

2.4.9 

ヒント ヒント情報には,フォントレベル及びグリフレベルの二つの種別がある。フォントレベル

ヒントは属性として宣言し,フォント中のすべてのグリフに適用するパラメタをもつ。フォントレベルヒ

ントは,フォント資源中の全グリフの垂直方向の並び及びステム幅を制御する並び域を定義する(2.6.2.8.1

〜2.6.2.8.5参照)。グリフレベルヒントは,グリフ手続き演算子を用いて,グリフ手続き中で宣言し,グリ

フレベルヒントの定義があるグリフ手続きについてだけ有効とする。 

グリフ手続きの中で,水平及び垂直のステムのラスタ化を制御するために,グリフレベルの宣言的ヒン

トを付加してよい。ステムは,直線又は曲線のいずれかである。ヒント演算子は,グリフ手続きインタプ

リタに対してヒント域(2.4.10参照)を示す。ヒント域は,最初のオペランドが示す座標から,2番目のオ

ペランドが示す相対的位置にまで広がる。hstemヒントは,水平のステムの垂直方向の画素数を制御する

のに使う。vstemヒントは,垂直のステムの水平方向の画素数を制御するのに使う。ヒント演算子のオペ

ランドは,ステムの区間の端点であって,しかもそのステムの極点の正確な座標を表さなければならない。 

グリフ手続きインタプリタは,種々の寸法と解像度に変倍する際に,デザインの特徴及び均整を保つた

めに,グリフ輪郭線を調整できる。hstem及びvstemヒントを漢字グリフに適用した例を,図2に示す。

図2の詳細は,パス区間端点及びhstemヒント域の関連境界を示す。 

図2 hstem及びvstem例 

図3は,大文字Dグリフの適切なヒント域を,hstem及びvstemオペランド値の関連とともに示す。 

図3 グリフレベルヒント域に関連するステム,ヒント域及びヒント演算子オペランド 

background image

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

同じ方向のヒント域が,図4のようにグリフ中で座標が重複する場合(例えば,二つのvstemヒント演

算子が二つのヒント域を定義する場合),グリフ描画手続きにおいて,適切な場所で最初に宣言されたヒン

ト域を新しい集合に置き換えることによって,グリフの均整及び特徴は最もよく保てる。ヒント代替の処

理は,2.8.2に定義する。 

図4 重複ヒント域 

ラテンアルファベットのフォントなどの複数の並び位置にそろえる必要のあるフォントは,漢字のよう

な中心並びの字形の体系とは異なり,並び域においてステムヒント定義をもつ。これは,ある種のグリフ

では通常起こりうる。たとえば三つの水平のステムに三つのhstemヒントを宣言した,大文字Eを図5に

示す。ラテンアルファベットのフォントでは,最上部ステムのhstemヒントは,大文字高まで広げ,最下

部ステムのhstemヒントはベースラインまで広げる。 

図5 ヒント域及び並び位置 

しかし,サンセリフの大文字Iの場合は,hstemヒントのための水平のステムは存在しない。このグリフ

に大文字高及びベースライン並びを適用するためには,大文字Iは,これらの位置で仮想ステム(定義参

照)と呼ぶ存在しない水平のステムを定義するhstemヒントをもたなければならない。これらのhstemヒ

ントをグリフに含まない場合の結果は不定である。 

備考 実装ベースのグリフ手続きインタプリタ間の互換性を得るために,これらの仮想ステムの幅に

許す値は限定する(附属書Bを参照)。 

グリフがフォントレベル並び位置にそろうならば,そのhstemヒントは,その最上部を上部域に,その

最下部を底部域にもつ必要はない。大文字Iの例では,ベースラインから大文字高へ伸びるただ一つの

hstemヒントを用いるということはありえない。一つのhstemが大文字高に,もう一つのhstemがベースラ

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

インになければならない。 

備考 ヒント属性には推奨値を示す属性がある。これらの値は必ずではないが,推奨値に従わない場

合,現在のグリフ手続きインタプリタは予期しない結果又は望ましくない結果を起こす可能性

がある。 

2.4.10 ヒント域 ヒント域は,グリフレベルのヒント演算子に関する一対のオペランドが定義した位置の

間の範囲(それらの位置自体を含む)とする。ヒント域の外側の境界は,ステムのようなグリフ形状の極

点であるパス区間端点の正確な位置を指定する。 

2.4.11 パス方向 反時計回りのサブパスの定義は,グリフ手続きインタプリタに,その領域を塗りつぶす

ことを示す。時計回りのサブパスの定義は,その領域が,一つの塗りつぶされた領域の中に含まれ,塗り

つぶさずに残されることを示す。 

2.4.12 参照点 参照点は,グリフ手続きの先頭で,rpe演算子又はxrpe演算子のオペランドで指定する。

T1フォントの中の各々のグリフ手続きは,参照点を指定しなければならない。後続のパス構成演算子又は

ヒント演算子の中で指示する全座標は,この点に相対的なものとして解釈する。 

2.4.13 フレクス機構 フレクス機構は,はい(盃)状セリフなどの浅い曲線に用いることを意図した,三

つの補助サブルーチンの集合から成る。これらの形状を小さいサイズでラスタ化するときは,直線に置き

換えるためにフレクス機構を使ってよい。(2.8を参照)。 

2.4.14 ヒント代替 ヒント代替機構は,現在のグリフでヒント域の位置を変更するために,補助サブルー

チンを使う。単一のグリフの中で同じ方向のステムが重複座標をもっているとき,ヒント代替機構を使う

(2.8を参照)。 

2.4.15 ベジェ曲線 ベジェ曲線は,3次のパラメタをもつ一対の等式から算出する。 

x (t)=axt3+bxt2+cxt+X0 
y (t)=ayt3+byt2+cyt+Y0 

点 (X0,Y0) は開始点とし,点 (X3,Y3) は終了点とする。これらと関連して,制御点 (X1,Y1) 及び (X2,

Y2) がある。ベジェ曲線は,点 (X0,Y0) から点 (X1,Y1) への線区間と点 (X0,Y0) で接し,点 (X2,Y2) か

ら点 (X3,Y3) への線区間と点 (X3,Y3) で接する。この曲線は,図6に示すとおり,制御点 (X1,Y1) 及び

制御点 (X2,Y2) をもった,点 (X0,Y0) から点 (X3,Y3) へのベジェ曲線となる。 

図6 制御点をもつベジェ曲線 

background image

10 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

この曲線に対応するベジェ制御点は次のとおりとなる。 

X1=X0+3x

Y1=Y0+3y

X2=X1+

3

x

xb

c+

Y2=Y1+

3

y

yb

c+

X3=X0+cx+bx+ax 
Y3=Y0+cy+by+ay 

2.5 

グリフ手続きインタプリタモデル 図7はグリフ像の表示準備処理の一部として,グリフ手続きイ

ンタプリタのモデルを示す。グリフ手続きインタプリタは,グリフ手続きを解釈し,理想グリフ輪郭線及

び状態変数集合を構成する。この処理部分の意味を,2.5が規定する。輪郭線修正アルゴリズム及び塗りつ

ぶしアルゴリズムは,幾何的輪郭線,状態変数及びフォントレベルヒントを入力として,表示に適したグ

リフ像を構成する。この処理部分は,実装依存とし,この規格では規定しない。 

図7 T1グリフ手続きインタプリタのモデル 

2.6 

T1SHAPES 属性T1SHAPESは,T1形状情報に関するすべての属性を指定する形状属性の属性リス

トとする。 

この属性リストは,T1GENERAL属性,T1COLOR属性及びT1GLYPH属性から成る。 

T1SHAPES属性::=T1SHAPHS属性名,T1SHAPES属性値の属性リスト 

T1SHAPES属性名::=構造化名 --ISO/IEC 9541-3//T1SHAPES 

T1SHAPES属性値の属性リスト::= (T1GENERAL属性リスト, 

T1COLOR属性リスト, 

T1GLYPH属性リスト) 

11 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

2.6.1 

T1GENERAL 属性T1GENERALは,フォント全体に関する属性リストとする。 

T1GENERAL属性::=T1GENERAL属性名,T1GENERAL属性値の属性リスト 

T1GHNERAL属性名::=構造化名 --ISO/IEC 9541-3//T1GENERAL 

T1GENERAL属性値の属性リスト::= 

(PASSWORD属性| 

PAINTTYPE属性| 

UNIQUEID属性)* 

2.6.1.1 

PASSWORD 属性PASSWORDは選択可能とする。そのデータ型を整数とし,既存のグリフイ

ンタプリタがこの規格のフォントを利用しやすくするための便宜としてPASSWORD属性を与える。 

参考 属性PASSWORDは,実装ベースとの互換性にとってだけ重要である。互換性を得るために必

要なこの属性の値は,附属書Bを参照のこと。 

PASSWORD属性::=PASSWORD属性名,PASSWORD属性値 

PASSWORD属性名::=構造化名 --ISO/IEC 9541-3//PASSWORD 

PASSWORD属性値::=整数 

2.6.1.2 

PAINTTYPE 属性PAINTTYPEは,必ずとする。そのデータ型は整数とし,フォントプログラ

ムの中でグリフ輪郭線をどのようにラスタ化するかを指定する。PAINTTYPE属性の値は,次のいずれか

とする。 

0:塗りつぶし 

2:画線(かくせん)化 

参考 属性PAINTTYPEは,グリフの表示に際しての見え方を規定するのではない。それは走査変換

処理でパスを塗りつぶすか,画線化するかを指定する。JIS X 4161-1993のSTRUCTURE属性

は,グリフの最終的な見え方がソリッドか輪郭線かを指定するが,このPAINTTYPE属性はそ

れとは異なる。 

PAINTTYPE属性::=PAINTTYPE属性名,PAINTTYPE属性値 

PAINTTYPE属性名::=構造化名 --ISO/IEC 9541-3//PAINTTYPE 

PAINTTYPE属性値::=整数0|2 

2.6.1.3 

UNIQUEID 属性UNIQUEIDは,選択可能とする。そのデータ型は構造化名とし,グリフ輪郭

線から生成するビットマップを再利用目的に記憶する際に,フォントを識別するのに用いる。 

参考 属性UNIQUEIDは,フォントプログラムが生成し,再利用目的に記憶するビットマップを一意

に識別することを主要目的とする。フォントの名前が一意であることの保証がないので,この

UNIQUEID属性を必要とする。UNIQUEID属性は,処理中の文書のためだけでなく,後続のす

べての印刷ジョブのために,ビットマップをプリンタの記憶装置又はハードディスクのいずれ

にも再利用目的の記憶をすることを可能にする。 

UNIQUEID属性::=UNIQUEID属性名,UNIQUEID属性値 

UNIQUEID属性名::=構造化名 --ISO/IEC 9541-3//UNIQUEID 

UNIQUEID属性値::=構造化名 

2.6.2 

T1COLOR 属性T1COLORは,フォントレベルの並び域を定義し,オーバシュート(はみ出し)

を制御する属性,及びラスタ化したグリフのステム幅を制御する属性の二つの種別がある。並び域及びオ

ーバシュートの制御属性は,ALIGNNAME属性の値がCENTRE-ALIGNであるフォント,又は

WRMODENAME属性の値がTOP-TO-BOTTOMであるフォントには適用しない。 

T1COLOR属性の中のBLUEVALUES属性は必すとする。BLUEVALUES属性は,そのリストが空であっ

12 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

ても指定しなければならない。T1COLOR属性は,値を持たない選択可能な属性を含んではならない。ス

テム制御に属する属性は,どのようなフォント資源にも適用できる。 

T1COLOR属性::=T1COLOR属性名,T1COLOR属性値の属性リスト 

T1COLOR属性名::=構造化名 --ISO/IEC 9541-3//T1COLOR 

T1COLOR属性値の属性リスト::= 

(BLUEVALUES属性 | OTHERBLUES属性| 

FAMILYBLUES属性 | FAMILYOTHERBLUES属性| 

BLUESCALE属性 | BLUESHIFT属性| 

BLUEFUZZ属性 | STEMWIDTHPROPS属性)* 

参考 組上がり濃度属性は,歴史的な理由及び互換性の理由から,“BLUEVALUES” と呼ぶ。もとも

とBlueという用語は,業界で書体をデジタル化する際の色分け方法の一部として用いてきた。

この用語は,これらの属性をグループ化するのにも,フォントの組上がり濃度制御の概念にこ

の属性を結び付けることにも有効である。 

2.6.2.1 

BLUEVALUES 属性BLUEVALUESは,必すとする。その属性値は,一つの底部域(ベースラ

イン)及び6個までの上部域に関する並び位置を指定する整数対の順序付き属性リストとする。各整数対

の各整数は,グリフ座標系における垂直位置を表す。WRMODENAME属性の値がLEFT-TO-RIGHTであ

るフォント資源とRIGHT-TO-LEFTであるフォント資源とに関して,その値の符号は,正のy方向を正と

する。WRMODENAME属性に他の値をもつフォント資源については,この属性値の符号を定義しない。

この属性値は,次の規則に従わなければならない。 

(1) 各対の最初の整数は,その対の2番目の値以下とする。 

(2) 最初の対は,ベースラインオーバシュート位置及びベースライン位置とする。 

(3) 各対は,互いにグリフ座標系の3単位以上離れ,OTHERBLUES属性リストの対からも離れていなけ

ればならない。この最小距離は,選択可能のBLUEFUZZ属性によって変更可能とする。 

(4) 1対の値の最大差は,BLUESCALE属性の記述による。 

備考 欧文のグリフの上部域並び位置の例を,次に示す。 

− LCHEIGHT位置及びLCHEIGHTオーバシュート位置 

− アセンダ位置及びアセンダオーバシュート位置 

− CAPHEIGHT位置及びCAPHEIGHTオーバシュート位置 

− 数字位置及び数字オーバシュート位置 

− 上付き基準位置及び上付きオーバシュート位置 

− 序数基準位置及び序数オーバシュート位置 

並び域が不要であるフォントについては,リストの値を空にする。BLUEVALUES属性は,たとえその

リストが空でも,宣言しなければならない。 

BLUEVALUES属性::=BLUEVALUES属性名,BLUEVALUES属性の順序付き値リスト 

BLUEVALUES属性名::=構造化名 --ISO/IEC 9541-3//BLUEVALUES 

BLUEVALUES属性の順序付き値リスト::=(整数,整数)* −− 最大7対 

13 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

2.6.2.2 

OTHERBLUES 属性OTHERBLUESは,選択可能とする。その属性値は,5個までの底部域に

関する並び位置を規定する整数対の値リストとする。各整数対の各整数は,グリフ座標系における垂直位

置を表す。これらの底部域が,BLUEVALUES属性に用いるベースライン域と重なってはならない。

WRMODENAME属性の値がLEFT-TO-RIGHTであるフォント資源とWRMODENAME属性の値が

RIGHT-TO-LEFTであるフォント資源とに関して,その値の符号は,正のy方向を正とする。

WRMODENAME属性が他の値をもつフォント資源については,この属性値の符号を定義しない。この属

性値は,次の規則に従わなくてはならない。 

(1) 各対の最初の整数は,その対の2番目の値以下とする。 

(2) 各対は,互いにグリフ座標系の3単位以上離れ,BLUEVALUESリストの対からも離れていなければ

ならない。この最小距離は,選択可能のBLUEFUZZ属性によって変更可能とする。 

(3) 1対の値の最大差は,BLUESCALE属性の記述による。 

備考 欧文グリフの底部域並び位置の例を,次に示す。 

− ディセンダオーバシュート位置及びディセンダ位置 

− 上付きベースラインオーバシュート位置及び上付きベースライン位置 

− 序数ベースラインオーバシュート位置及び序数ベースライン位置 

OTHERBLUES属性::=OTHERBLUES属性名,OTHERBLUES属性の順序付き値リスト 

OTHERBLUES属性名::=構造化名 --ISO/IEC 9541-3//OTHERBLUES 

OTHERBLUES属性の順序付き値リスト::=(整数,整数)* −− 最大5対 

2.6.2.3 

FAMILYBLUES 属性FAMILYBLUESは,選択可能とする。その属性値は,書体(タイプフェ

ース)ファミリの中の標準的な書体の並び位置と整合する並び位置を指定する整数対のリストとする。各

整数対の各整数は,グリフ座標系における垂直位置を表す。このリストは,一つの底部域(ベースライン)

及び6個までの上部域に対する参照値を指定する。このリストの内容は,2.6.2.1のリスト中に示す規則に

適合しなければならない。 

WRMODENAME属性の値がLEFT-TO-RIGHTであるフォント資源とRIGHT-TO-LEFTであるフォント資

源とに関して,その値の符号は,正のy方向を正とする。WRMODENAME属性が他の値をもつフォント

資源については,この属性値の符号は定義しない。 

ファミリ並びの整合が適正に動作するために,FAMILYBLUES属性に関して次の事項を確認しなくては

ならない。 

(1) 各書体ファミリの1書体をそのファミリの標準として選択すること。 

(2) ファミリの全書体に,整合した並びをもたせる場合は,標準的な書体のBLUEVALUES属性の値を標

準的な書体から複製して,FAMILYBLUES属性の値とする。 

あるフォントの並び位置と,そのフォントに対応するファミリの標準的な並び位置(FAMILYBLUES属

性が指定する)との差が1画素より小さいとき,そのフォントの通常の並び位置の代わりに,そのファミ

リの標準的な並び位置を用いなくてはならない。 

参考 FAMILYBLUES属性は,同一フォントファミリのさまざまなスタイルから,ラスタ化したグリ

フ高を整合させる手段を与える。同一フォントファミリのさまざまなスタイルがテキスト中に

混在するとき,それらの並び位置を整合させて,小さいサイズで一貫性を保つことが望ましい

場合がある。もしこの情報がないと,フォントプログラムがもつ並びヒントだけを考慮するこ

とになる。ファミリ並び位置は,それぞれのフォントの小文字高,小文字高オーバシュートな

どの並び位置に対応しなければならない。 

14 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

FAMILYBLUES属性::=FAMILYBLUES属性名,FAMILYBLUES属性の順序付き値リスト 

FAMILYBLUES属性名::=構造化名 --ISO/IEC 9541-3//FAMILYBLUES 

FAMILYBLUES属性の順序付き値リスト::=(整数,整数)* −− 最大7対 

2.6.2.4 

FAMILYOTHERBLUES 属性FAMILYOTHERBLUESは,選択可能とする。その属性値は,書

体ファミリの中の標準的な書体の並び位置と整合しなければならない並び位置を指定する整数対のリスト

とする。各整数対の各整数は,グリフ座標系における垂直位置を表す。このリストは,5個までの底部域

に対する参照値を指定する。このリストの内容は,2.6.2.2のリスト中に示す規則に適合しなければならな

い。 

WRMODENAME属性の値がLEFT-TO-RIGHTであるフォント資源とRIGHT-TO-LEFTであるフォント資

源とに関して,その値の符号は,正のy方向を正とする。WRMODENAME属性の他の値をもつフォント

資源については,この属性値の符号は定義しない。 

ファミリ並びの整合が適正に動作するために,FAMILYOTHERBLUES属性に関して次の事項を確認しな

ければならない。 

(1) 各書体ファミリの1書体をそのファミリの標準として選択する。 

(2) ファミリの全書体が整合した底部域並びをもたせる場合は,標準的な書体のOTHERBLUES属性の値

を標準的な書体から複製して,FAMILYOTHERBLUES属性の値とする。 

あるフォントの並び位置と,そのフォントに対応するファミリの標準的な並び位置

(FAMILYOTHERBLUES属性が指定する)との差が1画素より小さいとき,そのフォントの通常の並び位

置の代わりに,そのファミリの標準的な並び位置を用いなくてはならない。 

参考 FAMILYOTHERBLUES属性は,同一フォントファミリのさまざまなスタイルから,ラスタ化し

たグリフ高を整合させる手段を与える。同一フォントファミリのさまざまなスタイルがテキス

ト中に混在するとき,それらの並び位置を整合させて,小さいサイズで一貫性を保つことが望

ましい場合がある。もしこの情報がないと,フォントプログラムがもつ並びヒントだけを考慮

することになる。ファミリ並び位置は,各々のフォントのディセンダ,上付き文字ベースライ

ン,序数ベースラインなどの並び位置に対応しなければならない。 

FAMILYOTHERBLUES属性::=FAMILYOTHERBLUES属性名, 

FAMILYOTHERBLUES属性の順序付き値リスト 

FAMILYOTHERBLUES属性名::=構造化名 --ISO/IEC 9541-3//FAMILYOTHERBLUS 

FAMILYOTHERBLUES属性の順序付き値リスト::=(整数,整数)* −− 最大5対 

2.6.2.5 

BLUESCALE 属性BLUESCALEの値は,選択可能とする。そのデータ型を相対有理数とし,グ

リフのオーバシュート形状が,対応する基準位置と同じ位置でラスタ化するサイズの上限を指定する。

ALIGNNAME属性の値がCENTRE-ALIGNであるフォント資源,又はWRMODENAME属性の値が

TOP-TO-BOTTOMであるフォント資源については,この属性は定義しない。 

− グリフサイズが,RELUNITグリフ座標系単位で,BLUESCALE属性の値が指定する画素より少ない

装置画素であれば,オーバシュート抑制を実行する。一つの並び位置にある全形状を,同一画素高で

ラスタ化する。 

− グリフサイズが,RELUNITグリフ座標系単位で,BLUESCALE属性の値が指定する画素数以上であ

れば,オーバシュート抑制が止まり,オーバシュートを行ってもよい。BLUESHIFT属性がこの制御

をする。 

BLUESCALE属性の値は,オーバシュート抑制が止まる前にRELUNITグリフ座標系単位が占める垂直

15 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

画素の数に直接関係する。この画素数をBLUESCALEの値に関係付ける式を,次に示す。 

BLUESCALE=画素数/RELUNITS 

備考 1000グリフ座標系単位につき公称46画素においてオーバシュート抑制を止めるには,

BLUESCALE属性の値を46/1000に設定しなければならない。この値は,出力装置の分解能が

高いほど,より小さなサイズでオーバシュート抑制を解除し,表示装置のように分解能が低く

なると,より大きなポイントサイズでオーバシュート抑制を解除する。 

並び域高の最大値とオーバシュート抑制の画素サイズとの積は,RELUNITSより小さくなければならな

い。 

参考 この制約によって,オーバシュート並び域が1装置画素に達する前に,オーバシュート抑制を

確実に解除することができる。例えば,並び域高の最大値が23でかつRELUNITS=1 000であ

るフォントでは,オーバシュート抑制サイズは,43画素をとることはできるが,44画素であっ

てはならない。 

BLUESCALE属性::=BLUESCALE属性名,BLUESCALE属性値 

BLUESCALE属性名::=構造化名 --ISO/IEC 9541-3//BLUESCALE 

BLUESCALE属性値::=相対有理数 

2.6.2.6 

BLUESHIFT 属性BLUESHIFTは,選択可能とする。そのデータ型を整数とし,グリフ座標単

位で表す。BLUESCALE属性の画素より大きいグリフは,BLUESHIFT属性の値に等しいかそれより大き

いグリフ座標系の距離だけ(上部域より上に,底部域より下に)並び域の基準位置を越えるグリフ形状を,

オーバシュートする。一方,BLUESHIFT属性の値より基準位置に近いグリフ形状は,その走査変換後の
範囲が少なくとも21画素である場合だけ,オーバシュートする。その範囲が21画素より小さい場合には,そ

のグリフ形状を基準位置に並ばせるラスタ化を行う。この属性は,ALIGNNAME属性が属性値

CENTRE-ALIGNをもつフォント資源,又はWRMODENAME属性の値がTOP-TO-BOTTOMであるフォン

ト資源については定義しない。 

指定が無いときのBLUESHIFT属性の値を7とする。オーバシュート位置がどこにあっても,すべての

並び域にBLUESHIFT属性を適用する。 

フレクス機構を用いる場合,BLUESHIFT属性の値は,フレクス形状の大きさの最大値より大きくする

(詳細は2.8.3参照)。 

BLUESHIFT属性::=BLUESHIFT属性名,BLUESHIFT属性値 

BLUESHIFT属性名::=構造化名 --ISO/IEC 9541-3//BLUESHIFT 

BLUESHIFT属性値::=整数 

2.6.2.7 

BLUEFUZZ 属性BLUEFUZZは,選択可能とする。そのデータ型は整数とし,水平ステム上で

並び域の効果を(両方向に)拡大するための,グリフ座標系単位の数を指定する。水平ステムの頭部が

BLUEFUZZ単位内だけ上部域を越える場合,インタプリタはステム頭部が上部域にあるものとして処理す

る。底部域における水平ステムの下部については,インタプリタはステム下部が底部域にあるものとして

処理する。指定が無いときのBLUEFUZZの属性の値を1とする。この属性は,ALIGNNAME属性が属性

値CENTRE-ALIGNをもつフォント資源,又はWRMODENAMEの属性値がTOP-TO-BOTTOMであるフォ

ント資源については定義しない。 

備考 BLUEFUZZ属性は,幾分不正確な座標データを補正する手段を提供する。しかし,並び域のサ

イズを調整をすることで,より大きな効果が得られる(BLUEFUZZ属性の値が0でない場合)。

フォント中のグリフが正確に並んでいれば,BLUEFUZZの機能を利用することは適当ではない

16 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

ので,BLUEFUZZ属性の値を0に設定する。 

BLUEFUZZの値が0でないと,並び域の範囲が拡大するので,並び域は,互いに, (2*BLUEFUZZ+1) 

単位以上離すようにする。 

BLUEFUZZ属性::=BLUEFUZZ属性名,BLUEFUZZ属性値 

BLUEFUZZ属性名::=構造化名 --ISO/IEC 9541-3//BLUEFUZZ 

BLUEFUZZ属性値::=整数 

2.6.2.8 

STEMWIDTHPROPS 属性STEMWIDTHPROPSの値は,1画素の差が大きな問題となる小さいサ

イズにおいて,グリフ手続きインタプリタに対して,わずかに異なる幅をもつステムを同じ幅にラスタ化

することための,フォントレベルのステム幅ヒントの集合とする。 

参考 グリフ形状をラスタ化する際の共通の問題は,グリフ輪郭線の公称ステム幅に一貫性がないこ

とにある。これはデザイナの意図,又は量子化誤差による。ステム幅のヒントは,小サイズで

ラスタ化する際には,ラスタ化の処理を支援して,ステムの幅をそろえる。サイズと解像度が

充分大きい場合には,本来のステム幅のままラスタ化を行う。 

STEMWIDTHPROPS属性::=STEMWIDTHPROPS属性名,STEMWIDTHPROPS属性リスト 

STEMWIDTHPROPS属性名::=構造化名 --ISO/IEC 9541-3//STEMWIDTHPROPS 

STEMWIDTHPROPS属性リスト::=(STDHW属性|STDVW属性| 

STEMSNAPH属性|STEMSNAPV属性| 

FORCEBOLD属性|LANGUAGEGROUP属性)* 

2.6.2.8.1 

STDHW 属性STDHWは,選択可能とする。その属性値は,主要な水平ステムの(グリフ座

標系単位で垂直に測った)幅を示す一つの有理数だけからなるリストとする。指定の許容値(実装依存)

内の幅をもつ水平ステムは,すべてこの属性の値が指定する幅をもつステムと同じ画素数でラスタ化する。

この属性が無い場合,現在のグリフ手続き中のグリフレベルヒントだけが,ステムのラスタ化に影響する。 

STDHW属性::=STDHW属性名,STDHW属性値 

STDHW属性名::=構造化名 --ISO/IEC 9541-3//STDHW 

STDHW属性値::=(有理数)+ −−リスト長を1とする 

2.6.2.8.2 

STDVW 属性STDVWは,選択可能とする。その属性値は,主要な垂直ステムの(グリフ座

標系単位で水平に測った)幅を示す一つの有理数だけからなるリストとする。(画素数で指定し,グリフ手

続きインタプリタが与える)許容値内の幅をもつ垂直グリフステムはすべて,この属性の値が指定する幅

をもつステムと同じ画素数でラスタ化する。この属性が無い場合,現在のグリフ手続き中のグリフレベル

ヒントだけがステムのラスタ化に影響する。 

備考 最適結果を得るには,この属性の値は,そのフォントにおける主要なステムの平均幅でなけれ

ばならない。例えば,ラテンフォントでは,この属性の値は小文字グリフの直線ステムの幅と

する。イタリックフォントプログラムにおいては,この属性の値は,ステム方向に直交する角

度で測った垂直ステムの幅になる。 

STDVW属性::=STDVW属性名,STDVW属性値 

STDVW属性名::=構造化名 --ISO/IEC 9541-3//STDVW 

STDVW属性値::=(有理数)+ −−リスト長を1とする 

17 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

2.6.2.8.3 

STEMSNAPH 属性STEMSNAPHは,選択可能とする。その属性値は,水平ステム(垂直に測

る)に関して最も共通な幅(STDHW属性リストが与える主要幅を含む)の12個までの有理数のリストと

する。これらの幅は,小さい値から順に指定する。STEMSNAPH属性を用いる場合,STDHW属性がなけ

ればならない。STEMSNAPH属性が無い場合,グリフレベルヒント,及びSTDHW属性の値があれば,こ

れらだけがステムのラスタ化に影響する。 

STEMSNAPH属性は,可変幅のステムを許容値内で,低解像度装置のために,同一画素幅でラスタ化す

ることを可能にする。STEMSNAPH属性が無い場合,現在のグリフ手続き中のグリフレベルヒントだけが

ステムのラスタ化に影響する。 

STEMSNAPH属性::=STEMSNAPH属性名,STEMSNAPH属性値リスト 

STEMSNAPH属性名::=構造化名 --ISO/IEC 9541-3//STEMSNAPH 

STEMSNAPH属性値リスト::=(有理数)+ −−リスト長を12以下とする 

2.6.2.8.4 

STEMSNAPV 属性STEMSNAPVは,選択可能とする。その属性値は,垂直ステム(水平に測

る)に関して最も共通な幅(STDVWリストが与える主要幅を含む)の12個までの有理数のリストとする。

この幅は,小さい値から順に指定する。イタリックフォント及びオブリクフォントについては,このリス

トを空とするか,又はこの属性を省略しなければならない。STEMSNAPV属性を用いる場合,STDVW属

性が無ければならない。STEMSNAPV属性が無い場合,グリフレベルヒント及びSTDVW属性の値があれ

ば,これらだけがステムのラスタ化に影響する。 

STEMSNAPV属性は,可変幅のステムを許容値内で,低解像度装置のために,同一画素幅でラスタ化す

ることを可能にする。この属性が無い場合,現在のグリフ手続き中のグリフレベルヒントだけがステムの

ラスタ化に影響する。 

STEMSNAPV属性::=STEMSNAPV属性名,STEMSNAPV属性値リスト 

STEMSNAPV属性名::=構造化名 --ISO/IEC 9541-3//STEMSNAPV 

STEMSNAPV属性値リスト::=(有理数)+ −− リスト長を12以下とする 

2.6.2.8.5 

FORCEBOLD 属性FORCEBOLDは,選択可能とする。その属性値は,真 (TRUE) 又は偽 

(FALSE) のいずれかとする。同一ファミリの太いフォントの特定グリフのステムが,より細いフォントの

あるステムと同じ画素数に計算された場合でも,FORCEBOLD属性の値が真ならば,走査変換処理は太い

フォントのグリフのステムを太くしてよい。 

備考 FORCEBOLD属性は,フォントファミリの太いフォント及び通常の太さのフォントがともに1

画素幅のステムになる小さなサイズのときも,ボールドスタイルをレギュラーフォントよりも

太く描画しなければならないことを,グリフ手続きインタプリタに伝える。FORCEBOLD属性

は,この働きを明示的に制御できる。 

FORCEBOLD属性::=FORCEBOLD属性名,FORCEBOLD属性値 

FORCEBOLD属性名::=構造化名 --ISO/IEC 9541-3//FORCEBOLD 

FORCEBOLD属性値::=論理値 

2.6.2.8.6 LANGUAGEGROUP 特定の言語圏に属する書写体系は,大まかな審美的特徴を共有している。

それらの言語グループを識別することは,正確なグリフ表現にとって明らかに有用である。 

属性LANGUAGEGROUPは,選択可能とする。そのデータ型は整数とし,着目フォントが第一に意図さ

れる言語圏を表す。T1COLOR属性リストに指定がない場合,又は値をグリフ手続きインタプリタが認識

しない場合,LANGUAGEGROUP属性の値は0とする。この規格は,次の二つの言語圏だけを定義する。

0又は1以外の値は,将来の標準化のために確保する。 

18 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

0:ラテン,ギリシャ,キリル等 

1:日本,中国,韓国の漢字等 

参考 LANGUAGEGROUP属性の値が1であるフォント資源のおもな特徴として,その値が0である

フォント資源に比べて,グリフがより多くのステムをもつことがある。この特徴は,グリフ手

続きインタプリタが,ラスタ格子に合わせてステム幅を丸める処理に影響する。 

LANGUAGEGROUP属性::=LANGUAGEGROUP属性名,LANGUAGEGROUP属性値 

LANGUAGEGROUP属性名::=構造化名 --ISO/IEC 9541-3//LANGUAGEGROUP 

LANGUAGEGROUP属性値::=整数 

2.6.3 

T1GLYPH T1GLYPH属性は,グリフ手続きの解釈過程において,グリフ手続きインタプリタが

参照するパラメタ及び手続きを構成する。T1GLYPH属性は,アクセント付きグリフを作るための要素グ

リフのリスト,グリフの全体又は部分を描画するためのサブルーチン,ヒント関連の演算,及びグリフ手

続き暗号化を指定する。 

T1GLYPH属性::=T1GLYPH属性名,T1GLYPH属性値の属性リスト 

T1GLYPH属性名::=構造化名 --ISO/IEC 9541-3//T1GLYPH 

T1GLYPH属性値の属性リスト::=(GLYPHENCRYPT属性| 

LENIV属性| 

ACCENTENCODING属性| 

SUBRS属性| 

GLYPHPROCPROPS属性リスト)* 

2.6.3.1 

GLYPHENCRYPT 属性GLYPHENCRYPTは,選択可能とする,そのテータ型は論理値とし,

グリフ手続きを暗号化するか否かを表す(2.9.2.3及び附属書D参照)。この属性値が真 (TRUE) である場

合は,グリフ手続きを暗号化し,偽 (FALSE) である場合は,グリフ手続きを暗号化しない。

GLYPHENCRYPT属性が偽のとき,LENIV属性の値は0でなければならない。指定が無いときの

GLYPHENCRYPT属性の値は真とする。 

GLYPHENCRYPT属性::=GLYPHENCRYPT属性名,GLYPHENCRYPT属性値 

GLYPHENCRYPT属性名::=構造化名 --ISO/IEC 9541-3//GLYPHENCRYPT 

GLYPHENCRYPT属性値::=論理値 

2.6.3.2 

LENIV 属性LENIVは,選択可能とする。そのデータ型は整数とし,グリフ手続き交換様式で,

グリフ手続き演算子の先頭にあってもグリフ手続きインタプリタが無視するオクテットの数を示す。指定

しないときのLENIV属性の値は4とする。 

備考 LENIV属性の値が0のとき,グリフ手続きのサイズを最小化する(附属書B参照)。 

LENIV属性::=LENIV属性名,LENIV属性値 

LENIV属性名::=構造化名 --ISO/IEC 9541-3//LENIV 

LENIV属性値::=整数 

2.6.3.3 

ACCENTENCODING 属性ACCENTENCODINGは,選択可能とする。その属性値はグリフ識

別子の順序付きリストとする。この属性が存在する場合,siag演算子(2.7.3.1.4参照)が参照する要素グ

リフの指標付き識別子は,ACCENTENCODING属性を参照して解釈する。ACCENTENCODING属性が無

い場合,この値は附属書Aで定義したリストとする。 

siag演算子用いるアクセント付きグリフがACCENTENCODING属性の長さを越えて参照する場合の結

果は,定義しない。 

19 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

ACCENTENCODING属性::=ACCENTENCODING属性名,ACCENTENCODING属性値 

ACCENTENCODING属性名::=構造化名 --ISO/IEC 9541-3//ACCENTENCODING 

ACCENTENCODING属性値::= (整数,構造化名)+ −− 附属書Aを参照。 

備考 附属書Aのとおり,無指定アクセント要素の表の第1欄及び第2欄は,BNFで記した整数及び

構造化名のデータ対とする。 

2.6.3.4 

SUBRS 属性SUBRSは,選択可能とする。その属性値は,グリフ手続きサブルーチンのリスト

とする。サブルーチンは,パス若しくはサブパスを描くための演算子,ヒントを定義するための演算子,

又は他のサブルーチンを呼び出すための演算子を含む,グリフ演算子のいかなる組み合せでもよい。

SUBRS属性は,リスト中の位置を参照して用いる。SUBRS属性は,2.8の制約の対象となる。 

SUBRS属性::=SUBRS属性名,SUBRS属性値リスト 

SUBRS属性名::=構造化名 --ISO/IEC 9541-3//SUBRS 

SUBRS属性値リスト::=(GLYPHPROC属性)+ 

GLYPHPROC属性::=オクテット列 −−グリフ手続き交換様式を参照。 

2.6.3.5 

GLYPHPROCPROPS 属性GLYPHPROCPROPSは,グリフ名及びグリフ形状手続きの対で構成

する順序付きの属性リストとする。 

GLYPHPROCPROPS属性::=GLYPHPROCPROPS属性名,GLYPHPROCPROPS属性値リスト 

GLYPHPROCPROPS属性名::=構造化名 --ISO/IEC 9541-3//GLYPHPROCPROPS 

GLYPHPROCPROPS属性値リスト::=(GNAME属性, 

GLYPHPROC属性)* 

2.6.3.5.1 

GNAME 属性GNAMEは,そのデータ型を構造化名とし,後続の属性で形状を記述する。

GNAME属性は,JIS X 4161で指定する。 

2.6.3.5.2 

GLYPHPROC 属性GLYPHPROCは,特定のグリフを描画するための手続きからなるオクテッ

ト列とする。グリフ手続きは,この規格で定義するグリフ手続き演算子だけを用いなければならない。 

GLYPHPROC属性::=GLYPHPROC属性名,GLYPHPROC属性値 

GLYPHPROC属性名::=構造化名--ISO/IEC 9541-3//GLYPHPROC 

GLYPHPROC属性値::=オクテット列 

2.7 

グリフ手続きの動作内容 グリフ手続きは,おおむね宣言的な性質をもつT1COLOR属性とは異な

り,個別のグリフの形状をグリフ手続きインタプリタが解釈する手続き言語の形で表現する。2.7は,グリ

フ手続き解釈処理をモデル化した仮想機械を定義し,グリフ手続き言語演算子の意味とそれらの意味を記

述する記法を示す。 

グリフ手続きの動作内容を定義するためだけのモデルとして仮想機械モデルを示す。この仮想機械モデ

ルは,グリフ手続きインタプリタの現実の実装を規定するものではなく,特定のグリフ手続きインタプリ

タの実装がグリフ手続きの動作内容を実現する方法を制限するものでもない。 

2.7.1 

仮想機械 グリフ手続き解釈の処理は,一つの仮想機械としてモデル化できる。仮想機械モデルは,

次の要素からなる。 

(1) インタプリタ 

(2) グリフ手続き 

(3) オペランドリスト 

(4) 状態変数 

(5) 暗黙結果スタック 

background image

20 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

仮想機械の要素の定義は,次の四つの概念からなる。 

(1) オブジェクト 

(2) 状態 

(3) 演算 

(4) 列 

オブジェクトは,データの個別単位として,仮想機械によって操作できる。各オブジェクトは,型及び

値をもつ。2.7.2がオブジェクト型を定義する。 

仮想機械の状態は,オペランドリスト中のオブジェクトと仮想機械内部のデータの集合との組合せで決

まる。この状態は,仮想機械が実行する操作によって変わることがある。 

演算は,仮想機械が行う動作をいう。これは,オブジェクトの操作及び仮想機械の状態の操作とする。

グリフ手続きの演算子,オペランドとして用いるオブジェクト及び演算以前の仮想機械の状態が,演算に

影響する。 

列は,仮想機械にとって不可欠であり,0個以上のトークンは特定の順序で解釈され,繰り返す場合も

ある。列中で実行される演算は,仮想機械の状態に累積的効果を与える。 

図8で,仮想機械のモデルを説明する。 

図8 仮想機械 

2.7.1.1 

グリフ手続きトークン 各グリフ手続き(2.6.3.5.2のオクテット列)は,2.9.2で定義するグリフ

手続き交換様式でのトークンの列を含む。各トークンは,リテラル又は演算子とする。 

リテラルは,グリフ手続き交換様式でのオブジェクトを表現する。すべてのオブジェクト型が交換様式

でリテラル表現をもつわけではない。 

2.7.1.2 

グリフ手続きインタプリタ インタプリタは,グリフ手続き中のトークンを順次解釈する。リテ

ラルトークンを解釈し,そのリテラルが示すオブジェクトをオペランドリストの先頭に置く。 

演算子トークンの解釈は,仮想機械に特定の演算子による動作を実行させる。この規格が定義する演算

子の集合及びその意味は,2.7.3.で定義する。 

演算子の解釈の結果としての動作を次に示す。 

(1) オペランドリストの先頭又は末尾から(オペランドとしての)オブジェクトを削除する。 

21 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

(2) オブジェクトに対する計算又は他の操作を実行する。 

(3) 新規オブジェクトを生成する。 

(4) オペランドリストの先頭へ(結果としての)オブジェクトを置く。 

(5) オペランドリストを消去する 

(6) 状態変数の値を変更する。 

(7) グリフ座標系中にパスを構成する,又は追加する。 

2.7.1.3 

オペランドリスト オペランドリストは,任意の数のオブジェクト(実装上はリストの最大サイ

ズを制限してもよい。)を保持する両端リストとする。それは,任意のオブジェクト型の組合せを保持でき

る混成リストとする。 

備考 この規格で,用語“リスト”,“リストの先頭”,“リストの末尾”,“置く”,及び“削除する”は,

一般的な計算機科学における用法と一致した用法で用いる。 

明示オペランドとしてオブジェクトを要求する演算子は,オペランドリストの先頭又は末尾からそれら

を削除する。明示結果としてオブジェクトを返す演算子は,結果をオペランドリストの先頭に置く。 

オペランドリスト上のオブジェクトは,仮想機械の状態の一部を構成する。 

2.7.1.4 

状態変数 仮想機械の要素の一つとして,状態変数の集合がある。これらの変数の値は,多くの

演算にとって暗黙のオペランドとして動作し,仮想機械の状態の一部を形成する。すべての状態変数の値

は,各グリフ手続きの解釈の開始に際し,それらの初期値に再設定する。 

各状態変数,その型及びグリフ手続きの解釈の開始時での初期値を2.7.1.4.1〜2.7.1.4.6で定義する。 

2.7.1.4.1 

CurremPoint(現在点) 状態変数CurrentPointは,グリフ座標系における点を指定する数値の

対とする。その初期値は,未定義とする。その値は,任意のパス構成演算子を実行する以前に,必要なrpe

演算子又はxrpe演算子によって設定する。CurrentPoint状態変数は,グリフ座標系において,次のパス区

間を構成すべき点を相対的に指定する。CurrentPoint状態変数の値は,rmoveto演算子,setcurrentpoint演算

子,rpe演算子,xrpe演算子などの演算子によって変わる。 

2.7.1.4.2 

Escapement(送り) 状態変数Escapementの値は,グリフ手続きを実行した後に新しい現在点

(CurrentPoint状態変数)となるグリフ座標系における点を指定する数値の対とする。その初期値は,定義

しない。Escapement状態変数の値は,rpe演算子又はxrpe演算子が変更する。 

2.7.1.4.3 

CurrentPath(現パス) 状態変数CurrentPathの値は,グリフ手続きによって構成されている

パスの現在の状態とする。その初期値は,空とする。CurrentPath状態変数の値は,パス構成演算子が変更

する。 

2.7.1.4.4 

HorizontalStems(水平ステム) 状態変数HorizontalStemsの値は,水平ヒント域を定義する数

値の対のリストとする。HorizontalStems状態変数の初期値は,空とする。HorizontalStems状態変数の値は,

hstem演算子又はhstem3演算子が変更する。 

2.7.1.4.5 

VerticalStems(垂直ステム) 状態変数VerticalStemsの値は,垂直ヒント域を定義する数値の

対のリストとする。VerticalStems状態変数の初期値は,空とする。VerticalStems状態変数の値は,vstem演

算子又はvstem3演算子が変更する。 

2.7.1.4.6 

DotSection(ドットセクション) 状態変数DotSectionの値は,CurrentPath状態変数が示すパ

ス中で,フォントレベルヒントの並び域又はグリフレベルヒントの域による影響を受けないサブパスを指

定する。その初期値は,空とする。DotSection状態変数の値は,DotSectionヒント演算子が変更する。 

2.7.1.5 

暗黙結果スタック UtilSubrs呼出しの結果は,暗黙結果スタックに置く。暗黙結果スタックから

1項目を削除し,それをオペランドリストの先頭に置くためにretval演算子を用いてもよい。 

background image

22 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

2.7.2 

データ型 仮想機械が処理するオブジェクトは,オブジェクトの型及び値をもつ。この規格で使用

するオブジェクト型を2.7.2で定義する。 

2.7.2.1 

オブジェクト型 

2.7.2.1.1 

整数 整数型のオブジェクトは,整数とする。整数型のオブジェクトのためのリテラル表現は,

2.9.2で示す。 

2.7.2.1.2 

数値 数値型のオブジェクトは,小数を表現できなければならない。 

2.7.3 

グリフ手続き演算子 グリフ手続きを生成するのに用いる言語を構成する演算子は,機能によって

次の5つに分類できる。 

(1) グリフの輪郭線を開始又は終了するための演算子 

(2) パス構成演算子 

(3) ヒント演算子 

(4) 算術演算子 

(5) サブルーチン演算子 

グリフ手続き表記の一般形式は,次のとおりとする。 

オペランドリスト 演算子 結果リスト 

各演算子の符号化表現の値は,演算子名の後の括弧内に示す。演算子のコード化値は,1〜2オクテット

値で構成する。 

備考 演算子コード化値の表記は,xx/yyの形をとる,ここでxx及びyyは,共に00から15までの範

囲の10進数とする。上位ニブルをxxで表現し,下位ニブルをyyで表現する。したがって,10

進法での値は16 (xx)+yyに等しい。 

グリフ手続き演算子は,オペランドをとらないか,両端オペランドリストの先頭又は末尾からオペラン

ドをとってもよい。その動作を示すため,グリフ手続き表記法での前置記号を表1に示す。 

表1 グリフ手続き表記法での前置記号 

オペランドリストの記法 

動作 

− 

オペランドをとらない。 

op (1)…op (n) 

リストの先頭からn個のオペランドを削除する。 

*op (1)…op (n) 

リストの末尾からn個のオペランドを削除する。 

実行後,グリフ手続き演算子は,オペランドリストを変更しなくても,明示的にリストをクリアしても

よく,又はリストの先頭に結果を置いてもよい。表2に,結果を示すためにグリフ手続き表記法での後置

記号を示す。 

表2 グリフ手続き表記法での後置記号 

結果リストの記法 

動作 

− 

リストを変更しない(リスト上に残存する演算子は直前に参照されたものであ
っても削除されない)。 

result (1)…result (n) 

オペランドが存在する場合にはオペランドを削除した後に結果をリストの先頭
に残す。 

リストを消去する 

多くの演算子はオペランドリストを消去するので,一般に,グリフ手続きインタプリタのオペランドリ

スト上にオペランドが累積して,後のコマンド列がそれを削除しなくてはならないという心配はない。オ

ペランドは一般に次の演算子のためにだけ供給される。ただし,サブルーチン呼出し及びdiv演算子では

例外があることに注意すること。 

background image

23 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

2.7.3.1 

開始及び終了のための演算子 グリフ手続きは,グリフの参照点及び送りを指定するために,rpe

演算子又はxrpe演算子のいずれかによって開始しなければならない。各グリフ手続きは,複合グリフを構

成するためにsiag演算子を使う場合(2.7.3.1.4参照)を除いて,endglyph演算子によって終了しなければ

ならない。図9に,グリフ手続きインタプリタのための状態遷移図を示す。 

図9 グリフ手続きインタプリタの状態遷移 

2.7.3.1.1 

rpe 次に示す演算子rpeは,グリフ参照点及び送りを指定する。 

* rpx rpy ex ey rpe (00/12 00/07) * 

オペランドrpx,rpy,ex及びeyは,数値型とする。オペランドrpx及びrpyは,後続の相対的パス構成

演算子のために, (rpx,rpy) に初期参照点を設定する。rpe演算子は,CurrentPoint状態変数の値を (rpx, rpy) 

に設定し,Escapement状態変数を (ex,ey) に設定する。オペランドrpy及びeyの両方の値が0ならば,

rpe演算子の代わりにxrpe演算子を用いてもよい。 

rpe演算子は,グリフパス中に参照点を置かない。パスの最初の点としては,rmoveto演算子を用いる。

グリフ手続き中で,任意のパス構成演算子又はヒント指定演算子を使う以前に,rpe演算子又はxrpe演算

子のどちらかを,一度だけ使うものとする。空白グリフのような表示を行わないグリフ中では,参照点は (0,

0) でなければならない。 

オペランドex及びeyは,JIS X 4161-1992のグリフ配置量情報の送り要素と重複する。この規格に適合

するフォント資源では,両者の値が少なくとも一つの表記方向モードで,同一でなければならない。 

参考 rpe演算子は,1オクテットで−107から107までを表現し,グリフ演算子のオペランドの絶対

値を縮小するので,記憶容量節約の意味で有用である。 

備考 WRMODENAME属性の値がLEFT-TO-RIGHTであるフォント資源では,rpxの値がISO/IEC 

9541-1//EXT属性のx最小値からISO/IEC 9541-1//PXを引いた値でなければならない。グリフ

手続きインタプリタの実装ベースにおける互換性のために,rpyの値は0でなければならない。 

24 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

2.7.3.1.2 

xrpe 次に示す演算子xrpeは,グリフの参照点及び送りを指定する。 

* rpx ex xrpe (00/13) * 

オペランドrpx及びexは,数値型とする。オペランドrpxは,後続の相対的パス構成演算子のために, 

(rpx,0) に初期参照点を設定する。xrpe演算子は,CurrentPoint状態変数の値を (rpx,0) に設定する。

Escapement状態変数の値を, (ex,0) に設定する。 

xrpe演算子は,グリフパス中に参照点を置かない。パスの最初の点としては,rmoveto演算子を用いる。

グリフ手続き中で,任意のパス構成演算子又はヒント指定演算子を使う以前に,rpe演算子又はxrpe演算

子のどちらかを,一度だけ使うものとする。空白グリフのような表示を行わないグリフ中で,参照点は (0,

0) でなければならない。 

オペランドex及びeyは,JIS X 4161-1992のグリフ配置量情報の送り要素と重複する。この規格に適合

するフォント資源では,両者の値は少なくとも一つの表記方向モードで,同一でなければならない。 

備考 WRMODENAME属性の値がLEFT-TO-RIGHTであるフォント資源では,rpxの値はISO/IEC 

9541-1//EXT属性のx最小値からISO/IEC 9541-1//PXの値を引いた値でなければならない。 

2.7.3.1.3 

endglyph 次に示す演算子endglyphは,グリフ輪郭線定義を終了する。 

−endglyph (00/14) * 

endglyph演算子は,グリフ手続き中の最後の演算子でなければならない。endglyph演算子は,PAINTTYPE

属性が示す方法で,グリフ手続きインタプリタにグリフパスを塗りつぶさせる。グリフ手続きがendglyph

演算子で終了しなければ,グリフをラスタ化しない。endglyph演算子は,それぞれの要素グリフ手続きが

endglyph演算子で終了するので,siag演算子を使って定義した複合グリフに用いてはならない。 

2.7.3.1.4 

siag 次に示す演算子siagは,同一フォント中の二つの要素グリフに対する指標の参照によっ

て,アクセント付きグリフを構成する。 

* arp adx ady bglyph aglyph siag (00/12 00/06) * 

オペランドarp,adx及びadyは,数値とする。bglyph及びaglyphは,非負の整数型とする。オペランド

arpは,アクセントの参照点のx要素とする。この値は,アクセント自身のグリフ手続きのxrpe演算子の

オペランドrpx又はrpe演算子のオペランドrpxと同じとする。アクセントの参照点をベースグリフの参照

点に対する相対位置 (adx,ady) に置いて,複合グリフを構成する。オペランドbglyphは,ベースグリフ

のグリフ識別子に対する指標の参照とし,オペランドaglyphは,アクセントグリフのグリフ識別子に対す

る指標の参照とする。オペランドbglyph及びaglyphは,双方ともアクセント要素表に対する指標とする。

複合グリフの構成のためのsiag演算子の用法の説明は,附属書C C.1.1参照のこと。 

アクセント付きグリフの両要素のグリフ識別子がアクセント要素表に現れない場合,siag演算子を用い

てアクセント付きグリフを構成してはならない。要素グリフは,それ自体がsiag演算子を用いて生成した

複合グリフであってはならない。 

複合グリフを開始するrpe演算子及びxrpe演算子は,ベースグリフ(オペランドbglyphが参照するグリ

フ)中の対応する演算子と同じ演算子でなければならず,同じオペランドをもたなければならない。 

アクセントの手続き及びベースグリフの手続きはそれぞれ既にそれ自体のendglyph演算子で終了するの

で,siag演算子は,アクセント付きグリフのグリフ手続き中の最後の演算子とする。 

備考 この演算子の使用は,T1フォントプログラム空間を節約する。しかし,アクセント要素表が定

義する要素をもつグリフだけに使用を制限する。複数要素からなる複合グリフを構成する一般

的方法として,サブルーチン (Subrs) の使用を推奨する。附属書Cを参照のこと。 

25 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

2.7.3.2 

パス構成演算子 グリフのパスの構成に2.7.3.2.1〜2.7.3.2.11の演算子を用いる。サブパスは,そ

れ自体又は他のパスとも交差してはならない。もし,パスが交差した場合の結果は,実装に依存する。塗

りつぶすサブパスは,反時計回りに指定する。塗りつぶさないサブパスは,時計回りに指定する。 

2.7.3.2.1 

colosepath 次に示す演算子closepathは,サブパスを閉じる。 

−closepath (00/09) * 

備考 すべてのグリフ中のサブパスは,closepath演算子で終了しなければならない。closepath演算子

で終了しないと,パスが画線化する場合(PaintType属性の値が2の場合),結果は予測できな

い。この演算子は,現在点を移動しない。closepath演算子が与えられるまで,いかなるrmoveto

演算子も有効な現在点に対して相対的でなければならない。 

2.7.3.2.2 

hlineto 次に示す演算子hlinetoは,現パス(CurrentPath状態変数)に長さdxの水平な線区間

を追加する。 

* dx hlineto (00/06) * 

オペランドdxは,数値型とする。 

2.7.3.2.3 

hmoveto 次に示す演算子hmovetoは,水平方向にdx単位を加えて現在点(CurrentPoint状態変

数)を移動する。これは,dx 0 rmoveto演算子と等価とする。 

*dx hmoveto (01/06) * 

オペランドdxは,数値型とする。 

2.7.3.2.4 

hvcurveto 次に示す演算子hvcurvetoは,現パス(CurrentPath状態変数)に3次ベジェ曲線区

間を追加する。これは,dx1 0 dx2 dy2 0 dy3 rrcurvetoと等価とする(2.7.3.2.7参照)。 

*dx1 dx2 dy2 dy3 hvcurveto (01/15) * 

オペランドdx1,dx2,dy2及びdy3は,数値型とする。 

備考 第1ベジェ接線が水平で,第2ベジェ接線が垂直である場合,この演算子は,rrcurveto演算子

呼出しよりもオペランドが二つ少ない。 

2.7.3.2.5 

rlineto 次に示す演算子rlinetoは,現パス(CurrentPath状態変数)に直線区間を追加する。 

* dx dy rlineto (00/05) * 

オペランドdx及びdyは,数値型とし,現在点(CurrentPoint状態変数)からの相対距離と解釈する。 

2.7.3.2.6 

rmoveto 次に示す演算子rmovetoは,現在点(CurrentPath状態変数)が (x,y) であるとき,

いかなる区間をも加えずに現在点(CurrentPoint状態変数)を (x+dx,y+dy) に設定して,現パス

(CurrentPath状態変数)の新しいサブパスを開始する。ここで, (x,y) は直前の現パスとする。 

*dx dy rmoveto (01/05) * 

オペランドdx及びdyは,数値型とする。 

2.7.3.2.7 

rrcurveto 次に示す演算子rrcurvetoは,図6の (X1,Y1) 及び (X2,Y2) を3次ベジェ制御点と

して使用し,現パス(CurrentPath状態変数)に,現在点(CurrentPoint状態変数) (X0,Y0) と点 (X3,Y3) と

の間の3次ベジェ曲線区間を追加する(2.4.15の定義参照)。 

* dx1 dy1 dx2 dy2 dx3 dy3 rrcurveto (00/08) * 

オペランドは,すべて数値型とし,直前の点に対する相対値とする。オペランドは,次の式により算出

する。 

dx1=X1−X0 

dx2=X2−X1 

dx3=X3−X2 

26 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

dy1=Y1−Y0 

dy2=Y2−Y1 

dy3=Y3−Y2 

rrcurveto演算子は,曲線を構成したのち,X3,Y3を新しい現在点(CurrentPoint状態変数)に設定する。 

2.7.3.2.8 

vhcurveto 次に示す演算子vhcurvetoは,現パス(CurrentPath状態変数)に曲線区間を追加す

る。これは,0 dy1 dx2 dy2 dx3 0 rrcurvetoと等価とする(2.7.3.2.7参照)。 

* dy1 dx2 dy2 dx3 vhcurveto (01/14) * 

オペランドdy1,dx2,dy2,dx3は,数値型とする。 

備考 第1ベジェ接線が垂直で第2ベジェ接線が水平である場合,この演算子は,rrcurveto演算子呼

出しよりもオペランドが二つ少ない。 

2.7.3.2.9 

vlineto 次に示す演算子vlinetoは,現パス(CurrentPath状態変数)に長さdyの垂直の線区間

を追加する。これは,0 dy rlinetoと等価とする。 

* dy vlineto (00/07) * 

2.7.3.2.10 vmoveto 次に示す演算子vmovetoは,垂直方向にdy単位を加えて,現在点(CurrentPoint状態

変数)を移動する。これは,0 dy rmovetoと等価とする。 

* dy vmoveto (00/04) * 

オペランドdyは,数値型とし,正(y増加)又は負(y減少)でもよい。 

2.7.3.2.11 setcurrentpoint 次に示す演算子setcurrentpointは,rmoveto演算子を実行せずに,グリフインタ

プリタの中の現在点(CurrentPoint状態変数)をグリフ絶対座標系の座標 (x, y) に設定する。 

* x y setcurrentpoint (00/12 02/01) * 

これは,後続する相対的パス構成演算子のために,現在点を設定する。setcurrentpoint演算子は,補助サ

ブルーチン0からの結果と共にだけ使うこと(2.8.1.1参照)。 

2.7.3.3 

ヒント演算子群 ヒント演算子群の使用は,グリフ手続きでは選択可能とする。 

2.7.3.3.1 

dotsection 次に示す演算子dotsectionは,サブパスを区切る。 

−dotsection (00/12 00/00) * 

dotsection演算子が区切ったサブパスは,たとえフォントレベルのヒント域にあっても,フォントレベル

のヒント処理が制御してはならない。DotSection演算子は,DotSection状態変数を変更する。 

ヒントにdotsection演算子を使うときは,必ず対で使わねばならない。1番目のdotsection演算子は,グ

リフの区切られたサブパスを開始する最初のrmovetoの直後に指定する。2番目のdotsection演算子は,サ

ブパスを終了するclosepathの直後に指定する。 

備考 サブパスが,フォントレベルの並び域又はグリフレベルのヒント域内,又は近くにありながら,

その域に正確に並んでいないときは,そのサブパスを走査変換過程が,その域に並ぶように変

形する場合がある。ヒント置換機構が無いか,又はあっても使わないとき,サブパス位置に対

してこのような調整をすると,結果として,寸法によってはあるグリフのひずみ(歪み)とみ

なされる場合がある。ヒント置換は,これらのグリフ形状を最も正確にラスタ化するための方

法である。しかし,ヒント置換できないグリフ手続きインタプリタとの互換をとるために,ヒ

ント置換に加えてdotsection演算子を用いてもよい。この演算子は,“i”,“j”,“!”などのグリフ

の中の点に対して用いるだけでなく,その使用が有用であるどのサブパスに対して用いてもよ

い。 

2.7.3.3.2 

hstem 次に示す演算子hstemは,1対の数値をHorizontalStems状態変数リストに置く。 

27 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

* y dy hstem (00/01) * 

オペランドy及びdyは,数値型とし,y座標でyとy±dyとの間の水平ステムヒント域を指定する。オ

ペランドyは,参照点に対する相対y座標値とする。y及びdyの値は,直線ステム上の点又は曲線ステム

の極点のいずれかの位置に対応しなければならない。そうでない場合,その結果は規定しない。 

備考 単一のグリフ中で,水平ステム域が互いに重なる場合は,次善の結果となり得る。ヒント置換

は,ステムの重なりを避けるために使ってもよい。ヒント置換は2.8.2を参照。 

2.7.3.3.3 

hstem3 次に示す演算子hstem3は,3対の数値型のオペランドを,HorizontalStems状態変数リ

ストに置く。 

* y0 dy0 y1 dy1 y2 dy2 hstem3 (00/12 00/02) * 

オペランドy0,y1及びy2は,すべて参照点に対する相対y座標値とする。これらの数値は,y座標で

y0とy0±dy0との間,y1とy1±dy1との間,及びy2とy2±dy2との間の三つの水平ステムヒント域を指

定する。 

hstem3演算子は,yの値をソートして,それぞれymin,ymid及びymaxと呼ぶ底部域,中間域及び上部

域を得る。対応するdy値を,dymin,dymid及びdymaxと呼ぶ。それらのステム及びその間のカウンタは,

すべて制御の対象となる。これらの座標値は,次の制限に従わなければならない。 

− dymin=dymax 

− ymin+dymin/2からymid+dymid/2までの距離は,ymid+dymid/2からymax+dymax/2までの距離に等

しくする。つまり,底部ステムの中心から中間ステムの中心までの距離は,中間ステムの中心から上

部ステムの中心までの距離と同じとする。 

グリフ手続きがhstem3演算子をあるグリフのヒント内で使う場合,そのグリフ手続きは,hstem命令を

使ってはならない。ヒント置換を実行するときは,一つのグリフ手続き及びそのサブルーチン内では,hstem

又はhstem3のどちらかを単独で使うか,又はどちらも使わない。 

参考 hstem3演算子は,特に数学の合同記号又は除算記号のように,垂直方向の幅が等しく,空白部

の幅が等しい三つの水平方向の形状をもつ,記号のステム及びカウンタを制御するのに適して

いる。 

2.7.3.3.4 

vstem 次に示す演算子vstemは,1対の数値をVirticalStems状態変数リストに置く。 

* x dx vstem (00/03) * 

オペランドx及びdxは整数型とし,x座標でxとx±dxとの間の垂直ステムヒント域を指定する。オペ

ランドxは,参照点に対する相対x座標値とする。x及びdxの値は,直線ステム上の点又は曲線ステムの

極点のいずれかの位置に対応しなければならない。そうでない場合は,その結果は規定しない。 

備考 単一のグリフの中で,垂直ステム域が互いに重なる場合は,次善の結果となり得る。ヒント置

換は,ステムの重なりを避けるために使ってもよい。ヒント置換は2.8.2を参照のこと。 

2.7.3.3.5 

vstem3 次に示す演算子vstem3は,3対の数値型のオペランドを,VerticalStems状態変数リス

トに置く。 

* x0 dx0 x1 dx1 x2 dx2 vstem3 (00/12 00/01) * 

これらの数値は,x座標でx0とx0±dx0との間,x1とx1±dx1との間,及びx2とx2±dx2との間の,

三つの垂直ステムヒント域を指定する。x0, x1及びx2は,すべて最初の参照点に対するx座標の相対値と

する。 

vstem3演算子は,xの値をソートして,それぞれxmin, xmid及びxmaxと呼ぶ左側域,中間域及び右側

域を得る。対応するdx値を,dxmin, dxmid及びdxmaxと呼ぶ。これらのステム及びその間のカウンタは

28 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

すべて制御の対象となる。これらの座標値は,次の制限に従わなければならない。 

− dxmin=dxmax 

− xmin+dxmin/2からxmid+dxmid/2までの距離は,xmid+dxmid/2からxmax+dxmax/2までの距離に等

しくする。つまり,左側ステムの中心から中間ステムの中心までの距離は,中間ステムの中心から右

側ステムの中心までの距離と同じとする。 

グリフ手続きがvstem3演算子をあるグリフのヒント内で使う場合,そのグリフ手続きは,vstem命令を

使ってはならない。ヒント置換を実行するときは,一つのグリフ手続き及びそのサブルーチン内では,vstem

又はvstem3のどちらかを単独で使うか,又はどちらも使わない。 

参考 vstem3演算子は,小文字 “m” のようなグリフのステム及び内部の空白を制御するのに特に適

している。 

2.7.3.4 

算術演算子 

2.7.3.4.1 

div 次に示す演算子divは,num1をnum2で割る。 

num1 num2 div (00/12 00/12) quotient 

オペランドnum1及びnum2は,数値型とする。その商 (quotient) は,数値型とする。オペランドnum1

は,オペランドリストの先頭に置き,num2がそれに続く。実行した後の結果をオペランドリストの先頭

に置く。 

2.7.3.5 

サブルーチン及びサブルーチン関連演算子 

2.7.3.5.1 

callsubr 次に示す演算子callsubrは,GlyphProc属性リストのSubrsリスト中のsubr̲index位置

にあるサブルーチンを呼び出す。 

subr̲index callsubr (00/10) result 

オペランドsubr̲indexは,整数型とする。Subrsリストの各要素は,様式においてグリフ手続きと同じで

あり,同じ交換様式をもつ。 

サブルーチンを呼び出す前に,グリフ手続きインタプリタオペランドリストの先頭に置いたオペランド

と,サブルーチンがリストの先頭に置いた0個以上の結果 (result) とは,そのサブルーチンの定義に従っ

ていなければならない。callsubrは明示的な結果をオペランドリストに置かないが,サブルーチン中の演算

子は結果をリストに置いてよい。 

サブルーチンは,一般的には,フォントプログラム中で繰り返すパス構成演算子若しくはヒント演算子

の列を表すため,又は補助サブルーチンを呼び出すために使う。サブルーチン呼出しは,10段階を超えた

深さの入れ子にしてはならない(2.8を参照)。 

2.7.3.5.2 

return 次に示す演算子returnは,Subrsリストのサブルーチンから復帰し,呼び出したグリフ

手続きの実行を続ける。 

−return (00/11) − 

Subrsリストに指定のある各々のSubrsグリフ手続きサブルーチンは,return演算子で終了しなければな

らない。 

2.7.3.5.3 

callutilsubr 次に示す演算子callutilsubrは,補助サブルーチンの呼出しに用いる。 

op1…opn n u callutilsubr (00/12 01/00) result 

op1からopnまでのn個のオペランドを,補助サブルーチンに対して用意する。そのオペランドをオペ

ランドリストの先頭から取りだして,直後に実行するu番目の補助サブルーチンに渡す。retva1演算子は,

補助サブルーチンからの結果を検索し,オペランドリストの先頭に各結果を置く(2.7.3.5.4参照)。したが

って,一つ以上のretval演算子が,このcallutilsubr演算子に続いてもよい。callutilsubrの使用は,2.8を参

29 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

照のこと。 

補助サブルーチンは,2.7.3.5だけで定義する。補助サブルーチンの使用法及びこの規格で定義済みの四

つの補助サブルーチンの構文を,2.8.1に示す。 

2.7.3.5.4 

retval 次に示す演算子retvalは,暗黙結果スタックから戻り値を取り出して,オペランドリス

トの先頭に置く。 

−retval (00/12 01/01) number 

retval演算子は,callutilsubr演算子の直後でだけ用い,間に他の演算子を入れてはならない。 

2.8 

サブルーチン フォントプログラムは,2つのサブルーチンの集合を使ってもよい。二つのサブルー

チンの集合には,Subrsと標準の補助サブルーチンとがある。サブルーチンの使用には,次のものがある。 

(1) フォント中のグリフ間の共通要素を描く記述をまとめることによって,フォントプログラムの必要記

憶容量を削減する。 

(2) フレクス形状を必要とする場合は,Subrs 0からSubrs 2までをフレクス形状のために使う。フレクス

形状が必要ないときは,Subrs 0からSubrs 2までを他の目的に用いてもよい。 

(3) Subr3は,ヒント代替と共に使うために確保する。ヒント代替が必要ない場合は,Subr3を他の目的に

用いてもよい。 

(4) 4以上の指標をもつSubrsは,他のグリフ手続き呼出しと共に使うことができる。 

(5) 補助サブルーチン0から補助サブルーチン2までは,フレクス形状を実現する。 

(6) 補助サブルーチン3は,ヒント置換を実現する。 

Subrsリストは,適切な交換表現で表現したグリフ手続きの部分,及びグリフ形状演算子を含むグリフ

手続きとして暗号化したグリフ手続きの部分とを含む(2.9.2参照)。フォントが繰返し要素を含むときは,

これらの要素は,グリフ手続きサブルーチンとして記述する候補となりうる。 

備考 グリフ手続き演算子の集合は,相対形式のパス構成演算子だけを含む。例えば,その集合は

rmoveto又はrlinetoをもつが,moveto又はlinetoはもたない。相対的な演算子を使うことで,

グリフ中のその絶対位置に関係なく,グリフ輪郭線の各部分にサブルーチンを再利用すること

が容易となる。 

Subrsリストの要素は,グリフ手続きとし,return演算子で終わらなければならない。これらのサブルー

チンは,Subrsリスト中の指標をオペランドとして使い,callsubr演算子によって呼び出す。グリフ手続き

サブルーチンは,他のサブルーチンを10段階の深さまで呼び出してもよい。 

グリフ手続きサブルーチンの使用は,T1フォントプログラムの必要条件ではない。しかし,サブルーチ

ンの適切な利用によって記憶空間を大幅に削減できる。 

補助サブルーチンは,ヒント置換及びフレクス機構のために使う。これらの補助サブルーチン手続きは,

いくつかのSubrsエントリとも協調を保って動作する。したがって,最初の四つの補助サブルーチンエン

トリと最初の四つのSubrsエントリの動作内容には固定した意味がある。フォント資源中でヒント置換又

はフレクス機構を使わない場合,対応するSubrsエントリを,その他の目的で使ってもよい。 

最初の四つ以外の補助サブルーチンエントリは,将来の拡張のために確保する。 

2.8.1 

補助サブルーチン群呼出し 

2.8.1.1 

補助サブルーチン0呼出し 

呼出し列:3 0 callutilsubr retval retval (08/15 08/11 00/12 01/00 00/12 01/01 00/12 01/01) 

オペランド:tolerance, x, y 

戻り値: x, y 

30 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

意味: 補助サブルーチン0は,フレクス機構のために用い,フレクス形状をもつ1対の曲線区間を

記述する列を終了させる最後の呼出しとする。この補助サブルーチンは,オペランドリスト

の先頭から三つのオペランドを取り出し,二つの結果を戻す。第一オペランドは,二つの曲

線が一本の直線としてでなく,まさに曲線として表現し得る限界値とする。その値は,フレ

クス形状のラスタ済みの高さを装置単位の1001を用いて示す。第2及び第3のオペランドは,

(グリフ座標系原点に対する)グリフ座標系単位での終点の絶対座標値とする。 

備考 フレクス機構は,他の方法では小寸法でうまく表現できないほど微妙な形状の比例を保つため

に使う。オーバシュート域に影響するはい(盃)状のセリフ又は他の形状のために,この制御

パラメタを50(又は装置画素の21)とする。したがって,ラスタ化した場合,フレクス高さが

100

50画素以上のときは曲線を使い,それ未満のときは直線を使う。2.8.3を参照のこと。 

この補助サブルーチンは,曲線の終点のx及びyの絶対座標である二つの結果を,暗黙結果スタックに

戻す。二つのretval演算子は,これらの値を暗黙結果スタックからグリフ手続きインタプリタのオペラン

ドリストに戻す。二つのretval演算子の直後にsetcurrentpoint演算子(2.7.3.2.11参照)が続かなければなら

ない。setcurrentpoint演算子は,現在点(CurrentPoint状態変数)を更新するために,その二つの戻り値を

オペランドとして使う。 

2.8.1.2 

補助サブルーチン1呼出し 

呼出し列:0 1 callutilsubr (08/11 08/12 00/12 01/00)  

オペランド:無し 

戻り値:無し 

意味: 補助サブルーチン1は,フレクス機構の起動に使い,その操作を初期化するための最初の呼

出しとする。この補助サブルーチンは,オペランドを必要とせず,結果は戻さない。フレク

ス曲線のはじめにおける現在点(CurrernPoint状態変数)の座標を退避し,座標値を積

算する処理を初期化する。補助サブルーチン2に対する後続の呼出しが,フレクス機構にそ

の座標値を渡す。その動作内容は,2.8.3を参照のこと。 

2.8.1.3 

補助サブルーチン2呼出し 

呼出し列:0 2 callutilsubr (08/11 08/13 00/12 01/00)  

オペランド:無し 

戻り値:無し 

意味: 補助サブルーチン2は,フレクス機構のために使う。この補助サブルーチンは,オペランド

を必要とせず,結果を戻さない。補助サブルーチン2の各呼出しの前に適切なオペランドを

もつrmoveto演算子を置かなければならない。補助サブルーチン2は,補助サブルーチン0

の後処理のために,rmoveto演算子が参照する点の座標値を積算する。その動作内容は2.8.3

を参照のこと。 

2.8.1.4 

補助サブルーチン3呼出し 

呼出し列:1 3 callutilsubr retval (08/12 08/14 00/12 01/00 00/12 01/01)  

オペランド:subr̲index 

戻り値:subr̲index又は3 

意味: 補助サブルーチン3は,ヒント代替機構の起動に使う。この補助サブルーチンは,オペラン

ドリストの先頭から一つのオペランドを取り出す。それは置換用のヒント演算子を含む

Subrの指標でなければならない。グリフ手続きインタプリタがヒント置換できる場合は,

31 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

同じsubr̲indexを戻し,そうでない場合は数値3を戻す。数値3は,return演算子だ

けからなるSubrの指標とする。補助サブルーチン3の呼出しの後には,callsubr演算子

が続かなければならない。その動作内容は2.8.2を参照のこと。 

2.8.2 

ヒント代替(補助サブルーチン3) vstem及びhstemのステムヒントは,後続のグリフ手続きで

の全座標の扱いに影響を与える。グリフ輪郭線のある部分はあるステムヒントを必要とし,他の部分は別

のステムヒントを必要とすることがある。ステムヒントの現在の集合について,座標演算子を実行した後

で,これらのヒントを廃棄してもよく,新しいステムヒントをパス構成演算子の列の適当な箇所で指定し

てもよい。 

古いステムヒントを廃棄し,新しいステムヒントを挿入するためには,Subrsリストのグリフ手続きサ

ブルーチンの中に新しいステムヒントを置かなければならない。このサブルーチンは,Subrsリストの0

〜3以外のどの指標に置いてもよい。このサブルーチンは,ステムヒント演算子とそのオペランドだけを

含んでいなければならない。このサブルーチン指標subr̲indexを呼び出し,古いヒントを捨てて新しいヒ

ントを挿入したいグリフ輪郭線中の点に,次のグリフ手続き列を挿入する。 

subrs̲index 1 3 callutilsubr retval callsubr 

この符号列は,次のとおりに動作する。補助サブルーチン3は,新しいヒント演算子を含むSubrsリス

ト内のエントリをオペランドとしてもつ。subr̲indexをサブルーチンに渡し,ヒント代替手続きを実行す

る。すべてのインタプリタが輪郭線の途中でのヒント廃棄の能力をもつわけではないので,ヒント代替手

続きはこの実行能力を検査する。ヒント廃棄可能であればsubr̲indexを戻し,不可能であれば数値3を戻

す。retval演算子は,結果(3又はsubr̲indexのどちらか)を暗黙結果スタックからオペランドリストの先

頭に移す。callsubr演算子がsubr̲indexが参照するサブルーチンを,最終的に呼び出す。 

Subrsリスト内のエントリ3は,retum演算子だけから成るグリフ手続きでなければならない。グリフ手

続きインタプリタが輪郭線の途中で古いヒントを廃棄する能力がないときは,この機構が新しいヒントを

無視する。 

2.8.3 

フレクス機構 ほぼ水平又はほぼ垂直の方向の非常にゆるい曲がりの曲線は,ラスタ装置上で近似

することは非常に難しい。それらの曲線の例には,はい(盃)状のセリフ及び先細のステムがある。フレ

クス機構は,エントリ0, 1及び2の補助サブルーチンを用いて,これらの形状を制御できる。 

フレクス機構は,微妙な曲線を構成する二つのベジェ曲線を定義どおりに使うか,又は代わりに二つの

外側の終点の間の直線を使うかを決定する。その方法は,装置空間でのフレクス形状の高さが,高さ制御

パラメタより少ないかどうかを計算する。少ない場合,二つの曲線は一つの直線区間に置き換える。少な

くない場合,曲線上の点を調整して,曲線形状を適切にラスタ化する。 

特定の曲線列は,その曲線上の点の並びが次の条件に適合したときだけ,フレクス機構の対象となる(図

10に例示)。 

(1) 列は,正確に二つのベジェ曲線区間で構成しなければならない。 

(2) 外側の終点は,同じx(又はy)座標でなければならない。つまり,それらは正確に垂直又は水平でな

ければならない。 

(3) 二つの曲線が接続する終点及びその終点に隣接する制御点は,すべて連結曲線部分の水平(又は垂直)

の極点に位置しなければならない。接続点は,連結曲線部分の終点から等距離である必要はない。 

(4) 外側の一つの終点と中心(接続)終点とのx(又はy)座標の差(フレクス形状の高さ)は,20単位

以下でなければならない。 

はい(盃)状のセリフ(及び並び域内にあるすべてのゆるい曲線)の最良の結果を得るためには,結合

background image

32 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

(中心)終点は並び域の基準位置に正確に位置しなければならない。 

フレクス形状は,BLUESHIFT属性と整合していなければならない。BLUESHIFT属性の値は,フレクス

形状の高さの最大値より大きくなければならない。 

備考 最大のフレクス形状の高さが6以下の場合,BLUESHIFT属性は省略してもよい。指定がない

場合のBLUESHIFT属性の値は7であるので,フレクス形状高さの最大値が6より大きい場合,

この属性を明示的に設定しなければならない。 

図10 フレクス機構のための曲線の適性 

二つの適切なベジェ曲線区間に対してフレクス機構を付加するには,グリフ手続き中でいくつかの変更

を行う必要がある。次の(1)〜(7)にこの変更を行うアルゴリズムを示す。 

(1) 最初の曲線が始まる現在点の座標を記録する。これを開始点と呼ぶ。 

(2) 開始点からある参照点までの相対距離を計算する。その参照点は,水平方向の曲線については,接続

点と同じx座標をもち,開始点と同じy座標をもつ点とする。垂直方向の曲線については,接続点と

同じy座標をもち,開始点と同じx座標をもつものとする。 

(3) 6個の座標値(12個の数値)を残し,二つのrrcurveto演算子を取り去る。 

(4) 参照点に対する,最初の対の相対座標を再計算する。 

33 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

(5) 列の先頭に,参照点の開始点からの相対座標を挿入する。列中に7個の座標値(14個の数値)が存在

する。 

(6) この座標の列の先頭にSubrsエントリ1の呼出しを置き,列中の7個の各座標対の後ごとにrmoveto

演算子及びSubrsエントリ2の呼出しを置く。 

(7) フレクス高さ制御パラメタ及び絶対座標で表す最終座標値を置き,最後にSubrsエントリ0を呼び出

す。高さ制御パラメタは,1001画素を単位とした整数とする。 

備考 はい(盃)状のセリフに対しては,推奨するフレクス制御パラメタは,50(100

50の画素)とす

る。 

2.8.4 

最初の四つのSubrsエントリ フォントプログラムのグリフ手続きが,補助サブルーチンのどれか

を呼ぶ場合は,GlyphProc属性におけるSubrsリストの最初の四つのエントリには,特定の演算子列からな

るグリフ手続きを用いる。フォントプログラムがフレクス機構もヒント代替も用いない場合には,この必

要はなく,最初のSubrsエントリは,通常のグリフ手続きサブルーチン列であってもよい。 

フォントプログラムがフレクス機構を参照する場合の最初の三つのSubrsエントリは,次のとおりとする。 

Subrs指標番号0: 3 0 callutilsubr retval retval setcurrentpoint return 

Subrs指標番号1: 0 1 callutilsubr return 

Subrs指標番号2: 0 2 callutilsubr return 

フォントプログラムがヒント代替機構を参照する場合は,4番目のSubr指標番号3は,次のとおりとす

る。 

return 

Subrsエントリ1及び2は,補助サブルーチンの呼出しの短縮形にすぎない。これによって,各呼出し

で,二つのグリフ手続きオクテットを省く。Subrsエントリ3は,グリフ手続きインタプリタがヒントを

置き換えられない場合に使う。Subrsエントリ0は,フレクス機構における最後の三つのオペランドを補

助サブルーチン0に渡す。 

補助サブルーチン0は,最終座標及びフレクスのパラメタをオペランドとして取り,フレクス曲線の最

終点の座標を戻す。Subrsエントリ0は,二つのretval演算子によって,これらの二つの座標値をオペラン

ドリストの先頭に渡し,それらをsetcurrentpoint演算子のオペランドとして使う。 

2.8.5 

複合グリフ T1フォントプログラムで複合グリフを生成するには,次の二つの方法がある。 

(1) siag演算子の使用(一回の起動で2つの要素グリフの組合せだけを許す。) 

(2) Subrsサブルーチンの使用。 

2.8.5.1及び2.8.5.2が,各方法の使用条件を示し,附属書Cが各方法の使用を図示する。 

2.8.5.1 

複合グリフ生成のためのsiag演算子の使用 siag演算子を使うには,次の四つの条件を満たさな

ければならない。 

(1) 複合グリフのグリフ識別子が存在する。 

(2) 各要素グリフのグリフ識別子が存在する。 

(3) 複合グリフのグリフ配置量と各要素グリフのグリフ配置量とが存在する。 

(4) 要素グリフは,アクセント要素表中のグリフ指標に対応する。 

二つの要素グリフをsiag演算子を使って連結し,複合グリフを作る。複合グリフを作るためのsiag演算

子の使用は,C.1.1を参照のこと。 

2.8.5.2 

複合グリフ生成のためのサブルーチンの使用 複合グリフの生成にサブルーチンを使うには,次

の三つの条件を満たさなければならない。 

34 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

(1) 複合グリフのグリフ識別子が存在する。 

(2) 複合グリフのグリフ配置量が存在する。 

(3) グリフ手続きがSubrsリスト中で,要素サブグリフを表現する。 

二つ以上の要素Subrsをcallsubr演算子を使って連結し,複合グリフを作る。複合グリフを作るためのサ

ブルーチンの使用法は,C.1.2を参照のこと。 

2.9 

交換様式 

2.9.1 

T1グリフ形状情報のためのフォント交換様式の拡張 ISO/IEC 9541フォント資源は,1.が規定す

るグリフ形状のためのASN.1様式又はSGML様式と共に,JIS X 4162が規定するASN.1記法又はSGML

様式のどちらかを使って定義する,T1グリフ形状のASN.1様式及びSGML様式を,次に定義する。 

参考 ASN.1様式中で,注釈として扱われている箇所は,日本語で記述する。 

2.9.1.1 

ASN.1交換様式 

ISO 9541-GST1 {1 0 9541 3 0 0} DEFINITIONS::=BEGIN 

IMPORTS Structured−Name FROM ISO 9541-SN {1 0 9541 2 3} 

T1-Shape−Property−List::=SEQUENCE { 

t1-name-prefixes [0] IMPLICIT SET OF T1-Name−Prefix OPTIONAL, 

t1-general-props [1] IMPLICIT T1-General−Property−List, 

t1-color-props 

[2] IMPLICIT T1-Color−Property−List, 

t1-glyph-props 

[3] IMPLICIT T1-Glyph−Property−List} 

T1-Name−Prefix 

::=SEQUENCE { 

--36ページの備考参照のこと。 

[0]:IMPLICIT Code, 

[1]:IMPLICIT Structured−Name} 

T1-General−Property−List::=SET { 

password 

[0] IMPLICIT INTEGER OPTIONAL, 

painttyp 

[1] IMPLICIT Paint−Code, 

uniqueid 

[2] IMPLICIT Global−Name OPTIONAL} 

T1-Color−Property−List::=SET { 

blue-values 

[0] IMPLICIT Top−Zone−List 

other-blues 

[1] IMPLICIT Bottom−Zone−List OPTIONAL, 

family-blues 

[2] IMPLICIT F−Top−Zone−List OPTIONAL, 

family-other-blu

es 

[3] IMPLICIT F−Bottom−Zone−List OPTIONAL, 

blue-scale 

[4] IMPLICIT Rational OPTIONAL, 

blue-shift 

[5] IMPLICIT INTEGER OPTIONAL, 

blue-fuzz 

[6] IMPLICIT INTEGER DEFAULT 1, 

stem-width 

[7] IMPLICIT Stem-Width OPTIONAL} 

T1-Glyph−Property−List::=SET { 

glyph-encrypt 

[0] IMPLICIT BOOLEAN DEFAULT TRUE, 

lenIV 

[1] IMPLICIT Cardinal OPTIONAL, 

accent-encoding 

[2] IMPLICIT Acc−Enc−List OPTIONAL, 

35 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

subrs 

[3] IMPLICIT Subr−Procedures−List OPTIONAL, 

glyph-procs 

[4] IMPLICIT Glyph−Procedure−Prop−List OPTIONAL } 

Paint−Code 

::=ENUMERATED { filled (0), 

outlined  (2) }  

Top−Zone−List 

::=SEQUENCE OF (INTEGER, INTEGER) 

--リスト長は7対以下でなければならない。 

Bottom−Zone−List 

::=SEQUENCE OF (INTEGER, INTEGER) 

--リスト長は5対以下でなければならない。 

F-Top−Zone−List 

::=SEQUENCE OF  (INTEGER, INTEGER) 

--リスト長は7対以下でなければならない。 

F-Bottom−Zone−List 

::=SEQUENCE OF (INTEGER, INTEGER) 

--リスト長は5対以下でなければならない。 

Stem−Width 

::=SET { 

std-hw 

[0] IMPLICIT Std−HW−List OPTIONAL, 

std-vw 

[1] IMPLICIT Std−VW−List OPTIONAL, 

stem-snap-h 

[2] IMPLICIT Stem−Snap−H−List OPTIONAL, 

stem-snap-v 

[3] IMPLICIT Stem−Snap−V−List OPTIONAL, 

force-bold 

[4] IMPLICIT BOOLEAN OPTIONAL, 

language-group 

[5] IMPLICIT Lang−Group−Val OPTIONAL } 

Acc−Enc−List 

::=SEQUENCE OF Acc−Enc 

Acc−Enc 

::SEQUENCE { 

acc-comp-index 

[0] IMPLICIT INTEGER, 

glyph-name 

[1] IMPLICIT Global−Name } 

Subr−Procedures−List ::=SEQUENCE OF Glyph-Procedure 

Glyph−Procedure−Prop−List::= SET OF SEQUENCE { 

glyph-name 

[0] IMPLICIT Global−Name, 

glyph-procedure 

[1] IMPLICIT Glyph−Procedure } 

Std−HW−List 

::=SEQUENCE OF Rational 

--リスト長は1でなければならない。 

Std−VW−List 

::=SEQUENCE OF Rational 

--リスト長は1でなければならない。 

Stem−Snap−H−List 

::=SEQUENCE OF Rational 

--リスト長は12以下でなければならない。 

Stem−Snap−V−List 

::=SEQUENCE OF Rational 

--リスト長は12以下でなければならない。 

Lang−Group−Val 

::=ENUMERATED { latin−based (0), 

ideographic (1)}DEFAULT 0 

Glyph−Procedure 

::=OCTET STRING 

Global−Name 

::= SEQUENCE { 

--36ページの備考参照のこと。 

36 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

prefix-index 

[0] IMPLICIT Code  

OPTIONAL, 

name-value 

[1] IMPLICIT Structured−Name 

Code 

::=INTEGER (1 .. 255) 

Rational 

::=SEQUENCE { 

numerator 

[0] IMPLICIT INTEGER 

denominator 

[1] IMPLICIT INTEGER (1.. 2147483647) DEFAULT 1 } 

備考 Global−Name属性及びName−Prefixes属性は,フォント資源の本体又はフォント参照の中で,

(一つのObject−Name−Componentと同じくらい)短い構造化名を使用して,効率的な符号化

を実現している。Name−Prefixes属性は,各構造化名の値に指標 (prefix-index) をつけたリスト

であり,(構造化名の定義については,JIS X 4162附属書Bを参照のこと。)この指標のついた

Global−Name属性は,対応する構造化名の値を補って解釈される。Global−Name属性に指標 

(prefix-index) がない場合,指定の値がそのまま構造化名となる。Name−Prefix属性を定めると

きには,指定済みの構造化名を確かめるための検証を実行できないので,十分注意しなければ

ならない。 

37 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

2.9.1.2 

SGML交換様式 

<!-- (C) International Organization for Standardization 1994 Permission to copy 

in any form is granted for use with conforming SGML systems and 

applications as defined in ISO 8879 : 1986 ; provided this notice is 

included in all copies.--> 

<!-- Public document type definition. Typical invocation : 

<!DOCTYPE t1shapes PUBLIC “ISO/IEC 9541-3 : 1994//DTD Type 1 Glyph Shapes//EN” --> 

<!ELEMENT t1shapes-- (t1namtbl?, t1genprp, t1colprp, t1gpprp) > 

<!ELEMENT t1namtbl -o (prefix, strucnm) + 

--Name Prefix Table 

see global name note at the end of this clause--> 

<!ELEMENT prefix 

-o (code) 

--Name Prefix Index--> 

<!ELEMENT t1genprp  -o (password? & painttyp & uniqueid?) --General Prop List--> 

<!ELEMENT password  -o (int) 

--Password--> 

<!ELEMENT painttyp  -o (int) 

--PaintType--> 

<!ELEMENT uniqueid  -o (glbname) 

--UniqueID--> 

<!ELEMENT t1colprp  -o (bluevals & othrblue? & famblue? & famoblue? & 

bluescal? & blueshft? & bluefuzz? & stemwdth?) 

--Typographic color props--> 

<!ELEMENT (bluevals | famblue) -o ((int, int) *) 

--BlueValues, 

 FamilyBlues, 

Maximum of 7--> 

<!ELEMENT (othrblue | famoblue) -o ((int, int) *) 

--OtherBlues, 

FamilyOtherBlues, 

Maximum of 5--> 

<!ELEMENT bluescal -o (relr) 

--BlueScale--> 

<!ELEMENT blueshft -o (int) 

--BlueShift--> 

<!ELEMENT bluefuzz -o (int) 

--BlueFuzz--> 

<!ELEMENT stemwdth -o (stdhw? & stdvw? & stemsnph? & stemsnpv? & 

forcebld? & langgrp?) 

--Stem Width Properties--> 

<!ELEMENT (stdhw | stdvw) -o (ratl) -- Standard Horizontal/Vertical Widths --> 

<!ELEMENT (stemsnph | stemsnpv) -o (ratl*) 

  Horizontal/Vertical Stem Snap --> 

<!ELEMENT forcebld -o (bool) 

-- ForceBold --> 

<!ELEMENT langgrp 

-o (card) 

--LanguageGroup--> 

<!ELEMENT t1gpprp 

- o (glncrpt? & leniv? & accenlst? & subrs? & 

glplists?) 

--GlyphProc Properties--> 

<!ELEMENT glncrpt-o (bool) 

--glyphencrypt Property--> 

<!ELEMENT leniv-o (card) 

--lenIV--> 

<!ELEMENT accenlst -o (accentpr*) 

AccentEncoding--> 

<!ELEMENT accentpr -o (accindx, glyphid) 

--AccentComponentIndex/GlyphID--> 

<!ELEMENT accindx 

-o (int) 

--Accent Component Index--> 

38 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

<!ELEMENT subrs 

-o (glyphprc+) 

--Subroutines--> 

<!ELEMENT glplist 

-o (glprocpr*) 

--Glyph Procedures List--> 

<!ELEMENT glprocpr -o (glyphid, glyphprc) 

--GlyphID/Glyph Procedure Pair--> 

<!ELEMENT glyphid 

-o (glbname) 

--GlyphID, see ISO/IEC 9541-1 : 1991--> 

<!ELEMENT glyphprc -o (#PCDATA) 

--Glyph Procedure--> 

<!ELEMENT glbname o o (prefix?, strucnm) + 

--Global Name 

see global name note at the end of this clause--> 

備考 glbname要素及びnametbl要素は,フォント資源又はフォント参照の本体内で,(一つのObject

−Name−Componentと同じくらい)短い構造化名を使用して,効率的な符号化を実現している。

nametbl要素は,構造化名の値に指標をつけたリストであり,(構造化名の定義については,JIS 

X 4162附属書Bを参照のこと。)この指標のついたglbname要素は,対応する構造化名の値を

補って解釈される。glbname要素に指標がない場合,指定のstrucnmの値がそのまま構造化名と

なる。namtbl要素を定めるときには,指定済みの構造化名を確かめるための検証を実行できな

いので,十分注意しなければならない。 

2.9.2 

グリフ手続きの交換様式 

2.9.2.1 

グリフ手続き数値表現32から255までの値をもつグリフ手続きオクテットは,整数を表す。こ

の整数値は,四つの範囲において決まる。 

(1) 32から246までの間の値 (v) をもつグリフ手続きオクテットは, (v−139) の整数を表す。したがっ

て,−107から107までの整数値は,単一オクテットで表す。 

(2) 247から250までの値 (v) をもつグリフ手続きオクテットは,後続のオクテット (w) を用いて,次の

式の整数を表す。 

[(v−247)×256]+w+108 

したがって,108から1131までの整数値は,2オクテットで表す。 

(3) 251から254までの値 (υ) をもつグリフ手続きオクテットは,後続のオクテット (w) を用いて,次の

式の整数を表す。 

−[(v−251)×256]−w−108 

したがって,−1131から−108までの整数値は,2オクテットで表す。 

(4) グリフ手続きオクテットが値255 (15/15) をもつとき,後続の4オクテットは,最上位オクテットが最

初にくる32ビットの2の補数の符号付き整数の要素であると解釈する。したがって,いかなる32ビ

ット符号付き整数も,この方法(値255のオクテット+後続4オクテット)で5オクテットで表せる。 

2.9.2.2 

グリフ演算子交換表現 グリフ演算子は,1オクテット又は2オクテットで表す。単一オクテッ

トの演算子は,0 (00/00) から11 (00/11) まで,又は13 (00/13) から31 (01/15) までの値をもつ1オクテッ

トで表す。可能なすべての演算子値を規定しているわけではない。省いた値は,この規格が将来使うため

に確保する。演算子のオクテット値が12 (00/12) であれば,後続のオクテットの値が演算子を示す。 

備考 このエスケープ機構によって,32個以上の演算子を表せる。2オクテット演算子は,1オクテ

ット演算子ほどしばしば使うものではない。この技術は,グリフ手続きの長さを最小化にする

のに役立つ。 

2.9.2.3 

グリフ手続き暗号化 グリフ手続きは,所有権情報付きのフォント輪郭線情報が不用意に調べら

れ,違法に複製されるのを防ぐために暗号化する。JIS X 4163の目的は,フォントの交換を許すことであ

るので,ここに示す以外の暗号化方式又は暗号化キーを規定する必要はない。 

39 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

グリフ手続き暗号化は,次の三つの技術の組合せとする。 

(1) 疑似乱数発生器が,暗号文を作るために平文と組み合わされるキーの列を発生する。 

(2) 暗号文フィードバックを用いてキー生成を行う。すなわち,暗号文の各オクテットから,後続のキー

を作る。 

(3) 準乱数のオクテット列を各平文列の始めに付加して,同じ平文の暗号化のたびに,異なる暗号文を生

成する。 

次に示す暗号化及び復号化のためのアルゴリズムは,ほぼ同じであるが,暗号文のオクテットを常に後

続のキーの生成に用いるという点でわずかに異なる。暗号化及び非暗号化には,二つの別の手続きを用い

なければならない。 

暗号文のオクテット列を作るために,平文のオクテット列の暗号化を次のとおりに行う, 

(1) 平文のオクテット列の始めに置く付加的な平文オクテットとして,n個の乱数オクテットを生成する。 

(2) 一つの符号なし16ビット整数変数Rを,暗号化キーに初期化する。 

(3) 新しく付加した乱数オクテットで始まる平文の各オクテットPに対して,次の過程を実行する。 

(a) 一時的変数TにRの上位8ビットを代入する。 

(b) TとPとの排他的論理和 (XOR) をとり,暗号文オクテットCを求める。 

(c) 式 ((C+R) *c1+c2)mod 65536によってRの次の値を計算する。ここで,c1は52845(十進数),c2

は22719(十進数)とする。 

暗号化キーRの初期値は4330とする。 

この暗号化の過程は,次のC言語プログラムによって実行できる。ここで,rを暗号化キーで初期化し

ておくこと。 

unsigned short int r ; 

unsigned short int c1=52845 ; 

unsigned short int c2=22719 ; 

unsigned char Encrypt (plain) unsigned char plain ; 

{unsigned char cipher ; 

cipher=(plain ^ (r>>8)) ; 

r= (cipher+r) * c1+c2 ; 

return cipher ; 

備考 暗号文のオクテット列から元の平文のオクテット列を作るアルゴリズムを次に示す。 

(1) 符号なし16ビット整数変数Rを,暗号化キー(暗号化に使うのと同じキー)に初期化する。 

(2) 暗号文の各オクテットCに対して,次の過程を実行する。 

(a) 一時的変数TにRの上位8ビットを代入する。 

(b) TとCとの排他的論理和をとり,平文オクテットPを求める。 

(c) 式 ((C+R) *c1+c2)mod 65536によってRの次の値を計算する。ここで,c1及びc2は,暗号化に使

ったものと同じ定数とする。 

(3) 暗号化の際に加えたランダムなオクテットである平文の最初のnオクテットを捨てる。残りの平文オ

クテットが,元の列となる。 

非暗号化の過程は,次のC言語プログラムによって実行できる。ここで,rを暗号化に用いたキーで初

期化しておくこと。 

40 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

unsigned short int r ; 

unsigned short int c1=52845 ; 

unsigned short int c2=22719 ; 

unsigned char Decrypt (cipher) unsigned char cipher ; 

{unsigned char plain ; 

plain=(cipher ^(r>>8)) ; 

r =(cipher+r) * c1+c2 ; 

return plain ; 

background image

41 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

附属書A (規格) 

無指定アクセント要素表 

“識別子”の欄は,ISO/IEC 10036登録権実体が割り当てた,登録済み識別子を列記する。 

指標の欄及び“識別子”の欄は,ACCENTENCODING属性の整数/構造化名対のために使う値を十進表

記で示す。名前の欄は参考として,グリフ手続きインタプリタの既存の実装に使われている名前を列記す

る。“識別子”が−1の指標で規定するエントリは,その指標に対してグリフを割り当てないことを示す。 

備考 “識別子”は,グリフ構造化名とし,ISO/IEC 10036に従って登録する。表中の“識別子”は,

正規形 “ISO/IEC 10036/RA//Glyphs::nnnnnn” をもつ構造化名の最後のオブジェクト名要素 

(nnnnnn) とする。 

指標 
 

“識別子” 
 

名前 
 

−1 

− 

−1 

− 

−1 

− 

−1 

− 

−1 

− 

−1 

− 

−1 

− 

−1 

− 

−1 

− 

−1 

− 

10 

−1 

− 

11 

−1 

− 

12 

−1 

− 

13 

−1 

− 

14 

−1 

− 

15 

−1 

− 

16 

−1 

− 

17 

−1 

− 

18 

−1 

− 

19 

−1 

− 

20 

−1 

− 

21 

−1 

− 

22 

−1 

− 

23 

−1 

− 

24 

−1 

− 

25 

−1 

− 

26 

−1 

− 

27 

−1 

− 

28 

−1 

− 

29 

−1 

− 

30 

−1 

− 

31 

−1 

− 

32 

32 

space 

33 

33 

exclam 

background image

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

指標 
 

“識別子” 
 

名前 
 

34 

34 

quotedbl 

35 

35 

numbersign 

36 

164 

dollar 

37 

37 

percent 

38 

38 

ampersand 

39 

39 

quoteright 

40 

40 

parenleft 

41 

41 

parenright 

42 

42 

asterisk 

43 

43 

plus 

44 

44 

comma 

45 

45 

hyphen 

46 

46 

period 

47 

47 

slash 

48 

48 

zero 

49 

49 

one 

50 

50 

two 

51 

51 

three 

52 

52 

four 

53 

53 

five 

54 

54 

six 

55 

55 

seven 

56 

56 

eight 

57 

57 

nine 

58 

58 

colon 

59 

59 

semicolon 

60 

60 

less 

61 

61 

equal 

62 

62 

greater 

63 

63 

question 

64 

64 

at 

65 

65 

66 

66 

67 

67 

68 

68 

69 

69 

70 

70 

71 

71 

72 

72 

73 

73 

74 

74 

75 

75 

76 

76 

77 

77 

78 

78 

79 

79 

80 

80 

81 

81 

指標 
 

“識別子” 
 

名前 
 

82 

82 

83 

83 

84 

84 

85 

85 

86 

86 

87 

87 

88 

88 

89 

89 

90 

90 

91 

91 

bracketleft 

92 

92 

backslash 

93 

93 

bracketright 

94 

94 

asciicircum 

95 

95 

underscore 

96 

96 

quoteleft 

97 

97 

98 

98 

99 

99 

100 

100 

101 

101 

102 

102 

103 

103 

104 

104 

105 

105 

106 

106 

107 

107 

108 

108 

109 

109 

110 

110 

111 

111 

112 

112 

113 

113 

114 

114 

115 

115 

116 

116 

117 

117 

118 

118 

119 

119 

120 

120 

121 

121 

122 

122 

123 

123 

braceleft 

124 

124 

bar 

125 

125 

braceright 

126 

126 

asciitilde 

127 

−1 

− 

128 

−1 

− 

129 

−1 

− 

background image

43 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

指標 
 

“識別子” 
 

名前 
 

130 

−1 

− 

131 

−1 

− 

132 

−1 

− 

133 

−1 

− 

134 

−1 

− 

135 

−1 

− 

136 

−1 

− 

137 

−1 

− 

138 

−1 

− 

139 

−1 

− 

140 

−1 

− 

141 

−1 

− 

142 

−1 

− 

143 

−1 

− 

144 

−1 

− 

145 

−1 

− 

146 

−1 

− 

147 

−1 

− 

148 

−1 

− 

149 

−1 

− 

150 

−1 

− 

151 

−1 

− 

152 

−1 

− 

153 

−1 

− 

154 

−1 

− 

155 

−1 

− 

156 

−1 

− 

157 

−1 

− 

158 

−1 

− 

159 

−1 

− 

160 

−1 

− 

161 

161 

exclamdown 

162 

162 

cent 

163 

163 

sterling 

164 

64943 

fraction 

165 

165 

yen 

166 

61346 

florin 

167 

167 

section 

168 

36 

currency 

169 

169 

quotesingle 

170 

170 

quotedblleft 

171 

171 

guillemotleft 

172 

61226 

guilsinglleft 

173 

61227 

guilsinglright 

174 

61472 

fi 

175 

61473 

fl 

176 

−1 

− 

177 

61220 

endash 

指標 
 

“識別子” 
 

名前 
 

178 

61232 

dagger 

179 

61233 

daggerdbl 

180 

183 

periodcentered 

181 

−1 

− 

182 

182 

paragraph 

183 

61286 

bullet 

184 

8973 

quotesinglbase 

185 

61224 

quotedblbase 

186 

186 

quotedblright 

187 

187 

guillemotright 

188 

9284 

ellipsis 

189 

61249 

perthousand 

190 

−1 

− 

191 

191 

questiondown 

192 

−1 

− 

193 

193 

grave 

194 

194 

acute 

195 

195 

circumflex 

196 

196 

tilde 

197 

197 

macron 

198 

198 

breve 

199 

199 

dotaccent 

200 

200 

dieresis 

201 

−1 

− 

202 

202 

ring 

203 

203 

cedilla 

204 

−1 

− 

205 

205 

hungarumlaut 

206 

206 

ogonek 

207 

207 

caron 

208 

61221 

emdash 

209 

−1 

− 

210 

−1 

− 

211 

−1 

− 

212 

−1 

− 

213 

−1 

− 

214 

−1 

− 

215 

−1 

− 

216 

−1 

− 

217 

−1 

− 

218 

−1 

− 

219 

−1 

− 

220 

−1 

− 

221 

−1 

− 

222 

−1 

− 

223 

−1 

− 

224 

−1 

− 

225 

225 

AE 

background image

44 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

指標 
 

“識別子” 
 

名前 
 

226 

−1 

− 

227 

227 

ordfeminine 

228 

−1 

− 

229 

−1 

− 

230 

−1 

− 

231 

−1 

− 

232 

232 

Lslash 

233 

233 

Oslash 

234 

234 

OE 

235 

235 

ordmasculine 

236 

−1 

− 

237 

−1 

− 

238 

−1 

− 

239 

−1 

− 

240 

−1 

− 

指標 
 

“識別子” 
 

名前 
 

241 

241 

ae 

242 

−1 

− 

243 

−1 

− 

244 

−1 

− 

245 

245 

dotlessi 

246 

−1 

− 

247 

−1 

− 

248 

248 

lslash 

249 

249 

oslash 

250 

250 

oe 

251 

251 

germandbls 

252 

−1 

− 

253 

−1 

− 

254 

−1 

− 

255 

−1 

− 

45 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

附属書B (参考) 

B.1 グリフ手続きインタプリタの既存の実装との互換性 

既存の実装との互換性 この規格の2.とほとんど互換性をもつグリフ手続きインタプリタについては,約

100万の既存の実装が存在する。この規格に適合したフォントプログラムが,グリフ手続きインタプリタ

のこれらの既存の実装と下位方向互換性を保つためには,次の指針に従うことが望ましい。 

B.1.1 GLYPHENCRYPT グリフ手続きインタプリタの既存の実装との互換性を保つために,

GLYPHENCRYPT属性の無指定値を真とし,暗号化キーの値を4330とする。この暗号化は,不用意で違法

な複製を防ぐことだけに役立つ。フォント情報交換規格の目的は,フォントの交換であるので,他の暗号

化キーの値又は暗号化形式は規定しない。 

B.1.2 LENIV PostScriptTMインタプリタの23.0版(Apple®LaserWriter®のオリジナルに使っている)との

互換性を保つために,LENIV属性の値は4に設定する。この互換性が不要であれば,グリフ手続きの大き

さを最小化するために,その値を0又は1にできる。 

参考 PostScriptTMは,実際に入手可能な製品の一例として,この規格の利用者の利便を図るために示

したもので,ISO/IEC製品として保証をそれに与えるものではない。 

B.1.3 仮想ステム用のヒント域 グリフの上部及び底部の先端を,フォントレベルのBLUEVALUES属性

及びOTHERBLUES属性の値の位置にそろえるとき,これらのステムヒント用の値が取り得る値を制限し

て,インタプリタの既存の実装を正しく動作させる,仮想ステム用のヒント域は,垂直方向の高さをグリ

フ座標系単位で20又は21に生成する。これらのヒント域は,そのグリフのy座標域の内側のy座標の範

囲を記述する。 

B.1.4. ROUNDSTEMUP T1フォントプログラムのインタプリタの既存の実装との互換性を保つため,言

語グループ1を指定するフォントプログラムは,T1GLYPH属性リスト(2.6.3参照)に必ずROUNDSTEMUP

属性ももち,その論理値を偽とする。 

T1COLOR属性リスト(2.6.2参照)中のLANGUAGEGROUP属性によって,ROUNDSTEMUP属性が置

き換わり,言語グループ1を指定しないかぎり,フォントプログラム中でROUNDSTEMUP名を参照しな

い。 

ROUNDSTEMUP属性::=ROUNDSTEMUP属性名,ROUNDSTEMUP属性値 

ROUNDSTEMUP属性名::=構造化名ISO/IEC 9541-3//ROUNDSTEMUP 

ROUNDSTEMUP属性値:: FALSE 

B.1.5 MINFEATURE グリフ手続きインタプリタの既存の実装との下位方向互換性を保つには,

T1GLYPPH属性リストにMINFEATURE属性を含める。 

MINFEATURE属性::=MINFEATURE属性名,MINFEATURE属性値 

MINFEATURE属性名::=構造化名ISO/IEC 9541-3//MINFEATURE 

MINFEATURE属性値リスト::=16, 16 

B.1.6 PASSWORD 既存の実装との互換性を保つには,PASSWORD属性をもち,その値を5839とする。 

B.1.7 アクセント要素表 アクセント要素表の機能は,グリフ手続きインタプリタの既存の実装とは下位

方向互換性が無い。既存の実装と互換性を保つには,アクセント要素表をもってはならず,従って附属書

Aの無指定アクセント要素表を使う。フォントが独自のアクセント要素表を指定し,その表が無指定アク

セント要素表のグリフを含むならば,附属書Aの名前欄が指定する名前を必ず用いなければならない。 

46 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

B.1.8 交換様式 GLYPHPROPS属性中のMINFEATURE属性及びROUNDSTEMUP属性についてのASN.1

定義及びSGML定義をB.1.8.1及びB.1.8.2に示す。 

B.1.8.1 ASN.1交換様式 次の二つの属性をGlyphProps属性とし,T1−Glyph−Property−List(2.9.1.1参照)

に含める。 

minfeature 

[5] IMPLICIT MinFeature-List 

OPTIONAL, 

roundstemup 

[6] IMPLICIT RndStmUp 

OPTIONAL, 

MinFeature−List::=SEQUENCE OF { 

IMPLICIT INTEGER (16), 

IMPLICIT INTEGER (16)} 

RndStmUp::=IMPLICIT BOOLEAN 

B.1.8.2 SGML交換様式 次のSGML定義は,2.9.1.2のtlgpprpのELEMENT宣言を置き換える。 

<!ELEMENT t1gpprp −o (glncrpt? & leniv? & accenlst? & subrs? & 

glplists? & minfetur & rndstmup) 

--GlyphProc Properties−−> 

<!ELEMENT glncrpt −o (bool) 

--glyphencrypt Property−−> 

<!ELEMENT leniv 

−o (card) 

--lenIV−−> 

<!ELEMENT accenlst −o (accentpr*) 

--AccentEncoding−−> 

<!ELEMENT accentpr −o (accindx, glyphid) 

--AccentComponentIndex/GlyphID−−> 

<!ELEMENT accindx −o (int) 

--Accent Component Index−−> 

<!ELEMENT subrs 

−o (glyphprc+) 

--Subroutines−−> 

<!ELEMENT glplist −o (glprocpr*) 

--Glyph Procedures List−−> 

<!ELEMENT glprocpr −o (glyphid, glyphprc) − --GlyphID/Glyph Procedure Pair−−> 

<!ELEMENT glyphid −o (glbname) 

--GlyphID, see ISO/IEC 9541-1 : 1991−−> 

<!ELEMENT glyphprc −o (#PCDATA)   

--Glyph Procedure−−> 

<!ELEMENT glbname o o (prefix?, strucnm) + 

--Global Name−−> 

<!ELEMENT minfetur −o (int, int)  

--MINFEATURE  "16, 16" −−> 

<!ELEMENT rndstmup −o (bool) 

--ROUNDSTEMUP "false"−−> 

47 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

附属書C (参考) 

複合グリフ 

C.1 複合グリフ 出版文書処理のモデル/工程全体の幾つかの場面で,複合グリフを組版することがあり

得る。しかし,例えば文書組版に際して複合グリフを生成する場合とは異なり,T1グリフ形状表現は,グ

リフ演算子の列を用いた形状記述においてだけ,複合グリフを作成することが可能である。 

C.1.1 siag演算子を用いた複合グリフの生成 siag演算子を用いて,二つの要素グリフを結合し一つの複合

グリフを生成できる。図C.1に “0” (グリフ指標79)と鋭アクセント(グリフ指標194)との複合結果の

アクセント付きグリフを示す。 

この “0” (グリフ指標79)を構成する手続きを,次のとおりとする。 

46 795 xrpe 

(ヒント演算子は省略) 

35 −16 rmoveto 

(パス構成演算子は省略) 

closepath 

endglyph 

鋭アクセント(グリフ指標194)のための手続きを,次のとおりとする。 

123 360 xrpe 

(ヒント演算子は省略) 

145 577 rmoveto 

(パス構成演算子は省略) 

closepath 

endglyph 

このとき,複合グリフを構成する手続きは次のとおりとなる(分かりやすくするため,ヒント演算子は

省略した)。 

46 795 xrpe 

99 338 172 79 194 siag 

endglyph 

xrpe演算子及びそのオペランドは必ず親グリフのそれと等しくなければならない。図C.1にsiag演算子

を用いた複合グリフの構成を示す。 

background image

48 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

図C.1−siag演算子を用いた複合グリフの構成(要素グリフ及び最終的な複合グリフを示す。) 

C.1.2 サブルーチンを用いた複合グリフの生成 複合グリフの生成には,サブルーチンの使用が最も一般

的で柔軟な方法である。例えば,次の手続きは片仮名のグリフ“ガ”の複合グリフを構成する(選択可能

のヒント演算子は示していない)。 

30 800 xrpe 

170 620 rmoveto 

7 callsubr 

540 80 rmoveto 

8 callsubr 

endglyph 

図C.2に各サブルーチンが構成するサブパス及び結果のグリフを示す。 

図C.2−サブルーチンを用いた複合グリフの構成 

background image

49 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

付属書D (参考) 

交換例 

グリフ手続き中の演算子値の表現を分かりやすく示すために,ブロック体の “C” (図D.1に図示)を例

にとる。この字形は,グリフ座標系において700単位×700単位の寸法をもつ。この字形の送りを800単

位(水平)として,送りの幅の中心に置くために,参照点の値を50単位とする。各ステムの幅は100単位

とする。この例は,ステムに関してグリフレベルのヒント域を宣言する方法を示す。 

このグリフ手続き定義は,グリフ座標系の整数座標による表現で始まる。 

50 800 xrpe 0 100 vstem 0 100 hstem 600 100 hstem 

0 0 rmoveto 700 0 rlineto 0 100 rlineto−600 0 rlineto 

0 500 rlineto 600 0 rlineto 0 100 rlineto−700 0 rlineto 

closepath 

備考 vstem演算子及びhstem演算子のオペランドの値は,参照点からの相対値とする。 

図D.1 符号化の例に用いる単純なグリフ 

xrpe演算子は,CurrentPoint状態変数を設定するだけで,グリフのパス上に実際にその点を置くものでは

ないので,最初のrmoveto演算子(又はそれに等価なもの)が必要となる。この例では,パス状の最初の

点は参照点と同じであり,したがってrmoveto演算子の二つのオペランドの値を0とする。別のグリフ手

続きでは,最初のmoveto位置は,必ずしも参照点と同じである必要はない。 

多くの水平及び垂直のrlineto命令があることに注意し,それらをhlineto及びvlinetoに置き換えてデー

タ量を効率化する。そして,endglyph演算子でグリフを完成する。 

50 800 xrpe 0 100 vstem 0 100 hstem 600 100 hstem 

0 hmoveto 700 hlineto 100 vlineto−600 hlineto 

500 vlineto 600 hlineto 100 vlineto−700 hlineto 

closepath endglyph 

グリフ手続き数値表現に従って整数値を表現する。 

189 249 180 xrpe 139 239 vstem 139 239 hstem 248 236 239 hstem 

139 hmoveto 249 80 hlineto 239 vlineto 252 236 hlineto 

248 136 vlineto 248 236 hlineto 239 vlineto 253 80 hlineto 

closepath endglyph 

50 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

演算子を,グリフ手続き演算子表現に従って変換する。 

189 249 180 13 139 239 3 139 239 1 248 236 239 1 

139 22 249 80 6 239 7 252 236 6 

248 136 7 248 236 6 239 7 253 80 6 

9 14 

この例を図示するために,この数値列をオクテット表記法で書き換えて次に示す。 

11/13 15/09 11/04 00/13 08/11 14/15 00/03 08/11 14/15 00/01 15/08 

14/12 14/15 00/01 08/11 01/06 15/09 05/00 00/06 14/15 00/07 15/12 

14/12 00/06 15/08 08/08 00/07 15/08 14/12 00/06 14/15 00/07 15/13 

05/00 00/06 00/09 00/14 

GLYPHENCRYPT属性の値が真である場合,このオクテット列を必ず暗号化しなければならない。グリ

フ手続き暗号化では,変数Rの初期値は,4330(十進数)とする。乱数オクテットの数nをフォント中で

指定する。指定のない場合,その値を4とする。しかし,LENIV属性名がT1GLYPH属性リスト中に存在

する場合,nはLENIV属性のもつ値とする。 

グリフ手続き暗号化は,最初の暗号文オクテットの値に制限を設けない。 

上記の例を暗号化するには,次の手続きを用いる。上記の37オクテットが,グリフ手続きの平文を構成

する。四つの乱数平文オクテットを生成して,この平文グリフ手続きの先頭に追加する。この例では(説

明を容易にするため)四つのゼロを用いると,次の平文となる。 

00/00 00/00 00/00 00/00 11/13 15/09 11/04 00/13 08/11 14/15 00/03 

08/11 14/15 00/01 15/08 14/12 14/15 00/01 08/11 01/06 15/09 05/00 

00/05 14/15 00/07 15/12 14/12 00/06 15/08 08/08 00/07 15/08 14/12 

00/06 14/15 00/07 15/13 05/00 00/06 00/09 00/14 

グリフ手続き暗号化を施して,オクテット列として表される次の41オクテットの暗号文を作成する。 

01/00 11/15 03/01 07/00 04/15 10/11 05/11 01/15 00/03 15/09 11/06 

08/11 01/15 03/09 10/06 06/05 02/01 11/01 08/04 01/15 01/04 08/01 

06/09 07/15 08/14 01/02 11/07 15/07 13/13 13/06 14/03 13/07 02/04 

08/13 09/06 05/11 01/12 13/04 05/14 02/01 01/04 

最後に,この暗号化したグリフ手続きを,バイナリ形式で表現する。 

51 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

電子文書処理システム標準化調査研究委員会 構成表 

氏名 

所属 

(委員会) 

斎 藤 信 男 

慶応義塾大学 

安 達   淳 

沖電気工業株式会社 

池 田 克 夫 

京都大学 

大 泊   勝 

株式会社NEC総研 

小笠原   治 

社団法人日本印刷技術協会 

奥 村   康 

株式会社日経BP社 

小野沢 賢 三 

株式会社写研 

桐 谷 俊 雄 

社団法人日本事務機械工業会 

小 林   茂 

日本ユニシス株式会社 

小 林 龍 生 

株式会社ジャストシステム 

小 町 祐 史 

松下電送株式会社 

芝 野 耕 司 

東京国際大学 

瀬戸屋 英 雄 

通商産業省工業技術院標準部 

高 橋   亨 

株式会社日立製作所 

武 田 博 直 

株式会社セガエンタープライゼズ 

田 中 省 三 

富士通株式会社 

中 原   康 

株式会社東芝 

中 村 茂 之 

日本アイビーエム株式会社 

野 瀬 康 矩 

社団法人日本新聞協会 

深 見 拓 史 

凸版印刷株式会社 

藤 井 照 穂 

マイクロソフト株式会社 

宮 内 久 男 

株式会社岩波書店 

安 田 寿 明 

文教大学 

渡 辺 信 一 

大日本印刷株式会社 

(事務局) 

渡 辺 清 次 

財団法人日本規格協会 

52 

X 4163-1994 (ISO/IEC 9541-3 : 1994) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

日本事務機械工業会 文書記述・フォントJIS原案作成委員会 構成表 

氏名 

所属 

(委員長) 

池 田 克 夫 

京都大学 

(副委員長) 

小 町 祐 史 

SC18/WG8国内委員会(松下電送株式会社) 

三 宅 信 弘 

通商産業省機械情報産業局 

竹田原 省 二 

通商産業省工業技術院標準部 

瀬戸屋 英 雄 

通商産業省工業技術院標準部 

渡 辺 清 次 

財団法人日本規格協会 

篠 崎 徳 量 

愛知女子短期大学 

小笠原   治 

社団法人日本印刷技術協会 

宮 内 久 男 

株式会社岩波書店 

田 中 洋 一 

凸版印刷株式会社 

空 閑   明 

共同印刷株式会社 

山 田   進 

大日本スクリーン製造株式会社 

石 井   裕 

大日本印刷株式会社 

杉 安 孝 信 

NTTデータ株式会社 

小野沢 賢 三 

株式会社写研 

宮 本 義 昭 

日本ユニシス株式会社 

臼 井 清 文 

セイコーエプソン株式会社 

伊 藤   晃 

日本情報科学株式会社 

藤 田 克 彦 

株式会社リコー 

柳 沢 一 大 

日本電気株式会社 

高 橋   亨 

株式会社日立製作所 

安 達   淳 

沖電気工業株式会社 

(事務局) 

桐 谷 俊 雄 

社団法人日本事務機械工業会 

プロジェクトリーダ会議 構成表 

氏名 

所属 

(リーダー) 

小 町 祐 史 

SC18/WG8国内委員会(松下電送株式会社) 

小笠原   治 

社団法人日本印刷技術協会 

高 橋   亨 

株式会社日立製作所 

安 達   淳 

沖電気工業株式会社 

佐 野 浩 一 

通商産業省工業技術院標準部 

田 中 洋 一 

凸版印刷株式会社 

今 郷   詔 

株式会社リコー 

筧   捷 彦 

早稲田大学 

フォントプロジェクト 構成表 

氏名 

所属 

(リーダー) 

小笠原   治 

社団法人日本印刷技術協会 

小 町 祐 史 

松下電送株式会社 

武 居 則 幸 

セイコーエプソン株式会社 

石 井   裕 

大日本印刷株式会社 

竹 内 時 男 

株式会社写研 

山 本 太 郎 

アドビシステムズジャパン