<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE sect1 PUBLIC "//OASIS//DTD DocBook XML V4.2//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">

<sect1  xmlns:xi="http://www.w3.org/2001/XInclude">
  <title>さらに深く<!-- Beyond Hello World --></title>
  <para>さて、Emacs を使った構造化文書の編集技法の基本については大丈夫としても、まださらに学ぶべきことが沢山あります。ここからは文章編集を楽にするいくつかの巧妙なトリックやこつについて見ていきましょう。
    <!-- OK, so we've seen the basics of structured editing using Emacs,
    but there is a lot, lot more to see. Here are some neat tricks
    and tips to make your documentation life easier. -->
  </para>
  <sect2>
    <title>文書を複数のファイルに分ける<!-- Splitting documents in different files --></title>
    <para>ワープロよりテキスト処理が優れている主要な利点の一つに、ファイルを分割して好きなように作業を体系化できるということがあげられます。実際にはプログラムによって文書をより柔軟に体系化することができます。
      <!-- One of the main advantages that Text Processing has over Word
      Processing, is the ability to work in separate files and
      organize your work any way you want. You can actually be as
      flexible and organized with your documentation as you are with
      your programming. -->
    </para>
    <para>実体(Entity)は文書の先頭の文書型 (DOCTYPE) 宣言内で宣言しなければなりません。そして典型的な実体宣言は次のようになります:
      <!-- Entities need to be declared at in the DOCTYPE declaration at
      the top of the document. A typical entity declaration looks
      like this: -->
      <programlisting>
&lt;!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
&lt;!ENTITY presDeLaCompania SYSTEM "presDeLaCompania.sgml"&gt;
]&gt;
      </programlisting>
    </para>
    <para>この例を見ればわかるように、実体は四角括弧 [] 内で宣言します。また実体へのシステム識別子があるので、パーザが文書を処理する際にそのファイルをみつけることができるということもわかるでしょう。実体名はこの文書の中で実体を識別し、好きなように名前を付けることができます。
      <!-- As you can figure out from the example, the entities are
      declared within the braces []. Also you can see there is a
      system identifier to the entity so the parser can find the
      file when processing the main document. The entity name,
      identifies the entity within the document itself and can be
      any name you want it to be. I try to maintain the same name
      between the two but as I said you don't have to. -->
    </para>
    <para>アンパサンド &amp; と実体名を次のように指定するだけでいつでもこの実体を使うことができます:
      <!-- To use you entity at any time, just use the ampersand &amp;
      and the name of the entity like: -->
      <programlisting>
	&amp;presDeLaCompania;
      </programlisting>
    </para>
    <important>
      <para>実体を連携させているときに実体内に文書型(DOCTYPE)宣言を含めることはできません。そうすると Emacs がこの文書をどうやって検証するか知ることができなくなってしまいます。しかしこれについては打開する方法をみつけたので以下で説明します。
	<!-- When you work with entities you cannot include a DOCTYPE
	declaration in the entity, this makes it impossible for
	Emacs to know how to validate this document. I have found a
	way of overcoming this and it is explained below. -->
      </para>
    </important>
  </sect2>
  <sect2>
    <title>文書を検証する<!-- Validating your documents --></title>
    <para>この節で後で見るように Emacs/PSGML は妥当な文書を書くのを手助けするだけでなく、思いがけなく手動で(例えばカットアンドペーストで)節を
    含めたとしても、必要に応じて妥当性を検証することができます。それでは構造化文書の編集作業を手助けするような(PSGML に加えて)他の
    Emacs の標準機能についても見ていきましょう。
      <!-- As you will see in this section Emacs/PSGML not only helps you
      write a validated document, but it also offers on-demand
      validation, if by chance you have included sections manually
      (cutting and pasting, for example). Here you start seeing
      other Emacs standard features (besides PSGML) adding value to
      your structured editing task. -->
    </para>
    <sect3>
      <title>妥当性の検証(単一の文書)<!-- Validating a single document --></title>
      <para>あなたはいつでも<command>C-c C-v</command>と打ってミニバッファ内に<emphasis>nsgmls</emphasis>コマンド行を表示し、ただ<keycap>Enter</keycap>を押すだけで文書の妥当性を検証できます。もし何らかのエラーがあれば下の画面のようにプロンプトが表示されます:
	<!-- At any point you can hit <command>C-c C-v</command> and you
	will see the <emphasis>nsgmls</emphasis> command line in the
	mini-buffer, just hit <keycap>Enter</keycap> to validate your
	doc. If any error occur you will be prompted with them as in
	the screen bellow: -->
	<screenshot>
	  <screeninfo>文書の検証<!-- Document Validation --></screeninfo>
	  <graphic fileref="graphic/document-validation"></graphic>
	</screenshot>
      </para>
      <para>そしてすぐわかるように、エラーの一つをクリックし<keycap>Enter</keycap>を押すと直接エラー個所にジャンプします。もしそれが異なるファイルであっても、Emacs はそのファイルを開き、エラー個所にカーソルを移動します! これは Emacs の標準機能であり、システムの他のツールと統合されています。gdb、make、java コンパイラなどで同じように使うことができます。
	<!-- Just so you know, by clicking on one of the errors and
	hitting <keycap>Enter</keycap> you will jump straight to the
	code where the error is. Even if it's on a different file,
	Emacs will open it and put you on the line where the error
	is supposed to be! This is standard Emacs functionality and
	it's integration with the rest of the tools on your
	system. The same is the case with gdb, make, or a java
	compiler. It's that easy. -->
      </para>
    </sect3>
    <sect3>
      <title>妥当性の検証(文書の一部分, 実体)<!-- Validating document parts (entities) --></title>
      <para>文書の部分(SGML では <emphasis>実体</emphasis> と呼ばれます)にまつわる主な問題は、その中に DOCTYPE 宣言行を含めることが
      できないということです。このために Emacs がどこの DTD を見に行けばよいのか知ることができません。[これを解決するために]私が
      やったことは次のとおりです。
	<!-- The main problem with document parts, or
	<emphasis>entities</emphasis> as they are called in SGML, is
	that you cannot have a DOCTYPE declaration line in
	parts. Because of this, Emacs has no way of knowing where
	to look for the DTD. Here is what I do -->
      </para>
      <orderedlist>
	<listitem>
	  <para>DOCTYPE 宣言行を持つ主文書を開き、<emphasis>DTD-&gt;Save Parsed DTD[パーズ済みの DTD を保存]</emphasis>メニューを
	  クリックします。そのファイルに <filename>docbook.ced</filename> あるいは <filename>main.ced</filename>といった簡単な
	  名前を付け、通常主ファイルと同じディレクトリ内に保存しておきます。
	    <!-- Go to the main document (the one that has the DOCTYPE
	    declaration line) and click on the <emphasis>DTD->Save
	    Parsed DTD</emphasis> menu. Give it a simple name like
	    <filename>docbook.ced</filename> or
	    <filename>main.ced</filename>, and usually keep in the
	    same directory as your main file. -->
	  </para>
	</listitem>
	<listitem>
	  <para>文書の部分を開くと、<computeroutput>Example entity XXXXX not found</computeroutput>
	  (XXXXX は最初のタグがみつかる場所)というようなエラーメッセージが表示されるでしょう。これを無視し、単に
	  <command>C-x 1</command>を押して作業フレームを最大化します。そしてメニューから <emphasis>DTD-&gt;Load Parsed DTD</emphasis>
	  を選択し、この <filename>filename.ced</filename> を前のステップで付けたファイル名で置き換えてやります。
	    <!-- Open the document part and you will get an error like
	    <computeroutput>External entity XXXXXX not
	    found</computeroutput>, where XXXXX is the name of the
	    first tag found. Disregard this and just hit
	    <command>C-x 1</command> to maximize your working
	    frame. Now select the menu <emphasis>DTD->Load Parsed
	    DTD</emphasis> and substitute this
	    <filename>filename.ced</filename> with
	    <filename>main.ced</filename> or whatever you called it
	    in the previous step. -->
	  </para>
	</listitem>
      </orderedlist>
      <para>この通り! 主文書と同じようにして文書の部分でも作業することができます。
	<!-- And that's it! You can work with the document part in the
	same way you work with the main document.  -->
      </para>
    </sect3>
  </sect2>
  <sect2>
    <title>文書を綺麗に保つ<!-- Keeping you documents neat --></title>
    <subtitle>字下げと調整<!-- Indentation and Justification --></subtitle>
    <para>PSGML メジャーモードは他の多くの Emacs メジャーモードと同じように適切な字下げを保つように手助けしてくれます。
      <!-- The PSGML major mode, as many other Emacs major modes, will
      help you keep the proper indentation. -->
    </para>
    <sect3>
      <title><keycap>タブ</keycap>キー<!-- The <keycap>Tab</keycap> key --></title>
      <para>私が見てきたエディタとは違い、<keycap>タブ</keycap>キーは Emacs では実に知的なものとなっています。一つ例を
      あげると、テキストのどこでもこのキーを叩くと、他のエディタのようにテキストの間に空白を入れてしまうテキストモード
      とはならず、適切にその行を字下げしてくれます。
	<!-- Different from any editor I've seen, the
	<keycap>Tab</keycap> key becomes really intelligent en
	Emacs. For one, you can hit the key anywhere on the text and
	this will indent the current line properly, unless you are
	in pure text mode where it will break the text like any
	other editor. -->
      </para>
    </sect3>
    <sect3>
      <title>字下げ<!-- Indenting a region --></title>
      <para>さて Sect2 を Sect1 にすると決め、正しくこの節を字下げしたいとしましょう。次のようにします:
	<!-- Suppose you've decided that a Sect2 is now a Sect1 and want
	to properly indent this section. Here is how: -->
	<orderedlist>
	  <listitem>
	    <para>その領域を選択し(<command>C-space</command> でその節のブロックがアクティブになります)、
	    タグを置き換えます。もしその領域にいないなら外側のタグを検索し、置き換えることからはじめます。
	    その領域内にいても同様です。
	      <!-- Select the region (<command>C-space</command>
	      activates the selection block) and replace the tags. If
	      you are out-denting a region you should start search
	      and replacing starting with the outer tags. If you
	      are in-denting it's the other way around. -->
	    </para>
	  </listitem>
	  <listitem>
	    <para>タグに正しい名前をつけると、 Emacs は自動的にその領域を字下げすることができるはずです。
	    ただその領域を選択し、<command>M-x indent-region</command>を押すだけで終り!
	      <!-- Once the tags have the right names, Emacs should be
	      able to indent the region automagically. Just select
	      the region again and hit: <command>M-x
	      indent-region</command>, and Vol! -->
	    </para>
	  </listitem>
	</orderedlist>
      </para>
    </sect3>
    <sect3>
      <title>字下げについてさらに詳しく<!-- Other indentation details --></title>
      <para>これはさらにはスタイルとコード可読性の問題となります。私は個人的にはタグがあってその後に 
      <emphasis>CDATA</emphasis>(文字データ)があるよりもタグの間に挟まれている方が好みです。段落は完璧な例です:
	<!-- This is more a question of style and code readability. I
	personally prefer to have <emphasis>CDATA</emphasis>
	(character data) between the tags rather than having the tags
	at the beginning and end of the CDATA. Paragraphs are
	perfect examples: -->
      </para>
      <programlisting>
&lt;para>
 This is more a question of style and code readability. I
 personally prefer to have &lt;emphasis>CDATA&lt;/emphasis>
 (character data) between the tags rather than having the tags
 at the beginning and end of the CDATA. Paragraphs are
 perfect examples:
&lt;/para>
      </programlisting>
      <para>対<!-- versus --></para>
      <programlisting>
&lt;para>This is more a question of style and code readability. I
personally prefer to have &lt;emphasis>CDATA&lt;/emphasis>
(character data) between the tags rather than having the tags at the
beginning and end of the CDATA. Paragraphs are perfect
examples:&lt;/para>
      </programlisting>
      <para>こうすると、Emacs はこれを理解し、CDATA とタグを適切に調整した状態に正しく保つようにします。CDTADA については
      Emacs はその領域での最初の行の字下げに従います。つまり、それを最初に字下げすると残りの行はそのスタイルに従うようになります。
	<!-- When you do this, Emacs will understand this and indent
	properly keeping your CDATA and tags aligned
	appropriately. For CDTADA, Emacs, will follow the indentation
	of the first line in a region, so indent this on first, and
	the rest of the lines will follow the style. -->
      </para>
    </sect3>
    <sect3>
      <title>段落の調整<!-- Justification and Paragraph Filling --></title>
      <para>私が Emacs でみつけた一つの興味深い特長は段落埋め、もしくは段落調整(ほとんどの人にはこちらの方がずっと親しみやすい用語でしょう)です。
      調整は自動的に(マイナーモードとして)、あるいは手動で<command>M-q</command> 打鍵でいつでも行うことができます。調整マイナーモードでは
      テキストは自動的に埋められ、字下げされメジャーモードのルールに従って折り返しがなされるので、あなたがしなければならないのは入力することだけ
      です。調整マイナーモードにするには単に<command>M-x auto-fill-mode</command>と入力します。
	<!-- One interesting feature I found in Emacs is paragraph
	filling, or paragraph justification, which is a more
	familiar term to most mortals. The filling can be done
	automatically (as a minor mode) or manually by hitting
	<command>M-q</command> at any time. In the Fill minor mode,
	text will automatically get filled, indented, and wrapped
	according to the rules in the major mode, so all you have to
	is type. To turn on the Fill minor mode just do <command>M-x
	auto-fill-mode</command>. -->
      </para>
      <para>また、領域を選択し<command>M-x fill-region</command> と入力して調整することもできます。
	<!-- You can also fill entire regions of text, by first selecting
	the region and typing <command>M-x fill-region</command>. -->
      </para>
    </sect3>
  </sect2>
  <sect2>
    <title>綴り<!-- Spelling --></title>
    <para>Emacs がその下の OS とツールを滑らかに統合しているのと同じ方法で、ispell と spell が完璧に統合されています。
    これは ispell メジャーモードを有効にすることで ad-hoc になされるか、あるいはマイナーモードとして動作させられます。
    これは MS-Word  の赤線に似ていて、文書全体の綴りを検査します。次はいくつかのチップスです:
      <!-- In the same way that Emacs integrates smoothly with the OS
      bellow and it's tools, it integrates perfectly with ispell and
      spell. This can be done ad-hoc by enabling the ispell major
      mode, or it can be run as a minor mode. This is analogous to
      the red underlining in MS-Word and spell-checking the complete
      document. Here are some tips: -->
    </para>
    <itemizedlist>
      <listitem>
	<para>文書の綴りを検査するには単に <command>M-x ispell</command> と入力します。
	  <!-- To spell check a document just hit <command>M-x
	    ispell</command>. -->
	</para>
      </listitem>
      <listitem>
	<para>辞書を変えるには <command>M-x ispell-change-dictionary</command> と入力します
	(利用可能な辞書については /usr/lib/ispell を参照して下さい)。
	  <!-- To change the dictionary hit <command>M-x
	    ispell-change-dictionary</command> (look in /usr/lib/ispell
	  for available dicts). -->
	</para>
      </listitem>
      <listitem>
	<para>ispell マイナーモードを有効にするには単に <command>M-x ispell-minor-mode</command> とします。
	  <!-- To enable the ispell minor mode just
	  do <command>M-x ispell-minor-mode</command>. -->
	</para>
      </listitem>
      <listitem>
	<para>綴りの間違っている語句に赤い下線を引くようにしたければ、<command>M-x flyspell-mode</command> とします。
	  <!-- If you want misspelled words to be underlined and red do
	  <command>M-x flyspell-mode</command>. -->
	</para>
      </listitem>
      <listitem>
	<para>ispell マイナーモードを有効にしていてビープ音が鳴ったら、それは語句の綴りを間違っているということを意味します。
	これを修正するにはすぐに入力をやめ <command>M-$</command> とするとちょうど ispell メジャーモードのように画面の上部に
	オプションが表示されます。
	  <!-- If you have activated the ispell minor mode and get a
	  beep, it means you have misspelled a word. To correct the
	  word, stop immediately and press <command>M-$</command>
	  and you will get the options in the top of the screen,
	  just like in the ispell major mode! -->
	</para>
      </listitem>
    </itemizedlist>
    <para>
	<screenshot>
	  <screeninfo>ispell メジャーモードの例<!-- Example of the Ispell Major Mode --></screeninfo>
	  <graphic fileref="graphic/ispell-example"></graphic>
	</screenshot>
    </para>
  </sect2>
  <sect2>
    <title>出力の書式と画像<!-- Formats and Graphics --></title>
    <para>SGML 自体は任意の他の形式に手際良く変換できるけれども、実際に異なる媒体で配布するつもりなら考慮に入れなくてはならない
    いくつかの注意点があります。例えば、保守したい文書を Postscript と HTML の両方で配布するとしましょう。もし文書に画像が
    含まれていなければ大きな問題はありません。しかし、もし画像があると、二つのこと - 双方の媒体に対する画像の大きさとファイル形式 
    - を考慮に入れる必要があります。800x600 のスクリーンショットはおそらく HTML なら完璧に表示されますが、A4 サイズの PDF では
    見栄えが良くありません。また PNG は Postscript ファイルの中で直接表示させることはできませんし、EPS 画像を HTML ファイル内で
    表示させることもできません。
      <!-- Although SGML itself can cleanly convert to any other format,
      there are some considerations that you have to take into
      account if you are actually deploying to different media. For
      example, let's say you want to maintain a document that will
      be deployed both in PostScript and HTML. If the document has
      no graphics, there is really no major issues. But if you have
      graphics, you have to take into account two things: the
      graphic's size and format for each media. A screen-shot of
      800x600 might be perfectly displayed in HTML, but it will not
      look so good in an A4 paper in PDF. Also, you cannot display a
      PNG directly in a PostScript file, nor can you display an EPS
      figure in HTML. -->
    </para>
    <para>おそらく SGML でもこれをプリプロセッサのようにしてやってしまう方法があるでしょうから、もしみつけたら
    この文書を更新することにします。しかしここでは私のみつけたこの仕事を十分よくなしとげる簡単な方法をあげておきます:
      <!-- There is probably a pre-processor kind of way to do this in
      SGML, and if I find one I will update this
      document. Nevertheless, here is a simple way I have found that
      works quite well: -->
      <itemizedlist>
	<listitem>
	  <para>すべての画像を保存する <emphasis>graphic</emphasis>サブディレクトリをつくります。このディレクトリ内に
	  それぞれの媒体形式に対するサブディレクトリをつくります。私の場合は Gimp を使い主に PS と HTML で配布しているので、
	  三つのサブディレクトリ(XCF、EPS、PNF)をつくっています。
	    <!-- Create a <emphasis>graphic</emphasis> subdirectory to
	    store all your graphics. In this directory, create
	    subdirectories for each media format. In my case I use
	    the Gimp and deploy mainly in PS and HTML, so I have
	    three subdirectories: XCF, EPS, and PNG. -->
	  </para>
	</listitem>
	<listitem>
	  <para>画像をつくったら各々のサブディレクトリに異なるファイル形式で保存しておきます。XCF と EPS では
	  拡張子をつけておきますが、PNG にはつけません(つまり私の PNG ファイルには拡張子がありません)。
	    <!-- When you create a graphic, save it in the different
	    formats in each sub-dir. For the XCF, and EPS keep, the
	    extension, but don't do it for the PNG (in other words
	    my PNG files have no extension). -->
	  </para>
	</listitem>
	<listitem>
	  <para>文書内ではファイルの種類を指定<emphasis>してはいけません</emphasis>、というのは逐語的に解釈する HTML への変換を
	  除けば、各々の変換ルーティンは異なる拡張子を期待しているからです。こういうわけで前述のように PNG ファイルには .png
	  拡張子をつけないようにといったわけです。ブラウザはファイルの種類を何とか判別することができます。次はスクリーンショットの
	  例です:
	    <!-- In your document <emphasis>do not</emphasis> specify the
	    file type, as each conversion routine will expect a
	    different extension, except the HTML conversion which
	    takes this literally. This is why I asked you above
	    not to have the .png extension on your PNG files. The
	    browser can determine the file type anyway. Here is an
	    example for a screen shot: -->
<programlisting><xi:include href="scr.txt" parse="text" /></programlisting>
	  </para>
	</listitem>
	<listitem>
	  <para>変換する前に正しいファイルが <emphasis>graphic</emphasis>ディレクトリ内に存在していることを確かめておいて下さい。
	  PS 変換では .eps 拡張子を持つファイルを期待するので、文書内で画像の種類を指定する必要はありません。
	    <!-- Before running the convert make sure you have the right
	    files in the <emphasis>graphic</emphasis> directory. The
	    PS conversion will expect a filename with an .eps
	    extension so you don't have to specify it in the
	    graphic declaration in your document. -->
	  </para>
	</listitem>
	<listitem>
	  <para>HTML 変換では画像ファイルは新規作成ディレクトリに複製されません。手動でそれらを複製し、画像ディレクトリをつくらなければ
	  なりません。PNG ファイルには拡張子がないので、HTML の中の IMG パラメータには理想的なパスと SGML から受けついだファイル名が
	  入ることになります。
	    <!-- HTML conversion does not copy the graphic files to the
	    subdirectory it creates. You have to copy these
	    manually, and create the graphic directory
	    yourself. Since the PNG files have no extension the IMG
	    parameter in the HTML will have the identical path and
	    filename of it's SGML ancestor. -->
	  </para>
	</listitem>
      </itemizedlist>
    </para>
  </sect2>
  <sect2>
    <title>相互参照、リンク、URL<!-- Cross Referencing, Links, and URLs --></title>
    <para>SGML ではすべての要素がユーザー定義の ID を持つことができます。この ID で異なる目的、媒体出力にでもこの要素を
    参照することができます。HTML や他のハイパーリンク可能な媒体で配布しようとしているなら、文書の異なる節へのハイパーリンク
    させるのにとても便利です。これらリンクについては Docbook ではいくつかの異なる方法で定義されていますが、そのいくつかの
    興味深いものをここであげてみます。
      <!-- Every element in SGML can have a user defined ID. This ID
      let's you reference this element for different purposes and
      media outputs. If you are deploying in HTML or other hyper-link
      enabled media, it may be very useful to let your users
      hyper-link to different sections of the document. These links
      can be declared in several different ways in Docbook and I
      will show you some interesting ons here. -->
    </para>
    <sect3>
      <title>XRef</title>
      <para>私は XRef がとても多芸多才で、紙の出力(PostScript)でも HTML 出力でも同様に機能することをみつけました
      (さらに HTML ではハイパーリンクも付け加えられます)。
	<!-- I find XRef very versatile since it works in paper output
	(Postscript) and in HTML output in the same way. Although in
	HTML, it also adds the hyper-link. -->
      </para>
      <para>XRef を使うには最初に link-end ノード(指し示すノード)を指定しなければなりません。それにはただその指定したい
      要素の開始タグに移動し、<command>C-c +</command>とし、パラメータ <parameter>ID</parameter>を選択し、名前を付けます:
	<!-- To use XRef you must first identify the link-end node (the
	node that you are going to be pointing to. Just go to the
	opening tag of the element you want to identify and do
	<command>C-c +</command> and select the parameter
	<parameter>ID</parameter>, then give it a name: -->
	<programlisting>
&lt;sect1 id="wpf"&gt;
&lt;title&gt;The Word Processing Fantasy&lt;/title&gt;
	</programlisting>
      </para>
      <para>この要素(この場合は節)を参照したいと思ったらいつでもただ次のようなタグを使うだけで良いのです:
	<!-- Whenever you want to make a reference to this element, in
	this case it's a section, just use the following tag: -->
	<programlisting>
which where listed in &lt;xref linkend="wpf"&gt;.
	</programlisting>
      </para>
    </sect3>
    <sect3>
      <title>URL</title>
      <para>URL の宣言は非常に簡単で、単に ULink 要素を次の例のようにして使うだけです:
	<!-- To declare a URL is very simple, just use the ULink element
	as shown in the following example: -->
<programlisting><xi:include href="url-link.txt" parse="text" /></programlisting>
      </para>
    </sect3>
  </sect2>
  <sect2>
    <title>他の巧妙なテクニック<!-- Other neat tricks --></title>
    <para>ここでは私が Emacs と PSGML モジュールの利用を通して発見した他の巧妙なテクニックについてふれてみようと思います。この節はおそらく
    時間とともに内容が増えていくはずですので引き続き注意していて下さい...
      <!-- Here I will cover other neat stuff that I've discovered
      through the use of Emacs and the PSGML module. This section
      will probably grow over time so stay tuned... -->
    </para>
    <sect3>
      <title>とりあえずマークアップ<!-- Unplanned Mark-up --></title>
      <para>この節はもっと良いタイトルをみつけられなかったのでこれで我慢して下さい。文書を校正していて何かを強調したいとします。
      <command>C-c  C-e</command>ではじめたものの終了タグは期待していなかったとします。この場合使うべきなのは
      <command>C-&lt;</command> であり、開始タグを選択でき、終了タグは生成しません。開いているタグを閉じたければ、ただ
      <command>C-/</command>と入力するだけでよく、こうすると自動的に適切な終了タグを得ることができます!
	<!-- I really couldn't find a better title for this section, so
	bear with me here. Suppose you are proofreading your
	document and find you wanted to emphasize something. If you
	use <command>C-c C-e</command> you will wind up with a start
	and end tag which is not what you really want. In this case
	you should use <command>C-&lt;</command> this will let you
	choose the start tag but will not create and end tag. When
	you want to close the open tag, just type
	<command>C-/</command> and you will automagically get the
	appropriate closing tag! -->
      </para>
    </sect3>
    <sect3>
      <title>タグパラメータ<!-- Tag Parameters --></title>
      <para>Docbook や HTML を書いているとタグは非常に様々な異なるパラメータを持っていて覚えるのも既定値を使うのも難しいということが
      わかるでしょう。このような場合、開始タグのどこでもカーソルを合わせて単に <command>C-c +</command>とします。するとパラメータ
      リストが表示され、異なるパラメータと(定義済みならば)すべての可能で正当な値を示してくれます。この機能は実に素晴しく、
      <emphasis>すべての</emphasis>マークアップ編集に不可欠であるとわかります。つまり、ほとんどのものについては自動補完から推測できるので
      Docbook あるいは HTML のリファレンスは必要ないということです。もちろんこれは使っているマークアップの標準について学ばなくても
      良いという言い訳にはなりませんが、しかし、単にこれらを覚えておくためのリファレンスの必要性をなくしてくれます。
	<!-- When writing Docbook or HTML you will find that tags may
	have all kinds of different parameters which are either hard
	to remember or have predefined values for them. In these
	cases, just put the cursor anywhere on the opening tag and
	do <command>C-c +</command>. This will open the parameter
	list which will guide the user into the different parameters
	and <emphasis>even</emphasis> list all the possible legal
	values for these parameters (if they are defined). I find
	this functionality absolutely impressive and essential to
	<emphasis>any</emphasis> mark-up editing. I mean, you don't
	need to have the Docbook or HTML reference with you since
	most of the stuff you can infer from the auto-completion. Of
	course, this does not excuse you from learning the mark-up
	standard you are working with, but does eliminate the need
	to have these references just to remember stuff. -->
      </para>
    </sect3>
    <sect3>
      <title>必要なもの各種<!-- Stuff you need to have around --></title>
      <itemizedlist>
	<listitem>
	  <para>GNU Emacs マニュアル。私は FSF の印刷されたマニュアルを買い、それが非常に完成度が高く、一般に信じられているのとは
	  違って、とても簡単で読むのが楽しいということを発見しました。FSF 版とは違ったアプローチの O'Reily の GNU Emacs 本も
	  持っていますが、こちらもとても好きです。
	    <!-- GNU Emacs Manual. I bought the FSF's printed manual
	    which I find very complete, and contrary to popular
	    belief very easy and pleasurable to read. I also have
	    the O'Reily GNU Emacs book which has a different
	    approach than the FSF's one, and I also like it very
	    much. -->
	  </para>
	</listitem>
	<listitem>
	  <para>Debian の linuxdoc-tools パッケージについてきた LinuxDoc-Tools ユーザーガイド。これは SGML とそしてもちろん
	  linuxdoc の非常に優れたガイドです。
	    <!-- The LinuxDoc-Tools User's Guide that comes with
	    linuxdoc-tools pakage in Debian. This is a great guide
	    to SGML and of course Linuxdoc. -->
	  </para>
	</listitem>
	<listitem>
	  <para>Docbook DTD のガイド。これはほとんどの Linux ディストリビューションでは通常は
	  <filename>/usr/share/doc/</filename> にインストールされます。もちろんこれには Docbook 文書を
	  インストールしなければなりません。また Docbook の本は沢山ありますが、中でも特に O'Reily の非常に優れた本は GPL です!
	  これは O'Reily の本の中で唯一の GPL なものだと思います。
	    <!-- Guide to the Docbook DTD. This is usually installed in
	    <filename>/usr/share/doc/</filename> in most Linux
	    distributions. Of course, you have to install the
	    Docbook documentation for this to happen. There are also
	    many books on Docbook, including an excellent O'Reily
	    book which is among other things GPL! I think it's the
	    only GPL'd O'Reily book out there. -->
	  </para>
	</listitem>
	<listitem>
	  <para>PSGML メジャーモードをインストールするとついてくるガイド。大抵のものと同様に通常は
	  <filename>/usr/share/doc/psgml</filename> にインストールされます。このガイドはあなたが知りたいであろう残りの
	  PSGML の技について教えてくれることでしょう。
	    <!-- The PSGML guide that comes with the PSGML major mode
	    installation. As most of the doc, it's usually installed
	    in <filename>/usr/share/doc/psgml</filename>. This guide
	    will show you the rest of PSGML tricks you will want to know. -->
	  </para>
	</listitem>
      </itemizedlist>
    </sect3>
    <sect3>
      <title>便利で興味深いリンク集<!-- Useful and interesting links --></title>
      <itemizedlist>
	<listitem>
	  <para>
	    <ulink
	      url="http://www.tldp.org/HOWTO/DocBook-Demystification-HOWTO/">
	      http://www.tldp.org/HOWTO/DocBook-Demystification-HOWTO/
	    </ulink>
	  </para>
	</listitem>
	<listitem>
	  <para>
	    <ulink
	      url="http://www.tldp.org/HOWTO/DocBook-Demystification-HOWTO/">
	      http://www-106.ibm.com/developerworks/xml/library/x-emacs/#1
	    </ulink>
	  </para>
	</listitem>
      </itemizedlist>
    </sect3>
  </sect2>
</sect1>

<!-- vim: sw=2 sts=2 ai si sm :
-->

