Schwimmt Analogon von gerahmten

Schwimmt Analogon von gerahmten

Ich habe sehr wenig Erfahrung mit LaTeX. Entschuldigen Sie also meine Unwissenheit, aber gibt es ein Float-Äquivalent von \framebox?

Idealerweise hätte ich gerne eine einfache Konstruktion für gerahmten Text, den ich oben [t] oder unten [b] auf der Seite positionieren kann.

Ich habe zwei Beiträge gefunden, die meinen Anforderungen nicht ganz gerecht zu werden schienen:

  1. Gerahmter Text mit einem Float darin
  2. Rahmen um Text und Abbildung

Antwort1

Hier ist eine Alternative tcolorboxzum Erstellen der schwebenden Box.

Die erste Version ist ein minimalistischer Ansatz:

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

Bildbeschreibung hier eingeben

tcolorboxermöglicht die Verwendung von viel mehr Optionen, um einen ausgefalleneren Stil zu erstellen, falls Sie so etwas suchen. Die zweite Version verwendet einige Farboptionen und ersetzt den Optionsparameter durch eine durch Kommas getrennte Liste von Optionen. Die floatOption verwendet die bekannten Floating-Parameter.

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

Bildbeschreibung hier eingeben

Antwort2

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

Bildbeschreibung hier eingeben

Antwort3

Hier ist eine Option mit einer Kombination ausmdframed,newfloat, UndxparsePaket (das von geladen wird mdframed).

Die folgende Zeile:

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

deklariert eine neue schwebende Umgebung namens myfloat, dieStandardPlatzierung von !htund kann überschrieben werden.

Die folgenden Zeilen erstellen eine neue schwebende Umgebung, die myfloatmit einer Umgebung aus dem mdframedPaket kombiniert wird:

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

Wie Sie sehen, wird die Syntax des xparsePakets verwendet, um zwei optionale Argumente zu deklarieren:

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

Es kann beispielsweise auf folgende Arten verwendet werden:

\begin{framefloat}

\begin{framefloat}[t]

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

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

Hier ist ein komplettes MWE zum Spielen. Jedes der Pakete, die ich verwendet habe, hateine Mengeweitere Funktionen; erkunden Sie sie nach Belieben.

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

verwandte Informationen