From 3072f2ccd2f1784315cca4ceabe0c213ea7cb581 Mon Sep 17 00:00:00 2001 From: Frank Fuhlbrück Date: Thu, 30 Nov 2023 13:35:44 +0100 Subject: v.0.15: solutions headers, sectioning and html compatibility --- exercisesheets.sty | 192 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 121 insertions(+), 71 deletions(-) (limited to 'exercisesheets.sty') diff --git a/exercisesheets.sty b/exercisesheets.sty index 6799a34..733656d 100644 --- a/exercisesheets.sty +++ b/exercisesheets.sty @@ -18,8 +18,8 @@ %\NeedsTeXFormat{LaTeX2e}[1994/12/01] % don't forget to update the version and date in exercisesheets.tex -\def\exsh@version{0.14} -\def\exsh@date{2023/02/06} +\def\exsh@version{0.15} +\def\exsh@date{2023/11/30} \ProvidesPackage{exercisesheets}[\exsh@date\space\exsh@version\space Typesetting of exercise sheets] \message{`Typesetting of exercise sheets' \exsh@version\space <\exsh@date>} @@ -48,8 +48,18 @@ % configuration keys -\newif\ifexsh@beamer +\newif\ifexsh@beamer \@ifclassloaded{beamer}{\exsh@beamertrue}{} +\newif\ifexsh@html +\@ifclassloaded{tex4ht}{\exsh@htmltrue}{} +\ifdefined\HCode + \exsh@htmltrue +\fi +\ifexsh@html + \def\exsh@inshtml#1{\HCode{#1}} +\else + \def\exsh@inshtml#1{} +\fi \newif\ifexsh@patchenumerate\exsh@patchenumeratetrue \newif\ifexsh@savetasks @@ -62,7 +72,7 @@ %For beamer only %%%%%%%%%%%%%%% BEGIN BEAMER-SPECIFIC: %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer \newif\ifexsh@beamerwithheadline \newif\ifexsh@beamerwithfootline \newif\ifexsh@beameruseblocks @@ -92,8 +102,8 @@ beamercompatibility used twice}{}% \else %%%%%%%%%%%%%%% BEGIN BEAMER-SPECIFIC: %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer - %currently we do nothing if beamer is loaded, +\ifexsh@beamer + %currently we do nothing if beamer is loaded, %but this might change \else%--------- NON-BEAMER: --------------------------------------- \let\pause\relax @@ -168,7 +178,7 @@ } %%%%%%%%%%%%%%% BEGIN BEAMER-SPECIFIC: %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer \pgfkeys{exsh, beamerwithheadline/.is if=exsh@beamerwithheadline, beamerwithheadline/.default=true, @@ -374,7 +384,7 @@ Defaulting to English.}{}% \pgfkeys{/exsh/language=english}% }, - % + % % alternate strings idea/.style={/exsh/strings/solution=\pgfkeysvalueof{/exsh/strings/idea}}, remark/.style={/exsh/strings/hint=\pgfkeysvalueof{/exsh/strings/remark}}, @@ -385,6 +395,13 @@ every solution/.code={}, every hint/.code={}, % + % sectioning cmds and counters for sheet and exercise + % sheet sectioning cmd must take an optional + % and a mandatory argument + sheet sectioning cmd/.initial={\part}, + sheet counter/.initial={part}, + exercise counter/.initial={section}, + % % font specifications sheet header font/.initial=\normalfont\normalsize, subject font/.initial=\scshape, @@ -403,6 +420,7 @@ hint title font/.initial=\itshape, solution font/.initial={}, solution title font/.initial=\bfseries, + solution title separator/.initial={:\par}, grading guide font/.initial=\itshape, todo marker font/.initial=\ifdef{\color}{\color{red}}{}\bfseries, % @@ -440,7 +458,7 @@ \def\exshset#1{\pgfkeys{exsh,#1}} %%%%%%%%%%%%%%% BEGIN BEAMER-ONLY: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer \define@key{beamerframe}{t}[true]{% top \beamer@frametopskip=-2pt\relax% \beamer@framebottomskip=0pt plus 1fill\relax% @@ -544,7 +562,7 @@ \OR \exsh@range@entry > \exsh@range@curend\)}{% \exsh@isinrangetrue }{% - }% + }% }{% \appto{\exsh@range@curend}{#1}% \exsh@range@parseend @@ -555,16 +573,16 @@ % remember last sheet (for range checks) \def\exsh@lastsheet{0}% to be overridden in aux file \AtEndDocument{% - \immediate\write\@auxout{\string\gdef\string\exsh@lastsheet{\arabic{part}}}% + \immediate\write\@auxout{\string\gdef\string\exsh@lastsheet{\arabic{\pgfkeysvalueof{/exsh/sheet counter}}}}% } -\numberwithin{page}{part} +\numberwithin{page}{\pgfkeysvalueof{/exsh/sheet counter}} \renewcommand{\thepage}{\arabic{page}}%changed for every sheet \setcounter{secnumdepth}{-1} \AfterPackage*{hyperref}{% % make PDF destinations unique: - \def\theHsection{\arabic{sheetid}.\arabic{section}}% + \def\theHsection{\arabic{sheetid}.\arabic{\pgfkeysvalueof{/exsh/exercise counter}}}% \def\theHpage{\arabic{sheetid}-\arabic{page}}% % % open bookmarks when typesetting a single sheet @@ -608,18 +626,18 @@ % \pgfkeysvalueof{/exsh/sheet start page action}% \stepcounter{sheetid}% \ifthenelse{\equal{}{\pgfkeysvalueof{/exsh/title}}}{% - \numdef\exsh@tmp{\value{part}+1}% + \numdef\exsh@tmp{\value{\pgfkeysvalueof{/exsh/sheet counter}}+1}% \edef\exsh@temp{\expandonce{\pgfkeysvalueof{/exsh/strings/sheet}}\noexpand~\exsh@tmp}% \pgfkeys{/exsh/title/.expand once={\exsh@temp}}% - \def\thepage{\arabic{part}-\arabic{page}}% + \def\thepage{\arabic{\pgfkeysvalueof{/exsh/sheet counter}}-\arabic{page}}% }{% \def\thepage{\arabic{page}}% }% \ifexsh@exnumsheet - \edef\exsh@exnumstore{\arabic{section}} - \setcounter{section}{0}% + \edef\exsh@exnumstore{\arabic{\pgfkeysvalueof{/exsh/exercise counter}}} + \setcounter{\pgfkeysvalueof{/exsh/exercise counter}}{0}% \fi - \numdef\exsh@tmp{\value{part}+1}% + \numdef\exsh@tmp{\value{\pgfkeysvalueof{/exsh/sheet counter}}+1}% \exsh@checkrange{\exsh@tmp}% \ifexsh@isinrange \ifexsh@singularrange @@ -628,7 +646,7 @@ \fi \exsh@sheethead \else - \refstepcounter{part}% + \refstepcounter{\pgfkeysvalueof{/exsh/sheet counter}}% \def\exsh@skipwhat{sheet}\expandafter\exsh@skipstuff \fi }{% @@ -640,7 +658,7 @@ \fi \endgroup \ifexsh@exnumsheet - \setcounter{section}{\exsh@exnumstore}% + \setcounter{\pgfkeysvalueof{/exsh/exercise counter}}{\exsh@exnumstore}% \fi } \listadd{\exsh@enums}{enumerate} @@ -661,10 +679,14 @@ \listadd{\exsh@nonenums}{list} %%%%%%%%%%%%%%% BEGIN BEAMER-SPECIFIC: %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer \let\exsh@hyper@itemtrue\relax \else%--------- NON-BEAMER: --------------------------------------- - \def\exsh@hyper@itemtrue{\@hyper@itemtrue} + \ifexsh@html + \let\exsh@hyper@itemtrue\relax% + \else + \def\exsh@hyper@itemtrue{\@hyper@itemtrue}% + \fi \fi %%%%%%%%%%%%%%% END BEAMER-SPECIFIC %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -703,7 +725,7 @@ \def\exsh@skipstuff@begin#1{% \begingroup \ifstrequal{#1}{Lexercise}{\exsh@skipstuff@Lexercise}{% - \ifstrequal{#1}{exercise}{\refstepcounter{section}% + \ifstrequal{#1}{exercise}{\refstepcounter{\pgfkeysvalueof{/exsh/exercise counter}}% % automatic label for the first exercise in every included file \ifthenelse{\equal{\jobname}{\currfilebase}}{}{% \ifcsdef{exsh@autolabel@\currfilebase}{}{% @@ -768,7 +790,7 @@ } \newcommand{\exsh@skipstuff@incex@@}[2][]{% - \refstepcounter{section} + \refstepcounter{\pgfkeysvalueof{/exsh/exercise counter}} \exsh@autolabel{ex:#2} \exsh@skipstuff } @@ -790,14 +812,14 @@ \let\exsh@skipstuff@incLex@@\exsh@skipstuff@incex@@ %%%%%%%%%%%%%%% BEGIN BEAMER-SPECIFIC: %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer \def\exsh@sheethead{% \pgfkeysvalueof{/exsh/sheet start page action}% \pgfkeysgetvalue{/exsh/title}{\exsh@tmp}% \ifexsh@solutions \expandafter\edef\expandafter\exsh@tmp{\expandonce\exsh@tmp:\noexpand~\pgfkeysvalueof{/exsh/strings/solutions}}% \fi - \refstepcounter{part}% + \refstepcounter{\pgfkeysvalueof{/exsh/sheet counter}}% \begin{frame} \begin{block}{} \centering\Large\exsh@tmp @@ -835,24 +857,43 @@ \end{frame} } \else%--------- NON-BEAMER: --------------------------------------- +\ifexsh@html + \global\def\exsh@part[#1]#2{#2} + \exshset{sheet sectioning cmd/.initial={\exsh@part}} + \global\def\exsh@alignright#1{% + \exsh@inshtml{}#1% + \exsh@inshtml{} + } + \global\def\exsh@centering#1{% + \exsh@inshtml{}#1% + \exsh@inshtml{} + } +\else + \global\def\exsh@alignright#1{\hfill #1}% + \global\def\exsh@centering#1{\centering #1} +\fi \def\exsh@sheethead{% \pgfkeysvalueof{/exsh/sheet start page action}% \pgfkeysgetvalue{/exsh/title}{\exsh@tmp}% \ifexsh@solutions \expandafter\edef\expandafter\exsh@tmp{\expandonce\exsh@tmp:\noexpand~\pgfkeysvalueof{/exsh/strings/solutions}}% \fi - \refstepcounter{part}% - \part[\pgfkeysvalueof{/exsh/title}]{\normalsize - \pgfkeysvalueof{/exsh/sheet header font}\centering% + \refstepcounter{\pgfkeysvalueof{/exsh/sheet counter}}% + \pgfkeysvalueof{/exsh/sheet sectioning cmd}[\pgfkeysvalueof{/exsh/title}]{\normalsize + \pgfkeysvalueof{/exsh/sheet header font}% \begingroup\raggedright% - {\pgfkeysvalueof{/exsh/subject font}\pgfkeysvalueof{/exsh/subject}}\hfill - {\pgfkeysvalueof{/exsh/semester font}\pgfkeysvalueof{/exsh/semester}}\\ - {\pgfkeysvalueof{/exsh/author font}\exsh@author}\hfill - {\pgfkeysvalueof{/exsh/date font}\pgfkeysvalueof{/exsh/date}}\\ + {\pgfkeysvalueof{/exsh/subject font}\pgfkeysvalueof{/exsh/subject}}% + \exsh@alignright{\pgfkeysvalueof{/exsh/semester font}% + \pgfkeysvalueof{/exsh/semester}% + }\\ + {\pgfkeysvalueof{/exsh/author font}\exsh@author}% + \exsh@alignright{ + \pgfkeysvalueof{/exsh/date font}\pgfkeysvalueof{/exsh/date}% + }\\ \vskip\pgfkeysvalueof{/exsh/above sheet title skip}\relax% \endgroup \begingroup - \pgfkeysvalueof{/exsh/sheet title font}\exsh@tmp\\\unskip + \exsh@centering{\pgfkeysvalueof{/exsh/sheet title font}\exsh@tmp\\}\unskip \endgroup \begingroup \pgfkeysvalueof{/exsh/sheet header font}% @@ -861,7 +902,7 @@ \begingroup \pgfkeysvalueof{/exsh/solutionsby font}% \vskip\pgfkeysvalueof{/exsh/above solutionsby skip}\relax - \pgfkeysvalueof{/exsh/strings/solutionsby}~\exsh@solutionsby\\\unskip% + \exsh@centering{\pgfkeysvalueof{/exsh/strings/solutionsby}~\exsh@solutionsby\\}\unskip% \endgroup }% \else @@ -872,7 +913,7 @@ \begingroup \pgfkeysvalueof{/exsh/sheet note font}% \vskip\pgfkeysvalueof{/exsh/above sheet note skip}\relax - \pgfkeysvalueof{/exsh/note}\\\unskip% + \exsh@centering{\pgfkeysvalueof{/exsh/note}\\}\unskip% \endgroup }% }% @@ -904,13 +945,13 @@ %\edef seams to work fine with lualatex from TeXLive 2020 \pgfkeys{exsh,every exercise,#1,includeoverride}% \ifthenelse{\equal{sum}{\pgfkeysvalueof{/exsh/points}}}{% - \ifcsname exsh@sumpts@\the\numexpr\arabic{section}+1\endcsname + \ifcsname exsh@sumpts@\the\numexpr\arabic{\pgfkeysvalueof{/exsh/exercise counter}}+1\endcsname \edef\exsh@sumpts{% - \csname exsh@sumpts@\the\numexpr\arabic{section}+1% + \csname exsh@sumpts@\the\numexpr\arabic{\pgfkeysvalueof{/exsh/exercise counter}}+1% \endcsname% }% \edef\exsh@sumptsbonus{% - \csname exsh@sumptsbonus@\the\numexpr\arabic{section}+1% + \csname exsh@sumptsbonus@\the\numexpr\arabic{\pgfkeysvalueof{/exsh/exercise counter}}+1% \endcsname% }% \ifnumequal{\exsh@sumpts}{0}{% @@ -978,9 +1019,14 @@ }{% \edef\exsh@shortpoints{ (\expandonce\exsh@points)}% }% - \preto\exsh@points{\enskip\hfill\bgroup% - \pgfkeysvalueof{/exsh/points font}}% - \appto\exsh@points{\egroup}% +% \preto\exsh@points{ +% \exsh@inshtml{}\hfill +% \enskip\exsh@alignright\bgroup% +% \pgfkeysvalueof{/exsh/points font}}% +% \appto\exsh@points{\egroup\exsh@inshtml{}}% + \edef\exsh@points{\exsh@alignright{% + \pgfkeysvalueof{/exsh/points font}\expandonce\exsh@points + }} }% \ifthenelse{\equal{}{\pgfkeysvalueof{/exsh/firstline}}}{% \def\exsh@firstline{}% @@ -996,15 +1042,15 @@ \edef\exsh@exname{\space(\pgfkeysvalueof{/exsh/name})}% \edef\exsh@shortexname{:\space\pgfkeysvalueof{/exsh/name}}% }% - \refstepcounter{section}% - \edef\exsh@tmp{[\pgfkeysvalueof{/exsh/strings/exercise} \arabic{section}\exsh@shortexname\expandonce\exsh@shortpoints]}% + \refstepcounter{\pgfkeysvalueof{/exsh/exercise counter}}% + \edef\exsh@tmp{[\pgfkeysvalueof{/exsh/strings/exercise} \arabic{\pgfkeysvalueof{/exsh/exercise counter}}\exsh@shortexname\expandonce\exsh@shortpoints]}% \ifbool{exsh@samplesolutions}{\ifbool{exsh@sample}{\exsh@hidefalse}{\exsh@hidetrue}}{\exsh@hidefalse}% \ifbool{exsh@hide}{% \def\exsh@skipwhat{exercise}\exsh@skipstuff% }{% \expandafter\exsh@startsection\exsh@tmp{\noindent% \hbox to 0pt{\hss\pgfkeysvalueof{/exsh/exercisemark}}% - \pgfkeysvalueof{/exsh/strings/exercise}~\arabic{section}\exsh@exname\exsh@firstline\expandonce\exsh@points}% + \pgfkeysvalueof{/exsh/strings/exercise}~\arabic{\pgfkeysvalueof{/exsh/exercise counter}}\exsh@exname\exsh@firstline\expandonce\exsh@points}% \unskip\vskip\pgfkeysvalueof{/exsh/below exercise title skip}\relax \@afterindentfalse % automatic label for the first exercise in every included file @@ -1021,11 +1067,11 @@ \ifexsh@sumuppoints% \immediate\write\@auxout{ \string\expandafter\gdef% - \detokenize{\csname} exsh@sumpts@\arabic{section}\endcsname{% + \detokenize{\csname} exsh@sumpts@\arabic{\pgfkeysvalueof{/exsh/exercise counter}}\endcsname{% \arabic{exsh@pts@cur}% }% \string\expandafter\gdef% - \detokenize{\csname} exsh@sumptsbonus@\arabic{section}\endcsname{% + \detokenize{\csname} exsh@sumptsbonus@\arabic{\pgfkeysvalueof{/exsh/exercise counter}}\endcsname{% \arabic{exsh@ptsbonus@cur}% }% }% @@ -1035,7 +1081,7 @@ \newcommand{\exsh@label}[2]{#1{#2}\leavevmode\ignorespaces} %%%%%%%%%%%%%%% BEGIN BEAMER-SPECIFIC: %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer \newcommand{\exsh@startsection}[2][]{% \newpage % \begin{block}{} @@ -1069,7 +1115,7 @@ }% \else%--------- NON-BEAMER: --------------------------------------- \newcommand{\exsh@startsection}[2][]{% - \@startsection{section}{1}{\z@}% + \@startsection{\pgfkeysvalueof{/exsh/exercise counter}}{1}{\z@}% {\pgfkeysvalueof{/exsh/above exercise skip}}% {1em}% afterskip corrected below {\pgfkeysvalueof{/exsh/exercise title font}}% @@ -1160,7 +1206,7 @@ } \else \newcommand{\exsh@includeLexercise}[2][]{ - \refstepcounter{section} + \refstepcounter{\pgfkeysvalueof{/exsh/exercise counter}} Lexercise needs Lua\LaTeX! } \let\exsh@includeLexercise@\exsh@includeLexercise @@ -1175,7 +1221,7 @@ \ifexsh@patchenumerate \AfterPackage*{varioref}{ - \labelformat{enumi}{\arabic{section}.\alph{enumi}} + \labelformat{enumi}{\arabic{\pgfkeysvalueof{/exsh/exercise counter}}.\alph{enumi}} \def\exsh@afterdot#1.#2{#2}%x.y -> y \def\exsh@subexn#1{% \if\getrefnumber{#1}0% @@ -1197,12 +1243,12 @@ \setenumerate[3]{label=\roman*.} \setenumerate[4]{label=\Alph.} } - \def\theHenumi{enumi.\arabic{part}.\arabic{section}.\arabic{enumi}} + \def\theHenumi{enumi.\arabic{\pgfkeysvalueof{/exsh/sheet counter}}.\arabic{\pgfkeysvalueof{/exsh/exercise counter}}.\arabic{enumi}} %%%%%%%%%%%%%%% BEGIN BEAMER-SPECIFIC: %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer % code below breaks [] argument after \begin{enumerate} % when beamer is used - % in beamer we set item labels separately + % in beamer we set item labels separately % see beamer specific def. of \exsh@startsection \else%--------- NON-BEAMER: --------------------------------------- \AtEndPreamble{% @@ -1246,7 +1292,7 @@ \csname cl@\exsh@subtaskctr\endcsname % reset equation numbering for each exercise -\@addtoreset{equation}{section} +\@addtoreset{equation}{\pgfkeysvalueof{/exsh/exercise counter}} \long\def\exsh@savemaintask#1{% \global\def\exsh@restatetaskmain{#1}% @@ -1306,7 +1352,7 @@ } %%%%%%%%%%%%%%% BEGIN BEAMER-SPECIFIC: %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer \let\restatetaskbeamer\restatetask \else%--------- NON-BEAMER: --------------------------------------- \def\restatetaskbeamer{% @@ -1333,7 +1379,7 @@ %%%%%%%%%%%%%%% BEGIN BEAMER-SPECIFIC: %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer \let\exsh@postsolutionclear\clearpage \else%--------- NON-BEAMER: --------------------------------------- \let\exsh@postsolutionclear\par @@ -1377,13 +1423,13 @@ %%%%%%%%%%%%%%% BEGIN BEAMER-SPECIFIC: %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer \def\exsh@solutiontitle#1{ \ifbool{exsh@beameruseblocks}{% \begin{alertblock}{}% {\pgfkeysvalueof{/exsh/solution title font}% \pgfkeysvalueof{/exsh/strings/solution} % - (\pgfkeysvalueof{/exsh/strings/exercise} \arabic{section}% + (\pgfkeysvalueof{/exsh/strings/exercise} \arabic{\pgfkeysvalueof{/exsh/exercise counter}}% \ifnum\@enumdepth>0\alph{subex}\fi)} % \ifbool{exsh@headerrestate}{ \exsh@ensuresavetasks @@ -1397,7 +1443,7 @@ {block title alerted} {\pgfkeysvalueof{/exsh/solution title font}% \pgfkeysvalueof{/exsh/strings/solution} % - (\pgfkeysvalueof{/exsh/strings/exercise} \arabic{section}% + (\pgfkeysvalueof{/exsh/strings/exercise} \arabic{\pgfkeysvalueof{/exsh/exercise counter}}% \ifnum\@enumdepth>0\alph{subex}\fi)} % \ifbool{exsh@headerrestate}{ \exsh@ensuresavetasks @@ -1437,14 +1483,14 @@ \else%--------- NON-BEAMER: --------------------------------------- %this command is only usefule for exercisesheets-beamer to place -%the deferred title within a new frame +%the deferred title within a new frame \newcommand{\solutiontitle}[1][]{} \fi %%%%%%%%%%%%%%% END BEAMER-SPECIFIC %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%% BEGIN BEAMER-SPECIFIC: %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer \def\exsh@startsolution{% \ifnum\@enumdepth=0 \clearpage @@ -1454,7 +1500,7 @@ % \block{} % \pgfkeysvalueof{/exsh/solution title font}% % \pgfkeysvalueof{/exsh/strings/solution} % -% (\pgfkeysvalueof{/exsh/strings/exercise} \arabic{section}% +% (\pgfkeysvalueof{/exsh/strings/exercise} \arabic{\pgfkeysvalueof{/exsh/exercise counter}}% % \alph{subex})% % \endblock \ifbool{exsh@framed}{\exsh@defersolutiontitletrue}{} @@ -1481,7 +1527,9 @@ \vskip\pgfkeysvalueof{/exsh/above solution skip}\relax% {\parindent \z@ \pgfkeysvalueof{/exsh/solution title font}% - \pgfkeysvalueof{/exsh/strings/solution}:\par}\nobreak% + \pgfkeysvalueof{/exsh/strings/solution}% + \pgfkeysvalueof{/exsh/solution title separator}% + }\nobreak% \@afterheading }% \fi @@ -1502,7 +1550,7 @@ } %%%%%%%%%%%%%%% BEGIN BEAMER-SPECIFIC: %%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer \newenvironment<>{beamersolution}[1][]{% \pgfkeys{exsh,every solution,#1,solution font}% \ifthenelse{\equal{oral}{\pgfkeysvalueof{/exsh/points}}}{% @@ -1675,7 +1723,7 @@ %%%%%%%%%%%%%%% BEGIN BEAMER-ONLY: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifexsh@beamer +\ifexsh@beamer \setbeamertemplate{headline}{% % \leavevmode% \ifbool{exsh@beamerwithheadline}{% @@ -1726,12 +1774,12 @@ \def\exsh@dlua#1{} \fi -%change only some catcodes to +%change only some catcodes to \begingroup \catcode`!=0 \catcode`\@=11 \catcode`\_=12 -\catcode`\{=12 %set those to the same value (11/12) as below! +\catcode`\{=12 %set those to the same value (11/12) as below! \catcode`\}=12 % \catcode`<=1 \catcode`>=2 @@ -1744,7 +1792,9 @@ > !global!long!def!exsh@start@skip@Lexercise#1\end{Lexercise}< % !exsh@dlua % - !ifluatex!else!refstepcounter
!fi + !ifluatex!else% + !refstepcounter>% + !fi !endgroup!endgroup% !expandafter!exsh@skipstuff% !exsh@dlua% @@ -1765,7 +1815,7 @@ \catcode`\^=12 \catcode`\&=12 \catcode`\|=12 -\catcode`\{=12 %set those to the same value (11/12) as above! +\catcode`\{=12 %set those to the same value (11/12) as above! \catcode`\}=12 % \catcode`\~=12 \catcode`\@=11 @@ -1781,7 +1831,7 @@ \ifluatex \exsh@dlua{exsh_texprintlines(exsh_cur_exercise)}% \else - \refstepcounter{section} + \refstepcounter{\pgfkeysvalueof{/exsh/exercise counter}} Lexercise needs Lua\LaTeX! \fi } -- cgit v1.2.3