21

EDIT within \documentclass[12pt]{book}I want to create chapter-wise exercises and put all the solutions (with or without hints) at the end of the book.

I want to do this in simple and non-tedious way like: For the input of the questions, I just want to add \questionfor each question and similar for answer, but all the answer should come at the end of the book.

I need the Exercises No as 1.1, 1.2, ..., 2.1, 2.2, ....

Problem Nos as 1, 2, 3, ...

The answer should include page No of the exercise as given in the attached jpg file.

Exercise style:

enter image description here

Solution type:

enter image description here

A MWE is as follows (I also don't know how to write solution in chapter 2 as problems are written within \begin{minipage} \end{minipage}. Suppose all solutions are: This is a solution Ex No.)

    \documentclass[12pt,openany,twoside]{book} 
\usepackage{fouriernc}
\usepackage[thmmarks,standard,thref]{ntheorem}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{answers}

\theoremseparator{.}
\theorembodyfont{\upshape}
\newtheorem{pro}{Problem}[chapter]

\Newassociation{loigiai}{Answer}{loigiaichung}


\begin{document}
\chapter{Firist }
\thispagestyle{empty}
\Opensolutionfile{loigiaichung}[pro]
In problem 1-3, determine whether the given differential equation is separable 
\begin{pro}
$\frac{dy}{dx}-\sin{(x+y)}=0$
\begin{loigiai}
This is a solution of Ex 1
\end{loigiai}
\end{pro}

\begin{pro}
$\frac{dy}{dx}=4y^2-3y+1$
\begin{loigiai}
This is a solution of Ex 2
\end{loigiai}
\end{pro}


\begin{pro}
$\frac{ds}{dt}=t\ln{(s^{2t})}+8t^2$
\begin{loigiai}
This is a solution Ex 3
\end{loigiai}
\end{pro}

In problem 4-6, solve the equation 
\begin{pro}
$\frac{dx}{dt}=3xt^2$
\begin{loigiai}
This is a solution Ex 4
\end{loigiai}
\end{pro}

\begin{pro}
$y^{-1}dy+ye^{\cos{x}}\sin{x}dx=0$
\begin{loigiai}
This is a solution Ex 5
\end{loigiai}
\end{pro}


\begin{pro}
$(x+xy^2)dx+ye^{\cos{x}}\sin{x}dx=0$
\begin{loigiai}
This is a solution Ex 5
\end{loigiai}
\end{pro}

\begin{pro}
$\frac{dy}{dt} = \frac{y}{t+1} + 4t^2 +  4t$, $\quad$ $y(1) = 10$
\begin{loigiai}
This is a solution Ex 6
\end{loigiai}
\end{pro}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Second }
\thispagestyle{empty}
\begin{pro}
Eight systems of differential equations and five direction fields are given below.  Determine the system that corresponds to each direction field and sketch the solution curves that correspond to the initial conditions $(x_0, y_0) = (0,1)$ and $(x_0, y_0) = (1,-1)$.
\begin{minipage}{.25\textwidth}
$(i)$\begin{align*}
\frac{dx}{dt} & = -x \\
\frac{dy}{dt} & = y-1\end{align*}
\end{minipage}
\begin{minipage}{.25\textwidth}
$(ii)$\begin{align*}
\frac{dx}{dt} & = x^2 - 1 \\
\frac{dy}{dt} & = y\end{align*}
\end{minipage}
\begin{minipage}{.25\textwidth}
$(iii)$\begin{align*}
\frac{dx}{dt} & = x+2y \\
\frac{dy}{dt} & = -y\end{align*}
\end{minipage}
\begin{minipage}{.25\textwidth}
$(iv)$\begin{align*}
\frac{dx}{dt} & = 2x \\
\frac{dy}{dt} & =  y\end{align*}
\end{minipage}

\begin{minipage}{.25\textwidth}
$(v)$\begin{align*}
\frac{dx}{dt} & = x \\
\frac{dy}{dt}  & = 2y\end{align*}
\end{minipage}
\begin{minipage}{.25\textwidth}
$(vi)$\begin{align*}
\frac{dx}{dt} & = x-1 \\
\frac{dy}{dt} & = -y\end{align*}
\end{minipage}
\begin{minipage}{.25\textwidth}
$(vii)$\begin{align*}
\frac{dx}{dt} & = x^2-1 \\
\frac{dy}{dt} & = -y\end{align*}
\end{minipage}
\begin{minipage}{.25\textwidth}
$(viii)$\begin{align*}
\frac{dx}{dt} & = x- 2y \\
\frac{dy}{dt} & =  -y\end{align*}
\end{minipage}
\end{pro}
\chapter{Answer to all problems}
\thispagestyle{empty}
\Closesolutionfile{loigiaichung}
\section{This is solution}
\input{pro}

\end{document}
  • 7
    There are whole document classes and styles devoted to this... A search of this site would help, I am sure. – Steven B. Segletes May 11 '17 at 17:05
  • 4
    I am sorry, but it is not my specialty, though I recall seeing regular questions on it. The exsheets package comes to mind. – Steven B. Segletes May 11 '17 at 17:33
  • 6
    ... and answers, exams, probsoln etc.... – user31729 May 11 '17 at 19:14
  • 6
    There is also exercise package. – CarLaTeX May 11 '17 at 20:46
  • 9
    I think you need to do the first step. Look at the packages, read threw their documentation, pick what is best suited and then work on a MWE like you did with your last question. Give us some code to play with. But If you just post a picture and say: "Do this very complicated thing for me." then you probably won't get an answers. – Georg May 21 '17 at 20:24
18
+50

Here is a solution with exercise package.

Its option answerdelayed allows you to print the answer where you want with \shipoutAnswer.

lastexercise means that if you don't put anything as answer reference, the Answer environment is referred to the previous exercise. However, I have also put \begin{Answer}[ref={...}], in this way you can move the code for the answers where you want, but you have to keep the order. For how I have created the code for the first answer of the chapter (to print CHAPTER ... in the final list), you also have to write it within the relative chapter.

Moreover, To have CHAPTER ... printed in the final answer list, you have to set \setboolean{firstanswerofthechapter}{true} at the beginning and \setboolean{firstanswerofthechapter}{false} at the end of the first answer of a chapter (maybe there's a smartest way to do it but it's above my level of knowledge).

Eventually, if you need horizontal lists you have to use tasks environment, otherwise the ordinary \Question is enough I put an example of both in my MWE.

Edit: I've changed the numbering as required by the OP in comment.

If you want the roman numbers begin from i. in the second question, just remove the [resume=true] option.

Second edit: To have the list of the second exercise correctly aligned, you have to use aligned instead of align*. Since these are systems, maybe it's better to put a curly bracket before, like here in Ex. 2.2:

\documentclass{book}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{multicol}

\usepackage{ifthen}
\newboolean{firstanswerofthechapter}  

\usepackage{xcolor}
\colorlet{lightcyan}{cyan!40!white}

\usepackage{chngcntr}
\usepackage{stackengine}

\usepackage{tasks}
\newlength{\longestlabel}
\settowidth{\longestlabel}{\bfseries viii.}
\settasks{counter-format={tsk[r].}, label-format={\bfseries}, label-width=\longestlabel,
    item-indent=0pt, label-offset=2pt, column-sep={10pt}}

\usepackage[lastexercise,answerdelayed]{exercise}
\counterwithin{Exercise}{chapter}
\counterwithin{Answer}{chapter}
\renewcounter{Exercise}[chapter]
\newcommand{\QuestionNB}{\bfseries\arabic{Question}.\ }
\renewcommand{\ExerciseName}{EXERCISES}
\renewcommand{\ExerciseHeader}{\noindent\def\stackalignment{l}% code from https://tex.stackexchange.com/a/195118/101651
    \stackunder[0pt]{\colorbox{cyan}{\textcolor{white}{\textbf{\LARGE\ExerciseHeaderNB\;\large\ExerciseName}}}}{\textcolor{lightcyan}{\rule{\linewidth}{2pt}}}\medskip}
\renewcommand{\AnswerName}{Exercises}
\renewcommand{\AnswerHeader}{\ifthenelse{\boolean{firstanswerofthechapter}}%
    {\bigskip\noindent\textcolor{cyan}{\textbf{CHAPTER \thechapter}}\newline\newline%
        \noindent\bfseries\emph{\textcolor{cyan}{\AnswerName\ \ExerciseHeaderNB, page %
                \pageref{\AnswerRef}}}\smallskip}
    {\noindent\bfseries\emph{\textcolor{cyan}{\AnswerName\ \ExerciseHeaderNB, page \pageref{\AnswerRef}}}\smallskip}}
\setlength{\QuestionIndent}{16pt}

\begin{document}
    \chapter{First}

    \begin{Exercise}\label{EX11}
        \vspace{-\baselineskip}% <-- You don't need this line of code if there's some text here
        \Question In problem \ref{EX11-1-i}-\ref{EX11-1-iii}, determine whether the given differential equation is separable  
        \begin{tasks}(2)
            \task\label{EX11-1-i} $\frac{dy}{dx}-\sin{(x+y)}=0$     
            \task $\frac{dy}{dx}=4y^2-3y+1$ 
            \task\label{EX11-1-iii} $\frac{ds}{dt}=t\ln{(s^{2t})}+8t^2$ 
        \end{tasks}
        \Question In problem \ref{EX11-2-iv}-\ref{EX11-2-viii}, solve the equation 
        \begin{tasks}[resume=true](2)
            \task\label{EX11-2-iv} $\frac{dx}{dt}=3xt^2$
            \task $y^{-1}dy+ye^{\cos{x}}\sin{x}dx=0$
            \task $(x+xy^2)dx+ye^{\cos{x}}\sin{x}dx=0$
            \task\label{EX11-2-viii} $\frac{dy}{dt} = \frac{y}{t+1} + 4t^2 +  4t$, $\quad$ $y(1) = 10$
        \end{tasks}
    \end{Exercise}
    \setboolean{firstanswerofthechapter}{true}
    \begin{multicols}{2}
        \begin{Answer}[ref={EX11}]
            \Question 
            \begin{tasks}
                \task This is a solution of Ex 1
                \task This is a solution of Ex 2 
                \task This is a solution of Ex 3 
            \end{tasks} 
            \Question 
            \begin{tasks}[resume=true]
                \task This is a solution of Ex 4
                \task This is a solution of Ex 5 
                \task This is a solution of Ex 6 
                \task This is a solution of Ex 7 
            \end{tasks} 
        \end{Answer}
    \end{multicols}
    \setboolean{firstanswerofthechapter}{false}

    \begin{Exercise}\label{EX12}
        Another exercise. 
        \Question If you don't need a horizontal list, you can simply use \verb|\Question|
    \end{Exercise}
    \begin{multicols}{2}
        \begin{Answer}[ref={EX12}]
            \Question This is a solution of Ex 1
        \end{Answer}
    \end{multicols}

    \chapter{Second}

    \begin{Exercise}\label{EX21}
        \vspace{-\baselineskip}% <-- You don't need this line of code if there's some text here
        \Question Eight systems of differential equations and five direction fields are given below.  Determine the system that corresponds to each direction field and sketch the solution curves that correspond to the initial conditions $(x_0, y_0) = (0,1)$ and $(x_0, y_0) = (1,-1)$.
        \begin{tasks}(3)
            \task $\begin{aligned}
            \frac{dx}{dt} & = -x \\     
            \frac{dy}{dt} & = y-1
            \end{aligned}$
            \task $\begin{aligned}
            \frac{dx}{dt} & = x^2 - 1 \\        
            \frac{dy}{dt} & = y
            \end{aligned}$
            \task $\begin{aligned}
            \frac{dx}{dt} & = x+2y \\
            \frac{dy}{dt} & = -y
            \end{aligned}$
            \task $\begin{aligned}
            \frac{dx}{dt} & = 2x \\
            \frac{dy}{dt} & =  y
            \end{aligned}$
            \task $\begin{aligned}
            \frac{dx}{dt} & = x \\
            \frac{dy}{dt}  & = 2y
            \end{aligned}$ 
            \task$\begin{aligned}
            \frac{dx}{dt} & = x-1 \\
            \frac{dy}{dt} & = -y
            \end{aligned}$
            \task$\begin{aligned}
            \frac{dx}{dt} & = x^2-1 \\
            \frac{dy}{dt} & = -y
            \end{aligned}$        
            \task $\begin{aligned}
            \frac{dx}{dt} & = x- 2y \\
            \frac{dy}{dt} & =  -y
            \end{aligned}$
        \end{tasks}
    \end{Exercise}
    \setboolean{firstanswerofthechapter}{true}
    \begin{multicols}{2}
        \begin{Answer}[ref={EX21}]
            \Question 
            \begin{tasks}
                \task This is a solution of Ex 1
                \task This is a solution of Ex 2 
                \task This is a solution of Ex 3 
                \task This is a solution of Ex 4 
                \task This is a solution of Ex 5 
                \task This is a solution of Ex 6 
                \task This is a solution of Ex 7 
                \task This is a solution of Ex 8 
            \end{tasks}
        \end{Answer}
    \end{multicols}
    \setboolean{firstanswerofthechapter}{false}
    \newpage        
    \begin{Exercise}\label{EX22}
        Since these are systems, maybe it's better to put the \verb|aligned| enviroment within  \verb|\left\{| and \verb|\right.|: 
        \Question Eight systems of differential equations and five direction fields are given below.  Determine the system that corresponds to each direction field and sketch the solution curves that correspond to the initial conditions $(x_0, y_0) = (0,1)$ and $(x_0, y_0) = (1,-1)$.
        \begin{tasks}(3)
            \task $\left\{\begin{aligned}
            \frac{dx}{dt} & = -x \\     
            \frac{dy}{dt} & = y-1
            \end{aligned}\right.$
            \task $\left\{\begin{aligned}
            \frac{dx}{dt} & = x^2 - 1 \\        
            \frac{dy}{dt} & = y
            \end{aligned}\right.$
            \task $\left\{\begin{aligned}
            \frac{dx}{dt} & = x+2y \\
            \frac{dy}{dt} & = -y
            \end{aligned}\right.$
            \task $\left\{\begin{aligned}
            \frac{dx}{dt} & = 2x \\
            \frac{dy}{dt} & =  y
            \end{aligned}\right.$
            \task $\left\{\begin{aligned}
            \frac{dx}{dt} & = x \\
            \frac{dy}{dt}  & = 2y
            \end{aligned}\right.$ 
            \task$\left\{\begin{aligned}
            \frac{dx}{dt} & = x-1 \\
            \frac{dy}{dt} & = -y
            \end{aligned}\right.$
            \task $\left\{\begin{aligned}
            \frac{dx}{dt} & = x^2-1 \\
            \frac{dy}{dt} & = -y
            \end{aligned}\right.$        
            \task $\left\{\begin{aligned}
            \frac{dx}{dt} & = x- 2y \\
            \frac{dy}{dt} & =  -y
            \end{aligned}\right.$
        \end{tasks}
    \end{Exercise}
    \begin{multicols}{2}
        \begin{Answer}[ref={EX22}]
            \Question 
            \begin{tasks}
                \task This is a solution of Ex 1
                \task This is a solution of Ex 2 
                \task This is a solution of Ex 3 
                \task This is a solution of Ex 4 
                \task This is a solution of Ex 5 
                \task This is a solution of Ex 6 
                \task This is a solution of Ex 7 
                \task This is a solution of Ex 8 
            \end{tasks}
        \end{Answer}
    \end{multicols}

    \chapter{Answer to all problems}

    \begin{multicols}{2}\raggedcolumns
        \shipoutAnswer
    \end{multicols}

\end{document}

enter image description here

enter image description here

enter image description here enter image description here

  • How can I get a link from solutions back to the questions and a link from questions to the solutions. – minhthien_2016 May 24 '17 at 8:38
  • I use this account from the begin. – minhthien_2016 May 24 '17 at 9:12
  • I use this account from the begin, but I saw difficult when I login, therefore I use another account. – minhthien_2016 May 24 '17 at 9:22
  • Yes. I am not the user who asked this question. – minhthien_2016 May 24 '17 at 9:58
  • @toandhsp Please ask your own question, then. – CarLaTeX May 24 '17 at 10:02
11
  • Following this answer, I used the newfile package to write the solutions to a separate file and read them in afterwards. The import lines are:

    \newoutputstream{solutions}
    \openoutputfile{\jobname.solutions}{solutions}
    \addtostream{solutions}{...}
    \closeoutputstream{solutions}
    \input{\jobname.solutions}
    
  • I defined two counters: exblock and exquestion. exblock counts the "exercises" sections, while exquestion counts the questions within an exercise. Through these, I can give unique labels to each question.

  • An exercise section starts with the \exheader command. This macro includes a call of \section! After \exheader, you can type questions within an exercises environment using the \question macro. It takes two arguments: the question and the solution.

    \exheader{}
    \begin{exercises}
        \question{Question}{Answer}
    \end{exercises}
    
  • At the end, call the macro \printsolutions to print the solutions to the exercises of all the chapters.

Here is the full code:

\documentclass{book}

\usepackage{newfile}
\usepackage{amsmath}
\usepackage{xifthen}
\usepackage{enumitem}
\usepackage{multicol}
\usepackage{lipsum}

\setlength{\parindent}{0pt}

\newoutputstream{solutions}
\openoutputfile{\jobname.solutions}{solutions}
\newcounter{exblock}
\newcounter{exquestion}
\newcounter{exsubquestion}
\newlist{questionlist}{enumerate}{1}
\newlist{solutionlist}{enumerate}{1}
\newlist{subquestionlist}{enumerate*}{1}
\newlist{subsolutionlist}{enumerate*}{1}
\setlist[questionlist,solutionlist]{label=\arabic*.}
\setlist[subquestionlist,subsolutionlist]{label=(\alph*),itemjoin={},before=~}
\newcommand{\exheader}{%
    \ifthenelse{\value{exblock}>0}{\addtostream{solutions}{\noexpand\end{solutionlist}}}{}%
    \refstepcounter{exblock}%
    \setcounter{exquestion}{0}%
    \section{Exercises}%
    \label{ex.\arabic{exblock}}%
    \addtostream{solutions}{\noexpand\paragraph{Exercises \noexpand\ref{ex.\arabic{exblock}}, page \noexpand\pageref{ex.\arabic{exblock}}}}%
    \addtostream{solutions}{\noexpand\begin{solutionlist}}%
}
\newcommand{\printsolutions}{%
    \ifthenelse{\value{exblock}>0}{\addtostream{solutions}{\noexpand\end{solutionlist}}}{}%
    \closeoutputstream{solutions}%
    \input{\jobname.solutions}%
}
\newenvironment{exercises}[1][]{%
    \begin{questionlist}[start=\value{exquestion}+1, #1]%
}{%
    \end{questionlist}%
}
\newenvironment{exercisescol}[2][]{%
    \begin{multicols}{#2}%
    \begin{questionlist}[start=\value{exquestion}+1, #1]%
}{%
    \end{questionlist}%
    \end{multicols}%
}
\newcommand{\question}[2]{%
    \refstepcounter{exquestion}%
    \label{ex.\arabic{exblock}.\arabic{exquestion}}%
    \item #1%
    \addtostream{solutions}{\noexpand\item[\noexpand\ref{ex.\arabic{exblock}.\arabic{exquestion}}.] #2}%
}
\newenvironment{subquestions}[1][]{%
    \refstepcounter{exquestion}%
    \label{ex.\arabic{exblock}.\arabic{exquestion}}%
    \setcounter{exsubquestion}{0}%
    \addtostream{solutions}{\noexpand\item[\noexpand\ref{ex.\arabic{exblock}.\arabic{exquestion}}.]\noexpand\begin{subsolutionlist}}%
    \item #1%
    \begin{subquestionlist}%
}{%
    \end{subquestionlist}%
    \addtostream{solutions}{\noexpand\end{subsolutionlist}}
}
\newcommand{\subquestion}[2]{%
    \refstepcounter{exsubquestion}%
    \item #1%
    \addtostream{solutions}{\noexpand\item #2}%
}


\setlist*[questionlist]{font=\bfseries}
\setlist*[solutionlist]{noitemsep,font=\bfseries}
\setlist*[subquestionlist]{font=\bfseries}
\setlist*[subsolutionlist]{noitemsep,font=\bfseries,itemjoin={\\},before={}}

\begin{document}

\chapter{Antidifferentiation}

\section{Introduction}
\lipsum[1-4]

\exheader
Find the indicated integral.
\begin{exercisescol}[noitemsep]{2}
    \question{$\int\sqrt{x}dx$}{$\tfrac{2}{3}x\sqrt{x}+C$}
    \question{$\int3e^xdx$}{$3e^x+C$}
    \question{$\int(3x^2-\sqrt{5x}+2)dx$}{$x^3-\tfrac{2}{3}x\sqrt{5x}+2x+C$}
    \question{$\int(\tfrac{1}{2x}-\tfrac{2}{x^2}+\tfrac{3}{\sqrt{x}})dx$}{$\tfrac{1}{2}\ln|x|+\tfrac{2}{x}+6\sqrt{x}+C$}
\end{exercisescol}
Now some more complicated questions:
\begin{exercises}
    \question{Find the function $f$ whose tangent has slope $x^3-\tfrac{2}{x^2}+2$ for each value of $x$ and whose graph passes through the point $(1,3)$.}{$f(x)=\tfrac{1}{4}x^4+\tfrac{2}{x}+2x-\tfrac{5}{4}$}
    \begin{subquestions}[Suppose a car supplies a constant deceleration of $A$ meters per second squared. If it is traveling at 90 kilometers per hour when the brakes are applied, its stopping distance is 50 meters.]
        \subquestion{What is $A$?}{$A=6.25$}
        \subquestion{What would the stopping distance have been if the car had been traveling at only 54 kilometers per hour when the brakes were applied?}{42 meters}
    \end{subquestions}
\end{exercises}

\chapter{Integration by Substitution}

\section{Method}
\lipsum[5-6]

\section{Examples}
\lipsum[7-9]

\exheader
Find the indicated integral.
\begin{exercises}
    \question{$\int(2x+6)^5dx$}{$\tfrac{1}{12}(2x+6)^6+C$}
    \question{$\int xe^{x^2}dx$}{$\tfrac{1}{2}e^{x^2}+C$}
\end{exercises}

\chapter{Appendix}

\section{Solutions}

\printsolutions

\end{document}

enter image description here

Further features:

  • The exercises environment continues the question numbering properly, even if you interrupt it to write a hint or so.
  • The exercises environment can take as an optional argument any enumitem option (like noitemsep) that you want to pass on to the enumerate environment that contains the questions. To set global options for the questions or solutions, use \setlist*[questionlist]{...} and \setlist*[solutionlist]{...}, respectively.
  • You can replace the exercises environment by an exercisescol environment that takes a number as argument and calls the multicol environment to put the questions into columns.
  • You can replace the \question macro by a subquestions environment and fill it with \subquestion macros (that work the same way as \question). subquestions takes as optional argument a hint that is printed before the first subquestion (only in question, not in solution):

    \begin{subquestions}[Some introductory remarks]
        \subquestion{First part}{First solution}
        \subquestion{Second part}{Second solution}
    \end{subquestions}
    
  • Use \usepackage{hyperref} if you want to include links of the solutions back to the questions.

  • I used \usepackage{hyperref}, but I only get a link from solutions back to the questions but don't get a link from questions to th solutions. Can you help me? – minhthien_2016 May 23 '17 at 1:09
  • That's right, I didn't implement that feature. To do this, one needs to update the \question macro and (1) add a label to the solution's item and (2) make the \ref the optional argument in the question's item. – Tiuri May 23 '17 at 6:21
  • Can you help me? – minhthien_2016 May 23 '17 at 7:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.