# スタイル・シートの作成

スタイル・シートは、オプションのシステム生成数値トークンの定義、それに続く要素パスのステートメントのセット、およびそのフォーマット指定から成ります。インフォメーション・マネージャで使用するスタイル・シートを作成するには、次に示す手順にしたがいます。

1. `vi` や `emacs`、または SGML エディタのようなエディタを使用して、新規のファイルを開きます。

2. ファイルにおいて、StyleSheet 要素の Name 属性に値を与えることによって、スタイル・シートを識別します。次に例を示します。

       <StyleSheet name=sty1>

   この名前は、ブックケースのスタイル・シート全体で一意でなければなりません。

3. `AutoNumber` 機能の使用を計画しているならば、各トークン・ストリームの autonumber を作成します。システム生成数値トークンは、Prefix と Suffix 機能でのみ使用することができます。次に例を示します。

       <AutoNumber id=num0  reset=enumeratedlist  counter=numitem  type=ucroman  initial="1">
       <AutoNumber id=num1  reset=enumeratedlist  counter=numitem  type=lcroman  initial="1">
       <AutoNumber id=num2  reset=enumeratedlist  counter=numitem  type=arabic  initial="1">

   autonumber 機能使用に関する詳細については、`dtinfoStyle.dtd(5)` マニュアル・ページの AutoNumbers を参照してください。

4. 要素 `Path` ステートメントを使用して、スタイルを定義しようとしている要素へのパスを指定します。`Path` ステートメントは、左から右、親の要素から子の要素、へと読み込まれます。与えられた要素に対して、最少限、一意のパスを指定することだけが必要です。次の例は、LITERALLAYOUT 要素へのパスを指定しています。

       <Path>LITERALLAYOUT</Path>

5. 各 `Path` について、`Online` 機能のセット、または `Print` 機能のセット、あるいはその両方を指定しなければなりません。両方を指定するには、まずオンライン機能を指定しなければなりません。次に例を示します。

       <Path>
       LITERALLAYOUT</Path>
       <Online>
          <Font fallback=mono>
          <Family name=courier weight=medium size=12 charset=iso8859-1>
          <Layout flow=verbatim lindent=12 aspace=6 bspace=6>
          <LineBreak both>
       </Online>
       <Print>
          <Font fallback=mono>
          <Family name=courier weight=medium size=12 charset=iso8859-1>
          <Layout flow=verbatim lindent=12 aspace=6 bspace=6>
          <LineBreak both>
       </Print>

   `Print` と `Online` 機能のセットは、関数、説明、および指定において一致します。ただし、２つの印刷固有の例外があります。Medium と PageBreak です。

6. 特定のスタイルを指定する各要素 `Path` について、手順４と５を繰り返します。

## スタイル機能の使用

この章で説明するスタイル機能は、以下のとおりです。

Font 機能

- Font

- HighLight

Layout 機能

- Layout

- LineBreak

- Margin

- Position

印刷固有の機能

- Medium

- PageBreak

Table 機能

- Table

- ColFormat

- Row

- Cell

- TGroup

その他の機能

- Border

- Ignore

- Prefix と Suffix

## Font 機能

この節で説明するスタイル・シートの機能、Font および HighLight は、インフォメーション・マネージャのブラウザにおけるテキストの表示形式と関係します。

### Font

`Font` 機能は、フォント・ファミリと文字セット、およびフォント属性を指定します。`Font` 機能の構文には、フォント属性の指定、それに続く任意の個数の `Family` 副機能が含まれ、ここでフォント・ファミリと文字セットを指定します。

`Font` 機能は、文字セットの曖昧さを排除します。次に構文を示します。

    <Font
     Fallback = {sans | serif | mono | symbol | mincho | gothic}
     Position = {subscript | sub | superscript | super | baseline}
     Size = [0-9]+
     Slant = {italic| roman}
     Spacing = {char | prop | mono}
     Style = "string"
     Weight = {bold| medium}
     Width = {normal | narrow}>
    <Family
     Name = "string"
     Charset = "string"
     Foundry = "string" >
    </Font>

#### Font 属性

`Font` 属性は、指定された要素のタイポグラフィーを定義します。次に示すフォント属性は、インフォメーション・マネージャのブラウザにおけるすべてのフォント・ファミリによって使用されます。

`Fallback`

- `Fallback` 属性は、指定された `Family` がフォント・サーバで見つからない場合に使用されます。使用可能なオプションは、次に示すインフォメーション・マネージャのＸリソースにマップされます。これには、グローバルなＸリソースにおいて提供されるデフォルト値が示されています。`Fallback` 属性が指定されない場合、デフォルトは `sans` になります。

  `sans`

- sans serif (サンセリフ) フォントを指定します。`Dtinfo*FontSans` のデフォルト値は、`-dt-application-medium-r-normal-sans-*-*-*-*-p-*-iso8859-1` です。

`serif`

- serif (セリフ) フォントを指定します。`Dtinfo*FontSerif` のデフォルト値は、`-dt-application-medium-r-normal-serif-*-*-*-*-p-*-iso8859-1` です。

`mono`

- mono-spaced (等幅) フォントを指定します。`Dtinfo*FontMono` のデフォルト値は、`-dt-application-medium-r-normal-serif-*-*-*-*-m-*-iso8859-1` です。

`symbol`

- symbol (シンボル) フォントを指定します。`Dtinfo*FontSymbol` のデフォルト値は、`-dt-application-medium-r-normal-*-*-*-*-*-p-*-dtsymbol-1` です。

`mincho`

- デフォルト値は、`Dtinfo*FontMincho` です。

`gothic`

- デフォルト値は、`Dtinfo*FontGothic` です。

`Position`

- テキストのベースラインに対する相対的な位置を指定します。オプションは、`superscript` (ベースラインの上) および `subscript` (ベースラインの下) です。`superscript` と `subscript` については、語句 `super` と `sub` をショートハンドとして使用することができます。

`Size`

- フォント・サイズをポイントで指定します。デフォルト値は、14ポイントです。

`Slant`

- `Slant` 属性の値は、`roman` または `italic` です。デフォルト値は、`roman` です。

`Spacing`

- 文字の間隔を指定します。`prop` (プロポーショナル)、`char` (文字セル)、あるいは `mono` (等幅) のいずれかです。デフォルト値は、`char` です。

`Style`

- 追加のスタイル情報を指定します。デフォルトでは、追加のスタイル情報はありません。

`Weight`

- フォントの重みを指定します。`medium` (regular) または `bold` (thick) のいずれかです。デフォルト値は、`medium` です。

`Width`

- フォントの幅を指定します。`normal` または `narrow` のいずれかです。デフォルト値は、`normal` です。

#### フォント・ファミリ副機能

`Family` 副機能は、ひとつまたは複数のフォント・ファミリおよび文字セットを指定します。次に示すリストは、`Family` 副機能のための属性を定義しています。

`Family`

- `Family` 属性は、インフォメーション・マネージャのブラウザで使用されるフォント・ファミリと文字セットを指定します。`Family` として指定可能な文字列を以下に示します。

  `Foundry`

- フォント提供会社の会社名です。`Foundry` は、オプションのパラメータです。

`Name`

- フォント名です。`Name` は、必須のパラメータです。

`Charset`

- フォントが準拠する標準のエンコーディング名です。`Charset` は、必須のパラメータです。

指定されたフォント名と文字セットは、インフォメーション・マネージャのドキュメントを表示するシステムのフォント・サーバで使用可能なものでなければなりません。`Family` の指定がない場合、要素は、`Font` 機能の `Fallback` 属性で指定されたフォントを使用します。

次に示す例は、`Font` と `Family` 属性を使用するオンライン・パスのステートメントを示しています。

    <Path>
    PARA</Path>
    <Online>
       <Font  Fallback=sans  Weight=medium  Slant=roman  Size=12  Spacing=prop  Slant=italic  Width=normal>
       <Family  Name=helvetica  Charset=iso8859-1>
    </Online>

##### フォントの継承

`Font` 機能は、Inerited です。継承は、継承する要素に適用されるフォントのセットとフォント属性を決定します。フォント・フェースをマスクするには、`Family` 属性と `Charset` 属性の両方を設定しなければなりません。`Charset` 属性により、マスクが行われます。

要素の継承されたフォント属性を変更するには、完全な `Font/Family` 指定ではなく、適切な `Font` 機能の変更だけが必要です。次に例を示します。

    <Font Weight=bold>

与えられた要素の継承された属性の変更するには、これで十分です。

### 強調表示 (HighLight)

`HighLight` 機能は、フォントに独立した強調表示を指定します。`HighLight` 機能は、Inherited です。次にその構文を示します。

    <Highlight
    BGColor = "colors"
    FGColor = "colors"
    Overline = {true | false}
    StrikeThrough = {true | false}
    Underline = {true | false}>

反転、およびバックグラウンドとフォアグラウンドの色は、`Online` 機能セットにおいてのみサポートされます。ボックス、オーバーライン、ストライク、およびアンダーラインは、`Print` と `Online` 機能セットの両方で使用することができます。デフォルトのバックグラウンドとフォアグラウンドの色は、Ｘリソース・ファイルで定義されます。

`HighLight` 機能には、次に示す属性があります。

`BGColor`

- スクリーンのバックグラウンドの色を指定します。Ｘウィンドウ・システムの色名から選択することができます。

`FGColor`

- スクリーンのフォアグラウンドの色を指定します。Ｘウィンドウ・システムの色名から選択することができます。

`Overline`

- 要素の上に線を引きます。属性値は、`true` または `false` です。

`StrikeThrough`

- 要素全体に線を引きます。属性値は、`true` または `false` です。

`Underline`

- 要素の下に線を引きます。有効な値は、`true` または `false` です。

次の例は、TERM 要素にアンダーラインを引くための `Path` ステートメントを示しています。

    <Path>
    VARLISTENTRY TERM</Path>
    <Online>
       <Highlight  underline=true>
    </Online>
    <Print>
       <Highlight  underline=true>
    </Print>

## レイアウト (Layout) 機能

次の節で説明しているスタイル・シート機能は、インフォメーション・マネージャのブラウザにおけるスクリーンとページのレイアウトに関係するものです。 Layout, LineBreak, Margin, and Position

### Layout

`Layout` 機能は、要素の間隔、インデント、およびテキスト描画のフォーマットを指定します。`Layout` の構文を、次に示します。

    <Layout
    ASpace = [0-9]+
    BSpace = [0-9]+
    Leading = [0-9]+
    FIndent = [0-9]+
    LIndent = [0-9]+
    RIndent = [0-9]+
    Flow = {verbatim | filled}
    Justify = {left | right | center}
    Wrap = {block | join | none}>

指定可能なフォーマット属性は、以下のとおりです。

`ASpace`, `BSpace`

- これらの属性は、現在の要素の上と下の間隔をポイント数で指定します。デフォルト値は、10ポイントです。

`Leading`

- `Leading` 属性は、ある行のテキストのベースラインと次の行のもっとも高いアセンドの頂点との間である行間隔をポイント数で指定します。デフォルト値は、２ポイントです。

`FIndent`, `LIndent`, `RIndent`

- これらの属性は、それぞれテキスト要素の、最初、左、および右のインデントを指定します。各値は、ポイント数で表現され、周囲の要素あるいは `Margin` 機能で設定される値に対して相対的です。デフォルト値は、０（ゼロ）です。

`Flow`

- `Flow` 属性は、現在の要素における空白とラインフィード文字の処理方法を指定します。

  `verbatim`

- 値 `verbatim` が選択された場合、空白とラインフィード文字がそのまま効果をもちます。すなわち、テキスト行は自動的に折り返されず、ラインフィード文字がみつかるまで、テキストのマージンとウィンドウの境界を超えて広がることが許可されます。また、値 `verbatim` により、水平方向のスクロール・バーが、テキスト行の長さにしたがって、必要に応じて表示されます。

`filled`

- 値 `filled` が選択された場合、空白とラインフィード文字はそのままの効果をもたず、テキスト行はウィンドウの境界を超えようとしたときに折り返されます。デフォルト値は、`filled` です。

`Justify`

- `Justify` 属性は、現在の要素内のテキスト行の行端調整方法を指定します。

  `left`

- 値 `left` により、テキスト行は左マージンに沿って並べられ、右マージンはそのままです。

`right`

- 値 `right` により、テキスト行は右マージンに沿って並べられ、左マージンはそのままです。

`center`

- 値 `center` により、テキスト行は中央に並べられ、左右のマージンはそのままです。

`Wrap`

- `Wrap` 属性は、Position 機能とともに用いられ、現在の要素内のテキストの描画方法を指定します。

`Wrap` 属性と `Position` 機能が使用されると、LineBreak 機能は無視されます。

`Layout` は、inherited 機能のひとつです。

次の例は、`Layout` 機能を使用しています。

    <Path>
    LITERALLAYOUT</Path>
    <Online>
       <layout  Flow=verbatim  LIndent=12  ASpace=6  BSpace=6  Leading=4>
    </Online>

### LineBreak

`LineBreak` 機能は、現在の行の前、後、または前後に、改行を挿入します。構文を次に示します。

    <LineBreak {before | after | both}>

`LineBreak` には、次に示す３つの値が指定可能です。

`before`

- 現在の要素の前に改行を挿入します。

`after`

- 現在の要素の後に改行を挿入します。

`both`

- 現在の要素の前後に改行を挿入します。

`LineBreak` は継承されません。

次に示す例では、`LineBreak` を値 `both` で使用しています。

    <Path>
    PREFACE TITLE</Path>
    <Online>
       <LineBreak  both>
       <Fontsize=20 weight=medium>
       </Online>
    <Print>
       <LineBreak&  both>
       <Font  size=24 weight=bold>
    </Print>

### Margin

`Margin` 機能は、ドキュメントの描画領域のバウンダリをポイント数で指定します。

    <Margin
    Bottom = [0-9]+
    Top = [0-9]+
    Left = [0-9]+
    Right = [0-9]+>

`Margin` 属性の指定可能な値は、以下のとおりです。

`Bottom`

- スクリーンまたはページの最終行に続く垂直方向の空白を指定します。

`Top`

- スクリーンまたはページの先頭行に先行する垂直方向の空白を指定します。

`Left`

- 要素の左端とスクリーンまたはページの左端との間の距離を指定します。

  オンラインのマージンでは、システムは、ブックマーク・アイコンのようなアイテムの左マージンとして18ポイントの空白を使用します。したがって、`Left` に指定された値は（オンラインの描画の場合）、システム定義の設定値、18ポイントへの追加になります。

`Right`

- 要素の右端とスクリーンまたはページの右端との間の距離を指定します。

`Margin` 機能は、inherited であり、要素の階層構造の頂点の要素においてのみ使用すべきです。次に、`Font`、`Family`、および `Margin` 属性を含む `Path` ステートメントの例を示します。

    <Path>
    CHAPTER</Path>
    <Online>
       <Font  Fallback=sans  Weight=medium  Slant=roman Size=18>
       <Family  Name=helvetica  Charset=iso8859-1>
       <Margin  Left=6  Right=12  Top=18  Bottom=18>
    </Online>
    <Print>
       <Font  Fallback=sans  Weight=medium  Slant=roman  Size=24>
       <Family  Name=helvetica  Charset=iso8859-1>
       <Margin  Left=18  Right=18  Top=18  Bottom=18>
    </Print>

### Position

`Position` 機能は、Layout 機能の `Wrap` 属性とともに使用され、現在の要素の定義されたマージンとの相対的な開始位置、および現在の要素と引き続く要素におけるテキストの描画方法を指定します。

    <Position
    Horiz = {lcorner | left | lmargin | center | rcorner | Right | rmargin}
    Vert = {bottom | middle | top}>

`Position` 機能は、継承されません。

## 印刷固有の機能

この節で説明するスタイル・シートの機能、`Medium`および`PageBreak`は、インフォメーション・マネージャの印刷機能に固有 な機能です。

### Medium

`Medium` 機能は、印刷媒体の用途とサイズを指定します。`Medium` 機能は、inherited であり、要素の階層構造の頂点のレベルで指定しなければなりません。

    <Medium
    Orientation = {landscape | portrait}

`Medium` 機能には、`Orientation` 属性があり、印刷される頁上のテキストの用途を指定します。`Orientation` 属性の値は、`landscape` または `portrait` です。

次に示すのは、`Medium` 機能を使用する `<Path>` ステートメントの例です。

    <path>CHAPTER
    </path>
    <print>
       <Medium Orientation="portrait">
    </print>

### PageBreak

PageBreak 機能は、現在の要素の前、後、または前後に改頁を挿入します。次に、構文を示します。

    <PageBreak {before | after | both}>

`PageBreak` には、３つの値が指定可能です。

`before`

- 現在の要素の前に改頁を挿入します。

`after`

- 現在の要素の後に改頁を挿入します。

`both`

- 現在の要素の前と後の両方に改頁を挿入します。

`PageBreak` 機能は、継承されません。

次に示す例は、値 `before` の `PageBreak` を使用しています。

    <Path>SECT1 TITLE
    </Path>
    <Print>
       <PageBreak  before>
       <Font  size=30 weight=bold>
    </Print>

## 表 (Table) 機能

次の節で説明しているスタイル・シートの機能は、インフォメーション・マネージャの表のフォーマット指定と関係するものです。 Table ColFormat Row Cell ColSep、Frame、および Rowsep `Table` 機能のセットの使用を示す `Path` ステートメントのセットが、節の終わりにあります。 (Table の例 を参照してください。)

### Table

`Table` 機能は、２次元格子のフォーマットで使用されます。スタイル・シートの解析処理は、`Table` が使用された要素の子の要素における `Cell`、`ColFormat`、および `Row` の使用をチェックすることができません。ユーザは、これらの機能を手動で検証しなければなりません。`Table` の構文を次に示します。

    <Table
    ColSep = "integer"
    Frame ={ Top | Bottom | TopBot | Sides | All | None }
    RowSep = "integer"
    >

`Table` 機能には、次に示す属性があります。

`ColSep`

- `ColSep` 属性は、垂直線を表の右端に引くかどうかを指定します。値０は false を意味し、０以外の整数値は true を意味します。

`Frame`

- `Frame` 属性は、表の本体を形成する TGroup の外側の端の周囲に引かれる線の配置を制御します。３つの基本的な値 (`Top`、`Bottom`、`None`) および３つの複合的な値 (`TopBot`、`Sides`、`All`) があります。デフォルト値は、`None` です。

`Rowsep`

- `Rowsep` 属性は、水平線を表のセルの下端に引くかどうかを指定します。値０は false を意味し、０以外の整数値は true を意味します。

    <Path>
    TABLE</Path>
    <Online>
       <Table Cols=3>
    </Online>
    <Print>
       <Table Cols=3>
    </Print>

`Table` 機能は、継承されません。

### TGroup

`TGroup` 機能は、表の一部分のフォーマットを指定します。スタイル・シートの解析処理は、`Table` が使用された要素の子の要素における `Cell`、`ColFormat`、および `Row` の使用をチェックすることができないことに注意してください。したがって、ユーザは手動で検証しなければなりません。

TGroup 機能には、次に示す属性があります。

`CharAlign`

- `CharAlign` 属性は、TGroup の `Justify` 属性が `Char` に設定された場合に、セル内の調整点として使用する文字を指定します。デフォルト値は、ピリオド文字です。

`ColSep`

- `ColSep` 属性は、表のセルの右端に、垂直線を引くかどうかを指定します。値０は false を意味し、０以外の整数値は true を意味します。

`Justify`

- `Justify` 属性は、表のセル内にあるテキストの水平方向の調整を指定します。`Left` ならば、テキスト行は左マージンに沿って並べられ、右側はそのままです。`Right` ならば、テキスト行は右マージンに沿って並べられ、左側はそのままです。`Center` ならば、テキスト行の両マージンはそのままであり、要素の中央に沿って並べられます。オプションの `Char` を指定すると、各行の２つの文字があるテキスト（通常は数字です）は、CharAlign 属性によって指定された文字の右に並べられ、行の残りは左に並べられます。`Justify` 属性のデフォルト値は、Left です。CALS の表が値 "justify"（テキストの左右の並び替えを意味します）を指定することに注意してください。これはサポートしていません。

`RowSep`

- `RowSep` 属性は、表のセルの下端に水平方向の線を引くかどうかを指定します。値０は false を意味し、０以外の整数値は true を意味します。

`VJustify`

- `VJustify` 属性は、表のセルの内容の垂直方向の配置を指定します。３種類の設定値の違いは、その内容が先頭から末尾まで占めないセルについてのみ影響があります。`Top` ならば、内容は、セルの先頭から始まり、セルの末尾に達する前に終わります。`Bottom` ならば、内容は、セルの末尾で終わり、内容の上部に未使用の空白があります。`Middle` ならば、内容は、セルの中央に垂直に配置されます。`VJstify` 属性のデフォルト値は、`Top` です。

    <TGroup
     CharAlign = "char"
     ColSep = "integer"
     Justify = { Left | Right | Center | Char }
     RowSep = "integer"
     VJustify = { Top | Middle | Bottom }
    >

`TGroup` 機能は、継承されません。

### ColFormat

`ColFormat` 機能は、表の個別の列のフォーマットを指定します。表の各列に対して、左から右への順序で、ひとつの `ColFormat` 機能を使用します。表のインスタンスに10の列があり、含む `Table` 要素（`Table` を使用します）に列のうち８列のみ `ColFormat` がある場合、最後の２つの列には、最後に指定された `ColFormat` 機能のデフォルト値が適用されます。

    <ColFormat
     Charalign = "char"
     ColSep = "integer"
     Justify = {left | right | center | char}
     Name = "string"
     RowSep = "integer"
     Width = [0-9]+
    >

`ColFormat` 機能には、次に示す属性があります。

`Charalign`

- `Justify` 属性が `Char` に設定される列で使用する文字を指定します。デフォルト値は、ピリオド (.) 文字です。

`ColSep`

- `ColSep` 属性は、このフォーマットを使用する列のセルの右端に、垂直線を引くかどうかを指定します。値０は false を意味し、０以外の整数値は true を意味します。

`Justify`

- 列内のテキスト行の処理方法を指定します。指定可能な値は、以下のとおりです。

  `left`

- テキストを左マージンに沿って並べます。右マージンはそのままです。

`right`

- テキストを右マージンに沿って並べます。左マージンはそのままです。

`center`

- テキストを要素の中央に沿って並べます。左右のマージンはそのままです。

`char`

- テキスト（通常は数字）を２つの文字で並べます。`CharAlign` 属性で指定された文字の右側に各行が配置されます。残りの文字は、左側に並べられます。

インフォメーション・マネージャにおいて、`Justify` 属性のデフォルト値は `left` です。これと異なり、CALS の表では `justify` 属性値は、left と right の整列を指定します。

`Name`

- `Name` 属性は、`Cell` 機能によって使用される文字列であり、使用する特定の列フォーマット (`ColFormat`) を参照します。

`RowSep`

- `RowSep` 属性は、このフォーマットを使用する列内のセルの下端に、水平線を引くかどうかを指定します。値０は false を意味し、０以外の整数値は true を意味します。

`Width`

- `Width` 属性は、列の幅を他の列に対する相対値で指定します。

  たとえば、ある行から３つの列フォーマットが参照されている場合、全体の幅で割ったその幅が使用される間隔の総体を決定します。すなわち、列 A の幅が90であり、列 B と列 C の幅がそれぞれ180ならば、列 A は、20% (90/450) を使用するようにフォーマットが行われます。

  `Width` 属性が指定されない場合、列のインスタンスの行が検査され、そこでみつかったもっとも幅の広いセグメントがその列のデフォルトの幅として使用されます。

`ColFormat` 機能は、継承されません。

次に示すのは、`ColFormat` 機能を使用するパスのステートメントの例です。

    <Path>
    TABLE</Path>
    <Online>
       <ColFormat Cols=3  Justify=left  Name="column1"  Width=90>
    </Online>
    <Print>
       <ColFormat Cols=3  Justify=left  Name="column1"  Width=90>
    </Print>

### Row

`Row` 機能は（通常は表における）行の開始を識別します。`Cell` および `Table` とともに使用することができます。

    <Row>

    <Row
     RowSep = "integer"
     VJustify = { Top | Middle | Bottom }
    >

`Row` 機能には、次に示す属性があります。

`Rowsep`

- RowSep は行内のセルの下端に、水平線を引くかどうかを指定します。値０は false を意味し、０以外の整数値は true を意味します。

`VJustify`

- `VJustify` 属性は、行内のセルの垂直方向の配置を指定します。３種類の設定値の違いは、その内容が先頭から末尾まで占めないセルにのみ影響があります。`Top` ならば、内容はセルの先頭から始まり、セルの末尾に達する前に終わります。`Bottom` ならば、内容はセルの末尾で終わり、内容の上部に未使用の空白があります。`Middle` ならば、内容はセルの中央に垂直に配置されます。`VJustify` 属性のデフォルト値は、`Top` です。

`Row` 機能は継承されません。

    <Path>ROW
    </Path>
    <Online>
       <Row>
    </Online>
    <Print>
       <Row>
    </Print>

### Cell

`Cell` 機能は、セルで使用するフォーマットを指定します。また、セルの開始を識別し、その水平方向および垂直方向の範囲を定義します。

    <Cell
     CharAlign = "char"
     ColRef = "string"
     ColSep = "integer"
     ColStart = "string"
     ColEnd = "string"
     Justify = { Left | Right | Center | Char }
     SpanRows = [0-9]+
     VJustify = { Top | Middle | Bottom }

`Cell` 機能には、次に示す属性があります。

`CharAlign`

- `CharAlign` 属性は、`Justify` 属性が `Char` に設定されているセルの調整点として使用する文字を指定します。デフォルト値は、ピリオド (.) 文字です。

`ColRef`

- `ColRef` 属性は、セルのフォーマットで使用する列フォーマット (ColFormat) の名前を参照する文字列です。

`ColSep`

- `ColSep` 属性は、セルの右端に、垂直線を引くかどうかを指定します。値０は false を意味し、０以外の整数値は true を意味します。

`ColStart`

- `ColStart` 属性は、列（名付けられた `ColFormat` によって定義されます）を参照し、水平方向に広がるセルの開始（もっとも左にある）列として使用します。`ColEnd` を指定しない場合、`ColStart` を `ColRef` と同じ目的で使用します。

`ColEnd`

- `ColEnd` 属性は、列（名付けられた `ColFormat` によって定義されます）を参照し、水平方向に広がるセルのもっとも右にある列として使用します。`ColStart` が指定されない場合、無視されます。

`Justify`

- `Justify` 属性は、セル内のテキストの水平方向の整列方法を指定します。`Left` ならば、テキスト行は左マージンに沿って並べられ、右側はそのままになります。`Right` ならば、テキスト行は右マージンに沿って並べられ、左側はそのままになります。`Center` ならば、テキスト行は両マージンについてはそのままになり、要素の中央に沿って配置されます。オプションの `Char` は、２つの文字のテキスト（通常は数字です）を `CharAlign` 属性によって指定された文字の右側に各行を、残りの行を左側に配置します。`Justify` 属性のデフォルト値は、`Left` です。CALS の表が（テキストの左と右の両方の整列の意味で）値 "justify" を指定することに注意してください。これは、サポートしていません。

`SpanRows`

- `SpanRows` 属性は、セルの垂直方向の範囲を指定します。`SpanRows` の値は、正の数値でなければなりません。デフォルト値は１です。

`RowSep`

- `RowSep` 属性は、セルの下端に水平線を引くかどうかを指定し ます。値０は false を意味し、０以外の整数値は true を意味します。

`VJustify`

- `VJustify` 属性は、セル内容の垂直方向の配置を指定します。３種類の設定値の違いは、その内容が先頭から末尾まで占めないセルにのみ影響があります。`Top` ならば、内容はセルの先頭から始まり、セルの末尾に達する前に終わります。`Bottom` ならば、内容はセルの末尾で終わり、内容の上部に未使用の空白があります。`Middle` ならば、内容はセルの中央に垂直に配置されます。`VJustify` 属性のデフォルト値は、`Top` です。

`Cell` 機能は、Row および Table 機能とともに使用することができます。単一の要素が、表、行、およびセルの開始を含む場合、３つすべての機能を使用することができます。

`Cell` 機能は、継承されません。

    <Path>TABLE
    </Path>
    <Online>
       <Cell  ColRef="column1"  SpanCols=1  SpanRows=1>
    </Online>
    <Print>
       <Cell  ColRef="column1"  SpanCols=1  SpanRows=1>
    </Print>

次に示す `Path` ステートメントのセットは、スタイル・シートにおける表の指定方法を示しています。この例では、属性参照を使用して、値を表と関係する機能に割り当てています。これらの値は、ドキュメントの別の要素で指定されていると仮定しています。

#### Table の例

    <Path>TABLE
    </Path>
    <Online>
       <Border display="@frame">
    </Online>

    <Path>TGROUP
    </Path>
    <Online>
       <Table Cols="@cols">
    </Online>

    <Path>COLSPEC
    </Path>
    <Online>
       <ColFormat Justify="@align" Name="@colname" Width="@colwidth">
    </Online>

    <Path>TBODY
    </Path>
    <Online>
       <Border
       display=all>
    </Online>

    <Path>ROW
    </Path>
    <Online>
       <Row>
    </Online>

    <Path>ENTRY
    </Path>
    <Online>
       <Cell  ColRef="@colname"  SpanCols="@nameend -  @namest + 1" SpanRows="@morerows + 1>
       <border display=all>
    </Online>

## その他の機能

この節で説明するスタイル・シートの機能は、以下のとおりです。 Border Ignore Prefix および Suffix

### Border

`Border` 機能は、要素の外側に線を引くときに使用します。その構文は以下のとおりです。

    <Border
     Display = {bottom | left | right | top | all | horiz | vert }
     Thickness = [0-9]+>

`Border` 機能には、次に示す属性があります。

`Display`

- `Display` 属性は、次に示す値を受け付けます。

  `bottom`

- 要素の下側の線を指定します。

`left`

- 要素の左側の線を指定します。

`right`

- 要素の右側の線を指定します。

`top`

- 要素の上側の線を指定します。

`all`

- このコマンド値は、要素の上側、下側、右側、左側の線を指定します。

`horiz`

- このコマンド値は、要素の上側と下側の線を指定します。

`vert`

- このコマンド値は、要素の左側と右側の線を指定します。

`Thickness`

- 境界の線の重みをポイント数で指定します。`Thickness` の値は、正の数でなければなりません。

`Border` 機能は、継承されません。

次に示す `Path` ステートメントは、LINK 要素の周囲に２ポイントの境界線を表示します。

    <Path>
    LINK</Path>
    <Online>
       <Border  Display=all  Thickness=2>
    </Online>
    <Print>
       <Border  Display=al  Thickness=2>
    </Print>

### Ignore

`Ignore` は、要素の内容を表示または印刷するかどうかを指定します。その構文は、以下のとおりです。

    <Ignore
    >

次に示す `Path` ステートメントの例は、VERSION 要素で区切られたテキストを、表示または印刷しないことを指定しています。

    <Path>VERSION
    </Path>
    <Online>
       <Ignore>
    </Online>
    <Print>
       <Ignore>
    </Print>

`DTINFO.Ignore` 設計様式は、要素およびその内容が、索引とドキュメント・データベースいっぱいになることを回避しています。Ignore 機能も、内容がいっぱいに描画されることを回避します。詳細については、「設計様式の理解」 を参照してください。

### Prefix および Suffix

`Prefix` および `Suffix` 機能は、要素の内容の前および後に一定のテキストを追加します。`Prefix` および `Suffix` 機能の各インスタンスは、ひとつの `Content` 副機能および任意の個数で追加する `allowed` を取り込まなければなりません。

    <Prefix>
     <Content>
     {#PCDATA | Auto}+ </content>
     allowed features
    </Prefix>
    <Suffix>
     <Content>
     {#PCDATA | Auto}+ </content>
     allowed features
    </Suffix>

`Prefix` および `Suffix` 機能は、継承されません。

#### Prefix および Suffix のための Content 副機能と Allowed 機能

`Content` 副機能は、いかなるテキストまたはシステム生成数値トークンの組み合わせでも含むことができます。

システム生成数値トークンを指定するには、`Auto` 副機能を使用します。これは、必須の属性、`ID` をもちます。この場合の `ID` は、`AutoNumber` で指定された数値トークンの名前です。`Content` 副機能を使用するときには、開始タグと終了タグの両方を使用してください。

`Prefix` および `Suffix` 機能では、次に示す機能を指定することができます。

- Font

- HighLight

- Layout

- LineBreak

- Position

次に示す例は、CAUTION 要素のための `Prefix` と `Suffix` です。

    <Path>CAUTION
    <Path/>
    <Online>
       <Prefix>
       <Content>CAUTION:
       </Content>
       <Font Weight=bold size=14>
       <Layout LIndent=6 ASpace=6>
       <Linebreak both>
       <Highlight Underline=true>
       </Prefix>
    </Online>
    <Print>
       <Prefix>
       <Content>CAUTION:
       </Content>
       <Font Weight=bold size=14>
       <Layout LIndent=6 ASpace=6>
       <Linebreak both>
       <Highlight Underline=true>
       </Prefix>
    </Print>

    <Path>CAUTION<Path/>
    <Online>
       <Suffix><Content>CAUTION:
       </Content>
       <Font Weight=bold size=14>
       <Layout LIndent=6 ASpace=6>
       <Linebreak both>
       <Highlight Underline=true>
       </Suffix>
    </Online>
    <Print>
       <Suffix>
       <Content>WARRANTY ALERT
       </Content>
       <Font Weight=bold Size=14>
       <Layout LIndent=6 ASpace=6>
       <Linebreak both>
       <Highlight Underline=true>
       </SUFFIX>
    </Print>