Hi,
ich möchte quote so umdefinieren, dass das Zitat, anders als das Gesamtdokument einzeilig geschrieben ist.
also vom Prinzip her sowas wie
\renewenvironment{quote}
{\begin{singlespace}\begin{quote}}
{\end{quote1}\end{singlespace}}
Das gibt aber leider ne Endlosrekursion, wie ich schon festgestellt habe. Wie umgehe ich das Problem?
Viele Grüße
Daniel
TeX ist eine Makrosprache
Makros werden in der Regel erst bei ihrer Verwendung expandiert. Etwas wie:
\def\foo{\bar}\def\bar{\foo}, würde also zwangsläufig zu einer Endlosrekursion führen, da\foobei Verwendung zunächst zu\barexpandiert würde, das dann wiederum zu\fooexpandiert wird, das wieder zu\barexpandiert wird usw.Wie man Makros unter Verwendung der bisherigen Definition umdefinieren kann, steht in der De-TeX-FAQ (Link siehe FAQ). Jetzt muss man nur noch wissen, dass
\begin{foo}intern auf\foound\end{foo}intern auf\endfoobasiert. Wobei es eventuell (nicht getestet) genügt\quoteumzudefinieren, wenn man die Anweisung\singlespacingoder\setstretchan Stelle einer Umgebung verwendet.Übrigens habe ich vorsorglich auf die Anleitung zur Umdefinierung von Anweisungen unter Rückgriff auf ihre bisherige Bedeutung in der De-TeX-FAQ schon bei Deiner letzten Frage hingewiesen.
Alles klar, Danke!
> Makros werden in der Regel erst bei ihrer Verwendung expandiert. [...]
Ja, so in etwa hab ich mir das schon gedacht.
> Jetzt muss man nur noch wissen, dass \begin{foo} intern auf \foo und \end{foo} intern auf \endfoo basiert.
Genau das war das fehlende Puzzlestück :-)
Ich mache es jetzt so:
\newcommand{\origquote}{}
\let\origquote=\quote
\renewenvironment{quote}
{\begin{origquote}\begin{singlespace}}
{\end{singlespace}\end{origquote}}
> Übrigens habe ich vorsorglich auf die Anleitung zur Umdefinierung von Anweisungen unter Rückgriff auf ihre bisherige Bedeutung in der De-TeX-FAQ schon bei Deiner letzten Frage hingewiesen.
Ich weiß. Hatte ich mir auch schon angeschaut, ebenso wie einige andere Anleitungen zu \renewenvironment etc. Aber wie gesagt: die eine Info fehlte mir noch...
Ähnliches Problem
Ich habe jetzt das gleiche Verfahren versucht, auf Auflistungen anzuwenden:
\let\origitemize=\itemize
\let\endorigitemize=\enditemize
\renewenvironment{itemize}
{\begin{singlespace}\begin{origitemize}}
{\end{origitemize}\end{singlespace}}
Das klappt grundsätzlich, allerdings ist der Abstand zwischen erstem item und vorherigem Absatz zu groß - für mich sieht das aus wie eine Leerzeile oder so. Wenn ich die Reihenfolge der Schachtelung von origitemize und singlespace änder, bleibt das Problem.
Was mache ich falsch?
Push
*schieb*