Проблема с \vspace{\stretch{1}}, не работающей в среде mdframed

Проблема с \vspace{\stretch{1}}, не работающей в среде mdframed

Я столкнулся с проблемой использования \vspace{\stretch{1}} внутри среды mdframed. Я пытаюсь добавить вертикальный пробел после теоремы внутри рамки, но, похоже, команда \vspace{\stretch{1}} не работает так, как ожидалось.

Я знаю, что могу использовать \vspace{x cm}, но я не хочу этого делать. Я хочу разделить страницу поровну.

У меня есть

Вот минимальный пример того, что у меня есть:

\documentclass{article}
\usepackage{amsthm}
\usepackage{mdframed}
\usepackage{xcolor}

\theoremstyle{plain}
\newtheorem{theorem}{Theorem}

\begin{document}

\begin{mdframed}[
    linecolor=blue,
    linewidth=2pt,
    backgroundcolor=orange!20,
]
\begin{theorem}
  Some subtheorem.
\end{theorem}
\vspace{\stretch{1}}
\end{mdframed}

\end{document}

решение1

Это та же проблема, что и при использовании x\par\vfill x в мини-странице или \parbox. Не будет работать с:

\fbox{\begin{minipage}{3cm} x\par\vfill x \end{minipage}} 

Потому что, хорошо, вы хотите заполнить ящик, ... но насколько? Ящик не имеет предопределенной высоты.

Это работает в основном тексте, потому что страница имеет принудительную высоту. Она растягивается только если вы растягиваете ее до чего-то. На мини-странице вы можете сделать это, зафиксировав высоту блока:

\fbox{\begin{minipage}[c][3cm][c]{3cm} x\par\vfill x \end{minipage}} 

введите описание изображения здесь

Обратите внимание, что если вы используете a tcolorboxвместо mdframed, который позволяет фиксировать высоту, даже это не сработает:

\begin{tcolorbox}[height=3cm]  x\par  \vfill x \end{tcolorbox}

(Это не ошибка, это фича!)

Я хочу разделить страницу поровну

Если вам нужны одинаковые блоки, то вы можете использовать растровую библиотеку tcolorbox, тогда высота каждого блока будет зафиксирована блоком с большей высотой:

mwe2

\documentclass[twocolumn]{article}
\usepackage[raster]{tcolorbox}
\begin{document}

\begin{tcbraster}[raster columns=1, size=small, title={\sffamily\bfseries Free  height box No. \thetcbrasternum}]
\begin{tcolorbox}First box\end{tcolorbox}
\begin{tcolorbox}Second box\end{tcolorbox}
\begin{tcolorbox}This is a box\\with a second line \\ with a third line \\ with a fourth line  \end{tcolorbox}
\begin{tcolorbox}Another box\end{tcolorbox}
\begin{tcolorbox}A box\par \vspace{.3 cm} again\end{tcolorbox}
\end{tcbraster}

\newpage

\begin{tcbraster}[raster columns=1, size=small, raster equal height,
size=small,colframe=red!50!black,colback=red!10!white,colbacktitle=red!50!white,coltitle=black,
title={\sffamily\bfseries Evenlized box No. \thetcbrasternum}]
\begin{tcolorbox}First box\end{tcolorbox}
\begin{tcolorbox}Second box\end{tcolorbox}
\begin{tcolorbox}This is a box\\with a second line \\ with a third line \\ with a fourth line  \end{tcolorbox}
\begin{tcolorbox}Another box\end{tcolorbox}
\begin{tcolorbox}A box\par \vspace{.3 cm} again\end{tcolorbox}
\end{tcbraster}
\end{document}

Связанный контент