\newenvironment mit oberem Abstand

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: \newenvironment mit oberem Abstand

von Xenara » Di 14. Sep 2010, 17:15

Das war eigentlich ganz einfach, denn die Lösung stand fast im Klartext in dem von iTob verlinkten Wiki:
%Umgebung mit Argument
\newenvironment{KleinerAbsatzmitAbstandDavor}[1]{\par\vspace{#1}\tiny}{\par}
Aber manchmal sieht man auch einfach den Wald vor lauter Bäumen nicht.

von Sven » Di 14. Sep 2010, 17:05

Juchu, genau so hab ich mir das vorgestellt. Jetzt versteh ich auch, wie's funzt: mit \par macht man einen Absatz und erst zwischen Absätzen kann man ja \vspace anwenden. Hätte ich auch drauf kommen können.
Vielen vielen Dank!

von Xenara » Di 14. Sep 2010, 16:54

Vielleicht habe ich dich falsch verstanden, ohne Minimalbeispiel ist es of schwierig.
Aber wie wärs mit sowas?
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}

\newenvironment{definition}{\par\vspace*{2cm}\noindent Definition:}

\begin{document}

Text ohne Absatz davor.
\begin{definition}	
Hier steht irgendwas von einer Definition. Und nach einiger Zeit, wenn die Zeile dann auch wirklich voll ist, gibt es auch einen Zeilenumbruch.
\end{definition}
Text ohne Absatz danach.

\end{document}

von Sven » Di 14. Sep 2010, 16:40

Da nke für die schnelle Antwort. Ja, das Bespiel hatte ich auch schon gesehen. Aber das ist doch prinzipiell genau das, was ich gemacht habe. Würde ich nur den Abstand wollen - und nicht noch das Wort Definition - so würde das ja auch klappen. Die Syntax ist mir klar.
Ich würde ja auch \newtheorem verwenden, aber da stört mich, das der Text kursiv ist und kein Zeilenumbruch in der ersten Zeile stattfindet. Wenn einer weiß, wie ich das hinbekomme wäre auch super!

von iTob » Di 14. Sep 2010, 16:29

Das Problem liegt dra, dass diese Abstände nur zwischen den Absätzen auftauchen dürfen.
Siehe z.B. im LaTeX-Begleiter S. 890. In kurzform steht dort, dass vertikale Abstände immer zwischen Absätzen stehen müssen.

Mit einem vollständigen Minimalbeispiel, hätte ich dir das auch schnell programmiert :wink:

Außerdem bin ich nicht sicher, ob du die Syntax von \newenvironment richtig verstanden hast:
\newenvironment{<Name>}{<VOR Umgebungsinhalt>}{<NACH Umgebungsinhalt>}

% in lang:

\newenvironment{<Name>}{%
  % hier kommt alles rein, was vor dem
  % Umgebungsinhalt ausgegeben werden soll
}{%
  % hier kommt alles rein, was nach dem
  % Umgebungsinhalt ausgegeben werden soll
}

Im Wiki wird übrigens genau dein Problem als Beispiel behalndelt ;-)

\newenvironment mit oberem Abstand

von Sven » Di 14. Sep 2010, 16:11

Hallo!

Ich möchte mir eine eigene Umgebung für Definitionen bastlen. Dies findet man ja auch zuhauf im Netz. Ich habe aber nirgendwo gefunden, wie man vor Begin der Umgebung einen Abstand einfügt. Ich wollte das so machen:
\newenvironment{defi}{\vspace{1cm} Definition:}
Ergebnis ist aber, dass zunächst das Wort Definition und dann erst der Abstand ausgegeben wird. Ich hab's auch schon so versucht:
\newenvironment{geschachtelt}{\vspace{1cm}}{Definition}

\newenvironment{defi}{\begin{geschachtelt}\end{geschachtelt}}
Ergebnis ist das gleiche - ich verzweifele hier bald. Kann mir jemand sagen wie das zu lösen ist?
Falls wichtig: ich benutze Miktex 2.8 unter Win7

Gruß, Sven

Nach oben