PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit \newcommand und Leerzeichen



michaelr
10-02-2007, 22:32
Hallo,

ich hab folgendes



\newcommand{\TextEinfuegen}[0]{%
\textit{Konstanter Text}%
}


Mit dem oben definierten Befehl füge ich an verschiedenen Stellen in meinem Dokument den konstanten Text ein. Wenn nach dem Befehlsaufruf ein Leerzeichen kommt, dann wird das im PDF verschluckt.

Bsp:

In der Tex-Datei

Mein wunderschöner Text .... bla bla \TextEinfuegen mit einem Leerzeichen ...

In der PDF-Datei sieht es dann so aus

Mein wunderschöner Text .... bla bla Konstanter Textmit einem Leerzeichen ...

Also: immer wenn nach \TextEinfuegen direkt ein Leerzeichen kommt, dann wird das im PDF gelöscht.

Wie kann ich das beheben, ohne manuell überall nach dem Befehlsaufruf ein Leerzeichen zu setzen???

Grüße,
Michael

bobmalaria
10-02-2007, 22:40
hi,

mach es doch so


\newcommand{\meintext}[1]{\textit{#1}}

aufruf im dokument dann


\meintext{ich bin ein text mit leerzeichen}

neulich kam schon mal so ne frage. da hab ich das hier gebastelt. mit farbbox und farbigem text
\newcommand{\farbbox}[1]{{\vspace{.5cm} \fcolorbox{black}{red}{\parbox{1\textwidth}{\textc olor{white}{#1}}}}\vspace{.5cm}}


gruß

michaelr
10-02-2007, 23:38
Hallo,

danke für Deine Antwort, aber das Problem besteht weiterhin!


hi,
mach es doch so

\newcommand{\meintext}[1]{\textit{#1}}
aufruf im dokument dann

\meintext{ich bin ein text mit leerzeichen}


Das möchte ich nicht, weil ich dann jedes mal den gleichen Text tippen muss - der Sinn von meinem Befehl ist ja genau, dass ich mir das spare.

Grüße
Michael

bobmalaria
10-02-2007, 23:55
so geht's bei mir ohne probleme


\newcommand{\meintext}{\textit{hier ist mein standarttext}}

michaelr
11-02-2007, 00:00
Sorry, bei aber überhaupt nicht. Ich hab immer noch das beschriebene Problem, dass Leerzeichen gelöscht werden. Weiß der Geier warum .... ok, der weiß es vermutlich auch nicht.
:(

Grüße,
Michael

bobmalaria
11-02-2007, 00:08
dann mach doch mal ein minimalbeispiel das das verhalten reproduziert.
http://minimalbeispiel.de/

und dann machen wir's wie der kaiser immer sagt: "schau' mer mal"

gruß

michaelr
11-02-2007, 00:15
Hallo,

OK, hab meine Diplomarbeit (in der taucht das Problem auf) auf das minimalste heruntergekürzt - und der Fehler taucht immer noch auf :(

Nachtrag: ich verwende die KOMA-Scripte als Basis

Hier die Hauptdatei:



\documentclass[pdftex, a4paper,
liststotoc, % damit alle notwendigen Verzeichnisse im TOC erscheinen
bibtotoc, % damit das Literaturverzeichnis im TOC erscheint
pointlessnumbers % damit im Inhaltsverzeichnis kein abschließender Punkt hinter den Zahlen steht
]{scrartcl}
\usepackage{typearea}
\areaset[0cm]{15.3cm}{22cm}

\usepackage{caption2}
\onelinecaptionsfalse
\captionstyle{hang+flushleft}

\usepackage{setspace}
\onehalfspacing

\usepackage{scrpage2}
\pagestyle{scrheadings}
\ofoot{\pagemark} % Seitenzahlen nach rechts schieben
\cfoot[]{} % zentrierte Seitenzahlen löschen


\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}


\input{HeaderInclude_Erweiterungen}

\begin{document}

This is just some text to fill this space here ... \ModellU This is just some text to fill this space here ... This is just some text to fill this space here ...

\end{document}


Und hier die inkludierte Datei:



\newcommand{\ModellU}{\textit{CREATIV Möbel e. K.}}

\newcommand{\UTopdesk}{TOPDESK}



Im erzeugten PDF ist nach dem Ausdruck "CREATIV Möbel e. K." der Leeraum aus der Tex-Datei gelöscht...

Danke+Grüße
Michael

rais
11-02-2007, 00:22
Moin moin,




\newcommand{\TextEinfuegen}[0]{%
\textit{Konstanter Text}%
}


Mit dem oben definierten Befehl füge ich an verschiedenen Stellen in meinem Dokument den konstanten Text ein. Wenn nach dem Befehlsaufruf ein Leerzeichen kommt, dann wird das im PDF verschluckt.

versuch mal \TextEinfuegen\ bla...
oder \TextEinfuegen{} blubb
oder {\TextEinfuegen} foo...
oder schau Dir mal das xspace-Paket an.;)
MfG,

bobmalaria
11-02-2007, 00:22
versuche es mal so, und alles sollte stimmen


\newcommand{\ModellU}{\textit{CREATIV Möbel e. K.} }

wie bereits oben geschrieben, caption2 ist veraltet.

gruß

michaelr
11-02-2007, 00:29
Hi,

also das xspace Paket tut nichts, keine Änderung zu vorher.

Die Möglichkeit mit \Befehl{} scheint zu gehen, zumindest in dem Test gerade.

Super danke!!

Michael

rais
11-02-2007, 00:48
Nochmal moin,


also das xspace Paket tut nichts, keine Änderung zu vorher.

also eigentlich hätte Dich der Vorschlag von bobmalaria auch schon weiterbringen können.
xspace zu laden alleine reicht allerdings nicht...


\documentclass{scrartcl}
\usepackage{xspace}
\newcommand{\bla}{ein wenig Text\xspace}
\begin{document}
bla \bla blubb

oder am Satzende:\bla.
\end{document}

man muß den Befehl \xspace dann auch verwenden :rolleyes:
Aber da Dein Text im selbstgebautem Befehl eh mit einem Punkt endet, wär' das vllt etwas übertrieben, hier mit xspace ranzuwollen.
MfG,