PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \newcommand mit nur einem optionalen argument



ooze
26-10-2010, 16:49
Hallo,

ich möchte mir ein \newcommand welches nur ein optionales Argutment hat definieren. Ich habe überall immer nur Beispiele mit mindestens zwei Argumenten gefunden und meine eigene Lösung funktioniert nicht richtig.

Meine Lösung:
\newcommand{\foo}[1][\textsf{statischer_text}]{\textsf{#1}}

Es soll so sein, dass wenn ich "\foo" eingebe "\textsf{statischer_text}" herauskommt, und wenn ich "\foo{blah}" eingebe "\textsf{blah}" herauskommt.

Das funktioniert leider nicht und im zweiten Fall kommt immer "\textsf{statischer_text}blah" heraus.

Was mache ich falsch?

voss
26-10-2010, 17:12
ich möchte mir ein \newcommand welches nur ein optionales Argutment hat definieren. Ich habe überall immer nur Beispiele mit mindestens zwei Argumenten gefunden und meine eigene Lösung funktioniert nicht richtig.

Meine Lösung:
\newcommand{\foo}[1][\textsf{statischer_text}]{\textsf{#1}}

Es soll so sein, dass wenn ich "\foo" eingebe "\textsf{statischer_text}" herauskommt, und wenn ich "\foo{blah}" eingebe "\textsf{blah}" herauskommt.



\newcommand{\foo}[1][statischer text]{\textsf{#1}}

sollte gehen.

Herbert

ooze
26-10-2010, 17:29
Hallo Herbert,

danke für deine Antwort, leider geht es nicht, ich bekomme den selben Effekt wie bei meiner Lösung, hier ein screenshot des kompilierten Minimalbeispiels (siehe unten):
http://img.skitch.com/20101026-bqhyu3bwny2eer57hfwaab56k4.png

Minimalbeispiel:


\documentclass[12pt]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\newcommand{\foo}[1][statischer text]{\textsf{#1}}

\begin{document}

\foo

\foo{lorem ipsum}

\end{document}


außerdem möchte ich im fertigen Ergebnis das default natürlich formatiert haben (etwa mit \textsf o.ä.)

voss
26-10-2010, 17:38
danke für deine Antwort, leider geht es nicht, ich bekomme den selben Effekt wie bei meiner Lösung, hier ein screenshot des kompilierten Minimalbeispiels (siehe unten):
http://img.skitch.com/20101026-bqhyu3bwny2eer57hfwaab56k4.png

Minimalbeispiel:


\documentclass[12pt]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\newcommand{\foo}[1][statischer text]{\textsf{#1}}

\begin{document}

\foo

\foo[lorem ipsum]

\end{document}


außerdem möchte ich im fertigen Ergebnis das default natürlich formatiert haben (etwa mit \textsf o.ä.)

optionale Parameter musst du natürlich in eckigen Klammern angeben!

Herbert

ooze
26-10-2010, 17:49
optionale Parameter musst du natürlich in eckigen Klammern angeben!

oha, wie peinlich :-)

Jetzt klappt's. Danke!