%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Contents: LaTeX での特記事項
% $Id: spec.tex,v 1.00 2000/06/28 20:18:32 nomura Exp $
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
\chapter{特記事項}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{intro}
  大きな文書を作成する際には，索引，参考文献などの作成に
{\LaTeX}が大いに役立つでしょう．
  もっと詳しい説明や高度な使い方については，
{\manual}や{\companion}を参照して下さい．
\end{intro}


%============================================================
\section{EPSファイルの挿入}
%============================================================
  {\LaTeX}は，画像や図といった浮動体を扱う基本的機能として，
\texttt{figure}環境や\,\texttt{table}環境を利用します．

  標準の{\LaTeX}や{\LaTeX}の拡張パッケージには，
実際に\jwi{ず@図}\index{graphics}，\jwi{がぞう@画像}を
文書中に取り込む方法がいくつかあります．
  しかし，ほとんどの人にとってはそんな方法を理解するのは
非常に面倒です．
  そこでこの冊子では，詳しくは説明しません．
  詳細は，{\companion}または{\manual}を参照して下さい．

  図を文書中に取り込む簡単な方法としては，
特別なソフトウェアを使用して図を作成し\footnote{%
  このようなソフトウェアとして，XFig，CorelDraw!，Freehand，
Gnuplotなどがあります}，それを文書に貼り込む方法があります．
  もう一度言っておくと，{\LaTeX}には図を文書中に
取り込むための方法が多くのパッケージで用意されています．
  ここでは，扱いが簡単で広く使用されているという理由から
\wi{Encapsulated PostScript}（EPS）による図の取り扱い方に
ついてのみ説明を行います．\index{EPSファイル}
  EPS形式の図を扱うには，
出力のための\wi{PostScript}プリンタ\footnote{%
  PostScriptを出力する別の方法として，
\texttt{CTAN:/tex-archive/support/ghostscript}から
入手できる\,\textsc{\wi{GhostScript}}があります．
  Windowsの使用者であれば，\textsc{GSvies}もあれば
便利でしょう．}が必要になります．

  図を文書中に取り込むための一連のコマンドは，
D.~P,~Carlisleが作成した\pai{graphicx}パッケージを
読み込むことで使用可能になります．
  このパッケージは，``graphics''と呼ばれるパッケージ群の
一部です\footnote{%
\texttt{CTAN:/tex-archive/macros/latex/packages/graphics}}．

  PostScriptプリンタが使用できる環境にあり，使用している
コンピュータシステムに\,\textsf{graphicx}パッケージが
インストールされていれば，次に示す順番に従って
文書中に図を取り込むことができます．

\begin{enumerate}
 \item まず，作成した図をEPS形式でファイルに保存します\footnote{%
       もし使用しているソフトウェアがファイルの保存に
       EPS形式を指定できないのであれば，PostScript対応の
       プリンタドライバ（例えば，AppleのLaserWriterなど）を
       インストールし，このドライバで出力先をファイルにして
       印刷して下さい．
       運がよければ，出力されたファイルはEPS形式に
       なっているはずです．
       ただし，EPSは1ページの図しか扱うことができません．
       プリンタドライバによっては，EPS形式で出力できるように
       対応しているものもあります．}．

 \item 次に図を取り込もうとしている文書のプリアンブルに，
       次のコマンドを書いて\,\textsf{graphicx}パッケージを
       読み込みます．

       \begin{command}
       \verb|\usepackage[|\emph{driver}\verb|]{graphicx}|
       \end{command}

       ここでオプション\emph{driver}は，``dviファイルから
       postscriptファイルに変換する''ために使用する
       アプリケーション名です．
       広く使われているものに，\texttt{dvips}があります．
       {\TeX}では，文章に図を取り込むための標準方法が
       決められていないので，使用するドライバ\footnote[0]{%
       出力装置に\,\texttt{dvi}ファイルを出力する
       ソフトウェア．}の名前を文書の執筆者がオプションで
       指定する必要があるのです．
       \emph{driver}の名前を{\LaTeX}が知っていれば，
       \textsf{graphicx}パッケージは図に関する情報を
       \texttt{.dvi}ファイルに取り込むための正しい方法を
       選びます．
       そして，プリンタはその情報を解釈し，
       \texttt{.eps}ファイルを正しく文書中に取り込むことが
       できるようになるのです．

 \item 図の\emph{ファイル}を文書中に挿入するために，
       次のコマンドを使用します．

       \begin{command}
       \ci{includegraphics}\verb|[|\emph{key}=\emph{value}, \ldots\verb|]{|\emph{file}\verb|}|
       \end{command}

       オプション引数には，変数\emph{keys}と
       その値\emph{values}をカンマで区切って
       複数与えることができます．
       \emph{key}は，挿入する図の幅，高さ，回転角度を
       指定するために使用します．
       表\ref{keyvals}に主な変数を示しておきます．
\end{enumerate}

\begin{table}[htb]
 \caption{\textsf{graphicx}パッケージで使用できる主な変数名}\label{keyvals}
 \begin{lined}{9cm}
  \begin{tabular}{@{}ll}
   \texttt{width} & 文書中に出力する際の図の幅を指定する\\
   \texttt{height}& 文書中に出力する際の図の高さを指定する\\
   \texttt{angle} & 右回りの回転角度を指定する\\
   \texttt{scale} & 図の拡大・縮小率を指定する\\
  \end{tabular}

  \bigskip
 \end{lined}
\end{table}

  次の例を見れば，引数の指定方法がわかるでしょう．

\begin{code}
\begin{verbatim}
 \begin{figure}
  \begin{center}
   \includegraphics[angle=90, width=0.5\textwidth]{test}
  \end{center}
 \end{figure}
\end{verbatim}
\end{code}

\noindent
  これは，\texttt{test.eps}ファイルに描かれている図を
文書中に取り込む例ですが，\emph{まず最初に}図を
右回りに90度回転させ，\emph{次に}版面幅の半分になるように
図の幅を変更します．
  この際，高さに関するパラメータは指定されていないので，
縦横比は元の図のまま保たれます．
  幅と高さは，長さの単位を用いて指定することもできます．
  長さの単位に関しては，\pageref{units}ページの
表\ref{units}を参照して下さい．
  参考文献\cite{graphics}や\cite{eps}を読めば，
図の取り込みに関してもっと詳しく知ることができます．


%============================================================
\section{参考文献}
%============================================================
  \jwi{さんこうぶんけん@参考文献}を
作成するには \ei{thebibliography}環境を使用し，
それぞれの文献を次のコマンドで指定します．

\begin{command}
\ci{bibitem}\verb|{|\emph{marker}\verb|}|
\end{command}

\noindent
  引数の\emph{marker}は，文書中でその文献を参照する際に使用
するキーワードです．
  また，文献は次のコマンドを用いて参照します．

\begin{command}
\ci{cite}\verb|{|\emph{marker}\verb|}|
\end{command}

  参考文献の番号は，自動で付けられます．
  \verb|\begin{thebibliography}| 環境の引数で，
この番号を出力する最大幅を指定します．
  以下の例では，\verb|{99}|と指定することによって，
二桁を越える番号を持つ文献がないことを{\LaTeX}に伝え，
その幅内で番号を揃えて出力します．

\begin{example}
Partl~\cite{pa} has 
 proposed that \ldots

\begin{thebibliography}{99}
 \bibitem{pa} H.~Partl: 
  \emph{German \TeX},
  TUGboat Vol.~9, No.~1 ('88)
\end{thebibliography}
\end{example}
%\begin{example}
%Partl~\cite{pa}は，
%提案した．\ldots
%
%\begin{thebibliography}{99}
% \bibitem{pa} H.~Partl: 
%  \emph{German \TeX},
%  TUGboat Vol.~9, No.~1 ('88)
%\end{thebibliography}
%\end{example}
\chaptermark{特記事項} % 上述の bibliography の例題によって
                       % 書き換えられるのを修正するために必要．
\thispagestyle{fancyplain}

  長い文書の参考文献を作成するためには，
{Bib\TeX}が必要になるかもしれません．
  {Bib\TeX}は，たいていの{\TeX}システムと一緒に
配布されており，参考文献データベースを読み込み，
その中から作成中の文書内で参照したの引用文献を抜き出して
参考文献を作成します．
  {Bib\TeX}が生成する参考文献の体裁は，
広く使われ確立されたデザインとなるように定義された
スタイルファイルに基づいています．


%============================================================
\section{索引}\label{sec:indexing}
%============================================================
  多くの本で\jwi{さくいん@索引}は，とても役に立つものです．
  {\LaTeX}と\,\texttt{makeindex}\footnote{%
  8文字を越えるファイル名を扱うことのできないシステムでは，
\texttt{makeidx}という名前になっていることも
あります．}プログラムを使用すると，
索引を非常に簡単に作成することができます\footnote[0]{%
  日本語による索引作成プログラムには，
ASCIIの\,\texttt{mendex}があります．}．
  ここでは，基本的な索引作成コマンドについてのみ説明します．
  詳細については，{\companion}を参照して下さい．
\index{makeindexプログラム}\index{makeidxパッケージ}

  {\LaTeX}で索引を作成するには，以下のコマンドを用いて，
\pai{makeidx}パッケージをプリアンブルで
読み込まなければなりません．

\begin{command}
\verb|\usepackage{makeidx}|
\end{command}

  そして，次のコマンド

\begin{command}
\ci{makeindex}
\end{command}

\noindent
を入力ファイルのプリアンブルに書くことによって，
実際に索引を作成するコマンドが有効になります．

  索引は，次のコマンドで作成し，

\begin{command}
\ci{index}\verb|{|\emph{key}\verb|}|
\end{command}

\noindent
\emph{key}が索引の見出しになります．
  索引に出力したい用語が文章中に現れるところで
このコマンドを入力します．
  表\ref{index}は，引数\emph{key}の書き方を
いくつかの例と共に示しています．

\begin{table}[!tp]
 \caption{索引の指定例}\label{index}
 \begin{center}
  \begin{tabular}{@{}lll@{}}
   \textbf{例}& \textbf{索引の見出し}& \textbf{注釈}\\\hline
   \rule{0pt}{1.05em}\verb|\index{hello}|& hello, 1& 簡単な指定方法\\ 
   \verb|\index{hello!Peter}|& \hspace*{2ex}Peter, 3& `hello'の副索引\\ 
   \verb|\index{Sam@\textsl{Sam}}|& \textsl{Sam}, 2& 索引フォントの変更\\ 
   \verb|\index{Lin@\textbf{Lin}}|& \textbf{Lin}, 7& 同上\\ 
   \verb.\index{Jenny|textbf}.& Jenny, \textbf{3}& ページ番号フォントの変更\\
   \verb.\index{Joe|textit}.& Joe, \textit{5}& 同上
  \end{tabular}
 \end{center}
\end{table}

  入力ファイルを{\LaTeX}で処理すると，
それぞれの\,\verb|\index|コマンドは，
その出現ページと共に適切な索引見出しを作成し，
それを特別なファイルに書き出します．
  ファイル名は，{\LaTeX}が処理する入力ファイルと
同じ名前を持ち，拡張子は\verb|.idx|となります．
  そして，この\,\texttt{.idx}ファイルを\,\texttt{makeindex}で
処理します．

\begin{command}
\texttt{makeindex} \emph{filename}
\end{command}

\noindent
  \texttt{makeindex}は，\emph{filename}と同じ名前を持つ
拡張子\,\texttt{.idx}ファイルをソートして，
拡張子が\,\texttt{.ind}の索引ファイルを作成します．
  再び{\LaTeX}で入力ファイルを処理すると，
次のコマンドが書かれた場所に，ソートした索引ファイルを
読み込んで索引を出力します．

\begin{command}
 \ci{printindex}
\end{command}

  {\LaTeXe}で導入された\pai{showidx}パッケージを用いると，
入力した\,\texttt{index}コマンドの引数を全て
文書の左マージンに出力します．
  これは，文書の校正や索引の確認を行うのにとても便利です．


%============================================================
\section{凝ったヘッダ}\label{sec:fancy}
%============================================================
  Piet van Oostrumによる\pai{fancyhdr}パッケージ\footnote{%
\texttt{CTAN:/tex-archive/macros/latex/contrib/supported/fancyhdr}
より入手可能です．}を使用すると，いくつかの簡単なコマンドで，
文書のヘッダやフッタを自由に設定することができます．
  このページ上部を見れば，このパッケージでできることが
わかると思います．

\begin{figure}[!tb]
 \begin{lined}{\textwidth}
  \begin{verbatim}
  \documentclass{book}
  \usepackage{fancyhdr}
  \pagestyle{fancy}
  % 上のコマンドで，章と節の見出しの小文字での入力を保証します．
  \renewcommand{\chaptermark}[1]{\markboth{#1}{}}
  \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
  \fancyhf{}  % 現在のヘッダとフッタを無効にします．
  \fancyhead[LE,RO]{\bfseries\thepage}
  \fancyhead[LO]{\bfseries\rightmark}
  \fancyhead[RE]{\bfseries\leftmark}
  \renewcommand{\headrulewidth}{0.5pt}
  \renewcommand{\footrulewidth}{0pt}
  \addtolength{\headheight}{0.5pt} % 罫線のための高さを確保
  \fancypagestyle{plain}{%
    \fancyhead{} % plainで定義されたページのヘッダと
    \renewcommand{\headrulewidth}{0pt} % 罫線をなしにする
  }
  \end{verbatim}
 \end{lined}
 \caption{\pai{fancyhdr}パッケージの使用例}\label{fancyhdr}
\end{figure}

  ヘッダやフッタを設定するときの問題点は，
ヘッダ等に書くための節や章の見出しの設定方法です．
  {\LaTeX}は，これを二段階の方法で実現しています．
  まず，ヘッダやフッタの定義段階では，
現在の章と節の見出しをそれぞれ \ci{rightmark}コマンド
と \ci{leftmark}コマンドを用いて表します．
  この二つのコマンドの値は，\verb|\chapter|コマンド
や\,\verb|\section|コマンドが処理される際に，
常に書き換えられます．

  柔軟にヘッダやフッタを設定できるように，
\verb|\chapter|コマンド
などでは \ci{rightmark}コマンドや \ci{leftmark}コマンドを
直接書き換えることはできないようになっています．
  \ci{rightmark}コマンドや \ci{leftmark}コマンドを
書き換えるには，\ci{chaptermark}，\linebreak[1]
\ci{sectionmark}，\ci{subsectionmark}といった
別のコマンドが\,\verb|\chapter|コマンドなどから
呼び出されるのです．

  そのため，ヘッダに書かれる章見出しの出力様式を
変更したい場合には，\ci{chaptermark}コマンドを
再定義するだけでよいのです．

  図\ref{fancyhdr}は，\pai{fancyhdr}パッケージを使用して，
この冊子と同じヘッダを作成する例を示しています．
  とにかく，脚注で示したところからパッケージ一式を入手し，
その説明書を読んでみて下さい．


%============================================================
\section{入力通りの出力を行うパッケージ}
%============================================================
  この冊子の第2章で\ei{verbatim}\emph{環境}について
説明しましたが，この節では\pai{verbatim}\emph{パッケージ}に
ついて説明します．
  \pai{verbatim}パッケージは，{\LaTeX}本来の
\ei{verbatim}環境における制限を取り除き，
\ei{verbatim}環境を基に拡張，再定義したものです．
  特別目を見張るようなことではないのですが，
\pai{verbatim}パッケージでは新たな機能が加えられていますので，
それについてここで説明しておきます．

  \pai{verbatim}パッケージを読み込むと，

\begin{command}
 \ci{verbatiminput}\verb|{|\emph{filename}\verb|}|
\end{command}

\noindent
コマンドが使用できます．
  このコマンドは，ちょうど\ei{verbatim}環境中に
\emph{filename}のファイル内容をそのまま書いたように，
作成している文書中に別の文書を挿入して出力することができます．

  \pai{verbatim}パッケージは，一連の`tools'の一部として
配布されていますので，たいていのシステムには
インストール済みだと思います．
  このパッケージについての詳細は，
参考文献\cite{verbatim}を読んで下さい．


%============================================================
\section{壊れやすいコマンドの保護}
%============================================================
  \ci{caption}や \ci{section}のようなコマンドの
引数に与えられる文字列は，文書中に二度以上
（例えば，文書の該当個所と目次に）現れることがあります．
  そのため，\ci{section}コマンドのような引数内では
そのまま使用できないコマンドがいくつかあります．
  このようなコマンドは，\cih{fragile}
\jwi{こわれやすいコマンド@壊れやすいコマンド}と呼ばれます．
  壊れやすいコマンドには，\ci{footnote}コマンド，
\ci{phantom}コマンドなどがあります．
 これらの壊れやすいコマンドを使用するときには，
コマンドの前に \ci{protect}コマンドを付けることで
保護することができます．

  \ci{protect}コマンドは，すぐ後ろに続くコマンドだけに
影響するのであって，その引数まで保護するものではありません．
  多くの場合，余分に\ci{protect}コマンドを使用しても
問題になりません\footnote[0]{%
  ですから，問題がありそうだと思ったら
取りあえず \ci{protect}コマンドを書いておきましょう．
  でいいのかな?}．

\begin{code}
 \verb|\section{I am considerate|\\
 \verb|           \protect\footnote{and protect my footnotes}}|\footnote[0]{%
  このままだと目次にも脚注が出力されますので，
目次に脚注が必要なければオプション引数を使用して下さい．}
\end{code}
%\begin{code}
% \verb|\section{私は，思慮深い|\\
% \verb|         \protect\footnote{だから，脚注を保護する．}}|\footnote[0]{%
%  このままだと目次にも脚注が出力されますので，
%目次に脚注が必要なければオプション引数を使用して下さい．}
%\end{code}
  
  
%%% Local Variables: 
%%% mode: latex 
%%% TeX-master: "jlshort" 
%%% End:  
