Erstellen einer Umgebung in LaTeX

Erstellen einer Umgebung in LaTeX

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

Bildbeschreibung hier eingeben

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 codeund die schließende in zu setzen end code. In solchen Fällen environhilft 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}

Bildbeschreibung hier eingeben

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}

Bildbeschreibung hier eingeben

verwandte Informationen