Einrücken nach Umgebung verhindern Thema ist als GELÖST markiert

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Airblader

Einrücken nach Umgebung verhindern

Beitrag von Airblader »

Hallo miteinander,

ich möchte die Absatzeinrückung hinter (selbst definieren) Umgebungen verhindern. Gekommen bin ich bis hier hin:
\newenvironment{definition}[1][]{	
	\definecolor{shadecolor}{named}{def_shade_color}
	\begin{shaded}\begin{tmp_def}[#1]
}{
	\end{tmp_def}
	\end{shaded}
	\par\noindent\ignorespacesafterend % <--
}
Die letzte Zeile sorgt dafür, dass Absätze nach der Umgebund nicht eingerückt werden, aber nur dann, wenn der Absatz ohne Leerzeile auf das Umgebungsende folgt.
Gibt es einen Befehl, mit dem ich neben Leerzeichen auch Leerzeilen unterdrücken kann?

Danke im Voraus,
air

Bitte nicht!

Beitrag von Bitte nicht! »

\ignorespacesafterend sorgt keineswegs dafür, dass der Absatzeinzug nach der Umgebung entfällt, sondern nur dafür, dass ein (oder mehrere) Leerzeichen bzw. ein einfacher Zeilenumbruch (der bekanntlich als Leerzeichen behandelt wird) nach der Umgebung ignorriert wird. Einen Absatz vermeidet man am besten dadurch, dass man keinen Absatz macht.

Wenn man die Umgebung unbedingt optisch absetzen will, sollte man statt einer Leerzeile eine leere Kommentarzeile, also eine Zeile mit nur einem % am Anfang verwenden. Bei moderenen Editoren, die Syntaxhervorhebung mit Farbe etc. beherrschen, ist das aber nicht nur nicht notwendig, sondern teilweise sogar störend. Eine gute Hervorhebung ist hingegen, wenn man den Inhalt von Umgebungen zwei oder vier Zeichen weit einrückt.

Airblader

Beitrag von Airblader »

Dass eine leere Kommentarzeile funktioniert ist mir bewusst, ebenso was der Befehl ignorespacesafterend macht. Er steht ja aber gerade in Kombination mit noindent.

Ich wäre dennoch daran interessiert, ob es eine Möglichkeit gibt, nicht nur Leerzeichen, sondern eben auch eine Leerzeile zu ignorieren.

air

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

\noindent schaltet aber den Absatz nicht ab, sondern nur den aktuellen Absatzeinzug. Schalte mal auf Absatzabstand um und Du wirst Schiffbruch erleben. Das \par nach \end{shaded} dürfte ebenfalls überflüssig sein, vorausgesetzt shaded ist das, was ich vermute (siehe meine Signatur). Ich rate in jedem Fall dringend davon ab, TeX ein inkonsistentes Verhalten aufzuzwingen. Das verwirrt mehr als es nützt.

Airblader

Beitrag von Airblader »

... und ich mache mir selbst unnötig viel Arbeit.
Da echte Absätze in dem Dokument eher selten sind, ich also in der Mehrzahl der Fälle den Einzug verhindern müsste, und es kein reiner Text ist, womit eine Seite sowieso nicht immer an der Zeile enden kann, habe ich mich jetzt entschieden das Paket parskip zu verwenden und damit von einem Einzug auf einen vertikalen Abstand umzusteigen.

Danke an euch beide,
air

Antworten