Wie ist \hspace definiert?

4 views
Skip to first unread message

Axel Berger

unread,
May 31, 2022, 9:31:56 AMMay 31
to
In meinem Tutorium zeige ich Fragen, bespreche die und decke zum Schluß
meinen Antwortvorschlag auf. Als Spickzettel drucke ich für mich die
Präsentation im Article-Modus mit unterdrückten Graphiken. Das
funktioniert schon länger bestens.

\mode<article>{%
\renewcommand{\includegraphics}[2][]{}
% \renewcommand{\hspace*}[1]{}
% \renewcommand{\hspace}[1]{}
}

Allerdings stehen rund um Bilder öfter mal Positionierungsbefehle, die
mir im Extremfall Teile des Textes neben das Blatt schieben und sonst
seltsam aussehen. Deshalb wollte ich heute auch \hspace und \hspace*
loswerden. Das fliegt mir aber mit Fehlermeldungen um die Ohren die ich
nicht verstehe. Was mache ich falsch?

\documentclass{article}
\usepackage[x-cp1252]{inputenx}
\usepackage[T1]{fontenc}
% \renewcommand{\hspace*}[1]{}
% \renewcommand{\hspace}[1]{}

\begin{document}

Dies ist eine Zeile.

\hspace*{-.2in}Diese steht links vor.

\hspace*{-1\linewidth}Und diese ist ganz weg.

\end{document}

Danke
Axel


--
/¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067
\ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069
 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de
/ \ Mail | -- No unannounced, large, binary attachments, please! --

Ulrike Fischer

unread,
May 31, 2022, 12:18:25 PMMay 31
to
Am Tue, 31 May 2022 15:32:37 +0200 schrieb Axel Berger:

> Deshalb wollte ich heute auch \hspace und \hspace*
> loswerden. Das fliegt mir aber mit Fehlermeldungen um die Ohren die ich
> nicht verstehe. Was mache ich falsch?
>
> \documentclass{article}
> \usepackage[x-cp1252]{inputenx}
> \usepackage[T1]{fontenc}
> % \renewcommand{\hspace*}[1]{}

\hspace* ist kein eigenständiger Befehl. Schau doch einfach mal in
latex.ltx:

\DeclareRobustCommand\hspace{\@ifstar\@hspacer\@hspace}
\def\@hspace#1{\begingroup\setlength\skip@{#1}\hskip\skip@\endgroup}

\def\@hspacer#1{\vrule \@width\z@\nobreak
\@hspace{#1}\hskip \z@skip}


Mit einem aktuellen (!) latex könntest du

\RenewDocumentCommand\hspace{sm}{}

verwenden.

--
Ulrike Fischer
https://www.troubleshooting-tex.de/

Ulrich D i e z

unread,
May 31, 2022, 12:20:10 PMMay 31
to
Axel Berger schriev:

% \renewcommand{\hspace*}[1]{}

Das funktioniert nicht, weil \renewcommand als erstes Argument ein
Kontrollsequenz-Token erwartet und nicht ein Kontrollsequenz-Token
gefolgt von einem expliziten Character-Token.

Du brauchst einen Befehl, der ggfs auch den Stern entfernt.

ZB


\makeatletter
\DeclareRobustCommand\hspace{%
\@ifstar{\@gobble}{\@gobble}%
}%
\makeatother


Mit freundlichem Gruß

Ulrich

Ulrich D i e z

unread,
May 31, 2022, 12:31:00 PMMay 31
to
Axel Berger schrieb:

> Allerdings stehen rund um Bilder öfter mal Positionierungsbefehle, die
> mir im Extremfall Teile des Textes neben das Blatt schieben und sonst
> seltsam aussehen. Deshalb wollte ich heute auch \hspace und \hspace*
> loswerden.

Das folgende ist keine Antwort auf Deine Frage, aber vielleicht trotzdem
einen Gedanken wert:

Wie wäre es, anstatt Befehle wie \hspace umzudefinieren, die in allem
möglichen von Dritten stammendem Code vorkommen können, in Deinem eigenen
Code Flags/\if..-switches einzuführen, durch deren entsprechendes
Setzen Du festlegen kannst, ob in Deinem Code vorkommende Dinge wie
\hspace / \hspace* ausgeführt oder übersprungen werden sollen.

Mit freundlichem Gruß

Ulrich
Reply all
Reply to author
Forward
0 new messages