PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehl \newcommand mit optionalem Parameter



ProfessorChaos
17-11-2008, 09:18
Hi,

ich habe wirklich gesucht, in google und auch hier. Ich finde aber einfach keine Referenz, die den Befehl \newcommand ausführlich erklärt.
Zwar kann ich ihn in der einfachen Form nutzen, also \newcommand[AnzahlArgumente]{Befehlsname}{Befehl}, doch weiß ich nicht, wie man dort die optionalen Parameter einbaut.

Ich mache am besten ein konkretes Beispiel, was ich dadurch gerne erreichen würde:
Ich hätte gernen einen Befehl, der entweder ein Argument erhalten soll, oder optional zwei. Je nach Fall, sollen unterschiedliche Dinge damit angestellt werden (dies könnte man dann mit \ifthenelse abfangen). Wie macht man das?

mechanicus
17-11-2008, 09:41
Hallo,

http://mrunix.de/forums/showthread.php?t=53460

Gruß
Marco

ProfessorChaos
17-11-2008, 09:52
Hallo Marco,

danke für die Antwort!
Hätte ich nicht zufällig selbst eine etwas bessere Anleitung des Befehls \newcommand gefunden, wäre der Artikel perfekt gewesen. :)

Auch, wenn dort bereits alles erklärt wurde, poste ich hier meine Lösung zu meinem konkreten Problem:

ich wollte einen Befehl \set mit einem oder zwei Parametern:
\set{a} sollte liefern: {a}
\set[a]{b} sollte liefern: { a | b }

Hier die Umsetzung:
\newcommand{\set}[2][\empty]
{
\ifthenelse{\equal{#1}{\empty}}
{ \{#2\} } % ein Parameter
{ \{\ #1\ |\ #2\ \} } % zwei Parameter
}

mechanicus
17-11-2008, 09:58
Hätte ich nicht zufällig selbst eine etwas bessere Anleitung des Befehls \newcommand gefunden, wäre der Artikel perfekt gewesen. :)


Hallo,

wo hast du die gefunden?

Gruß
Marco

ProfessorChaos
17-11-2008, 10:10
wo hast du die gefunden?
Leider nicht online.

In einer sehr guten (aber auch sehr kurzen) Beamer-Präsentation, mit der ich damals LaTeX an der Uni lernte. Ich vergaß nur, dass ich sie noch besitze. Falls sie dich interessiert, kann ich nachforschen, ob sie sich irgendwo online befindet, dann poste ich den Link. Dafür bräuchte ich aber wohl einige Tage, da ich ggf. Mails schreiben müsste (mache das aber gerne).

Zu dem Befehl \newcommand befand sich in dieser PDF nur eine Seite, die mir aber reichte, nämlich:

\newcommand]{\befehl}[Zahl der Parameter][Default-Wert des optionalen Parameters]{Definition}
\newcommand{\satz}[2][meiner]{\textbf{Satz (#1)} \\ #2}
erzeugt
Satz (Fermat)
Fermat’s Satz

mechanicus
17-11-2008, 10:23
Hallo,

danke. Mach die nicht soviel streß. Bei dem Beispiel, muss man aber den optionalen Parameter angeben bzw. es ist kein optionaler Parameter:D.

Gruß
Marco

ProfessorChaos
17-11-2008, 10:30
Mach die nicht soviel streß.
Dann lasse ich es. :)


Bei dem Beispiel, muss man aber den optionalen Parameter angeben bzw. es ist kein optionaler Parameter:D.
Wieso? Man gibt entweder einen oder zwei Parameter an. Entweder wird ein Defaultvalue verwendet, oder der übergebene. Und somit ist er optional.