名前: しっぽ愛好家 日時: 2003-02-12 12:08:47 IPアドレス: 211.4.36.*
>>16419 jsbook.cls と組み合わせて使う限りでは,特に問題はないようです. 一方,組み合わせるクラスファイルを限定しない場合には, 次の 2 点が気になりました. %%% 限定しない,と言っても,\chapter(*) が使えることは仮定します. まず,\refname と \bibname は両方同時に定義されているとは 限らないので(*),これらを両方とも \renewcommand で(再)定義すると, 少なくとも一方がうまくいかない場合があります. %%% (*) 一方のみ定義されていないクラスファイルも数多く存在します. %%% %%% ただ,jsarticle.cls/jsbook.cls では,両方とも定義されています. そこで,これらの再定義は単に \def で行うとよいでしょう. %%% i.e. \def\refname{参考文献}, \def\bibname{関連図書} とします. また,\chapter(*) の引数に \@mkboth を含めると, \@mkboth で指定したはずのヘッダなどに載せる文字列が うまく反映しないことがあります. %%% \@makechapterhead/\@makeschapterhead が,章見出しを垂直ボックスに %%% 入れる場合(例えば,jbook.cls での定義はこれに該当します)に %%% そのようなことが起こる,というのはよく知られて(?)います. そこで,\@mkboth とその引数を \chapter の引数の外に出すのもよいでしょう. すなわち,定義中の \chapter*{\refname\@mkboth{\refname}{\refname}}% または \chapter*{\bibname\@mkboth{\bibname}{\bibname}}% の部分を \chapter*{\refname}\@mkboth{\refname}{\refname}% または \chapter*{\bibname}\@mkboth{\bibname}{\bibname}% のように変更します. とりあえず,気づいた点はこのくらいです. [補足] 環境名には,数字や記号を用いることができます. %%% 結局,\csname <環境名>\endcsname あるいは %%% \csname end<環境名>\endcsname の形で,環境の開始処理, %%% 終了処理を行うわけですから. %%% %%% というよりも,eqnarray* 環境の存在を思い浮かべた方が %%% %%% 納得しやすいでしょうか. もちろん,\def\somecs2{...} という定義を行ってもこれは(通常は) 「\somecs を,必ず文字列 ``2'' を後置して用いる」ように 定義しただけで,``\somecs2'' の定義にはならない,ということや, 文書中で \somecs2 と書いてもこれは(通常は)\somecs の直後に 2 を置いただけでしかない,といった点はトニイさんのお話から 推察されるとおりです.
この書き込みへの返事: