天地有情

[LaTeX] childdoc --- \includeされた子ドキュメントも直接コンパイルする

§1 はじめに

\includeコマンドは,大きなドキュメント(bookなど)を
メインファイルと複数のチャイルドファイル(chapterを含む)に構造化する
メカニズムを提供します.

childdocパッケージは,\includeに含まれるドキュメントセクションを
個々のファイル毎に直接コンパイルできるようにするインタフェース
をもちます.

チャイルドファイルのコンパイルでは,生成された文書はメインファイルとは別に
チャイルドの名前をもちます.

1.1 インストール

必要に応じて,CTAN( http://www.ctan.org/pkg/childdoc )から
ダウンロードしてください.

TeXLive/W32TeX などには標準でインストールされています.

1.2 マニュアル

コマンドラインから texdoc childdoc を実行するか,
上記に同梱の childdoc.pdf をお読み下さい.

§2 使い方

パッケージchilddoc は標準のLaTeX ".sty"スタイルファイルではありません!

したがって,非標準的な方法で呼び出す必要があります.

メインのLaTeX ファイルの \documentclass文の前に,次のコマンドを追加します.

\input{childdoc.def}
\childdoc{main}


チャイルドファイルには,次のコマンドを冒頭に追加します.

\input{main}

具体的には,以下のサンプルをご覧ください.

§2 サンプル

2.1 メインファイルの作成 (main.tex)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
\ProvidesFile{main.tex}
\input{childdoc.def}
\childdoc{main}

%
\documentclass[a6paper,papersize]{jsarticle}
\begin{document}
\addtocounter{page}{-1}
\begin{center}
{\LARGE\bfseries{}childdoc example\par}
\end{center}

\newpage

\include{child01}
\include{child02}

\end{document}
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■





2.2 チャイルドファイルの作成(1) (child01.tex)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
%%\providecommand{\version}{final}
\input{main}

\section{吾輩は猫}
吾輩は猫である.名前はまだ無い.\\
どこで生れたかとんと見当がつかぬ.
何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している.
吾輩はここで始めて人間というものを見た.
\endinput
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■





2.3 チャイルドファイルの作成(2) (child02.tex)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
%%\providecommand{\version}{final}
\input{main}

\section{草枕}
山路を登りながら、こう考えた。\\
智に働けば角が立つ。\\
情に棹させば流される。\\
意地を通せば窮屈だ。\\
とかくに人の世は住みにくい。

\endinput
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■




2.4 メインファイルのコンパイル

ptex2pdf -l main

結果

main.pdfの内容

chd-main01.png






2.5 チャイルドファイルのコンパイル

child01.tex および child02.tex も単独でコンパイルできます.

ptex2pdf -l child01
あるいは
ptex2pdf -l child02


結果

child01.pdfの内容

chd-child01.png



child02.pdfの内容

chd-child02.png





補遺

「美文書作成入門」(5~7版)をお持ちの方は,第17章当たりの "ファイルとフォルダの準備" の項を
ご参照ください.概略は以下のようです.

-----------------------------------------------------------------
章ごとのファイルを一括するための元締めとなる次のようなファイルを作り,同じフォルダに置きます.
ファイル名は main.tex とし, コンパイルは platex main とします.

章ごとに処理するにはプリアンブルに \includeonly{honron} とします.こうすれば honron.tex しか処理
されません.勿論,コンパイルは platex main とします.

\documentclass{jsbook}
\usepackage{...}
\begin{document}
  ----
  ----
  ----
\include{joron} %第1章 序論
\include{honron} %第2章 本論
\include{keturon} %第3章 結論
  ----
  ----
\end{document}
-----------------------------------------------------------------

上記の方法での \include機構にはいくつかの欠点があります.

● チャイルド(子)ファイルは独自にコンパイルすることはできず,
  メインファイルを介してのみコンパイルすることができます.
  チャイルドファイルをコンパイルしようとするとエラーが発生します.

● ニーズに合わせて\includeonlyコマンドを調整するには,メインファイルを変更する
  必要があります.これはメインファイルを複雑な状態にしてしまいます.

● 生成された文書は,常にメイン文書のファイル名をもちます.
  これは,いくつかのチャイルドファイルをコンパイルし,配布用に保管する場合には不便です

このような欠点を取り除いたのが childdocパッケージ です.

(EOF)
スポンサーサイト
  1. 2017/05/10(水) 09:49:34|
  2. LaTeX Tools