Philip Hirschhorn

home (ctan)

<..hook Hirschhorn’ exam..>
 \let\exam:questions=\questions
 \def\questions{%
    \let\exam:list=\list
    \def\list{\let\list=\exam:list\begin{list}}%
    \exam:questions  }
 \pend:def\endquestions{%
    \let\exam:list=\endlist
    \def\endlist{\let\endlist=\exam:list \end{list}}}
 \let\exam:parts=\parts
 \def\parts{%
    \let\exam:list=\list
    \def\list{\let\list=\exam:list\begin{list}}%
    \exam:parts  }
 \pend:def\endparts{%
    \let\exam:list=\endlist
    \def\endlist{\let\endlist=\exam:list \end{list}}}
 \let\exam:subparts=\subparts
 \def\subparts{%
    \let\exam:list=\list
    \def\list{\let\list=\exam:list\begin{list}}%
    \exam:subparts  }
 \pend:def\endsubparts{%
    \let\exam:list=\endlist
    \def\endlist{\let\endlist=\exam:list \end{list}}}
 -_-_-

<..hook Hirschhorn’ exam..>+
 \long\def\uplevel#1{\par\a:uplevel{#1}\b:uplevel\par}
 \long\def\fullwidth#1{\par\a:fullwidth{#1}\b:fullwidth\par}
 \NewConfigure{uplevel}{2}
 \NewConfigure{fullwidth}{2}
 -_-_-

<..hook Hirschhorn’ exam..>+
 \def\@setpoints{%
   \if@placepoints
     \if@pointsinmargin
             \a:setpoints(\@points\@marginpointname)\b:setpoints
     \else
             \a:setpoints(\@points\@pointname)\b:setpoints
     \fi
     \@placepointsfalse
   \fi
 }
 \NewConfigure{setpoints}{2}
 -_-_-