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:
Antwort1
Hier ist eine Alternative tcolorbox
zum 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}
tcolorbox
ermö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 float
Option 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}
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}
Antwort3
Hier ist eine Option mit einer Kombination ausmdframed
,newfloat
, Undxparse
Paket (das von geladen wird mdframed
).
Die folgende Zeile:
\DeclareFloatingEnvironment[placement={!ht}]{myfloat}
deklariert eine neue schwebende Umgebung namens myfloat
, dieStandardPlatzierung von !ht
und kann überschrieben werden.
Die folgenden Zeilen erstellen eine neue schwebende Umgebung, die myfloat
mit einer Umgebung aus dem mdframed
Paket 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 xparse
Pakets 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}