名前: しっぽ愛好家 日時: 2003-05-21 08:13:07 IPアドレス: 211.4.46.*
>>18863 [簡単な方法(いくぶん手抜き)] break スタイルを用いない版の環境も用いて次のように記述して ごまかすことはできます. \documentclass{jarticle} \usepackage{theorem} \theoremstyle{break} \newtheorem{sample}{Sample} \theoremstyle{plain} \newtheorem{sample*}[sample]{Sample} \begin{document} %%% 定理型環境の開始直後にディスプレイ数式がくる場合には %%% plain スタイル版を使用. \begin{sample*} \begin{equation} PV = nRT \end{equation} \end{sample*} \begin{sample} zzz \end{sample} \end{document} [別法(これも改良の余地あり)] まず,break スタイルを適用した定理型環境の見出し部分は, 見出し部分の後で改行しているのではなく, \begin{enumerate} \item[\vbox{\hbox{0.}\null}] 変なラベル \item 通常のラベル \end{enumerate} という箇条書きの ``変なラベル'' の右上の番号と同様にして ``上にずらして'' いる,ということを確認してください. また,箇条書きの \item の直後でディスプレイ数式を用いると, \begin{enumerate} \item \begin{equation} PV = nRT \end{equation} \end{enumerate} という例からわかるように,箇条書きの番号を出力した後,その次の行から ディスプレイ数式が開始されます. そこで,箇条書きの見出しの直後のディスプレイ数式については, 開始時に(約)1 行戻って出力位置をごまかす,という対処法が考えられます. %%% 実は,これもどちらかと言えば手抜きで,丁寧にやるのなら, %%% \box\@labels の中身を横取りし(さらに必要に応じて list 環境に関する %%% 各種フラグをリセットして),横取りした見出し部分をディスプレイ数式の %%% 左側に置きなおす,といった処理を行った方がよいでしょう. 例えば,次のような具合に処理できます. %%% leqno/fleqn の各指定については,ここでは考えていません. \documentclass{jarticle} \usepackage{theorem} \theoremstyle{break} \newtheorem{sample}{Sample} \makeatletter \newbox\@eqn@labelbox \def\[{% \relax\ifmmode \@badmath \else \ifvmode \if@inlabel \leavevmode\vadjust{\vskip-\baselineskip}% \else \nointerlineskip \makebox[.6\linewidth]{\hrulefill}% \fi \fi $$% \fi} \def\equation{% \@eqn@vadjust\abovedisplayshortskip $$\refstepcounter{equation}} \def\eqnarray{% \@eqn@vadjust\abovedisplayskip \stepcounter{equation}% \def\@currentlabel{\p@equation\theequation}% \global\@eqnswtrue \m@th \global\@eqcnt\z@ \tabskip\@centering \let\\\@eqncr $$\everycr{}\halign to\displaywidth\bgroup \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel &\global\@eqcnt\@ne \hfil$\displaystyle{{}##{}}$\hfil &\global\@eqcnt\tw@ $\displaystyle{##}$\hfil\tabskip\@centering &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup \tabskip\z@skip \cr} \def\@eqn@vadjust#1{% \ifvmode \if@inlabel \leavevmode \vadjust{\penalty\@M \vskip-\baselineskip \vskip-#1}% \fi \fi} \makeatother \begin{document} \begin{sample} \begin{equation} PV = nRT \end{equation} \end{sample} \end{document}
この書き込みへの返事: