PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Trennzeichen in Parameter



Daigo
15-12-2006, 00:53
Hallo, zusammen! :)

Ich habe gerade ziemliche Probleme mit einem selbsterstellten Makro. Es soll den zweiten Parameter "aufsplitten" und damit Tabellen von variabler Höhe erstellen können. Konkret:


\mpc{Überschrift}{Zeile 1 + Zeile 2 + Zeile 3}

Ich würde also gern den Parameter #2 auslesen und bei jedem + (kann auch ein anderes Zeichen sein) quasi die Tabellenzeile beenden. Das ganze per Zeilenumbruch zu trennen und dann ein @ in der Tabelle zu verwenden hilft mir leider nicht, da die erste Spalte auch noch variable Einträge enthalten soll (je nach anderen Parametern, die ich jetzt hier aber nicht angebe - sind nicht wichtig, geht ja nur um dieses Prinzip).
Weiß jemand hier, wie ich das bewerkstelligen kann? Ich hab den halben Tag schon das Internet durchforstet und wirklich nichts finden können, was mir einen Tritt in die richtige Richtung hätte geben können...
Danke schon mal im Voraus für die Mühe!!

rais
15-12-2006, 01:19
Hallo und Herzlich Willkommen an Board :)


Ich habe gerade ziemliche Probleme mit einem selbsterstellten Makro. Es soll den zweiten Parameter "aufsplitten" und damit Tabellen von variabler Höhe erstellen können. Konkret:


\mpc{Überschrift}{Zeile 1 + Zeile 2 + Zeile 3}

Ich würde also gern den Parameter #2 auslesen und bei jedem + (kann auch ein anderes Zeichen sein) quasi die Tabellenzeile beenden. Das ganze per Zeilenumbruch zu trennen und dann ein @ in der Tabelle zu verwenden hilft mir leider nicht, da die erste Spalte auch noch variable Einträge enthalten soll (je nach anderen Parametern, die ich jetzt hier aber nicht angebe - sind nicht wichtig, geht ja nur um dieses Prinzip).

mir ist eigentlich noch schleierhaft, wozu Du dieses Makro benötigst bzw. wie genau Du es anwenden willst. OTOH sagst Du, es ist für Tabellenzeilen... warum kannst Du nicht "\\" oder "\tabularnewline" als Trennzeichen nehmen? Und was soll der Hinweis mit dem `@´-Zeichen?
MfG,

Daigo
15-12-2006, 10:36
Danke für die freundliche Aufnahme! :)

Dass Makro soll hinterher leicht verwendbar sein, um etwas ähnliches wie Multiple-Choice-Tests zu erstellen - dabei meine ich in erster Linie nicht nur leicht für mich...

Und was soll der Hinweis mit dem `@´-Zeichen?
Mit dem '@' kann ich ja bestimmte Zeichenketten zu beginn jeder Zeile wiederholen lassen - d.h. in meinem Fall z.B. die Kästchen dort hinein zu setzen. Ich würde aber gerne über einen optionalen Parameter dann die richtigen Antworten angeben lassen, damit an diese Stellen ein anderes Kästchen mit einem Kreuz drin gesetzt wird. Kompliziert, ich weiß ;)

rais
15-12-2006, 12:36
Moin moin,

Ich würde aber gerne über einen optionalen Parameter dann die richtigen Antworten angeben lassen, damit an diese Stellen ein anderes Kästchen mit einem Kreuz drin gesetzt wird. Kompliziert, ich weiß ;)
also eh ich dabei gehen würde, den String hinterher auseinandernehmen zu müssen, würde ich mir wohl überlegen, den Befehl gleich zeilenorientiert zu basteln, vllt etwas in der Art


\documentclass{scrartcl}
\usepackage{amssymb,ifthen}
%\newcommand{\showres}{}
\newcommand{\mpcl}[2][\empty]{%
\ifthenelse{\isundefined{\showres}}{$\Box$}{#1} & #2\tabularnewline
}
\newenvironment{mpc}[1]{%
\section*{#1}
\begin{tabular}{p{1em}p{0.8\textwidth}}
}{\end{tabular}}
\begin{document}
\begin{mpc}{bla}
\mpcl[x]{so?}
\mpcl{oder so?}
\mpcl{vllt ja so?}
\end{mpc}
\end{document}
und leicht anwendbar ist es so obendrein :D
MfG,

Daigo
15-12-2006, 15:37
Hey, rais! Vielen Dank!!! War im Prinzip genau das, was ich gesucht habe!
Hab das Ganze jetzt folgendermaßen umgesetzt:


\documentclass{scrreprt}
\usepackage{amssymb,ifthen,wasysym}

\newboolean{mpcloes}
\setboolean{mpcloes}{false}

\newcommand{\mpcl}[2][0]{%
\ifthenelse{\not\boolean{mpcloes}}{$\Box$}{\ifthen else{#1 = 0}{$\Box$}{$\XBox$}} & #2\tabularnewline
}

\newenvironment{mpc}[2][0]{
\ifthenelse{#1 = 0}{\setboolean{mpcloes}{false}}{\setboolean{mpcloe s}{true}}%
\noindent\textbf{Aufgabe}}\\%
#2\\\\%
\begin{tabular}{p{1em}p{0.8\textwidth}}}
{\end{tabular}\\\\}


\begin{document}
\begin{mpc}{Frage:}
\mpcl[1]{Antwort 1}
\mpcl[1]{Antwort 2}
\mpcl{Antwort 3}
\end{mpc}

\begin{mpc}[1]{Frage:}
\mpcl[1]{Antwort 1}
\mpcl[1]{Antwort 2}
\mpcl{Antwort 3}
\end{mpc}

\end{document}

In der zweiten Umgebung zeigt er mir also die Lösungen an, sobald ich den optionalen Parameter mit angebe!
Tausend Dank für die Hilfe!!! :)