Re: minipage内のcaptionが長すぎると...

名前: 北見 けん
日時: 2005-11-19 15:09:02
IPアドレス: 211.128.71.*

>>39351 なるほど、合点がいきました。 解説ありがとうございます。 私も修正案を出してみます。 定義Aが単に \unhbox を使うもの 定義Bが新しい修正案です。 \hbox で組んだものをばらして段落に組みなおしていたのを逆にして、 段落で組んでみたものをばらして \hbox に組みなおすことにしてみました。 面倒だったので article.cls の方だけです。 通常のもの、定義A によるもの、定義B によるもののそれぞれについて 長いキャプションの場合と短いキャプションの場合を試します。 ハングインデントと注の重複に注意してみてください。 \documentclass{article} \makeatletter \long\def\@makecaptionA#1#2{% \vskip\abovecaptionskip \sbox\@tempboxa{#1: #2}% \ifdim \wd\@tempboxa >\hsize \unhbox\@tempboxa \else \global \@minipagefalse \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi \vskip\belowcaptionskip} \long\def\@makecaptionB#1#2{% \vskip\abovecaptionskip \setbox\@tempboxa\vbox{ #1: #2\par \ifnum\prevgraf>1 \else \setbox\@tempboxa\lastbox \prevdepth-1000pt \hbox to \hsize{\hfil\unhbox\@tempboxa\unskip\unskip\hfil} \global\@minipagefalse \fi } \unvbox\@tempboxa \vskip\belowcaptionskip} \makeatother \def\testtable{% \begin{table} \begin{minipage}{120mm}{ \caption{This is a sample figure with a long caption occupying more than one line and being applied hanging-indent% \protect\footnote{3em}.\hangindent3em} \label{20051001tbl01} }\end{minipage} \end{table} \begin{table} \begin{minipage}{120mm}{ \caption{This is a sample figure with a short caption% \protect\footnote{Being applied hanging-indent.}.\hangindent3em} \label{20051001tbl01} }\end{minipage} \end{table} } \begin{document} \testtable \makeatletter \let\@makecaption\@makecaptionA \makeatother \testtable \makeatletter \let\@makecaption\@makecaptionB \makeatother \testtable \end{document}

この書き込みへの返事:

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