Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Trennzeichen in Parameter

  1. #1
    Daigo
    Gast

    Question Trennzeichen in Parameter

    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:

    Code:
    \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!!

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Hallo und Herzlich Willkommen an Board
    Zitat Zitat von Daigo Beitrag anzeigen
    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:

    Code:
    \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,
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Daigo
    Gast
    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...
    Zitat Zitat von rais Beitrag anzeigen
    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ß

  4. #4
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von Daigo Beitrag anzeigen
    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
    Code:
    \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
    MfG,
    Rainer
    There's nothing a good whack with a hammer won't fix!

  5. #5
    Daigo
    Gast
    Hey, rais! Vielen Dank!!! War im Prinzip genau das, was ich gesucht habe!
    Hab das Ganze jetzt folgendermaßen umgesetzt:

    Code:
    \documentclass{scrreprt}
    \usepackage{amssymb,ifthen,wasysym}
    
    \newboolean{mpcloes}
    \setboolean{mpcloes}{false}
    
    \newcommand{\mpcl}[2][0]{%
    \ifthenelse{\not\boolean{mpcloes}}{$\Box$}{\ifthenelse{#1 = 0}{$\Box$}{$\XBox$}} & #2\tabularnewline
    }
    
    \newenvironment{mpc}[2][0]{
    \ifthenelse{#1 = 0}{\setboolean{mpcloes}{false}}{\setboolean{mpcloes}{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!!!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •