Discussion:
Unerwünschtes Leerzeichen nach makro
(zu alt für eine Antwort)
Roman
2006-04-12 11:48:33 UTC
Permalink
Hallo,
in diesem Dokument

\documentclass{article}
\newcommand{\testcmd}[1]{% abgesetzten Text einfügen
\par\noindent%
#1%
\par\noindent}

\begin{document}
\noindent bla bla
\testcmd{Abgesetzter Text}
bla bla
\end{document}

wird nach \testcmd{Abgesetzter Text} ein Leerzeichen eingefügt, so daß
das darauffolgende "bla bla" um ein Zeichen eingerückt wird. Mit einem
Kommentarzeichen nach \testcmd{Abgestzter Text} verschwindet es. Gibt es
eine elegantere Möglichkeit LaTeX mitzuteilen, dass es nach dem Kommando
am _Anfang_ einer neuen Zeile beginnen soll?
--
Gruesse Roman
Heiko Oberdiek
2006-04-12 10:57:33 UTC
Permalink
Post by Roman
\documentclass{article}
\newcommand{\testcmd}[1]{% abgesetzten Text einfügen
\par\noindent%
#1%
\par\noindent}
\begin{document}
\noindent bla bla
\testcmd{Abgesetzter Text}
bla bla
\end{document}
wird nach \testcmd{Abgesetzter Text} ein Leerzeichen eingefügt, so daß
das darauffolgende "bla bla" um ein Zeichen eingerückt wird. Mit einem
Kommentarzeichen nach \testcmd{Abgestzter Text} verschwindet es. Gibt es
eine elegantere Möglichkeit LaTeX mitzuteilen, dass es nach dem Kommando
am _Anfang_ einer neuen Zeile beginnen soll?
\ignorespaces ans Ende der Definition von \testcmd.

Viele Grüße
Heiko <***@uni-freiburg.de>
Roman
2006-04-12 12:15:27 UTC
Permalink
Post by Heiko Oberdiek
[...]
Post by Roman
Gibt es
eine elegantere Möglichkeit LaTeX mitzuteilen, dass es nach dem Kommando
am _Anfang_ einer neuen Zeile beginnen soll?
\ignorespaces ans Ende der Definition von \testcmd.
Danke.
--
Gruesse Roman
Bernd Raichle
2006-04-12 11:05:33 UTC
Permalink
Roman <***@spam.de> writes:
: Hallo,
: in diesem Dokument
:
: \documentclass{article}
: \newcommand{\testcmd}[1]{% abgesetzten Text einfügen
: \par\noindent%
^ nicht notwendig, da nach \cs Leerzeichen ignoriert werden
: #1%
^ notwendig
: \par\noindent}
:
: \begin{document}
: \noindent bla bla
: \testcmd{Abgesetzter Text}
^ Hier ...
: bla bla
: \end{document}
:
: wird nach \testcmd{Abgesetzter Text} ein Leerzeichen eingefügt, so daß
: das darauffolgende "bla bla" um ein Zeichen eingerückt wird. Mit einem
: Kommentarzeichen nach \testcmd{Abgestzter Text} verschwindet es.

... ist es dagegen notwendig, da nach einem Nicht-\cs ein Leerzeichen
beachtet wird und im horizontalen Modus (= LR-Modus) zu einem
Wortzwischenraum wird.

: Gibt
: es eine elegantere Möglichkeit LaTeX mitzuteilen, dass es nach dem
: Kommando am _Anfang_ einer neuen Zeile beginnen soll?

Abhilfe ist ein \ignorespaces _am Ende_ des Makros, das dafuer sorgt,
dass danach folgende Leerzeichen-Tokens ueberlesen werden. Uebrigens:
In einer Umgebungsdefinition kann man in den "end"-Teil ein
\ignorespacesafterend packen, damit nach einem \end{umgebung} die
Leerzeichen ebenfalls ignoriert werden (die LaTeX2e-Version sollte
hierfuer nicht zu alt sein!).


Gruss,
-bernd


Zur Erinnerung:
05.-08.07.2006: EuroTeX 2006 - 16th European TeX Conference
Debrecen, Ungarn
Infos: http://matexhu.org/eurotex2006/
Fruehbucherrabatt bis 30.4. nutzen! <<<<<<
07.-11.11.2006: TUG 2006 - Int'l TeX Conference
Marrakesch, Marokko
Infos: http://www.ucam.ac.ma/fssm/tug2006/
_____________________________________________________________________
Bernd Raichle "Le langage est source
Autor des `german.sty' (aktuell: v2.5e) de malentendus"
DE-TeX-FAQ: http://www.dante.de/faq/de-tex-faq/ (A. de Saint-Exupery)
Roman
2006-04-12 12:20:50 UTC
Permalink
Post by Bernd Raichle
In einer Umgebungsdefinition kann man in den "end"-Teil ein
\ignorespacesafterend packen, damit nach einem \end{umgebung} die
Leerzeichen ebenfalls ignoriert werden (die LaTeX2e-Version sollte
hierfuer nicht zu alt sein!).
Schön, daß wäre vermutlich meine nächste Frage gewesen :-).

Dank.
--
Gruesse Roman
Christian Ebert
2006-04-12 11:29:29 UTC
Permalink
Gibt es eine elegantere Möglichkeit LaTeX mitzuteilen, dass es
nach dem Kommando am _Anfang_ einer neuen Zeile beginnen soll?
\documentclass{article}
\newcommand{\testcmd}[1]{% abgesetzten Text einfügen
\par\noindent%
#1%
\par\noindent\ignorespaces}

\begin{document}
\noindent bla bla
\testcmd{Abgesetzter Text}
bla bla
\end{document}

c
--
_B A U S T E L L E N_ lesen! --->> <http://www.blacktrash.org/baustellen.html>
Loading...