Anzeige:
Ergebnis 1 bis 12 von 12

Thema: Mehrspaltiger Text mit Rahmen

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.05.2010
    Beiträge
    84

    Mehrspaltiger Text mit Rahmen

    liebes forum,

    ich versuche eine art infobox zu erstellen, in der ich einen zweispaltigen text habe. den text würde ich gerne hellgrau hinterlegen und um die box hätte ich gerne einen rahmen mit oval eingerahmten titel. und das ganze soll auch auf die naechste seite umgebrochen werden.

    ich habe dazu einiges versucht. das hauptproblem ist das meine jetzige version nicht auf die naechste seite umgebrochen wird. das multicol-package erlaubt seitenumbrueche, nur kann ich es nicht in einen rahmen packen. damit dies funktioniert, muss ich es zuerst in eine minipage stecken ... und damit wird es zum float-objekt und kann nicht mehr umgebrochen werden. :-(

    zum rahmen: nach dem ich ein paar pakete versucht habe und nicht gefunden habe, was ich wollte (rahmen mit oval eingerahmten titel) habe ich mir selbst etwas zusammengebastelt. es ist absolut noch nicht ausgereift, da der titel momentan eine feste länge haben muss, aber damit kann ich zur not leben, da in allen boxen vorerst der gleiche titel stehen wird. ah, und ich verwende nicht pstricks, da ich pdflatex verwende.

    und noch zwei kleine probleme: das erste fällt schnell ins auge. der hintergrund wird nicht vollständig grau gefüllt. irgendwie zeichne ich die oberste linie zu weit oben oder den text zu tief. das zweite problem sieht man nicht so einfach. die gesamte box ist leider etwas zu breit. sie geht an der rechten seite ca. 4pt ueber die textbreite hinaus.

    hier der stand meiner versuche:

    Code:
    \documentclass[ngerman,a4paper,parskip,DIV=12]{scrartcl}
    
    \usepackage{blindtext}
    \usepackage{babel}
    
    \usepackage{multicol}		        % mehrspaltiger text
    \usepackage{fancybox}		% ovaler titel im rahmen
    \usepackage[normalem]{ulem}	% oberste linie bei den rahmen
    \usepackage{color}			% farben
    \definecolor{lgray}{rgb}{0.9,0.9,0.9} % hintergrundfarbe
    
    % Rahmen mit 3 Argumenten: Linienstärke, Titel, Inhalt
    \newcommand{\myFrame}[3]{
    \renewcommand{\ULthickness}{#1}
    \vbox{
    % linie oben mit titel in ovaler box
    \sout{\hspace{25pt}} \hspace*{-5pt} \Ovalbox{#2} \hspace*{-5pt} \sout{\hspace{372pt}}
    \vskip -8pt
    \hbox{
      \hspace*{-8pt}
      \vrule width #1 % linie links
      \vbox{\vskip 8pt{} \colorbox{lgray}{#3} }%
      \hspace*{8pt}
      \vrule width #1 % linie rechts
    }%
    % linie unten
    \hrule height #1
    }
    }
    
    \newcommand{\myBox}[1]{
      \myFrame{1pt}{ABCDEFG}{
          \begin{minipage}[htb]{\linewidth}
    		\begin{multicols}{2}
    		  #1
    		\end{multicols}
          \end{minipage}
      }
    }
    
    \begin{document}
    \myBox{
     \blindtext \\ \blindtext \\
     \blindtext \\ \blindtext \\
     \blindtext \\ \blindtext \\
     \blindtext \\ \blindtext
    }
    
    \end{document}
    also ich bin mit meinem latein am ende. hoffentlich kann mir jemand von euch mit einer idee weiter helfen.

    strolch

  2. #2
    Registrierter Benutzer
    Registriert seit
    17.02.2010
    Beiträge
    685
    Hast Du Dir schon das Paket framed angeschaut? Eventuell auch mdframed (ganz neu, ich habe es noch nicht benutzt).

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.05.2010
    Beiträge
    84
    ja, habe ich. beide pakete unterstuetzen keinen titel. und mit mdframed habe ich ausprobiert, ob ich da einen zweispaltigen text hinein hinein packen kann.
    die fehlermeldung lautet dann immer: TeX capacity exceeded, sorry [save size=5000] ich habe den wert daraufhin mal auf 15000 erhoeht, mit dem gleichen resultat.

    boites und niceframe funktionierten leider auch nicht. wobei boites ja schon mal einen rahmen mit zentrierten titel bereitstellt. es trat aber der gleiche fehler wie bei mdframed auf. das problem bei niceframe wieß ich jetzt nicht mehr genau.

  4. #4
    Registrierter Benutzer Avatar von lockstep
    Registriert seit
    31.08.2008
    Beiträge
    1.487
    Zitat Zitat von strolch Beitrag anzeigen
    mit mdframed habe ich ausprobiert, ob ich da einen zweispaltigen text hinein hinein packen kann.
    die fehlermeldung lautet dann immer: TeX capacity exceeded, sorry [save size=5000] ich habe den wert daraufhin mal auf 15000 erhoeht, mit dem gleichen resultat.
    Nun, zumindest mit einer multicols-Umgebung innerhalb der mdframed-Umgebung funktioniert es:

    Code:
    \documentclass{article}
    
    \usepackage{mdframed}
    \usepackage{multicol}
    \usepackage{blindtext}
    
    \makeatletter
    \g@addto@macro{\mdframed}{\setlength{\multicolsep}{0pt}}
    \makeatother
    
    \begin{document}
    
    \blindtext
    
    \begin{mdframed}
    \begin{multicols}{2}
    \blindtext
    \end{multicols}
    \end{mdframed}
    
    \blindtext
    
    \end{document}
    Innerhalb der mdframed-Umgebung wird zusätzlich \multicolsep auf 0pt gesetzt, um "doppelte" Abstände zu vermeiden.

    lockstep
    idxlayout - Konfigurierbares Index-Layout, kompatibel mit KOMA-Script und memoir

  5. #5
    Registrierter Benutzer
    Registriert seit
    03.05.2010
    Beiträge
    84
    mh, ist ja merkwürdig. funktioniert bei mir auch.
    nur leider wird der rahmen nicht umgebrochen, wenn ich etwas mehr hinein packe. so z.b.:

    Code:
    \begin{mdframed}
    \begin{multicols}{2}
    \blindtext \\ \blindtext \\
    \blindtext \\ \blindtext \\
    \blindtext 
    \end{multicols}
    \end{mdframed}

  6. #6
    Registrierter Benutzer Avatar von lockstep
    Registriert seit
    31.08.2008
    Beiträge
    1.487
    Stimmt - da war ich offenbar zu optimistisch, was das Zusammenspiel zwischen mdframed und multicol betrifft.

    Ich kann leider nicht beurteilen, ob bzw. mit welchem Aufwand dein Wunsch erfüllt werden kann. Das Paket mdframed ist allerding brandneu und wird offenbar rasch weiterentwickelt - ein Featurewunsch an den Paketautor Marco Daniel hilft also vielleicht.

    (Oder jemand aus diesem Forum hat eine Idee. )

    lockstep
    idxlayout - Konfigurierbares Index-Layout, kompatibel mit KOMA-Script und memoir

  7. #7
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hi,

    multicol und das Paket framed / mdframed speichern den Inhalt jeweils in einer savebox. framed bestimmt nun den Platz auf der Seite und splittet evtl. die savebox, um sie auf mehrere Seiten zu verteilen. multicol macht das gleiche. Das. bedeutet, du hast eine savebox in der savebox. Die Längenübergabe / Berechnung passt daher nicht.

    Du könntest dir deine eigene multicol-Umgebung bauen, welche einen Rahmen hinzufügt. mdframed kann derzeit noch nicht mit multicolumn twocolumn Umgehen, was bei framed aber funktioniert.
    EDIT: multicolumn war falsch, twocolum ist gemeint
    Gruß
    Marco
    Geändert von mechanicus (03-05-2010 um 19:22 Uhr)

  8. #8
    Registrierter Benutzer
    Registriert seit
    03.05.2010
    Beiträge
    84
    danke schon mal für eure antworten. nur so richtig weiter bin ich immer noch nicht.

    @mechanicus
    das ist doch schon mal eine gute erklaerung, wieso es so wie ich es mit mdframed und multicol nicht funktioniert. danke.
    die kombination framed und twocolum bringt leider auch nicht das gewuenschte ergebnis. es werden zwar zwei spalten erzeugt, nur sind die separat eingerahmt. ich wollte aber einen zweispaltigen text, der von nur einem rahmen umgeben ist. wie im bsp. zu sehen ist.

    Code:
    \documentclass{article}
    
    \usepackage{framed}
    \usepackage{blindtext}
    \usepackage[english]{babel}
    
    \begin{document}
    \blindtext
    
    \begin{framed}
    \twocolumn
    
    \blindtext \\ \blindtext \\
    \blindtext \\ \blindtext \\
    \blindtext 
    \end{framed}
    
    \blindtext
    
    \end{document}

    ich haette nicht gedacht, dass so ein kleiner rahmen mit titel, zweispaltigem text und farbigem hintergrund so viel arbeit machen wuerde.

    strolch

  9. #9
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von strolch Beitrag anzeigen
    ich haette nicht gedacht, dass so ein kleiner rahmen mit titel, zweispaltigem text und farbigem hintergrund so viel arbeit machen wuerde.
    Ich früher auch nicht -- Aber wie gesagt, nutze die Möglichkeit, dir dein eigenes Multicol-Paket zu schreiben. Vielleicht komme ich auch am Wochenende dazu, mit etwas genauer zu überlegen, ob man eine Einbindung von multicol vornehmen kann.

    Gruß
    Marco

  10. #10
    Registrierter Benutzer
    Registriert seit
    03.05.2010
    Beiträge
    84
    Zitat von mechanicus
    Aber wie gesagt, nutze die Möglichkeit, dir dein eigenes Multicol-Paket zu schreiben.
    ich hoffte es gibt eine andere loesung, die ich nur noch nicht kenne bzw. gefunden habe, bevor ich anfange pakete umzuschreiben, aber ich werde es mir mal ansehen.
    vielleicht kann man ja mdframed und multicol kombinieren.

  11. #11
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Hallo,

    der folgende Vorschlag hat ein paar Einschränkungen:
    Wird \Geteilt verwendet, sind nach nach dem Einfügen und bei jeder Verschiebung des enthaltenen Seitenumbruches 2 Durchläufe nötig, damit die Boxen wieder an der richtigen Stelle sind.
    Innerhalb von \Geteilt muss genau ein Seitenumbruch erfolgen. Ist kein Seitenumbruch enthalten muss \Ungeteilt verwendet werden.
    Auf der zweiten Seite liegt die Box über dem Text. Deshalb muss als Füllfarbe die Schriftfarbe mit einer entsprechenden Transparenz verwendet werden.

    Code:
    \documentclass[parskip=half-]{scrartcl}
    
    \usepackage[ngerman]{babel}
    \usepackage{blindtext}
    \usepackage{tikz}
    \usepackage{multicol}
    
    \newenvironment{Quote}%
    	{\begin{list}{}%
    		{\setlength\leftmargin{0.5\multicolsep}\setlength\rightmargin{\leftmargin}}%
    		\item[]\ignorespaces}%
    		{\end{list}}
    		
    %Befehl für Box ohne Seitenumbruch
    %drei obligatorische Argumente: Linienstärke, Titel, Inhalt
    \newcommand\Ungeteilt[3]{\noindent%	
    	\begin{tikzpicture}[line width=#1]
    		\pgfmathparse{\textwidth-\pgflinewidth-\multicolsep}
    		\node(N)[preaction={fill,opacity=0.1}]%
    			[draw,text width=\pgfmathresult pt,text justified,inner sep=0.5\multicolsep,outer sep=0pt]%
    			{\vspace*{0.5\baselineskip}\begin{multicols}{2}#3\end{multicols}};
    		\path (N.north west)+(1,0)node[draw,fill=white,anchor=west,rectangle,rounded corners=2mm]{#2};
    	\end{tikzpicture}}
    
    %Befehl für Box mit genau einem Seitenumbruch
    %ein optionales Argument: Längenkorrektur der Box auf der ersten Seite
    %drei obligatorische Argumente: Linienstärke, Titel, Inhalt
    \newcommand\Geteilt[4][1pt]{\noindent%
    	\begin{tikzpicture}[remember picture, overlay,line width=#2]
    		\pgfmathsetlengthmacro\x{1in+\hoffset+\oddsidemargin+\textwidth-0.5\pgflinewidth}
    		\pgfmathsetlengthmacro\y{1in+\voffset+\headsep+\headheight+\topmargin+\textheight+0.5\pgflinewidth+#1}
    		\path(current page.north west)+(\x,-\y)coordinate(B);
    		\coordinate(O)at (0.5\pgflinewidth,-0.5\pgflinewidth);
    		\fill[opacity=0.08](O)rectangle(B);
    		\draw(B-|O)--(O)-|(B)--(B);
    		\path (O)+(1,0)node[draw,fill=white,anchor=west,rectangle,rounded corners=2mm]{#3};
    	\end{tikzpicture}%
    	\begin{Quote}
    	\begin{multicols}{2}
    		#4
    	\end{multicols}
    	\end{Quote}
    	\vspace*{-2\baselineskip}
    	\begin{tikzpicture}[remember picture, overlay,line width=#2]
    		\pgfmathsetlengthmacro\x{1in+\hoffset+\oddsidemargin+\textwidth-0.5\pgflinewidth}
    		\pgfmathsetlengthmacro\y{1in+\voffset+\headsep+\headheight+\topmargin-0.5\pgflinewidth}
    		\path(current page.north west)+(\x,-\y)coordinate(B);
    		\coordinate(O)at (0.5\pgflinewidth,0.5\pgflinewidth);
    		\fill[opacity=0.1](O)rectangle(B);
    		\draw(B-|O)--(O)-|(B)--(B);
    	\end{tikzpicture}}
    
    	
    \begin{document}
    
    \Ungeteilt{1pt}{langer Titel}{\blindtext[1]}
    
    \blindtext
    
    \Geteilt{1pt}{Titel}{\foreach \i in {1,...,4}{\blindtext}}
    
    \blindtext
    
    \Ungeteilt{1pt}{langer Titel}{\blindtext[1]}
    
    \end{document}
    Gruß
    Elke

  12. #12
    Registrierter Benutzer
    Registriert seit
    03.05.2010
    Beiträge
    84
    hey, cool, danke elke, das sieht doch schon mal genau so aus, wie ich es mir vorgestellt habe. muss ich halt, wenn alles fertig geschrieben ist, noch mal genau ueberpruefen, ob wirklich die richtige box verwendet wurde aber damit kann ich vorerst leben.

    strolch

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •