Die Antworten auf Unterfragen sind oft kurz: a) 2, b) -15, c) 21 Wie kann ich einen Zeilenumbruch für eine beliebige Unterfrage erzwingen? MWE folgt
%
%--------------------------------------------------------------------------------------------------------- %
\documentclass{book}
%--------------------------------------------------------------------------------------------------------- %
%
\usepackage[fleqn]{amsmath} %
\usepackage{amsthm,amssymb} %
\usepackage[paperwidth=170mm,paperheight=240mm,textwidth=132mm,driver=none,lmargin=25mm,vmargin=20mm,showframe,showcrop]{geometry} % verbose,showcrop,showframe=inner frame
\usepackage[a4,frame,center]{crop} % pageframe
\usepackage[lastexercise,answerdelayed]{exercise}
%
\setlength{\marginparsep}{0mm} %
%
\renewcommand{\subQuestionNB}{\alph{subQuestion}) }
\renewcommand{\AnswerHeader}{\medskip{\textbf{\AnswerName\ %
\ExerciseHeaderNB}\smallskip}}
\renewcommand{\ExerciseHeader}{\textbf{\quad\:\ExerciseName\;\ExerciseHeaderNB\ExerciseHeaderTitle\ExerciseHeaderOrigin} %
\par\nopagebreak\medskip}
\setlength{\subQuestionIndent}{16.8pt}
\renewcounter{Exercise}[chapter] % Reset counter every chapter
\renewcounter{Answer}[chapter] %
\newcounter{Problem}[chapter] %
%
\def\AnswerName{\par{Answers to questions on chapter}} %
%
\begin{document}
\begin{Exercise}[label={E1},name={Exercises on chapter},counter={Problem}]
\Question{What is the symbol for iron?}
\Question{What is the symbol for hydrogen?}
\end{Exercise}
\begin{Exercise}[label={E2},name={Exercises on chapter},counter={Problem}]
\Question{What is the symbol for iron?}
\Question{For hydrogen, state the following:}
\subQuestion{the valency?} \subQuestion{the atomic number?} \subQuestion{the density?}
\end{Exercise}
\begin{Answer}[ref={E1}]
\Question{Fe}
\Question{H}
\end{Answer}
\begin{Answer}[ref={E2}]
\Question{Fe}
\Question{}
\subQuestion{2}
\subQuestion{1 - Want this answer to follow on same line as (a)}
\subQuestion{small - and this answer, too}
\end{Answer}
\shipoutAnswer
\end{document}
Antwort1
Ich kenne das Übungspaket nicht, konnte in der Dokumentation aber keine Hinweise darauf finden, dass es die Möglichkeit bietet, Antworten in derselben Zeile zu haben. Daher habe ich \subQuestionOnSameLine
zu diesem Zweck einen neuen Befehl definiert.
Der Befehl, der für das Platzieren einer Unterfrage in einer neuen Zeile verantwortlich ist, ist \item
in \@subQuestionHeader
. Ich habe einen neuen Befehl definiert \@subQuestionHeader@noItem
, der im Grunde nur die Ausgabe von \show\@subQuestionHeader
ohne das, \item
sondern \hspace
stattdessen mit ist.
\subQuestionOnSameLine
ersetzt einfach \@subQuestionHeader
durch \@subQuestionHeader@noItem
und führt dann das normale aus \subQuestion
.
\@subQuestionHeader
wird am Ende der Frage zurückgesetzt, wo die Gruppe endet. Bis dahin \subQuestion
verhält sich alles wie \subQuestionOnSameLine
. Wenn Sie eine Unterfrage in einer neuen Zeile nach einem platzieren möchten, \subQuestionOnSameLine
können Sie verwenden \subQuestionOnNewLine
.
Bitte beachten Sie, dass die erste Unterfrage jeder Frage immer eine normale \subQuestion
und niemals eine sein sollte \subQuestionOnSameLine
.
\documentclass{book}
% ------ packages ------
\usepackage[fleqn]{amsmath}
\usepackage{amsthm,amssymb}
\usepackage[paperwidth=170mm,paperheight=240mm,textwidth=132mm,driver=none,lmargin=25mm,vmargin=20mm,showframe,showcrop]{geometry}
\usepackage[a4,frame,center]{crop}
\usepackage[lastexercise,answerdelayed]{exercise}
% ------ \subQuestionOnSameLine ------
\makeatletter
\let \@subQuestionHeader@original=\@subQuestionHeader
\newcommand{\@subQuestionHeader@noItem}{%
\hspace{1cm}%
\begingroup
\@getsubQuestionInfo
\subQuestionHeaderDifficulty
\subQuestionNB
\endgroup
\begingroup
\@getsubQuestionInfo
\subQuestionHeaderTitle
\endgroup%
\ignorespaces
}%
\newcommand{\subQuestionOnSameLine}{%
\let \@subQuestionHeader=\@subQuestionHeader@noItem
\subQuestion
}
\newcommand{\subQuestionOnNewLine}{%
\let \@subQuestionHeader=\@subQuestionHeader@original
\subQuestion
}
\makeatother
% ------ layout ------
\setlength{\marginparsep}{0mm}
\renewcommand{\subQuestionNB}{\alph{subQuestion}) }
\renewcommand{\AnswerHeader}{\medskip{\textbf{\AnswerName\
\ExerciseHeaderNB}\smallskip}}
\renewcommand{\ExerciseHeader}{\textbf{\quad\:\ExerciseName\;\ExerciseHeaderNB\ExerciseHeaderTitle\ExerciseHeaderOrigin}
\par\nopagebreak\medskip}
\setlength{\subQuestionIndent}{16.8pt}
\renewcounter{Exercise}[chapter] % Reset counter every chapter
\renewcounter{Answer}[chapter]
\newcounter{Problem}[chapter]
\def\AnswerName{\par{Answers to questions on chapter}}
% ------ document ------
\begin{document}
\begin{Exercise}[label={E1},name={Exercises on chapter},counter={Problem}]
\Question{What is the symbol for iron?}
\Question{What is the symbol for hydrogen?}
\end{Exercise}
\begin{Exercise}[label={E2},name={Exercises on chapter},counter={Problem}]
\Question{What is the symbol for iron?}
\Question{For hydrogen, state the following:}
\subQuestion{the valency} \subQuestion{the atomic number} \subQuestion{the density}
\end{Exercise}
\begin{Answer}[ref={E1}]
\Question{Fe}
\Question{H}
\end{Answer}
\begin{Answer}[ref={E2}]
\Question{Fe}
\Question{}
\subQuestion{answer to~a}
\subQuestionOnSameLine{answer to~b}
\subQuestionOnSameLine{answer to~c}
\end{Answer}
\shipoutAnswer
\end{document}