PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ifthenelse innerhalb newcommand: prüfen ob param. gesetzt



alex0801
29-08-2007, 15:49
Hallo,

ich möchte innerhalb eines \newcommand prüfen ob ein Parameter leer gelassen wurde. Ich bin schon soweit dass ich weiß, dass ich die Bedingung mit \ifthenelse machen kann. Aber ich finde nix, womit ich den Parameter abfragen kann.

Mal ein kleines (doofes) Beispiel



\newcommand\meinBefehl[3]{

Parameter1: \ifthenelse{\isundefined{#1}}{nicht angegeben}{#1}\\
Parameter2: \ifthenelse{\isundefined{#2}}{nicht angegeben}{#2}\\
Parameter2: \ifthenelse{\isundefined{#3}}{nicht angegeben}{#3}

}


Das Blöde ist nur, \isundefined funktioniert nicht mit #n ...
Gibts einen anderen Befehl den ich in die Bedingung einsetzen um Abfragen zu können ob ein Parameter leer ist oder nicht?

- Alex

countbela666
29-08-2007, 15:52
Hi, Alex,

wie wär's mit

\ifthenelse{\equal{#1}{\empty}}{foo}{bar}
Grüße
Marcel

alex0801
29-08-2007, 15:55
Danke, das war's... Aber wie soll man denn da drauf kommen? Suche mir immer nen Ast.

THE_ONE
02-06-2009, 18:17
Hatte auch das selbe Problem und bin Gott sei Dank hier auf diesen Thread gestoßen. Habe anfangs immer nach IF und Else und Bedingung mit Google gesucht und habe leider nichts dazu gefunden.

Will eine Zeile in einem mit tikZ gezeichneten Bild unter einer Bedingung Ein- und Ausblenden. Hier mein Code:


\newcommand{\piccomponent}[5]
{
\begin{figure}[h]
\centering
\begin{tikzpicture}[scale=.5]
\node[dummy] (start) {};
\node[box2] (bit4)[right=0cm of start] {};
\node[box] (bit1)[right=0.5cm of start] {\large #1};
\node[box] (bit2)[right=1cm of bit1] {{\large #2}};
\node[dummy] (end)[right=0.5cm of bit2] {};
\path[latex-latex, very thick] (bit2) edge node {} (bit1);
\path[-, very thick] (start) edge node {} (bit1);
\ifthenelse{\equal{#5}{\empty}}{}{\path[-, very thick] (bit2) edge node {}(end);}

%\draw[line width=2pt,color=blue] (0,-1) -- (4,-1) -- (1,0) -- cycle; %polyline
\end{tikzpicture}
\caption{#3}
\label{fig:#4}
\end{figure}
}

Und hier wie ich das template verwende.


\piccomponent{Flow Control}{ App}{ device}{device}{}

\piccomponent{Flow Control}{Flow Control}{ router}{router}{1}

Hier noch eine Seite die mir geholfen hat:
http://www.devdaily.com/blog/post/latex/two-simple-examples-using-latex-ifthen-package/

MFG THE_ONE