Hallo,

ich bastle gerade mit xsim, um folgendes zu erreichen: Es gibt eine Collection mit beliebig vielen Fragen, aus denen dann zurfällig 10 ausgewählt und gedruckt werden. Zu jeder Frage soll es eine leere Antwortbox über die gesamte Textbreite geben, wobei die Höhe variabel ist. Bisher habe ich:

\documentclass{article}
\usepackage{xsim}
\DeclareExerciseCollection{coll1}
\newcommand{\mybox}{%
\begin{center}%
\setlength{\fboxsep}{1pt}%
\fbox{\parbox[t][4cm][t]{\textwidth}{\hfill}}%
\end{center}%
}

\begin{document}
\collectexercises{coll1}

  \begin{exercise}
    Question 1.
    \mybox
  \end{exercise}

    \begin{exercise}
    Question 2.
  \end{exercise}

    \begin{exercise}
    Question 3.
  \end{exercise}

\collectexercisesstop{coll1}
\printrandomexercises[sort=false, collection=coll1]{2}
\end{document}

Ich war aber unsicher, ob die Antwortbox zu exercise oder besser zu solution gehört. Wenn ich sie in solution schreibe, habe ich auch die Überschrift "Solution" anschließend, was ich aber nicht will. Es soll alles recht kompakt werden für einen kurzen Test. Meine bisherige "Lösung" klappt aber so gar nicht, da mybox nicht unter der ersten Frage platziert wird sondern am Ende der gedruckten 2 Fragen, das ist also Quatsch. Kann jemand helfen? Ist meine Box überhaupt ok so, oder gibt es xsim-Boardmittel, die ich hätte verwenden sollen?

gefragt 02 Jul '19, 12:58

RungeZipperer's gravatar image

RungeZipperer
116147
Akzeptiert-Rate: 0%


Ich kenne mich mit dem Paket xsim nicht aus, so dass ich Dir nicht sagen kann, ob es vielleicht schon eine solche umrahmte, leere Box bereitstellt.

Deine Box ist noch etwas zu breit. Von \linewidth müssen noch zwei Mal der Boxabstand und die Breite der Boxrahmenlinie abgezogen werden. Außerdem kannst Du bei der Definition der Box ein Argument verwenden, mit dem Du die jeweilige Höhe der \parbox angeben kannst. Gibt es dafür so einen Standardwert kannst Du auch ein optionales Argument einführen.

\newcommand{\mybox}[1]{%
  \begin{center}%
    \fbox{\parbox[t][#1][t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}{\hfill}}%
  \end{center}%
}

Was die Zuordnung der Box zur Frage betrifft, bist Du vermutlich einem Irrtum aufgesessen. Die Box taucht mit Deinem Code nur dann "nach" den zwei zufällig gewählten Fragen auf, wenn die zweite, diejenige ist, die die Box auch enthält. Direkt über der Box steht also in jedem Fall Question 1. Beachte, dass Du in Deinem Code sort=false angegeben hast. Die Aufgaben werden also nicht nur zufällig ausgewählt, auch ihre Reihenfolge ist zufällig. Excersice 2 kann also durchaus die mit Question 1 und der Box sein.

Damit das besser sichtbar wird, verwende ich mal etwas farbigen Text:

\documentclass{article}
\usepackage{xcolor}
\usepackage{xsim}
\DeclareExerciseCollection{coll1}

\newcommand{\mybox}[1]{%
  \begin{center}%
    \fbox{\parbox[t][#1][t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}{\hfill}}%
  \end{center}%
}

\begin{document}
\collectexercises{coll1}
  \begin{exercise}
    \textcolor{red}{Question 1.}
    \mybox{4cm}
  \end{exercise}
    \begin{exercise}
    \textcolor{green!50!black}{Question 2.}
  \end{exercise}
    \begin{exercise}
    \textcolor{green!50!black}{Question 3.}
  \end{exercise}
\collectexercisesstop{coll1}

\printrandomexercises[sort=false, collection=coll1]{2}
\end{document}

Ein mögliches Ergebnis ist

alt text

Beachte, dass sich die zunächst zufällige Auswahl bei wiederholtem Kompilieren nicht ändert. Möchte man eine neue Auswahl treffen lassen, muss man vorher die aux Datei löschen.

Ein weiteres mögliches Ergebnis ist

alt text

Permanenter link

beantwortet 02 Jul '19, 16:29

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 02 Jul '19, 16:29

Ah, danke, das hilft schon sehr! Natürlich hab ich das sort=false bewusst eingefügt, aber dann die Konsequenzen nicht beachtet. Jetzt wäre eigentlich nur noch die Frage, ob ich in "mybox" auch etwas reinschreiben kann bzw. eine Abbildung reinladen kann. Also z. B. wird es so sein, dass bei einigen Fragen ein Koordinatensystem vorgegeben wird, das ich vermutlich mit Inkscape erstellen werde.

(03 Jul '19, 13:30) RungeZipperer
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×19

gestellte Frage: 02 Jul '19, 12:58

Frage wurde gesehen: 5,115 Mal

zuletzt geändert: 03 Jul '19, 13:30