Поплавки Аналог рамочного

Поплавки Аналог рамочного

У меня очень мало опыта работы с LaTeX. Так что, простите мое невежество, но есть ли эквивалент float для \framebox?

В идеале мне нужна простая конструкция для текста в рамке, которую я мог бы расположить вверху [t] или внизу [b] страницы.

Я нашел два поста, которые, как мне показалось, не совсем соответствовали моим потребностям:

  1. Текст в рамке с плавающим элементом внутри
  2. Рамка вокруг текста и рисунка

решение1

Вот альтернативный вариант использования tcolorboxдля создания плавающего ящика.

Первая версия представляет собой минималистичный подход:

\documentclass{article}
\usepackage[many]{tcolorbox}
\usepackage{lipsum}

\newtcolorbox{framefloat}[1][!tb]{arc=0pt,outer arc=0pt,boxrule=0.4pt,
  colframe=black,colback=white,float=#1}

\begin{document}

\begin{framefloat}
\textbf{Box on top:}
\lipsum[2]
\end{framefloat}

\begin{framefloat}[b]
\textbf{Box on bottom:}
\lipsum[2]
\end{framefloat}

\lipsum[1-3]

\end{document}

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

tcolorboxпозволяет использовать гораздо больше опций для создания более причудливого стиля, если вы ищете что-то подобное. Вторая версия использует некоторые параметры цвета и заменяет параметр опции на список опций, разделенных запятыми. Опция floatпринимает известные плавающие параметры.

\documentclass{article}
\usepackage[many]{tcolorbox}
\usepackage{lipsum}

\newtcolorbox{framefloat}[1][]{fonttitle=\bfseries,
  colframe=yellow!30!black,colback=yellow!10!white,float=!tb,#1}

\begin{document}

\begin{framefloat}[title=Box on top]
\lipsum[2]
\end{framefloat}

\begin{framefloat}[title=Box on bottom,float=b]
\lipsum[2]
\end{framefloat}

\lipsum[1-3]

\end{document}

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

решение2

\documentclass{scrartcl}
\usepackage{varwidth}
\newsavebox\FBox
\newenvironment{framefloat}[1][!htb]
  {\begin{table}[#1]\centering\begin{lrbox}{\FBox}
   \varwidth{\dimexpr\linewidth-2\fboxsep-2\fboxrule}}
  {\endvarwidth\end{lrbox}\fbox{\usebox\FBox}\end{table}}

\usepackage{blindtext}

\begin{document}

\blindtext

\begin{framefloat}[t]
\blindtext
\end{framefloat}

\blindtext

\begin{framefloat}
\blindtext
\end{framefloat}

\end{document}

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

решение3

Вот вариант с использованием комбинацииmdframed,newfloat, иxparseпакет (который загружается mdframed).

Следующая строка:

\DeclareFloatingEnvironment[placement={!ht}]{myfloat}

объявляет новую плавающую среду, называемую myfloat, которая имеетпо умолчаниюразмещение !htи может быть переопределено.

Следующие строки создают новую плавающую среду, которая объединяется myfloatсо средой из mdframedпакета:

\NewDocumentEnvironment{framefloat}{O{}O{}}
    {% #1: float position (optional)
     % #2: options for mdframed (optional)
     \begin{myfloat}[#1]
    \begin{mdframed}[roundcorner=10pt,backgroundcolor=green,#2]
    }
    {\end{mdframed}\end{myfloat}
    }

Как видите, он использует синтаксис из xparseпакета для объявления двух необязательных аргументов:

    % #1: float position (optional)
    % #2: options for mdframed (optional)

Его можно использовать любым из следующих способов (например):

\begin{framefloat}

\begin{framefloat}[t]

\begin{framefloat}[b][backgroundcolor=blue]

\begin{framefloat}[][backgroundcolor=red]

Вот полный MWE, с которым можно поиграться. Каждый из пакетов, которые я использовал, имеетмногобольше функций; изучайте по своему усмотрению.

% arara: pdflatex
\documentclass{article}
\usepackage{newfloat}
\usepackage{lipsum}
\usepackage[framemethod=TikZ]{mdframed}

% new float
\DeclareFloatingEnvironment[placement={!ht}]{myfloat}

% new floating framed environment
\NewDocumentEnvironment{framefloat}{O{}O{}}
    {\begin{myfloat}[#1]
    \begin{mdframed}[roundcorner=10pt,backgroundcolor=green,#2]
    }
    {\end{mdframed}\end{myfloat}
    }

\begin{document}

\lipsum

\begin{framefloat}
\lipsum[1]
\end{framefloat}

\lipsum

\begin{framefloat}[t]
\lipsum[1]
\end{framefloat}

\lipsum

\begin{framefloat}[b][backgroundcolor=blue]
\lipsum[1]
\end{framefloat}

\lipsum

\begin{framefloat}[][backgroundcolor=red]
\lipsum[1]
\end{framefloat}


\end{document} 

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