Re: 付録用目次

名前: しっぽ愛好家
日時: 2002-12-30 18:19:01
IPアドレス: 210.230.96.*

>>14498 目次を複数箇所に作成する場合,結局は複数の目次ファイルを 作成しなければならないわけです. それを LaTeX に行わせようという場合には,簡単に行うには \addcontentsline の第 1 引数 または \addtocontents の第 1 引数 で指定される ``目次ファイルの拡張子'' を適宜取り換えるか, aux ファイルに書き出された \@writefile の第 1 引数 (やはり,目次ファイルの拡張子です)を取り換えます. %%% 目次ファイルの個数が非常に多い場合(e.g. 章ごとに目次を作成し, %%% かつ,章の個数が多い場合)にはこの方法は適用できませんが, %%% 今回は目次を 1 個(?)追加するだけですからこの方法で充分です. ここでは,\addtocontents と \addcontentsline を再定義して, クラスファイル側では toc ファイルに書き出すつもり(i.e. \addcontentsline などの第 1 引数が toc)であっても,実際に書き出すファイルは 別のファイルにもできるように細工してみます. \long\def\addtocontents#1#2{% \protected@write\@auxout {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}% {\string\@writefile{\@nameuse{@real@ext@for@#1}}{#2}}} %%% オリジナルの定義では,直前の行は次のようになっています. %%% {\string\@writefile{#1}{#2}}} %%% 次の \addcontentsline に対しても,これと同様に \@writefile の %%% 第 1 引数を変更します. \def\addcontentsline#1#2#3{% \protected@write\@auxout {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble \@temptokena{\thepage}}% {\string\@writefile{\@nameuse{@real@ext@for@#1}}% {\protect\contentsline{#2}{#3}{\the\@temptokena}}}} %%% 定義中の \thepage あるいは \the\@temptokena のあたりに %%% 細工をしている場合には,その細工も反映させてください. \def\@real@ext@for@toc{toc} \def\@real@ext@for@lof{lof} \def\@real@ext@for@lot{lot} %%% \@real@ext@for@toc は \addtocontents/\addcontentsline の第 1 引数が %%% toc である場合に実際に用いる目次ファイルの拡張子(他の 2 個も同様)です. \def\appendixcontents{% \chapter*{付録目次}\@mkboth{付録目次}{付録目次}%%% 適宜変更してください. \@starttoc{tc2}}%%% 付録目次用の目次ファイルの拡張子には .tc2 を使用します. この定義に加え,\appendix の定義の中に \def\@real@ext@for@toc{tc2} という記述を追加してください. %%% i.e. \appendix の定義が %%% \def\appendix{...} となっていたら, %%% \def\appendix{...\def\@real@ext@for@toc{tc2}} %%% のように変更します. 以上の設定の下で, \appendix の後にでも \appendixcontents と記述するとそこに ``付録目次'' が出力されます. %%% もちろん,\tableofcontents による目次には \appendix 部分の項目は %%% 載らないようになります. %%% ``既製品'' の有無については,私は(例のごとく)存じません.

この書き込みへの返事:

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