+
+\end_layout
+
+\begin_layout Subsection
+バージョン管理と文書比較
+\end_layout
+
+\begin_layout Standard
+バージョン管理は、通常
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+diff
+\end_layout
+
+\end_inset
+
+ダンプを生成することによって、改訂版の間の変更点を検査するのが、典型的な使用法です。これは平文ファイルには有効なのですが、複雑な構造を持つ\SpecialChar LyX
+ファイルの場合には、あ
+まり便利ではありません。そこで、\SpecialChar LyX
+は独自の文書比較機能を提供しています。この機能を呼び出すには2つの方法があります。1つは、\SpecialChar LyX
+の
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+VC_COMPARE
+\end_layout
+
+\end_inset
+
+関数を直接呼び出す方法であり(詳細は\SpecialChar LyX
+関数説明書を参照)、もう1つは
+\begin_inset Flex MenuItem
+status collapsed
+
+\begin_layout Plain Layout
+旧改訂と比較\SpecialChar ldots
+
+\end_layout
+
+\end_inset
+
+メニューないしアイコンを使用する方法です。当該文書のうち、任意の2つの改訂版を比較することもできますし、編集中の現行版を古い改訂版と比較することもできます(この
+とき改訂版遡及数「
+\begin_inset Flex MenuItem
+status collapsed
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+
+」は、編集中のファイルと最後にコミットした改訂版との比較を意味します)。
+\end_layout
+
+\begin_layout Standard
+この機能は、SVNとRCSでサポートされていますが、RCSは、より複雑なバージョン付けスキームを持っているため、制約があります。ダイアログ中で改訂版を指定する際
+の数字は、つねにRCS改訂番号の最後の数を指し示します(例:「1.2.35」版のときには「35」)。現在のところ、改訂のGIT表記はサポートされておらず、HEAD~
+Xの形で表記されるXステップ前の改訂版を、編集中文書と比較することのみが可能です。
+\end_layout
+
+\begin_layout Section
+文芸プログラミング
+\end_layout
+
+\begin_layout Standard
+
+\noun on
+Kayvan Sylvan
+\noun default
+(kayvan@sylvan.com)改訂
+\noun on
+Edmar Wienskoski Jr.
+\noun default
+(edmar-w-jr@technologist.com)原文
+\end_layout
+
+\begin_layout Subsection
+はじめに
+\end_layout
+
+\begin_layout Standard
+この節の主な目的は、文芸的プログラミング(literate programming)のために、\SpecialChar LyX
+をどう使えばよいかをお見せすることです。ここでは、あなたがこのプロ
+グラミング技術をよくご存じで、「tangling」や「weaving」の意味するところを知っているものとして説明します。そうでない場合には、以下の各節にあるウェ
+ブリンクをたどってください。そこには、かつての開発の歴史から最新のツールチップまで、たくさんの良質なドキュメンテーションがあります。
+\end_layout
+
+\begin_layout Standard
+また、あなたが、\SpecialChar LyX
+の設定を変更することを厭わない程度まで\SpecialChar LyX
+に習熟しており、Xリソースファイルにも親しんでいることを前提にしています。そうでない場合は、あなたの必要と
+するトピックを扱っている、\SpecialChar LyX
+の他の説明書で調べてください。
+\end_layout
+
+\begin_layout Subsection
+文芸プログラミング
+\end_layout
+
+\begin_layout Standard
+以下は、文芸プログラミング FAQからの抜粋です。
+\end_layout
+
+\begin_layout Quotation
+文芸プログラミングは、人間が読むのに適した形でのドキュメンテーションとソースの組合わせです。実際、文芸的プログラムは楽しい読み物であるべきであり、さらには参加し
+たいとさえ思わせるべきなのです!(ボブ、ごめん。言わずにはいれなかった。)一般的に、文芸プログラムは、ソースとドキュメンテーションを同一ファイル上に結合したもの
+です。そして、文芸プログラミングツールは、ファイルを解析して、読むことのできるドキュメンテーションか、あるいはコンパイル可能なソースを生成します。文芸プログラミ
+ングのWEBスタイルは、D.
+\begin_inset space \thinspace{}
+\end_inset
+
+E.
+ Knuthが、\SpecialChar TeX
+組版ソフトウエアを開発中に作り出したものです。
+\end_layout
+
+\begin_layout Standard
+他のエキスパートの発言です。
+\end_layout
+
+\begin_layout Quotation
+
+\emph on
+文芸プログラミングは、冗長なコメント付けと何が違いますか?
+\end_layout
+
+\begin_layout Quotation
+3つの際立った特徴があります。重要な順に列挙すれば、
+\begin_inset Separator parbreak
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+推敲の順序が柔軟
+\end_layout
+
+\begin_layout Itemize
+ブラウジングの自動サポート
+\end_layout
+
+\begin_layout Itemize
+特に図式と数式を含んだドキュメンテーションの組版
+\end_layout
+
+\end_deeper
+\begin_layout Quotation
+などがあります。
+\end_layout
+
+\begin_layout Standard
+あなたの興味に火を付けたところで書誌情報を見てみましょう。
+\end_layout
+
+\begin_layout Subsubsection
+書誌情報
+\end_layout
+
+\begin_layout Standard
+完全な文芸プログラミング FAQは
+\end_layout
+
+\begin_layout Quote
+Literate Programming FAQ
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://www.xmarks.com/site/shelob.ce.ttu.edu/daves/lpfaq/faq.html
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+にあります。
+\end_layout
+
+\begin_layout Standard
+このFAQには、23(二十三です!)の文芸プログラミング用ツールが列挙されています。一部のツールは、特定のプログラミング言語用に特化したものですが、一般的な対象
+を持つものもあります。私は自分で使うのに、いくつかの理由から
+\noun on
+Noweb
+\noun default
+を選びました。
+\end_layout
+
+\begin_layout Itemize
+説明文書を\SpecialChar LaTeX
+でもHTMLでも出力できる。
+\end_layout
+
+\begin_layout Itemize
+開放的なアーキテクチャに持っているので、新しいフィルタをプラグインとして加えたり、自分が必要な特別な処理を実行することが容易である。
+\end_layout
+
+\begin_layout Itemize
+すでに利用可能となっているフィルタの良質なコレクションがある(HTMLはその一つです)。
+\end_layout
+
+\begin_layout Itemize
+無料である。
+\end_layout
+
+\begin_layout Standard
+Nowebのウェブページは
+\end_layout
+
+\begin_layout Quote
+Nowebホームページ
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://www.cs.virginia.edu/~nr/noweb/
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+にあります。ここから始めれば、たくさんの興味深いリンクや、文芸プログラミングの用例にたどり着くことができます。
+\end_layout
+
+\begin_layout Subsection
+\SpecialChar LyX
+とNowebを使った文芸プログラミング
+\end_layout
+
+\begin_layout Standard
+\SpecialChar LyX
+における文芸プログラミングのサポートは、\SpecialChar LyX
+の汎用変換機構を使用して実現しています。このサポートは「Noweb非依存」的な方法で提供されているので、LyXの設定を変
+更するだけで、自分の好きな他の文芸プログラミングツールを使って、この新しい\SpecialChar LyX
+の機能を利用することができます。
+\end_layout
+
+\begin_layout Subsubsection
+ドキュメントとコードの生成(weavingおよびtangling)
+\end_layout
+
+\begin_layout Paragraph
+nowebモジュールの使用
+\end_layout
+
+\begin_layout Standard
+Nowebと\SpecialChar LyX
+の導入に成功したならば、新規文書を開いたときにはいつも、文書クラスを選択した後、
+\family sans
+文書\SpecialChar menuseparator
+設定
+\family default
+メニューで「noweb」モジュールを追加するようにしてください。Nowebが正しく導入されていれば、「モジュール」リンクをクリックした際、利用可能リストに「no
+web」モジュールが表示され、文書に追加できるようになっています。
+\end_layout
+
+\begin_layout Paragraph
+コードの入力
+\end_layout
+
+\begin_layout Standard
+\SpecialChar LyX
+では、
+\begin_inset Flex Noun
+status collapsed
+
+\begin_layout Plain Layout
+Chunk
+\end_layout
+
+\end_inset
+
+という名前のレイアウトを使えば、コードを入力することができます。Nowebは次のようにchunks を区切ります。