Exercise を使用してサブ質問で改行を抑制するにはどうすればよいでしょうか?

Exercise を使用してサブ質問で改行を抑制するにはどうすればよいでしょうか?

サブ質問の回答は短いことが多いです: a) 2、b) -15、c) 21 サブ質問に改行なしを強制するにはどうすればいいですか? MWEは次のようになります

%
%--------------------------------------------------------------------------------------------------------- %
\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}

答え1

私は演習パッケージに精通していませんが、ドキュメントには回答を同じ行に配置することをサポートしている記述が見つかりませんでした。そのため、\subQuestionOnSameLineこの目的のために新しいコマンドを定義しました。

新しい行にサブ質問を配置するコマンドは\iteminです。私は、基本的にを除いたの出力で、代わりにa を使用する\@subQuestionHeader新しいコマンドを定義しました。\@subQuestionHeader@noItem\show\@subQuestionHeader\item\hspace

\subQuestionOnSameLine\@subQuestionHeaderを に置き換えて\@subQuestionHeader@noItem、通常の を実行します\subQuestion

\@subQuestionHeaderは、グループが終了する質問の最後でリセットされます。それまではすべて の\subQuestionように動作します\subQuestionOnSameLine。 の後の新規行にサブ質問を配置する場合は、\subQuestionOnSameLineを使用できます\subQuestionOnNewLine

各質問の最初のサブ質問は常に通常の であり\subQuestion、 ではないことに注意してください\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}

スクリーンショット

関連情報