align環境下でのページ割れさせるには?

align環境下でのページ割れさせるには?

- DION Emily の投稿
返信数: 7
多行に渡る計算の途中経過を頻繁に書いてます。
ページ数をできるだけ少なくしたく思ってます。

\begin{align}
hoge &= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge
\end{align}

の出力がページ後半辺りになるとこの10行は次のページに纏めて送られますよね。
そして,現ページの下部辺りはぽっかり空白が出来てしまいます。
これがどうも不恰好なので,現ページに出力可能な行数は現ページに出力させたいのですがどうすればいいのでしょうか?

\documentclass[10pt,oneside,here]{book}

\usepackage{here}

\usepackage[reqno]{amsmath}

\allowdisplaybreaks


と\allowdisplaybreaksを書き足したのですが何の反応もありません。


※ 苦肉の策として下記の様にしましたがイコールの位置を揃えるために\hspaceを頻繁に遣ってますが編集する際に不揃いになってしまったりしてとても面倒くさいです。

\begin{align}
hoge = hoge
\end{align}
\begin{align}
= hoge
\end{align}
:
\begin{align}
= hoge
\end{align}
DION Emily への返信

Re: align環境下でのページ割れさせるには?

- 梅田 宗宏 の投稿
まったく泥臭い方法で、もっとよい方法は、TeXnicianの方にお願いするとして

\begin{align}

hoge&=hoge\\

hoge&=hoge

\end{align}

\newpage

\begin{align}

\phantom{hoge}&=hoge

\end{align}


というように、改ページした数式に

phantom{}

を使って頭を揃えるというのではどうでしょうか。


DION Emily への返信

Re: align環境下でのページ割れさせるには?

- 奥村 晴彦 の投稿
次のようにしてみましたが,うちの環境では(31)と(32)の間で改ページが生じました。

\documentclass{book}
\usepackage[reqno]{amsmath}
\allowdisplaybreaks
\begin{document}

\begin{align}
hoge &= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge
\end{align}

\begin{align}
hoge &= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge
\end{align}

\begin{align}
hoge &= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge
\end{align}

\begin{align}
hoge &= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge
\end{align}

\end{document}
DION Emily への返信

Re: align環境下でのページ割れさせるには?

- 浮亭 夢介 の投稿
分割可能なボックスで数式を囲んでみました.
ここでは eclbkbox を使いました.こちらではうまくできました.

\usepackage{amsmath}
\allowdisplaybreaks
\usepackage{eclbkbox}
%
\begin{document}
\fboxrule0pt
\begin{breakbox}
\begin{align}
hoge &= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge \\
&= hoge
\end{align}
\end{breakbox}
\end{document}
浮亭 夢介 への返信

Re: align環境下でのページ割れさせるには?

- DION Emily の投稿
ご回答誠に有難うございます。
http://sitmathclub.web.fc2.com/temp/eclbkbox.styをダウンロードして上手くいきました。
ただ,\begin{breakbox}と\begin{align}の箇所で2度改行されてる為に一行分の空行が出来てしまいました。
この空行を取っ払うにはどうすればいいでしょうか?

DION Emily への返信

Re: align環境下でのページ割れさせるには?

- 本田 知亮 の投稿
\documentclass[10pt,oneside,here]{book}
\usepackage{here}
\usepackage[reqno]{amsmath}
\allowdisplaybreaks

このあとに何かしてるのでしょう
#\documentclassのオプションにhereを記述してるのはなぜ?

もしくは,\allodisplaybreaksを記述したファイルを
コンパイルしていないということも,
ファイルを分割しているときにはよくある話です
#例えば,YaTeXで分割されたファイルの一行目に
#%#!platex main.texとあって
#\allowdisplaybreaksを違うファイルに追加するとか

とりあえず,うまく分割しない別行式の直前に
\typeout{\the\interdisplaylinepenalty}
をいれたらログに10000とでませんか.
そうだったらどこかで
\allowdisplaybreaksを打ち消しているので
どんどん遡って
\typeout{\the\interdisplaylinepenalty}
をいれて,どこで
\interdisplaylinepenalty
が変わっているのかをさがせばいいです
本田 知亮 への返信

Re: align環境下でのページ割れさせるには?

- DION Emily の投稿
ご回答誠に有難うございます。

\allowdisplaybreaks
\begin{document}

\allowdisplaybreaks[0]


と\begin{document}の前後に \allowdisplaybreaksを置いてしまってました!

それで\allowdisplaybreaks[0] を取っ払って無事ページ割れで出力されました。
\(^o^)/