summaryrefslogtreecommitdiff
path: root/texmf-dist/tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-05-28 14:00:54 +0900
committerNorbert Preining <norbert@preining.info>2020-05-28 14:04:36 +0900
commit29458b25776677bea7ac847f20cda7161a9d816b (patch)
tree9d413a7ba96f51d39905ea7c534f1d2353d9d7fd /texmf-dist/tex
parent5effee81abbc995bcd9adc8f74a1cc30b3a92d53 (diff)
eqexam 20200528
Diffstat (limited to 'texmf-dist/tex')
-rw-r--r--texmf-dist/tex/latex/eqexam/aebrandom.def2
-rw-r--r--texmf-dist/tex/latex/eqexam/eqexam.def27
-rw-r--r--texmf-dist/tex/latex/eqexam/eqexam.sty229
3 files changed, 180 insertions, 78 deletions
diff --git a/texmf-dist/tex/latex/eqexam/aebrandom.def b/texmf-dist/tex/latex/eqexam/aebrandom.def
index 2906805a..f2952e46 100644
--- a/texmf-dist/tex/latex/eqexam/aebrandom.def
+++ b/texmf-dist/tex/latex/eqexam/aebrandom.def
@@ -18,7 +18,7 @@
%% License, or (at your option) any later version. %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ProvidesFile{aebrandom.def}
- [2020/01/01 v8.5.8 %
+ [2020/03/14 v8.5.10 %
Exerquiz support for randomization (dps)]
\@ifundefined{nextrandom}{\input{random.tex}}{}
\def\nextrandom{\begingroup
diff --git a/texmf-dist/tex/latex/eqexam/eqexam.def b/texmf-dist/tex/latex/eqexam/eqexam.def
index 53d9fc0f..0d865559 100644
--- a/texmf-dist/tex/latex/eqexam/eqexam.def
+++ b/texmf-dist/tex/latex/eqexam/eqexam.def
@@ -7,7 +7,7 @@
%% exerquiz.dtx (with options: `eqexam')
%%
\ProvidesFile{eqexam.def}
- [2020/01/01 v8.5.8 %
+ [2020/03/14 v8.5.10 %
Exerquiz support file for eqexam (dps)]
\let\eq@YES=y \let\eq@NO=n
\let\eq@One=1 \let\eq@Zero=0
@@ -257,6 +257,7 @@
{\if\exerstar*\def\eq@next{\@exercise}\else
\def\eq@next{\exercise@@}\fi\eq@next}%
}{\eq@postexerciseHook\endexerhook\par
+ \global\let\insE@rlyAtQues\@empty
\global\eq@exerciseheadingtrue\removelastskip\eq@exerskip}
\def\exercise@[#1]{\edef\eq@arg{#1}%
\if\eq@arg h\def\currhideopt{h}%
@@ -304,7 +305,8 @@
\newcommand\exerSolnHeader[3]{%
\prior@exerSolnHeaderHook
\ifeqforpaper\else\webnewpage\fi\markright{#1}%\par\noindent%
- #3%
+ \priorexlabelheader
+ #3\global\let\priorexlabelheader\relax
\solnhspace
}
\let\solnItemMngt\relax
@@ -363,7 +365,8 @@
\fi
\eq@initializeContAnnot
\ifeq@exerciseheading
- \prior@questionsHook\marginparpriorhook\noindent\eqexheader@wrapper
+ \prior@questionsHook
+ \insE@rlyAtQues\marginparpriorhook\noindent\eqexheader@wrapper
\afterlabelhskip\marginparafterhook\gEx@CommonCmd
\eq@setPrbSolnAftrIndnt\ignorespaces\fi}
\newif\ifterminexchanged \terminexchangedfalse % dps cq
@@ -374,6 +377,7 @@
\def\makeExSolnsLocalOn{\makeExSlLocaltrue}
\def\makeExSolnsLocalOff{\makeExSlLocalfalse}
\let\eqMrkSoln\@gobble
+\let\priorexlabelheader\relax
\def\eqExerSolnHeaderSngl{%
\ifmakeExSlLocal\protect\begingroup^^J\fi
\ifx\eqMrkCpyArg\@empty\else
@@ -677,7 +681,7 @@
\endsolnexerhook\penalty0\relax}
\let\eq@exerstarEnv\relax
\newenvironment{exercise*}{\def\eq@exerstarEnv{*}\exercise}
-{\endexercise}
+{\global\let\insE@rlyAtQues\@empty\endexercise}
\def\exerwparts@cols{0}
\let\topofpartshook\relax
\let\@listiiredefined\eq@NO
@@ -730,6 +734,7 @@
\let\eqp@rtc@lcm@rk\relax
\let\eq@insertContAnnot\relax
\def\eq@item@common{\eq@insertContAnnot\eqp@rtc@lcm@rk
+ \global\let\probInMinip@ge\relax
\def\currhideopt{x}\eq@hidesolutionfalse\eq@nolinkfalse
\@ifnextchar[{\@ckhide}{\eq@item}}
\newcommand{\partsitemsep}[1]{{%
@@ -762,6 +767,7 @@
\eq@item@latex\eq@optArg\exlisttabheaderafterhook}
\newif\ifwithinparts
\let\ex@listtabheader@fterhook\@empty
+\let\probInMinip@ge\relax
\newenvironment{exercise@parts@list}{%
\settowidth{\eq@tmplength}{\parts@indent}%
\edef\widthOfParts{\the\eq@tmplength}%
@@ -817,9 +823,11 @@
{\eq@item@latex\ex@listtabheader@fterhook
\exlisttabheaderafterhook}}%
\def\eqthisenv{parts}\withinpartstrue
- \def\item{\ifx\@currenvir\eqthisenv
+ \def\item{\ifx\probInMinip@ge\relax
+ \ifx\@currenvir\eqthisenv
\def\eq@next{\eq@item@common}\else
\def\eq@next{\eq@item}\fi
+ \else\def\eq@next{\eq@item@common}\fi
\eq@next}%
}}{\endlist\global\let\leadinitem\leadinitem@external
\post@parts@hook\belowpartshook}
@@ -1055,9 +1063,8 @@
\newcommand{\exerSolnInput}
{%
\@ifundefined{eqe@IWO}{}{\ifsolutionsAtEnd
- \eqe@IWO\@auxout{\string\expandafter\string\gdef
- \string\csname\space eqExamQuesLastPage\string\endcsname
- {\arabic{page}}}\fi}\let\webnewpage\relax
+ \eqe@IWO\@auxout{\string\csarg\string\gdef
+ {eqExamQuesLastPage}{\arabic{page}}}\fi}\let\webnewpage\relax
\ifsolutionsonly\else
\bgroup\OKToWriteExamDatatrue
\writeT@ExSolns{\string\endinput}\egroup
@@ -1086,6 +1093,7 @@
\exerSolnInput
}
\newcommand{\prior@questionsHook}{}
+\let\insE@rlyAtQues\@empty
\let\qMark@Hook\@empty
\let\aebtitleQuiz\@empty
\newcommand{\post@questionsHook}{}
@@ -1125,7 +1133,8 @@
\toks@=\expandafter\expandafter\expandafter{#1}\expandafter
\xdef\csname quesOpts\@quesctr\endcsname{\the\toks@}%
\edef\tempexp{\noexpand\setkeys{props@ques}{\the\toks@}}\tempexp
- \list{\qMark@Hook\prior@questionsHook\gdef\eqPTs{1}%
+ \list{\qMark@Hook\prior@questionsHook
+ \insE@rlyAtQues\gdef\eqPTs{1}%
\global\let\eqQT\eq@na%
{\@tempcnta=0 \let\@thispr@b\@empty
\@whilenum\@tempcnta<\@eqquestiondepth\do{\advance\@tempcnta\@ne
diff --git a/texmf-dist/tex/latex/eqexam/eqexam.sty b/texmf-dist/tex/latex/eqexam/eqexam.sty
index 18ef5a68..92f13ee9 100644
--- a/texmf-dist/tex/latex/eqexam/eqexam.sty
+++ b/texmf-dist/tex/latex/eqexam/eqexam.sty
@@ -19,8 +19,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{eqexam}
- [2020/01/06 v5.1.8 An Exam Construction Package (dps)]
-\def\eqexamdefReq{2020/01/01}
+ [2020/03/14 v5.1.10 An Exam Construction Package (dps)]
+\def\eqexamdefReq{2020/03/14}
\RequirePackage{ifpdf}[2006/02/20]
\RequirePackage{ifxetex}[2006/08/21]
\usepackage{xkeyval}
@@ -135,7 +135,7 @@
\def\eqe@auto@chk@drivers{\ifpdf\ExecuteOptionsX{pdftex}\else
\ifxetex\ExecuteOptionsX{xetex}\fi\fi}
\newif\ifeqeonline \eqeonlinefalse
-\DeclareOptionX{online}{\eqe@auto@chk@drivers
+\DeclareOptionX{online}{\eqe@auto@chk@drivers\displayworkareafalse
\let\eq@online\eqe@YES\eqeonlinetrue\ExecuteOptionsX{links}}
\DeclareOptionX{pdf}{\eqe@auto@chk@drivers\let\load@web\eqe@YES}
\DeclareOptionX{links}{\eqe@auto@chk@drivers
@@ -257,6 +257,7 @@
\newif\ifeq@proofing \eq@proofingfalse
\newif\ifeq@nolink \eq@nolinkfalse
\@ifundefined{ifpreview}{\newif\ifpreview \previewfalse}{}
+\def\previewOn{\previewtrue}\def\previewOff{\previewfalse}
\newif\ifeqforpaper \eqforpaperfalse
\def\eqe@csarg#1#2{\expandafter#1\csname#2\endcsname}
\@for\eqe@tmp@i:={},i,ii,iii,iv,v,vi\do{\eqe@csarg
@@ -315,8 +316,10 @@
\ifx\eqeAEFormatting\@empty\else
\eqe@IWO\quiz@solns{\string\eqeAEFormatting}\fi
\fi
+ \protect\cqqsfalse
}
-\def\writeWithSolDocTrue{\writeT@SolnFile{\protect\withinsoldoctrue}}
+\def\writeWithSolDocTrue{\writeT@SolnFile{%
+ \protect\withinsoldoctrue\protect\cqqsfalse}}
\newcommand{\setSolnMargins}[1]{\setlength\eqemargin{#1}\ignorespaces}
\def\altSetSolnMargins#1{\def\alt@SetSolnMargins{#1}}
\let\alt@SetSolnMargins\@empty
@@ -345,6 +348,7 @@
\fi\fi
}
\def\csarg#1#2{\expandafter#1\csname#2\endcsname}
+\let\w@csarg\csarg
\def\saveIFEQE#1{\def\ARG{#1ifSave}%
\expandafter\csarg\expandafter
\let\expandafter\ARG\csname#1\if#1true\else false\fi\endcsname}
@@ -422,7 +426,7 @@
\RequirePackage{pifont}
\RequirePackage{array}
\RequirePackage{verbatim}
-\@ifundefined{dlcomment}{\typeout{!! defining dlcomment}%
+\@ifundefined{dlcomment}{%\typeout{!! defining dlcomment}%
\let\dlcomment\comment
\let\enddlcomment\endcomment
\let\eqSavedComment\dlcomment
@@ -504,6 +508,7 @@
\let\marginpoints\eqrightmarginbox}
\def\PointsOnBothSides{\def\@reportpoints{3}\relax
\let\marginpoints\eqbothmargins}
+\let\PointsOnBoth\PointsOnBothSides
\newif\ifeqe@nopoints \eqe@nopointsfalse
\def\NoPoints{\if\isInExamEnv\eqe@NO
\eqe@nopointstrue\def\@reporttotals{0}\let\totalsbox=\hfil
@@ -1091,8 +1096,12 @@
\Ans@proofing{\RadioFieldSize}%
\eq@hspanner\ignorespaces
}
-\def\optsMlTextField#1{\def\eqe@optsmltf{#1}}
+\def\optsMlTxtFld#1{\def\eqe@optsmltf{#1}}
\let\eqe@optsmltf\@empty
+\def\eqeLW{\linewidth}
+\def\wdthMlTxtFld#1{\setlength\eqetmplengtha{#1}%
+ \edef\eqeLW{\the\eqetmplengtha}}
+\def\resetFldWdth{\gdef\eqeLW{\linewidth}}%
\def\eqExamPriorVspace#1{%
\edef\fieldName{%
\if\probstar*eqexam.\curr@quiz.%
@@ -1102,7 +1111,7 @@
\fi
}%
\nobreak\noindent\textField[\BC{}\presets{\eqe@optsmltf}
- \Ff\FfMultiline]{\fieldName}{\linewidth}{#1}\@gobble
+ \Ff\FfMultiline]{\fieldName}{\eqeLW}{#1}\resetFldWdth\@gobble
}
\@ifpackageloaded{exerquiz}{%
\let\Ans@sq@l\eqExam@Ans@sq@l
@@ -1249,8 +1258,7 @@
{\let\@getsecondOf\@secondoffive}%
\@ifundefined{r@#1}{%
\csarg\gdef{nRefii@#1}{0}}{%
- \expandafter\xdef\csname nRefii@#1\endcsname
- {\expandafter\expandafter\expandafter
+ \csarg\xdef{nRefii@#1}{\expandafter\expandafter\expandafter
\@getsecondOf\csname r@#1\endcsname}%
}%
}
@@ -1579,22 +1587,26 @@
new Array("pointsgiven.\curr@quiz.page\thepage"));}}]
{\fieldName}{\widthtpboxes}{15pt}%
}
-\ifx\use@email y
+\ifx\use@email\eqe@YES
\let\insertPointsBoxPDF\@insertPointsBoxPDF
\let\insertTotalsBoxPDF\@insertTotalsBoxPDF
\else
\let\insertPointsBoxPDF\@empty
\let\insertTotalsBoxPDF\@empty
\fi
-\newcommand{\eqrightmarginbox}[2]{\makebox[0pt][l]{%
- \setlength\tabcolsep{0pt}%
- \setlength{\@tempdima}{\textwidth-\eqemargin+\marginparsep}%
- \hspace*{\@tempdima}%
- \raisebox{-.5\height}[0pt][0pt]{%
- \marginboxdesign[\insertPointsBoxPDF]%
- {\marginpointsboxtext{#1}{#2}}%
- }\hfil
- }%
+\newcommand{\eqrightmarginbox}[2]{%
+ \makebox[0pt][l]{%
+ \ifx\probInMinip@ge\relax
+ \let\eq@TW\textwidth\else
+ \let\eq@TW\eqTWSave\fi
+ \setlength\tabcolsep{0pt}%
+ \setlength{\@tempdima}{\eq@TW-\eqemargin+\marginparsep}%
+ \hspace*{\@tempdima}%
+ \raisebox{-.5\height}[0pt][0pt]
+ {\marginboxdesign[\insertPointsBoxPDF]%
+ {\marginpointsboxtext{#1}{#2}}%
+ }\hfil
+ }\let\probInMinip@ge\relax
}
\newcommand{\eqeomarginboxright}[2]{\makebox[0pt][l]{%
\setlength\tabcolsep{0pt}%
@@ -1904,6 +1916,8 @@
\newenvironment{@ssSolution}[1][\ss@Argii]%
{%
\def\eqe@argi{#1}\ifx\eqe@argi\@empty\else
+ \setlength{\@tempdima}{\ss@Argii}% chng
+ \edef\ss@Argii{\the\@tempdima}%
\let\soln@keys@nLines\@empty
\edef\panelheight{\the\panelheight}%
\edef\panelwidth{\the\panelwidth}%
@@ -1977,12 +1991,12 @@
\string\setlength{\string\panelwidth}{\ss@Argiii}%
\string\def\string\eqedepth
{\ifeq@nosolutions\ss@Argii\else\ss@Argii\fi}C}}}%
- {\lccode`C=`\%\lowercase{\eqe@IW{%
- \string\strut\string\noindent%
- \string\hbox\space to\string\linewidth\bgroup^^J%
- \eqe@lPanel\string\minipage[b][\string\eqedepth][t]%
- {\string\linewidth\eqe@subleftgutter%
- -\string\panelwidth-\string\panelgap}C
+ {\lccode`C=`\%\lowercase{\eqe@IW{\string\vskip2pt
+ \string\noindent\string\hskip\string\eqemargin
+ \string\hbox\space to\string\linewidth\bgroup^^J%
+ \eqe@lPanel\string\minipage[b][\string\eqedepth][t]%
+ {\string\linewidth\eqe@subleftgutter%
+ -\string\panelwidth-\string\panelgap}C
}}}%
\ifeq@solutionsafter
\noindent\strut\hbox to\linewidth\bgroup
@@ -2113,31 +2127,60 @@
}
\def\tb@insmargmark{\ifisinstred\ifismarginans
\insMidMarg{\mark{}}\fi\fi}
-\def\eqe@adjForSepRule{\if\eq@parttotals\eqe@YES
+\def\eqe@adjForSepRule{\ifx\eq@parttotals\eqe@YES
\eq@pointboxtotalheight\halfHtPtBox\relax
\advance\eq@pointboxtotalheight\dpPtBox\relax
\advance\eq@pointboxtotalheight\pointsmarginparpush
\vspace*{\eq@pointboxtotalheight}\fi}
\def\eqe@afterexamsepcode{%
- \if\eq@parttotals\eqe@YES
- \@actionsAtPageBreak{\global\let\@spacetobreak1}%
- {\global\let\@spacetobreak0}%
- \ifx\@spacetobreak0\relax
- \bgroup\@tempdima=\pagetotal
- \advance\@tempdima\eq@pointboxtotalheight
- \ifdim\@tempdima>\pagegoal\aftergroup\newpage
- \else\ifnum\arabic{eq@count}>0\relax
- \removelastskip\vskip6pt\kern0pt
- \if\@reportpoints\eqe@One\else\@checkSpacing{0}\fi
- \textcolor{\endexamtotal@color}%
- {\eqeomarginbox{\arabic{eq@count}}{0}}\fi
- \ifx\eqx@separationrule\eqe@YES
- \separationrule\eqe@adjForSepRule\fi
- \fi\egroup
+ \ifx\eq@parttotals\eqe@YES
+ \@actionsAtPageBreak{\global\let\@spacetobreak\eqe@One}%
+ {\global\let\@spacetobreak\eqe@Zero}%
+ \ifx\@spacetobreak\eqe@One
+ \bgroup\@tempdima=\pagetotal
+ \advance\@tempdima\eq@pointboxtotalheight
+ \ifdim\@tempdima>\pagegoal\aftergroup\newpage
+ \else
+ \ifnum\arabic{eq@count}>\z@
+ \removelastskip\vskip6pt\kern0pt
+ \ifx\@reportpoints\eqe@One\else\@checkSpacing{0}\fi
+ \def\@emitPartTotalsBox{\textcolor{\endexamtotal@color}%
+ {\eqeomarginbox{\arabic{eq@count}}{0}}}%
+ \insertContent\@emitPartTotalsBox
+ \fi
+ \ifx\eqx@separationrule\eqe@YES
+ \def\@emitSepRule{\separationrule\eqe@adjForSepRule}%
+ \insertContent\@emitSepRule
\fi
- \else\ifx\eqx@separationrule\eqe@YES
- \separationrule\eqe@adjForSepRule\fi
+ \fi\egroup
+ \else
+ \ifnum\arabic{eq@count}>\z@
+ \ifx\@reportpoints\eqe@One\else\@checkSpacing{0}\fi
+ \def\@emitPartTotalsBox{\textcolor{\endexamtotal@color}%
+ {\eqeomarginbox{\arabic{eq@count}}{0}}}%
+ \insertContent\@emitPartTotalsBox
+ \fi
+ \ifx\eqx@separationrule\eqe@YES
+ \def\@emitSepRule{\separationrule\eqe@adjForSepRule}%
+ \insertContent\@emitSepRule
+ \else
+ \eqe@adjForSepRule
+ \fi
\fi
+ \else
+ \ifx\eqx@separationrule\eqe@YES
+ \def\@emitSepRule{\separationrule\bigskip}%
+ \insertContent\@emitSepRule\fi
+ \fi
+}
+\def\insertContent#1{%
+ \@ifundefined{NextAfter\currExamName}
+ {#1}
+ {\edef\x{%
+ \numFirstPageOfExam{\@nameuse{NextAfter\currExamName}}}%
+ \edef\y{\numLastPageOfExam{\currExamName}}%
+ \ifnum\x=\y\relax#1\fi
+ }%
}
\def\examenddef
{%
@@ -2211,36 +2254,52 @@
\def\RecordThisExamOff{\DoNotRecordThisExamtrue} % dpsf02
\def\bIFFalseWrtSolns{\writeT@SolnFile{\protect\iffalse^^J}}
\def\eIFFalseWrtSolns{\writeT@SolnFile{\protect\fi^^J}}
+\let\currExamName\@empty
+\let\prevExamName\@empty
+\let\nextExamName\@empty
\newenvironment{exam}[2][]
{%
- \ifDoNotRecordThisExam % dpsf02
+ \xdef\eqTWSave{\the\textwidth}%
+ \ifDoNotRecordThisExam
\expandafter\bIFFalseWrtSolns\fi
- \makeRoomForProb{\@fvsizeskip\textheight}{0}%
- \let\isInExamEnv\eqe@YES
- \stepcounter{eq@numparts}%
- \def\eqexamargii{#2}\ifx\eqexamargii\@empty
- \edef\eqexamargii{\autoExamName}\fi
- \xdef\thisexamlabel{\eqexamargii}\xdef\curr@quiz{\eqexamargii}%
- \def\eqexamargi{#1}\ifx\eqexamargi\@empty
- \edef\eqexamargi{\eqexamargii}\fi
- \expandafter\gdef\expandafter\thisUFexamlabel
- \expandafter{\eqexamargi}%
- \edef\eq@tmp{\the\partNames\string\\{\eqexamargii}}%
- \global\partNames=\expandafter{\eq@tmp}%
- \csarg\ifx{NumberOfParts}\relax\else
-\ifx\eqeWrtExamTitleToSolns\eqe@YES
- \ifnum\nNumberOfP@rts=1\relax\else
- \def\eqe@argi{#1}\ifx\eqe@argi\@empty
- \eqe@writetoSolns{\eqexamargii}\eqe@writetoAux{\string
- \csarg\string\gdef{userFriendly\eqexamargii}{\eqexamargii}}
+ \makeRoomForProb{\@fvsizeskip\textheight}{0}%
+ \ifx\currExamName\@empty % chng
+ \xdef\currExamName{#2}\else
+ \xdef\prevExamName{\currExamName}%
+ \eqe@IWO\@auxout{\string\csarg\string
+ \gdef{NextAfter\prevExamName}{#2}}%
+ \xdef\currExamName{#2}%
+ \eqe@IWO\@auxout{\string\csarg\string
+ \gdef{PrevTo\currExamName}{\prevExamName}}%
+ \fi
+ \let\isInExamEnv\eqe@YES
+ \stepcounter{eq@numparts}%
+ \def\eqexamargii{#2}\ifx\eqexamargii\@empty
+ \edef\eqexamargii{\autoExamName}\fi
+ \xdef\thisexamlabel{\eqexamargii}\xdef\curr@quiz{\eqexamargii}%
+ \def\eqexamargi{#1}\ifx\eqexamargi\@empty
+ \edef\eqexamargi{\eqexamargii}\fi
+ \expandafter\gdef\expandafter\thisUFexamlabel
+ \expandafter{\eqexamargi}%
+ \edef\eq@tmp{\the\partNames\string\\{\eqexamargii}}%
+ \global\partNames=\expandafter{\eq@tmp}%
+ \csarg\ifx{NumberOfParts}\relax\else
+ \ifx\eqeWrtExamTitleToSolns\eqe@YES
+ \ifnum\nNumberOfP@rts=1\relax
+ \else
+ \def\eqe@argi{#1}%
+ \ifx\eqe@argi\@empty
+ \eqe@writetoSolns{\eqexamargii}\eqe@writetoAux{\string
+ \csarg\string\gdef{userFriendly\eqexamargii}{\eqexamargii}}
\else
- \eqe@writetoSolns{#1}\eqe@writetoAux{\string
- \csarg\string\gdef{userFriendly#2}{#1}}
+ \eqe@writetoSolns{#1}\eqe@writetoAux{\string
+ \csarg\string\gdef{userFriendly#2}{#1}}%
\fi
- \fi\fi
-\fi
- \exambegdef
- \edef\temp@Exp{\noexpand\shortquiz\sqstar[\eqexamargii]}\temp@Exp
+ \fi
+ \fi
+ \fi
+ \exambegdef
+ \edef\temp@Exp{\noexpand\shortquiz\sqstar[\eqexamargii]}\temp@Exp
}{%
\examenddef
\vskip\eqeques@parsep\relax\kern0pt %dps88
@@ -3447,6 +3506,40 @@
\ifeqfortextbook\else
\if@bypasseqexamheading\else
\pagestyle{eqExamheadings}\fi\fi
+\def\probInMinipage{%
+ \ifanswerkey
+ \ifkeepdeclaredvspacing
+ \global\let\w@sKeyOn\eqe@YES
+ \vspacewithkeyOff
+ \else
+ \global\let\w@sKeyOn\eqe@NO
+ \fi
+ \fi
+ \let\probInMinip@ge\eqTWSave\noindent}
+\let\probInMinip@ge\relax
+\newenvironment{vadjForSolnInBx}[1]{%
+ \setlength\@tempdima{#1}%
+ \setbox\z@\vbox\bgroup\hsize\@tempdima
+}{%
+ \egroup
+ \ifanswerkey
+ \ifx\w@sKeyOn\eqe@YES
+ \global\vspacewithkeyOn\fi
+ \setlength{\@tempdima}{\ht\z@+\dp\z@}%
+ \setlength{\@tempdima}{\sameVspace-\@tempdima}%
+ \par\vspace{\@tempdima}\fi
+ \setbox\z@\box\voidb@x
+}
+\def\bProbInsert#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \global\let\insE@rlyAtQues\@empty\else
+ \gdef\insE@rlyAtQues{\begingroup#1}\fi}
+\def\bItemInsert#1{\begingroup#1\noindent\ignorespaces}
+\def\eProbInsert{\par\endgroup\@restorepar\par}
+\newcommand{\probInsertSoln}[2][]{\writeToSolnFile{#1%
+ \protect\def\protect
+ \priorexlabelheader{\protect#2\protect\noindent
+}}}
+\def\RESTOREPAR{\let\par\@@par}
\ifeqfortextbook
\AtBeginDocument{\tb@soln@choice
\ifeqwritetomargins\chkmarginboxwidth