DITAマップ(ditamap)を書いてみよう!

二つのDITAソースをDITAマップ(ditamap)を書いて、一つのPDFにしてみましょう。(2013年3月4日公開)

DITAソース(マップ)を書く前に

前回は、日本語のDITAソース(トピック)を二つ書いてPDFに変換しました。

今回は、これをつなげて、一つのPDFにしてみます。

一つのPDFにするために、まとめ役のファイルが必要です。 これがDITAでは、マップファイルとよばれるものになり、拡張子は.ditamapとなります。 このマップファイルに、トピック(topic)ファイルを複数関連付けるわけです。

マップには、2種類あります。 汎用的なmapと、本の情報を記述できるように特化したbookmapです。

複数のトピックを束ねて一つのPDFにする場合、表紙やタイトルに第一部、第一章、付録とかの項目が付いた方が見やすいでしょうから、ここでは、bookmapを使用します。

今回は、前回作った二つのトピックを関連付けしたbookmapを作って、うまく1ファイルにPDF変換出来るかを試してみましょう。 今回もDITA-OT1.7.M4を引き続き使います。 注)2/24にメンテナンス版の3版(DITA-OT 1.7.3)がリリースされました。 と同時に、DITA-OT1.8.M1もリリースされたようです。 頃合いを見て、バージョンアップしますが、ここでは、引き続きすでにインストール済みのDITA-OT1.7.M4を使います。

DITAマップ(ditamap)を書いてみよう!

前回作ったトピックファイル名は、次の通りです。
  • m1-1.dita
  • m1-2.dita
圧縮したファイルを置いておきます。 m1-1_2入力ditaサンプル.zip

bookmapを作るにあたってはお決まりのパターンがあります。 UTF-8文字コードが使えるエディタで、次のように記述してみましょう。 今回はid値を「magical-1」として、上述2トピックファイルを含めています。

  • magical-1.ditamapファイル
    さて、準備が整ったところで、実際に『DITA-OT Open Toolkitのインストール』の前までを記述していきます。 ファイル名をm1-1.dita、タイトルを「ドキュメント制作の構造化手法」、各段落を<p>タグで囲みます。 ブラウザからテキストをコピーして、タグ等を付加してください。、次のようになりましたか。 注)ファイル名(m1-1.dita)の先頭文字に数字や特殊文字を使わないでください。「文字」か「_」を使用します。
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE bookmap PUBLIC "-//OASIS//DTD DITA BookMap//EN" "bookmap.dtd">
    <bookmap id="magical-1" xml:lang="ja-jp">
    <booktitle>
     <booklibrary>DITA-OT編</booklibrary>
     <mainbooktitle>DITAの使い方</mainbooktitle>
     <booktitlealt>DITAソースを書いてみよう!</booktitlealt>
    </booktitle>
    <bookmeta>
    </bookmeta>
    <frontmatter>
    <booklists>
    <toc></toc>
    </booklists>
    </frontmatter>
    <chapter>
     <topicref href="m1-1.dita"></topicref>
     <topicref href="m1-2.dita"></topicref>
    </chapter>
    <appendix>
    </appendix>
    <backmatter>
    </backmatter>
    </bookmap>
    
さぁ、PDF変換してみましょう。magical-1.ditamap,m1-1.dita,m1-2.ditaファイルがC:\Magicalフォルダにあるとします。 C:\DITA-OT1.7.M4\startcmd.batをダブルクリックします。 次のように打ってください。
java -jar lib/dost.jar /i:C:\Magical\magical-1.ditamap /transtype:pdf /outdir:C:\Magical\out

いかがでしょうか?

最後の方で、「BUILD SUCCESSFUL」のメッセージが出ましたか。

C:\Magical\outフォルダに、magical-1.pdfファイルが出来ているでしょうか。

前回作ったトピック単体と比較して如何でしょうか? 次の差異が見つけられると思います。
  1. 二つのトピックが一つのPDFファイルに入りました。
  2. 表紙がmagical-1.ditamapファイル内のbooktitleタグ内の情報を表示しています。
  3. 2ページ目が「はじめに」のページとして、空白ページですが、挿入されています。
  4. 各トピックの始まりが奇数ページからになっています(ページ右上に表示されるタイトルやノンブルも付きません)。 そのため、空白ページ(4,6ページ)が調整用として挿入されています。
  5. ブックマークに目次だけでなく、各トピックのタイトルが含まれています。
magical-1出力サンプル.pdf

DITAマップ(bookmap)を少しいじってみよう!

magical-1.pdfでは、確かに一つのPDFになりましたが、単にくっつけただけの感じで、少し物足りない気分になったでしょうか。 そこで、もう少し本らしさを見せるために、挿入するトピックは変わりませんが、階層化にしたり、各章・付録のタイトル専用のページも作ってみました。 id値を「magical-2」として、次のように記述してみましょう。

  • magical-2.ditamapファイル
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE bookmap PUBLIC "-//OASIS//DTD DITA BookMap//EN" "bookmap.dtd">
    <bookmap id="magical-2" xml:lang="ja-jp">
    <booktitle>
     <booklibrary>DITA-OT編</booklibrary>
     <mainbooktitle>DITAの使い方</mainbooktitle>
     <booktitlealt>DITAソースを書いてみよう1!</booktitlealt>
     <booktitlealt>DITAソースを書いてみよう2!</booktitlealt>
     <booktitlealt>DITAソースを書いてみよう3!</booktitlealt>
     <booktitlealt>DITAソースを書いてみよう4!</booktitlealt>
    </booktitle>
    <frontmatter>
    <booklists>
    <toc></toc>
    </booklists>
    </frontmatter>
    <chapter navtitle="DITAソースを書いてみよう1!(navtitle属性)">
     <topicref href="m1-1.dita"></topicref>
     <topicref href="m1-2.dita"></topicref>
    </chapter>
    <chapter>
     <topicmeta><navtitle>DITAソースを書いてみよう2!(navtitle要素)</navtitle></topicmeta>
     <topicref href="m1-1.dita"></topicref>
     <topicref href="m1-2.dita"></topicref>
    </chapter>
    <chapter>
     <topicmeta><navtitle>DITAソースを書いてみよう3!(navtitle要素+階層化)</navtitle></topicmeta>
     <topicref href="m1-1.dita">
      <topicref href="m1-2.dita"></topicref>
     </topicref>
    </chapter>
    <appendix>
     <topicmeta><navtitle>DITAソースを書いてみよう4!(navtitle要素+階層化)</navtitle></topicmeta>
     <topicref href="m1-1.dita">
      <topicref href="m1-2.dita"></topicref>
     </topicref>
    </appendix>
    <backmatter>
    </backmatter>
    </bookmap>
     				
さぁ、PDF変換してみましょう。magical-2.ditamapファイルがC:\Magicalフォルダにあるとします。
java -jar lib/dost.jar /i:C:\Magical\magical-2.ditamap /transtype:pdf /outdir:C:\Magical\out

C:\Magical\outフォルダに、magical-2.pdfファイルが出来ているでしょうか。 magical-2出力サンプル.pdf

いかがですか。

magical-2.pdfを開けてみて、少しは本らしい構成になったでしょうか。 次のような特徴が見つけられると思います。
  1. 表紙がmagical-1.ditamapファイル内のbooktitleタグ内の情報を表示しています。
  2. 2ページ目が「はじめに」のページとして、空白ページですが、挿入されています。
  3. 「DITAソースを書いてみようx!」のページが出来上がり、すべて奇数ページ始まりです(ページ右上に表示されるタイトルやノンブルも付きません)。 そのため、空白ページ(4,6ページ)が調整用として挿入されています。 また、自動的に「第一章」や「付録A」などの番号が付与されます。 ミニ目次として、次の階層のタイトルがリンク付きで表示されています。
  4. ブックマークに目次だけでなく、各トピックのタイトルが含まれています。
  5. タイトルトピックが最上位のタイトルではなくなったため、magical-1.pdfと比べて、 フォントの大きさとレイアウトが異なります。 階層化した場合は、2階層目と3階層目のタイトルでも、フォントの大きさとレイアウトが異なります。

注)「DITAソースを書いてみよう1!(navtitle属性)」とDITAソースを書いてみよう2!(navtitle要素)ではditamapの書き方は異なりますが、同じ構造になっています。 この場合、DITA1.2からはtopicmeta要素中のnavtitle要素を使うことが好ましいとされています。

次回は、今回のditamapによるpdfを使って、ミニ目次や空白の削除、ページサイズの変更など、dita-otのオプションや初期値などを少しいじってみましょう。

ご意見・ご質問等があれば、お気軽にお尋ねください。

関連トピック

Powered by x-magic

© 2014 まじかるテクノロジー有限会社 All Rights Reserved. / Transformed by x-magic plugin for DITA Open Toolkit at 2015-04-25T13:35:33.441+09:00