名前: 山下 日時: 2011-03-17 10:28:26 IPアドレス: 202.16.125.*
こんにちは。 自分で簡単なコマンドを作ってみたのですが、思い通りに動かないところがあります。 何をキーワードに調べればよいのかも分からず、お手上げとなりました。 どこを直せばよいのか、お教え頂けると助かります。 コマンド \example が自作したものなのですが、この次行に普通の文章を書いた場合、 思い通りの見た目になります。 次行に table や figure などのフロート環境、または別行数式を書いた場合、 希望しない、邪魔なスペースが間に入ってしまいます。 とりあえず、\vspace{-1\baselineskip} で強引にスペースを潰していますが、 これで満足できるときもあれば、まだ広すぎると感じるときもあります。 質問は、コマンドの次が普通の文章だろうが、フロート環境などだろうが、 同じスペースを維持させるにはどう直せばよいのでしょうか、というものです。 換言すれば、vspace による調整を不要にするにはどうすればよいか、となります。 対策がお分かりの方、ご教授頂ければ幸いです。 \documentclass[a4j,10pt]{jreport} \makeatletter \newcounter{cntex}[chapter] \def\thecntex{\arabic{chapter}.\arabic{cntex}} \def\example[#1]<#2>{\vspace{0.5\baselineskip}\refstepcounter{cntex} \noindent ★~\textbf{例~\thecntex% \if#1""\relax\else\label{#1}\fi% \if#2""\relax\else\hspace{1.1em}#2\fi}~\rule{30pt}{2pt}\\[2pt]} \makeatother \begin{document} \chapter{どこを直せばいいのか分からない} \example[ex1]<希望通り> これは最初の例です。希望通りの見た目になっています。 \example[ex2]<邪魔なスペースが入る例1> \begin{table}[!h] \begin{tabular}{ll} 嫌 & この上に邪魔なスペースがある\\ × & 例1.1程度の間隔でこの表を始めたい \end{tabular} \end{table} \example[ex22]<vspace で強引に直した例1(でもまだ不満)>\vspace{-1\baselineskip} \begin{table}[!h] \begin{tabular}{ll} まずまず & 例1.2よりはましだが、例1.1や例1.5より若干広い。\\ まだ不満 & 数式か表や図かで間隔が違うのでしょうか(\verb|1\baselineskip|ではないのでしょうか) \end{tabular} \end{table} \example[ex3]<余分な空行が入る例2> $$a_0+a_1x+a_2x^2+a_3x^3+a_4x^4+a_5x^5+a_6x^6+a_7x^7+a_8x^8+a_9x^9+a_{10}x^{10}=0$$ \example[ex33]<vspace で強引に直した例2(満足)>\vspace{-1\baselineskip} $$a_0+a_1x+a_2x^2+a_3x^3+a_4x^4+a_5x^5+a_6x^6+a_7x^7+a_8x^8+a_9x^9+a_{10}x^{10}=0$$ \end{document}
この書き込みへの返事: