Re: 参考文献を目次に

名前: 森本
日時: 2002-02-02 01:16:52
IPアドレス: 63.51.88.*

>>6110 修士論文を書いていた頃に,同じようなことを実現したことがありますので, 整理してみました。よろしければ,お使いください。 何かあったら,またお知らせください。 (1) ひとつご確認をお願いしたいのは,文書の先頭に \documentclass[a4j]{jbook} のような行をお書きのはずですが,私の方法は,ここが \documentclass[a4j]{jbook} である場合(いわゆる book クラスの系列)には恐らく使えると思いますが, \documentclass[a4j]{jreport} \documentclass[a4j]{jarticle} \documentstyle.......... などの場合には残念ながら対応できません。 (その場合,どなたか詳しい方がいらっしゃったら,ご対応をお願いします) (2) 以下の部分「ここから」の行から「ここまで」の行までをコピーし, とりあえず test.sty のファイル名で,保存してください。 そして, \begin{document} の直前に, \usepackage{test} という行を追加します。ちょっと長いですが,我慢してコピー&ペースト してください。 % -------- ここから -------- % % 章見出しを出力します。 % |secnumdepth| が $-1$ より大きく, % |\@mainmatter| が真(|book| クラスの場合)のとき,章番号を出力します。 % \def\@chapter[#1]#2{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter \refstepcounter{chapter}% \typeout{\@chapapp\thechapter\@chappos}% \addcontentsline{toc}{chapter}% {\protect\numberline{\@chapapp\thechapter\@chappos}#1}% \else \typeout{\@chapapp\thechapter\@chappos}% 付録も画面表示する \addcontentsline{toc}{chapter}{#1} \fi \else \addcontentsline{toc}{chapter}{#1}% \fi \chaptermark{#1}% \addtocontents{lof}{\protect\addvspace{10\p@}}% \addtocontents{lot}{\protect\addvspace{10\p@}}% \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading \fi}% % % 実際に章見出しを組み立てます。 % \def\@makechapterhead#1{% \vspace*{2\Cvs}% 欧文版では50pt {\parindent \z@ \raggedright \normalfont \ifnum \c@secnumdepth >\m@ne \if@mainmatter \huge\bfseries \@chapapp\thechapter\@chappos \par\nobreak \vskip 1\Cvs % 欧文版では20ポイント \fi \fi \interlinepenalty\@M \Huge \bfseries #1\par\nobreak \vskip 40pt}} % 欧文版40pt 奥村版3\Cvs % % 章番号のつかない |\chapter*{...}| コマンドの本体です。 % ASCII版、奥村版ともに目次には出力されないようになっていますが、 % ここでは論理変数 |\ifschaptertoc| を用意し、|\schaptertoctrue| が % 実行されると出力され、|\schaptertocfalse| によって出力をやめるように % します。デフォルトは偽(出さない)。 % \newif\ifschaptertoc \schaptertocfalse \def\@schapter#1{% \ifschaptertoc \addcontentsline{toc}{chapter}{#1}% \addtocontents{lof}{\protect\addvspace{10\p@}}% \addtocontents{lot}{\protect\addvspace{10\p@}}% \chaptermark{#1}% \fi \if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}\@afterheading \fi} % % 番号を付けない場合の形式です。 % \def\@makeschapterhead#1{% \vspace*{2\Cvs}% 欧文版では50pt {\parindent \z@ \raggedright \normalfont \interlinepenalty\@M \Huge \bfseries #1\par\nobreak \vskip 3\Cvs}} % 欧文版40pt 奥村版3\Cvs % % 目次を生成します。 % 目次自身は目次に出力してはならないので、|\schaptertoc| によって % 処理を変える必要があります。 % \renewcommand{\tableofcontents}{% \if@twocolumn \@restonecoltrue\onecolumn \else \@restonecolfalse \fi \ifschaptertoc% \chapter*{} を目次に出す場合でも \schaptertocfalse% 目次自身は目次に出力しない \chapter*{\contentsname}% \@mkboth{\contentsname}{\contentsname}% \@starttoc{toc}% \schaptertoctrue% 元に戻す \else \chapter*{\contentsname}% \@mkboth{\contentsname}{\contentsname}% \@starttoc{toc}% \fi \if@restonecol\twocolumn\fi }% % % % 参考文献や関連図書のリストを作成します。 % 定義の中で強制的に \schaptertoctrue にしていますので,これ以降の % \chapter*{...} は全部目次に出てきてしまいます。 % |\ifschaptertoc| の増設に伴い、ASCII版のままではうまくいかない % ので対策してあります。 % \renewenvironment{thebibliography}[1]{\schaptertoctrue% \ifschaptertoc \chapter*{\bibname}\@mkboth{\bibname}{\bibname} \else \chapter*{\bibname\@mkboth{\bibname}{\bibname}} \fi \list{\@biblabel{\@arabic\c@enumiv}}% {\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \itemsep 0.5\baselineskip \relax \@openbib@code \usecounter{enumiv}% \let\p@enumiv\@empty \renewcommand\theenumiv{\@arabic\c@enumiv}}% \sloppy \clubpenalty4000 \@clubpenalty\clubpenalty \widowpenalty4000% \sfcode`\.\@m} {\def\@noitemerr {\@latex@warning{Empty `thebibliography' environment}}% \endlist}% % % % -------- ここまで -------- (3) 文章の構造をチェックします。恐らく卒業/修士論文だと思いますが, 以下のような構成になるはずです。\frontmatter, \mainmatter, \backmatter の使い方に気をつけて下さい。 \documentclass[a4j]{jbook} \usepackage{...} ... ... \usepackage{test}% 今回追加したもの % \begin{document} % \frontmatter% この部分がまえがき,目次などであることを表す \chapter*{まえがき} ...(まえがきの内容) % \tableofcontents % \mainmatter% この部分が本文であることを表す \chapter{序論} ...(序論の内容) \chapter{結論} ...(結論の内容) % \appendix% この部分が付録であることを表す \chapter{付録なにがし} ...(付録なにがしの内容) % \backmatter% この部分が後付けであることを表す \begin{thebibliography}{99} \bibitem 文献あ \bibitem 文献い \end{thebibliography} \end{document} これで,たぶん大丈夫なはずです。 もしお持ちであれば,奥村先生の本(「LaTeX2e美文書作成入門」 初版第1刷なら235〜236ページ)を参考にして下さい。 この方法は,実は奥村先生の「LaTeX2e美文書作成入門」初版初刷に 付属していた jclasses.dtx に対するちょっとした改造です。 pLaTeX2e 標準の jbook クラスとは少し章見出しの形が違ってきますが ご了承ください。 最近の jsclasses シリーズで動くかどうかは,わかりませんがやってみる 価値はあると思います。 なにぶん過去のものなので,最新のシステムで動作するかどうかは 自信がありません。 謝辞のページ番号については,状況がよくわからないので,すみませんが コメントできません。 長くなって申し訳ありません。 #「とにかく何とかする」ということで,少々乱暴な処理をしています。 #また,過去のものを引っ張り出して,速報的に投稿させていただきますので, #もし間違いなどがあったらご指摘と,可能なら達人の皆様のサポートを #お願いします。

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)