ページ/ミニページの上部にある環境の配置の上の不要なスペース

ページ/ミニページの上部にある環境の配置の上の不要なスペース

align環境がページの先頭または で始まる場合、環境によって追加の垂直スペースが追加されるようですminipage。以下は 2 つのページと 2 つminipageの (ページ 1 上)です。最初のページにはminipageテキストがありalign*、その後に環境が続きます。2 番目のページは環境minipageで始まりますalign*。方程式がまだ揃っていることに注意してください。

ここに画像の説明を入力してください

試みられた解決策:

私が見つけた最も近い関連質問は次のとおりです。

私はゴンサロ・メディナによるソリューション上記に\setlength\abovedisplayskip{0pt}(前文の後に)を追加することにより、環境の前後の垂直スペース)。ただし、これにより方程式は垂直方向に移動しましたが、垂直方向に整列したままです。

ここに画像の説明を入力してください

また、ページの上部でも問題が発生するため、これはミニページを理解する - 上部に揃える

質問:

  1. alignページの上部に追加のスペースが自動的にないように環境を調整するにはどうすればよいでしょうかminipage?
  2. この動作には理由があり、おそらく変更すべきではないのでしょうか?

コード:

\documentclass{article}
\usepackage[showframe,paperwidth=3.5in,paperheight=2.2in,margin=0.5in]{geometry}
\usepackage{amsmath}

\begin{document}%\setlength\abovedisplayskip{0pt}
Top of Page 1
\begin{align*}% Text above at top of page
 e &= m c^2
\end{align*}

\hrule
\begin{minipage}[t]{0.45\linewidth}
    Top of minipage 1
    \begin{align*}% Text above this minipage
     e &= m c^2
    \end{align*}
\end{minipage}
\begin{minipage}[t]{0.45\linewidth}
    \begin{align*}% No text above in this minipage
     e &= m c^2
    \end{align*}
\end{minipage}

\newpage
\begin{align*}% No text above at top of page
 e &= m c^2
\end{align*}
\end{document}

答え1

アライメント環境アムスマス段落の先頭に配置するようには設計されていません。これは通常の状況では許容できますが、minipage幅を狭めて配置を組版するために を使用する場合は悪影響があります。

この問題は、コマンド(およびおよび)を次のようにminipage修正することで解決できます。\start@align\start@gather\start@multline

\usepackage{etoolbox}
\makeatletter
\pretocmd\start@align{%
  \if@minipage\kern-\topskip\kern-\abovedisplayskip\fi
}{}{}
\makeatother

これは、文の始めではminipage条件\if@minipageが true であるが、段落が始まると false になるため、align同じ段落内の後続の環境はminipage影響を受けないという事実を利用します。

段落の始めの環境を「修正」するための同様のパッチがありますが、段落は一度もない表示された方程式から開始します (上記の例外を除く)。

関連情報