PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei Probleme mit Framed



Askarel
03-03-2008, 17:59
Hallo zusammen

Ich habe zwei Probleme mitdem Package "Framed", das eine größer, das andere nicht so wild.
Folgendes: Ich benutze die Dokumentklasse Book und ein zweispaltiges Dokument per \multicols [zwingend erfoderlich!]. Ich habe nun die Subsubsection-Überschriften ein wenig geändert (siehe code), damit sie direkt über der nächsten Zeile stehen. Wenn ich jetzt aber einen Text mit einem schwarzen Balken an der linken Seite versehen will mit Hilfe von \begin{leftbar}, wird die Überschrift (oben genannte Subsubsection) mit einigem Abstand angezeigt. Das ist Problem 1.
Ich habe schon versucht, mit
\def\FrameCommand{\vrule width 3pt \hspace{0pt}} die Höhe über dem Kasten zu ändern, was keine Auswirkungen hat. Auch das direkte anfügen eines Box-Titels via \framecommand hat nichts genützt.

Das zweite Problem besteht darin, dass Framed wohl nicht mit Multicols zusammenarbeiten kann, was sich darin äußert, dass wenn der Text (mit dem schwarzen Balken an der Seite) zu lang ist, er nicht umgebrochen wird und sich ziemlich hässlich verhält. Wie kann ich das beseitigen oder zumindest umgehen?

Hier mein Code:

\documentclass[english]{article}

\usepackage{multicol}
\usepackage{framed}

\renewcommand\subsubsection{\@startsection{subsubs ection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{.2ex \@plus .2ex}%
{\noindent\normalfont\normalsize\emph}}


\begin{document}
\begin{multicols}{2}


\subsubsection{Beispielüberschrift 1}

\begin{leftbar}

Lorem ipsum

\end{leftbar}\newpage{}


\subsubsection{Beispielüberschrift 2}

\begin{leftbar}

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam
nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat
volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation
ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse
molestie consequat, vel illum dolore eu feugiat nulla facilisis at
vero et accumsan et iusto odio dignissim qui blandit praesent luptatum
zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum
dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut
wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper
suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem
vel eum iriure dolor in hendrerit in vulputate velit esse molestie
consequat, vel illum dolore eu feugiat nulla facilisis at vero et
accumsan et iusto odio dignissim qui blandit praesent luptatum zzril
delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor
cum soluta nobis eleifend option congue nihil imperdiet doming id
quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet,
consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt
ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim
veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl
ut aliquip ex ea commodo consequat. Duis autem vel eum iriure

\end{leftbar}

\end{multicols}
\end{document}


Und im Anhang gibt's noch ne Beispieldatei, die das ganze offensichtlich macht, was ich mein.

Über jede Idee wärich sehr dankbar!

Gruß Askarel

Stefan_K
03-03-2008, 18:08
Hallo Askarel,

die leftbar-Umgebung bzw. \MakeFramed fügt \topsep ein, diese Länge könntest Du (evtl. vorübergehend) auf 0 setzen.

Viele Grüße,

Stefan

Askarel
03-03-2008, 18:20
Genial!

Problem 1 wäre damit beseitigt! Vielen Dank Stefan!!

Jetzt fehlt "nur" noch das größere Übel mit dem Umbruch....

Gruß Askarel

voss
03-03-2008, 18:40
Hallo zusammen

Ich habe zwei Probleme mitdem Package "Framed", das eine größer, das andere nicht so wild.
Folgendes: Ich benutze die Dokumentklasse Book und ein zweispaltiges Dokument per \multicols [zwingend erfoderlich!]. Ich habe nun die Subsubsection-Überschriften ein wenig geändert (siehe code), damit sie direkt über der nächsten Zeile stehen. Wenn ich jetzt aber einen Text mit einem schwarzen Balken an der linken Seite versehen will mit Hilfe von \begin{leftbar}, wird die Überschrift (oben genannte Subsubsection) mit einigem Abstand angezeigt. Das ist Problem 1.
Ich habe schon versucht, mit
\def\FrameCommand{\vrule width 3pt \hspace{0pt}} die Höhe über dem Kasten zu ändern, was keine Auswirkungen hat. Auch das direkte anfügen eines Box-Titels via \framecommand hat nichts genützt.

Das zweite Problem besteht darin, dass Framed wohl nicht mit Multicols zusammenarbeiten kann, was sich darin äußert, dass wenn der Text (mit dem schwarzen Balken an der Seite) zu lang ist, er nicht umgebrochen wird und sich ziemlich hässlich verhält. Wie kann ich das beseitigen oder zumindest umgehen?


lauffähige Beispiele wären ganz nett ... ;-)

Wenn du schon zwingend zweispaltig setzen musst, dann hindert dich doch
keiner die Option twocolumn zu benutzen.


\documentclass[twocolumn,english]{article}

\usepackage{framed,blindtext,babel}
\makeatletter
\columnsep=20pt
\renewcommand\subsubsection{\@startsection{subsubs ection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{.2ex \@plus .2ex}%
{\noindent\normalfont\normalsize\emph}}
\let\MyMakeFramed\MakeFramed
\renewcommand\MakeFramed[1]{\vspace{-\topsep}\MyMakeFramed}
\makeatother

\begin{document}

\subsubsection{Beispielüberschrift 1}
\begin{leftbar}
Lorem ipsum
\end{leftbar}
\subsubsection{Beispielüberschrift 1}
Lorem ipsum


\subsubsection{Beispielüberschrift 2}
\begin{leftbar}
\Blindtext

\Blindtext
\end{leftbar}

\subsubsection{Beispielüberschrift 1}
\begin{leftbar}
Lorem ipsum
\end{leftbar}

\end{document}

Herbert

Askarel
03-03-2008, 18:59
Hallo Herbert

Das "Zwingend erforderlich" bezog sich auf die Multicols-Umgebung ;) Das hat mit einer Frage von mir von vor ein paar Tagen zu tun, wobei sich diese Umgebung als Lösung herausgestellt hat, deswegen muss die drin bleiben....

Ich hab jetzt nochmal ein Problem mit dem Abstand der Vertikalen Linie. Ich hab Topsep mittels
\def\topsep{0pt} umdefiniert. Wenn ich das ein einem Minimalbeispiel mache wie hier
\documentclass[english]{article}

\makeatletter

\usepackage{multicol}
\usepackage{framed}

\renewcommand\subsubsection{\@startsection{subsubs ection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{.2ex \@plus .2ex}%
{\noindent\normalfont\normalsize\emph}}

\def\topsep{0pt}

\makeatother

\begin{document}
\begin{multicols}{2}


\subsubsection{Beispielüberschrift 1}

\begin{leftbar}

Lorem ipsum

\end{leftbar}

\end{multicols}
\end{document}
Dann funktioniert das.
Wenn ich das aber nun in meinem Hauptdokument mache, zicken mir die Kapitelüberschriften rum mit den Fehlermeldungen "Missing number, treated as zero" und "Illegal unit of measure".
Ich geh mal davon aus, dass die Deklaration falsch ist, oder?

Gruß Askarel

voss
03-03-2008, 19:30
Das "Zwingend erforderlich" bezog sich auf die Multicols-Umgebung ;) Das hat mit einer Frage von mir von vor ein paar Tagen zu tun, wobei sich diese Umgebung als Lösung herausgestellt hat, deswegen muss die drin bleiben....

Wieso kannst du nicht auf \twocolumn umschalten?



Ich hab jetzt nochmal ein Problem mit dem Abstand der Vertikalen Linie. Ich hab Topsep mittels
\def\topsep{0pt}


\setlength\topsep{0pt}

mal ganz abgesehen davon, dass es eine ziemlich schlechte Idee ist, topsep global
auf 0pt zu setzen ...

Herbert

Askarel
03-03-2008, 20:50
Wieso kannst du nicht auf \twocolumn umschalten?

mal ganz abgesehen davon, dass es eine ziemlich schlechte Idee ist, topsep global
auf 0pt zu setzen ...

Herbert

Ich kann nicht twocolumn nutzen, weil ich Abschnitts-Überschriften mittig über ein zweispaltiges Dokument haben möchte, ohne dass dabei eine neue Seite anfängt (was twocolumn ja macht)

Und jetzt mal saudoof gefragt: Wie setz ich topsep lokal auf 0?

Gruß und danke soweit
Askarel

Stefan_K
03-03-2008, 20:55
Hallo Askarel,

Du könntest gruppieren:
\subsubsection{...}
\begingroup
\setlength{\topsep}{0pt}
\begin{leftbar}
...
\end{leftbar}
\endgroup

Falls Du es öfter brauchst, kannst Du Dir ja eine neue Umgebung definieren, die alles nötige von obigem enthält.

Viele Grüße,

Stefan

voss
03-03-2008, 21:16
Ich kann nicht twocolumn nutzen, weil ich Abschnitts-Überschriften mittig über ein zweispaltiges Dokument haben möchte, ohne dass dabei eine neue Seite anfängt (was twocolumn ja macht)

Und jetzt mal saudoof gefragt: Wie setz ich topsep lokal auf 0?


indem du dir einfach mal mein Beispiel ansiehst ...

Herbert

Askarel
04-03-2008, 12:47
Vielen Dank an euch beide!

Hab grad die beiden Möglicheiten ausprobiert. Die von Herbert zickt irgendwie, aber die von Stefan funktioniert einwandfrei. Daher werd ich jetzt einfach die Methode von Stefan nehmen und nicht weiter nach dem Problem bei dem anderen Code suchen :D

Hat noch jemand einen Tipp für das zweite Problem? Jenes, dass Latex es nicht schafft, innerhalb der Leftbar-Umgebung Seitenumbrüche zu setzen? Wie kann ich Latex das klarmachen, dass es das schafft? Für Hilfe wär ich sehr dankbar!

Gruß Askarel