0

I am writing an mcq book using book class. The main.tex is as under.

\documentclass[12pt,a4paper]{book}
\usepackage{amsmath,amsthm}
\usepackage{ifthen,amsfonts,amssymb,dsfont}
\usepackage{etoolbox,multicol}
\documentclass[12pt,a4paper]{book}
\usepackage{amsmath,amsthm}
\usepackage{ifthen,amsfonts,amssymb,dsfont}
\usepackage{etoolbox,multicol}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{geometry}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{enumitem,kantlipsum}
\usepackage[dvips]{graphicx,color}
\usepackage{verbatim, pstricks,ulem}
\usepackage{syntonly}
\newcommand{\newmatrix}[2]{\left(\begin{array}{#1}   #2\end{array}\right)}

\newbox\allanswerkeys
\setbox\allanswerkeys=\vbox{}
\newenvironment{answerkey}{%
\global\setbox\allanswerkeys=\vbox\bgroup
\unvbox\allanswerkeys
}%
{%
\bigbreak
\egroup
}

\newcommand{\showallanswerkeys}{\par\unvbox\allanswerkeys}

\newcommand*{\getanswerkeys}[6]{%
\item[\theenumi.]\begin{answerkey}(#5)\end{answerkey}
}

\newbox\allanswers
\setbox\allanswers=\vbox{}

\newenvironment{answer}{%
\global\setbox\allanswers=\vbox\bgroup
\unvbox\allanswers
}%
{%
\bigbreak
\egroup
}

\newcommand{\showallanswers}{\par\unvbox\allanswers}

\newcommand*{\getanswer}[6]{%
\ifthenelse{\equal{#6}{}}{}{
\item[\theenumi.]\begin{answer}(#5)~#6\end{answer}
}}

\setlength\parindent{0pt}

\newcommand{\fourch}[6]{
\par
\begin{tabular}{*{4}{@{}p{0.23\textwidth}}}
(a)~#1 & (b)~#2 & (c)~#3 & (d)~#4
\end{tabular}
\getanswer{#1}{#2}{#3}{#4}{#5}{#6}
\getanswerkeys{#1}{#2}{#3}{#4}{#5}{#6}
}

\newcommand{\twoch}[6]{
\par
\begin{tabular}{*{2}{@{}p{0.46\textwidth}}}
(a)~#1 & (b)~#2
\end{tabular}
\par%\vspace{4pt}
\begin{tabular}{*{2}{@{}p{0.46\textwidth}}}
(c)~#3 & (d)~#4
\end{tabular}
\getanswer{#1}{#2}{#3}{#4}{#5}{#6}
\getanswerkeys{#1}{#2}{#3}{#4}{#5}{#6}
}

\newcommand{\onech}[6]{
%\par
\begin{tabular}{@{}p{0.04\textwidth}@{}p{0.91\textwidth}}
(a) & #1
\end{tabular}\vspace{2pt}
\begin{tabular}{@{}p{0.04\textwidth}@{}p{0.91\textwidth}}
(b) & #2
\end{tabular}\vspace{2pt}
\begin{tabular}{@{}p{0.04\textwidth}@{}p{0.91\textwidth}}
(c) & #3
\end{tabular}\vspace{2pt}
\begin{tabular}{@{}p{0.04\textwidth}@{}p{0.91\textwidth}}
(d) & #4
\end{tabular}

\getanswer{#1}{#2}{#3}{#4}{#5}{#6}
\getanswerkeys{#1}{#2}{#3}{#4}{#5}{#6}
}

\newlength\widthcha
\newlength\widthchb
\newlength\widthchc
\newlength\widthchd
\newlength\widthch
\newlength\tabmaxwidth

\setlength\tabmaxwidth{0.96\textwidth}
\newlength\fourthtabwidth
\setlength\fourthtabwidth{0.25\textwidth}
\newlength\halftabwidth
\setlength\halftabwidth{0.5\textwidth}

\newcommand{\choice}[6]{%
\settowidth\widthcha{AM.#1}\setlength{\widthch}{\widthcha}%
\settowidth\widthchb{BM.#2}%
\ifdim\widthch<\widthchb\relax\setlength{\widthch}{\widthchb}\fi%
\settowidth\widthchb{CM.#3}%
\ifdim\widthch<\widthchb\relax\setlength{\widthch}  {\widthchb}\fi%
\settowidth\widthchb{DM.#4}%
\ifdim\widthch<\widthchb\relax\setlength{\widthch} {\widthchb}\fi%

\ifdim\widthch>\halftabwidth
\onech{#1}{#2}{#3}{#4}{#5}{#6}
\else\ifdim\widthch<\halftabwidth
\ifdim\widthch>\fourthtabwidth
\twoch{#1}{#2}{#3}{#4}{#5}{#6}
\else
\fourch{#1}{#2}{#3}{#4}{#5}{#6}
\fi\fi\fi}

\newcommand{\mcq}[8]{
\item #2
\choice{#3}{#4}{#5}{#6}{#7}{#8}
}

\def\databaseone{
\mcq{245}{Let $A$ be a symmetric matrix of order $n$ and $B$ be a skew-    symmetric matrix of order $n$. Then which one of the following is a skew-symmetric matrix?}{$A^{2}$}{$B^{2}$}{$AB+BA$}{$AB-BA$}{c}{}{}

\mcq{248}{A square matrix is a diagonal matrix if and only if it is}{upper triangular}{lower triangular}{both upper triangular and lower triangular}{none of these}{c}{}{}

\mcq{249}{Let $A$ be a non-singular matrix of order $3$. Then the rank of matrix $A^{2018}$ is}{$1$}{$2$}{$3$}{$9$}{c}{Note that $A^{2018}$ is a non-singular matrix of order $3$. Hence rank $(A^{2018})=3$.}{}

\mcq{250}{If $A=\newmatrix{ccc}{0 & 1 & 0\\0 & 0 & 1\\1 & 0 & 0}$, then rank of the matrix $A+A^{2}+A^{3}$ is}{$1$}{$2$}{$3$}{none of these}{a}{Note that $A+A^{2}+A^{3}=\protect\newmatrix{ccc}{1 & 1 & 1\\1 & 1 & 1\\1 & 1 & 1}$. Hence rank $(A+A^{2}+A^{3})=1$}{}
}

\begin{document}
\chapter{One}
\begin{enumerate}
\databaseone 
\end{enumerate}

\bigskip
\Huge{Answer Key:}
\bigskip  

\begin{center}
\begin{multicols}{6}
\showallanswerkeys 
\end{multicols}
\end{center}

\bigskip
\Huge{Hint/Explanation of Selected Problems:}
\bigskip\bigskip
\showallanswers

\chapter{Two}
\begin{enumerate}
\databaseone 
\end{enumerate}

\bigskip
\Huge{Answer Key:}
\bigskip  

\begin{center}
\begin{multicols}{6}
\showallanswerkeys 
\end{multicols}
\end{center}

\bigskip
\Huge{Hint/Explanation of Selected Problems:}
\bigskip\bigskip
\showallanswers
\end{document}

When I run this code in overleaf the following strange output has been obtained.

enter image description here enter image description here enter image description here enter image description here enter image description here

Chapter two has different output than chapter one.

Please help me.

Many thanks in advance.

  • 1
    \usepackage[dvips]{graphicx,color} is overleaf really using latex+dvips and not pdflatex? – David Carlisle Nov 17 '18 at 20:09
  • 2
    size commands do not take an argument so \Huge{Hint/Explanation of Selected Problems:} makes the rest of the document \Huge but normally avoid explicit fonts and spacing, \section*{Hint/Explanation of Selected Problems:} ? – David Carlisle Nov 17 '18 at 20:10
2
\documentclass[12pt,a4paper]{book}
\usepackage{amsmath,amsthm}
\usepackage{ifthen,amsfonts,amssymb,dsfont}
\usepackage{etoolbox,multicol}


%%NO!!! two \documentclass \documentclass[12pt,a4paper]{book}
%% NO already loaded \usepackage{amsmath,amsthm}
%% NO already loaded \usepackage{ifthen,amsfonts,amssymb,dsfont}
%% NO already loaded \usepackage{etoolbox,multicol}
\usepackage[english]{babel}

% not in areal document \usepackage{blindtext}
\usepackage{geometry}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{enumitem,
% not in a real documentkantlipsum
}
\usepackage[
% NO dvips
]{graphicx,color}
\usepackage{verbatim, pstricks,ulem}
%NO! This disables almost all of latex if you use it \usepackage{syntonly}

% No use pmatrix from amsmath \newcommand{\newmatrix}[2]{\left(\begin{array}{#1}   #2\end{array}\right)}

\newbox\allanswerkeys
\setbox\allanswerkeys=\vbox{}
\newenvironment{answerkey}{%
\global\setbox\allanswerkeys=\vbox\bgroup
\unvbox\allanswerkeys
}%
{%
\bigbreak
\egroup
}

\newcommand{\showallanswerkeys}{\par\unvbox\allanswerkeys}

\newcommand*{\getanswerkeys}[6]{%
\item[\theenumi.]\begin{answerkey}(#5)\end{answerkey}
}

\newbox\allanswers
\setbox\allanswers=\vbox{}

\newenvironment{answer}{%
% OK but this is not colour safe, don't use colour in this environment
\global\setbox\allanswers=\vbox\bgroup
\unvbox\allanswers
}%
{%
\bigbreak
\egroup
}

\newcommand{\showallanswers}{\par\unvbox\allanswers}

\newcommand*{\getanswer}[6]{%
\ifthenelse{\equal{#6}{}}{}{
\item[\theenumi.]\begin{answer}(#5)~#6\end{answer}
}}

\setlength\parindent{0pt}

\newcommand{\fourch}[6]{
\par
\begin{tabular}{*{4}{@{}p{0.23\textwidth}}}
(a)~#1 & (b)~#2 & (c)~#3 & (d)~#4
\end{tabular}
\getanswer{#1}{#2}{#3}{#4}{#5}{#6}
\getanswerkeys{#1}{#2}{#3}{#4}{#5}{#6}
}

\newcommand{\twoch}[6]{
\par
\begin{tabular}{*{2}{@{}p{0.46\textwidth}}}
(a)~#1 & (b)~#2
\end{tabular}
\par%\vspace{4pt}
\begin{tabular}{*{2}{@{}p{0.46\textwidth}}}
(c)~#3 & (d)~#4
\end{tabular}
\getanswer{#1}{#2}{#3}{#4}{#5}{#6}
\getanswerkeys{#1}{#2}{#3}{#4}{#5}{#6}
}

\newcommand{\onech}[6]{
%\par
\begin{tabular}{@{}p{0.04\textwidth}@{}p{0.91\textwidth}}
(a) & #1
\end{tabular}\vspace{2pt}
\begin{tabular}{@{}p{0.04\textwidth}@{}p{0.91\textwidth}}
(b) & #2
\end{tabular}\vspace{2pt}
\begin{tabular}{@{}p{0.04\textwidth}@{}p{0.91\textwidth}}
(c) & #3
\end{tabular}\vspace{2pt}
\begin{tabular}{@{}p{0.04\textwidth}@{}p{0.91\textwidth}}
(d) & #4
\end{tabular}

\getanswer{#1}{#2}{#3}{#4}{#5}{#6}
\getanswerkeys{#1}{#2}{#3}{#4}{#5}{#6}
}

\newlength\widthcha
\newlength\widthchb
\newlength\widthchc
\newlength\widthchd
\newlength\widthch
\newlength\tabmaxwidth

\setlength\tabmaxwidth{0.96\textwidth}
\newlength\fourthtabwidth
\setlength\fourthtabwidth{0.25\textwidth}
\newlength\halftabwidth
\setlength\halftabwidth{0.5\textwidth}

\newcommand{\choice}[6]{%
\settowidth\widthcha{AM.#1}\setlength{\widthch}{\widthcha}%
\settowidth\widthchb{BM.#2}%
\ifdim\widthch<\widthchb\relax\setlength{\widthch}{\widthchb}\fi%
\settowidth\widthchb{CM.#3}%
\ifdim\widthch<\widthchb\relax\setlength{\widthch}  {\widthchb}\fi%
\settowidth\widthchb{DM.#4}%
\ifdim\widthch<\widthchb\relax\setlength{\widthch} {\widthchb}\fi%

\ifdim\widthch>\halftabwidth
\onech{#1}{#2}{#3}{#4}{#5}{#6}
\else\ifdim\widthch<\halftabwidth
\ifdim\widthch>\fourthtabwidth
\twoch{#1}{#2}{#3}{#4}{#5}{#6}
\else
\fourch{#1}{#2}{#3}{#4}{#5}{#6}
\fi\fi\fi}

\newcommand{\mcq}[8]{
\item #2
\choice{#3}{#4}{#5}{#6}{#7}{#8}
}

\def\databaseone{
\mcq{245}{Let $A$ be a symmetric matrix of order $n$ and $B$ be a
% no space in skew- symmetric
skew-symmetric matrix of order $n$. Then which one of the following is a skew-symmetric matrix?}{$A^{2}$}{$B^{2}$}{$AB+BA$}{$AB-BA$}{c}{}{}

\mcq{248}{A square matrix is a diagonal matrix if and only if it is}{upper triangular}{lower triangular}{both upper triangular and lower triangular}{none of these}{c}{}{}

\mcq{249}{Let $A$ be a non-singular matrix of order $3$. Then the rank of matrix $A^{2018}$ is}{$1$}{$2$}{$3$}{$9$}{c}{Note that $A^{2018}$ is a non-singular matrix of order $3$. Hence rank $(A^{2018})=3$.}{}

\mcq{250}{If $A=\begin{pmatrix}0 & 1 & 0\\0 & 0 & 1\\1 & 0 & 0\end{pmatrix}$, then rank of the matrix $A+A^{2}+A^{3}$ is}{$1$}{$2$}{$3$}{none of these}{a}{Note that $A+A^{2}+A^{3}=\protect\begin{pmatrix}1 & 1 & 1\\1 & 1 & 1\\1 & 1 & 1\protect\end{pmatrix}$. Hence rank $(A+A^{2}+A^{3})=1$}{}
}

\begin{document}
\chapter{One}
\begin{enumerate}
\databaseone 
\end{enumerate}

%\bigskip
% NO (this makes entire document Huge \Huge{Answer Key:}
\section*{Answer Key:}
%\bigskip  

\begin{center}
\begin{multicols}{6}
\showallanswerkeys 
\end{multicols}
\end{center}

%\bigskip
%\Huge
\section*{Hint/Explanation of Selected Problems:}
%\bigskip\bigskip
\showallanswers

\chapter{Two}
\begin{enumerate}
\databaseone 
\end{enumerate}

%\bigskip
%\Huge
\section*{Answer Key:}
%\bigskip  

\begin{center}
\begin{multicols}{6}
\showallanswerkeys 
\end{multicols}
\end{center}

%\bigskip
%\Huge
\section*{Hint/Explanation of Selected Problems:}
%\bigskip\bigskip
\showallanswers
\end{document}
  • Thank you for your quick and intelligent reply. This works excellently. But if I change \usepackage{geometry} by \usepackage[ top=1cm, bottom=1cm, left=2cm, right=2cm, headheight=17pt, includehead,includefoot, heightrounded]{geometry} , then there is an error in question 2 in chapter 1 and 2 both. How can I overcome this situation? – Arindam Bandyopadhyay Nov 18 '18 at 1:34
  • @ArindamBandyopadhyay it's not an error it's just an overfull box saying that something is a bit wider than the specified space, but if it looks Ok for this type of document you may just let that go – David Carlisle Nov 18 '18 at 10:44

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.