Flutuadores análogos de emoldurados

Flutuadores análogos de emoldurados

Tenho muito pouca experiência com LaTeX. Então, perdoe minha ignorância, mas existe um float equivalente a \framebox?

Idealmente, eu gostaria de uma construção simples para texto emoldurado que pudesse posicionar na parte superior [t] ou inferior [b] da página.

Encontrei duas postagens que não pareciam atender às minhas necessidades:

  1. Texto emoldurado com um flutuador
  2. Enquadre o texto e a figura

Responder1

Aqui está uma alternativa tcolorboxpara criar a caixa flutuante.

A primeira versão é uma abordagem minimalista:

\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}

insira a descrição da imagem aqui

tcolorboxpermite usar muito mais opções para criar um estilo mais sofisticado, se você estiver procurando por algo assim. A segunda versão usa algumas opções de cores e troca o parâmetro option para obter uma lista de opções separadas por vírgula. A floatopção utiliza os parâmetros flutuantes conhecidos.

\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}

insira a descrição da imagem aqui

Responder2

\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}

insira a descrição da imagem aqui

Responder3

Aqui está uma opção usando uma combinação dosmdframed,newfloat, exparsepacote (que é carregado por mdframed).

A seguinte linha:

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

declara um novo ambiente flutuante chamado myfloat, que tempadrãoposicionamento de !hte pode ser substituído.

As linhas a seguir criam um novo ambiente flutuante que se combina myfloatcom um ambiente do mdframedpacote:

\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}
    }

Como você pode ver, ele usa a sintaxe do xparsepacote para declarar dois argumentos opcionais:

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

Pode ser usado de qualquer uma das seguintes maneiras (por exemplo):

\begin{framefloat}

\begin{framefloat}[t]

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

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

Aqui está um MWE completo para brincar. Cada um dos pacotes que usei tembastantemais recursos; explore como achar melhor.

% 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} 

informação relacionada