Ich möchte eine benutzerdefinierte Umgebung erstellen, in der ich Text in ein graues Feld schreiben kann. Im Wesentlichen dies:
\begin{center}
\noindent\fcolorbox{black}{gray!30}{%
\parbox{33em}{%
\vspace{15pt}
text
\vspace{15pt}
}%
}
\end{center}
aber mit nur einer \begin
Und \end
-Anweisung.
Antwort1
Hier ein Beispiel mit mdframed
, das einige der zahlreichen Optionen zum Konfigurieren einer solchen Box-Umgebung zeigt.
\documentclass{article}
\usepackage{mdframed}
\usepackage{xcolor}
\begin{document}
\newmdenv[linecolor=black, leftmargin=2em,rightmargin=2em,innertopmargin=2em,innerbottommargin=2em]{infobox}
\begin{infobox}[backgroundcolor={lightgray}]
foo foo foo
\end{infobox}
\end{document}
Antwort2
Sie können Ihre eigene Umgebung erstellen mit
\newenvironment{name}{begin code}{end code}
und dann verwenden Sie es als
\begin{name}
...
\end{name}
Dies funktioniert in Ihrem Fall nicht, da es nicht möglich ist, Klammernpaare aufzuteilen und die öffnende in begin code
und die schließende in zu setzen end code
. In solchen Fällen environ
hilft das Paket mit seinen \NewEnviron
. Es setzt alles zwischen \begin{name}
und \end{name}
in \BODY
, was dann im Code verwendet werden kann, der die Umgebung definiert.
\documentclass{article}
\usepackage{xcolor}
\usepackage{environ}
\NewEnviron{graybox}%
{\begin{center}%
\noindent\fcolorbox{black}{gray!30}%
{\parbox{33em}%
{\vspace{15pt}\par
\BODY
\vspace{15pt}\par
}%
}%
\end{center}%
}
\begin{document}
\begin{graybox}
text
\end{graybox}
\end{document}
Antwort3
\documentclass{article}
\usepackage[most]{tcolorbox}
\newtcolorbox{mybox}[1][]{%
%
enhanced jigsaw,
width=33em, % Width of the box
boxsep=0pt, % No extra spacing
top=15pt, % top spacing
bottom=15pt, % bottom spacing
sharp corners,
colframe={black},
colback={gray!30},
#1
}
\begin{document}
\begin{mybox}
And now for something completely different
\end{mybox}
\begin{mybox}[colback=green, colframe=blue,boxrule=2pt]
And now for something completely different and nicer!
\end{mybox}
\end{document}