PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : variabler vertikaler platz



marxlechen
30-05-2013, 21:49
Hallo.
ich habe mir eine eigene "erinnerungsumgebung" gebastelt. Diese besteht im groben aus einem rahmen erstellt mit mdframed. Innerhalb dieses Rahmens ist in der oberen ecke ein Bild mit picins eingefügt.
Wenn ich nun die umgebung aufrufe funktioniert auch alles wunderbar. Allerdings passiert es, dass das bild über den rahmen hinausragt, falls der Inhalt der umgebung zu kurz ist. nun würde ich gerne etwas in der art machen:
Wenn der Inhalt kurz ist, soll der Rahmen eine feste größe haben, falls er lang ist, soll die größe sie wie gehabt variabel anpassen. Der rahmen sollte also immer eine mindestgröße des Bildes haben

zur vollständigkeit: mein code, leider recht lang (Ich habe das bild herausgekommentiert..., um mein Problem zu sehen, solltet ihr eine einbinden...):



\documentclass{article}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%
%Experiment für andere lampenboxx
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%
\usepackage{tikz}
\usepackage[framemethod=default]{mdframed}
\usepackage{graphicx}

\usepackage{paralist}
\usepackage{picins}

\usepackage{floatflt}

\usepackage{wrapfig}

%%%%%%%%%%%%%%%%%% Lampenboxxstyle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mdfdefinestyle{lampenboxxstyle}{
topline=true,
frametitleaboveskip=\dimexpr-\ht\strutbox\relax,
linewidth=4pt,
linecolor={black!50!white},
backgroundcolor={black!10!white},
fontcolor=black,
font={},
%
needspace=8cm,%Minimale Höhe der Lampenboxx für eienn Split
%
innerleftmargin=3ex,
innerrightmargin=3ex,
innertopmargin=0ex,
innerbottommargin=3ex,
leftmargin=0ex,
rightmargin=0,
skipabove=3ex,
skipbelow=3ex
}

%%%%%%%%%%%%%%%%%% Lampenboxxzähler %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcounter{lampenboxxtestcounter}[section]
\renewcommand{\thelampenboxxtestcounter}{\thesecti on.\arabic{lampenboxxtestcounter}}

%%%%%%%%%%%%%%%%%% Lampenboxxumgebung %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newenvironment{lampenboxxtest}[1][]{
\stepcounter{lampenboxxtestcounter}
\ifstrempty{#1}
{\mdfsetup{
frametitle={
\tikz[baseline=(current bounding box.east),outer sep=0pt]
\node[anchor=east,rectangle,fill=black!50!white]
{\strut \textcolor{white}{Zur~Erinnerung~\thelampenboxxtes tcounter}};}}}
{\mdfsetup{
frametitle={
\tikz[baseline=(current bounding box.east),outer sep=0pt]
\node[anchor=east,rectangle,fill=black!50!white]
{\strut \textcolor{white}{Zur~Erinnerung~\thelampenboxxtes tcounter:~#1}};}}}
\mdfsetup{style=lampenboxxstyle
}
\begin{mdframed}[]\relax
\setdefaultleftmargin{2.2cm}{}{}{}{}{}
\IfFileExists{bmvorlagen/logos/lampe.pdf}
{
%\parpic{{\includegraphics[scale=1.4]{lampe}}}
}
~
}
{\end{mdframed}}
\begin{document}
\begin{lampenboxxtest}
Bla Bla
\end{lampenboxxtest}
\end{document}

esdd
31-05-2013, 00:09
Hallo,

füge am Ende des ersten Absatzes deines Erinnerungstextes \picskip{0} ein.

Gruß
Elke

marxlechen
31-05-2013, 00:27
ja damit habe ich es geschafft. sehr genial! vielen lieben dank. schon zum zweiten mal hast du mir sehr geholfen!!!!

marxlechen
31-05-2013, 00:32
vielleicht kannst du mir sogar noch eine frage zu dazu beantworte:

das bild in der Erinnerungsumgebung wird von fließtext umflossen. was auch sehr gut funktioniert. allerdings nicht mehr, wenn aufzählungen ins spiel kommen. meine etwas plumpe lösung war da mit \setdefaultleftmargin{2.2cm}{}{}{}{}{} einfach alle aufzählungen weiter rechts zu beginnen. gibt es eine möglichkeit diese doch irgendwie auch zum "umfließen" des bildes zu bekommen.

esdd
31-05-2013, 13:59
Hallo,

die Kombination aus parpic und einer Aufzählung ist schwierig. Mit der inparaitem Umgebung aus dem paralist Paket scheint es zu gehen, aber ob das immer funktioniert, ist mir nicht klar.



\begin{lampenboxxtest}
\noindent
\begin{inparaitem}
\item test\\
\item test\\
\item \blindtext\\
\item test\\
\item test
\end{inparaitem}
\picskip{0}
\end{lampenboxxtest}


Gruß
Elke

marxlechen
01-06-2013, 01:31
Ah. Die Funktion hat mir schon sehr weitergeholfen... nochmal vielen Dank.
Ich habe versucht sie durch "überschreiben" von der anwendung her wieder wie die normale itemize umgebung zu machen. Allerdings weiß ich nicht wie ich dies auch mit \item zu "\item ............ \\" machen könnte. Ich dachte daran es durch ein "\\\item" zu ersetzen, allerdings stimmen dann der erste und letzte item nicht.... ideen?

Aber das größere Problem: Wenn ich innerhalb der lampenboxx einen neuen Absatz beginne, so umfließt er erneut den platz des Bildes. und ich hab keine ahnung, woran das liegt...komisch...hilfe?

Hier der aktuelle code (als grafik eine eigene einsetzen....):

\documentclass{article}

\usepackage{empheq}
\usepackage{textcomp}
\usepackage{tabto}
\usepackage{listliketab}
\usepackage{tabularx}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{tikz}
\usepackage[framemethod=default]{mdframed}
\usepackage{graphicx}
\usepackage{paralist}
\usepackage{picins}
\usepackage{floatflt}
\usepackage{wrapfig}

%%%%%%%%%%%%%%%%%% Lampenboxxstyle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mdfdefinestyle{lampenboxxstyle}{
topline=true,
frametitleaboveskip=\dimexpr-\ht\strutbox\relax,
linewidth=2pt,
linecolor={black!50!white},
backgroundcolor={black!10!white},
fontcolor=black,
font={},
needspace=5cm,
innerleftmargin=3ex,
innerrightmargin=3ex,
innertopmargin=0ex,
innerbottommargin=3ex,
leftmargin=0ex,
rightmargin=0,
skipabove=3ex,
skipbelow=3ex
}

%%%%%%%%%%%%%%%%%% Lampenboxxzähler %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcounter{lampenboxxtestcounter}[section]
\renewcommand{\thelampenboxxtestcounter}{\thesecti on.\arabic{lampenboxxtestcounter}}

%%%%%%%%%%%%%%%%%% Lampenboxxumgebung %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newenvironment{lampenboxxtest}[1][]{
\stepcounter{lampenboxxtestcounter}
\ifstrempty{#1}
{\mdfsetup{
frametitle={
\tikz[baseline=(current bounding box.east),outer sep=0pt]
\node[anchor=east,rectangle,fill=black!50!white]
{\strut \textcolor{white}{Zur~Erinnerung~\thelampenboxxtes tcounter}};}}}
{\mdfsetup{
frametitle={
\tikz[baseline=(current bounding box.east),outer sep=0pt]
\node[anchor=east,rectangle,fill=black!50!white]
{\strut \textcolor{white}{Zur~Erinnerung~\thelampenboxxtes tcounter:~#1}};}}}
\mdfsetup{style=lampenboxxstyle
}
\begin{mdframed}[]\relax

\IfFileExists{bmvorlagen/logos/lampe.pdf}
{
\newenvironment{itemizetemp}{\begin{itemize}}{\end {itemize}}
\renewenvironment{itemize}{\noindent\begin{inparai tem}}{\end{inparaitem}}
\newenvironment{enumeratetemp}{\begin{inparaenum}} {\end{inparaenum}}
\renewenvironment{enumerate}{\noindent\begin{inpar aenum}}{\end{inparaenum}}

\parpic{{\includegraphics[scale=1.4]{lampe}}}
}
}
{\picskip{0}
\renewenvironment{itemize}{\begin{itemizetemp}}{\e nd{itemizetemp}}
\renewenvironment{enumerate}{\begin{enumeratetemp} }{\end{enumeratetemp}}
\end{mdframed}}

\begin{document}
\begin{lampenboxxtest}
bla
\end{lampenboxxtest}
\end{document}

esdd
01-06-2013, 03:52
Das \picskip{0} muss wirklich ans Ende des ersten Absatzes. Mit anderen Worten: bei mehreren Absätzen in deiner Lampenboxx reicht es nicht dies am Umgebungsende stehen zu haben.

Da du die Umdefinition von itemize innerhalb deiner Lampenboxx vornimmst, ist diese sowieso nur lokal wirksam. Du kannst dir also die ganzen Zeilen mit itemizetemp und enumeratetemp sparen.

Gruss
Elke

marxlechen
01-06-2013, 14:05
Danke! mmhhhh. jetzt funktioniert es zwar wie gewollt, allerdings schreibe ich diese umgebung nicht nur für mich und hätte deshalb gerne, dass innerhalb von ihr möglichst gewohnt geschrieben werden kann. Allerdings sind nun noch zwei sachen ungewohnt: zum eienn muss man manuell \parpic{0} nach dem ersten absatz einfügen und nach jedem item einer aufzählung eine neue zeile beginnen.
Ideen, wie man das mit implementieren könnte?