名前: misc 日時: 2004-04-27 13:42:21 IPアドレス: 210.230.18.*
>>28445 >この設定のせいか、 定義がおわかりにならなければ,とりあえず, あの定義を丸ごと消去して使わないようにするか, あるいは マクロ作成に関する然るべき学習を行って自力で読めるようになるか, のどちらかでしょう. ここで用いられている定義では,次のようになっています (定義中に追加したコメントを参照してください). # 条件処理(\ifx など)といった点に関する基本的な文法については # 既知と仮定します. \def\@figtxt{figure} \long\def\@makecaption#1#2{% \small \setlength{\parindent}{0pc} \ifx\@captype\@figtxt % \@captype が文字列“figure”である(i.e. figure/figure* 環境の)場合 \vskip\abovecaptionskip \setbox\@tempboxa\hbox{{\normalfont\scshape #1} {\normalfont\itshape #2}}% \ifdim \wd\@tempboxa >\hsize {\normalfont\scshape #1} {\normalfont\itshape #2}\par \else \global\@minipagefalse \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi \else% \@captype が文字列“figure”ではない(i.e. table/table* 環境の)場合 \hbox to\hsize{\hfil{\normalfont\scshape #1}\hfil}% % ↑この処理により,番号部分のみが 1 行を占有します. % (1 行分の幅のボックスの中に番号部分を中央寄せにして % 入れているのですから,そうなります.) \setbox\@tempboxa\hbox{{\normalfont\itshape #2}}% \ifdim \wd\@tempboxa >\hsize {\normalfont\itshape #2}\par \else \global\@minipagefalse \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi \vskip\belowcaptionskip \fi} この場合,table 環境でも figure 環境と同様に出力したければ, figure 環境の場合のキャプション整形処理を \@captype による場合分けなしに 常に使用することにすればよいので,次のように変更することができるでしょう. # なお,先のご質問にあった書体に関する問題については,ここでは扱っていません. # 必要に応じて,書体指定を適宜変更してください. \def\@figtxt{figure} \long\def\@makecaption#1#2{% \small \setlength{\parindent}{0pc} \ifx\@captype\@figtxt \vskip\abovecaptionskip \fi %%% ここからしばらくは,オリジナルでは figure 環境の場合に用いていた整形処理 \setbox\@tempboxa\hbox{{\normalfont\scshape #1} {\normalfont\itshape #2}}% \ifdim \wd\@tempboxa >\hsize {\normalfont\scshape #1} {\normalfont\itshape #2}\par \else \global\@minipagefalse \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi %%% 整形処理はここまで \ifx\@captype\@figtxt\else \vskip\belowcaptionskip \fi} # なお,元の定義では \@captype に応じて \abovecaptionskip/\belowcaptionskip の # どちらを用いるかを切り換えていますが,その処理は残しています.
この書き込みへの返事: