\@makecaption \captionコマンドにより呼び出され,実際にキャプションを出力するコマンドです。第1
引数はフロートの番号,第2引数はテキストです。
\abovecaptionskip
\belowcaptionskip
それぞれキャプションの前後に挿入されるスペースです。\belowcaptionskip が0になっ ていましたので,キャプションを表の上につけた場合にキャプションと表がくっついてしま うのを直しました。
2555\newlength\abovecaptionskip
2556\newlength\belowcaptionskip
2557\setlength\abovecaptionskip{5\p@?} % 元: 10\p@
2558\setlength\belowcaptionskip{5\p@?} % 元: 0\p@
実際のキャプションを出力します。オリジナルと異なり,文字サイズを\smallにし,キャ プションの幅を2cm狭くしました。
[2003-11-05]ロジックを少し変えてみました。
2559%<*!jspf>
2560% \long\def\@makecaption#1#2{{\small
2561% \advance\leftskip10\jsc@mmm
2562% \advance\rightskip10\jsc@mmm
2563% \vskip\abovecaptionskip
2564% \sbox\@tempboxa{#1\hskip1\jsZw\relax #2}%
2565% \ifdim \wd\@tempboxa >\hsize
2566% #1\hskip1\jsZw\relax #2\par
2567% \else
2568% \global \@minipagefalse
2569% \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
2570% \fi
2571% \vskip\belowcaptionskip}}
2572\long\def\@makecaption#1#2{{\small
2573 \advance\leftskip .0628\linewidth
2574 \advance\rightskip .0628\linewidth
2575 \vskip\abovecaptionskip
2576 \sbox\@tempboxa{#1\zwspace#2}%
2577 \ifdim \wd\@tempboxa <\hsize \centering \fi
2578 #1\zwspace#2\par
2579 \vskip\belowcaptionskip}}
2580%</!jspf>
2581%<*jspf>
2582\long\def\@makecaption#1#2{%
2583 \vskip\abovecaptionskip
2584 \sbox\@tempboxa{\small\sffamily #1\quad #2}%
2585 \ifdim \wd\@tempboxa >\hsize
2586 {\small\sffamily
2587 \list{#1}{%
2588 \renewcommand{\makelabel}[1]{##1\hfil}
2589 \itemsep \z@
2590 \itemindent \z@
2591 \labelsep \z@
2592 \labelwidth 11\jsc@mmm
2593 \listparindent\z@
2594 \leftmargin 11\jsc@mmm}\item\relax #2\endlist}
2595 \else
2596 \global \@minipagefalse
2597 \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
2598 \fi
2599 \vskip\belowcaptionskip}
2600%</jspf>
9 フォントコマンド
ここではLATEX 2.09で使われていたコマンドを定義します。これらはテキストモードと数
式モードのどちらでも動作します。これらは互換性のためのもので,できるだけ\text...
と\math...を使ってください。
[2016-07-15] KOMA-Script中の\scr@DeclareOldFontCommandに倣い、これらの命令 を使うときには警告を発することにしました。
[2016-07-16]警告を最初の一回だけ発することにしました。また,例外的に警告を出さな
いようにするスイッチも付けます。
\if@jsc@warnoldfontcmd
\if@jsc@warnoldfontcmdexception \if@jsc@warnoldfontcmdはBXJSクラスでは不使用。
\if@jsc@warnoldfontcmdexception は \allow/disallowoldfontcommands の状態 を表す。
2601\newif\if@jsc@warnoldfontcmd
2602\@jsc@warnoldfontcmdtrue
93
2603\newif\if@jsc@warnoldfontcmdexception
2604\@jsc@warnoldfontcmdexceptionfalse
\jsc@DeclareOldFontCommand
2605\newcommand*{\jsc@DeclareOldFontCommand}[3]{%
2606 \g@addto@macro\bxjs@oldfontcmd@list{\do#1}%
2607 \DeclareOldFontCommand{#1}{%
2608 \bxjs@oldfontcmd{#1}#2%
2609 }{%
2610 \bxjs@oldfontcmd{#1}#3%
2611 }%
2612}
2613\DeclareRobustCommand*{\jsc@warnoldfontcmd}[1]{%
2614 \ClassInfo\bxjs@clsname
2615 {Old font command '\string#1' is used!!\MessageBreak
2616 The first occurrence is}%
2617}
\allowoldfontcommands “二文字フォント命令”の使用を許可する(警告しない)。
\disallowoldfontcommands “二文字フォント命令”の使用に対して警告を出す。
2618\newcommand*{\allowoldfontcommands}{%
2619 \@jsc@warnoldfontcmdexceptiontrue}
2620\newcommand*{\disallowoldfontcommands}{%
2621 \@jsc@warnoldfontcmdexceptionfalse}
2622\let\bxjs@oldfontcmd@list\@empty
2623\def\bxjs@oldfontcmd#1{%
2624 \expandafter\bxjs@oldfontcmd@a\csname bxjs@ofc/\string#1\endcsname#1}
2625\def\bxjs@oldfontcmd@a#1#2{%
2626 \if@jsc@warnoldfontcmdexception\else
2627 \global\@jsc@warnoldfontcmdfalse
2628 \ifx#1\relax
2629 \global\let#1=t%
2630 \jsc@warnoldfontcmd{#2}%
2631 \fi
2632 \fi}
2633\def\bxjs@warnoldfontcmd@final{%
2634% \par
2635 \global\let\bxjs@warnoldfontcmd@final\@empty
2636 \let\@tempa\@empty
2637 \def\do##1{%
2638 \expandafter\ifx\csname bxjs@ofc/\string##1\endcsname\relax\else
2639 \edef\@tempa{\@tempa \space\string##1}\fi}
2640 \bxjs@oldfontcmd@list
2641 \ifx\@tempa\@empty\else
2642 \ClassWarningNoLine\bxjs@clsname
2643 {Some old font commands were used in text:\MessageBreak
2644 \space\@tempa\MessageBreak
2645 You should note, that since 1994 LaTeX2e provides a\MessageBreak
2646 new font selection scheme called NFSS2 with several\MessageBreak
2647 new, combinable font commands. The
2648 class provides\MessageBreak
2649 the old font commands only for compatibility}
2650 \fi}
単純に \AtEndDocument のフックの中で \bxjs@warnoldfontcmd@final を実行した場 合、最終ページのヘッダ・フッタの中にある二文字フォント命令はそれより後に実行される ため捕捉できない。これに対処するため、\end{document}中に実行される\clearpageの 処理の直後に\bxjs....finalが呼ばれるようにする。
2651\def\bxjs@warnoldfontcmd@kick@final{%
2652 \g@addto@macro\clearpage{\bxjs@warnoldfontcmd@final}}
2653\AtEndDocument{\bxjs@warnoldfontcmd@kick@final}
\mc
\gt
\rm
\sf
\tt
フォントファミリを変更します。
2654\jsc@DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
2655\jsc@DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
2656\jsc@DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
2657\jsc@DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
2658\jsc@DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\bf ボールドシリーズにします。通常のミーディアムシリーズに戻すコマンドは \mdseries です。
2659\jsc@DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\it
\sl
\sc
フォントシェイプを変えるコマンドです。斜体とスモールキャップスは数式中では何もしま せん(警告メッセージを出力します)。通常のアップライト体に戻すコマンドは \upshape です。
2660\jsc@DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
2661\jsc@DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
2662\jsc@DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\cal
\mit
数式モード以外では何もしません(警告を出します)。
2663\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal}
2664\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal}