Sie sind hier

Zeilenumbruch vor und nach quote Umgebung verhindern?

Hallo!

Ich möchte kleinere Zitate einfach in den normalen Textverlauf einbinden, ohne die Formatierung zu ändern.
Mein versuch, die quote-Umgebung zu verändern hat auch teilweise funktioniert.

Was mich jetzt noch stört sind:¹

  1. automatischer Zeilenumbruch nach der quote-Umgebung
    => kann ich einen zusätzlichen Befehl wie \nolinebreak² in meinen \renewenvironment²-Befehl einbinden?
    welchen?
  2. Leerzeile nach der quote-Umgebung
    => gibt es einen Befehl um diese Leerzeile zu unterbinden?

    etwa "\bottomsep²" oder so?
    wenn ich²

                \setlength{\bottomsep}{0em}%

    einfüge, bekomme ich ne Fehlermeldung "undefined control sequence"

Vielen herzlichen Dank für jeden Tipp! :-)

PS Hier ist noch der Code, den ich bis jetzt habe:²

\renewenvironment{quote}%
    {%
    \setlength{\leftmargin}{0em}%
    \setlength{\rightmargin}{0em}%
    \setlength{\topsep}{0em}%
    \setlength{\parsep}{0pt}%
    \setlength{\partopsep}{0pt}%
    \setlength{\parskip}{0pt}%  
    \setlength{\itemsep}{0pt}%
    }%

[Admin-Edit:]

  1. <ol> </ol> Tags eingefügt (siehe Formatierungshinweise)
  2. <code></code> Tags eingefügt (siehe Formatierungshinweise)

Hab's durch Trial & Error rausgefunden! :-)

Da ich nicht weiß, wie ich dieses Topic löschen kann,
poste ich einfach mal meine Lösung und wünsche ein frohes neues Jahr!¹

\renewenvironment{quote}%
    {%
    \setlength{\leftmargin}{0em}%
    \setlength{\rightmargin}{0em}%
    \setlength{\topsep}{0em}%
    \setlength{\parsep}{0pt}%
    \setlength{\partopsep}{0pt}%
    \setlength{\parskip}{0pt}%  
    \setlength{\itemsep}{0pt}%
    }%
    {\nolinebreak}

[Admin-Edit:]

  1. <code></code> Tags eingefügt (siehe Formatierungshinweise)

Eigentlich macht diese Umgebung doch auch ohne das \nolinebreak gar nichts, außer den Absatzabstand auf 0 zu setzen (was weitgehend der Voreinstellung entspricht). Ohne Listenumgebung werden jedenfalls Längen wie \parsep, \partopsep und \itemsep ohnehin nicht verwendet. Eine Leerzeile würde die Umgebung jedenfalls nicht provozieren. Das \nolinebreak wiederum dürfte eigentlich auch nichts bewirken, da der end-Code noch vor dem Ende der Gruppe ausgeführt wird, also die dadurch bewirkte \penalty-Einstellung vor dem von \end{quote} abschließend eingefügten \endgroup vorgenommen wird und durch das \endgroup dann wieder verloren geht. Man könnte die Umgebung also IMHO genausogut auf

\renewenvironment{quote}{%
}{%
}

zusammenstreichen und hätte dann wirklich eine Umgebung, die nichts tut. Was allerdings der Sinn einer Umgebung, die nichts tut, ist, erschließt sich mir nicht. Vielleicht ist das der Grund, warum ich das Ganze nicht verstehe.

Was ich eigentlich erwähnen wollte: Das Paket csquotes bietet schöne Unterstützung für Zitate unterschiedlicher Art.

Wer sich selbst zu wichtig nimmt, braucht von anderen nicht mehr wichtig genommen zu werden.

Also ich habe wohl noch weniger Ahnung als Du, deshalb kann ich auch nichts erklären...
Ich habe die den Code irgendwo aus dem Netz geholt und damit rumprobiert. Bis ich glücklicherweise zufällig das "Richtige" gemacht habe und das bekommen habe was ich wollte. :-)

Ich habe es nochmal ausprobiert das Ganze (siehe oben) wegzulassen.
Dann habe ich vor und nach dem Zitat eine Leerzeile - das Zitat selbst steht alleine dazwischen.
Wenn ich nur das nolinebreak Kommando weglasse, dann bricht die Zeile direkt nach dem Zitat, so dass die Fußnote (die ich ohne Leerzeichen direkt danach platziert habe) alleine in der neuen Zeile steht.

Seltsam, dass bei mir so viel passiert obwohl Du sagst, dass bei meiner Kommandosumme am Ende Null rauskommt.
Naja, ich bin froh dass es funktioniert!

Vielen Dank außerdem für den Tipp mit dem csquotes Paket!

Bild von Markus Kohm

Ratte hat völlig recht. Woher bei Dir die Leerzeilen kommen, wird wohl niemand erraten. Bei mir gibt es mit Rattes Definition nicht einmal einen Zeilenumbruch nach dem Zitat:

\documentclass{article}
\renewenvironment{quote}{}{}
\begin{document}
Jetzt kommt ein Zitat: \begin{quote}Das Zitat.\end{quote}\footnote{Das war das
  Zitat} Das steht nach dem Zitat.
\end{document}

und wenn ich exakt Deinen Code verwende und den noch um den fehlenden end-Teil der Umgebungsdefinition erweitere auch nicht:

\documentclass{article}
\renewenvironment{quote}%
{%
\setlength{\leftmargin}{0em}%
\setlength{\rightmargin}{0em}%
\setlength{\topsep}{0em}%
\setlength{\parsep}{0pt}%
\setlength{\partopsep}{0pt}%
\setlength{\parskip}{0pt}%
\setlength{\itemsep}{0pt}%
}%
{}
\begin{document}
Jetzt kommt ein Zitat: \begin{quote}Das Zitat.\end{quote}\footnote{Das war das
  Zitat} Das steht nach dem Zitat.
\end{document}

Dein Beitrag ist also völlig untauglich, um das Problem zu reproduzierbar und damit lösbar zu machen.

Ups, tut mir leid - ich kann verstehen, dass es Euch nervt, wenn wir Newbies immer nur Ausschnitte präsentieren und erwarten, dass das entweder reicht oder Ihr hellsehen könnt. Ich bin nicht darauf gekommen, dass der Fehler woanders liegen könnte. Ich dachte das wäre in der quote Umgebung wohl so definiert.

Aber: danke für den Tipp - ich habe herausgefunden, dass ich die Leerzeile mit "parskip" in \documentclass[...]¹ sozusagen selber zu verantworten habe. Das Zitat wurde wohl als Absatz definiert oder so.

Hab die Leerzeile mit \setlength{\parskip}{0pt}¹ jetzt wegbekommen.

(Und die zwischen den normalen Absätzen auch - dachte dafür wären meine Leerzeilen im Code verantwortlich und wollte sie später löschen- waren sie aber wohl nicht.)

Jetzt sieht alles so auch wie ich es mir vorgestellt habe. :-)

Viele Grüße,
snip

[Admin-Edit:]

  1. <code></code> Tags eingefügt (siehe Formatierungshinweise)

Bild von Markus Kohm

Leerzeilen im Code markieren Absätze. Du solltest die also nur dort machen, wo Du auch wirklich einen Absatz haben willst. Natürlich solltest Du auch nicht einfach \parskip manuell auf 0 setzen, um den Absatzabstand abzuschalten. Stattdessen solltest Du lieber die Option parskip rauswerfen oder alternativ die Voreinstellung parskip=false explizit wählen (siehe KOMA-Script-Anleitung).

Wenn Du die Bedeutung von Leerzeilen im Code noch nicht gekannt hast, solltest Du mal gründlich eine Einführung in LaTeX wie »l2kurz« durchlesen oder Dir gleich ein preiswertes Buch wie das Praxisbuch zulegen.

Comments for "Zeilenumbruch vor und nach quote Umgebung verhindern?" abonnieren