summaryrefslogtreecommitdiff
path: root/texmf-dist/tex/latex/acrotex/aebsumrytbls.def
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2017-07-12 23:26:39 +0900
committerNorbert Preining <norbert@preining.info>2017-07-12 23:26:39 +0900
commit01c9ee84c09adfc3efe1cd93191a9c0473f985fe (patch)
tree6fe7c1648fa25e3dcc9b4c67657b89ac1525f289 /texmf-dist/tex/latex/acrotex/aebsumrytbls.def
parent542c5a785f8db8d4469e296c69c86bc030285f68 (diff)
add acrotex
Diffstat (limited to 'texmf-dist/tex/latex/acrotex/aebsumrytbls.def')
-rw-r--r--texmf-dist/tex/latex/acrotex/aebsumrytbls.def255
1 files changed, 255 insertions, 0 deletions
diff --git a/texmf-dist/tex/latex/acrotex/aebsumrytbls.def b/texmf-dist/tex/latex/acrotex/aebsumrytbls.def
new file mode 100644
index 00000000..8c74db2b
--- /dev/null
+++ b/texmf-dist/tex/latex/acrotex/aebsumrytbls.def
@@ -0,0 +1,255 @@
+%%
+%% This is file `aebsumrytbls.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% exerquiz.dtx (with options: `copyright,sumrytbls')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Exerquiz.sty package, %%
+%% Copyright (C) 1999-2017 D. P. Story %%
+%% dpstory@uakron.edu %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1 of the %%
+%% License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ProvidesFile{aebsumrytbls.def}
+ [2017/03/16 v7.8g %
+ Exerquiz support for summary tables (dps)]
+\def\ccatCurrQzWith(#1){\currQuiz#1}
+\def\pbPopulateSumTable{\pushButton[\W0\BG{}\BC{}\S{S}\autoCenter{n}
+ \TU{\thequestionno}\Ff{\FfReadOnly}
+ \AA{\AAPageVisible{try{popVisitsTbl("\currQuiz",\thequestionno)}%
+ catch(e){}}}]{\currQuiz activateSC}{0pt}{0pt}}
+\def\pbDoNoCorrectSumryTbl{\makebox[0pt][l]{\pushButton[\F{\FHidden}]%
+ {\currQuiz NoCorrections}{0pt}{0pt}}}
+\newcount\eq@rowcnt
+\newcommand{\sumryTblQ}{Question}
+\newcommand{\sumryTblR}{Responded}
+\newcommand{\sumryTblP}{Page}
+\define@key{smrytbl}{ntables}{%
+ \@tempcntb=#1
+ \ifnum\@tempcntb<1 \@tempcntb=1 \fi
+ \ifnum\@tempcntb>3 \@tempcntb=3 \fi
+ \edef\smrytbl@ntables{\the\@tempcntb}%
+}
+\def\smrytbl@ntables{2}
+\define@key{smrytbl}{showmarkup}[true]{%
+ \csname if#1\endcsname\eqshowmarkuptrue
+ \else\eqshowmarkupfalse\fi
+}
+\newif\ifsmrytbl@corrections\smrytbl@correctionstrue
+\define@key{smrytbl}{nocorrections}[true]{%
+ \csname if#1\endcsname\smrytbl@correctionsfalse
+ \else\smrytbl@correctionstrue\fi
+}
+\define@key{smrytbl}{showOutOf}[true]{%
+ \csname if#1\endcsname\eqshowOutOftrue\def\stfmtType{OO}%
+ \gdef\showOutOfinSmryTbl{true}\let\stmarkupbox\relax
+ \else
+ \eqshowOutOffalse\let\stfmtType\@empty
+ \gdef\showOutOfinSmryTbl{false}%
+ \fi
+}
+\let\stfmtType\@empty
+\define@key{smrytbl}{setDimens}[]{#1}
+\def\showOutOfinSmryTbl{false}
+\def\stmarkupbox{\makebox[0pt][l]}
+\newcommand{\displaySumryTbl}[2][]{%
+ \begingroup\edef\currQuiz{#2}\edef\oField{#2}\edef\curr@quiz{#2}%
+ \setkeys{smrytbl}{#1}%
+ \count0=\smrytbl@ntables
+ \eq@rowcnt=0\relax\@tempcntb=\value{questionno}%
+ \ifnum\count\z@=2\relax
+ \divide\@tempcntb2\relax
+ \advance\@tempcntb\ifodd\value{questionno}2\else1\fi
+ \xdef\@beginSecCol{\the\@tempcntb}%
+ \advance\@tempcntb-1\relax
+ \fi
+ \ifnum\count\z@=3
+ \edef\eq@n{\the\@tempcntb}%
+ \divide\@tempcntb\count\z@
+ \edef\eq@q{\the\@tempcntb}%
+ \@tempcnta=\@tempcntb\multiply\@tempcnta3
+ \edef\eq@p{\the\@tempcnta}%
+ \@tempcnta=\eq@n
+ \advance\@tempcnta-\eq@p\relax
+ \ifnum\@tempcnta=0
+ \@tempcntb=\eq@q \advance\@tempcntb1
+ \xdef\@beginSecCol{\the\@tempcntb}%
+ \advance\@tempcntb\eq@q\relax
+ \xdef\@beginThrdCol{\the\@tempcntb}%
+ \else\ifnum\@tempcnta=1
+ \@tempcntb=\eq@q \advance\@tempcntb1
+ \edef\nB@lCols{\the\@tempcntb}%
+ \advance\@tempcntb1\relax
+ \xdef\@beginSecCol{\the\@tempcntb}%
+ \advance\@tempcntb\eq@q\relax
+ \xdef\@beginThrdCol{\the\@tempcntb}%
+ \else\ifnum\@tempcnta=2
+ \@tempcntb=\eq@q \advance\@tempcntb1
+ \edef\nB@lCols{\the\@tempcntb}%
+ \advance\@tempcntb1
+ \xdef\@beginSecCol{\the\@tempcntb}%
+ \advance\@tempcntb\nB@lCols
+ \xdef\@beginThrdCol{\the\@tempcntb}%
+ \fi\fi\fi
+ \@tempcntb=\eq@n
+ \fi
+ \let\@eqListExp\@@eqListExp
+ \eqQzQuesList
+ \endgroup
+}
+\def\eq@begintab{%
+ \begin{tabular}[t]{lcc}\sumryTblQ&\sumryTblR&\sumryTblP\\\sthline
+ {\Large\strut}%
+}
+\def\sthline{\hline}
+\def\eq@endtab{\end{tabular}}
+\def\sumrytblCkMUsep{\kern3bp}
+\def\sumrytbllinkHook#1{#1}
+\newcommand{\sumryTblProbFmt}[1]{\textbf{\textcolor{blue}{#1}}}
+\newcommand{\sumrytablesep}{\space}
+\def\stmarkupWidth{12bp}\def\stmarkupHeight{9bp}\def\stmarkupTextSize{0}
+\def\st@scndclmn{%
+ \checkBox[\Ff{\FfReadOnly}]%
+ {\ccatCurrQzWith(SanityCheck).\the\eq@rowcnt}%
+ {\markupHeight}{\markupHeight}{Yes}\ifeqshowmarkup
+ \stmarkupbox{\sumrytblCkMUsep\textField[%
+ \Ff\FfReadOnly\BC{}\textColor{\pcMarkupColor}%
+ \textSize{\stmarkupTextSize}\autoCenter{n}%
+ ]{\ccatCurrQzWith(SanityCheck\stfmtType Pts).\the\eq@rowcnt}%
+ {\stmarkupWidth}{\stmarkupHeight}}\fi
+}
+\def\st@thrdclmn#1{%
+ \setLink[\linktxtcolor{\@linkcolor}
+ \A{\JS{this.pageNum=(#1-1)}}]{\sumrytbllinkHook{#1}}}
+\def\@@eqListExp#1#2{\global\advance\eq@rowcnt1\relax
+ \ifnum\eq@rowcnt=1\relax
+ \pbPopulateSumTable\ifsmrytbl@corrections\else
+ \pbDoNoCorrectSumryTbl\fi\expandafter\eq@begintab\fi
+ \ifnum\count0>1 \ifnum\eq@rowcnt=\@beginSecCol\relax
+ \eq@endtab\expandafter\sumrytablesep\expandafter\eq@begintab
+ \fi\fi
+ \ifnum\count0=3 \ifnum\eq@rowcnt=\@beginThrdCol\relax
+ \eq@endtab\expandafter\sumrytablesep\expandafter\eq@begintab
+ \fi\fi
+ \sumryTblProbFmt{#1}&\st@scndclmn&\st@thrdclmn{#2}\\[1bp]
+ \ifnum\eq@rowcnt=\thequestionno\relax\expandafter\eq@endtab\fi
+}
+\def\writeProListAux{%
+ \eq@IWAuxOut{\string\expandafter\string\gdef
+ \string\csname\space\currQuiz QzQuesList\string\endcsname
+ {\eqQzQuesList}}%
+ \eq@IWAuxOut{\string\expandafter\string\gdef
+ \string\csname\space\currQuiz nQuestions\string\endcsname
+ {\thequestionno}}%
+}
+\def\setParamSumryTblAux{%
+ \edef\eqQzQuesList{\@nameuse{\currQuiz QzQuesList}}%
+ \@ifundefined{\currQuiz nQuestions}{}{%
+ \value{questionno}=\@nameuse{\currQuiz nQuestions}}%
+}
+\newenvironment{sumryTblAux}[1]{%
+ \DeclareQuiz{#1}\setParamSumryTblAux}{}%
+\begin{insDLJS}[correctSumryTbl]{sumtbljs}{Eq: Populate Summary Table}
+function correctSumryTbl(qtfield,nQuestions) {
+ var oQName=eval(qtfield);
+ var rightColor=(typeof oQName.RightColorJSLoc=="undefined")%
+?\rghtColorJS:oQName.RightColorJSLoc;
+ var wrongColor=(typeof oQName.WrongColorJSLoc=="undefined")%
+?\wrngColorJS:oQName.WrongColorJSLoc;
+ var partialColor=(typeof oQName.PartialColorJSLoc=="undefined")%
+?\partialColorJS:oQName.PartialColorJSLoc;
+ var sc=this.getField(qtfield+"SanityCheck");
+ var nc=this.getField(qtfield+"NoCorrections");
+ if (sc != null && nc == null ) {
+ for (var i=0; i<nQuestions; i++) {
+ var cb=this.getField(qtfield+"SanityCheck."+(i+1));
+ if (typeof RightWrong[i+1] == "undefined" ) {
+ cb.strokeColor=wrongColor;
+ continue;
+ }
+ if ( RightWrong[i+1] == 1 ) {
+ cb.strokeColor=rightColor;
+ continue;
+ }
+ if ( RightWrong[i+1] == 0 ) {
+ // this is either an obj or multiple choice q
+ if ( typeof ProbValue[i+1] == "object" )
+ cb.strokeColor=( ProbValue[i+1][2] > 0 )?%
+partialColor:wrongColor;
+ else cb.strokeColor=wrongColor; // obj q
+ continue;
+ }
+ // either multiple selection or grouped math
+ if ( RightWrong[i+1][0] == "grp" ) {
+ // grouped question
+ var f = this.getField("grpobj."+qtfield+"."+(i+1));
+ var l = f.getArray().length;
+ // is this right?
+ for (var sum=0, j=1; j<=l; j++)
+ sum+=(!!RightWrong[i+1][j]);
+ if ( sum == l ) cb.strokeColor=["RGB", 0, .6, 0];
+ else cb.strokeColor=( sum > 0 )?%
+partialColor:wrongColor;
+ continue;
+ }
+ // multiple selection
+ if ( RightWrong[i+1][0] == 1 ) cb.strokeColor=rightColor;
+ else cb.strokeColor=(RightWrong[i+1][1]== 1)?%
+partialColor:wrongColor;
+ }
+ }
+ var f1=this.getField(qtfield+"SanityCheckPts");
+ var f2=this.getField(qtfield+"SanityCheckOOPts");
+ var h=this.getField(qtfield+"activateSC");
+ if ( f1 != null ) {
+ for ( var i = 1; i <= nQuestions; i++) {
+ if ( ProbValue[i] == undefined ) ProbValue[i]=0
+ // find the next non-null field
+ var g=this.getField(qtfield+"SanityCheckPts."+i);
+ var qpts=(ProbDist[i]==undefined) ? 0 : ProbDist[i];
+ var thesePts= qpts + (( qpts == 1 )?%
+" \eqptLabel":" \eqptsLabel");
+ g.value = thesePts;
+ }
+ }
+ if ( f2 != null ) {
+ for ( var i = 1; i <= nQuestions; i++) {
+ if ( ProbValue[i] == undefined ) ProbValue[i]=0
+ // find the next non-null field
+ var g=this.getField(qtfield+"SanityCheckOOPts."+i);
+ var qpts=(ProbDist[i]==undefined) ? 0 : ProbDist[i];
+ var ptValue = oQName.PtValues[i];
+ var probPts = ptValue + (( ptValue == 1 )?%
+" \eqptLabel":" \eqptsLabel");
+ g.value = qpts +" \stOutOf\space"+probPts;
+ }
+ }
+}
+function popVisitsTbl(qtfield,nQuestions) {
+ if ( aQuizControl[qtfield] == 1) {
+ this.resetForm([qtfield+"SanityCheck"]);
+ for ( var i=0; i < nQuestions; i++ ) {
+ var f=this.getField(qtfield+"SanityCheck."+(i+1));
+ f.checkThisBox(0,(typeof Responses[i+1]!="undefined"));
+ }
+ }
+}
+function fieldPopTbl(qtfield) {
+ var f=this.getField(qtfield+"activateSC");
+ if ( f != null) {
+ var n=Number(f.userName);
+ var a = [ qtfield, n ];
+ popVisitsTbl.apply(null,a);
+ }
+}
+\end{insDLJS}
+\endinput
+%%
+%% End of file `aebsumrytbls.def'.