Leerzeile < LaTeX < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 21:36 Di 12.06.2012 | Autor: | Pacapear |
Hallo zusammen!
Ich habe zwei Zeilen Text und dannach eine enumerate-Umgebung:
|Rightarrow Test1. ||
Test2:
|begin{enumerate}
|item Item1
|item Item1
|end{enumerate}
Nun möchte ich zwischen den ersten beiden Zeilen einen Leerraum machen. Aber egal, was ich mache, der Leerraum ist nicht zwischen "Test1" und "Test2", sondern zwischen "Test2" und der Aufzählung. Ich habe es mit || probiert oder mit |newline oder mit |vspace{|baselineskip}:
|Rightarrow Test1. ||
|vspace{|baselineskip}
Test2:
|begin{enumerate}
|item Item1
|item Item1
|end{enumerate}
Wenn ich |newline benutze, dann bekomme ich sogar noch die Fehlermeldung "Underful hbox (badness 10000).
Könnt ihr mir sagen, wie ich die Leerzeile dorthin kriege, wo sie hin soll?
Vielen Dank.
LG Nadine
|
|
|
|
Hi,
mit ~|newline ~ klappt es:
|Rightarrow Test1. ||
~ |newline ~
Test2:
|begin{enumerate}
|item Item1
|item Item1
|end{enumerate}
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 22:04 Di 12.06.2012 | Autor: | Pacapear |
Hallo!
Danke für deine schnelle Antwort.
> Hi,
>
> mit ~|newline ~ klappt es:
>
> |Rightarrow Test1. ||
> ~ |newline ~
> Test2:
> |begin{enumerate}
> |item Item1
> |item Item1
> |end{enumerate}
Hmm, einfach Tilde, Backslash, newline, Tilde?
Ich hab es mit und ohne Leerzeichen probiert, aber es tut sich nix, bzw. ich bekomme gar keine Leerzeile.
Ich bekomme die Leerzeile quasi nur, wennn ich zweimal "newline" oder sowas einbaue, aber dann habe ich das Problem, dass ich diese Fehlermeldung mit der underful box bekomme.
Ich habe dieses Problem mit den Leerzeilen öfters. Ich habe einen Teil Text, der in der Schreibmaschinen-Umgebung steht. Auch davor würde ich gerne eine Leerzeile einbauen, aber es klappt einfach nicht. Ich habe ein |vspace gemacht, und die Leerzeile erscheint NACH der ersten Zeile des Textes in der Umgebung
Gibt es noch andere Möglichkeiten?
LG Nadine
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 23:53 Di 12.06.2012 | Autor: | rainerS |
Hallo Nadine!
> Hallo!
>
> Danke für deine schnelle Antwort.
>
> > Hi,
> >
> > mit ~|newline ~ klappt es:
> >
> > |Rightarrow Test1. ||
> > ~ |newline ~
> > Test2:
> > |begin{enumerate}
> > |item Item1
> > |item Item1
> > |end{enumerate}
>
> Hmm, einfach Tilde, Backslash, newline, Tilde?
Das geht zwar, ist aber eine Krücke, da keine saubere Textauszeichnung. Der ganze Punkt bei LaTeX ist doch die Trennung von logischer Struktur und Layout, und das wurschtelt die beiden Konzepte durcheinander.
Einfachste Lösung: \\[laengenangabe], siehe unten.
> Ich hab es mit und ohne Leerzeichen probiert, aber es tut
> sich nix, bzw. ich bekomme gar keine Leerzeile.
>
> Ich bekomme die Leerzeile quasi nur, wennn ich zweimal
> "newline" oder sowas einbaue, aber dann habe ich das
> Problem, dass ich diese Fehlermeldung mit der underful box
> bekomme.
>
> Ich habe dieses Problem mit den Leerzeilen öfters. Ich
> habe einen Teil Text, der in der Schreibmaschinen-Umgebung
> steht. Auch davor würde ich gerne eine Leerzeile einbauen,
> aber es klappt einfach nicht. Ich habe ein |vspace gemacht,
> und die Leerzeile erscheint NACH der ersten Zeile des
> Textes in der Umgebung
Es ist eigentlich ganz einfach: vertikaler Abstand kann nur zwischen Zeilen eingefügt werden, und daher wirkt ein \vspace inmitten eines Absatzes erst nach dem Ende der aktuellen Zeile.
\\ bzw \newline ist keine Anweisung eine Leerzeile einzufügen, sondern erzwingt einen sofortigen Zeilenumbruch. Zwei \newline hintereinander bedeuten also einen doppelten Zeilenumbruch, und da kein Text da ist, gibt es die Fehlermeldung über die Underfull hbox.
Was geht ist folgendes
1: | text1\\[\baselineskip]
| 2: | text2 |
um zwischen text1 und text2 einen vertikalen Abstand der Größe \baselineskip einzufügen.
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 13:59 Mi 20.06.2012 | Autor: | Pacapear |
Hallo Rainer!
> Es ist eigentlich ganz einfach: vertikaler Abstand kann nur
> zwischen Zeilen eingefügt werden, und daher wirkt ein
> [mm][code]\vspace[/code][/mm] inmitten eines Absatzes erst nach dem
> Ende der aktuellen Zeile.
Wann genau hab ich denn einen Absatz und wann nur eine Zeile?
Ich hatte eine Zeile mit normalem Text, und danach mehrere Zeilen in Schreibmaschinenschrift, aber in jeder Zeile einen neuen Befehl für die Schreibmaschinenschrift, nicht als Umgebung. Das sind doch alles Zeilen, oder nicht? Weil ich das vspace zwischen der Zeile mit normalem Text und der ersten mit Schreibmaschinentext stehen hatte, erschienen ist die Leerzeile dann aber zwischen der ersten und zweiten Zeile in Schreibmaschinenschrift.
> Was geht ist folgendes
>
> [mm][code]text1\\[\baselineskip][/mm]
> text2[/code]
>
> um zwischen text1 und text2 einen vertikalen Abstand der
> Größe [mm][code]\baselineskip[/code][/mm] einzufügen.
Ja, das hat geklappt, danke.
Ich habe auch versucht, es vor einer itemize-Umgebung zu benutzen, weil mir der Abstand davor zu klein ist, aber nur an dieser einen Stelle, nicht generell, weswegen nicht irgendwas mit renewcommand oder so machen will. Aber das funktioniert nicht, da bekomme ich wieder eine Underful Box. Was kann ich hier machen?
Vielen Dank schonmal.
LG Nadine
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 07:44 Do 21.06.2012 | Autor: | rainerS |
Hallo Nadine!
> > Es ist eigentlich ganz einfach: vertikaler Abstand kann nur
> > zwischen Zeilen eingefügt werden, und daher wirkt ein
> > [mm][code]\vspace[/code][/mm] inmitten eines Absatzes erst nach dem
> > Ende der aktuellen Zeile.
>
> Wann genau hab ich denn einen Absatz und wann nur eine
> Zeile?
>
> Ich hatte eine Zeile mit normalem Text, und danach mehrere
> Zeilen in Schreibmaschinenschrift, aber in jeder Zeile
> einen neuen Befehl für die Schreibmaschinenschrift, nicht
> als Umgebung. Das sind doch alles Zeilen, oder nicht? Weil
> ich das vspace zwischen der Zeile mit normalem Text und der
> ersten mit Schreibmaschinentext stehen hatte, erschienen
> ist die Leerzeile dann aber zwischen der ersten und zweiten
> Zeile in Schreibmaschinenschrift.
Zum Verständnis: ich meine hier immer Zeilen im gedruckten Text, nicht in der Eingabe. In der Eingabe wird ein Absatz, also der gesamte Text zwischen Leerzeilen immer als ganzes eingelesen, dann in (Ausgabe-)Zeilen umgebrochen. Ein horizontaler Leerraum wie \hspace{1cm} ist Teil des Textes, aber ein vertikaler Leerraum ergibt mitten in einer (Ausgabe-)Zeile keine Sinn.
Ein Kommando wie \\ oder \newline erzwingt einen Zeilenumbruch innerhalb des aktuellen Absatzes (wie, das führt hier ein bischen zu weit), so dass der vertikale Leerraum nun eingefügt werden kann. Deswegen kannst du diesese Kommando nicht außerhalb eines Absatzes benutzen: dort bedeutet das Erzwingen eines Zeilenumbruchs das Einfügen einer Leerzeile -> Underfull hbox.
> > Was geht ist folgendes
> >
> > 1: | text1\\[\baselineskip]
| 2: | > > text2 |
> >
> > um zwischen text1 und text2 einen vertikalen Abstand der
> > Größe \baselineskip einzufügen.
>
> Ja, das hat geklappt, danke.
>
> Ich habe auch versucht, es vor einer itemize-Umgebung zu
> benutzen, weil mir der Abstand davor zu klein ist, aber nur
> an dieser einen Stelle, nicht generell, weswegen nicht
> irgendwas mit renewcommand oder so machen will. Aber das
> funktioniert nicht, da bekomme ich wieder eine Underful
> Box. Was kann ich hier machen?
Alle Listenumgebungen wie itemize, list, enumerate, usw. verhalten sich hier gleich: entweder das Kommando erscheint während LaTeX einen Absatz liest, dann beenden sie erstmal den Absatz. Oder das ist nicht der Fall (z.B. weil vor der Umgebung eine Leerzeile steht, oder ein Kommando wie \section), dann wird der vertikale Abstand \partopsep eingefügt.
Willst du nur in diesem Fall mehr vertikalen Abstand haben, dann benutze \vspace[1cm}. Willst du überall vor itemize mehr Abstand haben, dann erhöhe den Parameter \partopsep.
Schau dir mal die Links im LaTeX-Materialforum an.
Viele Grüße
Rainer
|
|
|
|
|
Ich weiß ehrlich gesagt nicht genau, was du überhaupt zu erreichen versuchst, aber du könntest es auch mal mit \par statt \newline versuchen. Außerdem, wenn du generell zwischen Absätzen eine Leerzeile haben willst, haben viele Dokumentenklassen dazu meines Wissens eine extra Option (beispielsweise die KOMA-Klassen).
Und noch was: Solltest du versuchen Code darzustellen (wegen der Schreibmaschinenschrift), benutze lieber eine extra Umgebung (beispielsweise aus listings) dazu, als selber rumzupfuschen. Meiner Meinung nach sollte man immer lieber noch ein Paket laden, als sich selbst umständlich was zusammenzubauen oder zu definieren.
|
|
|
|
|
Status: |
(Korrektur) kleiner Fehler | Datum: | 08:35 Fr 22.06.2012 | Autor: | rainerS |
Hallo!
> Ich weiß ehrlich gesagt nicht genau, was du überhaupt zu
> erreichen versuchst, aber du könntest es auch mal mit
> \par statt \newline versuchen.
Nein, das sind zwei völlig verschiedene Kommandos: \newline erzwingt einen Zeilenumbruch innerhalb eines Absatzes. \par ist äquivalent zu einer Leerzeile (genauer gesagt: \par ist das interne Kommando, das bei Auftreten einer Leerzeile ausgeführt wird) und beendet einen Absatz. Das bedeutet insbesondere, dass vertikaler Leerraum der Länge \parskip eingefügt und die nächste Textzeile um \parindent eingerückt wird.
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Korrektur) oberflächlich richtig | Datum: | 20:43 Fr 22.06.2012 | Autor: | Lustique |
Hallo Rainer,
danke für diese Klarstellung. Da habe ich mir ehrlich gesagt nicht so viele Gedanken zu gemacht, als ich das gepostet habe, aber ich habe ja ehrlich gesagt auch nicht so ganz gerafft, was überhaupt gewollt war. Das war also auch so ein bisschen ein Schuss ins Blaue.
|
|
|
|