PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abfrage auf leere Parameter bei newcommand



DerElmshorner
07-07-2010, 11:03
Hallo,

ich bastele seit Tagen an einem Problem und komme einfach nicht weiter. Ich möchte mir aus RDF Dokumenten, die ich aus einem Wiki extrahiere Latex Dokumente erzeugen. Dabei setze ich die Wiki Formatierungen in einem kleinen Java Programm in Latex itemize Umgebungen um. Da ich nicht die gesamte Layout Information irgendwo im System haben möchte, generiere ich command Aufrufe etwa der Form


\mytexlayout{EineÜberschrift}{\begin{itemize}
\item 1
\item 2
\end{itemize}
}


In mytexlayout versuche ich das layout an meine Bedürfnisse anzupassen: z.B.

\newcommand{mytexlayout}[2]{%
\section{#1} #2%
}


Eine Anforderung ist natürlich, dass keine leeren Blöcke dargestellt werden.

Leider geht

\ifthenelse{\equal{#2}{}}{}{\section{#1} #2}

nicht, weil die Auflösung der Macros \begin{itemize}...\end{itemize} im Argument von \equal Probleme macht.

Hat jemand eine Idee, wie ich formulieren kann, dass der zweite Parameter nichtleer ist? Gern auch ohne den zweiten Parameter Macroaufzulösen.


Hilfe würde mich echt befreien, ich weiss nicht mehr weiter.

Danke
Frank Zimmermann

lockstep
07-07-2010, 11:20
Hier hilft \ifstrempty aus dem Paket etoolbox (das mittlerweile offenbar alle Features von ifthen abdeckt).



\documentclass{article}

\usepackage{etoolbox}

\newcommand{\mytexlayout}[2]{%
\ifstrempty{#2}{}{\section{#1} #2}%
}

\begin{document}

\mytexlayout{Ein Abschnitt}{%
\begin{itemize}
\item Foo
\end{itemize}
}

\mytexlayout{Ein leerer Abschnitt}{}

\end{document}


lockstep