PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spaltenvorschub erzwingen



DieterH
10-05-2010, 13:18
Hallo,

ich setze Text auf DIN A4 zweispaltig mit \multicolumns. Bei dem zu setzenden Text handelt es sich um Absätze, die durch eine Leerzeile von einander getrennt sind.

"Überschriften" für Gruppen von Textblöcken (Absätze) gibt es auch, sie sind Einzeiler,die ich mit \textsl zur optischen Hervorhebung geneigt setze.

Das Problem, für das ich eine Lösung suche:

Manchmal bleibt die "Überschrift" am unteren Ende der Spalte und der ihr folgende Textblock wird oben in die nächste Spalte gesetzt. Das sieht nicht gerade professionell aus.

Manuelle Korrektur (vertikale Abstände einfügen ist nicht immer erfolgreich, oder nur nach vielem Probieren. Ein ingenieursmäßiges Vorgehen sieht anders aus.

Kurzum, ich suche einen Befehl wie newpage", der aber zwingend auf eine neue Spalte vorschiebt.

Hat jemand eine brauchbare Idee?

Vielen Dank im voraus.

Gruss
Dieter

lockstep
10-05-2010, 14:34
Manchmal bleibt die "Überschrift" am unteren Ende der Spalte und der ihr folgende Textblock wird oben in die nächste Spalte gesetzt.

Die für Überschriften gedachten LaTeX-Befehle wie \section, \subsection etc. inkludieren einen Mechanismus, der den von dir genannten Effekt verhindert. Mangels Minimalbeispiel vermute ich daher, dass du deine "Überschriften" auf andere Weise erzeugst. Empfehlung: Wechsle auf einen angemessenen LaTeX-Standardbefehl (bzw. bei Verwendung einer KOMA-Script-Klasse auch auf \minisec) und passe das Aussehen dieser Überschrift ggf. deinem Geschmack an.

Wenn meine Vermutung falsch war, ersuche ich um ein Minimalbeispiel.

lockstep

cookie170
10-05-2010, 14:36
Hallo,

ich würde die Überschriften auch als solche auszeichnen, dann regelt TeX das von selbst. Was hindert Dich, \section{} oder \minisec{} zu verwenden?

Im übrigen nennt die multicol-Doku ("texdoc multicol" auffe Kommandozeile) den Befehl \columnbreak.

Gruß,
Alexander

DieterH
10-05-2010, 15:14
Hallo lockstep,
hallo cookie170,

ich verwende bereits in meinem großen Dokument die Gliederungselemente \chapter, \section, \subsection und \subsubsection. Feinere Gliederungspunkte behandle ich manuell, indem ich sie mit \textsl auszeichne, und diese sind jeweils in einer längeren \begin{multicols}...\end{multicols} Umgebung.

Ein Minimalbeispiel für mein Problem zu konstruieren ist ein Problem, weil ich es mühsam austarieren müsste, damit der beschriebene Effekt - die künstliche "Überschrift" am Ende der einen Spalte und der ihr folgende Text auf den Beginn der nächsten Spalte - gesetzt wird.

Es wäre hilfreich, einen LaTeX-Befehl zu haben, der die aktuelle Textposition einfach auf den Beginn der nächsten Spalte setzt. Das ist eine "harte" Vorgabe, ähnlich wie \newpage.

\needspace hilft auch nicht wirklich, weil der Befehl zwar den geforderten Platz reserviert, aber für mein Problem geht es um den bedingten Einsatz eines solchen Befehls: Nur dann auf den Beginn der nächsten Spalte, wenn in der aktuellen Spalte nicht genügend Platz ist.

Ich versuche es mit \minisec heute abend.

Danke
Gruss
Dieter

DieterH
10-05-2010, 15:25
@cookie170

Danke für Deinen Hinweis auf \columnbreak.

Ich gehe davon aus, dass dieser Befehl das tut, was ich für mein Dokument benötige. Heute abend probiere ich ihn aus.

lockstep
10-05-2010, 15:33
ich verwende bereits in meinem großen Dokument die Gliederungselemente \chapter, \section, \subsection und \subsubsection. Feinere Gliederungspunkte behandle ich manuell, indem ich sie mit \textsl auszeichne

Nach \subsubsection gibt es noch \paragraph und \subparagraph (sowie in KOMA-Script \minisec), und all diese Befehle können auf das von dir gewünschte Aussehen getrimmt werden. \columnbreak mag rasche Abhilfe für eine bestimmte Dokumentversion schaffen, ist aber keine allgemeine Lösung.

lockstep

DieterH
10-05-2010, 15:39
@lockstep

Danke für Deinen Hinweis auf \paragraph und \subparagraph. Ich kannte die beiden Befehle nicht. *schäm*

Gruss
Dieter

DieterH
10-05-2010, 15:45
Ich erweitere meine ursprüngliche Anfrage:

1. Mit welchem Befehl kann man in einer \multicols-Umgebung abfragen, wieviel Platz in der aktuellen Spalte zur Verfügung steht?

2. Mit welchem Befehl kann man in einer Nicht-\multicols-Umgebung abfragen, wieviel Platz auf der aktuellen Seite zur Verfügung steht?

3. Wie benutzt man syntaktisch korrekt den zurückgelieferten Wert, z.B. in einer Abfrage wie "Falls noch vertikaler Platz von mindestens 6\baselineskip vorhanden ist, mache X andernfalls Y?

Danke
Gruss
Dieter