フォント演算子及び文字テキスト演算子

フォントへのアクセス及び操作の演算子

からまでで定義する演算子は、 指標付きフォントの獲得、変更及び構成のために用いる。

DefineFont

DefineFont operator takes one operand ]]> DefineFont演算子は、次に示す1個のオペランドをとる。

  • FD: DictionaryReference> ]]> <FD: 辞書参照>

    そして、次に示す1個の結果を返す。

    indexedfont: DictionaryReference> ]]> <indexedfont: 辞書参照型>

    FD shall be a reference to a valid Indexed Font SpecificationDictionary. ]]> FDは、有効な指標付きフォント仕様辞書への参照でなければならない。 indexedfont is a reference to a newIndexed Font Dictionary, corresponding to FD. ]]> 返される結果indexedfontは、FDに対応する新しい指標 付きフォント辞書への参照とする。

    FindFont

    FindFont operator takes a single operand ]]> FindFont演算子は、次に示す1個のオペランドをとる。

  • ID: Name> ]]> <ID: 名前>

    ID is the value of an INTERNAL RESOURCE IDENTIFIER which is bound to a IndexedFontin the Context of Interpretation. ]]> ここで、IDは、解釈環境中の指標付きフォントに結び付け られた内部資源識別子構造要素の値とする。 この演算子は、次に示す1個の結果を返す。

  • indexedfont: DictionaryReference> ]]> <indexedfont: 辞書参照>

    indexedfont is a reference to the Indexed FontDictionary to which ID is bound. ]]> ここで、indexedfontは、IDが結び付けられて いる指標付きフォント辞書への参照とする。

    ID is the value of a valid INTERNAL RESOURCE IDENTIFIERin the current context of interpretation and is bound to a IndexedFont, theeffect of interpreting FindFont is the same as the effectof interpreting the FindResource operator with a IndexedFontoperand;. ]]> ここで、IDが現解釈環境における有効な 内部資源識別子構造要素の値であり、 IndexedFontに結び付けられている場合、 FindFontを解釈した結果は、 IndexedFontをオペランドとして FindResource演算子を解釈した結果に等しい。 ID FindFont}is the same as {ID /IndexedFontFindResource} ]]> つまり、{ID FindFont}の結果は、 { ID /IndexedFont FindResource} の結果に等しい。 フォント参照フォント仕様構造要素中の属性に もっとも良く適合する指標付きフォント辞書を選択するアルゴリズムは、 判定基準構造要素及び照合規則構造要素によって制約を受けており、 適切なものを見い出せない場合もあるが、常に一つの選択は提供される。

    satisfy a font referenceas defined in ) RaiseWarning will be invokedwith FailureToSatisfyFontReference as its operand. ]]> フォント参照が(適切な指標付きフォント資源の定義が欠けている、指標付きフォ ント資源の名前としてので 定義されているフォント参照を満足することに失敗する、のいずれかの 理由によって)満たされない場合、 FailureToSatisfyFontReferenceをオペランドとして RaiseWarningを実行する。

    GetRootFont

    GetRootFont operator takes no operands and returnsone result ]]> GetRootFont演算子は、オペランドをとらず、次に示す1個の結果を返す。

  • indexedfont: DictionaryReference> ]]> <indexedfont: 辞書参照>

    indexedfont is a reference to the Indexed FontDictionaryspecified by the current value of the CurrentFont imagingvariable (set by the most recent use of the SetFont operator). ]]> ここで、indexedfontは、作図状態変数CurrentFontの現在値( 最も最近実行したSetFont演算子によって設定された値)が指定する指標付 きフォント辞書フォント辞書への参照とする。

    GetSelectedFont

    GetSelectedFont operator takes no operands andreturns one result ]]> GetSelectedFont演算子は、オペランドをとらず、次に示す1個の結果 を返す。

  • indexedfont: DictionaryReference> ]]> <indexedfont: 辞書参照>

    indexedfont is a reference to a Indexed FontDictionary, except during character text imaging, this value shallbe the same as that returned by the GetRootFont operator. ]]> ここで、indexedfontは指標付きフォント辞書への参照とする。文字 テキストの作画の最中を除いて、この値はGetRootFont演算子によって返 される値と同じとする。 GetSelectedFont is executedby a Procedure during character text imaging (e.g., as part of a glyphprocedure) while the value of the CurrentFont imagingvariable is a Composite Font, it shall instead return a reference to the currentlyselected Base Indexed Font Specification Dictionary.(See .) ]]> しかし、作図状態変数CurrentFontの値が複合フォントである条件下での 文字テキストの作画の最中に、手続きによりGetSelectedFontが実行さ れた場合(たとえば、グリフ手続きの一部として)、GetSelectedFontは 、現在選択されている基底指標付きフォント仕様辞書への参照を返す(参照)。

    OpenFont

    OpenFont operator takes one operand ]]> OpenFontは、次に示す1個のオペランドをとる。

    indexedfont: DictionaryReference> ]]>

  • <indexedfont: 辞書参照>

    そして、次に示す1個の結果を返す。 FD: DictionaryReference> ]]>

  • <FD: 辞書参照>

    indexedfont shall be a reference to a Indexed FontDictionary. ]]> indexedfontは、指標付きフォント辞書への参照とする。 FD is a reference to a new, modifiablecopy of the Indexed Font Specification Dictionary corresponding to indexedfont. ]]> 返される結果FDは、indexedfontに対応する指標付きフォ ント仕様辞書の変更可能な複製への参照とする。

    indexedfonthas an access attribute of ExecuteOnly or NoAccess,interpreting OpenFont shall cause RaiseErrorto be invoked with InvalidAccess as its operand. ]]> indexedfontによって参照される指標付きフォント仕様辞書 が、アクセス属性ExecuteOnly又は NoAccessをもつ場合、 OpenFontを解釈すると、 InvalidAccessをオペランドとしてRaiseError を実行する結果となる。

    PutWMode

    PutWMode operator takes two operands ]]> PutWMode演算子は、次に示す2個のオペランドをとる。

  • wm: Cardinal> ]]> <wm: 非負整数>
  • indexedfont1: DictionaryReference> ]]> <indexedfont1: 辞書参照>

    wm is the number of a writing mode, and indexedfont1is a reference to a Indexed Font Dictionary. ]]> ここで、wmは表記方向を示す数とし、 indexedfont1は指標付きフォント辞書への参照とする。 この演算子は、次に示す1個の結果を返す。

  • indexedfont2: DictionaryReference> ]]> <indexedfont2: 辞書参照>

    indexedfont2 is a reference to the new IndexedFont Dictionary which would be the result of ]]> ここで、indexedfont2は、次に示す処理の結果として得られる新た な指標付きフォント仕様辞書への参照とする。 indexedfont1 OpenFont Dup<WMode: Cardinal> wm Put DefineFont} ]]>

  • {indexedfont1 OpenFont Dup <WMode: 非負整数> wm Put DefineFont}

    ScaleFont

    ScaleFont operator takes two operands ]]> ScaleFont演算子は、次に示す2個のオペランドをとる。

  • <sc: Number> ]]> <sc: 数>
  • <indexedfont1: DictionaryReference> ]]> <indexedfont1: 辞書参照>

    indexedfont1 is a reference to a Indexed FontDictionary, and returns a single result ]]> ここで、indexedfont1は、指標付きフォント辞書への参照とする。こ の演算子は、次に示す1個の結果を返す。

  • indexedfont2: DictionaryReference> ]]> <indexedfont2: 辞書参照>

    indexedfont2 is a reference to the new IndexedFont Dictionary which would be the result of ]]> ここで、indexedfont2は、次に示す処理の結果として得られる新たな 指標付きフォント仕様辞書への参照とする。

  • {indexedfont1 [sc 0 0 sc 0 0 ] TransformFont}.

    TransformFont

    TransformFont operator takes two operands ]]> TransformFont演算子は、次に示す2個のオペランドをとる。

  • T2: Transformation> ]]> <T2: 座標変換>
  • indexedfont1: DictionaryReference> ]]> <indexedfont1: 辞書参照>

    indexedfont1 is a reference to a Indexed FontDictionary, and returns a single result ]]> ここで、indexedfont1は、指標付きフォント辞書への参照とする。こ の演算子は、次に示す1個の結果を返す。

  • indexedfont2: DictionaryReference> ]]> <indexedfont2: 辞書参照>

    indexedfont2 is a reference to the new IndexedFont Dictionary. ]]> ここで、indexedfont2は、新たな指標付きフォント仕様辞書への参照 とする。

    indexedfont1 references a Base Font, then indexedfont2references a new Base Font which would be the result of

  • {indexedfont1 OpenFont Dup Dup
  • /FontMatrixGet
  • /FontMatrix< hp2>Exch
  • T2 ConcatT Put DefineFont} ]]> indexedfont1が基底フォントを参照している場合、indexedfont2は、
  • {indexedfont1 OpenFont Dup Dup
  • /FontMatrix Get
  • /FontMatrix Exch
  • T2 ConcatT Put DefineFont} の結果として得られる新たな基底フォントへの参照となる。

    indexedfont1 references a Composite Font, thenindexedfont2references a new Composite Font which, when used for imaging, shall image glyphsas though the above transformation had been applied to each descendant basefont. ]]> indexedfont1が複合フォントを参照している場合、 indexedfont2は、次に示す新たな複合フォントへの参照と なる。 この複合フォントは、作画に用いられる場合、 前記の座標変換行列がそれぞれの下位フォントに適用された場合と同様に グリフを作画する。 T2 but is incrementally modified by concatenationwith T2. ]]> どちらの場合も、関連付けられた座標変換行列の値はT2によって置き 換えられるのではなく、T2との結合によって漸進的に変更される。

    作図状態操作演算子

    CurrentFontGraphics State Variable and the CurrentPoint GraphicsState Variable. ]]> からまでの演算子は、 CurrentFont作図状態変数及び CurrentPoint作図状態変数の設定及びアクセスのために用いられる。

    GetPosition

    GetPosition operator takes no operands and returnstwo results ]]> GetPosition演算子はオペランドをとらず、次に示す2個の結果を返す。

  • <y: Number> ]]> <y: 数>
  • <x: Number> ]]> <x: 数>

    x y SetPosition}would set the value of the Graphics State Variable CurrentPositionto its current value. ]]> ここで、{x y SetPosition}は、 作図状態変数CurrentPositionの値をその現在の値に設定する。

    SetFont

    SetFont operator takes a single operand ]]> SetFont演算子は、次に示す1個のオペランドをとる。

  • indexedfont: DictionaryReference> ]]> <indexedfont: 辞書参照>

    indexedfont is a reference to a Indexed FontDictionary,and returns no results. ]]> ここで、indexedfontは、指標付きフォント辞書への参照とする。こ の演算子は、結果を返さない。 CurrentFontto indexedfont. ]]> この演算子は、indexedfontを 作図状態変数CurrentFontの値として設定する。

    SetPosition

    SetPosition operator takes two operands ]]> SetPosition演算子は、次に示す2個のオペランドをとる。

  • y: Number> ]]> <y: 数>
  • x: Number> ]]> <x: 数>

    この演算子は、結果を返さない。 CurrentPositionto the point whose coordinates are (x,y) in the current User Coordinate System. ]]> この演算子は、現在のユーザ 座標系において座標が(x, y)である点を、 作図状態変数CurrentPositionの値として設定する。 ) with a startpoint and end point of (x, y) in UCS coordinates. ]]> これは、ユーザ座標系で座標が(x, y)である点を始点及 び終点とする新しいパスセグメントを開始する(参照)。 CurrentPath Graphics State Variable consistedsolely of a single point path element; that path segment is deleted and replacedby the new path segment created by the execution of the SetPositionoperator. ]]> CurrentPath作図状態変数の末尾のパスセグメントが単一の点である パス要素からなる場合、そのパスセグメントは削除され、SetPosition演 算子の実行によって生成された新しいパスセグメントによって置換される。

    SetPositionRelative

    SetPositionRelative operator takes two operands ]]> SetPositionRelative演算子は、次に示す2個のオペランドをとる。

  • y: Number> ]]> <y: 数>
  • x: Number> ]]> <x: 数>

    この演算子は、結果を返さない。 CurrentPositionfrom the point whose coordinates are (CPx,CPy) in the current User CoordinateSystem to the point whose coordinates are (CPx+x,CPy+y). ]]> この演算子は、作図状態変数CurrentPositionの値を、 現在のユーザ座標系で座標が(CPx, CPy)である点から 座標が(CPx+x, CPy+y)である点に変更する。 ) with a startpoint and end point of (CPx+x, CPy+y)in UCS coordinates. ]]> これは、ユーザ座標系で座標が(CPx+x, CPy+y)である点 を始点及び終点とする新しいパスセグメントを開始する(参照)。 CurrentPath Graphics State Variable consisted solely of a singlepoint path element; that path segment is deleted and replaced by the new pathsegment created by the execution of the SetPositionRelativeoperator. ]]> CurrentPath作図状態変数の末尾のパスセグメントが単一の点である パス要素からなる場合は、そのパスセグメントは削除され、SetPositionRelative演算子の実行によって生成された新しいパスセグメントによって置換される。

    CurrentPositionis currently defined, RaiseError shall be invoked withNoCurrentPosition as its operand. ]]> CurrentPositionが現在定義されていない場合、NoCurrentPosit ionをオペランドとしてRaiseErrorを実行する。

    文字テキスト演算子

    からまでで定義する演算子は、文 字テキストの提示に用いる。

    ShowGlyph

    ShowGlyph imaging operator providesthe linkage between the font architecture and the imaging of charactertext in SPDL. ]]> ShowGlyph作画演算子の定義は、フォント体系とSPDLにおける文字テ キスト作画との間の結び付きを提供する。 ShowGlyph. ]]> 文字テキストを作画する他のすべての演算子は、ShowGlyphを用いて 定義される。

    ShowGlyph takes a single operand ]]> 作画演算子ShowGlyphは、次に示す1個のオペランドをとる。

  • glyphid: Identifier> ]]> <glyphid: 識別子>

    この演算子は、結果を返さない。 ShowGlyph depends on the value of the Graphics State VariableCurrentFont. ]]> ShowGlyphの解釈の結果は、作図状態変数CurrentFontの 値に依存する。 CurrentFont is a Base Font,indexedfont, then the effect of {glyphidShowGlyph} is as follows. ]]> CurrentFontの値が基底フォント、すなわちindexedfont である場合、{glyphidShowGlyph} の結果は次の とおりになる。 ShowGlyph.) ]]> (パーセント記号 ('%') で始まる行はコメントで、ShowGlyphを定義 する手続きの一部ではない。)

  • { First, save the graphics state]]> % まず、作図状態を退避する
  • SaveGraphicsState
  • Translate UCS so that origin is at CurrentPosition ]]> % UCSを、原点がCurrentPositionになるように座標変換する
  • GetPosition Translate
  • Apply FontMatrix so CurrentTransformation %maps Glyph Coordinate System to RCS ]]> % CurrentTransformationがグリフ座標系をRCSに対応付けるように
  • % FontMatrixを適用する
  • GetSelectedFont /FontMatrix Get Concat
  • Determine writing mode of font and put result on Operand Stack ]]> % フォントの表記方向を決定し、その結果をオペランドスタックに積む
  • GetRootFont /WMode Known
  • {GetRootFont /WMode Get}
  • {0}
  • IfElse
  • Do positioning point offset if using alternate writing mode; save initial point ]]> % 代替表記方向を用いている場合は、位置決め点オフセットを行ない、初期 の点を退避する
  • SaveGraphicsState
  • Dup 0 NotEqual
  • {Dup 1 Equal
  • {GetSelectedFont /Metrics2 Get}
  • {Dup GetSelectedFont /OtherMetrics Get
  • Exchange 2 Subtract Get}
  • IfElse
  • Correct metrics DictionaryReference is now on top of stack ]]> % この時点で正しい配置量辞書参照がスタックの上端にあることになる
  • Operand Stack has GlyphID WMode MetricsDictRef ]]> % オペランドスタックに GlyphID WMode MetricsDictRefがある
  • 2 Index Get
  • Dup 2 Get Negate Exchange 3 Get Negate
  • Translate
  • }
  • If
  • Image the glyph: with Indexed Font Dictionary on the Context Stack ]]> % グリフを作画する。文脈スタック上にある指標付きフォント辞書を用い、
  • and in a new Path which avoids interaction with any existingpath ]]> % 既存のどのパスとも相互作用しないように、新しいパス中で作画する。
  • GetSelectedFont PushContextStack
  • NewPath 1 Index
  • /ConstructGlyph GetValue Execute
  • PopContextStack
  • RestoreGraphicsState
  • Get escapement metrics using writing mode on top of OperandStack ]]> % 正しい配置量情報辞書を選択するために
  • to select the correct metrics Dictionary ]]> % オペランドスタックのトップにある表記方向を用いて、送り配置量を得る。
  • Dup 0 Equal
  • {Pop GetSelectedFont /Metrics Get }
  • {Dup 1 Equal
  • {Pop GetSelectedFont /Metrics Get}
  • {GetSelectedFont /OtherMetrics Get
  • Exchange 2 Subtract Get}
  • IfElse}
  • IfElse
  • The Operand Stack has: glyphid metricsDictionaryReference ]]> % オペランドスタックにはグリフidと配置量辞書参照とがある
  • The escapement values are the first two elements of the metricsvector ]]> % 送り量情報は配置量情報ベクタの最初の二つの要素である。
  • Exchange Get Dup 0 Get Exchange 1 Get
  • Move CurrentPosition to (Ex, Ey) ]]> %
  • SetPosition
  • Restore the graphic state, without nullifying escapement ]]> % 作図状態を送り量をヌルにしないで復元する。
  • RestoreGraphicsStateXCP
  • }

    Null, RaiseErrorshall be invoked with InvalidFont as its operand. ]]> 現フォントが複合フォント又はNullである場合、InvalidFontをオペランドとしてRaiseErrorを実行する。 CurrentPosition Graphics State Variable is undefined,RaiseError shall be invoked with NoCurrentPositionas its operand. ]]> 作図状態変数CurrentPositionの値が未定義の場合、NoCurre ntPositionをオペランドとしてRaiseErrorを実行する。

    ShowString

    ShowString takes a single operand ]]> 作画演算子ShowStringは、次に示す1個のオペランドをとる。

  • s: GlyphString> ]]> <s: グリフ列>

    この演算子は、結果を返さない。 sis mapped by the Glyph Mapping algorithm to the sequence of glyph specifiers( (bf1, gid1), (bf2,gid2), . . . . , (bfN, gidN)), where each bfX is a Base IndexedFont and each gidXis a glyph identifier, then the effect of ]]> sが参照するオクテット列が、グリフ対応付けアルゴリズムによって 、グリフ指定子の並び、すなわち各bfXが基底IndexedFontで あり、各gidXがグリフ識別子である (bf1, gid1), (bf2, gid2), . . . . , (bfN, gidN)) に対応するとき、

  • s ShowString} ]]> {s ShowString}

    の実行結果は、次に示す式

  • {bfX SetFont gidX ShowGlyph}

    bfX, gidX)in sequence. ]]> をグリフ指定子(bfX, gidX)それぞれに対して順に実行 した結果と同一となる。

    IndexedFont, then all bfXwill simply be the current font. ]]> 現フォントが基底指標付きフォントである場合、 すべてのbfXは単純に現フォントになる。 IndexedFont,then the use of the SetFont operator is figurative, asGetRootFont shall continueto return the original value of the CurrentFont imaging variable. ]]> 現フォントが複合指標付きフォントである場合は、 SetFont演算子の使用は比喩的なものとなる。 なぜなら、GetRootFontは、 作図状態変数CurrentFontの元の値を返し続けなければならないからである。 GetSelectedFont within any Base Font bfX shall return bfX. ]]> しかし、どの基底フォントbfXに対しても、 GetSelectedFontを使用した場合は、bfXを返さなければならない。

    Null, RaiseError shallbe invoked with InvalidFont as its operand. ]]> 現フォントがNullの場合、InvalidFontをオペランドとし てRaiseErrorを実行する。 CurrentPosition Graphics State Variable is undefined, RaiseErrorshall be invoked with NoCurrentPosition as its operand. ]]> 作図状態変数CurrentPositionの値が未定義の場合、NoCurrentP ositionをオペランドとしてRaiseErrorを実行する。 Capacityof the Encoding Vector used with that index, or the algorithm fails in any otherway, RaiseError shall be invoked with RangeCheckas its operand. ]]> グリフ対応付けアルゴリズムの実行中に、フォント指標又はグリフ指標がその指 標とともに用いられている符号化ベクタの容量以上になった場合、又は そのアルゴリズムが何らかの別の理由で失敗した場合、RangeCheckをオ ペランドとしてRaiseErrorを実行する。

    ShowStringEscapedX

    ShowStringEscapedX takes two operands ]]> 作画演算子ShowStringEscapedXは、次に示す2個のオペランドをとる。

  • v: VectorReference> ]]> <v: ベクタ参照>
  • s: GlyphString> ]]> <s: グリフ列>

    v must reference a Vector of Numbers,and have at least as many elements as the number of glyph specifiers derivedfrom the GlyphString s. ]]> ここで、vは、数からなるベクタへの参照としする。このベクタは、 少なくともグリフ列sから導出されるグリフ指定子の数の分 の要素をもたなければならない。 この演算子は、結果を返さない。

    X = 0, . . . , n

    • (bfX, gidX) is asingle glyph specifier derived from the GlyphString s;
    • <vx: Number> is the Xthelement of v;
    then the effect of {s vShowStringEscapedX} is the same as the execution of
  • {SaveGraphicsState
  • bfX SetFont gidX
  • ShowGlyph
  • RestoreGraphicsState
  • vX 0 SetPositionRelative}for X = 0, . . . , n in sequence. ]]> 0からnまでのXに対し、
    • (bfX, gidX) がグリフ列 s に由来するグリフ指定子であり;
    • <vx: 数> がvX番目の要素である;
    場合、 {s vShowStringEscapedX}の結果は 、0からnまでのXに対し、順番に
  • {SaveGraphicsState
  • bfX SetFont gidX
  • ShowGlyph
  • RestoreGraphicsState
  • vX 0 SetPositionRelative} を実行したのと同じである。

    bfXwill simply be the current font. ]]> 現フォントが基底指標付きフォントの場合、すべてのbfXは単純に現 フォントになる。 SetFont operator is figurative, asGetRootFont shall continueto return the original value of the CurrentFont imagingvariable. ]]> 現フォントが複合指標付きフォントの場合、SetFont演算子の使用は 比喩的なものとなる。なぜなら、GetRootFontは、作図状態変数Current Fontの元の値を返し続けなければならないからである。 GetSelectedFont within anyBase Font bfX shall return bfX. ]]> しかし、どの基底フォントbfXに対しても、GetSelectedFontを使用された場合は、bfXを返さなければならない。

    ShowStringEscapedX shall invoke RaiseErrorunder the same conditions and with the same operands that ShowStringshall. ]]> ShowStringEscapedXは、ShowStringの場合と同様のオペ ランドに関する同様の条件の下でRaiseErrorを実行しなければならない。 GlyphString s, then RaiseErrorshall be invoked with RangeCheck as its operand. ]]> さらに、数からなるベクタが、少なくともグリフ列sか ら導出されるグリフ指定子の数の分の要素をもたない場合、RangeCheck をオペランドとしてRaiseErrorを実行する。

    ShowStringEscapedY

    ShowStringEscapedY takes two operands ]]> 作画演算子ShowStringEscapedYは、次に示す2個のオペランドをとる。

  • v: VectorReference> ]]> <v: ベクタ参照>
  • s: GlyphString> ]]> <s: グリフ列>

    v must reference a Vector of Numbers,and have the same number of elements as the number of glyph specifiers derivedfrom the GlyphString s. ]]> ここで、vは、数からなるベクタへの参照とする。このベクタは、グリフ列sから導出されるグリフ指定子の数の分の要素をもた なければならない。 この演算子は、結果を返さない。

    X = 0, . . . , n

    • (bfX, gidX) is asingle glyph specifier derived from the GlyphStrings;
    • <vx: Number> is the Xthelement of v;
    then the effect of {s vShowStringEscapedY} is the same as the execution of
  • {SaveGraphicsState
  • bfX SetFont gidX ShowGlyph
  • RestoreGraphicsState
  • 0 vX SetPositionRelative}for X = 0, . . . , n in sequence. ]]> 0からnまでのXに対し、
    • (bfX, gidX) がグリフ列s に由来するグリフ指定子であり;
    • <vx: 数> がvX番目の要素である;
    場合、 {s vShowStringEscapedY} の結果は 、0からnまでのXに対し、順番に
  • {SaveGraphicsState
  • bfX SetFont gidX ShowGlyph
  • RestoreGraphicsState
  • 0 vX SetPositionRelative} を実行した結果と同じとなる。

    bfXwill simply be the current font. ]]> 現フォントが基底指標付きフォントの場合、すべてのbfXは単純に現 フォントになる。 SetFont operator is figurative, asGetRootFont shall continueto return the original value of the CurrentFont imagingvariable. ]]> 現フォントが複合指標付きフォントの場合、SetFont演算子の使用は 比喩的になる。なぜなら、GetRootFontは、作図状態変数CurrentFontの元の値を返し続けなければならないからである。 GetSelectedFont within anyBase Font bfX shall return bfX. ]]> しかし、どの基底フォントbfXに対しても、 GetSelectedFontを使用し場合は、 bfXを返さなければならない。

    ShowStringEscapedY shall invoke RaiseErrorunder the same conditions and with the same operands that ShowStringshall. ]]> ShowStringEscapedYは、ShowStringと同様のオペランド に関する同様の条件の下でRaiseErrorを実行しなければならない。 GlyphString s, then RaiseErrorshall be invoked with RangeCheck as its operand. ]]> さらに、数からなるベクタが、少なくともグリフ列sか ら導出されるグリフ指定子の数の分の要素をもたない場合、RangeCheck をオペランドとしてRaiseErrorを実行する。

    ShowStringEscapedXY

    ShowStringEscapedXY takes twooperands ]]> 作画演算子ShowStringEscapedXYは、次に示す2個のオペランドをとる。

  • v: VectorReference> ]]> <v: ベクタ参照>
  • s: GlyphString> ]]> <s: グリフ列>

    v must reference a Vector of Numbers,and have exactly twice the number of elements as thenumber of glyph specifiers derived from theGlyphString s. ]]> ここで、vは、数からなるベクタへの参照とする。このベクタは、グリフ列sから導出されるグリフ指定子の数のちょうど2倍の分 の要素をもたなければならない この演算子は、結果を返さない。

    X = 0, . . . , n

    • (bfX, gidX) is asingle glyph specifier derived from the GlyphString s;
    • <v2X: Number> and <v2X+1: Number>are respectively the 2Xth and the 2X+1st elements of v,
    ]]>

    s v ShowStringEscapedXY}is the same as the execution of

  • {SaveGraphicsState
  • bfX SetFont gidX ShowGlyph
  • RestoreGraphicsState
  • v2X v2X+1 SetPositionRelative} for X = 0, . . . , n in sequence. ]]> 0からnまでのXに対し、
    • (bfX, gidX) がグリフ列s に由来するグリフ指定子であり;
    • <v2X: Number> 及び <v2X+1: Number>が、 それぞれv2X番目、2X+1番目の要素である;
    場合、 {s v ShowStringEscapedXY} の結果 は、0からnまでのXに対し、順番に
  • {SaveGraphicsState
  • bfX SetFont gidX ShowGlyph
  • RestoreGraphicsState
  • v2X v2X+1 SetPositionRelative} を実行した結果と同じとなる。

    bfXwill simply be the current font. ]]> 現フォントが基底指標付きフォントの場合、すべてのbfXは単純に現 フォントになる。 SetFont operator is figurative, asGetRootFont shall continueto return the original value of the CurrentFont imagingvariable. ]]> 現フォントが複合指標付きフォントの場合、SetFont演算子の使用は 比喩的なものとになる。なぜなら、GetRootFontは、作図状態変数Curren tFontの元の値を返し続けなければならないからである。 GetSelectedFont within anyBase Font bfX shall return bfX. ]]> しかし、どの基底フォントbfXに対しても、GetSelectedFontを使用された場合、bfXを返さなければならない。

    ShowStringEscapedXY shall invoke RaiseErrorunder the same conditions and with the same operands that ShowStringshall. ]]> ShowStringEscapedXYは、ShowStringと同様のオペランド に関する同様の条件の下でRaiseErrorを実行しなければならない。 GlyphString s, then RaiseErrorshall be invoked with RangeCheck as its operand. ]]> さらに、数からなるベクタが、少なくともグリフ列sか ら導出されるグリフ指定子の数の2倍の分の要素をもたない場合、RangeCheckをオペランドとしてRaiseErrorを実行する。

    StringWidth

    StringWidth takes a single operand

  • <s: GlyphString> and returns two Numbers. ]]> 演算子StringWidthは、次に示す1個のオペランドをとる。
  • <s: グリフ列>

    この演算子は、次に示す2個の数を返す。 wy: Number>

  • <wx: Number >]]>
  • <wy: 数>
  • <wx: 数>

    ShowString imaging is not actuallydone, wx wy would be the resultsreturned by

  • {
  • SaveGraphicsState ]]> ここで、wx及びwyは、次に示す処理 によって返される値となる (ただし、ShowStringによる作画は、実際には行われない)。
  • {
  • SaveGraphicsState
  • % 現在のX,Y 座標を求める
  • GetPosition
  • % グリフ列を表示した後の座標を求める
  • s ShowString GetPosition
  • % Y 座標の差を求める
  • 3 -1 Roll Subtract
  • % X 座標の差を求める
  • 3 1 Roll Exchange Subtract
  • % スタック上で、Yの差の前にXの差を置く
  • Exchange
  • RestoreGraphicsState
  • }

    sis mapped by the Glyph Mapping algorithm to the sequence of glyph specifiers( (bf1, gid1), (bf2,gid2), . . . . , (bfN, gidN)), where each bfX is a Base IndexedFont and each gidXis a glyph identifier, then the effect of ]]> sによって参照されるオクテット列がグリフ対応付けアルゴリズムに よって、グリフ指定子の並び、すなわち各bfXが基底IndexedFontであり、各gidXがグリフ識別子である (bf1, gid ), (bf2,gid2), . . . . , (bfN, gidN))に 対応するとき、

  • s StringWidth} ]]> {s StringWidth}

    の実行結果は、次に示す式

    bfX SetFont gidX ShowGlyph} ]]>

  • {bfX SetFont gidX ShowGlyph}

    bfX, gidX)in sequence. ]]> をグリフ指定子(bfX, gidX)それぞれに対して順に実行 した結果と同じとなる。

    bfXwill simply be the current font. ]]> 現フォントが基底指標付きフォントの場合、 すべてのbfXは単純に現フォントになる。 SetFont operator is figurative, asGetRootFont shall continueto return the original value of the CurrentFont imagingvariable. ]]> 現フォントが複合指標付きフォントの場合、SetFont演算子の使用は 比喩的なものとなる。なぜなら、GetRootFontは、作図状態変数CurrentFontの元の値を返し続けなければならないからである。 GetSelectedFont within anyBase Font bfX shall return bfX. ]]> しかし、どの基底フォントbfXに対しても、GetSelectedFontを使用された場合は、bfXを返さなければならない。

    Null, RaiseError shallbe invoked with InvalidFont as its operand. ]]> 現フォントがNullの場合、InvalidFontをオペランドと してRaiseErrorを実行する。 Capacity of theEncoding Vector used with that index, or the algorithm fails in any other way,RaiseError shall be invoked withRangeCheck as its operand. ]]> グリフ対応付けアルゴリズムの実行中に、フォント指標又はグリフ指標がその指 標とともに用いられている符号化ベクタの容量以上になった場合、又は そのアルゴリズムが何らかの別の理由で失敗した場合、RangeCheckをオ ペランドとしてRaiseErrorを実行する。