# HG changeset patch # User e095732 # Date 1352974801 -32400 # Node ID 58c6244a184d873eff5d8bc510ca068b091c636f programming symposium diff -r 000000000000 -r 58c6244a184d Paper/bibsample.bib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/bibsample.bib Thu Nov 15 19:20:01 2012 +0900 @@ -0,0 +1,1 @@ +@book{total, author = "伊藤 和人", yomi = "Kazuto Itoh", title = "{\LaTeX} トータルガイド", publisher = "秀和システムトレーディング", year = 1991} @book{latex, author = "Leslie Lamport", title = "A Document Preparation System {\LaTeX} User's Guide \& Reference Manual", publisher = "Addison Wesley", address = "Reading, Massachusetts", year = 1986, note = "(Cooke, E., et al.訳:文書処理システム {\LaTeX}," # "アスキー出版局 (1990))"} @book{nodera, author = "野寺 隆志", yomi = "Takashi Nodera", title = "楽々 {\LaTeX}", publisher = "共立出版", year = 1990} @book{okumura, author = "奥村 晴彦", yomi = "Haruhiko Okudera", title = "{\LaTeX} 美文書作成入門", publisher = "技術評論社", year = 1991} @article{article1, author = "桜井 貴文", yomi = "Sakurai, Takafumi", title = "直観主義論理と型理論", journal = "情報処理", volume = 30, number = 6, pages = "626--634", year = 1989} @article{article2, author = "野口 健一郎 and 大谷 真", yomi = "Noguchi, K and Ohtani, M", title = "OSIの実現とその課題", journal = "情報処理", volume = 31, number = 9, pages = "1235-1244", year = 1990} @article{article3, author = "Ssss Itoh and Nnnn Goto", title = "An Adaptive Noiseless Coding for Sources with Big Alphabet Size", journal = "Trans. IEICE", volume = "E74", number = 9, pages = "2495--2503", year = 1991, month = sep} @article{article4, author = "田中 {正次} and 村松 茂 and 山下 茂", yomi = "Tanaka, S and Muramatsu, S and Yamashita, S", title = "9段数7次陽的Runge-Kutta法の最適化について", journal = "情報処理学会論文誌", volume = 33, number = 12, pages = "1512--1526", year = 1992} @article{article5, author = "K. Abrahamson and N. Dadoun and " # "D. G. Kirkpatrick and T. Przytycka", title = "A Simple Parallel Tree Contraction Algorithm", journal = "J. Algorithms", volume = 10, number = 2, pages = "287--302", year = 1989} @article{article6, author = "田中 {正次} and others", title = "9段数7次陽的Runge-Kutta法の次数条件式の解について", journal = "情報処理学会論文誌", volume = 33, number = 12, pages = "1506--1511", year = 1992} @book{book1, author = "J. D. Foley and others", title = "Computer Graphics --- Principles and Practice", series = "System Programming Series", publisher = "Addison-Wesley", address = "Reading, Massachusetts", edition = "2nd", year = 1990} @book{book2, author = "千葉 則茂 and 村岡 一信", yomi = "Chiba, N. and Muraoka, K.", title = "レイトレーシングCG入門", series = "Information {\&} Computing", volume = 46, publisher = "サイエンス社", year = 1990} @book{book3, author = "Chang, C. L. and Lee, R. C. T.", title = "Symbolic Logic and Mechanical Theorem Proving", publisher = "Academic Press", address = "New York", year = 1973, note = "(長尾真,辻井潤一訳: " # "計算機による定理の自動証明, " # "日本コンピュータ協会 (1983))"} @booklet{booklet1, author = "新世代コンピュータ技術開発機構", title = "第五世代コンピュータプロジェクトの概要", howpublished = "{FGCS'92}にて配布", year = 1992} @inbook{inbook1, author = "Knuth, D. E.", title = "Fundamental Algorithms", series = "Art of Computer Programming", volume = 1, chapter = 2, pages = "371--381", publisher = "Addison-Wesley", address = "Reading, Massachusetts", edition = "2nd", year = 1973} @incollection{incollection1, author = "Schwartz, Aaaa Jjjj", title = "Subdividing B{\'e}zier Curves and Surfaces", booktitle = "Geometric Modeling: Algorithms and New Trends", editor = "Farin, G. E.", publisher = "SIAM", address = "Philadelphia", pages = "55--66", year = 1987} @inproceedings{inproceedings1, author = "Baraff, D", title = "Curved Surfaces and Coherence for Non-penetrating Rigid Body Simulation", booktitle = "SIGGRAPH '90 Proceedings", pages = "19--28", editor = "Beach, R. J.", address = "Dallas, Texas", organization = "ACM", publisher = "Addison-Wesley", year = 1990} @manual{manual1, organization = "Adobe Systems Inc.", title = "PostScript Language Reference Manual", publisher = "Addison-Wesley", address = "Reading, Massachusetts", year = 1985} @mastersthesis{mastersthesis1, author = "山下 義行", yomi = "Yamashita, Y", title = "文脈自由文法への否定の導入", school = "筑波大学大学院工学研究科", year = 1989} @misc{misc1, author = "斉藤 康己 and 中島 浩", title = "{{\tt ipsjpapers.sty}}", note = "(情報処理学会論文誌用スタイルファイル," # "論文著者に配布)", year = 1995} @phdthesis{phdthesis1, author = "Weihl, W.", title = "Specification and Implementation of Atomic Data Types", school = "MIT", address = "Boston", year = 1984} @proceedings{proceedings1, title = "Proc. Intl. Conf. on Fifth Generation Computer Systems", organization = "Institute for New Generation Computer Technology", volume = 1, year = 1992} @techreport{techreport1, author = "Ihsakat Aredon", title = "{\TeX} 独稽古", type = "Seminar on Mathematical Sciences", number = 13, institution = "Department of Mathematics, Keio University", address = "Yokohama", year = 1989} @unpublished{unpublished, author = "情報処理学会論文誌編集委員会", title = "{\LaTeX}による論文作成のガイド(第1版)", note = "(論文著者に配布)", year = 1995} \ No newline at end of file diff -r 000000000000 -r 58c6244a184d Paper/ebibsample.bib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/ebibsample.bib Thu Nov 15 19:20:01 2012 +0900 @@ -0,0 +1,1 @@ +@book{companion, author = "Michael Goossens and Frank Mittelbach and Alexander Samarin", title = "The LaTeX Companion", publisher = "Addison Wesley", address = "Reading, Massachusetts", year = 1993} @book{latex, author = "Leslie Lamport", title = "A Document Preparation System {\LaTeX} User's Guide \& Reference Manual", publisher = "Addison Wesley", address = "Reading, Massachusetts", year = 1986} @article{article1, author = "Ssss Itoh and Nnnn Goto", title = "An Adaptive Noiseless Coding for Sources with Big Alphabet Size", journal = "Trans. IEICE", volume = "E74", number = 9, pages = "2495--2503", year = 1991, month = sep} @article{article2, author = "K. Abrahamson and N. Dadoun and " # "D. G. Kirkpatrick and T. Przytycka", title = "A Simple Parallel Tree Contraction Algorithm", journal = "J. Algorithms", volume = 10, number = 2, pages = "287--302", year = 1989} @book{book1, author = "J. D. Foley and others", title = "Computer Graphics --- Principles and Practice", series = "System Programming Series", publisher = "Addison-Wesley", address = "Reading, Massachusetts", edition = "2nd", year = 1990} @book{book2, author = "Chang, C. L. and Lee, R. C. T.", title = "Symbolic Logic and Mechanical Theorem Proving", publisher = "Academic Press", address = "New York", year = 1973} @booklet{booklet1, author = "{Institute for New Generation Computer Technology}", title = "Overview of the Fifth Generation Computer Project", howpublished = "distributed in {FGCS'92}", year = 1992, note = "(in Japanese)"} @inbook{inbook1, author = "Knuth, D. E.", title = "Fundamental Algorithms", series = "Art of Computer Programming", volume = 1, chapter = 2, pages = "371--381", publisher = "Addison-Wesley", address = "Reading, Massachusetts", edition = "2nd", year = 1973} @incollection{incollection1, author = "Schwartz, Aaaa Jjjj", title = "Subdividing B{\'e}zier Curves and Surfaces", booktitle = "Geometric Modeling: Algorithms and New Trends", editor = "Farin, G. E.", publisher = "SIAM", address = "Philadelphia", pages = "55--66", year = 1987} @inproceedings{inproceedings1, author = "Baraff, D", title = "Curved Surfaces and Coherence for Non-penetrating Rigid Body Simulation", booktitle = "SIGGRAPH '90 Proceedings", pages = "19--28", editor = "Beach, R. J.", address = "Dallas, Texas", organization = "ACM", publisher = "Addison-Wesley", year = 1990} @manual{manual1, organization = "Adobe Systems Inc.", title = "PostScript Language Reference Manual", publisher = "Addison-Wesley", address = "Reading, Massachusetts", year = 1985} @mastersthesis{mastersthesis1, author = "Kazuhiro Ohno", title = "Efficient Message Communication of Concurrent Logic Programming Language KL1 Based on Static Analysis", school = "Dept. Information Science, Kyoto University", year = 1995} @misc{misc1, author = "Yasuki Saito and Hiroshi Nakashima", title = "{{\tt ipsjpapers.sty}}", note = "(Style file for Trans. IPSJ distributed to authors.)", year = 1995} @phdthesis{phdthesis1, author = "Weihl, W.", title = "Specification and Implementation of Atomic Data Types", school = "MIT", address = "Boston", year = 1984} @proceedings{proceedings1, title = "Proc. Intl. Conf. on Fifth Generation Computer Systems", organization = "Institute for New Generation Computer Technology", volume = 1, year = 1992} @techreport{WarD:WAM-1, author = "David H. D. Warren", title = "An Abstract {Prolog} Instruction Set", type = "Technical Report", number = 309, institution = "Artificial Intelligence Center, SRI International", year = 1983, month = oct} @unpublished{unpublished, author = "{Editorial Board of Trans. IPSJ}", title = "How to Typeset Your Papers in {\LaTeX} (Version 1)", note = "(distributed to authors)", year = 1995} \ No newline at end of file diff -r 000000000000 -r 58c6244a184d Paper/ipsjcommon.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/ipsjcommon.sty Thu Nov 15 19:20:01 2012 +0900 @@ -0,0 +1,1 @@ +% Copyright (C) 1995,1996,1997,1998,1999,2000,2001 % by Hiroshi Nakashima, Yasuki Saito and % The Editorial Board of the IPSJ Journal % % ipsjcommon.sty 15-May-01 by Hiroshi Nakashima (ver 2.08) % (revision history deleted) % ipsjcommon.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0) %%%%%% Sectioning Commands %%%%%% % \section: 2行取り % others: 1行取り % % Note that \paragraph and \subparagraph act as \subsubsubsection and % \subsubsubsubsection resp. % % The form of sectioning header is; % <1 Kanji sp> \the [`.' if \section] <1 Kanji sp> % Nothe that <1 Kanji sp> is that of \normalsize. \def\section{\@startsection {section}{1}{\@mojihaba}{\sec@aboveskip}{\sec@belowskip}{\fs@sec\bf}} \let\ipsj@section\section % 2.04(1) \def\subsection{\@startsection {subsection}{2}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}} \def\subsubsection{\@startsection {subsubsection}{3}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}} \def\paragraph{\@startsection {paragraph}{4}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}} \def\subparagraph{\@startsection {subparagraph}{5}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}} \newcounter{section} \newcounter{subsection}[section] \newcounter{subsubsection}[subsection] \newcounter{paragraph}[subsubsection] \newcounter{subparagraph}[paragraph] \def\thesection{\arabic{section}} \def\sec@section@postfix{.} \def\thesubsection{\thesection.\arabic{subsection}} \def\thesubsubsection{\thesubsection.\arabic{subsubsection}} \def\theparagraph{\thesubsubsection.\arabic{paragraph}} \def\thesubparagraph{\theparagraph.\arabic{subparagraph}} \setcounter{secnumdepth}{5} \def\appendix{\let\sec@sec\section \def\section{\@startsection {section}{1}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}% \def\thesection{\appendixprefix\arabic{section}}% \def\sec@section@postfix{\appendixpostfix}% \stepcounter{section}\setcounter{section}{0}% \@ifnextchar[%] {\sec@oappendix}{\sec@xappendix}} \def\sec@xappendix{\@ifstar{\let\section\sec@sec}% {\sec@sec*{\ifDS@english Appendix\else 付録\fi}}} \def\sec@oappendix[#1]{\sec@sec*{\ifDS@english Appendix: \else 付録\hskip\jspaceskip\fi #1}} \def\appendixprefix{A.} \def\appendixpostfix{} \def\acknowledgment{\par {\bf \ifDS@english Acknowledgments\else 謝辞\fi}\hskip\@mojihaba \ignorespaces} \let\endacknowledgment\par \newif\ifipsj@recommendation \ipsj@recommendationfalse % 2.04(1) >> \def\recommendation#1{\global\ipsj@recommendationtrue \ifDS@draft\else \ra@putrcvacc\fi \ipsj@section*{#1} } \def\endrecommendation{\par\vskip\baselineskip\penalty\opt@magicpenalty} % 2.04(1) << % Modified \@startsection has a trick for 2行取り of \section, which must % work even if \section appears the top of a page. The BEFORESKIP must be % inserted with respect to the previous baseline. So, we must go back to % the imaginary previous baseline at the top of a page. That is, we do; % \vskip\baselineskip \vspace*{-\baselineskip} % which resuls; % <a> do nothing at midpage % <b> go to the first baseline by \topskip, then go back to 0th % baseline by \vspace*. % The trick "\vskip-\prevdepth \prevdepth\z@" will assure exact vertical % space even when the last line has much depth. % % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} \def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi \par \@tempskipa #4\relax \@afterindenttrue \ifdim\@tempskipa<\z@ \@tempskipa-\@tempskipa \@afterindentfalse\fi \if@nobreak \everypar{}\else \addpenalty{\@secpenalty}\fi \ifdim\@tempskipa>\z@ % Here is the trick for \section. \vskip-\prevdepth \prevdepth\z@ \vskip\baselineskip \vspace*{-\baselineskip}\vskip\@tempskipa\fi \@ifstar {\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} % \@sect is modified to cope with `.' for \section and 文字取り % % \@sect{NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}[TITLE]{TITLE} \def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth \def\@svsec{}\else \refstepcounter{#1} % 2.00(1)>> \let\@@protect\protect \def\protect{\noexpand\protect\noexpand} \edef\@svsec{\csname the#1\endcsname \csname sec@#1@postfix\endcsname \hskip\@mojihaba} \let\protect\@@protect\fi % 2.00(1)<< \@tempskipa #5\relax \ifdim \@tempskipa<\z@ \def\@svsechd{#6\hskip #3\relax\@svsec #8} % 2.00(1) \else \begingroup #6\relax \@hangfrom{\hskip #3\relax\@svsec}% {\interlinepenalty\@M \sec@mojidori{#8}\par}% \endgroup \fi \@xsect{#5}} % \@ssect is modified to cope with 文字取り % % \@sect{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}{TITLE} \def\@ssect#1#2#3#4#5{\@tempskipa #3\relax \ifdim \@tempskipa<\z@ \def\@svsechd{#4\hskip #1\relax #5}% \else \begingroup #4% \@hangfrom{\hskip #1}{\interlinepenalty\@M \sec@mojidori{#5}\par}\endgroup \fi \@xsect{#3}} %% Modify \@xsect to avoid (buggy) \clubpenalty=10000. (H.N.) \def\@xsect#1{\@tempskipa #1\relax \ifdim \@tempskipa<\z@ \glboal\@nobreakfalse \global\@noskipsectrue \everypar{\global\@noskipsecfalse \hskip-\parindent \begingroup \@svsechd \endgroup \unskip \hskip -#1\everypar{}}% \else \par \nobreak \vskip \@tempskipa \global\@nobreaktrue \everypar{\global\@nobreakfalse \if@afterindent\else {\setbox0\lastbox}\fi \everypar{}} \fi\ignorespaces} % Here is a trick for 文字取り of sectioning tilte. The rule is; % 2 - 4 Kanji char -> 5 Kanji char % otherwise -> natural width % \def\sec@mojidori#1{\setbox0\hbox{#1}\settowidth\@tempdimb{あ}% \ifdim\wd0>4.5\@tempdimb #1\else \ifdim\wd0<1.5\@tempdimb #1\else \jintercharskip\fill \jasciikanjiskip\fill \jmathkanjiskip\fill \leavevmode\hbox to5\@tempdimb{#1\hfil}\fi\fi} %%%%%% List-like Environments %%%%%% % % LM RM LW LS LPI II % default 2K 0 0.75K 0.25K 0 0 % \enumerate 3K 0 3K 0 0 0 % \Enumerate 0 0 3K 0 0 3K % \ENUMERATE 0 0 3K 0 0 4K % \enumerate* 1K 0 3K 0 0 2K % \itemize 2K 0 2K 0 0 0 % \Itemize 0 0 2K 0 0 2K % \ITEMIZE 0 0 2K 0 0 3K % \itemize* 1K 0 2K 0 0 1K % \description 2K 0 0 1K 0 -1K % \Description 0 0 0 1K 0 1K % \DESCRIPTION 0 0 0 1K 0 2K % \description* 1K 0 0 1K 0 0 % \verse 3K 2K 0.75K 0.25K -1K -1K % \quotation 2K 2K 0.75K 0.25K 1K 1K % \quote 2K 2K 0.75K 0.25K 0 0 % % where LM is \leftmargin, RM is \rightmargin, LW is \labelwidth, LS is % \labelsep, \LPI is \listparindent, II is \itemindent, and K is Kanji char % width (\@mojihaba). % % All vertical space parameters, \topsep, \partopsep, \itemsep and \parsep, % are 0pt. \leftmargini2\@mojihaba \leftmarginii2\@mojihaba \leftmarginiii2\@mojihaba \leftmarginiv2\@mojihaba \leftmarginv2\@mojihaba \leftmarginvi2\@mojihaba \def\lst@listi{\labelsep.75\@mojihaba \labelwidth.25\@mojihaba \rightmargin\z@ \listparindent\z@ \itemindent\z@ \partopsep\z@ \parsep\z@ \topsep\z@ \itemsep\z@} \def\@listi{\leftmargin\leftmargini \lst@listi} \def\@listii{\leftmargin\leftmarginii \lst@listi} \def\@listiii{\leftmargin\leftmarginiii \lst@listi} \def\@listiv{\leftmargin\leftmarginiv \lst@listi} \def\@listv{\leftmargin\leftmarginv \lst@listi} \def\@listvi{\leftmargin\leftmarginvi \lst@listi} \@listi \def\labelenumi{(\,\theenumi\,)} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\,\theenumii\,)} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{(\,\theenumiii\,)} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{(\,\theenumiv\,)} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} \def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else \advance\@enumdepth \@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth} \list{\csname label\@enumctr\endcsname}{\usecounter {\@enumctr}\def\makelabel##1{##1\hss}% \leftmargin3\@mojihaba \labelwidth3\@mojihaba \labelsep\z@}\fi} \let\endenumerate\endlist \def\labelitemi{$\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\ast$} \def\labelitemiv{$\cdot$} \def\itemize{\ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss##1\hss}% \labelwidth2\@mojihaba \labelsep\z@}\fi} \let\enditemize\endlist \def\description{\list{}{\labelwidth\z@ \labelsep\@mojihaba \itemindent\labelsep \advance\itemindent-\leftmargin \def\makelabel##1{\bf ##1}}} \let\enddescription\endlist \let\latex@trivlist\@trivlist \def\lst@trivlist#1#2{\leftmargin#1\relax \itemindent\labelwidth \advance\itemindent\labelsep \advance\itemindent#2\relax \let\@trivlist\latex@trivlist \@trivlist} \def\lst@Trivlist{\def\@trivlist{\lst@trivlist\z@\z@}} \def\Enumerate{\lst@Trivlist \enumerate} \let\endEnumerate\endlist \def\Itemize{\lst@Trivlist \itemize} \let\endItemize\endlist \def\Description{\lst@Trivlist \description} \let\endDescription\endlist \def\lst@TRIVLIST{\def\@trivlist{\lst@trivlist\z@\@mojihaba}} \def\ENUMERATE{\lst@TRIVLIST \enumerate} \let\endENUMERATE\endlist \def\ITEMIZE{\lst@TRIVLIST \itemize} \let\endITEMIZE\endlist \def\DESCRIPTION{\lst@TRIVLIST \description} \let\endDESCRIPTION\endlist \def\lst@strivlist{\def\@trivlist{\lst@trivlist\@mojihaba{-\@mojihaba}}} \@namedef{enumerate*}{\lst@strivlist \enumerate} \@namedef{endenumerate*}{\endlist} \@namedef{itemize*}{\lst@strivlist \itemize} \@namedef{enditemize*}{\endlist} \@namedef{description*}{\lst@strivlist \description} \@namedef{enddescription*}{\endlist} \def\verse{\let\\=\@centercr \list{}{\itemindent-\@mojihaba \listparindent\itemindent \rightmargin\leftmargin \advance\leftmargin\@mojihaba}\item[]} \let\endverse\endlist \def\quotation{\list{}{\listparindent\@mojihaba \itemindent\listparindent \rightmargin\leftmargin}\item[]} \let\endquotation\endlist \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote\endlist \def\newtheorem{\@ifstar {\theo@newtheorem{\theo@it}{\ }}{\theo@newtheorem{}{\theo@sp}}} \def\theo@newtheorem#1#2#3{\@namedef{theo@it@#3}{#1}\@namedef{theo@sp@#3}{#2}% \@ifnextchar[%] {\@othm{#3}}{\@nthm{#3}}} \def\@begintheorem#1#2{\DESCRIPTION \csname theo@it@\@currenvir\endcsname \item[#1\csname theo@sp@\@currenvir\endcsname #2]} \def\@opargbegintheorem#1#2#3{\DESCRIPTION \csname theo@style@\@currenvir\endcsname \item[#1\csname theo@sp@\@currenvir\endcsname #2\ (#3)]} \let\@endtheorem\endlist % 1.02(2) \ifDS@english \let\theo@it\it \let\theo@sp\ % \else \let\theo@it\relax \let\theo@sp\relax \fi %%%%%% Bibliography %%%%%% % % 1. Label format is "<nn>)". % 2. \leftmargin 24Q (or 2K) % 3. \labelsep is 6Q (or 0.5K) % 4. \baselineskip is 16Q(j)/15Q(e)/normal(d) % 5. ~ and \ can be shrunk to 0pt. \def\thebibliography#1{% \section*{\hskip-\@mojihaba\hfill\hbox{\bib@refname}\hfill\hskip\z@} \ifDS@draft \@tempdima\@mojihaba \else\@tempdima12\@Q\fi \list{\arabic{enumi}\rlap{%( )}}% {\fs@bibliography \leftmargin2\@tempdima \labelwidth\z@ \labelsep\@tempdima \itemindent.5\@tempdima \usecounter{enumi}\def\makelabel##1{\hss\llap{##1}}} \def\newblock{\hskip .11em plus .33em minus .07em} \sloppy \frenchspacing \def\ {\hskip\fontdimen\tw@\font plus\fontdimen\thr@@\font minus\fontdimen\tw@\font\relax}} \ifDS@english \def\bib@refname{References} \else {\fs@sec \@tempdima7\jspaceskip \xdef\bib@refname{\hbox to\the\@tempdima{\jintercharskip\fill 参考文献}}} \fi \newdimen\bib@adjustheight \bib@adjustheight-\maxdimen \def\endthebibliography{\endlist \par \@normalsize \@tempdima\@colht \advance\@tempdima-\@colroom \advance\@tempdima\pagetotal \advance\@tempdima-\prevdepth \advance\@tempdima-\topskip \@tempdimb\@tempdima \divide\@tempdima\baselineskip \@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip \advance\@tempdima-\@tempdimb \ifdim\@tempdima<\z@ \advance\@tempdima\baselineskip \fi \vskip-\prevdepth \vskip\@tempdima \prevdepth\z@ \bib@adjustheight\@tempdimb \advance\bib@adjustheight\@tempdima \global\advance\bib@adjustheight\topskip \if@firstcolumn\else\global\advance\bib@adjustheight\@M pt\fi} %%%%%% Floats %%%%%% % You may need to change following parameters \setcounter{topnumber}{4} \setcounter{bottomnumber}{4} \setcounter{totalnumber}{8} \setcounter{dbltopnumber}{4} \def\topfraction{.9} \def\bottomfraction{.9} \def\textfraction{.1} \def\dbltopfraction{.9} \def\floatpagefraction{.9} \def\dblfloatpagefraction{.9} \newcounter{figure} \newcounter{table} \def\thefigure{\@arabic\c@figure} \def\thetable{\@arabic\c@table} \def\fps@figure{tbp} \def\fps@table{tbp} \def\ftype@figure{1} \def\ftype@table{2} \def\fnum@figure{\fname@figure\thefigure} \def\fnum@table{\fname@table\thetable} \ifDS@english \def\fname@figure{Fig.\,} % 2.06(1) \def\fname@Figure{Figure~} \def\fname@table{Table~} \else \def\fname@figure{図\fref@nobreak} % 1.06(1) \let\fname@Figure\fname@figure \def\fname@table{表\fref@nobreak} % 1.06(1) \fi \def\fnum@efigure{Fig.\,\thefigure} % 2.06(1) \def\fnum@etable{Table~\thetable} % 1.06(3) >> \def\figure{\let\cap@afterskip\relax \let\flt@fontsize\relax \@float{figure}} \def\endfigure{\end@float} \@namedef{figure*}{\let\cap@afterskip\relax \let\flt@fontsize\relax \@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} %% Default font for table env. is \footnotesize (H.N.) \def\table{\let\cap@beforeskip\relax \let\flt@fontsize\fs@table \@float{table}} \def\endtable{\end@float} \@namedef{table*}{\let\cap@beforeskip\relax \let\flt@fontsize\fs@table \@dblfloat{table}} % 2.01(2) \@namedef{endtable*}{\end@dblfloat} % 1.06(3) << \let\latex@float\@float \let\latex@dbflt\@dbflt \def\@float{\cap@linewidth\hsize \cap@hsize\hsize \latex@float} \def\@dbflt{\cap@linewidth.8\textwidth \cap@hsize.667\textwidth \latex@dbflt} \let\latex@xfloat\@xfloat % 1.06(3) \def\@xfloat#1[#2]{\latex@xfloat#1[#2]\flt@fontsize} % 1.06(3) \def\end@float{\flt@endfloat \ifdim\bib@adjustheight=-\maxdimen\else \advance\bib@adjustheight\@tempdima \global\advance\bib@adjustheight\baselineskip \fi \ifnum\@floatpenalty <\z@ \@nameuse{@largefloatcheck}% % 2.00(2) \@cons\@currlist\@currbox \ifdim \ht\@currbox >\textheight \ht\@currbox\textheight \fi \ifnum\@floatpenalty < -\@Mii \penalty -\@Miv \@tempdima\prevdepth \vbox{} \prevdepth\@tempdima \penalty\@floatpenalty \else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@esphack \fi\fi} \def\end@dblfloat{\if@twocolumn \flt@endfloat \ifnum\@floatpenalty <\z@ \@cons\@dbldeferlist\@currbox\fi \ifnum \@floatpenalty =-\@Mii \@esphack\fi\else\end@float\fi} \def\flt@endfloat{\par \vskip\z@ \global\@minipagefalse \@nameuse{outer@nobreak}\egroup % 2.00(2) \@nameuse{color@endbox}\@normalsize % 2.00(2) \@tempdima\ht\@currbox \advance\@tempdima\dp\@currbox \divide\@tempdima\baselineskip \@tempcnta\@tempdima \advance\@tempcnta\@ne \@tempdima\@tempcnta\baselineskip \global\setbox\@currbox\vbox to\@tempdima{\vfil\box\@currbox\vfil}} \def\cap@beforeskip{\nointerlineskip\vskip5pt} \def\cap@afterskip{\nointerlineskip\vskip5pt} \long\def\@caption#1[#2]#3{\par\begingroup \fs@caption \cap@beforeskip \@makecaption{{\bf \csname fnum@#1\endcsname}}{\ignorespaces#3}\par \ifDS@english \cap@afterskip \fi \endgroup} \def\ecaption{\@dblarg{\@ecaption\@captype}} \long\def\@ecaption#1[#2]#3{\par \begingroup \fs@caption \@makecaption{\csname fnum@e#1\endcsname}{\ignorespaces #3}\par \cap@afterskip \endgroup} \newif\ifcap@sw \newdimen\cap@linewidth \newdimen\cap@hsize \newcount\cap@prevgraf \newbox\cap@box \let\latex@label\label \long\def\@makecaption#1#2{\begingroup \gdef\cap@label{}\let\label\@gobble \setbox0\hbox{#1\hskip\jspaceskip} \advance\cap@linewidth-\wd0 \advance\cap@hsize-\wd0 \cap@makepar\cap@linewidth{#2}{\def\label##1{{% %1.03(1) \def\protect{\noexpand\protect\noexpand} %1.03(1) \xdef\cap@label{\cap@label\protect\label{##1}}}}} %1.03(1) \cap@swtrue \ifnum\cap@prevgraf=\@ne \setbox1\vbox{\unvcopy1\cap@getbox1 \ifhbox1 \global\setbox\cap@box\hbox{\unhbox1} \ifdim\wd\cap@box>\cap@linewidth\else \global\cap@swfalse \fi\fi} \ifcap@sw\else \cap@put{\vtop{\box\cap@box\hbox{}}} \fi\fi \ifcap@sw \cap@makepar\cap@hsize{#2}\relax \ifnum\cap@prevgraf=\tw@ \setbox1\vbox{\unvcopy1\cap@getbox2\cap@getbox3 \ifhbox2\ifhbox3 \setbox2\hbox{\unhbox2}\setbox3\hbox{\unhbox3} \ifdim\wd2>\cap@hsize\else \ifdim\wd3>\cap@hsize\else \global\cap@swfalse \global\setbox\cap@box\vtop{\box3\box2\hbox{}} \fi\fi\fi\fi}\fi \ifcap@sw \setbox1\vtop{\hsize\cap@hsize \@parboxrestore #2\par\hbox{}}\cap@put{\box1} \else\cap@put{\box\cap@box}\fi \fi \endgroup \cap@label} \long\def\cap@makepar#1#2#3{\setbox1\vbox{\hsize#1\@parboxrestore \rightskip\@flushglue \hfuzz\maxdimen \exhyphenpenalty\z@ \finalhyphendemerits\z@ \let\@@par\cap@par \let\par\cap@par \global\cap@prevgraf\z@ #3#2\cap@par}} \let\cap@@par\@@par \def\cap@par{\cap@@par\global\advance\cap@prevgraf\prevgraf \prevgraf\z@} \def\cap@put#1{\hbox to\hsize{\hss\box0#1\hss} \vskip-\baselineskip\prevdepth\z@} \def\cap@getbox#1{\@tempcnta10\relax\@whilenum\@tempcnta>0\do{% \unskip\unkern\unpenalty\advance\@tempcnta\m@ne}\setbox#1\lastbox} \def\figref{\fref@ref\fname@figure} \def\Figref{\fref@ref\fname@Figure} \def\tabref{\fref@ref\fname@table} \let\Tabref\tabref \def\fref@ref#1{\@ifstar{\fref@sref{#1}}{\fref@iref\bf{#1}}} \def\fref@iref#1#2#3{{\@ifundefined{fref@r@#3}% {#1#2\fref@doref{#3}\global\@namedef{fref@r@#3}{}}{#2\fref@doref{#3}}}} \def\fref@sref#1#2{#1\fref@doref{#2}} \def\fref@doref#1{{\let\null\relax\ref{#1}}} % 1.06(2) \def\fref@nobreak{\nobreak\ifASCII\else\hskip\@@jasciikanjiskip\fi} % 1.06(1) \def\fig@extraspace{3mm} %1.04(4) \def\figspace#1{\vskip#1\vskip\fig@extraspace} %1.04(4) %%%%%% Footnote %%%%%% %% The following codes are from pfnote.sty, by H. Nakashima of Kyoto Univ., %% to reset footnote counter at the begining of every page. (H.N.) % 1.04(2c)>> \def\footnote{\@ifnextchar[%] {\@xfootnote}{{\PF@adjustfnote \stepcounter{\@mpfn}% \xdef\@thefnmark{\thempfn}}\@footnotemark\@footnotetext}} \def\footnotemark{\@ifnextchar[%] {\@xfootnotemark}{{\PF@adjustfnote \stepcounter{footnote}% \xdef\@thefnmark{\thefootnote}}\@footnotemark}} % 1.04(2c)<< \newcount\PF@fnotectr\global\PF@fnotectr=\z@ \newcount\PF@page\global\PF@page=-\@M \def\PF@thepage{\number\c@page} \def\PF@adjustfnote{\global\advance\PF@fnotectr\@ne \expandafter\ifx\csname PF@fn\number\PF@fnotectr\endcsname\relax \global\c@footnote\z@\else \expandafter\@tempcnta\csname PF@fn\number\PF@fnotectr\endcsname\relax \ifnum\@tempcnta=\PF@page\else \global\PF@page\@tempcnta \global\c@footnote\z@ \fi\fi % 1.04(2a)>> \expandafter\ifx\csname PF@fnpage\number\PF@page\endcsname\relax \else \expandafter\@tempcnta\csname PF@fnpage\number\PF@page\endcsname\relax % 2.00(4)>> \ifnum\@tempcnta>\tw@ \global\let\thefootnote\thefootnotemany \else \global\let\thefootnote\thefootnoteord \fi\fi % 2.00(4)<< \@tempcnta\c@footnote \multiply\@tempcnta\@M \advance\@tempcnta\PF@fnotectr \if@filesw{\let\PF@thepage\relax \xdef\@gtempa{\write\@auxout{\string\PF@fnpage {\number\@tempcnta}{\PF@thepage}}}}% \@gtempa\fi} % 1.04(2a)<< % 1.04(2a)>> \def\PF@fnpage#1#2{\@tempcnta#1\relax \@tempcntb\@tempcnta \divide\@tempcnta\@M \expandafter\xdef\csname PF@fnpage#2\endcsname{\number\@tempcnta} \multiply\@tempcnta\@M \advance\@tempcntb-\@tempcnta \global\@namedef{PF@fn\number\@tempcntb}{#2}} % 1.04(2a)<< %% End of quote from pfnote.sty. (H.N.) \long\def\@makefntext#1{\leftskip20\@Q \noindent\llap{\@makefnmarkforfn\hskip-\scriptspace\hskip5\@Q}#1} % 1.04(2e) \def\@makefnmarkstar{$^{\hbox{\tiny\fn@fontv\@thefnmark}}$} % 1.04(2d) \def\@makefnmarkdagger{$\@thefnmark$} \let\@makefnmarkforfn\@makefnmarkstar \def\@makefnmark{\smash{\hbox{\scriptsize\fn@fontvi$^{\@thefnmark}$}}} % 1.04(2d) % smashed to make it % zero height %% Awful definition of \thefootnote to put subsequent ☆'s. (H.N.) \def\thefootnote{\leavevmode\hbox{% \ifcase\c@footnote\or ☆\or ☆☆\or ☆☆☆\else \thefootnotemany\fi}} % 1.04(2b) \def\thefootnotemany{\hbox{☆\hskip\z@\number\c@footnote}} % 1.04(2b) % 2.05(3) \let\thefootnoteord\thefootnote %%%%%% Citation %%%%%% %% The following codes for \cite are from overcite.sty by D. Arseneau, but %% modified for Trans. IPSJ (H.N.) % O V E R C I T E . S T Y % % version 3.2 (Mar 1993) % % Compressed, sorted lists of superscript numerical citations. % see also CITE.STY and DRFTCITE.STY % % Copyright (C) 1989-1993 by Donald Arseneau % These macros may be freely transmitted, reproduced, or modified for % non-commercial purposes provided that this notice is left intact. % \def\cite{\protect\@p@cite} \def\@p@cite{\let\@citeY\@citey \@p@@cite} \def\Cite{\protect\@p@Cite} \def\@p@Cite{\let\@citeY\@Citey \@p@@cite} \def\@p@@cite{\@ifnextchar[%] {\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} \def\@citex[#1]#2{\@citeY{\@p@citen{#2}}\if@tempswa\space[#1]\fi} \def\@citey#1{\leavevmode\unskip\kern\z@$\let\@cite@tiestyle\scriptstyle % % 2.06(2) \def\@cite@punct{,}\m@th^{\hbox{\scriptsize#1}}$\spacefactor\@m} \def\@Citey#1{\let\@cite@tiestyle\textstyle \ifDS@english \def\@cite@punct{,\space\penalty\@highpenalty}%1.04(1) \else\def\@cite@punct{,}\fi#1\spacefactor\@m} %1.04(1) \def\@p@citen#1{% \edef\@tempa{\@ignspaftercomma,#1, \@end, }% \edef\@tempa{\expandafter\@ignendcommas\@tempa\@end}% \if@filesw \immediate\write\@auxout{\string\citation{\@tempa}}\fi \@tempcntb\m@ne \let\@h@ld\relax \let\@citea\@empty \let\@celt\relax \def\@cite@list{}% % 2.06(3) \@for\@citeb:=\@tempa\do{\@make@cite@list}% \@tempcnta\m@ne \let\@celt\@compress@cite \@cite@list \@h@ld} \def\@ignspaftercomma#1, {\ifx\@end#1\@empty\else #1,\expandafter\@ignspaftercomma\fi} \def\@ignendcommas,#1,\@end{#1} %( \let\@cite@rp) \chardef\@cite@escape`\\ \def\@make@cite@list{% \expandafter\let\expandafter\@B@citeB\csname b@\@citeb\endcsname \ifx\@B@citeB\relax \@citea {\bf ?}\@cite@rp \let\@citea\@cite@punct \@latex@warning{Citation `\@citeb' on page \thepage\space undefined}% % 2.00(3) \global\@namedef{b@\@citeb}{{\bf ?}}% \else \ifcat \@cite@escape\ifnum\z@<0\@B@citeB \@cite@escape\else A\fi \@tempcnta\@B@citeB \relax \ifnum \@tempcnta>\@tempcntb \edef\@cite@list{\@cite@list \@celt{\@B@citeB}}% \@tempcntb\@tempcnta \else \edef\@cite@list{\expandafter\@sort@celt\@cite@list\@gobble @}% \fi \else \@citea \@B@citeB \@cite@rp \let\@citea\@cite@punct \fi\fi} \def\@sort@celt#1#2{\ifx \@celt #1% parameters are \@celt {num} \ifnum #2<\@tempcnta % number goes later in list \@celt{#2}\expandafter\expandafter\expandafter\@sort@celt \else \@celt{\number\@tempcnta}\@celt{#2}\fi\fi} \def\@compress@cite#1{\advance\@tempcnta\@ne \ifnum #1=\@tempcnta \ifx\@h@ld\relax \edef\@h@ld{\@citea #1\@cite@rp}% \else \edef\@h@ld{\hbox{$\@cite@tiestyle\sim$}% \penalty\@highpenalty #1\@cite@rp}\fi \else \@h@ld \@citea #1\@cite@rp \let\@h@ld\relax \fi \@tempcnta#1\relax \let\@citea\@cite@punct} %% End of quote from overcite.sty. (H.N.) \def\multicite{\protect\@p@multicite} \def\@p@multicite#1#2{\@citey{\@p@citen{#1}$\scriptstyle\sim$\@p@citen{#2}}} \def\multiCite{\protect\@p@multiCite} \def\@p@multiCite#1#2{\@Citey{\@p@citen{#1}$\sim$\penalty\@highpenalty \@p@citen{#2}}} %%%%%% Box Height Adjustment and Displayed Math %%%%%% \newbox\adj@boxa \newbox\adj@boxb \newdimen\adj@height \@tempdima\baselineskip \advance\@tempdima-\topskip \edef\adj@minaboveclearance{\the\@tempdima} \@tempdima\baselineskip \advance\@tempdima-1ex \edef\adj@maxaboveclearance{\the\@tempdima} \ifDS@english \setbox0\hbox{A} \else \setbox0\hbox{あ} \fi \@tempdima\baselineskip \advance\@tempdima-\ht0 \advance\@tempdima\dp0 \edef\adj@bhd{\the\@tempdima} % 2.01(1) >> \def\adjustvboxheight{\ifinner \let\@tempa\relax \let\endadjustvboxheight\relax \let\@endadjustvboxheight\relax \else \let\@tempa\@adjustvboxheight \fi \@tempa} \def\@adjustvboxheight{\par\penalty\z@ \global\setbox\adj@boxa\vbox\bgroup\relax % 1.01(3) \let\@footnotetext\@mpfootnotetext % 2.02(1) % % 2.05(1) \hsize\columnwidth} % 2.01(1) << \def\endadjustvboxheight{\adj@closebox \adj@putbox \ifvoid\@mpfootins\else\insert\footins{\unvbox\@mpfootins}\fi % % 2.02(1) \global\@ignoretrue\@endparenv} \def\adj@closebox{\egroup \normalsize \boxmaxdepth\@maxdepth % 1.01(1,3) \setbox\adj@boxa\vbox{\unvbox\adj@boxa} % 1.01(3) \adj@height\ht\adj@boxa \advance\adj@height\adj@minaboveclearance\relax \@tempdima\adj@height \divide\adj@height\baselineskip \@tempcnta\adj@height \adj@height\@tempcnta\baselineskip \ifdim\adj@height<\@tempdima \advance\adj@height\baselineskip\fi} \def\adj@putbox{\vskip-\prevdepth \prevdepth\z@ \vskip\baselineskip \vspace*{-\baselineskip}\advance\@tempdima-\adj@height \@tempdima-\@tempdima \advance\@tempdima\adj@minaboveclearance\relax \@tempdimb\dp\adj@boxa \ifdim\@tempdima>\adj@maxaboveclearance\relax \advance\@tempdima-\@tempdimb \advance\@tempdima\adj@bhd\relax \divide\@tempdima\tw@ \vbox to\adj@height{\vskip\@tempdima \box\adj@boxa \vss} \else \vbox to\adj@height{\vfil\box\adj@boxa\vskip-\@tempdimb}\fi} \newcount\adj@deadcycle \@namedef{adjustvboxheight*}{\adjustvboxheight} \@namedef{endadjustvboxheight*}{\@endadjustvboxheight} \def\@endadjustvboxheight{\global\adj@deadcycle10\relax \@iendadjustvboxheight \ifvoid\@mpfootins\else\insert\footins{\unvbox\@mpfootins}\fi % % 2.05(2) \global\@ignoretrue\@endparenv} \def\@iendadjustvboxheight{\adj@closebox \ifnum\adj@deadcycle<\@ne \ipsj@error{I cannot adjust too tall/deep box}{\@ehd}\fi % 2.00(3) \global\advance\adj@deadcycle\m@ne \ifdim\pagegoal=\maxdimen \@tempdimb\@colht \advance\@tempdimb-\topskip \advance\@tempdimb\baselineskip \else \@tempdimb\pagegoal \advance\@tempdimb-\pagetotal \advance\@tempdimb-\pagedepth \advance\@tempdimb\prevdepth \fi % 1.01(4a) \let\next\relax \ifdim\adj@height<\@tempdimb \adj@putbox \else \ifdim\adj@height=\@tempdimb \adj@putbox \else \divide\@tempdimb\baselineskip \@tempcnta\@tempdimb % 1.01(4b)>> \@tempdimb\@tempcnta\baselineskip \advance\@tempdimb-\adj@minaboveclearance\relax % 1.01(4b)<< \setbox\adj@boxa\vbox{\allowbreak\unvbox\adj@boxa} \vbadness\@M \splittopskip\z@ \splitmaxdepth\@maxdepth %1.01(1) \setbox\@tempboxa\vsplit\adj@boxa to\@tempdimb \setbox\adj@boxb\copy\adj@boxa \setbox\@tempboxa\vbox{\unvbox\@tempboxa} \@tempdimb\ht\@tempboxa \advance\@tempdimb\dp\@tempboxa \ifdim\@tempdimb>\z@ \setbox\adj@boxa\vbox\bgroup\unvbox\@tempboxa \adj@closebox \adj@putbox \newpage \else \newpage \fi \setbox\adj@boxa\vbox\bgroup\unvbox\adj@boxb \let\next\@iendadjustvboxheight \fi\fi \next} \def\adj@eqindent{2\@mojihaba} \def\[{\adjustvboxheight\advance\@totalleftmargin\adj@eqindent\relax \hbox to\hsize\bgroup\hskip\@totalleftmargin$\displaystyle} \def\]{$\hfill\egroup\endadjustvboxheight\@doendpe\ignorespaces} % 2.03(1) \def\equation{\refstepcounter{equation}\[} \def\endequation{\hfill\@eqnnum$\egroup\endadjustvboxheight} \def\theequation{\arabic{equation}} \def\@eqnnum{{\rm (\theequation)\hskip\@mojihaba}} \def\adj@eqnlineskip{3pt} \def\adj@eqnlineskiplimit{2pt} \def\eqnarray{\futurelet\@tempa\adj@eqnarray} \def\adj@eqnarray{\ifx\@tempa[%] \let\next\adj@ieqnarray\else\let\next\adj@xeqnarray\fi\next} \def\adj@ieqnarray[#1]{\@ifundefined{adj@xeqnarray#1}% {\ipsj@warning{Unknown eqnarray option `#1'}\adj@xeqnarray}% 2.00(3) {\@nameuse{adj@xeqnarray#1}}} \def\adj@xeqnarray{\adjustvboxheight \advance\@totalleftmargin\adj@eqindent\relax \stepcounter{equation}\let\@currentlabel=\theequation \global\@eqnswtrue \global\@eqcnt\z@\tabskip\z@\let\\=\@eqncr \lineskip\adj@eqnlineskip \lineskiplimit\adj@eqnlineskiplimit \jot\z@ \halign to \hsize\bgroup\@eqnsel\hskip\@totalleftmargin \hfil$\displaystyle{##}$&\global\@eqcnt\@ne % 1.01(2) \hfil$\displaystyle{}\mathrel{##}{}$\hfil &\global\@eqcnt\tw@ $\displaystyle{##}$\hfil \tabskip\@centering&\llap{##}\tabskip\z@\cr} \def\adj@xeqnarrays{\let\endadjustvboxheight\@endadjustvboxheight \adj@xeqnarray} \@namedef{adj@xeqnarrays!}{\par\let\adjustvboxheight\relax \let\endadjustvboxheight\relax \adj@xeqnarray} \def\endeqnarray{\@@eqncr \egroup \global\advance\c@equation\m@ne \endadjustvboxheight} %%%%%% Kinsoku Parameters %%%%%% % 1.04(3)>> \ifASCII \postbreakpenalty`\`=\@M \prebreakpenalty`'=\@M \prebreakpenalty`)=\@M \postbreakpenalty`(=\@M \prebreakpenalty`]=\@M \postbreakpenalty`[=\@M \prebreakpenalty`\}=\@M \postbreakpenalty`\{=\@M \prebreakpenalty`・=\@M \prebreakpenalty`:=\@M \prebreakpenalty`;=\@M \prebreakpenalty`?=\@M \prebreakpenalty`!=\@M \prebreakpenalty\jis"212D=\@M % ´ \postbreakpenalty\jis"212E=\@M % ` \postbreakpenalty\jis"2146=\@M % ‘ \prebreakpenalty\jis"2147=\@M % ’ \postbreakpenalty\jis"2148=\@M % “ \prebreakpenalty\jis"2149=\@M % ” \prebreakpenalty`)=\@M \postbreakpenalty`(=\@M \prebreakpenalty`}=\@M \postbreakpenalty`{=\@M \prebreakpenalty`]=\@M \postbreakpenalty`[=\@M \postbreakpenalty`‘=\@M \prebreakpenalty`’=\@M \postbreakpenalty\jis"214C=\@M %〔 \prebreakpenalty\jis"214D=\@M % 〕 \postbreakpenalty\jis"2152=\@M % 〈 \prebreakpenalty\jis"2153=\@M % 〉 \postbreakpenalty\jis"2154=\@M % 《 \prebreakpenalty\jis"2155=\@M % 》 \postbreakpenalty\jis"2156=\@M % 「 \prebreakpenalty\jis"2157=\@M % 」 \postbreakpenalty\jis"2158=\@M % 『 \prebreakpenalty\jis"2159=\@M % 』 \postbreakpenalty\jis"215A=\@M % 【 \prebreakpenalty\jis"215B=\@M % 】 \prebreakpenalty`ぁ=\@M \prebreakpenalty`ぃ=\@M \prebreakpenalty`ぅ=\@M \prebreakpenalty`ぇ=\@M \prebreakpenalty`ぉ=\@M \prebreakpenalty`っ=\@M \prebreakpenalty`ゃ=\@M \prebreakpenalty`ゅ=\@M \prebreakpenalty`ょ=\@M \prebreakpenalty\jis"246E=\@M % ゎ \prebreakpenalty`ァ=\@M \prebreakpenalty`ィ=\@M \prebreakpenalty`ゥ=\@M \prebreakpenalty`ェ=\@M \prebreakpenalty`ォ=\@M \prebreakpenalty`ッ=\@M \prebreakpenalty`ャ=\@M \prebreakpenalty`ュ=\@M \prebreakpenalty`ョ=\@M \prebreakpenalty\jis"256E=\@M % ヮ \prebreakpenalty\jis"2575=\@M % ヵ \prebreakpenalty\jis"2576=\@M % ヶ \fi % 1.04(3)<< %%%%%% Miscellaneous %%%%%% %% \doublerulesep is 1pt (H.N.) \arraycolsep5pt \tabcolsep6pt \arrayrulewidth.4pt \doublerulesep1pt \tabbingsep.5\@mojihaba \skip\@mpfootins\skip\footins \fboxsep3pt \fboxrule.4pt %% We simply allow (not encourage) club and widow lines. (H.N.) \clubpenalty\z@ \widowpenalty\z@ \displaywidowpenalty\z@ % The following redefinition influences \linebreak etc. \def\sloppy{\tolerance9999\hbadness9999\hfuzz.5\p@ \vfuzz.5\p@} \endinput \ No newline at end of file diff -r 000000000000 -r 58c6244a184d Paper/ipsjdrafts.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/ipsjdrafts.sty Thu Nov 15 19:20:01 2012 +0900 @@ -0,0 +1,1 @@ +% Copyright (C) 1995,1996,1997,1998,1999,2000,2001 % by Hiroshi Nakashima, Yasuki Saito and % The Editorial Board of the IPSJ Journal % % ipsjdrafts.sty 5-Jun-00 by Hiroshi Nakashima (ver 2.07) % (revision history deleted) % ipsjdrafts.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0) %%%%%% Fonts %%%%%% % All font loading are removed. \ifASCII \let\latex@setsize\@setsize \def\@setsize#1#2#3#4{\latex@setsize{#1}{#2}{#3}{#4}\jspaceskip1zw} \newcount\jfsize \let\setjglues\relax \let\jintercharskip\kanjiskip \let\jasciikanjiskip\xkanjiskip \let\jmathkanjiskip\xkanjiskip \newdimen\jspaceskip \def\defjintercharskip#1#2#3#4{\@asciiwarning{\defjintercharskip}} \def\defjasciikanjiskip#1#2#3#4{\@asciiwarning{\defjasciicharskip}} \def\defmathkanjiskip#1#2#3#4{\@asciiwarning{\defmathcharskip}} \def\defjspaceskip#1#2#3#4{\@asciiwarning{\defjspaceskip}} \def\@asciiwarning#1{\ipsj@warning{\string#1\space % 2.00(1) is not supported in ASCII version}} \if@LaTeX@eN % 2.00(2)>> \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} \fi % 2.00(2)<< \def\dg{\gt} % 1.06(1) \def\dm{\mc} % 1.06(1) \else % This is necessary even in 2e. \ifx\sixdm\undefined \jfont\sixdm=dm6 \fi % 1.01(1) % 1.06(2) \fi \if@LaTeX@eN % 2.00(2)>> \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} \DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}} \DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}} \fi % 2.00(2)<< %%%%%% Basic Font Size Macros %%%%%% % Nothing at all. %%%%%% Font Size Macros %%%%%% \def\fs@setsize#1#2#3#4{\normalsize\dimen@\normalbaselineskip \@ifstar{\@setsize{#1}{\dimen@}{#3}{#4}}% {\@setsize{#1}{#2}{#3}{#4}}} % \baselineskip's are almost 1.25 times those defined in NTT jart12. \def\@normalsize{\@setsize\normalsize{20pt}\xiipt\@xiipt} \def\small{\fs@setsize\small{17pt}\xipt\@xipt} \def\footnotesize{\fs@setsize\footnotesize{14pt}\xpt\@xpt} \def\scriptsize{\@setsize\scriptsize{11.875pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{8.75pt}\vipt\@vipt} \def\large{\@setsize\large{20pt}\xivpt\@xivpt} % 1.06(3) \def\Large{\@setsize\Large{25pt}\xviipt\@xviipt} \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} \let\huge\LARGE \let\Huge\LARGE \if@LaTeX@e % 2.00(3)>> \let\normalsize\@normalsize \fi % 2.00(3)<< \let\fs@sec\large \let\fs@subsec\normalsize \let\fs@bibliography\normalsize \let\fs@caption\normalsize \let\fs@table\normalsize \let\fs@footnote\footnotesize {\tiny \xdef\fn@fontv{\ifASCII \the\jfont \else \sixdm \fi}} \let\fn@fontvi\fn@fontv \@normalsize \ifASCII\else % 1.06(2) >> \ifx\setjglue\undefined\else % 2.04(1) \def\@tempc{\edef\@tempa{\the\ja} \edef\@tempa{\expandafter\string\@tempa} \expandafter\@tempb\@tempa\@nil \expandafter\defjintercharskip\csname\@tempa\endcsname} \let\@tempd\@namedef {\catcode`j=12\catcode`a=12\gdef\@tempb#1#2ja\@nil{\@tempd{@tempa}{#2}}} \dg\@tempc{0pt}{1.4pt}{0.14pt} \dm\@tempc{0pt}{1.4pt}{0.14pt} \setjglues \fi\fi % 1.06(2) << \@tempdima.55\baselineskip \edef\sec@aboveskip{\the\@tempdima} \@tempdima.45\baselineskip \edef\sec@belowskip{\the\@tempdima} \if@LaTeX@e\else % 2.04(2) \let\latex@bf\bf % 1.06(1) \def\bf{\dg\latex@bf} % 1.06(1) \fi % 2.04(2) %%%%%% Page Layout Parameters %%%%%% \newdimen\@mojihaba \@mojihaba\jspaceskip % No heads \headheight\z@ \headsep\z@ \setbox0\hbox{$\displaystyle X^X$} \topskip\ht0 % 1 page = 32 lines \textheight31\baselineskip \advance\textheight\topskip \advance\textheight100sp % \topmargin is (A4height-\textheight)/2 - 1in \topmargin296mm \advance\topmargin-\textheight \divide\topmargin\tw@ \advance\topmargin-1in \ifASCII\if@LaTeX@e\@@topmargin\topmargin\fi\fi % 2.00(4) \footskip 1.5\baselineskip % 1 page = 35 Kanji chars \ifDS@english % 1.06(4) >> \textwidth404.13048pt \else \textwidth35\@mojihaba \fi % 1.06(4) << % \oddsidemargin is (A4width-\textwidth)/2 - 1in \oddsidemargin210mm \advance\oddsidemargin-\textwidth \divide\oddsidemargin\tw@ \advance\oddsidemargin-1in % As jart12 \footnotesep10pt \skip\footins 10.8pt plus 4pt minus 2pt \def\footnoterule{\kern-3\p@ \hrule width.4\columnwidth \kern2.6\p@} \floatsep \baselineskip \textfloatsep \baselineskip \intextsep \baselineskip \@maxsep \baselineskip \dblfloatsep \baselineskip \dbltextfloatsep \baselineskip \@dblmaxsep \baselineskip \@fptop 0pt plus 1fil \@fpsep 0pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 0pt plus 2fil \@dblfpbot 0pt plus 1fil \parskip\z@ \parindent \@mojihaba \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty %%%%%% Title and Authors %%%%%% % % Format of title, author names and abstract. % % \leftline{\LARGE 論文} % \vfill % \beign{center}\LARGE\bf <Japanese title>\end{center} % \vfill % \begin{center}\LARGE\bf <Engilish title>\end{center} % \vfill\vfill % \newpage % \large <Japanese author names> % \vfill % 連絡先 % \begin{itemize}\item[]\large <Contact address>\end{itemize} % \vfill\vfill % \newpage % \normalsize <Japanese abstract> % \normalsize <English abstract> \def\maketitle{\@maketitle} % default title header \def\title{\@dblarg{\@xtitle}} \def\@xtitle[#1]#2{\gdef\@title{#2}} \def\@title{\leavevmode\mkt@warning\title} \long\def\author#1{\long\gdef\@author{#1}} \def\@author{\mkt@warning\author} \newbox\@abstractbox \def\abstract{\global\let\@abstract\relax \global\setbox\@abstractbox\vtop\bgroup} \def\endabstract{\par\hbox{}\egroup} \def\@abstract{\mkt@warning{abstract env}} %% We need English title, author name(s) and abstract. (H.N.) %% English author names are simply ignored. \def\etitle#1{\gdef\@etitle{#1}} \def\@etitle{\leavevmode\mkt@warning\etitle} \long\def\eauthor#1{} \newbox\@eabstractbox \def\eabstract{\global\let\@eabstract\relax \global\setbox\@eabstractbox\vtop\bgroup} \let\endeabstract\endabstract \def\@eabstract{\mkt@warning{eabstract env}} \ifDS@english \let\abstract\eabstract \let\@eabstract\@abstract \fi % Contact address is required in draft. \def\contact{\long\def\mkt@contact} \def\mkt@contact{\leavevmode\mkt@warning\contact} \def\mkt@warning#1{\ipsj@warning{Missing \string#1}} % 2.00(1) \def\@maketitle{\newpage\thispagestyle{empty} \leftline{\LARGE \ifDS@english \ifDS@technote Technical Note\else Regular Paper\fi \else \ifDS@technote テクニカルノート\else 論文\fi\fi} \vfill \begin{center}\LARGE\bf\@title\end{center} \ifDS@english\else \vfill \begin{center}\LARGE\bf\@etitle\end{center}\fi \@thanks \vfill\vfill \newpage\thispagestyle{empty} \begingroup\large\vspace*{\fill}\rightskip0pt plus1fil \parindent\z@\parskip.5\baselineskip\hangindent2em\hangafter\@ne \def\par{{\@@par}} \mkt@makeauthor \par\vfill \noindent \ifDS@english Contact To:\else 連絡先\fi \endgroup \begin{itemize}\large\item[]\mkt@contact\end{itemize} \vfill\vfill\newpage \setcounter{page}{1}\def\thepage{\roman{page}} \ifDS@english\else \@abstract \centerline{\bf 概要} \vskip-\prevdepth\vskip\baselineskip\vskip-\ht\@abstractbox \unvbox\@abstractbox\prevdepth\z@ \fi \centerline{\bf Abstract} \vskip-\prevdepth \vskip\baselineskip\vskip-\ht\@eabstractbox \@eabstract \unvbox\@eabstractbox \newpage \def\thepage{\arabic{page}}\setcounter{page}{1}} \def\mkt@makeauthor{\let\member\mkt@member \let\nomember\mkt@nomember \let\stmember\mkt@stmember \expandafter\mkt@imakeauthor\@author\and\@nil\and} \def\mkt@imakeauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil\let\next\relax \else #1\par\let\next\mkt@imakeauthor\fi\next} % Macros to specify author's affiliation easily. \ifDS@english \def\paffilabel#1#2{\affilabel{#1}{Presently with #2}} \else \def\paffilabel#1#2{\affilabel{#1}{現在 #2}} \fi % Ignore English affiliation even if given. \def\affilabel#1#2{\@ifundefined{affi@r@#1}% {\expandafter\xdef\csname affi@r@#1\endcsname {\affi@cuteng#2\\\@nil}} {\ipsj@warning{Affiliation label `#1' multiply defined}}} % 2.00(1) \def\affiref#1{\@ifundefined{affi@r@#1}% {\ipsj@warning{% % 2.00(1) Affiliation reference `#1' undefined}\hbox{(???)}} {\setbox\@tempboxa\hbox{(\csname affi@r@#1\endcsname)}% \@tempdima\wd\@tempboxa \advance\@tempdima2em\relax \ifdim\@tempdima>\hsize \newline\unhbox\@tempboxa \else\ \box\@tempboxa\fi}} \def\affi@cuteng#1\\#2\@nil{#1} % Membership of aurthor is required in draft. \ifDS@english \def\mkt@member#1{\ \hbox{[Regular Member\##1]}} \def\mkt@nomember{\ \hbox{[Non Member]}} \def\mkt@stmember#1{\ \hbox{[Student Member\##1]}} \else \def\mkt@member#1{\ \hbox{[正会員\##1]}} \def\mkt@nomember{\ \hbox{[非会員]}} \def\mkt@stmember#1{\ \hbox{[学生会員\##1]}} \fi %%%%%% Page Header and Footer %%%%%% \mark{{}{}} % The following counters are not used, but may appear. \let\c@volpage\c@page % 2.00(5) \def\thevolpage{\thepage} % 2.00(5) \newcounter{volpageoffset} % You must set this to appropriate value \newcounter{volume}\expandafter\let\csname c@巻数\endcsname\c@volume \newcounter{number}\expandafter\let\csname c@号数\endcsname\c@number \newcounter{year}\expandafter\let\csname c@年数\endcsname\c@year \def\ps@plain{\let\@mkboth\@gobbletwo \def\@oddhead{\@checklines}\let\@evenhead\@oddhead \def\@oddfoot{\rm \hfil\thepage\hfil}\let\@evenfoot\@oddfoot} % \checklines enables to draw a horizontal rule onto each baselines. \newif\if@checklines \@checklinesfalse \def\checklines{\@checklinestrue} \def\@checklines{\if@checklines \rlap{\smash{\vtop{ \hbox{} \vskip\headsep \hrule width\textwidth\vskip-.4pt \vskip\topskip \hrule\vskip-.4pt \@tempcnta31\relax\@@checklines}}}\hfil\fi} \def\@@checklines{\ifnum\@tempcnta>\z@ \vskip\normalbaselineskip \hrule\vskip-.4pt \advance\@tempcnta\m@ne \let\next\@@checklines\else\let\next\relax\fi\next} \pagestyle{plain} \pagenumbering{arabic} \ifDS@english\else \def\today{\the\year 年 \the\month 月 \the\day 日} \fi %%%%%% Output Routine %%%%%% % Nothing at all. %%%%%% Biography %%%%%% % Almost nothing. \def\受付#1#2#3{}\let\received\受付 \def\採録#1#2#3{}\let\accepted\採録 \def\biography{\let\member\@gobble \let\nomember\@gobble \let\stmember\@gobble \let\adjust\@gobble \setbox0\vbox\bgroup \tolerance\@M \hbadness\@M \hfuzz\maxdimen} \def\endbiography{\egroup\setbox0\hbox{}} %%%%%% Miscellaneous %%%%%% \raggedbottom \input{ipsjcommon.sty} % Redefine \acknowledgment to put it separately. \newbox\ack@box \let\@acknowledgment\acknowledgment \def\acknowledgment{\global\setbox\ack@box\vtop\bgroup\@acknowledgment} \def\endacknowledgment{\par\egroup} \let\id@enddocument\enddocument \def\enddocument{\clearpage \unvbox\ack@box \id@enddocument} \endinput \ No newline at end of file diff -r 000000000000 -r 58c6244a184d Paper/ipsjpapers.cls --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/ipsjpapers.cls Thu Nov 15 19:20:01 2012 +0900 @@ -0,0 +1,1 @@ +% Copyright (C) 1995,1996,1997,1998,1999,2000,2001 % by Hiroshi Nakashima, Yasuki Saito and % The Editorial Board of the IPSJ Journal % % ipsjpapers.cls 15-May-01 by Hiroshi Nakashima (ver 2.08) % (revision history deleted) % ipsjpapers.cls 1-Apr-96 by Hiroshi Nakashima (ver 2.00) \ifx\pfmtname\undefined \NeedsTeXFormat{LaTeX2e} \else \NeedsTeXFormat{pLaTeX2e} \fi \ProvidesClass{ipsjpapers}[2001/05/01 ver 2.08] \input{ipsjpapers.sty} \endinput \ No newline at end of file diff -r 000000000000 -r 58c6244a184d Paper/ipsjpapers.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/ipsjpapers.sty Thu Nov 15 19:20:01 2012 +0900 @@ -0,0 +1,1 @@ +% Copyright (C) 1995,1996,1997,1998,1999,2000,2001 % by Hiroshi Nakashima, Yasuki Saito and % The Editorial Board of the IPSJ Journal % % ipsjpapers.sty 15-May-01 by Hiroshi Nakashima (ver 2.08) % (revision history deleted) % ipsjpapers.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0) % ipsjpapers.sty 30-Nov-93 by Hiroshi Nakashima % ipsjpapers.sty 3-Feb-93 by Yaski Saito % compsoft.sty 22-April-92 by Yaski Saito % compsoft.sty 18-July-90 by Hideki Isozaki % j-article.sty 10-Feb-89 from report.sty 16-Mar-88 %%%%%% LaTeX Version %%%%%% % 2.00(1) >> %% \ifASCII is true if ASCII version Japanese TeX, which doesn't have %% \jintercharskip (H.N.) \newif\ifASCII \ASCIIfalse \ifx\jintercharskip\undefined\ASCIItrue\fi \newif\if@LaTeX@e \@LaTeX@efalse % 1.06(1) \newif\if@LaTeX@eN \@LaTeX@eNfalse % 2.00(1) \def\@tempa{LaTeX2e} % 1.06(1) \ifx\fmtname\@tempa \@LaTeX@etrue % 1.06(1) \ifx\xpt\undefined \@LaTeX@eNtrue \fi\fi % 2.00(1) % 2.00(1) << %%%%%% Document Styles %%%%%% % 2.00(2) >> \newif\ifDS@printer \DS@printerfalse \newif\ifDS@english \DS@englishfalse \newif\ifDS@technote \DS@technotefalse \newif\ifDS@preface \DS@prefacefalse \newif\ifDS@draft \DS@draftfalse \newif\ifDS@techrep \DS@techrepfalse % 1.05(2) \newif\ifDS@sigrecommended \DS@sigrecommendedfalse % 2.04(1) \newif\ifDS@invited \DS@invitedfalse % 2.06(1) \newif\ifDS@abstract \DS@abstractfalse % 2.07(7) \newif\ifDS@private \DS@privatefalse % 2.07(8) \if@LaTeX@eN \DeclareOption{printer}{\DS@printertrue} \DeclareOption{english}{\DS@englishtrue} \DeclareOption{technote}{\DS@technotetrue} \DeclareOption{preface}{\DS@prefacetrue} \DeclareOption{draft}{\DS@drafttrue} \DeclareOption{techrep}{\DS@techreptrue} \DeclareOption{sigrecommended}{\DS@sigrecommendedtrue} % 2.04(1) \DeclareOption{invited}{\DS@invitedtrue} % 2.06(1) \DeclareOption{abstract}{\DS@abstracttrue} % 2.07(7) \DeclareOption{private}{\DS@privatetrue} % 2.07(8) \DeclareOption{10pt}{\def\@ptsize{0}} \DeclareOption{11pt}{\def\@ptsize{1}} \DeclareOption{12pt}{\def\@ptsize{2}} \ExecuteOptions{10pt} \ProcessOptions \def\ipsj@warning{\ClassWarning{ipsjpapers}} % 2.00(3) \def\ipsj@error{\ClassError{ipsjpapers}} % 2.00(3) \newskip \old@latex@skip % 2.00(14) \let\@maxsep\old@latex@skip % 2.00(14) \let\@dblmaxsep\old@latex@skip % 2.00(14) \else \expandafter\ifx\csname ver@ipsjpapers.cls\endcsname\relax \typeout{Document Style `ipsjpapers' (ver 2.08) <15 May 2001>.} % 2.05(1) \fi \def\ds@printer{\DS@printertrue} \def\ds@english{\DS@englishtrue} \def\ds@technote{\DS@technotetrue} \def\ds@preface{\DS@prefacetrue} \def\ds@draft{\DS@drafttrue} \def\ds@techrep{\DS@techreptrue} % 1.05(2) \def\ds@sigrecommended{\DS@sigrecommendedtrue} % 2.04(1) \def\ds@invited{\DS@invitedtrue} % 2.06(1) \def\ds@abstract{\DS@abstracttrue} % 2.07(7) \def\ds@private{\DS@privatetrue} % 2.07(8) % 1.04(3)>> \def\@ptsize{0} \@namedef{ds@11pt}{\def\@ptsize{1}} \@namedef{ds@12pt}{\def\@ptsize{2}} % 1.04(3)<< \@options \let\ipsj@warning\@warning % 2.00(3) \let\@latex@warning\@warning % 2.00(3) \def\ipsj@error#1#2{\errhlp{#2}\errmessge{#1}} % 2.00(3) \fi % 2.00(2) << \ifx\@classoptionslist\undefined\else % 2.03(1) >> \def\ipsj@draft@option{draft} \def\ipsj@remove@draft@option{\def\@tempb{}% \@for\@tempa:=\@classoptionslist\do{% \ifx\@tempa\ipsj@draft@option\else \edef\@tempb{\@tempb,\@tempa}\fi}% \ifx\@tempb\@empty \def\@classoptionslist{}\else \expandafter\ipsj@remove@draft@ption\@tempb\@nil\fi} \def\ipsj@remove@draft@ption,#1\@nil{% \def\@classoptionslist{#1}} \ipsj@remove@draft@option \fi % 2.03(1) << %%%%%% Basics %%%%%% \newdimen\@Q \@Q=0.25mm \lineskip\z@ \normallineskip\z@ \lineskiplimit\z@ \normallineskiplimit\z@ \abovedisplayskip\z@ \belowdisplayskip\z@ \abovedisplayshortskip\z@ \belowdisplayshortskip\z@ \def\baselinestretch{1} \jot\z@ \ifDS@draft\def\next{\input{ipsjdrafts.sty}\endinput}\else\let\next\relax\fi \next \@twosidetrue %%%%%% Fonts %%%%%% % \finvedm(dg) dm5 \vpt \tiny fn-mark % \sixdm(dg) dm6 \vipt \scriptsize % \sevendm(dg) dm7 \vipt \footnotesize f-note, capt % 10Q = 7.11304pt -> w(min7) = 6.73550pt % \eightdm(dg) dm8 \viiipt \small abst, header % 11Q = 7.82434pt -> w(min8) = 7.69772pt % \eightdm(dg)half dm9 \ixpt \normalsize main text % 12Q = 8.53564pt -> w(min9) = 8.65994 % \tendm(dg) dm10 \xpt \large sec title % 13Q = 9.24695pt -> w(min10) = 9.62216pt % \tendm(dg)half dm10*1095 \xipt \Large author names % 15Q =10.66956pt -> w(min10*1095) = 10.53625pt % (\twlvdm) (dm12) \xiipt \LARGE e-title % \twelvedm(dg)half dm12*1095 \xivpt \huge title % min10*1440 % 18Q =12.80347pt -> w(min10*1440) = 13.8559pt % % Note that cm fonts follows LaTeX standard. (e.g. \viiipt -> cmr8, etc.) % 2.00(4)>> \if@LaTeX@e \ifASCII \def\ipsj@declare@font#1#2#3{{\fontsize{#3}{\z@}#2\selectfont % 2.00(5)>> \edef\@tempa{\the\jfont} \expandafter\global\expandafter\let\expandafter#1\@tempa}} % 2.00(5)<< \ifDS@printer % ASCII LaTeX2e printer \DeclareFontShape{JY1}{mc}{m}{n}{% <5> sfixed* [5.175] min5 % 7Q/w5 = 4.97922/4.81108=1.035 <6> sfixed* [5.916] min6 % 8Q/w6 = 5.69055/5.77328=0.986 <7> sfixed* [7.392] min7 %10Q/w7 = 7.11304/6.73550=1.056 <8> sfixed* [8.128] min8 %11Q/w8 = 7.82434/7.69772=1.016 <9> sfixed* [8.872] min8 %12Q/w8 = 8.53564/7.69772=1.109 <10> sfixed* [9.610] min10 %13Q/w10= 9.24695/9.62216=0.961 <10.95> sfixed* [11.09] min10 %15Q/w10=10.66956/9.62216=1.109 <12> sfixed* [11.83] min10 %16Q/w10=11.38110/9.62216=1.183 <14.4> sfixed* [13.31] min10 %18Q/w10=12.80347/9.62216=1.331 }{} \DeclareFontShape{JY1}{gt}{m}{n}{% <5> sfixed* [5.175] goth5 % 7Q/w5 = 4.97922/4.81108=1.035 <6> sfixed* [5.916] goth6 % 8Q/w6 = 5.69055/5.77328=0.986 <7> sfixed* [7.392] goth7 %10Q/w7 = 7.11304/6.73550=1.056 <8> sfixed* [8.128] goth8 %11Q/w8 = 7.82434/7.69772=1.016 <9> sfixed* [8.872] goth8 %12Q/w8 = 8.53564/7.69772=1.109 <10> sfixed* [9.610] goth10 %13Q/w10= 9.24695/9.62216=0.961 <10.95> sfixed* [11.09] goth10 %15Q/w10=10.66956/9.62216=1.109 <12> sfixed* [11.83] goth10 %16Q/w10=11.38110/9.62216=1.183 <14.4> sfixed* [13.31] goth10 %18Q/w10=12.80347/9.62216=1.331 }{} \ipsj@declare@font\fn@fontvii\mcfamily\@vpt %% The following fonts are out of NFSS scheme \font\fn@fontv min5 scaled739 % 5Q/w5 = 3.55658/4.81108=0.739 \font\fn@fontvi min5 scaled887 % 6Q/w5 = 4.26790/4.81108=0.887 \font\fn@fontxv goth10 scaled1035 %14Q/w10= 9.95846/9.62216=1.035 \else % ASCII LaTeX2e non-printer \ipsj@declare@font\fn@fontv\mcfamily\@vpt \ipsj@declare@font\fn@fontvi\mcfamily\@vpt \ipsj@declare@font\fn@fontvii\mcfamily\@vpt \ipsj@declare@font\fn@fontxv\gtfamily\@xipt \fi \else % NTT LaTeX2e \def\ipsj@declare@font#1#2#3{{\fontsize{#3}{\z@}#2\selectfont % 2.00(5) \xdef#1{\expandafter\noexpand\csname\jf@ntn@me\endcsname}}} % 2.00(5) \ipsj@declare@font\fn@fontv\dm\@vpt \ipsj@declare@font\fn@fontvi\dm\@vpt \ipsj@declare@font\fn@fontvii\dm\@vpt \ipsj@declare@font\fn@fontxv\dg\@xipt \fi % 2.00(4) << \else % LaTeX 2.09 % 2.00(4) %% Fonts for ASCII TeX. (H.N.) \ifASCII \ifDS@printer \font\fn@fontv min5 scaled739 % 5Q/w5 = 3.55658/4.81108=0.739 \font\fn@fontvi min5 scaled887 % 6Q/w5 = 4.26790/4.81108=0.887 \font\fivedm min5 scaled1035 % 7Q/w5 = 4.97922/4.81108=1.035 \font\fivedg goth5 scaled1035 \font\sixdm min6 scaled986 % 8Q/w6 = 5.69055/5.77328=0.986 \font\sixdg goth6 scaled986 \font\sevendm min7 scaled1056 %10Q/w7 = 7.11304/6.73550=1.056 \font\sevendg goth7 scaled1056 \font\eightdm min8 scaled1016 %11Q/w8 = 7.82434/7.69772=1.016 \font\eightdg goth8 scaled1016 \font\eightdmhalf min8 scaled1109 %12Q/w8 = 8.53564/7.69772=1.109 \font\eightdghalf goth8 scaled1109 \font\tendm min10 scaled961 %13Q/w10= 9.24695/9.62216=0.961 \font\tendg goth10 scaled961 \font\fn@fontxv goth10 scaled1035 %14Q/w10= 9.95846/9.62216=1.035 \font\tendmhalf min10 scaled1109 %15Q/w10=10.66956/9.62216=1.109 \font\tendghalf goth10 scaled1109 \font\twelvedm min10 scaled1183 %16Q/w10=11.38110/9.62216=1.183 \font\twelvedg goth10 scaled1183 \font\twelvedmhalf min10 scaled1331 %18Q/w10=12.80347/9.62216=1.331 \font\twelvedghalf goth10 scaled1331 \let\fn@fontvii\fivedm \else \font\fivedm min5 \font\fivedg goth5 \font\sixdm min6 \font\sixdg goth6 \font\sevendm min7 \font\sevendg goth7 \font\eightdm min8 \font\eightdg goth8 \font\eightdmhalf min9 \font\eightdghalf goth9 \font\tendm min10 \font\tendg goth10 \font\tendmhalf min10 scaled\magstephalf \font\tendghalf goth10 scaled\magstephalf \font\twelvedm min10 scaled\magstep1 \font\twelvedg goth10 scaled\magstep1 \font\twelvedmhalf min10 scaled\magstep2 \font\twelvedghalf goth10 scaled\magstep2 \let\fn@fontv\fivedm \let\fn@fontvi\fivedm \let\fn@fontvii\fivedm \let\fn@fontxv\tendghalf \fi %% ASCII doesn't have \old@Npt. (H.N.) \let\old@@vpt\vpt \let\old@@vipt\vipt \let\old@@viipt\viipt \let\old@@viiipt\viiipt \let\old@@ixpt\ixpt \let\old@@xpt\xpt \let\old@@xipt\xipt \let\old@@xiipt\xiipt \let\old@@xivpt\xivpt \def\old@vpt{\old@@vpt\jspaceskip1zw\relax} \def\old@vipt{\old@@vipt\jspaceskip1zw\relax} \def\old@viipt{\old@@viipt\jspaceskip1zw\relax} \def\old@viiipt{\old@@viiipt\jspaceskip1zw\relax} \def\old@ixpt{\old@@ixpt\jspaceskip1zw\relax} \def\old@xpt{\old@@xpt\jspaceskip1zw\relax} \def\old@xipt{\old@@xipt\jspaceskip1zw\relax} \def\old@xiipt{\old@@xiipt\jspaceskip1zw\relax} \def\old@xivpt{\old@@xivpt\jspaceskip1zw\relax} % 2.00(6) % 1.06(2) %% ASCII doesn't have \dg nor \dm. (H.N.) \def\dg{\protect\pdg} \def\dm{\protect\pdm} %% Redefine \gt and \mc \def\gt{\protect\pdg} \def\mc{\protect\pdm} \let\pdm\relax \else %% Fonts for NTT jTeX %% \magstephalf and \magstep1 may cause trouble in older versions. \jfont\fivedm=dm5 \jfont\fivedg=dg5 \jfont\sixdm=dm6 \jfont\sixdg=dg6 \jfont\sevendm=dm7 \jfont\sevendg=dg7 \jfont\eightdm=dm8 \jfont\eightdg=dg8 \jfont\eightdmhalf=dm9 \jfont\eightdghalf=dg9 \jfont\tendm=dm10 \jfont\tendg=dg10 \jfont\tendmhalf=dm10 scaled 1095 \jfont\tendghalf=dg10 scaled 1095 \jfont\twelvedm=dm12 \jfont\twelvedg=dg12 \jfont\twelvedmhalf=dm12 scaled 1095 \jfont\twelvedghalf=dg12 scaled 1095 \let\fn@fontv\fivedm \let\fn@fontvi\fivedm \let\fn@fontvii\fivedm \let\fn@fontxv\tendghalf % 1.06(3) \fi \fi \ifx\jfsize\undefined \newcount\jfsize \fi % 1.06(2) \ifASCII % 1.06(3),2.00(6)>> \let\setjglues\relax \let\jintercharskip\kanjiskip \let\jasciikanjiskip\xkanjiskip \let\jmathkanjiskip\xkanjiskip \newdimen\jspaceskip \def\defjintercharskip#1#2#3#4{\@asciiwarning{\defjintercharskip}} \def\defjasciikanjiskip#1#2#3#4{\@asciiwarning{\defjasciicharskip}} \def\defmathkanjiskip#1#2#3#4{\@asciiwarning{\defmathcharskip}} \def\defjspaceskip#1#2#3#4{\@asciiwarning{\defjspaceskip}} \def\@asciiwarning#1{\ipsj@warning{\string#1\space % 2.00(3) is not supported in ASCII version}} % 1.06(3),2.00(6)<< \else % 2.00(7)>> \if@LaTeX@e \ipsj@declare@font\fn@eightdmhalf\dm\@ixpt \ipsj@declare@font\fn@eightdghalf\dg\@ixpt \else \def\fn@eightdmhalf{\eightdmhalf} \def\fn@eightdghalf{\eightdghalf} \fi \ifx\setjglues\undefined\else \expandafter\defjintercharskip\fn@eightdmhalf{0pt}{1.4pt}{0.5pt} \expandafter\defjintercharskip\fn@eightdghalf{0pt}{1.4pt}{0.5pt} \expandafter\defjasciikanjiskip\fn@eightdmhalf{2pt}{1pt}{1pt} \expandafter\defjasciikanjiskip\fn@eightdghalf{2pt}{1pt}{1pt} \expandafter\defjmathkanjiskip\fn@eightdmhalf{2pt}{1pt}{1pt} \expandafter\defjmathkanjiskip\fn@eightdghalf{2pt}{1pt}{1pt} \fi % 2.00(7)<< \fi % 2.00(4) \if@LaTeX@e % 2.00(8)>> \if@LaTeX@eN \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} \DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}} \DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}} \ifASCII \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} \fi\fi \ifASCII \def\dm{\mc} \def\dg{\gt} \fi\fi % 2.00(8)<< %%%%%% Basic Font Size Macros %%%%%% \if@LaTeX@e % 1.06(4),2.00(9),2.04(3)>> \def\@setsize#1#2#3#4{\@setfontsize#1{#4}{#2}\ipsj@setjspaceskip} \ifASCII \def\ipsj@setjspaceskip{\jspaceskip1zw\relax} \else \let\ipsj@setjspaceskip\relax \fi % 1.06(4),2.00(9),2.04(3)<< %% \vipt etc. are redefined to use appropriate Japanese fonts. \else % 2.00(9) \def\vpt{\old@vpt\fivedm\let\pdg\fivedg\let\pdm\fivedm\jfsize=5\relax} \def\vipt{\old@vipt\sixdm\let\pdg\sixdg\let\pdm\sixdm\jfsize=6\relax} \def\viipt{\old@viipt\sevendm\let\pdg\sevendg\let\pdm\sevendm\jfsize=7\relax} \def\viiipt{\old@viiipt\eightdm\let\pdg\eightdg\let\pdm\eightdm\jfsize=8\relax} \def\ixpt{\old@ixpt\eightdmhalf\let\pdg\eightdghalf\let\pdm\eightdmhalf \jfsize=9\relax \@ixptboldmath} % 1.02(2) \def\xpt{\old@xpt\tendm\let\pdg\tendg\let\pdm\tendm\jfsize=10\relax} \def\xipt{\old@xipt\tendmhalf\let\pdg\tendghalf\let\pdm\tendmhalf\jfsize=11 \relax} \def\xiipt{\old@xiipt\twelvedm\let\pdg\twelvedg\let\pdm\twelvedm \jfsize=12\relax} \def\xivpt{\old@xivpt\twelvedmhalf\let\pdg\twelvedghalf\let\pdm\twelvedmhalf \jfsize=14\relax} \fi % 2.00(9) \if@LaTeX@e % 1.06(5) \let\@ixptboldmath\relax % 1.06(5) \else % 1.06(5) % 1.02(2) >> \ifDS@printer \def\@ixptboldmath{% \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath \textfont\@ne\ninmi \textfont\tw@\ninsy \textfont\lyfam\ninly \@boldfalse}\@boldfalse \def\boldmath{\@ifundefined{ninmib}{% \global\font\ninmib\@mbi\@ptscale9\relax \global\font\ninsyb\@mbsy\@ptscale9\relax \global\font\ninlyb\@lasyb\@ptscale9\relax \@addfontinfo\@ixpt {\def\boldmath{\everymath{\mit}\everydisplay{\mit}% \@prtct\@nomathbold \textfont\@ne\ninmib \textfont\tw@\ninsyb \textfont\lyfam\ninlyb \@prtct\@boldtrue}}}{}% \@ixpt\boldmath}} \else \def\@ixptboldmath{% \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath \textfont\@ne\ninmi \textfont\tw@\ninsy \textfont\lyfam\ninly \@boldfalse}\@boldfalse % 1.03(1) >> \def\boldmath{\@ifundefined{ninmib}{\global\font\ninmib\@mbi \global\font\ninsyb\@mbsy\relax \global\font\ninlyb\@lasyb\relax \@addfontinfo\@ixpt {\def\boldmath{\everymath{\mit}\everydisplay{\mit}% \@prtct\@nomathbold \textfont\@ne\ninmib \textfont\tw@\ninsyb \textfont\lyfam\ninlyb \@prtct\@boldtrue}}}{}% \@ixpt\boldmath}} % 1.03(1) << \fi % 1.02(2) << \fi % 1.06(5) %%%%%% Font Size Macros %%%%%% \def\fs@setsize#1#2#3#4{\normalsize\dimen@\normalbaselineskip \@ifstar{\@setsize{#1}{\dimen@}{#3}{#4}}% {\@setsize{#1}{#2}{#3}{#4}}} % s = (3*b - (h' + d') - (h + d))/2 % s_a = s + h' + d - b % s_b = s + h + d' - b \def\sec@setskips#1{\setbox0\hbox{\fs@sec\bf#1}\setbox1\hbox{#1} \@tempdima3\baselineskip \advance\@tempdima-\ht0 \advance\@tempdima-\dp0 \advance\@tempdima-\ht1 \advance\@tempdima-\dp1 \divide\@tempdima\tw@ \advance\@tempdima-\baselineskip \@tempdimb\@tempdima \advance\@tempdima\ht0 \advance\@tempdima\dp1 \advance\@tempdimb\ht1 \advance\@tempdimb\dp0 \edef\sec@aboveskip{\the\@tempdima} \edef\sec@belowskip{\the\@tempdimb}} \ifDS@english % size pt \baselineskip size \?pt \baselineskip % \normalsize 10 16Q \large 11 18Q (*) % \small 9 15Q \Large 12 22Q % \footnotesize 8 13Q \LARGE 14 26Q (*) % \scriptsize 6 8pt (*) \huge 18 30Q (*) % \tiny 5 6pt (*) \Huge 18 30Q (*) % * : not measured \def\@normalsize{\@setsize\normalsize{16\@Q}\xpt\@xpt} \def\small{\fs@setsize\small{15\@Q}\ixpt\@ixpt} \def\footnotesize{\fs@setsize\footnotesize{13\@Q}\viiipt\@viiipt} \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} \def\large{\@setsize\Large{18\@Q}\xipt\@xipt} \def\Large{\@setsize\LARGE{22\@Q}\xiipt\@xiipt} \def\LARGE{\@setsize\LARGE{26\@Q}\xivpt\@xivpt} \def\huge{\@setsize\Huge{30\@Q}\xviipt\@xviipt} \let\Huge\huge \ifDS@techrep % 1.05(2)>> \def\@normalsize{\@setsize\normalsize{17\@Q}\xpt\@xpt} \fi % 1.05(2)<< \if@LaTeX@e % 2.00(10)>> \let\normalsize\@normalsize \fi % 2.00(10)<< \let\fs@footnote\footnotesize \let\fs@caption\footnotesize \let\fs@table\footnotesize \let\fs@eabst\footnotesize \let\fs@header\footnotesize \let\fs@footer\footnotesize \let\fs@bibliography\small \let\fs@subsec\normalsize \let\fs@sec\normalsize \let\fs@type\large \let\fs@eauthor\large \let\fs@title\Large \@normalsize \sec@setskips{A} \else % size pt \baselineskip size \?pt \baselineskip % \normalsize 9 19Q \large 10 19Q % \small 8 14Q \Large 11 22Q % \footnotesize 7 14Q \LARGE 12 18Q % \scriptsize 6 8pt (*) \huge 14 26Q % \tiny 5 6pt (*) \Huge 14 26Q % * : not measured \def\@normalsize{\@setsize\normalsize{19\@Q}\ixpt\@ixpt} \def\small{\fs@setsize\small{14\@Q}\viiipt\@viiipt} \def\footnotesize{\fs@setsize\footnotesize{14\@Q}\viipt\@viipt} \def\scriptsize{\@setsize\scriptsize{8pt}\vipt\@vipt} \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} \def\large{\@setsize\large{19\@Q}\xpt\@xpt} \def\Large{\@setsize\Large{22\@Q}\xipt\@xipt} \def\LARGE{\@setsize\LARGE{18\@Q}\xiipt\@xiipt} \def\huge{\@setsize\Huge{26\@Q}\xivpt\@xivpt} \let\Huge\huge \ifDS@techrep % 1.05(2)>> \def\@normalsize{\@setsize\normalsize{17\@Q}\ixpt\@ixpt} \fi % 1.05(2)<< \if@LaTeX@e % 2.00(10)>> \let\normalsize\@normalsize \fi % 2.00(10)<< \let\fs@footnote\footnotesize \let\fs@caption\footnotesize \let\fs@table\footnotesize \let\fs@abst\small \def\fs@eabst{\small\baselineskip13\@Q} \let\fs@header\small \let\fs@footer\small \let\fs@subsec\normalsize \def\fs@bibliography{\normalsize\baselineskip16\@Q} \let\fs@sec\large \let\fs@type\fn@fontxv \let\fs@author\Large \def\fs@eauthor{\Large\baselineskip15\@Q} \let\fs@etitle\LARGE \let\fs@title\huge \@normalsize % 2.00(7) \ifx\setjglues\undefined\else \setjglues \fi \sec@setskips{あ} \fi \if@LaTeX@e\else % 2.00(11) \let\latex@bf\bf % 1.06(6) \def\bf{\latex@bf \dg} % 1.06(6) \fi % 2.00(11) %%%%%% Page Layout Parameters %%%%%% \newdimen\@mojihaba \headheight 12\@Q % We want to allow a line containing $\displaystyle X^X$ to be a first line. \setbox0\hbox{$\displaystyle X^X$} \topskip\ht0 \ifdim\maxdepth<\dp\strutbox \maxdepth\dp\strutbox \@maxdepth\maxdepth\fi \@tempswafalse % 1.05(2)>> \ifDS@english \ifDS@techrep \else \@tempswatrue \fi\fi \if@tempswa % 1.05(2)<< \topmargin 138\@Q \advance\topmargin-1in % \textheight = 53\baselineskip + \topskip + epsilon(100sp) \textheight53\baselineskip \advance\textheight\topskip \advance\textheight100sp % \headsep = 24Q - \topskip \headsep28\@Q \advance\headsep-\topskip % 2.02(2) % Only first page has page number (footer) at the bottom \footskip 27\@Q \@mojihaba13\@Q \else \topmargin 131\@Q \advance\topmargin-1in % \textheight = 45\baselineskip + \topskip + epsilon(100sp) \textheight45\baselineskip \advance\textheight\topskip \advance\textheight100sp \ifDS@techrep % 1.05(2)>> \textheight50\baselineskip \advance\textheight\topskip \advance\textheight100sp \fi % 1.05(2)<< % \headsep = 28Q - \topskip \headsep28\@Q \advance\headsep-\topskip % Only first page has page number (footer) at the bottom \footskip24\@Q \@mojihaba12\@Q \fi \columnsep30\@Q % \textwidth - \columnwidth = 24 * 12Q * 2 + \columnsep = 606Q \textwidth606\@Q \columnseprule0pt \oddsidemargin210mm \advance\oddsidemargin-\textwidth \divide\oddsidemargin\tw@ \advance\oddsidemargin-1in \evensidemargin\oddsidemargin \skip\footins\baselineskip \advance\skip\footins-.5\@mojihaba % \footnotesep = \baselineskip - depth(\strutbox) {\fs@footnote \footnotesep\baselineskip \global\advance\footnotesep-\dp\strutbox} \def\footnoterule{{\fs@footnote\kern-\dp\strutbox \hrule \kern-.4\p@ \kern\dp\strutbox}} \floatsep \baselineskip \textfloatsep \baselineskip \intextsep \baselineskip \@maxsep \baselineskip \dblfloatsep \baselineskip \dbltextfloatsep \baselineskip \@dblmaxsep \baselineskip \@fptop 0pt plus 1fil \@fpsep 0pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 0pt plus 2fil \@dblfpbot 0pt plus 1fil \parskip\z@ \parindent\@mojihaba \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty %%%%%% Title and Authors %%%%%% % % Format of title, author names and abstract. % % \huge\bf <Japanese title> % \vskip 32Q % \Large <Japanese author names> % \vskip 32Q % \small <Japanese abstract> % \vskip 34Q % \LARGE\bf <English title> % \vskip 28Q % \Large\sc <English author names> % \vskip 28Q % \small <English abstract> % \vskip 25Q % 2.07(3)>> \def\ipsj@ohcheck#1#2#3{\fs@header\hskip12\@Q#1\qquad#2\qquad#3\hskip12\@Q} \def\ipsj@ohcvolno{Vol.~00\hskip12\@Q No.~SIG\ 00(\ipsj@sig@code\ 00)} \def\maketitle{\let\ipsj@oddhead@t\ipsj@oddhead@a \ifipsj@trans \settowidth\@tempdima{% \ipsj@ohcheck\ipsj@ohcvolno\@titlestring\ipsj@ohcvolno}% \ifdim\@tempdima>\textwidth \let\ipsj@oddhead@t\ipsj@oddhead@b \settowidth\@tempdima{% \ipsj@ohcheck\ipsj@ohcvolno\@titlestring{000}}% \ifdim\@tempdima>\textwidth \ipsj@warning{% % 2.00(3) \string\title\space for headding is too wide}% \fi \fi \else \settowidth\@tempdima{\fs@header \hskip12\@Q Vol.~00\hskip12\@Q No.~00\qquad\@titlestring\qquad Vol.~00\hskip12\@Q No.~00\hskip12\@Q} \ifdim\@tempdima>\textwidth \ipsj@warning{% % 2.00(3) \string\title\space for headding is too wide}% \fi \fi \par\twocolumn[\@maketitle]\thispagestyle{myheadings}\@thanks} % 2.07(3)<< % default title header \def\title{\@dblarg{\@xtitle}} \def\@xtitle[#1]#2{\gdef\@title{#2}% {\def\protect{\noexpand\protect\noexpand}% \ifDS@english\def\\{\unskip\ \ignorespaces}% \else\def\\{\unskip\ignorespaces}\fi \xdef\@titlestring{#1}}} % 2.07(3) \def\@title{\mkt@warning\title}\def\@titlestring{} \long\def\author#1{\long\gdef\@author{#1}} \def\@author{\mkt@warning\author} \newbox\@abstractbox %% Introduce \@titlewidth because we now use this dimen repeatedly. (H.N.) %% \@titlewidth = 44 * 11Q = 484Q \newdimen\@titlewidth \@titlewidth 484\@Q \def\abstract{\global\let\@abstract\relax \global\setbox\@abstractbox\hbox\bgroup \begin{minipage}[b]{\@titlewidth}\fs@abst\parindent11\@Q} \def\endabstract{\end{minipage}\egroup} \def\@abstract{\mkt@warning{abstract env}} %% We need English title, author name(s) and abstract. (H.N.) \def\etitle#1{\gdef\@etitle{#1}} \def\@etitle{\mkt@warning\etitle} \long\def\eauthor#1{\long\gdef\@eauthor{#1}} \def\@eauthor{\mkt@warning\eauthor} \newbox\@eabstractbox \def\eabstract{\global\let\@eabstract\relax \global\setbox\@eabstractbox\hbox\bgroup \begin{minipage}[b]{\@titlewidth}\fs@eabst\parindent11\@Q} \let\endeabstract\endabstract \def\@eabstract{\mkt@warning{eabstract env}} \ifDS@english \let\author\eauthor \let\abstract\eabstract \let\@eauthor\@author \let\@eabstract\@abstract \fi \def\mkt@warning#1{\ipsj@warning{Missing \string#1}} % 2.00(3) \newdimen\mkt@prevdepth \newbox\mkt@titlebox \def\@maketitle{\setbox\mkt@titlebox\vbox{ \ifDS@english \ifDS@preface \hbox{}\vskip60\@Q \vskip-\headsep \vskip-\baselineskip \else \hbox{}\vskip26\@Q \vskip-\headsep \vskip-\baselineskip \leftline{\fs@type\it \ifDS@technote Technical Note \else\ifDS@invited Invited Paper % 2.06(1) \else\ifDS@sigrecommended % 2.04(1) Recommended Paper % 2.04(1) \else\ifDS@abstract % 2.07(7) Abstract % 2.07(7) \else\ifDS@techrep\else % 2.02(1) Regular Paper\fi\fi\fi\fi\fi} % 2.06(1) % % 2.04(1) \vskip32\@Q \vskip-\baselineskip \fi \else % 2.04(1) >> \@tempswafalse \ifDS@technote\@tempswatrue\fi \ifDS@sigrecommended\@tempswatrue\fi \ifDS@invited\@tempswatrue\fi % 2.06(1) \ifDS@abstract\@tempswatrue\fi % 2.07(7) \if@tempswa \vskip18\@Q \vskip-\headsep \leftline{\vbox to28\@Q{\hrule height.8pt\vss \hbox{\hskip7\@Q \fs@type \ifDS@technote テクニカルノート% \else\ifDS@invited 招待論文% % 2.06(1) \else\ifDS@sigrecommended 研究会推薦論文 % 2.06(1) \else 発表概要\fi\fi\fi % 2.07(7) \hskip7\@Q}\vss\hrule height.8pt}} % % 2.04(1) << \vskip40\@Q \vskip-\baselineskip \else \hbox{}\vskip60\@Q \vskip-\headsep \vskip-\baselineskip \fi\fi \@tempswafalse \ifDS@english\else\ifDS@preface\@tempswatrue\fi\fi \mkt@maketitle{\fs@title\bf}\@title\title % 1.04(1a) >> \ifnum\c@affi@footnote>\thr@@ \let\theaffi@footnote\theaffi@footnotemany \fi \c@affi@footnote\z@ % 1.04(1a) << \affi@labels \ifDS@english\else \vskip-\mkt@prevdepth \nointerlineskip\vskip32\@Q \centerline{\vbox{\centering\hsize\@titlewidth\fs@author \mkt@makeauthor}} \ifDS@preface\else \vskip-\prevdepth \nointerlineskip\vskip32\@Q \centerline{\@abstract\box\@abstractbox} \vskip-\prevdepth \nointerlineskip\vskip34\@Q \mkt@maketitle{\fs@etitle\bf}\@etitle\etitle \fi\fi \if@tempswa\else \vskip-\mkt@prevdepth \nointerlineskip\vskip28\@Q \centerline{\vbox{\centering\hsize\@titlewidth\fs@eauthor\sc \mkt@makeeauthor}} \fi \ifDS@preface\else \vskip-\prevdepth \nointerlineskip\vskip28\@Q \centerline{\@eabstract\box\@eabstractbox} \fi \vskip-\prevdepth \nointerlineskip\vskip25\@Q} \@tempdimb\ht\mkt@titlebox \advance\@tempdimb\dp\mkt@titlebox \@tempcnta\@tempdimb \@tempcntb\baselineskip \divide\@tempcnta\@tempcntb \@tempdima\@tempcnta\baselineskip \advance\@tempdima-\@tempdimb \box\mkt@titlebox \ifdim\@tempdima=\z@\else\advance\@tempdima\baselineskip \vskip\@tempdima\fi} %% \mkt@maketitle puts Japanese/English title, whose lines should be %% properly broken with \\ by the user. The result is flushed to left, then %% centered with respect to the longest line. (H.N.) \def\mkt@maketitle#1#2#3{\setbox\@tempboxa\vtop{ \def\\{\unskip\egroup\hbox\bgroup\ignorespaces} #1\hbox\bgroup#2\unskip\egroup \global\mkt@prevdepth\prevdepth} \@tempdima\textwidth\advance\@tempdima-4\@mojihaba \ifdim\wd\@tempboxa>\@tempdima \ipsj@warning{% % 2.00(3) \string#3 is too wide. Break line(s) by \string\\}\fi \centerline{\box\@tempboxa}} % Assignment of Japanese author names to lines: % 1 -> 1, 2 -> 2, 3 -> 3, 4 -> 2+2, 5 -> 3+2, 6 -> 3+3, 7 -> 3+2+2, 8 -> 3+3+2, % ... % Rule for N authors (N > 2, q := N div 3) % N mod 3 = 0 -> 3 * q % N mod 3 = 1 -> 3 * (q - 2) + 2 + 2 % N mod 3 = 2 -> 3 * (q - 1) + 2 \newcount\mkt@cnta\newcount\mkt@cntb \newcount\mkt@sname\newcount\mkt@gname \newbox\mkt@boxa \newdimen\mkt@namewidth \def\mkt@makeauthor{\let\member\@gobble \let\nomember\relax \let\stmember\@gobble % Those are not necessary in final manuscript. \def\@makefnmark{\smash{\rlap{\fn@fontvii$^{\affi@thefnmark}$}}}% \gdef\affi@thefnmark{}\leavevmode\let\+\ignorespaces \settowidth\@tempdima{あ}\mkt@namewidth7\@tempdima\@tempcnta\z@ \expandafter\mkt@countauthor\@author\and\@nil\and \ifnum\@tempcnta=\@ne\let\mkt@anhbox\mkt@anhboxc\mkt@makesingleauthor \else \@tempcntb\@tempcnta \divide\@tempcntb\thr@@ \multiply\@tempcntb\thr@@ \advance\@tempcntb-\@tempcnta \ifnum\@tempcntb=\m@ne\relax\@tempcntb\tw@\else\@tempcntb\z@\fi \mkt@cnta\thr@@ \let\mkt@anhbox\mkt@anhboxl \expandafter\mkt@makemultiauthor\@author\and\and\fi} \def\mkt@countauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil\let\next\relax \else\advance\@tempcnta\@ne \let\next\mkt@countauthor\fi\next} % If single author, author name has 9 KC width instead of 7. \def\mkt@makesingleauthor{\divide\mkt@namewidth7\multiply\mkt@namewidth9\relax \expandafter\mkt@putauthor\@author\+ \@nil} \def\mkt@makemultiauthor#1\and{\ifnum\@tempcnta=\z@\unskip\let\next\relax\else \leavevmode \advance\mkt@cnta\m@ne \advance\@tempcnta\m@ne \ifnum\mkt@cnta=\z@\mkt@maleft{#1}\mkt@cnta\thr@@\else \ifnum\@tempcnta=\@tempcntb\mkt@maleft{#1}\mkt@cnta\tw@\else \mkt@putauthor#1\+ \@nil\let\mkt@anhbox\mkt@anhboxc\fi\fi \let\next\mkt@makemultiauthor\fi\next} \def\mkt@maleft#1{\let\mkt@anhbox\mkt@anhboxr\mkt@putauthor#1\+ \@nil \par\let\mkt@anhbox\mkt@anhboxl} % Japanese author name format: % Non Japanese : As is. % Japanese w/o s/g delimitor : As is with warning. % Japanese (s+g>6) : As is. % Japanese (s+g<7) : Give 1-KC space to s/g delimitor, then insert % infinit stretch between each character pair, assuming the % s/g delimitor as a charcter, to make the name have 7-KC % width. An exception is 2s + 2g case, in which s/g % delimitor has 0 width in order to have the result % "S_S_G_G". \def\mkt@putauthor#1 #2\@nil{% \setbox\@tempboxa\hbox{\let\affiref\@gobble \let\mkt@warning\@gobble \jintercharskip\z@#1#2}% \setbox\mkt@boxa\hbox{\let\affiref\@gobble \let\mkt@warning\@gobble \jintercharskip1cm#1#2}% \ifdim\wd\@tempboxa=\wd\mkt@boxa \mkt@anhbox{#1 #2}\else % probably no Kanjis \def\@tempa{#2}\ifx\@tempa\empty % without space btwn s/g-name {\let\affiref\@gobble \def\+{}% \ipsj@warning{Author name #1 doesn't have a space}}% % 2.00(3) \mkt@anhbox{#1}\else \mkt@getnamewidth\mkt@sname{#1}\mkt@getnamewidth\mkt@gname{#2}% \mkt@cntb\mkt@sname \advance\mkt@cntb\mkt@gname \ifnum\mkt@cntb>6\relax\mkt@anhbox{#1\ #2}\else \jintercharskip\fill% \@tempskipa\@tempdima plus2fill\relax \ifnum\mkt@sname=\tw@ \ifnum\mkt@gname=\tw@ \@tempskipa\fill\fi\fi \hbox to\mkt@namewidth{#1\hskip\@tempskipa#2\@makefnmark}\fi\fi\fi \gdef\affi@thefnmark{}\hskip\columnsep} % When an author name is formatted "as is", the following macros are used % according to their position (left, right, or center). \def\mkt@anhboxl#1{\hbox to\mkt@namewidth{\hss#1\@makefnmark}} \def\mkt@anhboxr#1{\hbox to\mkt@namewidth{#1\@makefnmark\hss}} \def\mkt@anhboxc#1{\setbox\@tempboxa\hbox{#1\@makefnmark}% \ifdim\wd\@tempboxa>\mkt@namewidth\box\@tempboxa \else\hbox to\mkt@namewidth{\hss\box\@tempboxa\hss}\fi} % 2.08(1) \def\mkt@getnamewidth#1#2{\setbox\@tempboxa\hbox{\let\affiref\@gobble#2}% \@tempdimb\wd\@tempboxa \advance\@tempdimb.5\@tempdima #1\@tempdimb \mkt@cntb\@tempdima \divide#1\mkt@cntb} % English author name format % 1 -> <name-1>^* % 2 -> <name-1>^* and~<name-2>^* % 3 or more -> <name-1>,^* <name-2>,^* ... <name-n-1>^* and~<name-n>^* % (be careful the position of comma). % % No special tricks for assignment names to line. Names are simply put in a % \centering paragraph. \def\mkt@makeeauthor{\let\member\@gobble \let\nomember\relax \let\stmember\@gobble % Those are not necessary in final manuscript. \leavevmode\let\mkt@and\relax\gdef\affi@thefnmark{}% \def\@thefnmark{\affi@thefnmark}% \expandafter\mkt@imakeeauthor\@eauthor\and\@nil\and} \def\mkt@imakeeauthor#1\and#2\and{\def\@tempa{#2}\ifx\@tempa\@nnil #1\@makefnmark\let\next\relax \else \def\@tempb{#1}\def\next{\mkt@iimakeeauthor#2\and}% \fi\next} \def\mkt@iimakeeauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil \@makefnmark\ {\rm{and}~}\gdef\affi@thefnmark{}\hbox{\@tempb}% \@makefnmark\let\next\relax \else \mkt@and\hbox{\@tempb}\let\mkt@and\mkt@andmid \let\next\mkt@iimakeeauthor \fi\def\@tempb{#1}\next} \def\mkt@andmid{,\@makefnmark\ \gdef\affi@thefnmark{}} % Macros to specify author's affiliation easily. \newcounter{affi@footnote} \c@affi@footnote\z@ \def\affilabel{\stepcounter{affi@footnote}\affi@deflabels\affi@affilabel} % 1.04(1a) \def\paffilabel{\affi@deflabels\affi@paffilabel} \def\affi@deflabels#1#2#3{{\def\protect{\noexpand\protect\noexpand}% \let\affi@affilabel\relax \let\affi@paffilabel\relax \let\\\relax \xdef\affi@labels{\affi@labels#1{#2}{#3}}}} \def\affi@labels{} \def\affi@affilabel{\begingroup \def\@mpfn{affi@footnote}\def\thempfn{\theaffi@footnote}% \def\affi@fnmark{\protect\@makefnmarkdagger}% \affi@label} \def\affi@paffilabel#1#2{\begingroup\PF@adjustfnote \def\affi@fnmark{\protect\@makefnmarkstar}% \def\protect{\noexpand\protect\noexpand}% \def\\{\noexpand\\Presently with \ignorespaces}% \edef\@tempa{\ifDS@english Presently with \else 現在,\fi#2}% 1.04(1d) \affi@label{#1}{\@tempa}} \def\affi@label#1#2{\stepcounter{\@mpfn}% \@ifundefined{affi@r@#1}% {\expandafter\xdef\csname affi@r@#1\endcsname{\thempfn}} {\ipsj@warning{Affiliation label `#1' multiply defined}}% % 2.00(3) \let\affi@footnotetext\relax\let\\\relax \def\protect{\noexpand\protect\noexpand}% \xdef\@thanks{\@thanks \affi@footnotetext{\thempfn}{\affi@fnmark}{#2}}\endgroup} \def\affiref#1{\@ifundefined{affi@r@#1}% {\ipsj@warning{Affiliation reference `#1' undefined}% 2.00(3) \def\@tempa{?}}% {\def\@tempa{\csname affi@r@#1\endcsname}}% \ifx\affi@thefnmark\empty\xdef\affi@thefnmark{\@tempa}\else \xdef\affi@thefnmark{\affi@thefnmark,\hskip\z@\@tempa}\fi} \def\affi@footnotetext#1#2#3{{\def\@thefnmark{#1}\def\@makefnmarkforfn{#2} \@footnotetext{#3}}} % 1.04(1b)>> \def\theaffi@footnote{\ifcase\c@affi@footnote\or {\dagger}\or {\dagger}{\dagger}\or {\dagger}{\dagger}{\dagger}\fi} % 1.04(1c) \def\theaffi@footnotemany{{\dagger}\number\c@affi@footnote} % 1.04(1b)<< \def\thanks#1{\begingroup \def\@makefnmark{\smash{\hbox{\fn@fontvii$^{\@thefnmark}$}}}% \footnotemark \let\affi@footnotetext\relax\let\\\relax \def\protect{\noexpand\protect\noexpand}% \xdef\@thanks{\@thanks \affi@footnotetext{\thempfn}{\protect\@makefnmarkstar}{#1}}% \endgroup} % \contact is necessary only for drafts. \long\def\contact#1{} %%%%%% Page Header and Footer %%%%%% \mark{{}{}} \newcounter{volpageoffset} % You must set this to appropriate value \setcounter{volpageoffset}{1} % for each issue! % 2.00(16)>> \let\latex@document\document \def\document{\latex@document \ifDS@private\else \global\c@page\c@volpageoffset \fi} % 2.07(8) \let\c@volpage\c@page % for backward compatibility \def\thevolpage{\thepage} % for backward compatibility % 2.00(16)<< \newcounter{volume}\expandafter\let\csname c@巻数\endcsname\c@volume \newcounter{number}\expandafter\let\csname c@号数\endcsname\c@number \let\c@month\c@number \expandafter\let\csname c@月数\endcsname\c@number % 2.07(4) \newcounter{year}\expandafter\let\csname c@年数\endcsname\c@year % 2.07(4)>> \def\@thevolno{Vol.~\arabic{巻数}\hskip\@mojihaba No.~% \ifipsj@trans SIG\ \ipsj@sig@numa(\ipsj@sig@code\ \ipsj@sig@numb)% \else \arabic{号数}\fi} % 2.07(4)<< % 2.00(15)>> \def\@monthyear{\ifcase\value{号数}\or Jan.\or Feb.\or Mar.\or Apr.\or May\or June\or July\or Aug.\or Sep.\or Oct.\or Nov.\or Dec.\else\fi \hskip.5\@mojihaba \setcounter{年数}{1959}% \addtocounter{年数}{\value{巻数}}\arabic{年数}} % 2.00(15)<< % 2.07(2)>> \newif\ifipsj@trans \ipsj@transfalse \def\transaction#1#2#3{\ipsj@transtrue \def\ipsj@sig@code{#1}\def\ipsj@sig@numa{#2}\def\ipsj@sig@numb{#3}% \expandafter\let\expandafter\ipsj@sig@title \csname ipsj@sig@#1@\ifDS@english e\else j\fi\endcsname \ifx\ipsj@sig@title\relax \ipsj@warning{Transaction code #1 is unknown}\fi \let\ipsj@oddhead@s\ipsj@oddhead@a \settowidth\@tempdima{% \ipsj@ohcheck\ipsj@ohcvolno\hdr@tipsj\ipsj@ohcvolno}% \ifdim\@tempdima>\textwidth \let\ipsj@oddhead@s\ipsj@oddhead@b \settowidth\@tempdima{\c@month3\relax % "Mar." is longest \ipsj@ohcheck\ipsj@ohcvolno\hdr@tipsj\@monthyear}% \ifdim\@tempdima>\textwidth \let\ipsj@oddhead@s\ipsj@oddhead@c \fi \fi} \def\ipsj@sig@PRO@j{プログラミング} \def\ipsj@sig@PRO@e{Programming} \def\ipsj@sig@TOM@j{数理モデル化と応用} \def\ipsj@sig@TOM@e{Mathematical Modeling and Its Applications} \def\ipsj@sig@TOD@j{データベース} \def\ipsj@sig@TOD@e{Databases} \def\ipsj@sig@HPS@j{ハイパフォーマンスコンピューティングシステム} \def\ipsj@sig@HPS@e{High Performance Computing Systems} \def\ipsj@sig@CVIM@j{コンピュータビジョンとイメージメディア} \def\ipsj@sig@CVIM@e{Computer Vision and Image Media} % 2.07(2)<< \def\copyrightnotice{\long\def\ipsj@cnotice} % 1.05(2)>> \ifDS@techrep \def\ps@headings{\let\@mkboth\markboth \def\@oddhead{\@checklines\hss}\let\@evenhead\@oddhead \def\@oddfoot{}\def\@evenfoot{}} \let\ps@myheadings\ps@headings \else\ifDS@private % 2.07(8)>> \def\ps@headings{\let\@mkboth\markboth \def\@oddhead{\@checklines\hfil\thepage\hskip12\@Q}% \def\@evenhead{\@checklines\hskip12\@Q\thepage\hfil} \def\@oddfoot{}\def\@evenfoot{}} \def\ps@myheadings{\ps@headings \def\@oddhead{\@checklines \smash{\parbox[b]{.75\textwidth}{\@nameuse{ipsj@cnotice}}}% \hfil\thepage\hskip12\@Q}% \let\@evenhead\@oddhead} % 2.07(8)<< \else % 1.05(2)<< \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{} \def\@evenfoot{} \def\@evenhead{\fs@header \@checklines \hskip12\@Q\rlap{\thepage}\hss % 2.07(3) \hdr@tipsj\hss\llap{\@monthyear}\hskip12\@Q} \def\@oddhead{\fs@header \@checklines \ipsj@oddhead@t\@titlestring\thepage} % 2.07(3) \def\sectionmark##1{}\def\subsectionmark##1{}} \def\ps@myheadings{\let\@mkboth\@gobbletwo \def\@oddhead{\fs@header \@checklines \ipsj@oddhead@s\hdr@tipsj\@monthyear} % 2.07(3) \def\@oddfoot{\fs@footer\hfil\thepage\hfil} \let\@evenhead\@oddhead \let\@evenfoot\@oddfoot \def\sectionmark##1{}\def\subsectionmark##1{}} \fi\fi % 1.05(2) % 2.07(8) % 2.07(3)>> \def\ipsj@oddhead@a#1#2{\hskip12\@Q \rlap{\@thevolno}\hss#1\hss \llap{#2}\hskip12\@Q} \def\ipsj@oddhead@b#1#2{\hskip12\@Q \@thevolno\qquad#1\hss \llap{#2}\hskip12\@Q} \def\ipsj@oddhead@c#1#2{\hskip12\@Q \@thevolno\hss#1\hss#2\hskip12\@Q} \let\ipsj@oddhead@t\ipsj@oddhead@a \let\ipsj@oddhead@s\ipsj@oddhead@a % 2.07(3)<< % 2.02(2),2.07(4)>> \ifDS@english \def\hdr@tipsj{\smash{% \ifipsj@trans IPSJ Transactions on \ipsj@sig@title \else IPSJ Journal\fi}} \else \def\hdr@tipsj{\smash{情報処理学会論文誌% \ifipsj@trans :\ipsj@sig@title\fi}} \fi % 2.02(2),2.07(4)<< % \checklines enables to draw a horizontal rule onto each baselines. \newif\if@checklines \@checklinesfalse \def\checklines{\@checklinestrue} \def\@checklines{\if@checklines \rlap{\smash{\vtop{\normalsize \hbox{} \vskip\headsep \hrule width\textwidth\vskip-.4pt \vskip\topskip \hrule\vskip-.4pt \ifDS@techrep\@tempcnta50\else % 1.05(2) \ifDS@english\@tempcnta53\else\@tempcnta45\fi\fi % 1.05(2) \relax\@@checklines}}}\fi \ifDS@english\@tempcnta-7\else\@tempcnta\z@\fi\relax % 1.05(2)>> \@tempswafalse \ifDS@printer \@tempswatrue \fi \ifDS@techrep \@tempswatrue \fi \if@tempswa \unitlength\@Q \begin{picture}(0,0)(0,\@tempcnta) \put(-61,63){\begin{picture}(0,0) \put(-10,0){\line(-1,0){30}} \put(0,10){\line(0,1){30}}\end{picture}} \put(667,63){\begin{picture}(0,0) \put(10,0){\line(1,0){30}} \put(0,10){\line(0,1){30}}\end{picture}} \put(-61,-965){\begin{picture}(0,0) \put(-10,0){\line(-1,0){30}} \put(0,-10){\line(0,-1){30}} \ifDS@techrep \put(0,-10){\makebox(728,0)[t]{\thepage}}\fi \end{picture}} % 1.05(2)<< \put(667,-965){\begin{picture}(0,0) \put(10,0){\line(1,0){30}} \put(0,-10){\line(0,-1){30}}\end{picture}} \end{picture}\fi} \def\@@checklines{\ifnum\@tempcnta>\z@ \vskip\normalbaselineskip \hrule\vskip-.4pt \advance\@tempcnta\m@ne \let\next\@@checklines\else\let\next\relax\fi\next} \pagestyle{headings} \pagenumbering{arabic} \ifDS@english\else \def\today{\the\year 年 \the\month 月 \the\day 日} \fi %%%%%% Output Routine %%%%%% % To balance the final page, % following code is borrowed from nicetwocolumn style % you can refrain from balancing by falsifying following switch! %% Initial value of \if@lastpagebalancing is false. It may be turned true by %% biography processing macros. (H.N.) \newif\if@lastpagebalancing \@lastpagebalancingfalse \newif\if@finalpageoutput \@finalpageoutputfalse % incorporate balanced output to \enddocument \let\latex@enddocument\enddocument \def\enddocument{\@finalpageoutputtrue \if@lastpagebalancing \global\let\@outputdblcol\opt@balanceoutputdblcol\fi \ifDS@preface \global\let\@outputdblcol\opt@balanceoutputdblcol\fi \ifDS@abstract % 2.07(7)>> \hbox{}\newpage \ifDS@english \rightline{(Presented \ra@presented)} \else \expandafter\ra@putpresented\ra@presented \fi \fi % 2.07(7)<< \latex@enddocument} \newbox\@leftcolumnfootnote \newbox\@rightcolumnfootnote \newif\if@leftfootnoteexist \@leftfootnoteexistfalse \newif\if@rightfootnoteexist \@rightfootnoteexistfalse \newif\ifopt@floatexist \opt@floatexistfalse % 2.00(12) \color@{begin/end}group ignored \def\enlargethispage{\ipsj@warning{\string\enlargepage is ignored}} % 2.00(3,12) \def\@makecol{\vbadness10000 \lineskiplimit\normallineskiplimit % 1.05(1) \setbox\@outputbox\box\@cclv \if@firstcolumn \ifvoid\footins \global\@leftfootnoteexistfalse \else \global\@leftfootnoteexisttrue \@tempdima\dp\footins \global\setbox\@leftcolumnfootnote\vbox{ \unvbox\footins\vskip-\@tempdima} \fi \ifx\@botlist\@empty\else\global\opt@floatexisttrue\fi \else \ifvoid\footins \global\@rightfootnoteexistfalse \else \global\@rightfootnoteexisttrue \@tempdima\dp\footins \global\setbox\@rightcolumnfootnote\vbox{ \unvbox\footins \vskip-\@tempdima} \ifx\@toplist\@empty\else\global\opt@floatexisttrue\fi \fi \fi \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats \global\maxdepth\@maxdepth} % 2.01(1) >> \let\latex@vtryfc\@vtryfc \def\@vtryfc{\if@firstcolumn \global\@leftfootnoteexistfalse \else \global\@rightfootnoteexistfalse \fi \latex@vtryfc} % 2.01(1) << % 1.01(1,2) >> \let\latex@addtobot\@addtobot \def\@addtobot{\latex@addtobot\global\maxdepth\@maxdepth} \let\latex@combinefloats\@combinefloats \def\@combinefloats{\ifx\@botlist\@empty\else \dimen@\dp\@outputbox \setbox\@outputbox\vbox{\unvbox\@outputbox \vskip-\dimen@}\fi \latex@combinefloats} % 1.01(1,2) << \newskip\opt@baselineskip \def\@outputdblcol{ \if@firstcolumn \global\@firstcolumnfalse \global\setbox\@leftcolumn\box\@outputbox \global\opt@baselineskip\baselineskip \else \global\@firstcolumntrue \global\opt@floatexistfalse \global\bib@adjustheight-\maxdimen \setbox\@leftcolumn\vbox to\@colht{\boxmaxdepth\@maxdepth % 1.01(3) \unvbox\@leftcolumn \if@leftfootnoteexist\vfil \footnoterule\box\@leftcolumnfootnote\fi} \setbox\@outputbox\vbox to\@colht{\boxmaxdepth\@maxdepth % 1.01(3) \unvbox\@outputbox \if@rightfootnoteexist\vfil \footnoterule\box\@rightcolumnfootnote\fi} \global\maxdepth\@maxdepth \if@finalpageoutput \if@leftfootnoteexist\else\if@rightfootnoteexist\else \setbox\@leftcolumn\vbox{\unvbox\@leftcolumn}% \setbox\@outputbox\vbox{\unvbox\@outputbox} \ifdim\ht\@leftcolumn<\ht\@outputbox \setbox\@leftcolumn\vbox to\ht\@outputbox{ \unvbox\@leftcolumn}% \else \setbox\@outputbox\vbox to\ht\@leftcolumn{ \unvbox\@outputbox}% \fi \fi\fi\fi \setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth {\box\@leftcolumn \hss}\hfil \vrule width\columnseprule\hfil \hbox to\columnwidth{\box\@outputbox \hss}}} \@combinedblfloats \@outputpage \begingroup \@dblfloatplacement \@startdblcolumn \@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}% \endgroup \fi} \let\opt@outputdblcol\@outputdblcol \chardef\opt@boxa\z@ \chardef\opt@boxb\@ne \chardef\opt@boxc\tw@ \def\opt@magicpenalty{1234} \def\opt@balanceoutputdblcol{\let\next\opt@ibalanceoutputdblcol \if@firstcolumn \let\next\opt@outputdblcol \else \ifopt@floatexist \opt@warning \let\next\opt@outputdblcol \else\ifx\@deferlist\@empty\else \opt@warning \let\next\opt@outputdblcol\fi\fi\fi \next} \def\opt@ibalanceoutputdblcol{% \setbox\@leftcolumn\vbox{\unvbox\@leftcolumn \ifnum\lastpenalty=\opt@magicpenalty\relax\else \@tempcnta10\relax\@whilenum\@tempcnta>0\do{% \unskip\unskip\unkern\unpenalty \advance\@tempcnta\m@ne}\fi} \advance\opt@baselineskip-\dp\@leftcolumn \ifdim\dp\@leftcolumn=\z@ \ifdim\opt@baselineskip=\baselineskip \@tempdima\ht\@leftcolumn \advance\@tempdima-\topskip \divide\@tempdima\baselineskip \@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip \advance\@tempdima\topskip \advance\@tempdima-\ht\@leftcolumn \advance\opt@baselineskip\@tempdima \fi\fi \advance\opt@baselineskip-\topskip \setbox\@outputbox\vbox{\unvbox\@outputbox} \ifdim\ht\@outputbox=\topskip \ifdim\dp\@outputbox=\z@ \setbox\opt@boxa\vbox{\unvcopy\@outputbox\unskip \global\setbox\opt@boxb\lastbox \global\dimen@\lastskip} \ifvoid\opt@boxb\else\ifdim\ht\opt@boxb=\z@ \ifdim\dp\opt@boxb=\z@\ifdim\dimen@=\topskip \@firstcolumntrue\fi\fi\fi\fi\fi\fi \setbox\opt@boxa\copy\@outputbox \setbox\@outputbox\vbox{\unvcopy\@leftcolumn \if@firstcolumn\else \vskip\opt@baselineskip \penalty\interlinepenalty\unvbox\@outputbox\fi} \@tempdima\ht\@outputbox \advance\@tempdima\topskip \divide\@tempdima\tw@ \advance\@tempdima100sp \splittopskip\topskip \splitmaxdepth\@maxdepth \ifdim\bib@adjustheight<\@M pt \opt@split\@outputbox\opt@boxb\@tempdima \ifdim\ht\opt@boxb<\bib@adjustheight \opt@split\@leftcolumn\opt@boxc\bib@adjustheight \opt@split\opt@boxc\opt@boxb\@tempdima \if@firstcolumn \opt@adjust\opt@boxc{\unvbox\@leftcolumn} \else\opt@adjust\opt@boxc{\ifvoid\@leftcolumn\else \unvbox\@leftcolumn\vskip\opt@baselineskip\fi \unvbox\opt@boxa}\fi\fi \else \advance\bib@adjustheight-\@M pt \opt@split\opt@boxa\opt@boxc\bib@adjustheight \setbox\@outputbox\vbox{\unvbox\@leftcolumn \vskip\opt@baselineskip\unvbox\opt@boxc} \opt@split\@outputbox\opt@boxb\@tempdima \opt@adjust\@outputbox{\unvbox\opt@boxa} \fi \if@leftfootnoteexist \setbox\opt@boxb\vbox to\@colht{\box\opt@boxb\vfill \footnoterule\box\@leftcolumnfootnote}\fi \if@rightfootnoteexist \setbox\@outputbox\vbox to\@colht{\box\@outputbox\vfill \footnoterule\box\@rightcolumnfootnote}\fi \ifdim\ht\@outputbox>\ht\opt@boxb \setbox\opt@boxb\vbox to\ht\@outputbox{\unvbox\opt@boxb} \else \setbox\@outputbox\vbox to\ht\opt@boxb{\unvbox\@outputbox} \fi \setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth {\box\opt@boxb \hss}\hfil \vrule width\columnseprule\hfil \hbox to\columnwidth{\box\@outputbox \hss}}} \global\@firstcolumntrue \@combinedblfloats \@outputpage \begingroup \@dblfloatplacement \@startdblcolumn \@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}\endgroup} \if@LaTeX@eN % 2.00(3)>> \def\opt@warning{\ClassWarning{ipsjpapers}{% Single column floats still remain on biography\MessageBreak processing.\MessageBreak Do \string\verbbiography\space for manual balcing}} \else \def\opt@warning{\@warning{Single column floats still remain on biography processing.^^J\space\space\space\space\space \space\space\space\space\space\space\space\space\space\space Do \string\verbbiography\space for manual balancing}} \fi % 2.00(3)<< \def\opt@split#1#2#3{\setbox#2\vsplit#1to#3\setbox#2\vbox{\unvbox#2}} \def\opt@adjust#1#2{\@tempdima\ht#1 \advance\@tempdima-\topskip \@tempdimb\@tempdima \divide\@tempdima\baselineskip \@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip \advance\@tempdima-\@tempdimb \ifdim\@tempdima<\z@ \advance\@tempdima\baselineskip \fi \advance\@tempdima\baselineskip \advance\@tempdima-\dp#1 \advance\@tempdima-\topskip \setbox\@outputbox\vbox{\ifvoid#1\else\unvbox#1\vskip\@tempdima\fi#2}} \let\latex@outputpage\@outputpage % \opt@finalgap: vertical space above the \hrule at the end of paper. % \opt@finallinewidth: width of the \hrule at the end of paper. \@tempdima2\baselineskip % This might be changed \edef\opt@finalgap{\the\@tempdima} \def\opt@finallinewidth{220\@Q} % This might be changed \ifDS@techrep \let\opt@finallinewidth\z@ \fi % 1.05(2) \def\@outputpage{\if@finalpageoutput \setbox\@outputbox\vbox{\unvbox\@outputbox} \@tempdima\dp\@outputbox \@tempdimb\ht\@outputbox \advance\@tempdimb\opt@finalgap\relax \ifdim\@tempdimb>\textheight\else \setbox\@outputbox\vbox{\unvbox\@outputbox\vskip-\@tempdima \nointerlineskip\vbox to\z@{\vskip\opt@finalgap \hbox to\textwidth{\hss \vrule height0.4pt width\opt@finallinewidth\hss} \vss}}\fi\fi \ifASCII\if@LaTeX@e \@@topmargin\topmargin \fi\fi % 2.00(13) \latex@outputpage} %%%%%% Biography %%%%%% % If you want to control the allocation of biographies manually, do % \verbbiography and insert \adjust{<vertical materials>} just before % \member (or its relatives). For example; % \verbbiography % \begin{biography} % \member{...} ... % \adjust{\protect\newpage} % \member{...} ... % \adjust{\protect\vspace{1.3cm}} % \member{...} ... % \end{biography} % will make page break just after the biography of the 1st author, and will % insert a vertical space of 1.3cm just after that of the 2nd. It is % strongly recommended to \protect any control sequence in the argument of % \adjust. % \受付 and \採録 define the dates of receipt/acceptance. They are put at % the end of manuscript (just before biographies) by ra@putrcvacc. \def\ra@nengo{平成} %% Change here when ... \ifDS@english \def\受付#1#2#3{\def\ra@received{\ra@date{#1}{#2}{#3}}\ignorespaces} \def\採録#1#2#3{\def\ra@accepted{\ra@date{#1}{#2}{#3}}\ignorespaces} \def\再受付#1#2#3{\def\ra@rereceived{\ra@date{#1}{#2}{#3}}\ignorespaces} % 2.07(5) \def\発表#1#2#3{\def\ra@presented{\ra@date{#1}{#2}{#3}}\ignorespaces} % 2.07(7) \def\ra@received{??? ??, ????} \def\ra@accepted{??? ??, ????} \def\ra@presented{??? ??, ????} % 2.07(7) \def\ipsj@TOD@editor{(Editor in Charge: {\it\ipsj@TOD@ename})} % 2.07(6) \else \def\受付#1#2#3{\def\ra@received{#1&}\ignorespaces} \def\採録#1#2#3{\def\ra@accepted{#1&}\ignorespaces} \def\再受付#1#2#3{\def\ra@rereceived{#1&}\ignorespaces} % 2.07(5) \def\発表#1#2#3{\def\ra@presented{#1&}\ignorespaces} % 2.07(7) \def\ra@received{?&?&?&} \def\ra@accepted{?&?&?&} \def\ra@presented{?&?&?&} % 2.07(7) \def\ipsj@TOD@editor{(担当編集委員\ \ipsj@TOD@ename )} % 2.07(6) % 2.08(2) \fi \let\received\受付 \let\accepted\採録 \let\rereceived\再受付 % 2.07(5) \let\presented\発表 % 2.07(7) \def\edInCharge#1{\def\ipsj@TOD@ename{#1}\ignorespaces} % 2.07(6) \def\ra@putrcvacc{\rightline{\vtop{\normalsize\tabskip\z@ \ifDS@english \llap{(Received \ra@received)} \ifx\ra@rereceived\undefined\else \llap{(Revised \ra@rereceived)}\fi \llap{(Accepted \ra@accepted)}\hbox{} \else \halign{(\ra@nengo\hskip\jasciikanjiskip \hfil##\hfil\hskip\jasciikanjiskip 年\hskip\jasciikanjiskip& \hfil##\hfil\hskip\jasciikanjiskip 月\hskip\jasciikanjiskip& \hfil##\hfil\hskip\jasciikanjiskip 日&##\hfil\cr% 2.07(5)>> \ra@received 受付)\cr \ifx\ra@rereceived\undefined\else \ra@rereceived 再受付)\cr\fi \ra@accepted 採録)\cr\multispan3\cr}\fi}% % 2.07(5)<< \hskip\@mojihaba} \nobreak\vskip-2\baselineskip\prevdepth\z@\hbox{} \ifipsj@recommendation\else % 2.04(2) \ifx\ipsj@TOD@ename\undefined\else % 2.07(6)>> \nobreak\vskip\baselineskip \hbox{\ipsj@TOD@editor}\fi % 2.07(6)<< \vskip\baselineskip\penalty\opt@magicpenalty\fi}% 2.04(2) \def\ra@date#1#2#3{\ifcase#2\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space#3, #1} \def\ra@putpresented#1&{\rightline{% (\ra@nengo\hskip\jasciikanjiskip % 2.07(7)>> #1\hskip\jasciikanjiskip 年\hskip\jasciikanjiskip #2\hskip\jasciikanjiskip 月\hskip\jasciikanjiskip #3\hskip\jasciikanjiskip 日発表)}} % 2.07(7)<< \newbox\bio@picbox % The following define the height and width of a picture for biography, and % the indentation of the first 6 lines. They might be changed. \def\bio@picheight{100\@Q} \def\bio@picwidth{80\@Q} \newif\ifbio@showpicbox \bio@showpicboxtrue % Do \bio@showpicboxfalse if you don't want to put a frame box at the % position for picture. \ifDS@english \def\bio@lineheight{9\@Q} \def\bio@piclines{7} \def\bio@indent{91\@Q} \def\bio@hangafter{7} \else \def\bio@lineheight{8\@Q} \def\bio@piclines{6} \def\bio@indent{96\@Q} \def\bio@hangafter{5} \fi % \verbbiography forces verbatim output of biography (i.e. not ballanced). \newif\ifbio@verb \bio@verbfalse \def\verbbiography{\global\bio@verbtrue} % The environment biography saves texts for biographies into the list of % \inserts (for floats). \def\biography{\ifipsj@recommendation\else\par\ra@putrcvacc\fi % 2.04(2) \def\member{\bio@member{(正会員)}}\def\nomember{\bio@member{}} \def\stmember{\bio@member{(学生会員)}}\let\adjust\bio@adjust \ifbio@showpicbox \setbox\bio@picbox\hbox{\hbox to\z@{\vrule\hskip-0.4pt% \vtop to\bio@picheight{\vskip\z@\hrule width\bio@picwidth \vfil\hrule}\hskip-0.4pt\vrule\hss}} \else \setbox\bio@picbox\hbox{} \fi \@tempdima\bio@piclines\baselineskip \advance\@tempdima\bio@lineheight \dp\bio@picbox\@tempdima \let\bio@egroup\relax\let\+\ignorespaces\let\@elt\relax \def\bio@list{}\global\bio@th\z@} \def\bio@member#1#2{\bio@egroup\let\bio@egroup\bio@@egroup \@next\@currbox\@freelist\relax {\@latexerr{Too many unprocessed floats and biographies}\@ehb}% \def\@tempa{#2}% \global\setbox\@currbox\hbox\bgroup \raise\bio@lineheight\copy\bio@picbox \vtop\bgroup \let\par\\ \hangindent\bio@indent\hangafter-\bio@hangafter \ifDS@english {\bf #2\ }% \else {\bf\bio@putauthor#2\+ \@nil}#1{\@@par}\fi\ignorespaces} % Author name format: % S + G < 5 -> fill space between S/G (like SS__G) % otherwise -> 1 KC space between S/G (like SS_GG) \def\bio@putauthor#1 #2\@nil{% \setbox\@tempboxa\hbox{\jintercharskip\z@#1#2}% \setbox\mkt@boxa\hbox{\jintercharskip1cm#1#2}% \ifdim\wd\@tempboxa=\wd\mkt@boxa #1 #2\else \def\@tempa{#2}\ifx\@tempa\empty {\def\+{}\ipsj@warning{Author name #1 doesn't have a space}}% % 2.00(3) #1\else \@tempdima\@mojihaba \mkt@getnamewidth\mkt@sname{#1}\mkt@getnamewidth\mkt@gname{#2}% \advance\mkt@sname\mkt@gname \ifnum\mkt@sname<5\leavevmode\hbox to5\@mojihaba{#1\hfil#2}\else #1#2\fi\fi\fi} \def\bio@@egroup{\@@par\hbox{}\egroup\egroup\@tempdima\dp\@currbox \ifdim\@tempdima>\textheight \ipsj@warning{Biography of \@tempa\space is too long}% 2.00(3) \bio@verbtrue \fi \advance\@tempdima\baselineskip\global\advance\bio@th\@tempdima \global\dimen\@currbox\@tempdima \global\count\@currbox\z@ {\let\protect\bio@protect\xdef\bio@list{\bio@list\@elt\@currbox}}} \def\bio@adjust#1{\bio@egroup\let\bio@egroup\relax \ifbio@verb {\let\protect\bio@protect\xdef\bio@list{\bio@list#1}\fi}} \def\bio@protect{\noexpand\protect\noexpand} \def\endbiography{\bio@egroup \@tempswatrue \ifx\@botlist\@empty\ifx\@deferlist\@empty \@tempswafalse \fi\fi \ifbio@verb\else\if@tempswa \bio@verbtrue \opt@warning\fi\fi \ifbio@verb{\let\@elt\bio@putelt \let\protect\relax \bio@list}% \else\bio@putbio\fi} \newdimen\bio@colht \newdimen\bio@splitheight \newdimen\bio@maxgap \newdimen\bio@lastgap \newdimen\bio@th \newdimen\bio@lhA \newdimen\bio@hA \newdimen\bio@hB \newdimen\bio@lh \newdimen\bio@rh \newdimen\bio@tempdim \newif\ifbio@awful \newinsert\bio@pbox \count\bio@pbox\@ne \def\bio@putbio{\let\@elt\relax \let\bio@vskip\relax \allowbreak \bio@colht\@colht \advance\bio@colht-\topskip \advance\bio@colht\baselineskip \@tempdima\bio@colht \advance\@tempdima-\@colroom \advance\@tempdima\pagetotal \if@firstcolumn \ifdim\@tempdima>\bio@th \global\@lastpagebalancingtrue {\let\@elt\bio@putelt\bio@list}\vskip-\baselineskip \else \ifdim\pagetotal=\z@\else \dimen\bio@pbox\@tempdima \advance\bio@th\@tempdima \edef\bio@list{\@elt\bio@pbox\bio@list}\fi \bio@splitheight\bio@colht \bio@splitpage \bio@splitheight.5\bio@th \let\bio@awfulput\bio@specialawfulput \bio@trybalance\fi \else \advance\@tempdima\bio@th \ifdim\@tempdima<\bio@colht \global\@lastpagebalancingtrue \ifdim\pagetotal=\z@ \global\opt@baselineskip2\baselineskip\fi {\let\@elt\bio@putelt\bio@list}\vskip-\baselineskip \else \let\bio@awfulput\bio@normalawfulput \bio@splitheight\z@ \advance\@tempdima-\bio@th \advance\bio@colht-\@tempdima \bio@splitpage {\let\@elt\bio@putelt\bio@list}\bio@nextpage \bio@trybalance\fi \fi} \def\bio@trybalance{\bio@split \let\bio@right\bio@rightA \let\bio@left\bio@leftA \def\bio@rightx{}\def\bio@leftx{}% \let\bio@hX\bio@hA \bio@balance \let\bio@rightxA\bio@rightx \let\bio@leftxA\bio@leftx \ifbio@awful\@tempcnta\tw@\else\@tempcnta\z@\fi \let\bio@right\bio@rightB \let\bio@left\bio@leftB \def\bio@rightx{}\def\bio@leftx{}% \let\bio@hX\bio@hB \bio@balance \let\bio@rightxB\bio@rightx \let\bio@leftxB\bio@leftx \ifbio@awful\advance\@tempcnta\@ne\fi \ifcase\@tempcnta \ifdim\bio@hA<\bio@hB \bio@balanceput\bio@leftxA\bio@rightxA \else \bio@balanceput\bio@leftxB\bio@rightxB\fi \or \bio@balanceput\bio@leftxA\bio@rightxA \or \bio@balanceput\bio@leftxB\bio@rightxB \else \bio@awfulput\fi \ifx\bio@deferred\empty\vskip-\baselineskip\let\next\relax \else\bio@nextpage\let\next\bio@trybalance\fi\next} \def\bio@split{\def\bio@leftA{}\def\bio@leftB{}% \def\bio@rightA{}\def\bio@rightB{}% \bio@lhA\z@\@tempdimb\z@ \bio@isplit} \def\bio@isplit{\ifx\bio@list\empty\let\next\relax\else \bio@car\@tempdima\@currbox\bio@list \bio@lhA\@tempdimb\advance\@tempdimb\@tempdima \edef\bio@leftB{\bio@leftB\@elt\@currbox}% \ifdim\@tempdimb>\bio@splitheight \edef\bio@rightA{\@elt\@currbox\bio@list}% \let\bio@rightB\bio@list \let\next\relax \else\edef\bio@leftA{\bio@leftA\@elt\@currbox}\let\next\bio@isplit \fi\fi\next} \def\bio@balanceput#1#2{{\let\@elt\bio@putelt\let\bio@vskip\bio@xvskip #1\bio@newpage#2}} \def\bio@normalawfulput{{\let\bio@vskip\@gobble \@tempcnta\z@ \@tempdima\z@ \bio@addheight\@tempdima\bio@leftxB \ifdim\@tempdima<\bio@colht \@tempdima\z@ \bio@addheight\@tempdima\bio@rightxB \ifdim\@tempdima<\bio@colht \@tempcnta\@ne \let\@elt\bio@putelt \bio@leftxB\bio@newpage\bio@rightxB\fi\fi \ifnum\@tempcnta=\z@ \@tempdima\z@ \bio@addheight\@tempdima\bio@leftxA \ifdim\@tempdima<\bio@colht \@tempdima\z@\bio@addheight\@tempdima\bio@rightxA \ifdim\@tempdima<\bio@colht \@tempcnta\@ne \let\@elt\bio@putelt \bio@leftxA\bio@newpage\bio@rightxA\fi\fi\fi % The following may be redundant. \ifnum\@tempcnta=\z@ \let\@elt\bio@putelt\bio@listsave\fi}} \def\bio@specialawfulput{{\advance\bio@th-\dimen\bio@pbox \ifdim\bio@th<\bio@colht\bio@newpage \let\bio@newpage\relax\fi\bio@normalawfulput}} \def\bio@putelt#1{\ifnum\count#1>\z@\else\box#1 \nobreak\vskip-2\baselineskip\prevdepth\z@\hbox{} \vskip\baselineskip\fi} \def\bio@xvskip#1{\vskip#1\prevdepth\z@} \def\bio@newpage{\vskip-\baselineskip\newpage} \def\bio@nextpage{\bio@newpage \let\bio@list\bio@deferred \bio@th\z@ \bio@addheight\bio@th\bio@list \bio@colht\@colht \advance\bio@colht-\topskip \advance\bio@colht\baselineskip \bio@splitheight\bio@colht \bio@splitpage \bio@splitheight.5\bio@th \let\bio@awfulput\bio@normalawfulput} \def\bio@splitpage{\let\bio@listsave\bio@list \bio@split \@tempdima\bio@th \advance\@tempdima-\bio@lhA \ifdim\@tempdima>\bio@colht \let\bio@leftAsave\bio@leftA \bio@th\bio@lhA \let\bio@list\bio@rightA \bio@splitheight\bio@colht \bio@split \edef\bio@list{\bio@leftAsave\bio@leftA}% \advance\bio@th\bio@lhA \let\bio@deferred\bio@rightA \else\def\bio@deferred{}\let\bio@list\bio@listsave\fi} % \bio@tolerablegap: maximum tolerable gap between adjacent bio's. % \bio@tolerablestretch:maximum stretch of a column. \@tempdima10\baselineskip % This might be changed \edef\bio@tolerablegap{\the\@tempdima} \@tempdima15\baselineskip \edef\bio@tolerablelastgap{\the\@tempdima} \def\bio@tolerablestretch{2} % This might be changed \def\bio@balance{\let\@elt\relax \edef\bio@bstack{% \@elt{{\bio@left}{\bio@right}{}{}{0pt}}} \bio@xbalance} \def\bio@xbalance{% \expandafter\bio@popstack\bio@bstack\@nil \let\bio@nextA\bio@xbalance \@tempdima\z@ \ifx\bio@left\empty \ifx\bio@right\empty \let\bio@nextA\bio@balanceend \else \bio@addheight\@tempdima\bio@right \edef\bio@leftx{\bio@leftx\bio@vskip{\the\@tempdima}}% \advance\bio@hX\@tempdima \edef\bio@rightx{\bio@rightx\bio@right}\def\bio@right{}% \bio@pushstack \fi\else \ifx\bio@right\empty \bio@addheight\@tempdima\bio@left \edef\bio@rightx{\bio@rightx\bio@vskip{\the\@tempdima}}% \advance\bio@hX\@tempdima \edef\bio@leftx{\bio@leftx\bio@left}\def\bio@left{}% \bio@pushstack \else \bio@car\@tempdima\bio@leftbox\bio@left \bio@car\@tempdimb\bio@rightbox\bio@right \edef\bio@leftx{\bio@leftx\@elt\bio@leftbox}% \edef\bio@rightx{\bio@rightx\@elt\bio@rightbox}% \ifdim\@tempdima>\@tempdimb \advance\bio@hX\@tempdima \let\bio@da\@tempdima\let\bio@db\@tempdimb \bio@ibalance\bio@left\bio@right\bio@leftx\bio@rightx \else \advance\bio@hX\@tempdimb \let\bio@da\@tempdimb\let\bio@db\@tempdima \bio@ibalance\bio@right\bio@left\bio@rightx\bio@leftx\fi \fi\fi\bio@nextA} \def\bio@ibalance#1#2#3#4{\let\bio@nextB\relax \ifx#2\empty \advance\bio@da-\bio@db \edef#4{#4\bio@vskip{\the\bio@da}}\bio@pushstack\else \bio@car\bio@tempdim\@currbox#2 \advance\bio@db\bio@tempdim \ifdim\bio@da<\bio@db \advance\bio@db-\bio@da \let\@tempa#3\edef#3{#3\bio@vskip{\the\bio@db}}% \let\@tempb#4\edef#4{#4\@elt\@currbox}% \advance\bio@hX\bio@db \bio@pushstack \advance\bio@hX-\bio@db \edef#2{\@elt\@currbox#2}% \advance\bio@tempdim-\bio@db \let#3\@tempa \edef#4{\@tempb\bio@vskip{\the\bio@tempdim}}% \bio@pushstack \else \edef#4{#4\@elt\@currbox}\def\bio@nextB{\bio@ibalance#1#2#3#4}% \fi\fi\bio@nextB} \def\bio@balanceend{\bio@awfulfalse \def\bio@bstack{}% \bio@maxgap\z@ \bio@lastgap\z@ \bio@checkgap\bio@leftx \bio@checkgap\bio@rightx \ifdim\bio@maxgap>\bio@tolerablegap\relax\bio@awfultrue\fi \ifdim\bio@lastgap>\bio@tolerablelastgap\relax\bio@awfultrue\fi \ifdim\bio@hX>\bio@tolerablestretch\bio@splitheight\bio@awfultrue\fi \ifdim\bio@hX>\bio@colht\bio@awfultrue\fi} \def\bio@checkgap#1{{\@tempdima\z@ \@tempdimb\z@ \bio@tempdim\z@ \let\@elt\bio@cgelt \let\bio@vskip\bio@cgvskip #1\relax \ifdim\@tempdima>\bio@maxgap \global\bio@maxgap\@tempdima \fi \ifdim\bio@tempdim>\bio@lastgap \global\bio@lastgap\bio@tempdim \fi}} \def\bio@cgvskip#1{\advance\bio@tempdim#1\relax \ifdim\bio@tempdim>\@tempdimb \@tempdimb\bio@tempdim\fi} \def\bio@cgelt#1{\@tempdima\@tempdimb \bio@tempdim\z@} \def\bio@popstack\@elt#1#2\@nil{\edef\bio@bstack{#2}\bio@ipopstack#1} \def\bio@ipopstack#1#2#3#4#5{\def\bio@left{#1}\def\bio@right{#2}% \def\bio@leftx{#3}\def\bio@rightx{#4}\bio@hX#5\relax} \def\bio@pushstack{\def\bio@bstackx{}% \expandafter\bio@ipushstack\bio@bstack\@elt\@nil} \def\bio@ipushstack\@elt#1{\def\@tempc{#1}% \ifx\@tempc\@nnil \edef\bio@bstack{\bio@bstackx\bio@stackelt}% \let\bio@nextC\relax \else \bio@iipushstack#1\fi\bio@nextC} \def\bio@iipushstack#1#2#3#4#5{\ifdim#5>\bio@hX \edef\bio@bstackx{\bio@bstackx\bio@stackelt \@elt{{#1}{#2}{#3}{#4}{#5}}}% \let\bio@nextC\bio@pushstackend\else \edef\bio@bstackx{\bio@bstackx \@elt{{#1}{#2}{#3}{#4}{#5}}}% \let\bio@nextC\bio@ipushstack\fi} \def\bio@pushstackend#1\@elt\@nil{\edef\bio@bstack{\bio@bstackx#1}} \def\bio@stackelt{\@elt{{\bio@left}{\bio@right}{\bio@leftx}{\bio@rightx}% {\the\bio@hX}}} \def\bio@addheight#1#2{\def\@elt##1{\advance#1\dimen##1}#2\let\@elt\relax} \def\bio@car#1#2#3{\expandafter\bio@icar#3\@nil#1#2#3} \def\bio@icar\@elt#1#2\@nil#3#4#5{#3=\dimen#1\relax\def#4{#1}\def#5{#2}} %%%%%% Miscellaneous %%%%%% \flushbottom \ifDS@english \hbadness9999 \tolerance9999 \else \hbadness5000 \tolerance5000 \pretolerance\m@ne \fi \input{ipsjcommon.sty} \twocolumn \endinput \ No newline at end of file diff -r 000000000000 -r 58c6244a184d Paper/ipsjsort.bst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/ipsjsort.bst Thu Nov 15 19:20:01 2012 +0900 @@ -0,0 +1,1 @@ +% ipsjsort.bst nakasima@kuis.kyoto-u.ac.jp (Hiroshi Nakashima) % jssst.bst tomura@etl.go.jp (Satoru Tomura) % BibTeX standard bibliography style `jplain' % version 0.10 for JBibTeX versions 0.10 or later, JLaTeX version 2.09. % by Shouichi Matsui, matsui@denken.junet ENTRY { address author booktitle chapter edition editor howpublished institution journal key month note number organization pages publisher school series title type volume year yomi } {} { label } INTEGERS { output.state before.all mid.sentence after.sentence after.block } INTEGERS { before.year } FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := #4 'before.year := % year doesn't follows "," nor ".". (H.N.) } STRINGS { s t } FUNCTION {output.nonnull} { 's := output.state mid.sentence = { ", " * write$ } { output.state after.block = { add.period$ write$ newline$ "\newblock " write$ } { output.state before.all = 'write$ { output.state before.year = % year doesn't follows "," nor ".". (H.N.) { " " * write$ } { add.period$ " " * write$ } if$ } if$ } if$ mid.sentence 'output.state := } if$ s } FUNCTION {output} { duplicate$ empty$ 'pop$ 'output.nonnull if$ } FUNCTION {required.argument} { 't := empty$ {"Missing required argument " t * " in " * cite$ * warning$} 'skip$ if$ } FUNCTION {required.exclusive.or.argument} { 't := empty$ { 's := empty$ { t " or " * s * " is missing in " * cite$ * warning$} 'skip$ if$ } { 's := empty$ 'skip$ { "You can use only one of " t * " and " * s * " in " * cite$ * warning$} if$ } if$ } FUNCTION {required.and.or.argument} { 't := empty$ { 's := empty$ { "there's no " t * " and/or " * s * cite$ * warning$ } 'skip$ if$ } { pop$ pop$ } if$ } FUNCTION {optional.series.volume.number.argument} { series empty$ { volume empty$ { number empty$ 'skip$ { "there's a number but no series in " cite$ * warning$ } if$ } { number empty$ { "there's a volume but no series in " cite$ * warning$ } { "you can use only one of volume and number in " cite$ * warning$} if$ } if$ } { volume empty$ { number empty$ { "there's a series but neither volume nor number in " cite$ * warning$ } 'skip$ if$ } { number empty$ 'skip$ { "you can use only one of volume and number in " cite$ * warning$ } if$ } if$ } if$ } FUNCTION {output.bibitem} { newline$ "\bibitem{" write$ cite$ write$ "}" write$ newline$ before.all 'output.state := } FUNCTION {fin.entry} { add.period$ write$ newline$ } FUNCTION {new.block} { output.state before.all = 'skip$ { after.block 'output.state := } if$ } FUNCTION {new.sentence} { output.state after.block = 'skip$ { output.state before.all = 'skip$ { after.sentence 'output.state := } if$ } if$ } FUNCTION {not} { { #0 } { #1 } if$ } FUNCTION {and} { 'skip$ { pop$ #0 } if$ } FUNCTION {or} { { pop$ #1 } 'skip$ if$ } FUNCTION {new.block.checka} { empty$ 'skip$ 'new.block if$ } FUNCTION {new.block.checkb} { empty$ swap$ empty$ and 'skip$ 'new.block if$ } FUNCTION {new.sentence.checka} { empty$ 'skip$ 'new.sentence if$ } FUNCTION {new.sentence.checkb} { empty$ swap$ empty$ and 'skip$ 'new.sentence if$ } FUNCTION {field.or.null} { duplicate$ empty$ { pop$ "" } 'skip$ if$ } FUNCTION {is.kanji} %%%{ #1 text.prefix$ chr.to.int$ #127 > } %%%{ #1 #1 substring$ chr.to.int$ #127 > } %%%{ purify$ #1 text.prefix$ chr.to.int$ #127 >} { is.kanji.str$ } FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } { duplicate$ is.kanji 'skip$ { "{\em " swap$ * "\/}" * } if$ } if$ } INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr s nameptr "{ll}" format.name$ is.kanji { "{ff}{vv}{ll}" } { "{vv }{ll}{, jj}{, f.}" } if$ format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { % numnames #2 > % { "," * } % 'skip$ % if$ % Don't put "," before "and" (H.N.) % % numnames #3 < % { t is.kanji % {"," * "" *} 'skip$ if$ % } % 'skip$ % if$ % Don't put "," before "ほか" (H.N.) % t "others" = { s is.kanji {"ほか" * } {" et al." * } if$ } { s is.kanji % {" " * t * } {", " * t * } % put "," here for Kanji (H.N.) {" and " * t * } if$ } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {format.authors} { author empty$ { "" } { author format.names } if$ } FUNCTION {format.editors} { editor empty$ { "" } { editor format.names editor num.names$ #1 > { editor is.kanji {"(編)" * } %%{", editors" * } if$ {"(eds.)" *} if$ } { editor is.kanji {"(編)" *} %%{", editor" * } if$ {"(ed.)" *} if$ } if$ } if$ } FUNCTION {n.dashify} { 't := "" { t empty$ not } { t #1 #1 substring$ "-" = { t #1 #2 substring$ "--" = not { "--" * t #2 global.max$ substring$ 't := } { { t #1 #1 substring$ "-" = } { "-" * t #2 global.max$ substring$ 't := } while$ } if$ } { t #1 #1 substring$ * t #2 global.max$ substring$ 't := } if$ } while$ } FUNCTION {format.date} { before.year 'output.state := % year doesn't follows "," nor ".". (H.N.) year empty$ { month empty$ { "" } { "there's a month but no year in " cite$ * warning$ % month % no worth to put month only. (H.N.) "" } if$ } % { month empty$ % 'year % { month " " * year * } % if$ % } % month is not printed even if it is given. (H.N.) % { "(" year ")" * * } % year is surrounded by parens. (H.N.) if$ } FUNCTION {tie.or.space.connect} { duplicate$ text.length$ #3 < { "~" } { "\ " } if$ swap$ * * } FUNCTION {output.volume} { volume empty$ 'skip$ { "Vol.~" volume * output} if$ } FUNCTION {output.number} { number empty$ 'skip$ { "No.~" number * output} if$ } FUNCTION {output.series.volume.number} { series empty$ { output.volume output.number } { series is.kanji volume empty$ number empty$ or and { series " " * volume * number * output} { series output output.volume output.number} if$ } if$ } FUNCTION {format.edition} { edition empty$ { "" } { output.state mid.sentence = { edition "l" change.case$ " edition" * } { edition "t" change.case$ " edition" * } if$ } if$ } INTEGERS { multiresult } FUNCTION {multi.page.check} { 't := #0 'multiresult := { multiresult not t empty$ not and } { t #1 #1 substring$ duplicate$ "-" = swap$ duplicate$ "," = swap$ "+" = or or { #1 'multiresult := } { t #2 global.max$ substring$ 't := } if$ } while$ multiresult } FUNCTION {format.pages} { pages empty$ { "" } { pages multi.page.check % { "pp.~" pages n.dashify tie.or.space.connect } % { "pp.~" pages tie.or.space.connect } % '~' might be add by tie.or.space.connect. (H.N.) % "p." is probably better for single page reference (H.N.) { "pp." pages n.dashify tie.or.space.connect } { "p." pages tie.or.space.connect } if$ } if$ } % This function is replaced by format.vol.num.pages (H.N.) %FUNCTION {format.volume.number.year.pages} %{ volume empty$ % { number empty$ % { year empty$ % { "" } % { "(" year * ")" * } % if$} % { year empty$ % { "No.~" number * } % { "No.~" number * "(" * year * ")" * } % if$} % if$} % { number empty$ % { year empty$ % { "Vol.~" volume * } % { "Vol.~" volume * "(" * year * ")" * } % if$} % { year empty$ % {"Vol.~" volume * "," * "No.~" * number * } % {"Vol.~" volume * "," * "No.~" * number * "(" * year * ")" * } % if$} % if$} % if$ % pages empty$ % 'skip$ % { duplicate$ empty$ % { pop$ format.pages } % { "," * " pp.~" * pages n.dashify * } % if$ % } % if$ %} FUNCTION {format.vol.num.pages} { volume empty$ { ""} { " Vol.~" volume * } if$ number empty$ 'skip$ { volume empty$ { "there's a number but no volume in " cite$ * warning$ } { "," *} if$ " No.~" number * * } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ format.pages } { ", " * format.pages * } % tieing "pp." and the first page will be too hard for a narrow column. (H.N.) if$ } if$ } FUNCTION {format.chapter.pages} { chapter empty$ 'format.pages { type empty$ { "chapter" chapter tie.or.space.connect } { type is.kanji { chapter type tie.or.space.connect } { type "l" change.case$ chapter tie.or.space.connect } if$ } if$ pages empty$ 'skip$ { ", " * format.pages * } if$ } if$ } FUNCTION {format.in.ed.booktitle} { booktitle empty$ { "" } { editor empty$ { booktitle is.kanji { " " booktitle emphasize * } { " " booktitle emphasize * } if$ } { booktitle is.kanji % { booktitle emphasize "(" * format.editors * ")" *} % { booktitle emphasize "(" * format.editors * ")" *} % awful without leading space (H.N.) { booktitle emphasize " (" * format.editors * ")" *} { booktitle emphasize " (" * format.editors * ")" *} if$ } if$ } if$ } FUNCTION {empty.misc.check} { author empty$ title empty$ howpublished empty$ month empty$ year empty$ note empty$ and and and and and key empty$ not and { "all relevant fields are empty in " cite$ * warning$ } 'skip$ if$ } FUNCTION {format.thesis.type} { type empty$ 'skip$ { pop$ type "t" change.case$ } if$ } FUNCTION {format.tr.number} { type empty$ { title empty$ { "Technical Report" } { title is.kanji { "技術報告" } { "Technical Report" } if$ } if$ } {type} if$ number empty$ { "t" change.case$ } { number tie.or.space.connect } if$ } FUNCTION {format.article.crossref} { key empty$ { journal empty$ { "need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } { "In " journal emphasize * } if$ } { "In " key * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.crossref.editor} { editor #1 "{vv }{ll}" format.name$ editor num.names$ duplicate$ #2 > { editor is.kanji {pop$ " ほか" *} {pop$ " et al." * } if$ } { #2 < 'skip$ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { editor is.kanji {" ほか" *} {"et al." * } if$ } { editor is.kanji {" " * editor #2 "{vv }{ll}" format.name$ * } {" and " * editor #2 "{vv }{ll}" format.name$ * } if$ } if$ } if$ } if$ } FUNCTION {format.book.crossref} { volume empty$ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ title is.kanji {" "} {"In "} if$ } { "Volume" volume tie.or.space.connect " of " * } if$ editor empty$ editor field.or.null author field.or.null = or { key empty$ { series empty$ { "need editor, key, or series for " cite$ * " to crossref " * crossref * warning$ "" * } { series emphasize } if$ } { key * } if$ } { format.crossref.editor * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.incoll.inproc.crossref} { editor empty$ editor field.or.null author field.or.null = or { key empty$ { booktitle empty$ { "need editor, key, or booktitle for " cite$ * " to crossref " * crossref * warning$ "" } { booktitle is.kanji booktitle {"In " booktitle emphasize * } if$ } if$ } { "In " key * } if$ } { title is.kanji {" " format.crossref.editor * } {"In " format.crossref.editor * } if$ } if$ " \cite{" * crossref * "}" * } FUNCTION {article} { %%%% author "author" required.argument title "title" required.argument journal "journal" required.argument year "year" required.argument %%%% jssst volume "volume" number "number" required.and.or.argument pages "pages" required.argument %%%% output.bibitem format.authors ": " * title output crossref missing$ { journal emphasize output % format.volume.number.year.pages output % date is always at the end. (H.N.) format.vol.num.pages output format.date output } { format.article.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {book} { %%%% author "author" editor "editor" required.exclusive.or.argument title "title" required.argument publisher "publisher" required.argument year "year" required.argument optional.series.volume.number.argument %%%% output.bibitem author empty$ { format.editors} { format.authors} if$ ": " * title emphasize output crossref missing$ { output.series.volume.number publisher output address output } { new.block format.book.crossref output.nonnull } if$ format.edition output format.date output new.block note output fin.entry } FUNCTION {booklet} { %%%% title "title" required.argument %%%% jssst author "author" required.argument %%%% output.bibitem format.authors ": " * title output howpublished output address output format.date output new.block note output fin.entry } FUNCTION {inbook} { %%%% author "author" editor "editor" required.exclusive.or.argument title "title" required.argument chapter "chapter" pages "pages" required.and.or.argument publisher "publisher" required.argument year "year" required.argument optional.series.volume.number.argument %%%% output.bibitem author empty$ { format.editors} { format.authors} if$ ": " * title emphasize output crossref missing$ { output.series.volume.number publisher output } { format.chapter.pages output new.block format.book.crossref output.nonnull } if$ format.edition output % format.date output format.chapter.pages output format.date output % date is always at the end. (H.N.) new.block note output fin.entry } FUNCTION {incollection} { %%%% author "author" required.argument title "title" required.argument booktitle "booktitle" required.argument publisher "publisher" required.argument year "year" required.argument optional.series.volume.number.argument %%%% output.bibitem format.authors ": " * title output crossref missing$ { format.in.ed.booktitle output output.series.volume.number publisher output address output format.edition output format.chapter.pages output % date is always at the end. (H.N.) format.date output } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output } if$ % format.chapter.pages output new.block note output fin.entry } FUNCTION {inproceedings} { %%%% author "author" required.argument title "title" required.argument booktitle "booktitle" required.argument year "year" required.argument optional.series.volume.number.argument %%%% output.bibitem format.authors ": " * title output crossref missing$ { format.in.ed.booktitle output output.series.volume.number address output organization output publisher output % format.date output format.pages output format.date output % date is always at the end. (H.N.) } { format.incoll.inproc.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { %%%% title "title" required.argument %%%% jssst author "author" organization "organazaion" required.exclusive.or.argument %%%% output.bibitem author empty$ { organization} { format.authors} if$ ": " * title emphasize output author empty$ 'skip$ { organization output } if$ address output format.edition output format.date output new.block note output fin.entry } FUNCTION {mastersthesis} { %%%% author "author" required.argument title "title" required.argument school "school" required.argument year "year" required.argument %%%% output.bibitem format.authors ": " * title output author empty$ { "Master's thesis" } { author is.kanji { "修士論文" } { "Master's thesis" } if$ } if$ format.thesis.type output.nonnull school output address output format.date output new.block note output fin.entry } FUNCTION {misc} { %%%% %%%% jssst author "author" required.argument title "title" required.argument %%%% output.bibitem format.authors ": " * title output howpublished output format.date output new.block note output fin.entry empty.misc.check } FUNCTION {phdthesis} { %%%% author "author" required.argument title "title" required.argument school "school" required.argument year "year" required.argument %%%% output.bibitem format.authors ": " * title emphasize output author empty$ { "PhD Thesis" } { author is.kanji { "博士論文" } { "PhD Thesis" } if$ } if$ format.thesis.type output.nonnull school output address output format.date output new.block note output fin.entry } FUNCTION {proceedings} { %%%% title "title" required.argument year "year" required.argument optional.series.volume.number.argument %%%% jssst editor "editor" organization "organization" required.exclusive.or.argument %%%% output.bibitem editor empty$ { organization } { format.editors } if$ ": " * title emphasize output output.series.volume.number address output editor empty$ 'skip$ { organization output } if$ publisher output format.date output new.block note output fin.entry } FUNCTION {techreport} { %%%% author "author" required.argument title "title" required.argument institution "institution" required.argument year "year" required.argument %%%% output.bibitem format.authors ": " * title output format.tr.number output.nonnull institution output address output format.date output new.block note output fin.entry } FUNCTION {unpublished} { %%%% author "author" required.argument title "title" required.argument note "note" required.argument %%%% output.bibitem format.authors ": " * title output format.date output new.block note output fin.entry } FUNCTION {default.type} { misc } MACRO {jan} {"January"} MACRO {feb} {"February"} MACRO {mar} {"March"} MACRO {apr} {"April"} MACRO {may} {"May"} MACRO {jun} {"June"} MACRO {jul} {"July"} MACRO {aug} {"August"} MACRO {sep} {"September"} MACRO {oct} {"October"} MACRO {nov} {"November"} MACRO {dec} {"December"} MACRO {acmcs} {"ACM Computing Surveys"} MACRO {acta} {"Acta Informatica"} MACRO {cacm} {"Communications of the ACM"} MACRO {ibmjrd} {"IBM Journal of Research and Development"} MACRO {ibmsj} {"IBM Systems Journal"} MACRO {ieeese} {"IEEE Transactions on Software Engineering"} MACRO {ieeetc} {"IEEE Transactions on Computers"} MACRO {ieeetcad} {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} MACRO {ipl} {"Information Processing Letters"} MACRO {jacm} {"Journal of the ACM"} MACRO {jcss} {"Journal of Computer and System Sciences"} MACRO {scp} {"Science of Computer Programming"} MACRO {sicomp} {"SIAM Journal on Computing"} MACRO {tocs} {"ACM Transactions on Computer Systems"} MACRO {tods} {"ACM Transactions on Database Systems"} MACRO {tog} {"ACM Transactions on Graphics"} MACRO {toms} {"ACM Transactions on Mathematical Software"} MACRO {toois} {"ACM Transactions on Office Information Systems"} MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} MACRO {tcs} {"Theoretical Computer Science"} READ FUNCTION {sortify} { purify$ "l" change.case$ } INTEGERS { len } FUNCTION {chop.word} { 's := 'len := s #1 len substring$ = { s len #1 + global.max$ substring$ } 's if$ } FUNCTION {sort.format.names} { 's := yomi empty$ 'skip$ { yomi 's := } if$ #1 'nameptr := "" s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { nameptr #1 > { " " * } 'skip$ if$ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := nameptr numnames = t "others" = and { "et al" * } { t sortify * } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {sort.format.title} { 't := "A " #2 "An " #3 "The " #4 t chop.word chop.word chop.word sortify #1 global.max$ substring$ } FUNCTION {author.sort} { author empty$ { key empty$ { "to sort, need author or key in " cite$ * warning$ "" } { key sortify } if$ } { author sort.format.names } if$ } FUNCTION {author.editor.sort} { author empty$ { editor empty$ { key empty$ { "to sort, need author, editor, or key in " cite$ * warning$ "" } { key sortify } if$ } { editor sort.format.names } if$ } { author sort.format.names } if$ } FUNCTION {author.organization.sort} { author empty$ { organization empty$ { key empty$ { "to sort, need author, organization, or key in " cite$ * warning$ "" } { key sortify } if$ } { "The " #4 organization chop.word sortify } if$ } { author sort.format.names } if$ } FUNCTION {editor.organization.sort} { editor empty$ { organization empty$ { key empty$ { "to sort, need editor, organization, or key in " cite$ * warning$ "" } { key sortify } if$ } { "The " #4 organization chop.word sortify } if$ } { editor sort.format.names } if$ } FUNCTION {presort} { type$ "book" = type$ "inbook" = or 'author.editor.sort { type$ "proceedings" = 'editor.organization.sort { type$ "manual" = 'author.organization.sort 'author.sort if$ } if$ } if$ " " * year field.or.null sortify * " " * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {presort} SORT STRINGS { longest.label } INTEGERS { number.label longest.label.width } FUNCTION {initialize.longest.label} { "" 'longest.label := #1 'number.label := #0 'longest.label.width := } FUNCTION {longest.label.pass} { number.label int.to.str$ 'label := number.label #1 + 'number.label := label width$ longest.label.width > { label 'longest.label := label width$ 'longest.label.width := } 'skip$ if$ } EXECUTE {initialize.longest.label} ITERATE {longest.label.pass} FUNCTION {begin.bib} { preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ } EXECUTE {begin.bib} EXECUTE {init.state.consts} ITERATE {call.type$} FUNCTION {end.bib} { newline$ "\end{thebibliography}" write$ newline$ } EXECUTE {end.bib} \ No newline at end of file diff -r 000000000000 -r 58c6244a184d Paper/ipsjunsrt.bst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/ipsjunsrt.bst Thu Nov 15 19:20:01 2012 +0900 @@ -0,0 +1,1 @@ +% ipsjsort.bst nakasima@kuis.kyoto-u.ac.jp (Hiroshi Nakashima) % jssst.bst tomura@etl.go.jp (Satoru Tomura) % BibTeX standard bibliography style `jplain' % version 0.10 for JBibTeX versions 0.10 or later, JLaTeX version 2.09. % by Shouichi Matsui, matsui@denken.junet ENTRY { address author booktitle chapter edition editor howpublished institution journal key month note number organization pages publisher school series title type volume year yomi } {} { label } INTEGERS { output.state before.all mid.sentence after.sentence after.block } INTEGERS { before.year } FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := #4 'before.year := % year doesn't follows "," nor ".". (H.N.) } STRINGS { s t } FUNCTION {output.nonnull} { 's := output.state mid.sentence = { ", " * write$ } { output.state after.block = { add.period$ write$ newline$ "\newblock " write$ } { output.state before.all = 'write$ { output.state before.year = % year doesn't follows "," nor ".". (H.N.) { " " * write$ } { add.period$ " " * write$ } if$ } if$ } if$ mid.sentence 'output.state := } if$ s } FUNCTION {output} { duplicate$ empty$ 'pop$ 'output.nonnull if$ } FUNCTION {required.argument} { 't := empty$ {"Missing required argument " t * " in " * cite$ * warning$} 'skip$ if$ } FUNCTION {required.exclusive.or.argument} { 't := empty$ { 's := empty$ { t " or " * s * " is missing in " * cite$ * warning$} 'skip$ if$ } { 's := empty$ 'skip$ { "You can use only one of " t * " and " * s * " in " * cite$ * warning$} if$ } if$ } FUNCTION {required.and.or.argument} { 't := empty$ { 's := empty$ { "there's no " t * " and/or " * s * cite$ * warning$ } 'skip$ if$ } { pop$ pop$ } if$ } FUNCTION {optional.series.volume.number.argument} { series empty$ { volume empty$ { number empty$ 'skip$ { "there's a number but no series in " cite$ * warning$ } if$ } { number empty$ { "there's a volume but no series in " cite$ * warning$ } { "you can use only one of volume and number in " cite$ * warning$} if$ } if$ } { volume empty$ { number empty$ { "there's a series but neither volume nor number in " cite$ * warning$ } 'skip$ if$ } { number empty$ 'skip$ { "you can use only one of volume and number in " cite$ * warning$ } if$ } if$ } if$ } FUNCTION {output.bibitem} { newline$ "\bibitem{" write$ cite$ write$ "}" write$ newline$ before.all 'output.state := } FUNCTION {fin.entry} { add.period$ write$ newline$ } FUNCTION {new.block} { output.state before.all = 'skip$ { after.block 'output.state := } if$ } FUNCTION {new.sentence} { output.state after.block = 'skip$ { output.state before.all = 'skip$ { after.sentence 'output.state := } if$ } if$ } FUNCTION {not} { { #0 } { #1 } if$ } FUNCTION {and} { 'skip$ { pop$ #0 } if$ } FUNCTION {or} { { pop$ #1 } 'skip$ if$ } FUNCTION {new.block.checka} { empty$ 'skip$ 'new.block if$ } FUNCTION {new.block.checkb} { empty$ swap$ empty$ and 'skip$ 'new.block if$ } FUNCTION {new.sentence.checka} { empty$ 'skip$ 'new.sentence if$ } FUNCTION {new.sentence.checkb} { empty$ swap$ empty$ and 'skip$ 'new.sentence if$ } FUNCTION {field.or.null} { duplicate$ empty$ { pop$ "" } 'skip$ if$ } FUNCTION {is.kanji} %%%{ #1 text.prefix$ chr.to.int$ #127 > } %%%{ #1 #1 substring$ chr.to.int$ #127 > } %%%{ purify$ #1 text.prefix$ chr.to.int$ #127 >} { is.kanji.str$ } FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } { duplicate$ is.kanji 'skip$ { "{\em " swap$ * "\/}" * } if$ } if$ } INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr s nameptr "{ll}" format.name$ is.kanji { "{ff}{vv}{ll}" } { "{vv }{ll}{, jj}{, f.}" } if$ format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { % numnames #2 > % { "," * } % 'skip$ % if$ % Don't put "," before "and" (H.N.) % % numnames #3 < % { t is.kanji % {"," * "" *} 'skip$ if$ % } % 'skip$ % if$ % Don't put "," before "ほか" (H.N.) % t "others" = { s is.kanji {"ほか" * } {" et al." * } if$ } { s is.kanji % {" " * t * } {", " * t * } % put "," here for Kanji (H.N.) {" and " * t * } if$ } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {format.authors} { author empty$ { "" } { author format.names } if$ } FUNCTION {format.editors} { editor empty$ { "" } { editor format.names editor num.names$ #1 > { editor is.kanji {"(編)" * } %%{", editors" * } if$ {"(eds.)" *} if$ } { editor is.kanji {"(編)" *} %%{", editor" * } if$ {"(ed.)" *} if$ } if$ } if$ } FUNCTION {n.dashify} { 't := "" { t empty$ not } { t #1 #1 substring$ "-" = { t #1 #2 substring$ "--" = not { "--" * t #2 global.max$ substring$ 't := } { { t #1 #1 substring$ "-" = } { "-" * t #2 global.max$ substring$ 't := } while$ } if$ } { t #1 #1 substring$ * t #2 global.max$ substring$ 't := } if$ } while$ } FUNCTION {format.date} { before.year 'output.state := % year doesn't follows "," nor ".". (H.N.) year empty$ { month empty$ { "" } { "there's a month but no year in " cite$ * warning$ % month % no worth to put month only. (H.N.) "" } if$ } % { month empty$ % 'year % { month " " * year * } % if$ % } % month is not printed even if it is given. (H.N.) % { "(" year ")" * * } % year is surrounded by parens. (H.N.) if$ } FUNCTION {tie.or.space.connect} { duplicate$ text.length$ #3 < { "~" } { "\ " } if$ swap$ * * } FUNCTION {output.volume} { volume empty$ 'skip$ { "Vol.~" volume * output} if$ } FUNCTION {output.number} { number empty$ 'skip$ { "No.~" number * output} if$ } FUNCTION {output.series.volume.number} { series empty$ { output.volume output.number } { series is.kanji volume empty$ number empty$ or and { series " " * volume * number * output} { series output output.volume output.number} if$ } if$ } FUNCTION {format.edition} { edition empty$ { "" } { output.state mid.sentence = { edition "l" change.case$ " edition" * } { edition "t" change.case$ " edition" * } if$ } if$ } INTEGERS { multiresult } FUNCTION {multi.page.check} { 't := #0 'multiresult := { multiresult not t empty$ not and } { t #1 #1 substring$ duplicate$ "-" = swap$ duplicate$ "," = swap$ "+" = or or { #1 'multiresult := } { t #2 global.max$ substring$ 't := } if$ } while$ multiresult } FUNCTION {format.pages} { pages empty$ { "" } { pages multi.page.check % { "pp.~" pages n.dashify tie.or.space.connect } % { "pp.~" pages tie.or.space.connect } % '~' might be add by tie.or.space.connect. (H.N.) % "p." is probably better for single page reference (H.N.) { "pp." pages n.dashify tie.or.space.connect } { "p." pages tie.or.space.connect } if$ } if$ } % This function is replaced by format.vol.num.pages (H.N.) %FUNCTION {format.volume.number.year.pages} %{ volume empty$ % { number empty$ % { year empty$ % { "" } % { "(" year * ")" * } % if$} % { year empty$ % { "No.~" number * } % { "No.~" number * "(" * year * ")" * } % if$} % if$} % { number empty$ % { year empty$ % { "Vol.~" volume * } % { "Vol.~" volume * "(" * year * ")" * } % if$} % { year empty$ % {"Vol.~" volume * "," * "No.~" * number * } % {"Vol.~" volume * "," * "No.~" * number * "(" * year * ")" * } % if$} % if$} % if$ % pages empty$ % 'skip$ % { duplicate$ empty$ % { pop$ format.pages } % { "," * " pp.~" * pages n.dashify * } % if$ % } % if$ %} FUNCTION {format.vol.num.pages} { volume empty$ { ""} { " Vol.~" volume * } if$ number empty$ 'skip$ { volume empty$ { "there's a number but no volume in " cite$ * warning$ } { "," *} if$ " No.~" number * * } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ format.pages } { ", " * format.pages * } % tieing "pp." and the first page will be too hard for a narrow column. (H.N.) if$ } if$ } FUNCTION {format.chapter.pages} { chapter empty$ 'format.pages { type empty$ { "chapter" chapter tie.or.space.connect } { type is.kanji { chapter type tie.or.space.connect } { type "l" change.case$ chapter tie.or.space.connect } if$ } if$ pages empty$ 'skip$ { ", " * format.pages * } if$ } if$ } FUNCTION {format.in.ed.booktitle} { booktitle empty$ { "" } { editor empty$ { booktitle is.kanji { " " booktitle emphasize * } { " " booktitle emphasize * } if$ } { booktitle is.kanji % { booktitle emphasize "(" * format.editors * ")" *} % { booktitle emphasize "(" * format.editors * ")" *} % awful without leading space (H.N.) { booktitle emphasize " (" * format.editors * ")" *} { booktitle emphasize " (" * format.editors * ")" *} if$ } if$ } if$ } FUNCTION {empty.misc.check} { author empty$ title empty$ howpublished empty$ month empty$ year empty$ note empty$ and and and and and key empty$ not and { "all relevant fields are empty in " cite$ * warning$ } 'skip$ if$ } FUNCTION {format.thesis.type} { type empty$ 'skip$ { pop$ type "t" change.case$ } if$ } FUNCTION {format.tr.number} { type empty$ { title empty$ { "Technical Report" } { title is.kanji { "技術報告" } { "Technical Report" } if$ } if$ } {type} if$ number empty$ { "t" change.case$ } { number tie.or.space.connect } if$ } FUNCTION {format.article.crossref} { key empty$ { journal empty$ { "need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } { "In " journal emphasize * } if$ } { "In " key * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.crossref.editor} { editor #1 "{vv }{ll}" format.name$ editor num.names$ duplicate$ #2 > { editor is.kanji {pop$ " ほか" *} {pop$ " et al." * } if$ } { #2 < 'skip$ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { editor is.kanji {" ほか" *} {"et al." * } if$ } { editor is.kanji {" " * editor #2 "{vv }{ll}" format.name$ * } {" and " * editor #2 "{vv }{ll}" format.name$ * } if$ } if$ } if$ } if$ } FUNCTION {format.book.crossref} { volume empty$ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ title is.kanji {" "} {"In "} if$ } { "Volume" volume tie.or.space.connect " of " * } if$ editor empty$ editor field.or.null author field.or.null = or { key empty$ { series empty$ { "need editor, key, or series for " cite$ * " to crossref " * crossref * warning$ "" * } { series emphasize } if$ } { key * } if$ } { format.crossref.editor * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.incoll.inproc.crossref} { editor empty$ editor field.or.null author field.or.null = or { key empty$ { booktitle empty$ { "need editor, key, or booktitle for " cite$ * " to crossref " * crossref * warning$ "" } { booktitle is.kanji booktitle {"In " booktitle emphasize * } if$ } if$ } { "In " key * } if$ } { title is.kanji {" " format.crossref.editor * } {"In " format.crossref.editor * } if$ } if$ " \cite{" * crossref * "}" * } FUNCTION {article} { %%%% author "author" required.argument title "title" required.argument journal "journal" required.argument year "year" required.argument %%%% jssst volume "volume" number "number" required.and.or.argument pages "pages" required.argument %%%% output.bibitem format.authors ": " * title output crossref missing$ { journal emphasize output % format.volume.number.year.pages output % date is always at the end. (H.N.) format.vol.num.pages output format.date output } { format.article.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {book} { %%%% author "author" editor "editor" required.exclusive.or.argument title "title" required.argument publisher "publisher" required.argument year "year" required.argument optional.series.volume.number.argument %%%% output.bibitem author empty$ { format.editors} { format.authors} if$ ": " * title emphasize output crossref missing$ { output.series.volume.number publisher output address output } { new.block format.book.crossref output.nonnull } if$ format.edition output format.date output new.block note output fin.entry } FUNCTION {booklet} { %%%% title "title" required.argument %%%% jssst author "author" required.argument %%%% output.bibitem format.authors ": " * title output howpublished output address output format.date output new.block note output fin.entry } FUNCTION {inbook} { %%%% author "author" editor "editor" required.exclusive.or.argument title "title" required.argument chapter "chapter" pages "pages" required.and.or.argument publisher "publisher" required.argument year "year" required.argument optional.series.volume.number.argument %%%% output.bibitem author empty$ { format.editors} { format.authors} if$ ": " * title emphasize output crossref missing$ { output.series.volume.number publisher output } { format.chapter.pages output new.block format.book.crossref output.nonnull } if$ format.edition output % format.date output format.chapter.pages output format.date output % date is always at the end. (H.N.) new.block note output fin.entry } FUNCTION {incollection} { %%%% author "author" required.argument title "title" required.argument booktitle "booktitle" required.argument publisher "publisher" required.argument year "year" required.argument optional.series.volume.number.argument %%%% output.bibitem format.authors ": " * title output crossref missing$ { format.in.ed.booktitle output output.series.volume.number publisher output address output format.edition output format.chapter.pages output % date is always at the end. (H.N.) format.date output } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output } if$ % format.chapter.pages output new.block note output fin.entry } FUNCTION {inproceedings} { %%%% author "author" required.argument title "title" required.argument booktitle "booktitle" required.argument year "year" required.argument optional.series.volume.number.argument %%%% output.bibitem format.authors ": " * title output crossref missing$ { format.in.ed.booktitle output output.series.volume.number address output organization output publisher output % format.date output format.pages output format.date output % date is always at the end. (H.N.) } { format.incoll.inproc.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { %%%% title "title" required.argument %%%% jssst author "author" organization "organazaion" required.exclusive.or.argument %%%% output.bibitem author empty$ { organization} { format.authors} if$ ": " * title emphasize output author empty$ 'skip$ { organization output } if$ address output format.edition output format.date output new.block note output fin.entry } FUNCTION {mastersthesis} { %%%% author "author" required.argument title "title" required.argument school "school" required.argument year "year" required.argument %%%% output.bibitem format.authors ": " * title output author empty$ { "Master's thesis" } { author is.kanji { "修士論文" } { "Master's thesis" } if$ } if$ format.thesis.type output.nonnull school output address output format.date output new.block note output fin.entry } FUNCTION {misc} { %%%% %%%% jssst author "author" required.argument title "title" required.argument %%%% output.bibitem format.authors ": " * title output howpublished output format.date output new.block note output fin.entry empty.misc.check } FUNCTION {phdthesis} { %%%% author "author" required.argument title "title" required.argument school "school" required.argument year "year" required.argument %%%% output.bibitem format.authors ": " * title emphasize output author empty$ { "PhD Thesis" } { author is.kanji { "博士論文" } { "PhD Thesis" } if$ } if$ format.thesis.type output.nonnull school output address output format.date output new.block note output fin.entry } FUNCTION {proceedings} { %%%% title "title" required.argument year "year" required.argument optional.series.volume.number.argument %%%% jssst editor "editor" organization "organization" required.exclusive.or.argument %%%% output.bibitem editor empty$ { organization } { format.editors } if$ ": " * title emphasize output output.series.volume.number address output editor empty$ 'skip$ { organization output } if$ publisher output format.date output new.block note output fin.entry } FUNCTION {techreport} { %%%% author "author" required.argument title "title" required.argument institution "institution" required.argument year "year" required.argument %%%% output.bibitem format.authors ": " * title output format.tr.number output.nonnull institution output address output format.date output new.block note output fin.entry } FUNCTION {unpublished} { %%%% author "author" required.argument title "title" required.argument note "note" required.argument %%%% output.bibitem format.authors ": " * title output format.date output new.block note output fin.entry } FUNCTION {default.type} { misc } MACRO {jan} {"January"} MACRO {feb} {"February"} MACRO {mar} {"March"} MACRO {apr} {"April"} MACRO {may} {"May"} MACRO {jun} {"June"} MACRO {jul} {"July"} MACRO {aug} {"August"} MACRO {sep} {"September"} MACRO {oct} {"October"} MACRO {nov} {"November"} MACRO {dec} {"December"} MACRO {acmcs} {"ACM Computing Surveys"} MACRO {acta} {"Acta Informatica"} MACRO {cacm} {"Communications of the ACM"} MACRO {ibmjrd} {"IBM Journal of Research and Development"} MACRO {ibmsj} {"IBM Systems Journal"} MACRO {ieeese} {"IEEE Transactions on Software Engineering"} MACRO {ieeetc} {"IEEE Transactions on Computers"} MACRO {ieeetcad} {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} MACRO {ipl} {"Information Processing Letters"} MACRO {jacm} {"Journal of the ACM"} MACRO {jcss} {"Journal of Computer and System Sciences"} MACRO {scp} {"Science of Computer Programming"} MACRO {sicomp} {"SIAM Journal on Computing"} MACRO {tocs} {"ACM Transactions on Computer Systems"} MACRO {tods} {"ACM Transactions on Database Systems"} MACRO {tog} {"ACM Transactions on Graphics"} MACRO {toms} {"ACM Transactions on Mathematical Software"} MACRO {toois} {"ACM Transactions on Office Information Systems"} MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} MACRO {tcs} {"Theoretical Computer Science"} READ STRINGS { longest.label } INTEGERS { number.label longest.label.width } FUNCTION {initialize.longest.label} { "" 'longest.label := #1 'number.label := #0 'longest.label.width := } FUNCTION {longest.label.pass} { number.label int.to.str$ 'label := number.label #1 + 'number.label := label width$ longest.label.width > { label 'longest.label := label width$ 'longest.label.width := } 'skip$ if$ } EXECUTE {initialize.longest.label} ITERATE {longest.label.pass} FUNCTION {begin.bib} { preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ } EXECUTE {begin.bib} EXECUTE {init.state.consts} ITERATE {call.type$} FUNCTION {end.bib} { newline$ "\end{thebibliography}" write$ newline$ } EXECUTE {end.bib} \ No newline at end of file diff -r 000000000000 -r 58c6244a184d Paper/sugi-prosym.aux --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/sugi-prosym.aux Thu Nov 15 19:20:01 2012 +0900 @@ -0,0 +1,4 @@ +\relax +\newlabel{sec:ITEM}{{2}{1}} +\newlabel{sec:Enum}{{3}{3}} +\newlabel{sec:item}{{3}{3}} diff -r 000000000000 -r 58c6244a184d Paper/sugi-prosym.dvi Binary file Paper/sugi-prosym.dvi has changed diff -r 000000000000 -r 58c6244a184d Paper/sugi-prosym.log --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/sugi-prosym.log Thu Nov 15 19:20:01 2012 +0900 @@ -0,0 +1,179 @@ +This is pTeX, Version 3.141592-p3.1.10 (sjis) (Web2C 7.5.4) (format=platex 2009.8.28) 15 NOV 2012 19:15 +**sugi-prosym.tex +(./sugi-prosym.tex +pLaTeX2e <2006/11/10>+0 (based on LaTeX2e <2003/12/01> patch level 0) +(./ipsjpapers.cls +Document Class: ipsjpapers 2001/05/01 ver 2.08 +(./ipsjpapers.sty +\old@latex@skip=\skip41 +\@Q=\dimen118 +\jfsize=\count81 +\jspaceskip=\dimen119 +LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <10> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 553. +LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <10> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 553. +\@mojihaba=\dimen120 +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 570. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 570. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 570. +\@abstractbox=\box41 +\@titlewidth=\dimen121 +\@eabstractbox=\box42 +\mkt@prevdepth=\dimen122 +\mkt@titlebox=\box43 +\mkt@cnta=\count82 +\mkt@cntb=\count83 +\mkt@sname=\count84 +\mkt@gname=\count85 +\mkt@boxa=\box44 +\mkt@namewidth=\dimen123 +\c@affi@footnote=\count86 +\c@volpageoffset=\count87 +\c@volume=\count88 +\c@number=\count89 +\c@year=\count90 +\@leftcolumnfootnote=\box45 +\@rightcolumnfootnote=\box46 +\opt@baselineskip=\skip42 +\bio@picbox=\box47 +\bio@colht=\dimen124 +\bio@splitheight=\dimen125 +\bio@maxgap=\dimen126 +\bio@lastgap=\dimen127 +\bio@th=\dimen128 +\bio@lhA=\dimen129 +\bio@hA=\dimen130 +\bio@hB=\dimen131 +\bio@lh=\dimen132 +\bio@rh=\dimen133 +\bio@tempdim=\dimen134 +\bio@pbox=\insert233 + (./ipsjcommon.sty +\c@section=\count91 +\c@subsection=\count92 +\c@subsubsection=\count93 +\c@paragraph=\count94 +\c@subparagraph=\count95 +\bib@adjustheight=\dimen135 +\c@figure=\count96 +\c@table=\count97 +\cap@linewidth=\dimen136 +\cap@hsize=\dimen137 +\cap@prevgraf=\count98 +\cap@box=\box48 +\PF@fnotectr=\count99 +\PF@page=\count100 +\adj@boxa=\box49 +\adj@boxb=\box50 +\adj@height=\dimen138 +\adj@deadcycle=\count101 +))) +No file sugi-prosym.aux. +\openout1 = `sugi-prosym.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for JY1/mc/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for JT1/mc/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <14.4> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 66. +LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <14.4> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 66. + +Class ipsjpapers Warning: \title is too wide. Break line(s) by \\ on input line + 66. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 66. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 66. +LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <12> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 66. +LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <12> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 66. + +LaTeX Font Warning: Font shape `JT1/mc/m/sc' undefined +(Font) using `JT1/mc/m/n' instead on input line 66. + + +LaTeX Font Warning: Font shape `JY1/mc/m/sc' undefined +(Font) using `JY1/mc/m/n' instead on input line 66. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 66. +LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <9> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 80. +LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <9> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 80. +[1 + + +] +Overfull \hbox (1.21362pt too wide) in paragraph at lines 100--101 +[]\OT1/cmtt/m/n/9 void peek(Receiver receiver, String key, + [] + + +Overfull \hbox (1.21362pt too wide) in paragraph at lines 101--102 +[]\OT1/cmtt/m/n/9 void take(Receiver receiver, String key, + [] + + +LaTeX Warning: Reference `fig:put' on page 2 undefined on input line 108. + + +LaTeX Warning: Reference `fig:update' on page 2 undefined on input line 114. + + +LaTeX Warning: Reference `fig:peek' on page 2 undefined on input line 120. + + +LaTeX Warning: Reference `fig:take' on page 2 undefined on input line 127. + + +Overfull \hbox (10.66351pt too wide) in paragraph at lines 146--147 +[]\OT1/cmtt/m/n/9 void setKey(String managerKey, String key, + [] + + +Overfull \hbox (10.66351pt too wide) in paragraph at lines 155--156 +[]\OT1/cmtt/m/n/9 void update(String managerKey, String key, + [] + +[2] [3] (./sugi-prosym.aux) + +LaTeX Font Warning: Some font shapes were not available, defaults substituted. + + +LaTeX Warning: There were undefined references. + + +LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. + + ) +Here is how much of TeX's memory you used: + 759 strings out of 94681 + 8537 string characters out of 1174652 + 63756 words of memory out of 1500000 + 4109 multiletter control sequences out of 10000+50000 + 17294 words of font info for 67 fonts, out of 1200000 for 2000 + 566 hyphenation exceptions out of 8191 + 30i,10n,22p,353b,380s stack positions out of 5000i,500n,6000p,200000b,5000s + +Output written on sugi-prosym.dvi (3 pages, 18720 bytes). diff -r 000000000000 -r 58c6244a184d Paper/sugi-prosym.pdf Binary file Paper/sugi-prosym.pdf has changed diff -r 000000000000 -r 58c6244a184d Paper/sugi-prosym.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Paper/sugi-prosym.tex Thu Nov 15 19:20:01 2012 +0900 @@ -0,0 +1,196 @@ +\documentclass[private]{ipsjpapers} +% 巻数,号数などの設定 +%\setcounter{巻数}{41} +%\setcounter{号数}{6} +%\setcounter{volpageoffset}{1234} +%\受付{12}{2}{4} +%\採録{12}{5}{11} + +% ユーザが定義したマクロなど. +\makeatletter +\let\@ARRAY\@array \def\@array{\def\<{\inhibitglue}\@ARRAY} +\def\<{\(\langle\)} +\def\>{\(\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[Code Segment と Data Segment によるプログラミング手法]% +{Code Segment と Data Segment によるプログラミング手法 } +% 英文表題 +\etitle{How to Programming with Code Segment and Data Segment} +% 所属ラベルの定義 +\affilabel{URYUKYU}{琉球大学\\University of the Ryukyu} +% 和文著者名 +\author{河野 真治\affiref{URYUKYU}\member{19841765}\and + 杉本 優\affiref{URYUKYU}\nomember} + + +% 英文著者名 +\eauthor{Shinji Kono\affiref{URYUKYU}\and +Yu Sugimoto\affiref{URYUKYU}} + + +% 連絡先(投稿時に必要.製版用では無視される.) +\contact{杉本 優\\ + 〒903-0213 沖縄県中頭郡西原町字千原1番地\\ + 琉球大学 情報工学科\\ + TEL: (098)895-8723\qquad FAX: (098)895-8727\\ + email: sugi@cr.ie.u-ryukyu.ac.jp} + +% 和文概要 +\begin{abstract} +本研究室では分散プログラミングにおいて、データをData Segment、タスクをCode Segmentという単位に分割して記述する方法を提唱している。 +しかし、前述した方法をプログラマーが一から記述することは大変である。そこで、本研究室で分散ネットフレームワーク Alice を作成した。本論文では実際にAliceを用いてCode Segment と Data Segment によるプログラミング手法の例を示す。 +\end{abstract} +% 英文概要 +\begin{eabstract} +\end{eabstract} + +% 表題などの出力 +\maketitle + +% }{ + +% 本文はここから始まる +\section{歴史的経緯} +本研究室では、並列タスク管理フレームワークCeriumの管理を行なっているが、その設計と実装を行うにあたり、並列プログラミングと分散プログラミング +は本質的には同じことを行なっていることが分かった。特にヘテロジーニアスマルチコアであり、ローカルストアをそれぞれのコアが持っているというCell の特異な環境は、分散プログラミング環境と告示している。それらを踏まえて、Ceriumのタスク管理手法を分散に応用できないかと考えた。 + + +Ceriumに置いても、タスクとそれの入出力データの取り扱いは難しい課題である。データを操作するAPIを考えて、タスクを自然に記述し、効率良く実行する方法を考えてきた。そこで考えられた手法が、データをDataSegment、タスクをCodeSegmentという単位に分割して記述する方法である。 +% }{ + +\section{分散ネットフレームワークAlice}\label{sec:ITEM} +\subsection{Aliceとは} +Aliceは本研究室の卒業生である赤嶺一樹氏が、本研究室で開発を行なっている並列タスク管理フレームワーク Cerium と先行研究である Federated Linda の開発を通して得られた知見を生かされている。 +Federated Linda の設計はシングルスレッドで行われている。しかし、近年ではマルチコアのマシンが主流となっている。将来的にはメニーコアのマシンが主流になってくると考えられるそのような背景を踏まえてAliceはマルチスレッド向けに設計されている。 + +AliceはData SegmentとCode Segmentという単位でデータと処理を細かく分割し、それぞれの依存関係を記述して分散プログラムを作成する。また、他のマシンとの接続トポロジーの構成の機能も有しているのでユーザーはトポロジー構成後の処理を記述するだけでよい。 +% }{ +\subsection{Data Segment} +AliceではData Semgnetをデータベースとして利用している。KeyValueStoreで実装されており、キーごとにリストを持っている。Data Segment APIを用いることで、リストにデータを追加、削除を適宜行うことができる。 + +\subsubsection{Data Segment Manager} +大量のData Segmentを管理するのがData Segment Managerである。Data Segment Managerは文字列のキーでData Segmentを整理する。各キーごとにキュー構造を持っている。それらをData Segment APIを用いて操作する。 +データの読み出し("peek" または "take")時に、希望のデータがなかった場合、ブロッキングを行う機能を持つ。 +しかし、ブロッキングといってもそこで同期するわけではない。 +非同期でデータを通信する。 +そのため、 "peek" と "take" は他の API とは違い、レスポンスが発生する。 +\subsubsection{Data Segment API} +表番号)が用意されているData Segment APIである。これらを用いてデータの送受信を行う。 +\begin{itemize} +\item {\ttfamily void put(String key, Value val)} +\item {\ttfamily void update(String key, Value val)} +\item {\ttfamily void peek(Receiver receiver, String key, int id)} +\item {\ttfamily void take(Receiver receiver, String key, int id)} +\end{itemize} + +\subsubsection*{"put"} +"put" はデータを追加するための API である。 + +"put" は受け取ったデータ val を Data Segment 内のキューに対してエンキューする。 +この時、キーごとに重複しない連番の ID を受け取った順に振る。(図 \ref{fig:put}) +\subsubsection*{"update"} +"update" はデータを置き換えるための API である。 + +"update" はキューの先頭にあるデータをひとつだけ削除する。 +その後は "put" と同じく、 受け取ったデータ val を Data Segment 内のキューに対してエンキューする。 +この時、キーごとに重複しない連番の ID を受け取った順に振る。(図 \ref{fig:update}) +\subsubsection*{"peek"} +"peek" はデータを読み込むための API である。 + +"peek" は前回読み込んだデータの id を引数で指定する。省略した場合は、 0 が id として渡される。 +id よりも値の大きい id のデータがキューに含まれていれば、そのデータを receiver に返す。 +もし id 以下のデータしか無いならば、データの更新が前回の "peek" 発行時から更新が無いものと考え、リストに格納されて保留される。(図 \ref{fig:peek}) + +"take" や "update" によりデータの更新があれば、 "peek" が直ちに実行される。 +\subsubsection*{"take"} +"take" もデータを読み込むための API である。 +基本的な id に関する部分は "peek" と同じである。 + +"peek" との決定的な違いは、読み込まれたデータは Data Segment 内のキューから取り除かれるということである。(図 \ref{fig:take}) + + +\subsection{Code Segment} +Code Segmentはタスクのことである。Code Segmentをユーザーが記述するときに、Code Segment 内で使用するData Segment を記述し、依存関係を作る。依存関係により、実行される順番が一意に決まる。実際に使用するData Segment はCode Segmentの入出力に相当する。それぞれ、Input Data Segment、Output Data Segmentとする。 +\subsubsection{Code Segmentの実行方法} +Code Semgnetを実行するためにはStart Code SegmentというCode Segmentを実行させる必要がある。 +Start Code SegmentはどのData Segmentにも依存しない。つまりInput Data Segmentを持たない。このCode Segmentをmainメソッド内でnewし、executeメソッドを呼ぶことで実行を開始させることができる。 + + +\subsubsection{Code Segmentの記述方法} +Code Segmentをユーザーが記述する際にはCodeSegmentを継承して記述する。そのCodeSegmentはInputDataSegmentManagerとOutputDataSegmentManagerを利用することができる。 +\subsubsection*{InputDataSegmentManager} +InputDataSegmentManagerはCode Segmentのidsというフィールドを用いてアクセスする。 +\begin{itemize} +\item {\ttfamily Receiver create(CommandType type)} +\end{itemize} +createでコマンドが実行された際に取得されるData Segmentが格納される受け皿を作る。引数にはCommandTypeが取られ、指定できるCommandTypeはPEEKまたはTAKEである。 +\begin{itemize} +\item {\ttfamily void setKey(String managerKey, String key, int id)} +\end{itemize} +setKeyメソッドにより、どこのData Segmentのあるkeyに対してpeekまたはtakeコマンドを実行させるかを指定することができる。 +コマンドの結果がレスポンスとして届き次第Code Segmentは実行される。 +\subsubsection*{OutputDataSegmentManager} +OutputDataSegmentManagerはCode Segmentのodsというフィールドを用いてアクセスする。 +OutPutDataSegmentManagerは"put"または"update"を実行することができる。 +\begin{itemize} +\item {\ttfamily void put(String managerKey, String key, \\ Value val)} +\item {\ttfamily void update(String managerKey, String key, Value val)} +\end{itemize} + +\subsection{Topology Manager} +TopologyManagerはAlice同士の接続トポロジーを管理する。TopologyManager関連の通信処理はCode Segmentで実装してある。 +TopologyManagerはトポロジーファイルを読み込み、参加を表明したクライアント(以下、Topology Node)に接続するべきクライアントのIPアドレスやポート番号、接続名を送り、トポロジーファイルに記述された通りにトポロジーを作成する。 + +\subsection{Topology Managerの設定ファイル} +Topology Managerはトポロジーファイルを読み込むが、トポロジーファイル自体はDOT Languageという言語で記述される。 +DOT Languageとはプレーンテキストを用いて、データ構造としてのグラフを表現するための、データ記述言語の一種である。このDOT Languageのグラフを利用して、クライアント間の接続を表現する。DOT Languageファイルはdotコマンドを用いて、グラフの画像ファイルを出力することができるので、記述したトポロジーが正しいことを可視化して確認することができる。 + +クライアント間の接続にはlabelを用いて名前が割り振られており、この接続名を用いてユーザーはData Segment Managerにアクセスすることができる。 +前述したReceiver にsetKeyを行う際、odsでputまたはupdateする際の引数のmanagerKeyがこれにあたる。 + +\subsection{Topology Managerの使用方法} +Topology Nodeを起動する際にコマンドライン引数としてTopology ManagerのIPアドレスとポート番号を指定をする。 +そしてmain関数内でTopologyNodeをnewを行えば良い。 +TopologyNodeの第一引数は Alice デーモンの設定オブジェクト、第二引数はStart Code Segmentである。 +ここで指定した、Start Code Segmentがトポロジーが完成した後実行される。 + +% }{ +\section{ゲームの例題}\label{sec:Enum}\label{sec:item} +\subsection{水族館} +今回作成した例題は水族館である。複数のクライアントのディスプレイを複数の魚が移動していくものである。魚は画面の端まで移動すると自分の画面上からは消え、別のクライアントの画面の端から魚が出てくる。また、魚のうち一匹はクライアントが直接操作することができる。トポロジーはTopologyManagerによりツリー状に構成してある。 +\subsection{データの伝搬} + +\begin{enumerate} +\item ユーザーが魚を操作するまたはCode Segmentにより魚の座標が更新される。 +\item 画面に表示させるためのSetLocation (Code Segment)が実行され実際に魚のオブジェクトにセットされ画面に反映される。 +\item Update(Code Segment)にFishPosition(魚の座標データ)が渡される。 +\item Updateにlist(送信者リスト)が渡される。 +\item Updateが実行され、listを元にデータが送信される。ただし、この時にFishPositionには送信元情報が付加されているので、送信元には送信されない。 +\item 各clientで2 - 4が実行される。 +\end{enumerate} + +\section{評価} + + +\section{まとめと今後の課題} + + +\end{document}