1章 基本操作と文書構造
著者:梅谷 武
作成:2013-09-15
更新:2013-09-19
 一般に、テキストエディタを使ってレイアウト文書を作成するとき、テキストの中にレイアウト情報を埋め込んで、後でプログラムで処理するような場合、テキストにレイアウト情報を埋め込む規則、あるいはその規則を使って作成された文書のことを構造化テキストこうぞうかてきすとという。ktexはFormedTextというWeb文書用の構造化テキストを利用して作られている。
 FormedTextは文字コードとしてUTF-8を用い、タグ付けはLaTeX形式で行なう。HTML向けのリフロー型レイアウトを行なうものであり、LaTeXやDTPツールのように印刷向けの固定レイアウトを目的とするものとは異なる。詳細については『FormedText』を参照のこと。
 FormedText処理系であるktexは、UTF-8で書かれた構造化テキストを内部でUTF-16のXML DOM形式に変換し、それを経由してEPUB3準拠XHTML形式あるいは中間XML形式に変換するような仕組みになっている。
 ktexはWin32コンソールアプリケーションであり、コンソールからコマンドによって操作する。入力テキストファイルをsample.ftxとするとき、それをHTML形式へ変換し、sample.xhtmlへ出力するには次のようにする。
>ktex sample.ftx sample.xhtml
 -hオプションで機能一覧が表示される。
>ktex -h
 FormedTextにおいては、文書に章、節、小節、段落という4層構造を持たせることができる。
 必ずしもこのすべての階層を持つ必要はない。すべての文書は段落を含むが、章・節・小節の階層は、用途に応じて選択することができる。例えば章・段落、節・小節・段落というような構造の文書を作ることができる。
 文書の各構成単位には一意的な識別子が付けられる。
  • 章 → (章番号)
  • 節 → (章番号).(節番号)
  • 小節 → (章番号).(節番号).(小節番号)
  • 段落 → (章番号).(節番号).(小節番号).(段落番号)
この識別子に含まれる各番号は最初に与えられた初期値(規定値は1)を順番に+1することにより割り当てられる。章・節・小節の初期値は文書のプリアンブルで次のように設定することができる。
¥setcounter{<カウンタ名>}{<数値>}
<カウンタ名> ::= chapter | section | subsection
 FormedTextファイル内はプリアンブルと本文に分離される。
・
・(プリアンブル)
・
¥begin{document}
・
・(本文)
・
¥end{document}
 章・節・小節構成であれば次のように書く。
¥title{題名}
¥setcounter{chapter}{1}
¥stylesheet{../style/kindle.css}
¥fontpath{../style/fonts/}
¥formclass{hltr}
¥language{ja}
¥begin{document}
↵
¥chapter{1章題名}
↵
¥section{1.1節題名}
↵
¥subsection{1.1.1小節題名}
↵
(段落1.1.1.1)
↵
(段落1.1.1.2)
↵
(段落1.1.1.3)
↵
¥subsection{1.1.2小節題名}
↵
(段落1.1.2.1)
↵
¥end{document}
 節構成であれば次のように書く。
・
・(プリアンブル)
・
¥begin{document}
↵
¥section{1節題名}
↵
¥paragraph{1.1段落題名}
(段落1.1)
↵
(段落1.2)
↵
(段落1.3)
↵
¥end{document}
 段落と段落の区切りは連続する二つの改行コードにより識別される。段落の題名は付けても付けなくてもかまわないが、付ける場合は段落との間を区切らない。
 ktexは縦組みも使えるように設計されているが、数式機能は横組み専用なので縦組みの場合、数式機能が使えなくなることに注意が必要である。
 組み方向はプリアンブルの¥formclass命令で指定する。
 横組みの場合は次のように指定する。
¥formclass{hltr}
 縦組みの場合は次のように指定する。
¥formclass{vrtl}
 組み方向とともにページ開き方向を指定する。これにはパッケージドキュメントのpage-progression-direction属性を'ltr'(左から右)あるいは'rtl'(右から左)に指定する。
語  句
構造化テキスト こうぞうかてきすと
 
クリエイティブ・コモンズ・ライセンス
梅谷武『ktexマニュアル』はクリエイティブ・コモンズ 表示 3.0 非移植 ライセンスで利用できます。