view paper/ARC195OS117-32.tex @ 3:9d45d91eb5b1

fix
author Yutaka_Kinjyo
date Sun, 13 Mar 2011 03:15:22 +0900
parents 68e53d04ce7c
children 2c915c8ae5e5
line wrap: on
line source

%Font の Warning 回避
\input{dummy-utf8}

\documentclass[techrep]{ipsjpapers}
\usepackage[dvipdfmx]{graphicx}

% 巻数,号数などの設定
%\setcounter{巻数}{51}
%\setcounter{号数}{10}
%\setcounter{volpageoffset}{1234}

%\受付{22}{7}{17}
%\採録{22}{9}{17}

\setcounter{year}{2011}

% ユーザが定義したマクロなど.
\makeatletter
\let\@ARRAY\@array \def\@array{\def\<{\inhibitglue}\@ARRAY}
\def\<{\(\langle\)\nobreak}
\def\>{\nobreak\(\rangle\)}
\def\|{\verb|}
\def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline}
\def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\}
\def\LATEX{\iLATEX\Large}
\def\LATEx{\iLATEX\normalsize}
\def\LATex{\iLATEX\small}
\def\iLATEX#1{L\kern-.36em\raise.3ex\hbox{#1\bf A}\kern-.15em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}
\def\LATEXe{\ifx\LaTeXe\undefined \LaTeX 2e\else\LaTeXe\fi}
\def\LATExe{\ifx\LaTeXe\undefined \iLATEX\scriptsize 2e\else\LaTeXe\fi}
\def\Quote{\list{}{}\item[]}
\let\endQuote\endlist
\def\TT{\if@LaTeX@e\tt\fi}
\def\CS#1{\if@LaTeX@e\tt\expandafter\string\csname#1\endcsname\else
	$\backslash$#1\fi}

%\checklines	% 行送りを確認する時に使用
\begin{document}%{

% 和文表題
\title[ゲームフレームワーク Cerium TaskManager の改良]%
	{ゲームフレームワーク Cerium TaskManager の改良}

% 英文表題
\etitle{improvement of Game Framework Cerium TaskManager}

% 所属ラベルの定義
\affilabel{RU}{琉球大学\\Ryukyu University}

% 和文著者名
\author{金城 裕\affiref{RU}\and
	河野 真治\affiref{RU}\and
	多賀野 海人\affiref{RU}\and
	小林 佑亮\affiref{RU}
        }
	
% 英文著者名
\eauthor{Yutaka Kinjyo\affiref{RU}\and
         Shinji Kono\affiref{RU}\and
         Kaito Tagano\affiref{RU}\and
         Yusuke Kobayashi\affiref{RU}
         }

% 和文概要
\begin{abstract}
ゲームフレームワーク Cerium TaskManager を開発した。PPE から処理が Mail 機能を用いて各 SPE に割り振られ並列実行される。
しかし、 PPE からの Mail 応答が遅い場合、 SPE の待ち時間が発生し、処理性能が低下する。
また、 SPE へのデータ転送を頻繁に行うと転送のオーバーヘッドがかかる。
それらを改良するために、Mail のタイミングの変更、SPE内のキャッシュの実装を行った。
その結果、例題を用いた計測では、約7倍の処理速度向上を確認した。
\end{abstract}
% 英文概要
\begin{eabstract}

\end{eabstract}

% 表題などの出力
\maketitle

%}{

% 本文はここから始まる
\section{はじめに}

%学生実験用にゲームフレームワーク Cerium を開発した。Cerium の TaskManager は
我々は並列プログラミング用のフレームーク Cerium TaskManager を開発している。Cerium は PS3/Cell, MacOSX, Linux
上で開発できる。それぞれのプラットフォームで同じプログラムで動作する。その中でも特にCellに特化しているといえる。
Cerium TaskManager では、関数やサブルーチンを Task として扱う。Task は Task 同士の依存関係
に従って、実行される。
Cell 上の場合、各SPEに Task が割り当てられ、並列に実行される。
Cerium は TaskManager に加え、SceneGraph, RenderingEngine で構成され、この3つでゲームフレームワークとして
動作する。
%RenderingEngine は Task に分割され、並列に処理される。
Task には input データ、output データ、依存関係を設定する。
%Task ベースでプログラミングする場合、処理をTaskに分割、input, output データの分割、Task同士の依存関係に工夫が必要になってくる。
ゲームや、WordCount, Sort を例題として実装した。
TaskManagerと、TaskManager を使うユーザ側の両方の視点から、
実装の際に直面した問題とその改良方法と効果について報告する。

%}{

\section{Cell Broadband Engine}

\begin{figure}[tb]
  \begin{center}
    \includegraphics[scale=0.5]{./images/cell-main.pdf}
  \end{center}
  \caption{Cell Broadband Engine Architecture}
  \label{fig:cell_arch}
\end{figure}

Cell Broadband Engine %\cite{cell}
 は、ソニー・コンピュータエンタテインメント、
ソニー、IBM , 東芝によって開発されたマルチコア CPU である。
Cell は、1基の制御系プロセッサコア PPE ( PowerPC Processor Element ) と
8基の演算系プロセッサコア SPE ( Synergistic Processor Element ) で構成される。
各プロセッサコアは、EIB (Element Interconnect Bus)
と呼ばれる高速なバスで接続されている。また、EIB はメインメモリや
外部入出力デバイスとも接続されていて、
各プロセッサコアは EIB を経由してデータアクセスをおこなう。
PPE はメインメモリにアクセスすることができるが、SPE は、246KBのLSにのみ直接アクセスできる。
DMAを用いると、SPE はメインメモリにアクセスできる。
本研究で用いた PS3Linux (Yellow Dog Linux 6.2) では、6 個の SPE を
使うことが出来る ( \figref{fig:cell_arch} )
この PPE と SPE の2種類の CPU を、プログラマ自身が用途に
合わせて適切に使い分けるように考慮する必要がある。

\subsection{Mailbox} \label{sec:mail-box}
Cellの機能にMailboxがある。
Mailbox は PPEとSPEとの間を双方向で、32bitのデータの受け渡しが可能であり、FIFOキュー構造になっている。
MailboxのひとつにSPEからPPEへデータを渡すためのキュー、SPU Outbound Mailbox があり、最大1個までのデータを蓄積できる。
もし、Outbound Mailbox がすでに1個のデータを保持している場合には、
SPEプログラムはPPEプログラム側でキューからデータを読み出すまでデータの書き込みを待ち続ける。

\subsection{DMA転送} \label{sec:dma}
SPE は LS 以外のメモリに
直接アクセスすることができず、PPE が利用するメインメモリ上のデータに
アクセスするには DMA (Direct Memory Access) を用いる。
DMA 転送とは、CPU を介さずに周辺装置とメモリとの間でデータ転送ことで、
Cell の場合はメインメモリと LS 間でデータの転送を行う。
DMA 転送するデータとアドレスにはいくつか制限がある。
転送データが 16 バイト以上の場合、データサイズは 16 バイトの倍数で、
転送元と転送先のアドレスが 16 バイト境界に揃えられている必要がある。
転送データが 16 バイト未満の場合、データサイズは 1,2,4,8 バイトで、
転送サイズに応じた自然なアライメントである (転送サイズのバイト境界に
揃えられている) ことが条件となる。

%}{

\section{Cerium の改良}\label{sec:Enum}\label{sec:item}

Cerium TaskManager では PPE で Task を定義し、PPE から SPE に Task を割り振る。
SPE は DMA転送(\ref{sec:dma})によって、Taskと、Taskで用いるデータを受け取る。
DMA転送を用いる場合、待ち時間が発生し、その間SPEの処理が止まる。
そのため、転送をパイプライン化し、DMA転送の待ち
を隠す必要がある。Cerium では SPE にスケジューラを持ち Task とデータ の 読み込み、実行、書き出し
をパイプライン化している。


\subsection{MailQueue} 
Task には依存関係が設定でき、PPE 側で解決する。実行完了した Task の情報を SPE 側から PPE 側に 通知するために CellのMailbox機能を使用した(\ref{sec:mail-box})。
SPEスケジューラは Task が処理完了になる毎に、Mailを Outbound Mailbox に書きこむので、PPE側でMailの読み込みが間に合わないと、待ちが入り、SPEの処理が
止まってしまう。


これを解消するためにMailQueueを導入した。MailQueueは、SPEから書き込みきれないMailを一時的に退避させるものである。
TaskListを書きだす時に溜まったQueueの中身をすべて書き出す。
Task完了を知らせる Mail書き出しの待ちは、Task毎から、TaskList毎になる。MailQueueを有効にしたときの実行速度は以下にようになる

32.442749 FPS なし

41.350211 FPS あり


これは、PPE側のMailチェックのやり方に関係している。
PPE では mail をチェックするAPIを用いて、mail の有無を確認し、

\subsection{PipeLine化}

Cerium では RenderinEngine を実装している。RenderinEngine は大きく分けて、
CreatePolygon, CreateSpan, DrawSpan, の
3つのTaskから構成されている。(\figref{fig:rendering-flow})

\begin{figure}[tb]
  \begin{center}
    \includegraphics[scale=0.4]{./images/rendering3.pdf}
  \end{center}
  \caption{レンダリングエンジンの流れ}
  \label{fig:rendering-flow}
\end{figure}

Span とは、ポリゴンに対するある特定Y座に関するデータを抜き出したものである。
この3つのTaskはそれぞれバリア同期を行いながら、順に実行される。
Cerium において、バリア同期を行う場合には二つの待ち時間がある。
\begin{itemize}
\item SPEが他のSPEを待つ時間
\item バリア同期が完了し、PPE側で次のTaskが作られる時間
\end{itemize}

この二つの時間の間SPEの処理が止まり、処理性能の低下につながる。
この待ち時間を回避するには、Taskの粒度を下げる、他のSPEの処理完了を待っているSPEに、別のTaskを割り当てる、等の方法がある。
別のTaskを割り当てるにはTaskの実行をパイプライン化する方法がある。

そこで、特に処理の重いDrawSpanTask と、CreatePolygon,CreateSpan のTask でパイプライン化を行った。
速度比較の対象として、SuperDandy と呼ばれる、学生実験で制作されたシューティングゲームを用いた。

\begin{table}[!htb]
  \begin{center}
    \caption{SPE の稼働率(busy\_ratio)} \label{tab:busy_ratio}
    \ecaption{busy ration of spe}
    \hbox to\hsize{\hfil
      \begin{tabular}{|c|l|l|c|} \hline
         & 改良前 & 改良後 & 性能\\ \hline
         dandy & 47.2\% & 78.1\% & 向上 \\ \hline
      \end{tabular}\hfil}
  \end{center}
\end{table}


\begin{table}[!htb]
  \begin{center}
    \caption{1秒辺りの Rendering Engine 全体の処理回数(Frame Per Second)} 
    \ecaption {hogehoge} \label{tab:FPS}
    \hbox to\hsize{\hfil
      \begin{tabular}{|c|l|l|c|} \hline
         & 改良前 & 改良後 & 性能\\ \hline
         dandy & 29.4 FPS & 49.5 FPS & 68\%向上 \\ \hline
      \end{tabular}\hfil}
  \end{center}
\end{table}

パイプライン化した結果、SPEの稼働率が向上し、FPSも向上した。
処理性能を維持するには、SPEはなるべく稼働させ続けなければならない。
その為には処理をTaskに分割し、並列実行するだけでなく、バリア同期などで、
SPEの待ち時間が発生することへ対処しないといけない。
その対処の一つとしてそれにパイプライン化は有効である。

\subsection{Memory Access}

WordCount を Cerium を用いて実装した。 Task 

ちゃんとデータ配分しないとまずい

\subsection{TaskArray}

Task の依存関係を解決するために、SPEから Mail によってPPEへと処理が完了したTaskの情報が通知される。
その際に、同じ種類のTaskは一つのMailでよい場合がある。
そこで、我々は Task Array を提案、実装した。
Task Array は、複数の Task をまとめて扱うことが出来る。Task Array に登録した順番で
依存関係を設定しているので、PPE で解決する Task の数が減り、 SPE からの TaskList 要求に応答しやすくなる。
また、一度に多くの Task を TaskList に登録できるため、 SPE 側からの TaskList 要求の回数が減り、待ち時間が
生じる可能性が減る。

Rendering Engine の中で、最も数が多く生成される DrawSpanTask を Task Array 化した。
地球と月を表示する例題を対象に効果を測った。 FPS(Frame Per Second) は、一秒間に
表示できる Frame 数のことである。

\begin{table}[htb]
  \begin{center}
    \caption{Rendering Engine の Task Array 化による比較}
    \label{tab:rendering-taskarray-compare}
    \begin{tabular}{|c|c|c|c|}
      \hline
      & Task & Task Array & 向上率\\
      \hline
      FPS & 16.4 & 18.5 \% & 34\%\\
      \hline
      dma wait & 3.34\% & 1.88\% & 2.34\%\\
      \hline
      mail wait & 84\% & 69\% & 15\% \\
      \hline
    \end{tabular}
  \end{center}
\end{table}

結果から DrawSpanTask を Task Array 化すると、FPS が上昇し、mail の wait 時間が減ったことが分かる。
Rendering Engine では、 PPE 側でも処理をするべき Task があり、常に PPE が稼動している状態になって
いる。そのため mail を処理する時間が遅れ、SPE のmail 待ちが発生していると考えられる。 Task Array 化
で Task をまとめることで SPE が一つの TaskList で多くの Task を実行できるようになったため、 TaskList
を要求する回数が減って、待ち時間が発生する回数も減少した。また、それは SPE からの mail の数が減った
ということなので、PPE 側の mail 処理の時間短縮になったと考えられる。

\subsection{SPEでのキャッシュ効果}

\subsubsection{テクスチャの管理}
Cerium ではソフトウェアレンダリングを、Task で定義し、処理している。描画の際には、SPEのLSへ必要なテクスチャの
情報を読み込む。SPE のメモリ領域は 256KB しかないため、テクスチャのデータを分割し転送する必要がある。
そこで、Cerium ではテクスチャを8x8のブロックに分割し、必要な時に沿って、ブロックを転送する方法を取った。

\subsubsection{テクスチャの縮小}
遠くにあるオブジェクトは小さく描画される。この場合、使用されるテクスチャは原寸大である
必要がない。そこで、オリジナルのテクスチャの他に縮小したテクスチャを用意し、描画される
オブジェクトの大きさによって、使用するテクスチャを変更することにした。

テクスチャは Tile に分割しなければならないため、縦横ともに 8 の倍数を保つようにする。
これまでは、テクスチャの縦横どちらかのサイズが最小 (8ドット) になったとき、縮小画像生成を終了
していたが、テクスチャのサイズが縦横で違う場合、長い方に合わせて空のデータを埋め込み 8 の倍数
の正方形にするように改良した。この改良によってテクスチャの最大縮小率を正確に求めることが出来るよう
になった。


この時に、頻繁にテクスチャを読み込む場合にはその読み込みがオーバヘッドが大きいになる。そこでキャッシュを実装した
ところ、読み込み回数を抑え、ボトルネックを解消することができた。




数字\\

はやーくなったね。


%}{

\section{デバック方法}\label{sec:ITEM}
並列プログラミングは、逐次処理のプログラムよりも、デバックがやり辛い。
Cell においてのデバック方法の例を紹介する。


%}{

\section{まとめ}

いままでの改良のおさらい

OpenCL との比較。これから

%}{

\subsection{一般的な注意事項}

会議の予稿集などとは違い,論文誌の体裁には伝統的かつ「堅い」約束事が数多くあ
る.そのためスタイルファイルも「堅い」ものとなっており,{\LaTeX} の特徴の一
つであるカスタマイズ機能は大幅に制限される.例えば \|\textheight| などのいわ
ゆる style parameter を変更するのは当然やめていただきたい.どのようなカスタ
マイズが許されるのかを示すのは難しいが,一つの基準として「スタイルファイルを
読んでみて大丈夫だと確信が持てる」こと以外はしないことを強く勧める.

なお,これらの変更やこのガイドで述べている「やめて欲しいこと」を行なっても,
{\bf エラーになったりせず単に結果が変になる}ことに注意していただきたい.

%}{

\subsection{論文の構成}\label{sec:config}

ファイルは次の形式で作る.なお下線部は投稿時にはなくてもよい.またトランザク
ション特有のコマンドなどについては,付録\ref{sec:app-trans}を参照されたい.
%
\begin{Quote}\small*
\|\documentclass{ipsjpapers}|\footnote{%
	{\LATExe} を2.09互換モードで使う場合,および{\LaTeX} 2.09を使う場合
	には \CS{documentstyle} を使用し,必要に応じてオプション引数に補助ス
	タイル名を加える.} または\\
\|\documentclass[draft]{ipsjpapers}|\footnotemark[1]\\
必要ならばオプションのスタイルを指定する.\\
必要ならば補助スタイルを \|\usepackage| で指定する.\\
\Underline{\|\setcounter{|{\bf 巻数}\|}{|\<巻数\>\|}|}\\
\Underline{\|\setcounter{|{\bf 号数}\|}{|\<号数\>\|}|}\\
\Underline{\|\setcounter{volpageoffset}{|\<先頭ページ\>\|}|}\\
\Underline{\|\|{\bf 受付}\|{|\<年\>\|}{|\<月\>\|}{|\<日\>\|}|}\\
\Underline{\|\|{\bf 採録}\|{|\<年\>\|}{|\<月\>\|}{|\<日\>\|}|}\\
必要ならばユーザのマクロ定義などをここに書く.\\
\|\begin{document}|\\
\|\title{|\<表題(和文)\>\|}|\\
\|\etitle{|\<表題(英文)\>\|}|\\
\Underline{\|\affilabel{|\<所属ラベル\>\|}%|}\\
\Underline{\mbox{}\qquad\qquad\|{|\<和文所属\>\|\\|\<英文所属\>\|}|}\\
\Underline{\mbox{}\qquad\qquad\ldots\ldots\ldots}\\
必要ならば \|\paffilabel| により現在の所属を宣言する.\\
\Underline{\|\author{|\<第一著者(和文)\>\|\and|}\\
\Underline{\leavevmode\phantom{\tt @author@}\<第二著者(和文)\>\|\and|}\\
\Underline{\leavevmode\phantom{\tt @author@} \ldots{} \|}|}\\
\Underline{\|\eauthor{|\<第一著者(英文)\>\|\and|}\\
\Underline{\leavevmode\phantom{\tt @eauthor@}\<第二著者(英文)\>\|\and|}\\
\Underline{\leavevmode\phantom{\tt @eauthor@} \ldots{} \|}|}\\
\|\begin{abstract}|\\
\mbox{}\quad\<概要(和文)\>\\
\|\end{abstract}|\\
\|\begin{eabstract}|\\
\mbox{}\quad\<概要(英文)\>\\
\|\end{eabstract}|\\
\|\maketitle|\\
\|\section{|\<第1節の表題\>\|}|\\
\mbox{}\quad $\ldots\ldots\ldots$\\
\mbox{}\quad\<本文\>\\
\mbox{}\quad $\ldots\ldots\ldots$\\
謝辞があれば \|acknowledgment| 環境を使ってここに記す.\\
\|\bibliographystyle{ipsjunsrt}| または\\
\|\bibliographystyle{ipsjsort}|\\
\|\bibliography{|\<文献データベース\>\|}|\\
付録があれば \|\appendix| に続いてここに記す.\\
\Underline{\|\begin{biography}|}\\
\Underline{\mbox{}\quad\<著者紹介\>}\\
\Underline{\mbox\qquad$\ldots\ldots\ldots$}\\
\Underline{\|\end{biography}|}\\
\|\end{document}|
\end{Quote}

%}{

\subsection{オプション・スタイル}\label{sec:ENUM}

\|\documentclass| (または \|\documentstyle|)の標準オプションとして,以下の6
つのものが用意されている.
%
\begin{ENUMERATE}%{
\item\|landscape     | オンライン出版用\footnote{%
%
このガイドのようにA4横長のオンライン出版用の製版を行なうオプションであり,デ
フォルトである.}
\item\|portrait      | 紙出版用
\item\|draft         | 投稿用
\item\|technote      | テクニカルノート用
\item\|preface       | 序文用
\item\|english       | 英文用
\item\|sigrecommended| 研究会推薦論文
\item\|invited       | 招待論文
\end{ENUMERATE}%}
%
これらのオプションは(意味があれば)任意の組合せで指定することができる.
また論文誌への投稿/掲載以外の目的で使うことができるように,研究
報告用の \|techrep|(付録\ref{sec:app-sig}参照)と,(著者自身のweb site等に
掲載するための)「著者版」を作成する \|private| も用意されている.さらに後
者では
%
\begin{itemize}\item[]%{
\|\copyrightnotice{|\<著作権情報\>\|}|
\end{itemize}%}
%
により,最初のページの左肩に学会著作権規定で定められた著作権に関する注意書を
出力することもできる.

\|\usepackage| で\footnote{{\LaTeX} 2.09の場合は \CS{documentstyle} のオプショ
ン引数で.}%
補助的なスタイルファイルを指定した場合には,製版用のファイル群に必ずスタイル
ファイルを含める.ただし,{\LATEXe} の標準配布に含まれているもの(たとえば 
\|graphicx|)については同封の必要はない.なおスタイルファイルによっては論文
誌スタイルと矛盾するようなものもあるので,スタイルファイルの性格を良く理解し
て使用していただきたい.

\subsection{巻数,号数などの記述}
学会より指示された巻数,号数,先頭ページ番号\hbox{(\|\volpageoffset|)},受
付/採録年月日(年は平成年)を記述する.なお学会からの指示がない項目に関して
は,記述しなくてよい.

%}{

\subsection{表題などの記述}\label{sec:Desc}

表題,著者名とその所属,および概要を前述のコマンドや環境により{\dg 和文と英
文の双方について}定義した後,\|\maketitle| によって出力する.
なお投稿時には,表題と概要がそれぞれ別のページに出力され,著者名と所属は出力
されない.
%
\begin{Description}
\item[表題]
\|\title| および \|\etitle| で定義した表題はセンタリングされる.文字数の多い
ものについては{\dg 自動的な改行が行なわれない}ので,適宜 \|\\| を挿入して改行
する.その際には各行は左詰めで組版され,その後最も長い行を基準にしてセンタリ
ングされる.なお和文表題は奇数ページのヘッダにも表示されるので,ヘッダに納ま
らないような長い表題の場合には
%
\begin{quote}
\|\title[|\<ヘッダ用表題\>\|]{|\<表題\>\|}|
\end{quote}
%
のように,ヘッダ用に短くしたものをオプション引数として指定する.

\item[著者名と所属]
各著者の所属を第一著者から順に \|\affilabel| を用いてラベル(第1引数)を付け
ながら定義すると,脚注に ${\dagger}1$ や ${\dagger}2$ を付けて和文の所属
(第2引数の\|\\|より前)と英文の所属(\|\\|より後)が出力される.なお,複数
の著者が同じ所属である場合には,一度定義するだけで良い.また論文執筆時と発行
時とでは所属が異なる場合には,\|\paffilabel| を用いて新しい所属を定義する.
新しい所属は脚注に${\ast}1$や${\ast}2$などを付けて出力される.

著者名は \|\author| と \|\eauthor| で定義し,複数の著者は \|\and| で区切る.
また各著者名の直後に \|\affiref|\allowbreak\hbox{\|{|\<所属ラベル\>\|}|}
をおいて(複数可)所属ラベル (\|\affilabel| や \|\paffilabel| で定義したも
の)を参照し,対応する脚注参照記号を付加する.

なお,和文著者名は必ず{\dg 姓と名を半角(ASCII)の空白で区切る}.

\item[概要]
和文の概要は \|abstract| 環境の中に,英文の概要は \|eabstract| 環境の中に,
それぞれ記述する.
\end{Description}

%}{

\subsection{見出し}

節や小節の見出しには \|\section|, \|\subsection| といったコマンドを使用する.
\|\section|の見出しは2行を占め,他は1行に出力される.

「定義」,「定理」などについては,\|\newtheorem|で適宜環境を宣言し,
その環境を用いて記述する.なお見出しは{\bf 定理1}などのように日本語の題と番
号の組合せを想定しているので,題と番号の間には微小な空白しか入らない.もし
{\bf Thorem 1}のような英語と番号の組合せを用いる場合には,\|\newtheorem*|に
よって環境を宣言すれば,空白が挿入される.

%}{

\subsection{文章の記述}\label{sec:desc*}\label{sec:enum}

\begin{description*}
\item[行送り]
学会誌は2段組を採用しており,左右の段で行の基準線の位置が一致することを原則
としている.また,節見出しなど,行の間隔を他よりたくさんとった方が読みやすい
場所では,この原則を守るようにスタイルファイルが自動的にスペースを挿入する.
したがって本文中では \|\vspace| や \|\vskip| を用いたスペースの調整を行なわ
ないでいただきたい.なお \|\begin{document}| の前にコマンド \|\checkline| を
挿入しておくと,本文の各行が持つべき基準線が印刷されるので,行送りが正しいか
どうかをチェックすることができる.ただしこのコマンドは原稿送付時には使用しな
いでいただきたい.
\item[フォントサイズ]
このガイドの印刷結果からもわかるように,論文誌スタイルでは様々な大きさのフォ
ントが使われるが,これらは全てスタイルファイルが自動的かつ注意深く選択したも
のである.したがって,著者が自分でフォントサイズを変更する必要はなく,かえっ
て行送りの原則を守る妨げにもなる.もし特定の箇所で1行に多くの文字を入れたい
などの理由から小さいフォントを使用する場合には,\|\small*| あるいは 
\|\footnotesize*| という\|*|が付いたコマンドを使用していただきたい(この二つ
以外は禁止).これらは基準線間隔を変えずにフォントの大きさだけを変更するもの
である.なお \|\small*| の例が\ref{sec:config}節と次のページに示されている.

\item[句読点]
句点には全角の「.」,読点には全角の「,」を用いる.ただし英文中や数式
中で「.」や「,」を使う場合には,半角文字を使う.「。」や「、」は一切使
わない.

\item[全角文字と半角文字]
全角文字と半角文字の両方にある文字は次のように使い分ける.
%
\begin{enumerate}
\item 括弧は全角の「(」と「)」を用いる.但し,英文の概要,図表見出し,書誌
データでは半角の「(」と「)」を用いる.

\item
英数字,空白,記号類は半角文字を用いる.ただし,句読点に関しては,前項で述べ
たような例外がある.

\item
カタカナは全角文字を用いる.

\item
引用符では開きと閉じを区別する. 開きには \|``|(``) を用い,閉じには \|''|
('') を用いる.
\end{enumerate}

\item[OverfullとUnderfull]
製版時にはoverfullを起こさないことを原則としている.従って,まず提出するソー
スが著者の環境でoverfullを起こさないように,文章を工夫するなどの最善の努力を
払っていただきたい.但し,\|flushleft| 環境,\|\\|,\|\linebreak| などによる
両端揃えをしない形でのoverfullを回避は,できるだけ避けていただきたい.また著
者の
環境では発生しないoverfullが,印刷時の環境では発生することもある.このような
事態をできるだけ回避するために,文中の長い数式や \|\verb| を避ける,パラグラフ
の先頭付近では長い英単語を使用しない,などの注意を払っていただきたい.

また,\verb|\\| をパラグラフの終りで使用すると
%
\begin{Quote}\small*
\|Underfull \hbox (badness 10000) detected|
\end{Quote}
%
のwarningが発生し,空行が挿入される.このような空行は見苦しく,また重要なエ
ラー・メッセージを見逃す原因にもなるので,ソースを提出する時点では全て除去さ
れているようにしていただきたい.特に,箇条書用環境の直前, \|\item| の直前,
箇条書用環境の末尾などで \verb|\\| を使うと,前述のwarning が出力されること
に注意していただきたい.
\end{description*}

%}{

\subsection{数式}\label{sec:Item}

\begin{Itemize}
\item 本文中の数式\\
本文中の数式は \|$| と \|$|, \|\(| と \|\)|, あるいは \|math| 環境のいずれで
囲んでもよい.なお \smash{$\frac{a}{b}$} (\|\frac{a}{b}|) のように背が高い要
素は見苦しくかつ行送りを乱すことにもなるので,使用しないようにしていただきた
い.

\item 別組の数式\\
別組数式(displayed math)については {\bf \|$$| と \|$$| は使用してはならない}.
すなわち \|\[| と \|\]| で囲むか, \|displaymath|, \|equation|, \|eqnarray| 
のいずれかの環境を用いなければならない.これらは
%
\begin{equation}
\Delta_l = \sum_{i=l+1}^L\delta_{pi}
\end{equation}
%
のように,センタリングではなく固定字下げで数式を出力し,かつ背が高い数式によ
る行送りの乱れを吸収する機能がある.

\item \|eqnarray|環境\\
互いに関連する別組の数式が2行以上連続して現れる場合には,単に \|\[| と \|\]|,
あるいは \|\begin{equation}| と \|\end{equation}| で囲った数式を書き並べるの
ではなく,\|\begin|\allowbreak\|{eqnarray}| と \|\end{eqnarray}| を使って,
等号(あるいは不等号)の位置で縦揃えを行なった方が読みやすい.なお 
\|eqnarray| の中では改ページが行なわれないので,行数が多く途中で改ページが起
こって欲しい場合には,\|\begin{eqnarray}[s]| のようにオプション \|[s]| を指
定すればよい.

\item 数式のフォント\\
{\LaTeX}が標準的にサポートしているもの以外の特殊な数式用フォントは,できるだ
け使わないようにしていただきたい.どうしても使用しなければならない場合には,
その旨申し出ていただくとともに,印刷工程に深く関与していただくこともあること
に留意されたい.
\end{Itemize}

%}{

\begin{figure}
\setbox0\vbox{
\hbox{\|\begin{figure}[tb]|}
\hbox{\quad \<図本体の指定\>}
\hbox{\|\caption{|\<和文見出し\>\|}|}
\hbox{\|\ecaption{|\<英文見出し\>\|}|}
\hbox{\|\label{| $\ldots$ \|}|}
\hbox{\|\end{figure}\|}}
\centerline{\fbox{\box0}}
\caption{1段幅の図}
\ecaption{Single column figure with caption\\
	explicitly broken by $\backslash\backslash$.}
\label{fig:single}
\end{figure}

\subsection{図}

1段の幅におさまる図は,\figref{fig:single} の形式で指定する. 位置の指定に \|h| 
は使わない.また,図の下に{\dg 和文と英文の双方の}見出しを,\|\caption| と %
\|\ecaption| で指定する.文字数が多い見出しはは自動的に改行して最大幅の行を
基準にセンタリングするが,見出しが2行になる場合には適宜 \|\\| を挿入して改行
したほうが良い結果となることがしばしばある(\figref{fig:single} の英文見出し
を参照).

\begin{figure}
\begin{minipage}[t]{0.5\columnwidth}
\footnotesize
\setbox0\vbox{
\hbox{\|\begin{minipage}[t]%|}
\hbox{\|  {0.5\columnwidth}|}
\hbox{\|\CaptionType{table}|}
\hbox{\|\caption{| \ldots \|}|}
\hbox{\|\ecaption{| \ldots \|}|}
\hbox{\|\label{| \ldots \|}|}
\hbox{\|\makebox[\textwidth][c]{%|}
\hbox{\|\begin{tabular}[t]{lcr}|}
\hbox{\|\hline\hline|}
\hbox{\|left&center&right\\\hline|}
\hbox{\|L1&C1&R1\\|}
\hbox{\|L2&C2&R2\\\hline|}
\hbox{\|\end{tabular}}|}
\hbox{\|\end{minipage}|}}
\hbox{}
\centerline{\fbox{\box0}}
\caption{\protect\tabref{tab:right}の中身}
\ecaption{Contents of Table \protect\ref{tab:right}.}
\label{fig:left}
\end{minipage}%
\begin{minipage}[t]{0.5\columnwidth}
\CaptionType{table}
\caption{\protect\figref{fig:left}で作成した表}
\ecaption{A table built by Fig.\ \protect\ref{fig:left}.}
\label{tab:right}
\makebox[\textwidth][c]{\begin{tabular}[t]{lcr}\hline\hline
left&center&right\\\hline
L1&C1&R1\\
L2&C2&R2\\
\end{tabular}}
\end{minipage}
\end{figure}

\begin{figure*}
\setbox0\vbox{\large
\hbox{\|\begin{figure*}[t]|}
\hbox{\quad\<図本体の指定\>}
\hbox{\|\caption{|\<和文見出し\>\|}|}
\hbox{\|\ecaption{|\<英文見出し\>\|}|}
\hbox{\|\label{| $\ldots$ \|}|}
\hbox{\|\end{figure*}|}}
\centerline{\fbox{\hbox to.9\textwidth{\hss\box0\hss}}}
\caption{2段幅の図}
\ecaption{Double column figure.}
\label{fig:double}
\end{figure*}

また紙面スペースの節約のために,1つの \|figure|(または \|table|)環境の中に
複数の図表を並べて表示したい場合には,\figref{fig:left} と 
\tabref{tab:right}のように個々の図表と各々の \|\caption|/\|\ecaption| を 
\|minipage| 環境に入れることで実現できる.なお図と表が混在する場合,
\|minipage| 環境の中で\|\CaptionType{figure}| あるいは \|\CaptionType{table}| 
を指定すれば,外側の環境が \|figure| であっても \|table| であっても指定され
た見出しが得られる.

2段の幅にまたがる図は,\figref{fig:double} の形式で指定する. 位置の指定は
\|t| しか使えない.

図の中身では本文と違い,どのような大きさのフォントを使用しても構わない
(\figref{fig:double} 参照).また図の中身として,encapsulate された 
PostScript ファイル(いわゆるEPSファイル)を読み込むこともできる.読み込みの
ためには,プリアンブルで
%
\begin{Quote}
\|\usepackage{graphicx}|
\end{Quote}
%
を行った上で,\|\includegraphics| コマンドを図を埋め込む箇所に置き,その引数
にファイル名(など)を指定する.また{\LaTeX} 2.09の場合は,\|epsf| を 
\|\documentstyle| のオプションで指定し,\|\epsfile| コマンドで図を埋め込む.

この節を注意深く見ると,\figref{fig:single} や\figref{fig:double} の最初の参照
はゴチック体であるのに対し,2回目以降では明朝体であるのに気づくだろう.この
切替えは論文誌の伝統的体裁に基づくもので,図の参照を(「図\hbox{\|\ref{|\<ラ
ベル\>\|}|}」ではなく)\|\figref{|\<ラベル\>\|}|を用いて行なえば自動的に成され
る.

%}{

\subsection{表}

表の罫線はなるべく少なくするのが,仕上がりをすっきりさせるコツである.罫線を
つける場合には,一番上の罫線には二重線を使い,左右の端には縦の罫線をつけない 
(\tabref{tab:example}).表中のフォントサイズのデフォルトは\|\small|である.

また,表の上に{\dg 和文と英文の双方の}見出しを, \|\caption|と \|\ecaption| 
で指定する.表の参照は \|\tabref{|\<ラベル \>\|}| を用いて行なう. 

\begin{table}[b] \caption{箇条書環境の使用箇所(表の例)} \ecaption{Sections
and sub-sections in which list-like environments are used (example of
table).} \label{tab:example}
% 左右の罫線はつけず,一番上の罫線は二重線
\hbox to\hsize{\hfil
\begin{tabular}{l|lll}\hline\hline
&enumerate&itemize&description\\\hline
type-1&	\ref{sec:enum}&	\ref{sec:item}&	---\\
type-2&	---&		\ref{sec:item*}&\ref{sec:desc*}\\
type-3&	\ref{sec:Enum}&	\ref{sec:Item}&	\ref{sec:Desc}\\
type-4&	\ref{sec:ENUM}&	\ref{sec:ITEM}&	\ref{sec:DESC}\\\hline
\multicolumn{4}{l}{type-1\,: enumerate等\quad type-2\,: enumerate*等}\\
\multicolumn{4}{l}{type-3\,: Enumerate等\quad type-4\,: ENUMERATE等}\\
\end{tabular}\hfil}
\end{table}

%}{

\subsection{箇条書}\label{sec:item*}

論文誌では箇条書に関する形式を特に定めておらず,場合に応じて様々な様式が用い
られている.スタイルファイルでは,{\LaTeX} の箇条書用の環境である
\|enumerate|, \|itemize|, \|description| に4種類のファミリーを設け,状況に応
じた使い分けができるようにしている.
%
\begin{itemize*}
\item \|enumerate|, \|itemize|, \|description|\\
{\LaTeX} の標準的なものと同じ.但しインデンテーションは \|enumerate| では全角3
文字分,その他は全角2文字分である.また \|enumerate| のラベルは,標準の
%
\begin{quote}
1.\quad (a)\quad i.\quad A.
\end{quote}
%
ではなく,
%
\begin{quote}
(\,1\,)\quad (\,a\,)\quad (\,i\,)\quad (\,A\,)
\end{quote}
%
のように全て括弧付きであり,数字などの前後に小さな空白が挿入される.

\item \|enumerate*|, \|itemize*|, \|description*|\\
\|enumerate|などとほぼ同じだが,インデンテーションは全角1文字分である.

\item \|Enumerate|, \|Itemize|, \|Description|\\
文章のインデンテーションを行なわない.

\item \|ENUMERATE|, \|ITEMIZE|, \|DESCRIPTION|\\
文章のインデンテーションを行なわず,先頭行(ラベルがある行)を全角1文字分だ
けインデントする.
\end{itemize*}
%
\tabref{tab:example} に示すように
このパンフレットの各章/節に各々の環境の使用例があるので,適宜参照されたい.

%}{

\subsection{左右の段の行揃え}

文章の記述のところでも述べたように,論文誌では左右の段で行の位置をそろえる必
要がある.ユーザが特別な高さのボックスを使ったために行の位置が乱れてしまうよ
うな場合には,その部分を \|\begin|\allowbreak\|{adjustvboxheight}| と %
\|\end|\allowbreak\|{adjustvboxheight}| で囲っていただきたい.この環境は中途
半端な行送りを吸収するためのものである.例えば次の;
%
\begin{adjustvboxheight}
\begin{quote}
\fbox{$\displaystyle\sum_{i=0}^n i$}
\end{quote}
\end{adjustvboxheight}
%
は,以下のようにして出力したものである.
%
\begin{Quote}
\|\begin{adjustvboxheight}|\\
\|\begin{quote}|\\
\|\fbox{$\displaystyle\sum_{i=0}^n i$}|\\
\|\end{quote}|\\
\|\end{adjustvboxheight}|
\end{Quote}
%
ただしこのようなものを本文中に挿入することを推奨しているわけではない.

%}{

\subsection{脚注}
脚注は \|\footnote| コマンドを使って書くと,ページ単位に\footnote{脚注の例.} 
や\footnote{二つめの脚注.}のような参照記号とともに脚注が生成される.なお,
ページ内に複数の脚注がある場合,参照記号は {\LaTeX} を2回実行しないと正しく
ならないことに注意されたい.
({\LaTeX} ブック \cite{latex} の156ページ参照.)

また場合によっては,脚注をつけた位置と脚注本体とを別の段に置く方がよいことも
ある.この場合には,\|\footnotemark| コマンドや \|\footnotetext| コマンドを
使って対処していただきたい.

%}{

\subsection{参考文献の参照}

本文中で参考文献を参照する場合には,参考文献番号が文中の単語
として使われる場合と,そうでない参照とでは,使用する文字の大きさが異
なる.前者は\|\Cite|により参照し,後者は\|\cite|により参照する.たとえば;
%
\begin{Quote}
文献 \|\Cite{total}| は \|\LaTeX\cite{latex}| の総合的な解説書である.
\end{Quote}
%
と書くと;
%
\begin{Quote}
文献\Cite{total}は\LaTeX\cite{latex}の総合的な解説書である.
\end{Quote}
%
が得られる.

また,一つの \|\Cite| あるいは \|\cite| コマンドで三つ以上の文献を参照し,か
つそれらの参照番号が連続している場合,\Cite{article1,article2,article3}や
「文献\cite{latex,article4,article5,article6}」のように,自動的に先
頭と末尾の文献番号が `--' (en-dash) で結合される.なお,非常に多数の文献を参
照し,それら全てを \|\Cite| や \|\cite|で指定するのが面倒な場合は
%
\begin{Quote}\raggedright
\|\multiCite{|\<先頭文献のラベル\>\|}|\nobreak\hskip-2em\allowbreak
	\hspace*{2em}\hbox{\|{|\<末尾文献のラベル\>\|}|}\\
\|\multicite{|\<先頭文献のラベル\>\|}|\nobreak\hskip-2em\allowbreak
	\hspace*{2em}\hbox{\|{|\<末尾文献のラベル\>\|}|}
\end{Quote}
%
を用いて,\multiCite{article1}{book3}や「文献
\multicite{booklet1}{unpublished}」のような結果を得ることもできる.

%}{

\subsection{参考文献リスト}

参考文献リストには,原則として本文中で引用した文献のみを列挙する.順序は参照
順あるいは第一著者の苗字のアルファベット順とする.文献リストは BiB{\TeX} 
と \|ipsjunsrt.bst|(参照順)または \|ipsjsort.bst|(アルファベット順)を用
いて作り,\|\bibliograhpystyle| と \|\bibliography| コマンドにより読み込むこ
とを原則とする\footnotemark .これらを用いれば,規定の体裁にあったものができ
%
% 60 行下の \footnotetext 参照.
%
るので,できるだけ利用していただきたい.特に,論文誌の原稿執筆案内
\cite{webpage2}に示されている,電子ジャーナルやディジタルライブラリ中の文献
\cite{article7,article8,inproceedings2}やweb
page\cite{webpage1,webpage2,webpage3,webpage4,webpage5}の参照のために,一般
的ではないBiB\TeX のエントリ\|webpage|や,下記に例示するフィールド\|doi|,
\|url|, \|refdate|が定義されていることに注意されたい.
%
\begin{quote}\tt
doi = "10.2197/ipsjdc.3.14",\\
url = "http://search.ieice.org/",\\
refdate = "2007-02-05",
\end{quote}
なおこのガイドの参考文献は,\|bibsample.bib| を文献スタイル \|ipsjunsort| で
処理した結果であるので,両者を適宜参照されたい.また製版用のファイル群には
\|.bib| ファイルではなく \|.bbl| ファイルを必ず含めることに注意されたい.

一方,何らかの理由で \|thebibliography| 環境で文献リストを「手作り」しなけれ
ばならない場合は,このガイドの参考文献リストを注意深く見て,そのスタイルにし
たがっていただきたい.

%}{

\subsection{謝辞,付録}

謝辞がある場合には,参考文献リストの直前に置き,\|acknowledgment|環境の中に
入れる.この環境の中身は投稿時には出力されない.

付録がある場合には,参考文献リストの直後にコマンド \|\appendix| に引き続いて
書く.なお付録では,\|\section| コマンドが{\bf A.1},{\bf A.2}などの見出しを
生成する.また付録全体に見出しをつける場合には,\|\appendix[|\<見出し\>\|]| %
のように見出しをオプション引数として与える.

%}{

\subsection{著者紹介}\label{sec:DESC}

本文の最後(\|\end{document}| の直前)に,以下のように著者紹介を記述する.
%
\begin{quote}
\|\begin{biography}|\\
\|\member{|\<第一著者名\>\|}|\\
\mbox{}\quad\<第一著者の紹介\>\\
\|\member{|\<第二著者名\>\|}|\\
\mbox{}\quad\<第二著者の紹介\>\\
\mbox{}\quad $\ldots\ldots\ldots$ \\
\|\end{biography}|
\end{quote}
%
なお著者が学生会員あるいは非会員の場合は,正会員用の \|\member| の代わりに
下記を用いる.
%
\begin{DESCRIPTION}
\item[学生会員]:\|\stmember{|\<著者名\>\|}|
\item[非会員\phantom{あ}]:\|\nomember{|\<著者名\>\|}|
\end{DESCRIPTION}
%
なお著者紹介は投稿時には出力されない.

\footnotetext{このガイドはファイルを一つにするために
{\TT thebibliography} 環境を用いているが,その中身はBiB{\TeX}で作成したもの
である.
また,このfootnoteは左カラムにマークがあるのにfootnote自体は右カラムに現われ
ている.これは簡単なトリックで実現できる.ソースファイル参照.}
% 67 行上の \footnotemark 参照.

%}{

\subsection{ページ数の見積り}

投稿用スタイルでは1ページが\(35\hbox{字}\times32\hbox{行}=1120\hbox{字}\),
また製版用では\(24\hbox{字}\times46\hbox{行}\times2\hbox{段}=2208\hbox{字}\) 
である.したがって粗い見積りとして,製版時には投稿時の半分のページ数になると
考えることができる.たとえば,このガイドは投稿用では19ページ,製版用では9ペー
ジであるので,ほぼ見積った通りである.

また投稿用のファイルを製版用にするのは簡単であるので,投稿時にあらかじめどの
ように製版されるかを試せば,もっと良い見積りが得られる.

%}{

\section{おわりに}

論文誌の {\LaTeX} 化は10年以上の運用実績があるが,解決されていない問題点も
皆無とはいえない.
これらを著者の方々の御協力を仰ぎつつ,少しでも使いやすく
するための改良を加えていくつもりである.そこで,スタイル・ファイルに関する要
望や意見を,是非
%
\begin{Quote}
\|texnicians@ipsj.or.jp|
\end{Quote}
%
までお寄せいただきたい.また技術的な質問も同じアドレスで受け付けるが,その他
の一般的な質問については
%
\begin{Quote}
\|editt@ipsj.or.jp|
\end{Quote}
%
にお寄せいただきたい.

\begin{acknowledgment}
論文誌の {\LaTeX}化に御協力いただいた三美印刷(株),(株)ウルス,ならびに
試行のためのボランティアをお願いした著者の皆様に,謹んで感謝の意を表する.
\end{acknowledgment}

%}{

\begin{thebibliography}{10}

\bibitem{latex}
Lamport, L.: {\em A Document Preparation System {\LaTeX} User's Guide \&
  Reference Manual}, Addison Wesley, Reading, Massachusetts (1986).
\newblock (Cooke, E., et al.訳:文書処理システム {\LaTeX},アスキー出版局
  (1990)).

\bibitem{total}
伊藤和人\:{\LaTeX} トータルガイド,秀和システムトレーディング (1991).

\bibitem{nodera}
野寺隆志\:楽々 {\LaTeX},共立出版 (1990).

\bibitem{okumura}
奥村晴彦\:{\LaTeX} 美文書作成入門,技術評論社 (1991).

\bibitem{article1}
桜井貴文\:直観主義論理と型理論,情報処理, Vol.~30, No.~6, pp.\ 626--634
  (1989).

\bibitem{article2}
野口健一郎,大谷 真\:OSIの実現とその課題,情報処理, Vol.~31, No.~9, pp.\
  1235--1244 (1990).

\bibitem{article3}
Itoh, S. and Goto, N.: An Adaptive Noiseless Coding for Sources with Big
  Alphabet Size, {\em Trans. IEICE},  Vol.~E74, No.~9, pp.\ 2495--2503 (1991).

\bibitem{article4}
田中{正次},村松 茂,山下 茂\:9段数7次陽的Runge-Kutta法の最適化について,情%
報処理学会論文誌, Vol.~33, No.~12, pp.\ 1512--1526 (1992).

\bibitem{article5}
Abrahamson, K., Dadoun, N., Kirkpatrick, D.~G. and Przytycka, T.: A Simple
  Parallel Tree Contraction Algorithm, {\em J. Algorithms},  Vol.~10, No.~2,
  pp.\ 287--302 (1989).

\bibitem{article6}
田中{正次}ほか\:9段数7次陽的Runge-Kutta法の次数条件式の解について,情報処理学%
会論文誌, Vol.~33, No.~12, pp.\ 1506--1511 (1992).

\bibitem{article7}
Yamakami, T.: Exploratory Session Analysis in the Mobile Clickstream, {\em IPSJ
  Digital Courier},  Vol.~3, pp.\ 14--20 (online), \doi{10.2197/ipsjdc.3.14}
  (2007).

\bibitem{article8}
波多野賢治,絹谷弘子,吉川正俊,植村俊亮\:XML文書検索システムにおける文書内容%
の統計量を利用した検索対象部分文書の決定,電子情報通信学会論文誌D, Vol.~J89-D,
  No.~3, pp.\ 422--431(オンライン),\urlj{http://search.ieice.org/} (2006).

\bibitem{book1}
Foley, J.~D. et al.: {\em Computer Graphics --- Principles and Practice},
  System Programming Series, Addison-Wesley, Reading, Massachusetts, 2nd
  edition (1990).

\bibitem{book2}
千葉則茂,村岡一信\:レイトレーシングCG入門,Information {\&} Computing,
  Vol.~46, サイエンス社 (1990).

\bibitem{book3}
Chang, C.~L. and Lee, R. C.~T.: {\em Symbolic Logic and Mechanical Theorem
  Proving}, Academic Press, New York (1973).
\newblock (長尾真,辻井潤一訳: 計算機による定理の自動証明,
  日本コンピュータ協会 (1983)).

\bibitem{booklet1}
新世代コンピュータ技術開発機構\:第五世代コンピュータプロジェクトの概要,{FGCS%
'92}にて配布 (1992).

\bibitem{inbook1}
Knuth, D.~E.: {\em Fundamental Algorithms}, Art of Computer Programming,
  Vol.~1, chapter~2, pp.\ 371--381, Addison-Wesley, 2nd edition (1973).

\bibitem{incollection1}
Schwartz, A.~J.: Subdividing B{\'e}zier Curves and Surfaces, {\em Geometric
  Modeling: Algorithms and New Trends} (Farin, G.~E., ed.), SIAM, Philadelphia,
  pp.\ 55--66 (1987).

\bibitem{inproceedings1}
Baraff, D.: Curved Surfaces and Coherence for Non-penetrating Rigid Body
  Simulation, {\em SIGGRAPH '90 Proceedings} (Beach, R.~J., ed.), Dallas,
  Texas, ACM, Addison-Wesley, pp.\ 19--28 (1990).

\bibitem{inproceedings2}
Nakashima, H. et al.: OhHelp: A Scalable Domain-Decomposing Dynamic Load
  Balancing for Particle-in-Cell Simulations, {\em Proc.\ Intl.\ Conf.
  Supercomputing}, pp.\ 90--99 (online),
  \doi{http://doi.acm.org/10.1145/1542275.1542293} (2009).

\bibitem{manual1}
Adobe Systems Inc.: {\em PostScript Language Reference Manual}, Reading,
  Massachusetts (1985).

\bibitem{mastersthesis1}
山下義行\:文脈自由文法への否定の導入,修士論文,筑波大学大学院工学研究科
  (1989).

\bibitem{misc1}
斉藤康己,中島 浩\:{{\tt ipsjpapers.sty}} (1995).
\newblock (情報処理学会論文誌用スタイルファイル,論文著者に配布).

\bibitem{phdthesis1}
Weihl, W.: Specification and Implementation of Atomic Data Types, PhD Thesis,
  MIT, Boston (1984).

\bibitem{proceedings1}
Institute for New Generation Computer Technology: {\em Proc. Intl. Conf. on
  Fifth Generation Computer Systems}, Vol.~1 (1992).

\bibitem{techreport1}
Aredon, I.: {\TeX} 独稽古,Seminar on Mathematical Sciences 13, Department of
  Mathematics, Keio University, Yokohama (1989).

\bibitem{unpublished}
情報処理学会論文誌編集委員会\:{\LaTeX}による論文作成のガイド(第1版) (1995).
\newblock (論文著者に配布).

\bibitem{webpage1}
情報処理学会\:コンピュータ博物館設立の提言,情報処理学会(オンライン),\urlj%
{http://www.ipsj.or.jp/03somu/teigen/museum200702.html} \refdatej{2007-02-05}.

\bibitem{webpage2}
情報処理学会論文誌編集委員会\:「情報処理学会論文誌(IPSJ
  Journal)」原稿執筆案内,情報処理学会(オンライン),\urlj{http://www.ipsj.o%
r.jp/08editt/journal/shippitsu/ronbunJ-prms.pdf} \refdatej{2010-10-28}.

\bibitem{webpage3}
Kay, A.: Welcome to Squeakland, Squeakland (online),
  \urle{http://www.squeakland.org/community/biography/alanbio.html}
  \refdatee{2007-04-05}.

\bibitem{webpage4}
Nakashima, H.: A {WEB} Page, Kyoto University (online),
  \urle{http://www.para.media.kyoto-u.ac.jp/~nakashima/a.web.page.of.long.url/}
  \refdatee{2010-10-30}.

\bibitem{webpage5}
Nakashima, H.: Another {WEB} Page, Kyoto University (online),
  \urle{http://www.para.media.kyoto-u.ac.jp/~nakashima/a.web.page.of.much.long%
er.url/} \refdatee{2010-10-30}.

\end{thebibliography}

%}{

\appendix
\section{研究会論文誌用コマンド}\label{sec:app-trans}

各研究会論文誌(トランザクション)には各々に固有のサブタイトル,略称,通番が
ある.製版用原稿では,以下のコマンドを\|\begin{document}|の前に置くことによ
り,これらの情報を与える.
%
\begin{itemize}\item[]
\|\transaction{|\<略称\>\|}{|\<巻数\>\|}{|\<号数\>\|}|
\end{itemize}
%
なお\<略称\>は以下のいずれかであり,\<巻数\>と\<号数\>は学会あるいは研究会論
文誌編集委員会の指示に基づいて与える.
%
\begin{itemize}%{
\item
\|PRO|(プログラミング)
\item
\|TOM|(数理モデル化と応用)
\item
\|TOD|(データベース)
\item
\|ACS|(コンピューティングシステム)
\item
\|CVIM|(コンピュータビジョンとイメージメディア)
\item
\|TBIO|(Bioinformatics)\footnote{%
TBIO, SLDM, CVAは英文論文誌であるので和名はない.}
\item
\|SLDM|(System LSI Design Methodology)\footnotemark[1]
\item
\|CVA|(Computer Vision and Applicaitons)\footnotemark[1]
%
\end{itemize}%}
%
また上記の\<号数\>は発行月とは連動していないので,学会あるいは編集委員会の指
示に基づき発行月を;
%
\begin{itemize}\item[]
\|\setcounter{|{\bf 月数}\|}{|\<発行月\>\|}|
\end{itemize}
%
によって指定する.

この他,以下の各節で示すように,いくつかの論文誌に固有の機能を実現するための
コマンドなどが用意されている.

%}{

\subsection{「プログラミング」固有機能}

「論文誌:プログラミング」には論文以外に,プログラミング研究会での研究発表の
内容梗概が含まれている.この内容梗概は,\|\documentclass|または
\|\documentstyle|のオプションとして\|abstract|を指定した上で,
\ref{sec:config}節の\|\maketitle|までの内容からなるファイル(すなわち本文が
ないファイル)から生成する.なお\|\|{\bf 受付}や\|\|{\bf 採録}は不要であるが,
代わりに発表年月日を;
%
\begin{itemize}\item[]
\|\|{\bf 発表}\|{|\<年\>\|}{|\<月\>\|}{|\<日\>\|}|
\end{itemize}
%
により指定する.

%}{

\subsection{「数理モデル化と応用」固有機能}

「論文誌:数理モデル化と応用」の論文では,受付や採録の日付以外に再受付日付を
記載するように指示されることがある.その場合には;
%
\begin{itemize}\item[]
\|\|{\bf 再受付}\|{|\<年\>\|}{|\<月\>\|}{|\<日\>\|}|
\end{itemize}
%
により指定する.なお複数回の再受付が行われた場合,上記のコマンドを繰り返し使
用する.

%}{

\subsection{「データベース」固有機能}

「論文誌:データベース」の論文の担当編集委員の氏名は;
%
\begin{itemize}\item[]
\|\edInCharge{|\<氏名\>\|}|
\end{itemize}
%
により指定する.

%}{

\subsection{「Bioinformatics」固有機能}

Trans.\ Bioinformatics (TBIO)に固有の機能を利用するためには,\|\documentclass|
(または\|\documentstyle|)のオプションで\|TBIO|を指定する.なおTBIOは英文論
文誌であるので,\|TBIO|オプションの指定によって自動的に\|english|オプション
が指定されたものとみなされる.したがって;
%
\begin{itemize}\item[]
\|\documentclass[TBIO]{ipsjpaper}|
\end{itemize}
%
のように\|english|オプションを省略することができる.またこのオプションの指定
により,以下のコマンドが使用可能となる.
%
\begin{itemize}%{
\item
論文の種別は;
%
\begin{itemize}\item[]
\|\TBIOpapercategory{|\<種別\>\|}|
\end{itemize}
%
を用いて,\|original|, \|survey|, \|database| のいずれかを指定する.この結果,
``{\it Original Paper}'', ``{\it Survey Paper}'' または ``{\it
Database\slash Software Paper}'' のいずれかが先頭ページのタイトルの左上に表
示される.なおこのコマンドが与えられなければ \|original| とみなされる.

\item
担当編集委員の氏名は;
%
\begin{itemize}\item[]
\|\edInCharge{|\<氏名\>\|}|
\end{itemize}
%
により指定する.

\item
査読過程で条件付採録となった論文の再受付日は;
%
\begin{itemize}\item[]
\|\rereceived{|\<年\>\|}{|\<月\>\|}{|\<日\>\|}|
\end{itemize}
%
により指定する.

\end{itemize}%}
%
なお後の2つのコマンドの使用はオプショナルであり,学会あるいは編集委員会から
の情報提供や指示がなければ省略しても構わない.

%}{

\section{研究報告の作成}\label{sec:app-sig}
研究報告が完全オンライン化されたことに伴い,学会のフォーマットに準拠した掲載
版PDF作成が著者の責務となった.この掲載版は \|\documentclass| のオプションに
\|techrep| を指定することで簡単に作成できる.ただし各ページ右下隅の著作権表示
部分に印字される西暦年を,研究報告掲載日に応じてカウンタ\textbf{年数}(または
\|year|)に \|\setcounter| を用いて設定する必要があることに注意されたい%
%
\footnote{%
プリアンブルでカウンタが設定されていない場合には警告メッセージが表示され,
\LaTeX の実行日に基づく値が設定される.}.
%
この他,ジャーナル/トランザクションの製版用では表示される著者紹介および受付・
採録日等は,仮に指定されていても表示されないことにも注意されたい.

%}{

\begin{biography}
\member{中島 浩}
昭和31年生.
昭和56年京都大学大学院工学研究科情報工学専攻修士課程修了.
同年三菱電機(株)入社.
推論マシンの研究開発に従事.
平成4年より京都大学工学部助教授.
平成9年より豊橋技術科学大学教授.
平成18年より京都大学教授.
並列計算機のアーキテクチャ,プログラミング言語の実装方式に関する研究に従事.
工学博士.昭和63年元岡賞,平成5年坂井記念特別賞受賞.IEEE-CS, ACM, ALP, TUG
各会員.
%
\member{斉藤 康己}
昭和28年生.
昭和53年英国エセックス大学よりM.Sc.(AI研究).
昭和54年東京大学大学院工学系研究科情報工学専攻修士課程修了.
同年電電公社入社.
昭和59年から60年にかけて仏国INRIA客員研究員.
現在NTT基礎研究所主幹研究員.
人工知能(Symbol Grounding Problem),計算機ソフトウェア(\TeX の日本語化),
認知科学(理解プロセスの解明)などの研究に従事.
訳書に『メタマジック・ゲーム』(D. ホフスタッター著, 共訳, 白揚社)など.
人工知能学会,ソフトウェア科学会,日本認知科学会,Cognitive Science Society,
TUG各会員.
\end{biography}
\end{document}