PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Description Umgebung und Seiten-/Spaltenumbruch



DocHasenbein
13-11-2007, 20:28
Hallo,
ich habe so einige Probleme mit Latex und meiner Doktorarbeit. Da sie nicht viel miteinander zu tun haben, poste ich jedes Problem einzeln.

Ich am "Material und Methodenteil". Hier möchte ich in jedem Abschnitt zunächst das verwendete Material mit Bezugsquellen usw. aufführen. Hierzu habe ich die Description Umgebung verwendet. Das ganze wird ein scrbook und außerdem verwende ich expdlist.
Manche der Einträge sind ziemlich kurz. Damit das ganze nicht zu lang und die Seiten nicht zu leer werden, möchte ich diesen Teil zweispaltig setzen. Das alles habe ich in folgender Umgebung zusammengefasst:


\newenvironment{descr}[1][breaklabel]%
{\begin{multicols}{2}%
\begin{description}[\ifthenelse{\equal{#1}{breaklabel}}{\breaklabel}{} \setlabelstyle{\scshape}\compact]}%
{\end{description}\end{multicols}}


Das ganze soll dann ungefähr so funktionieren:


\item[Zentrifugen]
Beckman GS-15R\\*
Beckman GS-6R (Rotor GH 3.8)\\*
IEC MicroMax\\*
Sorvall Evolution RC\\*
Sorvall RC 3B Plus (Rotor H-6000A)\\*
\item[Röntgenfilm] X-Omat Blue XB-1, Eastman Kodak Company, Rochester, NY


Und folgende Ausgabe haben:

ZENTRIFUGEN

Beckman GS-15R
Beckman GS-6R (Rotor GH 3.8)
IEC MicroMax
Sorvall Evolution RC
Sorvall RC 3B Plus (Rotor H-6000A)
RÖNTGENFILM

X-Omat Blue XB-1, Eastman Kodak Company, Rochester, NY

Jetzt zu den Problemen:
1.) Die Items und der dazugehörige Text sollten nicht getrennt werden, weder Zeilen- noch Spaltenumbruch sollten erlaubt sein. Das bekomme ich nicht hin. Das \\* hat keine Wirkung.
2.) Spalten und auch Seitenumbrüche zwischen den Items sind erwünscht und sollten möglich sein, deshalb geht wohl kein minipage o.ä.
3.) Die gesamte Umgebung sollte nicht unterbrochen werden, leider kommt es aber teilweise vor, dass eine floating Umgebung die Auflistung auseinanderreisst.
4.) Bei einigen Items ist der dazugehörige Text eigentlich eine Aufzählung (z.B. bei den Zentrifugen). Wenn ich versuche diese als itemize-Umgebung zu setzen, bekomme ich Probleme mit den Abständen. Zu Beginn der Umgebung wird ein viel zu großer Abstand gesetzt, den ich behelfsmäßig mit \vspace{-4ex} wieder zurücknehme. Aber ich würde das ganze natürlich lieber automatisiert haben.

Hat jemand einen guten Tip? Ich überlege sonst, das ganze als longtable zu gestalten, was aber wahrscheinlich wieder zu anderen Problemen führen würde.

Vielen Dank, David

rais
14-11-2007, 08:19
Moin moin,


ich habe so einige Probleme mit Latex und meiner Doktorarbeit. Da sie nicht viel miteinander zu tun haben, poste ich jedes Problem einzeln.

das ist löblich, aber Du brauchst nicht in jedem Thread darauf hinzuweisen.


Das ganze wird ein scrbook und außerdem verwende ich expdlist.

Anstatt im Text darauf zu verweisen, solltest Du Dir angewöhnen, ein Minimalbeispiel zu erstellen -- dann brauchst Du im Text nicht darauf hinzuweisen, nebenbei finden sich so mehr potentielle Helfer.;)

Vermutlich würde ich es mit einer itemize-Umgebung innerhalb der itemize-Umgebung versuchen, statt expdlist enumitem verwenden (weil expdlist mir unbekannt ist und ich mit enumitem wenigstens schonmal was gemacht habe) und der inneren itemize-Umgebung das Label auf Nichts setzen, vielleicht auch noch die vertikalen Abstände kürzen (zumindest bei enumitem einstellbar), aber ob Dir das reicht...

MfG,

edico
14-11-2007, 08:31
Also - ich habe grosse Schwierigkeiten, Deinen Ausführungen zu folgen -- gestehe allerdings, dass ich mir dann nicht mehr die Mühe gemacht habe, ein 2. Mal zu lesen ...

Somit nur als Hinweis:
[1] warum arbeitest zu nicht mit 'nested lists' -- also Liste in Liste?
[2] Hilft Dir nicht das expdlist package?

edico

DocHasenbein
14-11-2007, 12:43
Hallo nochmal,
ich habe jetzt nochmal ein Minimalbeispiel (naja so Minimal ist es gar nicht) gemacht. In dem alle Probleme, die ich habe vorkommen. Es ist etwas konstruiert, damit es maximal schief läuft, aber ich glaube es zeigt die Probleme. Es geht mir nicht um eine Lösung für genau diesen Fall, sondern darum, ob ich das ganze irgendwie geschickter machen kann, so dass zum Beispiel floats in der Umgebung generell unterdrückt werden.
@edico: expdlist benutze ich ja, Liste in Enumeration versuche ich ja, führt aber zu manuell korrekturbedürftigen Ergebnissen.
@rais: Zu enumitem: Habe mir die Paketdokumentation mal angesehen. Ich sehe nicht, wie mir das helfen würde.

Vielleicht erwarte ich ja auch einfach zu viel, dann muss ich solche Stellen eben später von Hand optimieren. Hier jedenfalls das Minimalbeispiel:


\documentclass[
pdftex,
12pt, % Schriftgröße (12pt, 11pt (Standard))
oneside, % einseitiges Layout
appendixprefix, % Anhang wird "Anhang" vor die Überschrift gesetzt
]
{scrbook}

\usepackage{graphicx}

%% deutsche Anpassung %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}

%% Eigene Anpassungen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\linespread{1.25}
\usepackage{mathptmx}
\usepackage[scaled=0.9]{helvet}
\usepackage{expdlist} %für Erweiterung der Listenumgebungen
\usepackage{multicol} %Teile des Textes mehrspaltig setzen
\usepackage{ifthen} %Stellt den Befehl\ifthenelse zur Verfügung

\let\endgraph\endgraf %Patch für Fehler in Koma-Script

%Container für Description Environment, Optionaler Parameter: nobreaklabel
\newenvironment{descr}[1][breaklabel]%
{\begin{multicols}{2}%
\begin{description}[\ifthenelse{\equal{#1}{breaklabel}}{\breaklabel}{} \setlabelstyle{\scshape}\compact]}%
{\end{description}\end{multicols}}

\begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
\vspace{70ex} Abstand um das Minimalbeispiel auch wirklich minimal zu halten, hier ist sonst Fließtext.
Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.

\begin{table}[b]
% ich erzwinge das hier aus Demonstrationszwecken mit [b] in meiner eigentlichen Arbeit steht da nichts, trotzdem kommt es vor das die Description-Umgebung wie hier zerissen wird.
\centering
\begin{tabular}{l l}
Klein & 0,2l\\
Mittel & 0,4l\\
Groß & 0,5l\\
\end{tabular}
\caption{Wie verhindere ich das die Tabelle hier hin rutschen kann?}
\end{table}

\begin{descr}
\item[Cola] Braune Brause
\item[Fanta] Gelbe Brause
\item[Spezi] Irgendwas dazwischen.\\*
Ich möchte nicht das hier ein Spalten- oder sogar Seitenumbruch stattfindet. Passiert aber leider doch.
\item[Limonaden]
\begin{itemize}
\item Cola Hier ist der Abstand zu groß, den muss ich dann immer mit \verb+\vspace{-4ex}+ wieder zurücknehmen.
\item Fanta
\item Spezi, sollte auch nicht hier hin rutschen
\end{itemize}
\item[Zentrifugen]
Beckman GS-15R\\*
Beckman GS-6R (Rotor GH 3.8)\\*
IEC MicroMax\\*
\item[Röntgenfilm] X-Omat Blue XB-1, Eastman Kodak Company, Rochester, NY
\end{descr}

\end{document}

edico
14-11-2007, 16:09
Nun, die einzelnen Punkte ...
[1]
ich verstehe gar nicht, was Dich leitet, die Listen 2-spaltig zu setzen. Es sieht doch (zumindest mit dem hier gezeigten Text) wesentlich übersichtlicher aus und ist deutlich lesefreundlicher, wenn Du die Tabelle 'normal' und schlicht laufen lässt. Ich erkenne keinen Anlass, anders zu verfahren.
Wenn es nun allerdings anders sein soll, würde ich trotzdem die herkömmliche Umgebung wählen und für diese Liste die 2-Spaltigkeit mit dem multicol package generieren (s. Beispiel).
Unabhängig davon, kannst Du das 'Auseinanderreissen der Liste' imo mit einer multipage unterbinden (s. Besipiel).
Die mbox resp. die Hilfskrücke ~\\ als Zeilenvorschub können ggf. Helferchen sein.
Aus allem dann wiederum ein macro zu schneidern, überlass ich Dir ... ;-)

[2]
Wenn Du eine Tabelle nicht floaten lassen willst, musst Du keine float-Umgebung nehmen (Näheres s. Beispiel) floaten ist abhängig vom Verhältnis von floats und Text, demnach der Algorithmus steuert. Ggf. musst mal nach textfraction etc schauen und diese Steuerelemente zum Justieren Deiner Floats editieren.

[3]
Ob paralist evtl. angemessener sein könnte, habe ich nicht näher betrachtet ....

Wenn ich jetzt noch was nicht beachtet habe, so war es mit Absicht ;-)

edico

P.S. Ich erwähnte nicht , ob listliketab Dir noch helfen könnte ...

Dein Beispiel:

\documentclass[
pdftex,
12pt,
oneside,
appendixprefix,% Anhang wird "Anhang" vor die berschrift gesetzt
]{scrbook}

\usepackage{graphicx}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}

\usepackage{multicol}
%% Eigene Anpassungen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\linespread{1.25}
\usepackage{mathptmx}
\usepackage[scaled=0.9]{helvet}
\usepackage{expdlist} %fr Erweiterung der Listenumgebungen
\usepackage{multicol} %Teile des Textes mehrspaltig setzen
\usepackage{ifthen} %Stellt den Befehl\ifthenelse zur Verfgung

\let\endgraph\endgraf %Patch fr Fehler in Koma-Script

%Container fr Description Environment, Optionaler Parameter: nobreaklabel
\newenvironment{descr}[1][breaklabel]%
{\begin{multicols}{2}%
\begin{description}[\ifthenelse{\equal{#1}{breaklabel}}{\breaklabel}{} \setlabelstyle{\scshape}\compact]}%
{\end{description}\end{multicols}}

\begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
\vspace{70ex} Abstand um das Minimalbeispiel auch wirklich minimal zu halten, hier ist sonst Flietext.
Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.

\begin{table}[htb]%<<<<<<<<<< float-Optionen 'erweitern'
% ich erzwinge das hier aus Demonstrationszwecken mit [b] in meiner eigentlichen Arbeit steht da nichts, trotzdem kommt es vor das die Description-Umgebung wie hier zerissen wird.
\centering
\begin{tabular}{ll}
Klein & 0,2l\\
Mittel & 0,4l\\
Gro & 0,5l\\
\end{tabular}
\caption{Wie verhindere ich das die Tabelle hier hin rutschen kann?}
% no float-env; Option aendern: statt b besser htb; s.textfraction etc.
% <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
\end{table}



\begin{minipage}{\linewidth}{}%%% <<<<<<<<< 'desc zusammenhalten'
\begin{multicols}{2}
%\begin{descr}
\begin{description}
\item[Cola] Braune Brause
\item[Fanta] Gelbe Brause
\item[Spezi] Irgendwas dazwischen.\\*
Ich mchte nicht das hier ein Spalten- oder sogar Seitenumbruch
stattfindet. Passiert aber leider doch.
\item[Limonaden]\mbox{}%%% <<<<<<<<< 'Zusammenkleben' unterbinden
\begin{itemize}
\item Cola Hier ist der Abstand zu gro, den muss ich dann immer mit
\verb+\vspace{-4ex}+ wieder zurcknehmen.
\item Fanta
\item Spezi, sollte auch nicht hier hin rutschen
\end{itemize}
\item[Zentrifugen] ~\\*%%% <<<<<<<<< Zeilenvorschub aktivieren
Beckman GS-15R\\*
Beckman GS-6R (Rotor GH 3.8)\\*
IEC MicroMax\\*
\item[Rntgenfilm] X-Omat Blue XB-1, Eastman Kodak Company,
Rochester, NY
\end{description}
%\end{descr}
\end{multicols}
\end{minipage}

\end{document}