このサイトをビューするために JavaScript を有効化してください。

Altova StyleVision 2020 Enterprise Edition

Chapters.sps という名前の目次機能のデモを行うためのサンプル SPS ファイルが、 (マイ) ドキュメントフォルダー 以下にある C:\Documents and Settings\<username>\My Documents\Altova\StyleVision2020\StyleVisionExamples\Tutorial\TOC に収められています。この SPS は、章ベースのドキュメントを記述するためのコンテンツモデルにより構成されるスキーマをベースにしています。Chapters.sps を StyleVision にて開くと、スキーマツリーウィンドウにてスキーマの構造を確認することができます(以下のスクリーンショットを参照)。

 

TutTOC1_SchemaStructure

 

ドキュメント要素の helpproject には、子要素に topics 要素が含まれています。topics 要素には topic 要素を任意の数だけ含めることができ、各々の topic 要素には、別の topic 子要素を含めることができます。最初のレベルにある topic 要素をドキュメントの章として考えることができ、その子孫要素の topic 要素を節や小節として考えることができます。

 

SPS には3つの目次が含まれており、以下の順序でドキュメントの先頭箇所に配置されています:

 

1.チャプターの概要各章(最初のレベルにある topics)の名前が表示されます。

2.チャプターとそのセクション章と、その子孫(最初のレベルにある topics に加え、XML ドキュメントの chapters.xml によれば3つのレベルまである各 topics の子孫構造)が表示されます。

3.イメージのリストドキュメント内部に存在する(最初のものを除く)全イメージのファイル名をフラットな構造により表示します。

 

SPS の構造

目次の詳細を確認する前に、デザインの構造に目を向けてみましょう。(緑色の $XML タグが表示されている)メインテンプレートには目次が含まれていることに注目してください。メインテンプレートにある (その他のコンテンツ) により、グローバルテンプレートならびにデフォルトテンプレートが適用されます。

 

目次定義は topic ならびに image に対するグローバルテンプレートにて行われます。グローバルテンプレート内では、目次レベルが topic 要素に対して作成されており、目次ブックマークが header 要素にて定義され、header 子要素内部(para 要素の外側)にて目次ブックマークが作成されています(以下のスクリーンショットを参照)。

 

TutTOC1_TopicBkmk

 

topic 要素は再帰的にデザインされているため、目次レベルならびに目次ブックマークも再帰的になります。この再帰構造により、最初の再帰にて下位の目次レベルならびに目次ブックマークが新たに作成されます。この処理は各子孫 topic に対して行われ、下位の目次レベルと、そのレベルにおける目次ブックマークが作成されることになります。ヘッダー(topic タイトル)フォーマットは目次レベルにより異なるため、レベルのテンプレートを条件タグで囲むことで、各レベルに対応した3つの条件分岐を定義しています。各条件分岐により、topic が出現する最初、2番目、そして3番目のレベルに対して異なる処理が行われます。

 

階層的な番号を表す (num-lvl) がレベル内部に挿入されていることに注目してください。目的の場所を右クリックして、コンテキストメニューから「目次を挿入 | 階層的な番号付け」を選択します。これにより、各 topic タイトルに対して(4.2.3 といった形式の)階層的な番号付けが行われます。

 

目次の説明

ドキュメントにて定義された各目次と、その説明を以下に記します。

 

チャプターの概要: topic に対するグローバルテンプレート内にある目次ブックマークを選択します。プロパティサイドバーでは XPath 条件式を使ったテキストの構築が行われている点に注目してください。使用されるテキストプロパティの値フィールドにあるボタンをクリックすると、定義された XPath 条件式が para となっていることが確認できます。これにより、(header 要素内に目次ブックマークが挿入されているため)headerpara 子要素にあるコンテンツが目次アイテムのテキストとして使用されます。

 

TutTOC1_TopicBkmkProps

 

以下のスクリーンショットにて示される目次テンプレートには、レベル参照 (levelref) tag_TOCRefLevelTag が1つ含まれており、そのレベル参照内部には MyTOC という名前の目次ブックマークを選択する目次参照 tag_TOCRef3 が含まれています。目次参照のスコープは現在のレベル(つまり最初のレベル)だけとなっており、結果として最初のレベルにある目次アイテムだけが作成されます。

TutTOC1_ChaptersTOC

 

階層的な番号を表示するためのアイテムが定義されている点に注目してください。

 

チャプターとそのセクションセクション: 以下のスクリーンショットに示される目次では、3つのレベルがネストされたかたちで定義されており、各レベルには現在のレベルをスコープとする目次参照が含まれています。

 

TutTOC1_ChaptersSectsTOC

 

各目次アイテムには div ブロックが含まれており、インデントなどのフォーマットを各ブロックに対してセットすることができます。

 

イメージのリスト: フラット構造の目次としてイメージのリストを表示します。まずはインスタンス化されたドキュメントにて、イメージが出現するレベルを考えてみましょう。image 要素は para 要素の子となります。topic 要素にてレベルを作成した場合、ドキュメント内にある最初、2番目、そして3番目のレベル内部にて image 要素が出現することになります。image 要素に対して新たなレベルを作成する必要はありません。

 

image に対するグローバルテンプレートでは、条件分岐により (i) 最初のイメージと (ii) 別のイメージが個別に処理されることになります。

 

TutTOC1_ImageBkmk

 

目次ブックマークが2番目の条件分岐内だけに目次ブックマークが配置されていて、最初の条件分岐の中にあるイメージはブックマークされていないということに注目してください。更に、イメージの連続的な番号付けを表す (num-seq) が「目次を挿入 | 連続的な番号付け」により挿入され、(最初のイメージは最初の条件分岐の中にあるため)2番目のイメージから番号付けが行われます。番号はフォーマットすることもでき、(num-seq) を右クリックして、フォーマットの編集を選択するとフォーマットを指定するためのダイアログボックスが表示されます。このサンプルでは 01 という値が定義されており、1桁の数値の前に 0 が挿入されることになります。

 

今のスクリーンショットで示されるイメージに対する目次テンプレートでは、images という名前のブックマークを識別するための目次参照が1つ配置されており、この目次参照がレベル参照内部に配置されています。目次参照のスコープは「現在と下位のレベル」にセットされています(この値は目次参照の選択時にプロパティウィンドウから編集することができます)。レベル参照により決定された現在のレベルは最初のレベルとなり、そのレベル以下にあるレベルが2番目のレベルとなります。これにより、最初のレベル以下にある全てのイメージが目次内部のアイテムとして選択されます。

 

TutTOC1_ImagesTOC

 

選択された番号付けは連続的なものとなるため、フラットなリストに連続した番号が表示されることになります。

 

 

 

(C) 2019 Altova GmbH