PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragebogen in Latex erstellen



smile4free
01-07-2008, 22:51
Hallo,
ich versuche, in Latex eine Art Fragebogen zu erstellen. Dazu würde ich gerne einen neuen Befehl definieren, der ungefähr wie folgt aussieht:

\frage{Ist 2 eine ungerade Zahl?}{Nein}
Das soll dann ungefähr zu folgender Ausgabe führen:

Frage 2.1 Ist 2 eine ungerade Zahl?
Antwort 2.1 Nein

Soweit eigentlich kein Problem. Nur möchte ich das ganze jetzt folgendermaßen haben: Meine Arbeit ist in verschiedene Kapitel und einen Anhang eingeteilt. Ich hätte dieses Frage-Antwort-Spiel gerne so, dass die Frage immer dort steht, wo ich sie im Latex-Code eingegeben habe. Die Antwort aber soll automatisch in ein Anhangskapitel (z.B. Anhang A: Antworten auf die Fragen) reingeschrieben werden, sodass man danach einfach im Anhang die jeweilige Antwort zu der Frage suchen kann.
Hab schon alles mögliche abgesucht, aber nichts passendes gefunden. Ich bin der Meinung, dass die Tatsache, dass ich die Antwort ganz wo anders haben will als die Frage, das eigentliche Problem ist.
Kann man das irgendwie realisieren?

sarc
01-07-2008, 23:03
Was ganz minimales zum Weiterbasteln (insbesondere ohne Nummerierung oder schöne Formatierung)



\documentclass{scrartcl}


\newcommand{\antworten}{\textbf{Alle Antworten}\\}
\makeatletter
\newcommand{\frage}[2]{\textbf{Frage:} #1\g@addto@macro{\antworten}{#2\\}}
\makeatother

\begin{document}

\frage{Ist das so?}{Nein}

\frage{Wirklich nicht?}{Nein!}

\antworten

\end{document}

smile4free
01-07-2008, 23:50
Danke sehr, ich hab's zwar grad bloß mal kurz angeschaut, aber das scheint ja traumhaft zu funktionieren.
Ich war schon die ganze Zeit versucht, irgendwie mit tocloft eine neue listof zu definieren... aber so ist das ja viel eleganter.
Gut Nacht.

smile4free
03-07-2008, 12:34
Das sieht jetzt schon nicht schlecht aus. Aber noch eine Frage:
Ich habe jetzt zu jeder Frage eine Nummer (dafür habe ich mir intern einen Zähler frage definiert. Bei der Frage steht dann beispielsweise "Frage 3: [...]".
Nun hätte ich gerne, dass bei der zugehörigen Antwort "Antwort 3: [...]" steht. Daher habe ich mir gedacht, ich mache das ganze einfach so:



\newcommand{\antworten}{}

\makeatletter

\newcommand{\frage}[2]{
\stepcounter{frage}
\textbf{Frage \arabic{frage}:} \noindent #1 %hier wird die Frage gedruckt

\g@addto@macro {\antworten}{
\noindent \textbf{Antwort \arabic{frage}:}
}}

\makeatother



Das Problem, das dabei auftritt, ist folgendes: Da der Zähler Frage auch in der Antwort vorkommt, treten Unstimmigkeiten auf. Wenn ich beispielsweise 2 mal eine Frage mittels \frage{Frage}{Antwort} stelle, so wird der Zähler frage letztendlich auf 2 gesetzt. In den Antworten steht dann immer:

Antwort 2: [...]
Antwort 2: [...]

Logischerweise bräuchte ich aber:

Antwort 1: [...]
Antwort 2: [...]

Sabrina.Dankers
03-07-2008, 13:48
Dann hast du was nicht korrekt gemacht. Ich hatte das gestern schonmal ausprobiert und mir das so definiert:


\newcounter{Frg}[section]
\newcommand{\antworten}{\textbf{Alle Antworten}\\}
\makeatletter
\newcommand{\frage}[2]{\refstepcounter{Frg}\textbf{Frage \arabic{section}.\arabic{Frg}:} #1\g@addto@macro{\antworten}{\textbf{Antwort \arabic{section}.\arabic{Frg}:} #2\\}}
\makeatother

Das funktioniert einwandfrei. Vergleich das mal mit deinem Code.

smile4free
03-07-2008, 14:52
Danke erstmal für die Mühen. Aber so ganz will's einfach noch nicht hinhauen. Ich hab Deinen Code mal folgendermaßen in ein Latexdokument reigebaut:




[...]

\newcounter{Frg}[section]
\newcommand{\antworten}{\textbf{Alle Antworten}\\}
\makeatletter
\newcommand{\frage}[2]{\refstepcounter{Frg}\textbf{Frage \arabic{section}.\arabic{Frg}:} #1\g@addto@macro{\antworten}{\textbf{Antwort \arabic{section}.\arabic{Frg}:} #2\\}}
\makeatother

\begin{document}
\section{Eins}
\frage{Frage1}{Antwort1}

Hier kommt ein bisschen Text dazwischen.

\frage{Frage2}{Antwort2}

\section{Zwei}
\section{Drei}
\section{Vier}
Noch ein bisschen Text

\antworten

\end{document}


Wenn ich das kompiliere, bekomme ich ein Dokument, das folgendermaßen aussieht.
Eins
Frage1.1: Frage 1
Hier kommt ein bisschen Text dazwischen.

Zwei

Drei

Vier

Noch ein bisschen Text

Alle Antworten:
Antwort 4.0: Antwort1
Antwort 4.0: Antwort2

Keine Ahnung, ob ich irgendwas falsch eingestellt habe, aber bei mir kommt genau das raus.

Ich versuche jetzt das ganze (zugegebenermaßen umständlich) über weitere Counter zu machen, die ich dann irgendwie in den \antworten-Makro reinschleuse. Mal schaun, wie's wird...