PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit umrandetem Text



knpx
14-10-2008, 17:09
Hallo,
ich habe versucht in LaTeX einen Text zu umraden und habe dabei noch ein kleines Problem. Die Umrandung soll farbig und der Text im Inneren schwarz sein. Über der Box soll "Merke:" stehen.
Das klappt mit:


\newenvironment{merkbox}[1]{\newline\noindent
\textcolor{orange}{\textbf{Merke:}\vspace{1mm}\new line
\Ovalbox{\parbox{\textwidth-2.5\fboxsep}{\textcolor{black}{#1}}}}\newline}

eigentlich ganz gut, bis darauf, dass ich den Inhalt der Box immer in Klamern angeben muss:

\begin{merkbox}
{In der Merkbox kann man sich Dinge merken!!}
\end{merkbox}.
Also muss da irrgendwo noch ein kleiner Fehler sein. Ich würde mich freuen,w enn mir da jemand einen Hinweis geben könnte.
Ist mein erstes Mal, dass ich was mit \newenvironment mache, also bitte nicht schimpfen.
Toll währe auch, wenn jemand eine Möglichkeit weiß, dass die Box, falls die Breite des Textes kleiner als die Seitenbreite ist, eben auch nur so breit wie die Seite ist, in allen anderen Fällen aber so lang wie in meinem Code.

Vielen Dank schon mal!

Grüße

Knpx

P.S. Falls sich jemand fragt wozu dieses "vspace" ist, das ist da, damit das "Merke:" nicht so auf dem Rahmen klebt.

Stefan_K
14-10-2008, 18:09
Hallo Knpx,

hier eignet sich \newenvironment nicht so, weil der Umgebungstext als Parameter an eine Box übergeben werden muss. Einmal auf \newcommand geändert, \newline würde ich nicht an Beginn und Ende setzen:

\newcommand{\merkbox}[1]{\noindent
\color{orange}\textbf{Merke:}\vspace{1mm}\newline
\Ovalbox{\parbox{\textwidth-2.5\fboxsep}{\normalcolor#1}}\normalcolor}
Nur mal auf die Schnelle, Du feilst ja vmtl. noch weiter.

Viele Grüße,

Stefan

voss
14-10-2008, 19:00
ich habe versucht in LaTeX einen Text zu umraden und habe dabei noch ein kleines Problem. Die Umrandung soll farbig und der Text im Inneren schwarz sein. Über der Box soll "Merke:" stehen.
Toll währe auch, wenn jemand eine Möglichkeit weiß, dass die Box, falls die Breite des Textes kleiner als die Seitenbreite ist, eben auch nur so breit wie die Seite ist, in allen anderen Fällen aber so lang wie in meinem Code.



\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{calc,xcolor,fancybox,varwidth}
\pagestyle{empty}

\newsavebox\TBox
\newenvironment{merkbox}
{\par\noindent
\begin{lrbox}{\TBox}
\varwidth{\textwidth-2.5\fboxsep}
}{\endvarwidth\end{lrbox}%
\textcolor{orange}{\textbf{Merke:}}\\[1mm]
\Ovalbox{\usebox\TBox}\par
}

\begin{document}

\begin{merkbox}
In der Merkbox kann man sich Dinge merken!!
\end{merkbox}

\begin{merkbox}
foo\\bar\\baz
\end{merkbox}

\end{document}


Herbert

knpx
14-10-2008, 19:20
So geht es.

Vielen Dank!