<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.

     Redistribution and use in source (SGML DocBook) and 'compiled' forms
     (SGML HTML, PDF, PostScript, RTF and so forth) with or without
     modification, are permitted provided that the following conditions
     are met:

      1. Redistributions of source code (SGML DocBook) must retain the above
         copyright notice, this list of conditions and the following
         disclaimer as the first lines of this file unmodified.

      2. Redistributions in compiled form (transformed to other DTDs,
         converted to PDF, PostScript, RTF and other formats) must reproduce
         the above copyright notice, this list of conditions and the
         following disclaimer in the documentation and/or other materials
         provided with the distribution.

     THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
     IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
     POSSIBILITY OF SUCH DAMAGE.


     The FreeBSD Japanese Documentation Project

     Original revision: 1.2
     $FreeBSD: doc/ja_JP.eucJP/books/fdp-primer/structure/chapter.sgml,v 1.1 2001/03/07 19:40:54 hrs Exp $
-->

<chapter id="structure">
  <title><filename>doc/</filename> 以下に構成されている文書</title>

  <para><filename>doc/</filename> ソースツリーは, ある一貫した方針で構成されています.  
    また, そのうち FDP が管理する文書は, さらに別の方針で構成されています.  
    これは新しい文書をソースツリーに追加する作業の単純化に加え, </para>

  <orderedlist>
    <listitem>
      <para>文書を他の形式への変換を自動化しやすくすること</para>
    </listitem>

    <listitem>
      <para>他の異なる文書構成との間の一貫性を維持し, 
        相互に作業しやすくすること
      </para>
    </listitem>

    <listitem>
      <para>ソースツリー上で新しい文書を導入する場所の決定を簡単に行なえるようにすること</para>
    </listitem>
  </orderedlist>

  <para>を目的としています.  
    さらに文書のソースツリーは, さまざまな異なる言語や
    文字エンコーディングに対応できなければなりません.  
    文書ツリーの構造が特定の慣習や文化背景を強制するものであっては
    ならないという点は重要です.  </para>

  <sect1>
    <title>ソースツリーの最上位 <filename>doc/</filename></title>

    <para><filename>doc/</filename> の下には二種類のディレクトリがあり, 
      各ディレクトリはそれぞれ, 特別な名前と意味を持っています.  </para>

    <segmentedlist>
      <seglistitem>
	<seg><filename>share/</filename></seg>
	
	<seg>このディレクトリには, 文書の翻訳やエンコーディングに依存しないファイルが収められ, 
          その分類のためのサブディレクトリがつくられています.  
          たとえば, &man.make.1; で使用されるファイルは <filename>share/mk</filename>
          に, (FreeBSD で拡張された DocBook DTD などの) SGML 関連のファイルは
	  <filename>share/sgml</filename> におかれています.  </seg>
      </seglistitem>

      <seglistitem>
	<seg><filename><replaceable>lang</replaceable>.<replaceable>encoding</replaceable>/</filename></seg>
	
	<seg>各々の文書の翻訳, エンコーディングに対して, 
          それに対応する一つのディレクトリがあります.  
          具体的には, <filename>en_US.ISO8859-1/</filename> や
	  <filename>zh_TW.Big5/</filename> というディレクトリです.  
          ディレクトリ名が長いのですが, 言語とエンコーディングを完全に記述することで, 
          翻訳チームが将来的に, 同一の言語で異なるエンコーディングの
          文書を提供する際に発生する問題を回避することができます.  
          また, Unicode に移行するとしても, この方法ならば問題はまったくありません.  </seg>
      </seglistitem>
    </segmentedlist>
  </sect1>

  <sect1>
    <title>
      <filename><replaceable>lang</replaceable>.<replaceable>encoding</replaceable>/</filename>
      ディレクトリ群</title>

    <para>これらのディレクトリには, 文書そのものがおかれています.  
      文書はこのディレクトリからさらに, 
      それぞれ異なるディレクトリ名で示される三種類に分類されます.  </para>

    <segmentedlist>
      <seglistitem>
	<seg><filename>articles</filename></seg>
	
	<seg>DocBook の <sgmltag>article</sgmltag>(もしくはそれと同等なもの)
          でマークアップされた文書です.  
          文書は短めのもので, 構成単位は節(section)となっています.  
          通常, 一つの HTML ファイルとして生成されます.  </seg>
      </seglistitem>
	
      <seglistitem>
	<seg><filename>books</filename></seg>
	
	<seg>DocBook の <sgmltag>book</sgmltag>(もしくはそれと同等なもの)
          でマークアップされた文書です.  文書は比較的長めで, 
          構成単位は章(chapter)となっています.  通常, 
          (高速なネットワーク接続を持っている人や, 
          ブラウザからの印刷に便利なよう)大きな単一の HTML ファイルと, 
          リンクされた小さな HTML ファイルの両方が生成されます.  </seg>
      </seglistitem>

      <seglistitem>
	<seg><filename>man</filename></seg>
	
	<seg>システムのマニュアルページの翻訳をおくためのディレクトリです.  
          このディレクトリには, さらに <filename>man<replaceable>n</replaceable></filename> という, 
          翻訳されたマニュアルのセクションに対応する複数のディレクトリがあります.  </seg>
      </seglistitem>
    </segmentedlist>

    <para>
      ここで説明したディレクトリすべてが, 必ずそれぞれの
      <filename><replaceable>lang</replaceable>.<replaceable>encoding</replaceable></filename>
      ディレクトリにあるというわけではありません.  
      どのディレクトリが存在するかについては, 翻訳チームがどれだけ翻訳を完了しているかに依存します.  
    </para>
  </sect1>
  
  <sect1>
    <title>特定の文書に関する情報</title>

    <para>このセクションでは, FDP
      が管理する特定の文書に関する注意点が書かれています.  
    </para>

    <sect2>
      <title>ハンドブック</title>

      <subtitle><filename>books/handbook/</filename></subtitle>

      <para>ハンドブックは, FreeBSD
        によって拡張された DocBook DTD で書かれています.  
      </para>

      <para>ハンドブックは, DocBook の <sgmltag>book</sgmltag>
        によって構成されています.  
        そしてそれは複数の <sgmltag>part</sgmltag> に分割され, 
        <sgmltag>part</sgmltag> はいくつかの <sgmltag>chapter</sgmltag>
        を含みます.  <sgmltag>chapter</sgmltag> は
        さらにセクション(<sgmltag>sect1</sgmltag>), サブセクション
        (<sgmltag>sect2</sgmltag>, <sgmltag>sect3</sgmltag>)
        などに分割されています.  
      </para>
  
      <sect3>
	<title>物理的な構成</title>

	<para><filename>handbook</filename> ディレクトリには, 
          数多くのファイルとディレクトリがおかれています.  </para>

	<note>
	  <para>ハンドブックの構成は, 時より変更されますので, 
            この文書では, 
            構成変更の細かな部分の記述が古くなってしまっているかも知れません.  
            ハンドブックの構成について疑問点がありましたら, 
            FreeBSD ドキュメンテーションプロジェクト
            <email>freebsd-doc@FreeBSD.org</email> まで連絡下さい.  
          </para>
	</note>
	
	<sect4>
	  <title><filename>Makefile</filename></title>

	  <para><filename>Makefile</filename> は, SGML
            ソースを他の形式に変換する方法を決めたり, 
            ハンドブックを構築する各種ソースファイルを列挙する
            さまざまな変数を定義するものです.  
            このファイルは, 文書形式の変換を扱うためのコードを取り込むために
            標準の <filename>doc.project.mk</filename> をインクルードします.  
          </para>
	</sect4>

	<sect4>
	  <title><filename>book.sgml</filename></title>

	  <para>これはハンドブックの構造において最上位にあたる文書です.  
            ハンドブックの <link
	      linkend="sgml-primer-doctype-declaration">DOCTYPE
	      宣言</link>とハンドブックの構成を記述するためのエレメントが含まれています.  
          </para>

	  <para><filename>book.sgml</filename> は, 
            <filename>.ent</filename>
            という拡張子のついたファイルをロードするために<link
              linkend="sgml-primer-parameter-entities">パラメータ実体(parameter
              entities)</link>を使います.  (後述する)これらのファイルには, 
            ハンドブックの他の部分で共通して使われる<link
              linkend="sgml-primer-general-entities">一般実体(general
              entities)</link>
            が定義されています.  </para>
	</sect4>

	<sect4>
	  <title><filename><replaceable>directory</replaceable>/chapter.sgml</filename></title>

	  <para>ハンドブックの各章は, 互いに個別に分けられたディレクトリに
	    <filename>chapter.sgml</filename> というファイルとして格納されています.  
            それぞれのディレクトリには, <sgmltag>chapter</sgmltag> エレメントの
            <literal>id</literal> 属性の値と同じ名前が付けられています.  
          </para>

	  <para>たとえば, ある章のファイルが</para>
	  
	  <programlisting><![ CDATA [
<chapter id="kernelconfiguration">
...
</chapter>]]></programlisting>

	  <para>のようになっていたとすれば, それは
            <filename>kernelconfiguration</filename> という
            ディレクトリ中の <filename>chapter.sgml</filename>
            というファイルです.  通常, 
            その章の内容はすべてこのファイルに書かれています.  </para>

	  <para>HTML 版のハンドブックを構築する時,  この章は
            <filename>kernelconfiguration.html</filename>
            というファイル名として生成されます.   これは
            <literal>id</literal> の値に関係するもので, 
            ディレクトリ名との関連はありません.  </para>

	  <para>ハンドブックの以前の版では, 文書のファイルは
            <filename>book.sgml</filename> と同じディレクトリにおかれていて, 
            ファイル名は <sgmltag>chapter</sgmltag> エレメントの
            <literal>id</literal> 属性の値になっていました.  
            これを個別のディレクトリに分けて移動させたのはハンドブックの
            将来的な計画の準備のためです.  具体的には, こうすることで, 
            特に変更することなく各章に画像を追加することが可能になります.  
            また, それぞれの画像ファイルを章のテキストファイルと同じディレクトリに
            おくことは, 大きな一つのディレクトリにすべてのテキストファイルと
            画像ファイルをおいて管理しようとするより分かりやすくなります.  
            名前空間の衝突が発生したとしても, 
            格納ファイルの少ないディレクトリで作業する方が, 
            数多くのファイルがディレクトリにある場合よりも対処しやすくなるでしょう.  </para>

	  <para>ここまでを簡単にまとめると, 
            個々に <filename>chapter.sgml</filename>
            というファイルを含むディレクトリがたくさんあり, それらは
	    <filename>basics/chapter.sgml</filename>,
	    <filename>introduction/chapter.sgml</filename>,
	    <filename>printing/chapter.sgml</filename>
            などという名前になっているということです.  </para>
	  
	  <important>
	    <para>章とディレクトリは, 
              ハンドブックの並び順を反映した方法で名付けられるべきではありません.  
              順番はハンドブックの改訂の際に変更される可能性があります.  
              (章全体が階層構造の中で上下に移動するような場合でなければ)
              こういった改訂が行なわれる場合にファイル名を変更する必要性が
              (なるべく) 生じないようにするべきです.  
            </para>
	  </important>

	  <para>各々の <filename>chapter.sgml</filename> ファイルは, 
            完全な SGML 文書ではありません.  詳しく言えば, 
            それらのファイルの先頭には DOCTYPE 宣言の行が書かれていません.  
          </para>
      
	  <para>これには, 二つの欠点があります.  </para>
	  
	  <itemizedlist>
	    <listitem>
	      <para>これらのファイルは一般的な SGML
                ファイルとして扱うことができないため, 
                HTML, RTF, PS などの形式に変換するのに, 
                ハンドブック全体の生成に用いている方法と同じ方法を単純に用いることができません.  
                そのため, ただ一つの章だけを変更し, その結果を確認しようという場合には, 
                毎回ハンドブック全体を<emphasis>構築し直さなければならない</emphasis>ことになります.  
              </para>
	    </listitem>
	    
	    <listitem>
	      <para>Emacs の <literal>sgml-mode</literal> を使う場合, 
                文書が利用している DTD を認識できないために
                <literal>sgml-mode</literal>
                の便利な機能(エレメントの補完入力, 
                自動チェック機能など)が利用できなくなります.  
              </para>
	    </listitem>
	  </itemizedlist>
	</sect4>
      </sect3>
    </sect2>
  </sect1>
</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->

