From 606b39eac2105e3ad995391f483802e5adb0d99a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 18 Sep 2021 20:14:56 +0000 Subject: exesheet (18sep21) git-svn-id: svn://tug.org/texlive/trunk@60537 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/exesheet/exesheet.pdf | Bin 235575 -> 234318 bytes .../texmf-dist/source/latex/exesheet/exesheet.dtx | 423 ++++++++++----------- Master/texmf-dist/tex/latex/exesheet/exesheet.cls | 2 +- Master/texmf-dist/tex/latex/exesheet/exesheet.sty | 284 +++++++------- 4 files changed, 357 insertions(+), 352 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/exesheet/exesheet.pdf b/Master/texmf-dist/doc/latex/exesheet/exesheet.pdf index f7efae7b5a3..19dce9c5ecf 100644 Binary files a/Master/texmf-dist/doc/latex/exesheet/exesheet.pdf and b/Master/texmf-dist/doc/latex/exesheet/exesheet.pdf differ diff --git a/Master/texmf-dist/source/latex/exesheet/exesheet.dtx b/Master/texmf-dist/source/latex/exesheet/exesheet.dtx index 26ce619f4a9..94b786c75e5 100644 --- a/Master/texmf-dist/source/latex/exesheet/exesheet.dtx +++ b/Master/texmf-dist/source/latex/exesheet/exesheet.dtx @@ -23,7 +23,7 @@ %\ProvidesClass{exesheet} %\ProvidesPackage{exesheet} %<*class|package> - [2020/08/30 v1.1 .dtx exesheet file] +[2021/09/18 v1.2 .dtx exesheet file] % % %<*driver> @@ -49,7 +49,6 @@ \newcommand{\ds}{\displaystyle} \newcommand{\bs}{\textbackslash} -\newcommand{\TODO}{\textcolor{green}{TODO}} \definecolor{darkbrown}{rgb}{0.5,0.1,0.1} \allsectionsfont{\sffamily\color{darkbrown}} @@ -68,7 +67,7 @@ \setboolean{marginpoints}{true} \setboolean{marginfullnotes}{true} -\DisableCrossrefs +\DisableCrossrefs %\CodelineIndex %\RecordChanges @@ -77,21 +76,21 @@ %\author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}} \subject{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}} -\date{August 30, 2021, \fileversion} +\date{\filedate, \fileversion} \hypersetup{% - colorlinks, + colorlinks, linkcolor=blue, - pdftitle={exesheet}, - pdfsubject={LaTeX class and package}, + pdftitle={exesheet}, + pdfsubject={LaTeX class and package}, pdfauthor={Antoine Missier} - } +} \begin{document} - \DocInput{exesheet.dtx} +\DocInput{exesheet.dtx} \end{document} % % \fi % -% \CheckSum{638} +% \CheckSum{609} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -113,8 +112,9 @@ % \changes{v0.0}{2010/09/01}{Initial personal version} % \changes{v0.9}{2020/01/02}{Initial documentation in french} % \changes{v1.0}{2020/07/22}{Initial public version with documentation in english} -% \changes{v1.1}{2021/08/30}{macro tablenum replaced by tablenum1, small modifications due +% \changes{v1.1}{2021/08/30}{Macro tablenum replaced by tablenum1, small modifications due % to changes in tasks package} +% \changes{v1.2}{2021/09/18}{Bug correction in macros tablenum1 and tablenuma, using the translations package for internationalization} % % \GetFileInfo{exesheet.dtx} % @@ -141,18 +141,18 @@ % % Another specificity of the \textsf{exesheet} package is specific settings % for enumeration lists, different from \LaTeX\ standard settings, -% usefull for the numbering of questions or answers inside an exercise. +% useful for the numbering of questions or answers inside an exercise. % % Other packages provide often more or less elaborate mechanisms % to manage the placement of answers. % \textsf{exesheet} has no such ambitions: % for all exercises of the sheet, we can display subject only, -% answer anly or both, but always at the place they are inserted +% answer only or both, but always at the place they are inserted % in the source file. On the other hand this choice may be very flexible: % we can do a correct version for all exercises together, or a correct version per exercise, % per part (subpart of exercise), per question, per sub-question. % -% Finally the original fonctionality of this package is the display +% Finally the original functionality of this package is the display % of a detailed marking scheme, % with optional explanations, in the margin of exercise answers. % @@ -196,11 +196,11 @@ % in a few languages\footnote{Translation % is currently integrated into the package for the following languages: French, % German, Spanish, Italian, Portuguese.} -% when the \textsf{babel} package is loaded. -% It can be redefined, with |\renewcommand|, which should be placed -% after |\begin{document}|, or else we can use macros from the \textsf{babel} -% package (allowing dynamic language change), e.g.\\ -% |\addto\captionssweedish{\def\exercisename{\"Ovning}}| (in the preamble). +% according to the loaded language (by \textsf{babel} or \textsf{polyglossia}). +% It can be redefined, with |\renewcommand|, +% or else we can use macros from the \textsf{translations} +% package (allowing dynamic language change), e.g. (in the preamble)\\ +% |\DeclareTranslation{Swedish}{exesheet-exercise}{\"Ovning}}|. % % \DescribeMacro{\labelexercise} % This command calls |\exercisename| following by the exercise number. @@ -228,14 +228,14 @@ % % \exercise*[(Fermat theorem)]{Problem} % \psframe(-0.25,1.3)(12.75,-0.7) -% Proove that there are no positive integers $x, y, z$ such that $x^n+y^n=z^n$ +% Prove that there are no positive integers $x, y, z$ such that $x^n+y^n=z^n$ % for any integer $n$ greater than 2. % % \subsection{The \texttt{\bs subpart} command} % % \DescribeMacro{\subpart} % An exercise may contain several parts that we obtain -% with the |\subpart|\oarg{opt} command, typeset like a subsubsection. +% with the |\subpart|\oarg{opt} command, typeset like a sub-subsection. % \exercise % \subpart[(preliminary)] % \psframe(-0.25,1.95)(12.75,-1.9) @@ -249,11 +249,12 @@ % This numbering type can be redefined with the |\thesubpart| command based on % the |subpart| counter, for instance |\renewcommand\thesubpart{\arabic{subpart}}|. % +% \pagebreak % \DescribeMacro{\subpartname} \DescribeMacro{\labelsubpart} % \DescribeMacro{\labelsubpartstyle} % As for |\exercise|, the |\subpart| command -% uses |\subpartname| (with automatic translation in a few languages -% if \textsf{babel} is loaded), +% uses |\subpartname| (with automatic translation in a few languages +% according to the selected language), % |\labelsubpart| and |\labelsubpartstyle|, which are editable. % % \DescribeMacro{\subpart*} @@ -264,7 +265,7 @@ % \subsection{The \texttt{\bs annex} command} % \DescribeMacro{\annex} % The |\annex|\oarg{opt} command typesets the title \textbf{ANNEX}, -% in uppercase letters, centred +% in uppercase letters, centered % and in the subsection style, % with an optional parameter, added on the same line. % @@ -273,9 +274,9 @@ % \annex[(to return)] % % \DescribeMacro{\annexname} -% The word \emph{\annexname} has automatic translation in a few languages -% if \textsf{babel} package is loaded. -% It can be extended to other languages or modified by redifining |\annexname|. +% The word \emph{\annexname} has automatic translation in a few languages. +% It can be extended to other languages or modified by redefining |\annexname| +% or with macros from the \textsf{translations} package. % % \DescribeMacro{\annexstyle} % The annex title style is set by the |\annexstyle| macro, @@ -309,7 +310,7 @@ % \bigskip % \DescribeMacro{\exname} \DescribeMacro{\exlabel} \DescribeMacro{\exsepmark} % The abbreviation \emph{\exname} may be changed by -% redefining |\exname|. +% redefining |\exname| or with macros from the \textsf{translations} package. % The |\exlabel| macro calls |\exname| following by a period then the exercise number, % and |\exsepmark| typesets a long dash. % We may change these features by redefining these commands. @@ -337,10 +338,10 @@ % % \bigskip % \DescribeMacro{\pointsname} \DescribeMacro{\pointname} -% Like before, the words \emph{points} and in the singular \emph{point} +% Like before, the word \emph{points} and in the singular \emph{point} % (if \meta{pts} is inferior to 2) -% get automatic translation (with \textsf{babel}) in a few languages -% and are modifiables. +% get automatic translation in a few languages +% and are modifiable. % % \DescribeMacro{\pointsstyle} \DescribeMacro{pointscolor} % The style used by the |\points| command may be redefined with |\pointsstyle|. @@ -362,11 +363,11 @@ % may also be changed by the \texttt{\bs labelenumi} and \texttt{\bs labelenumii} commands.} % from the \textsf{enumitem} package by Javier Bezos. % Lists with \texttt{itemize} environment are kept in their default configuration\footnote{The -% \texttt{french} otion of the \textsf{babel} package +% \texttt{french} option of the \textsf{babel} package % alters \texttt{itemize} lists behavior and uses long dash % as labels for each list level. % This behavior is problematic when mathematics follows the dash -% symbol because the latter may be confused wih the minus sign. +% symbol because the latter may be confused with the minus sign. % Modifications of the \texttt{french} option (which supersedes \texttt{frenchb} % of \textsf{babel}) are canceled to restore \LaTeX\ default settings.}. % @@ -389,14 +390,14 @@ % % \subsection{List of exercises : the \texttt{exenumerate} environment} % \DescribeEnv{exenumerate} -% When an exercise sheet is made of short independant exercises, +% When an exercise sheet is made of short independent exercises, % it would be ill-advised to display the complete title \emph{\exercisename} for each. % In addition to the |\exe| command, previously presented, % we provide an even lighter solution with the |exenumerate| environment, % which is only an enumeration list in which % spaces between items are further increased compared with those of \texttt{enumerate}. % Here is an example (the main list is an \texttt{exenumerate} environment but -% sublists are produced with regular \texttt{enumerate} environments): +% sub-lists are produced with regular \texttt{enumerate} environments): % % \vspace{-\baselineskip} % \noindent\psframe(-0.25,-0.3)(12.75,-6.75) @@ -438,9 +439,8 @@ % |\NewTasksEnvironment| macro, from the \textsf{tasks} package by Clemens Niederberger. % They take an optional argument \meta{opt} % explained in the documentation of this package, -% e.g.\ |label=1)| gives a roman numbering -% following by a closing parenthesis (like in \texttt{enumitem} -% or \texttt{enumerate} packages. +% e.g.\ |label=\arabic*)| produces an Arabic numbering +% following by a closing parenthesis (like in \texttt{enumitem} package). % There are also many possibilities to place items in an original way, % for instance, the |\item*| command allows to % specify the number of columns the item is supposed to span. @@ -466,8 +466,7 @@ % (except by redefining the environment with |\RenewTasksEnvironment|). % If the \textsf{exesheet} package is called with option \texttt{nosetlist}, % labels of \texttt{tablenum1} and \texttt{tablenuma} environments -% are displayed in normal font with indentation, as for -% \texttt{enumerate}. +% are displayed in normal font instead of boldface, with indentation. % % \subsection{Items aligned by columns: \texttt{colsenum}} % \DescribeEnv{colsenum} @@ -549,7 +548,7 @@ % In the case (by default) where questions and answers are displayed both, % answers are then typeset in the style % |\correctionstyle|, which uses the color \texttt{correctioncolor}. -% This color may be choosen with the |\definecolor| macro +% This color may be chosen with the |\definecolor| macro % (by default |\definecolor{correctioncolor}{rgb}{0,0.2,0.6}| = kind of dark blue). % Moreover, in that case, % the title \textbf{\correctionname} is displayed at the beginning @@ -570,14 +569,14 @@ % \begin{questions} % \begin{enumerate} % \item Is the \textsf{exesheet} package useful ? -% \item Ins't there any other packages that deal with exercises ? +% \item Isn't there any other packages that deal with exercises ? % \end{enumerate} % \end{questions} % \begin{answers} % \begin{enumerate} % \item Yes, the \textsf{exesheet} package is very useful. -% \item There are many other packages that deal with exercices, and -% give the ability to produce separatly questions and solutions, for example +% \item There are many other packages that deal with exercises, and +% give the ability to produce separately questions and solutions, for example % \textsf{exercise} by Paul Pichaureau, \textsf{exercises} by Roger Jud, % \textsf{exsheets} (superseded by \textsf{xsim}) by Clemens Niederberger, % \textsf{exframe} by Niklas Beisert, @@ -591,7 +590,7 @@ % When only answers are displayed, the text color remains black, % the word \emph{\correctionname} is not displayed and the % |\points| macro is patched to suppress the display of points. -% An extended solution for a variable display of points will be disussed +% An extended solution for a variable display of points will be discussed % in section \ref{totalpoints} with the |\totalpoints| macro. % % \subsection{More about \texttt{answers} environment} @@ -632,7 +631,7 @@ % The optional \meta{level} parameter is defined as follows: % 1 for section level titles, % 2 for subsections (like \emph{\exercisename}), -% 3 for subsubsections (like \emph{\partname}), +% 3 for sub-subsections (like \emph{\partname}), % another number for lower levels % (then they will not appear in the table of contents). % @@ -650,7 +649,7 @@ % It can be more readable (in the source code) when questions and answers are short. % In the case of displaying both questions and answers, % the \emph{\correctionname} title will appear on a new line, in bold, -% as for levels lower than subsubsection in the \texttt{answers} environment +% as for levels lower than sub-subsection in the \texttt{answers} environment % (and without entries in the table of contents). % But this command doesn't work with \texttt{verbatim} inside. % @@ -670,7 +669,7 @@ % % \vspace{-\baselineskip} % \noindent\psframe(-3.5,-0.25)(12.75,-2) -% \exe \pts{3} The first exercise with marking sheme. +% \exe \pts{3} The first exercise with marking scheme. % \exe \pts{1.5} The second one. % % \bigskip @@ -703,7 +702,7 @@ % \label{totalpoints} % \DescribeMacro{\totalexe} % \DescribeMacro{\note} -% To give a more detailed marking sheme, the \textsf{exesheet} package +% To give a more detailed marking scheme, the \textsf{exesheet} package % provides some extended commands: % |\totalexe|\marg{num} to display the total number of points of an exercise % and especially |\note|\oarg{pts}\marg{comment}, @@ -711,7 +710,7 @@ % The optional parameter \meta{pts} is the number of points of the question % and the mandatory parameter \meta{comment} is used to give details about the marking scheme. % Below the title has been obtained with |\exercise[\totalexe{4}]| -% and the first comment with \\ +% and the first comment (on next page) with \\ % |\note[1]{0,5 for the anti-derivative\\0,5 for simplification of $\ln$}|. % % \exercise[\totalexe{4}] \label{totalexe} @@ -779,13 +778,13 @@ % % \DescribeMacro{\note*} % If we don't want to add comment, we have the -% |\note*|\marg{pts} command (better thant |\note|\oarg{pts}|{}|), +% |\note*|\marg{pts} command (better than |\note|\oarg{pts}|{}|), % used here in answer 3: |\note*{1.5}|. % % \DescribeMacro{markingcolor} \DescribeMacro{\markingstyle} \DescribeMacro{\ptsboxlength} % The display color of the points, in |\totalexe| and |\note|, % is defined by \texttt{markingcolor} -% and the style by |\markingstyle|, which are modifiables. +% and the style by |\markingstyle|, which are modifiable. % The oval box produced by |\totalexe| is obtained with the |\ovalbox| command % of the \textsf{fancybox} package by Timothy Van Zandt, % with corner arcs set by |\cornersize{1}|. @@ -881,108 +880,106 @@ \DeclareOption{nosetlist}{\setboolean{nosetlist}{true}} \ProcessOptions \relax \RequirePackage{xcolor} -\RequirePackage[shortlabels]{enumitem} +\RequirePackage[shortlabels]{enumitem} \RequirePackage{tasks} \RequirePackage{versions} %\@ifpackageloaded{doc}{}{\RequirePackage{verbatim}} \RequirePackage{geometry} \RequirePackage{fancybox} +\RequirePackage{translations} % \end{macrocode} % % \subsection{Internationalization} % Here we define the keywords and their translation in French, German, Spanish -% Italian, Portuguese, thanks to the |\addto\captions|\meta{language} macro -% of the \textsf{babel} package. -% -% Translations are placed in a macro |\exetranslate| because, if -% \textsf{exesheet} is called before \textsf{babel} (this is necessarily the case for the -% \textsf{exesheet} class), then these translations should only happen -% after having loaded the \textsf{babel} package, therefore the |\AtBeginDocument|. -% On the other hand, if the package is loaded \emph{after} \textsf{babel}, -% |AtBeginDocument{\exetranslate}| doesn't work, curiously. -% But calling immediately |\exetranslate| works in that case. +% Italian, Portuguese, thanks to macros of the \textsf{translations} package +% by Clemens Niederberger. It detects the used language +% loaded by \textsf{babel} or \textsf{polyglossia}. % % Accented characters cannot be used here because they are not recognized -% if \textsf{inputenc} is loaded after \textsf{exesheet}, -% despite the |\AtBeginDocument|. So we have used the basic \LaTeX\ commands to produce them. -% -% \TODO: give the choice to use \textsf{polyglossia} instead of \textsf{babel}; -% see the \textsf{translations} or \textsf{multilang} packages. +% if \textsf{inputenc} is loaded after \textsf{exesheet}. +% So we have used the basic \LaTeX\ commands to produce them. % % \begin{macrocode} -\def\exercisename{Exercise} -\def\subpartname{Part} -\def\annexname{Annex} -\def\exname{Ex} -\def\pointsname{points} -\def\pointname{point} -\def\correctionname{Correction} -\def\ptsname{pts} -\def\ptname{pt} +\DeclareTranslationFallback{exesheet-exercise}{Exercise} +\DeclareTranslationFallback{exesheet-subpart}{Part} +\DeclareTranslationFallback{exesheet-annex}{Annex} +\DeclareTranslationFallback{exesheet-ex}{Ex} +\DeclareTranslationFallback{exesheet-points}{points} +\DeclareTranslationFallback{exesheet-point}{point} +\DeclareTranslationFallback{exesheet-correction}{Correction} +\DeclareTranslationFallback{exesheet-pts}{pts} +\DeclareTranslationFallback{exesheet-pt}{pt} -\newcommand\exetranslate{% - \@ifpackageloaded{babel}{% - \addto\captionsfrench{% - \def\exercisename{Exercice} - \def\subpartname{Partie} - \def\annexname{Annexe} - \def\exname{Ex} - \def\pointsname{points} - \def\pointname{point} - \def\correctionname{Correction} - \def\ptsname{pts} - \def\ptname{pt} - } - \addto\captionsgerman{% - \def\exercisename{\"Ubung} - \def\subpartname{Teil} - \def\annexname{Anhang} - \def\exname{\"Ub} - \def\pointsname{Punkte} - \def\pointname{Punkt} - \def\correctionname{Verbesserung} - \def\ptsname{Pkte} - \def\ptname{Pkt} - } - \addto\captionsspanish{% - \def\exercisename{Ejercicio} - \def\subpartname{Parte} - \def\annexname{Anexo} - \def\exname{Ej} - \def\pointsname{puntos} - \def\pointname{punto} - \def\correctionname{Correcci\'on} - \def\ptsname{ptos} - \def\ptname{pot} - } - \addto\captionsitalian{% - \def\exercisename{Esercizio} - \def\subpartname{Parte} - \def\annexname{Ansesso} - \def\exname{Es} - \def\pointsname{punti} - \def\pointname{punto} - \def\correctionname{Correzione} - \def\ptsname{pti} - \def\ptname{pt} - } - \addto\captionsportuges{% - \def\exercisename{Exerc\'icio} - \def\subpartname{Parte} - \def\annexname{Anexo} - \def\exname{Ex} - \def\pointsname{pontos} - \def\pointname{ponto} - \def\correctionname{Corre\c c\~ao} - \def\ptsname{pts} - \def\ptname{pt} - } - }{} - } +\DeclareTranslation{English}{exesheet-exercise}{Exercise} +\DeclareTranslation{English}{exesheet-subpart}{Part} +\DeclareTranslation{English}{exesheet-annex}{Annex} +\DeclareTranslation{English}{exesheet-ex}{Ex} +\DeclareTranslation{English}{exesheet-points}{points} +\DeclareTranslation{English}{exesheet-point}{point} +\DeclareTranslation{English}{exesheet-correction}{Correction} +\DeclareTranslation{English}{exesheet-pts}{pts} +\DeclareTranslation{English}{exesheet-pt}{pt} -\AtBeginDocument{\exetranslate} % if loaded before babel -\exetranslate % necessary when loaded after babel +\DeclareTranslation{French}{exesheet-exercise}{Exercice} +\DeclareTranslation{French}{exesheet-subpart}{Partie} +\DeclareTranslation{French}{exesheet-annex}{Annexe} +\DeclareTranslation{French}{exesheet-ex}{Ex} +\DeclareTranslation{French}{exesheet-points}{points} +\DeclareTranslation{French}{exesheet-point}{point} +\DeclareTranslation{French}{exesheet-correction}{Correction} +\DeclareTranslation{French}{exesheet-pts}{pts} +\DeclareTranslation{French}{exesheet-pt}{pt} + +\DeclareTranslation{German}{exesheet-exercise}{\"Ubung} +\DeclareTranslation{German}{exesheet-subpart}{Teil} +\DeclareTranslation{German}{exesheet-annex}{Anhang} +\DeclareTranslation{German}{exesheet-ex}{\"Ub} +\DeclareTranslation{German}{exesheet-points}{Punkte} +\DeclareTranslation{German}{exesheet-point}{Punkt} +\DeclareTranslation{German}{exesheet-correction}{Verbesserung} +\DeclareTranslation{German}{exesheet-pts}{Pkte} +\DeclareTranslation{German}{exesheet-pt}{Pkt} + +\DeclareTranslation{Spanish}{exesheet-exercise}{Ejercicio} +\DeclareTranslation{Spanish}{exesheet-subpart}{Parte} +\DeclareTranslation{Spanish}{exesheet-annex}{Anexo} +\DeclareTranslation{Spanish}{exesheet-ex}{Ej} +\DeclareTranslation{Spanish}{exesheet-points}{puntos} +\DeclareTranslation{Spanish}{exesheet-point}{punto} +\DeclareTranslation{Spanish}{exesheet-correction}{Correcci\'on} +\DeclareTranslation{Spanish}{exesheet-pts}{ptos} +\DeclareTranslation{Spanish}{exesheet-pt}{pto} + +\DeclareTranslation{Italian}{exesheet-exercise}{Esercizio} +\DeclareTranslation{Italian}{exesheet-subpart}{Parte} +\DeclareTranslation{Italian}{exesheet-annex}{Annesso} +\DeclareTranslation{Italian}{exesheet-ex}{Es} +\DeclareTranslation{Italian}{exesheet-points}{punti} +\DeclareTranslation{Italian}{exesheet-point}{punto} +\DeclareTranslation{Italian}{exesheet-correction}{correzione} +\DeclareTranslation{Italian}{exesheet-pts}{pti} +\DeclareTranslation{Italian}{exesheet-pt}{pt} + +\DeclareTranslation{Portuges}{exesheet-exercise}{Exerc\'icio} +\DeclareTranslation{Portuges}{exesheet-subpart}{Parte} +\DeclareTranslation{Portuges}{exesheet-annex}{Anexo} +\DeclareTranslation{Portuges}{exesheet-ex}{Ex} +\DeclareTranslation{Portuges}{exesheet-points}{pontos} +\DeclareTranslation{Portuges}{exesheet-point}{ponto} +\DeclareTranslation{Portuges}{exesheet-correction}{Corre\c c\~ao} +\DeclareTranslation{Portuges}{exesheet-pts}{pts} +\DeclareTranslation{Portuges}{exesheet-pt}{pt} + +\newcommand*\exercisename{\GetTranslation{exesheet-exercise}} +\newcommand*\subpartname{\GetTranslation{exesheet-subpart}} +\newcommand*\annexname{\GetTranslation{exesheet-annex}} +\newcommand*\exname{\GetTranslation{exesheet-ex}} +\newcommand*\pointsname{\GetTranslation{exesheet-points}} +\newcommand*\pointname{\GetTranslation{exesheet-point}} +\newcommand*\correctionname{\GetTranslation{exesheet-correction}} +\newcommand*\ptsname{\GetTranslation{exesheet-pts}} +\newcommand*\ptname{\GetTranslation{exesheet-pt}} % \end{macrocode} % @@ -1033,16 +1030,16 @@ \subsection*{\labelexercisestyle\labelexercise\ #1} \ifthenelse{\boolean{notoc}}{}{ \addcontentsline{toc}{subsection}{\labelexercise} - } } +} \newcommand*{\@@exercise}[2][]{% - \subsection*{\labelexercisestyle #2 #1} + \subsection*{\labelexercisestyle #2 #1} \setcounter{subpart}{0} % resets the parts counter \ifthenelse{\boolean{notoc}}{}{ \addcontentsline{toc}{subsection}{#2} - } } -\newcommand{\exercise}{\@ifstar{\@@exercise}{\@exercise}} +} +\newcommand{\exercise}{\@ifstar{\@@exercise}{\@exercise}} % \end{macrocode} % \end{macro} @@ -1058,14 +1055,14 @@ \subsubsection*{\labelsubpartstyle\labelsubpart\ #1} \ifthenelse{\boolean{notoc}}{}{ \addcontentsline{toc}{subsubsection}{\labelsubpart} - } } +} \newcommand*{\@@subpart}[2][]{% \subsubsection*{\labelsubpartstyle #2 #1} \ifthenelse{\boolean{notoc}}{}{ \addcontentsline{toc}{subsubsection}{#2} - } } +} \newcommand{\subpart}{\@ifstar{\@@subpart}{\@subpart}} % \end{macrocode} @@ -1077,8 +1074,8 @@ \subsection*{\mbox{}\hfill\annexstyle{\annexname} #1\hfill\mbox{}} \ifthenelse{\boolean{notoc}}{}{ \addcontentsline{toc}{subsection}{\annexname} - } - } + } +} % \end{macrocode} % \end{macro} @@ -1090,7 +1087,7 @@ \newcommand{\@@exe}{\textbf{\exlabel}~} \newcommand{\exe}{\bigskip\par\noindent\refstepcounter{exercise} \@ifstar{\@@exe}{\@exe} - } +} % \end{macrocode} % \end{macro} @@ -1098,12 +1095,12 @@ % \begin{macrocode} \newcommand{\pointsstyle}{% \small\mdseries\sffamily\color{pointscolor}\fbox} -\newcommand*{\points}[1]{\hfill +\newcommand*{\points}[1]{\hfill \pointsstyle{#1~% \ifthenelse{\lengthtest{#1 cm < 2cm}}{\pointname}{\pointsname}% - } } - +} + % \end{macrocode} % Percent symbols are necessary to avoid spaces between the % |\fbox| and its inner text. @@ -1113,9 +1110,9 @@ % \subsection{Enumerations and lists} % % When using \textsf{babel} with the \texttt{french} option\footnote{The \texttt{french} option -% of \textsf{babel} superseeds the \texttt{frenchb} option.}, +% of \textsf{babel} supersedes the \texttt{frenchb} option.}, % \texttt{itemize} lists are modified with the same dash label for each list level. -% These modifications are cancelled here to restore default +% These modifications are canceled here to restore default % \LaTeX\ \texttt{itemize} lists (labels and spaces). % As for |\exetranslate|, % we have create the |\standardfrenchlists| command who must be called into @@ -1134,15 +1131,15 @@ \@ifundefined{frenchsetup}{ \frenchbsetup{StandardLists=true}}{ \frenchsetup{StandardLists=True}} - }{} - } + }{} +} \ifthenelse{\boolean{nosetlist}}{}{ \AtBeginDocument{% if loaded before babel package \standardfrenchlists} \standardfrenchlists % necessary when loaded after babel \setlist[enumerate]{font=\bfseries} \setlist[enumerate,1]{topsep=1.5ex plus 1ex minus 1ex,leftmargin=1.5em} - } +} % \end{macrocode} % \begin{macro}{\exenumerate} @@ -1154,7 +1151,7 @@ \setlist[enumerate,3]{noitemsep,nolistsep} \setlist[itemize]{noitemsep,nolistsep} \begin{enumerate}[#1] - }{\end{enumerate}} + }{\end{enumerate}} % \end{macrocode} % \end{macro} @@ -1167,23 +1164,23 @@ % % \begin{macrocode} \ifthenelse{\boolean{nosetlist}}{ - \NewTasksEnvironment[label=1., + \NewTasksEnvironment[label=\arabic*., column-sep=1em, after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenum1}[\item](2) - \NewTasksEnvironment[label=(a), + \NewTasksEnvironment[label=(\alph*), column-sep=1em,label-align=right, item-indent=2.15em,label-width=1.6em,label-offset=0.5em, after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenuma}[\item](2) - }{% by default - \NewTasksEnvironment[label=1.,label-format=\bfseries, +}{% by default + \NewTasksEnvironment[label=\arabic*.,label-format=\bfseries, column-sep=1em,label-align=right, item-indent=1.5em,label-width=1em,label-offset=0.5em, after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenum1}[\item](2) - \NewTasksEnvironment[label=(a),label-format=\bfseries, + \NewTasksEnvironment[label=(\alph*),label-format=\bfseries, column-sep=1em,label-align=right, item-indent=2.15em,label-width=1.6em,label-offset=0.5em, after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenuma}[\item](2) - } +} \PackageWarning{exesheet}{Environment tablenum is deprecated and replaced by tablenum1} % \end{macrocode} @@ -1201,18 +1198,18 @@ \setlength{\multicolsep}{2ex} \raggedcolumns % default is \flushcolumns \begin{multicols}{#2} % #2 = number of columns - \begin{enumerate}[#1] % #1 = options of enumerate - }{ - \end{enumerate} + \begin{enumerate}[#1] % #1 = options of enumerate + }{ + \end{enumerate} \end{multicols} } \newenvironment{colsenum*}[2][]{% \setlength{\multicolsep}{2ex} \begin{multicols}{#2} % #2 = number of columns - \begin{enumerate}[#1] % #1 = options of enumerate - }{ - \end{enumerate} + \begin{enumerate}[#1] % #1 = options of enumerate + }{ + \end{enumerate} \end{multicols} } @@ -1223,18 +1220,18 @@ \setlength{\multicolsep}{2ex} \raggedcolumns \begin{multicols}{#2} - \begin{itemize}[#1] - }{ - \end{itemize} + \begin{itemize}[#1] + }{ + \end{itemize} \end{multicols} } \newenvironment{colsitem*}[2][]{% \setlength{\multicolsep}{2ex} \begin{multicols}{#2} - \begin{itemize}[#1] - }{ - \end{itemize} + \begin{itemize}[#1] + }{ + \end{itemize} \end{multicols} } @@ -1279,8 +1276,8 @@ \ifthenelse{\boolean{questions}}{ \setcounter{exe@ini}{\value{exercise}} \setcounter{subpart@ini}{\value{subpart}} - }{\comment}}% - {\ifthenelse{\boolean{questions}}{}{\endcomment}} + }{\comment}}% +{\ifthenelse{\boolean{questions}}{}{\endcomment}} % \end{macrocode} % \end{environment} @@ -1300,12 +1297,12 @@ \ifthenelse{\value{exercise} > \value{exe@ini}}{ \setcounter{@toclevel}{1} }{\ifthenelse{\equal{\the\@enumdepth}{0}}{ - % we're not in an enumerate environment - \ifthenelse{\(\value{subpart} > \value{subpart@ini}\) - \or \(\value{subpart} = 0\)}{ - \setcounter{@toclevel}{2} - }{\setcounter{@toclevel}{3}} - }{\setcounter{@toclevel}{4}}} + % we're not in an enumerate environment + \ifthenelse{\(\value{subpart} > \value{subpart@ini}\) + \or \(\value{subpart} = 0\)}{ + \setcounter{@toclevel}{2} + }{\setcounter{@toclevel}{3}} + }{\setcounter{@toclevel}{4}}} }{\setcounter{@toclevel}{#1}}} \newcommand{\correctionstyle}{\color{correctioncolor}} @@ -1320,26 +1317,26 @@ \addcontentsline{toc}{section}{\correctionname}} \setcounter{exercise}{0} }{\ifthenelse{\value{@toclevel} = 2}{% - \subsection*{\correctionstyle\correctionname} - \ifthenelse{\boolean{notoc}}{}{ - \addcontentsline{toc}{subsection}{\correctionname}} - \setcounter{subpart}{0} - }{\ifthenelse{\value{@toclevel} = 3}{% - \subsubsection*{\correctionstyle\correctionname} + \subsection*{\correctionstyle\correctionname} \ifthenelse{\boolean{notoc}}{}{ - \addcontentsline{toc}{subsubsection}{ - \correctionname}} + \addcontentsline{toc}{subsection}{\correctionname}} + \setcounter{subpart}{0} + }{\ifthenelse{\value{@toclevel} = 3}{% + \subsubsection*{\correctionstyle\correctionname} + \ifthenelse{\boolean{notoc}}{}{ + \addcontentsline{toc}{subsubsection}{ + \correctionname}} }{\par\textbf{\correctionstyle\correctionname}\par }% - }% + }% }% - \correctionstyle% + \correctionstyle% }{}% }{\comment} }{\ifthenelse{\boolean{answers}}{}{\endcomment}} - + \newenvironment{answers*}{\ifthenelse{\boolean{answers}}{}{\comment}}% - {\ifthenelse{\boolean{answers}}{}{\endcomment}} +{\ifthenelse{\boolean{answers}}{}{\endcomment}} % \end{macrocode} % In the \texttt{answers} environment, if we place |\correctionstyle| @@ -1356,10 +1353,10 @@ \ifx#2\empty\else \par\correctionstyle\textbf{\correctionname}\par \fi - }{} + }{} #2}{} \egroup - } +} % \end{macrocode} % \end{macro} @@ -1392,15 +1389,15 @@ \mbox{}% \marginpar{\hspace{0pt}% \ptsstyle{\pointmark{#1}}}% - }{}% + }{}% \ignorespaces - } +} \newcommand{\displaypts}{% \reversemarginpar \geometry{hmarginratio=3:2} \setboolean{marginpts}{true} - } - +} + % \end{macrocode} % % \begin{macro}{\totalexe} @@ -1409,18 +1406,18 @@ % to avoid too much space in the text (or the margin) % where these macros are inserted. % \begin{macrocode} -\newlength{\ptsboxlength} +\newlength{\ptsboxlength} \setlength{\ptsboxlength}{3.1em} \cornersize{1} \newcommand*{\totalexe}[1]{% \ifthenelse{\boolean{marginpoints}}{% \mbox{}% \marginpar{\markingstyle{\ovalbox{% - \makebox[\ptsboxlength]{\pointmark{#1}}}% + \makebox[\ptsboxlength]{\pointmark{#1}}}% }}% - }{}% + }{}% \ignorespaces - } +} % \end{macrocode} % \end{macro} @@ -1446,17 +1443,17 @@ \marginpar{% \ifthenelse{\equal{#1}{}}{}{\markingstyle{#1}\\}% \ifthenelse{\boolean{marginfullnotes}}{\notestyle #2}{}% - }% - }{}% + }% + }{}% \ignorespaces - } +} \newcommand{\@@note}[1]{% \ifthenelse{\boolean{marginpoints}}{% \mbox{}% \marginpar{\markingstyle{#1}}% - }{}% + }{}% \ignorespaces - } +} \newcommand{\note}{\@ifstar{\@@note}{\@note}} % \end{macrocode} @@ -1472,7 +1469,7 @@ \reversemarginpar \geometry{hmarginratio=3:2} \setboolean{marginpoints}{true} - } +} \newcommand*{\displaynotes}[1][\raggedleft]{% \reversemarginpar @@ -1484,8 +1481,8 @@ \setlength{\marginparwidth}{0.8\marginparwidth} \setboolean{marginpoints}{true} \setboolean{marginfullnotes}{true} - } - +} + \newcommand*{\displaynotesright}[1][\raggedright]{% \normalmarginpar \renewcommand{\noteragged}{#1} @@ -1498,7 +1495,7 @@ \setlength{\marginparwidth}{0.8\marginparwidth} \setboolean{marginpoints}{true} \setboolean{marginfullnotes}{true} - } +} % \end{macrocode} % The formatting of marginal notes can possibly be made more regular % with the \textsf{ragged2e} package, not loaded by \textsf{exesheet}. diff --git a/Master/texmf-dist/tex/latex/exesheet/exesheet.cls b/Master/texmf-dist/tex/latex/exesheet/exesheet.cls index 5cea657f2e6..e9d4afb26f7 100644 --- a/Master/texmf-dist/tex/latex/exesheet/exesheet.cls +++ b/Master/texmf-dist/tex/latex/exesheet/exesheet.cls @@ -22,7 +22,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2005/12/01] \ProvidesClass{exesheet} - [2020/08/30 v1.1 .dtx exesheet file] +[2021/09/18 v1.2 .dtx exesheet file] \DeclareOption{notoc}{\PassOptionsToPackage{notoc}{exesheet}} \DeclareOption{nosetlist}{\PassOptionsToPackage{nosetlist}{exesheet}} diff --git a/Master/texmf-dist/tex/latex/exesheet/exesheet.sty b/Master/texmf-dist/tex/latex/exesheet/exesheet.sty index 4c506a230e3..09ad183f3af 100644 --- a/Master/texmf-dist/tex/latex/exesheet/exesheet.sty +++ b/Master/texmf-dist/tex/latex/exesheet/exesheet.sty @@ -22,7 +22,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2005/12/01] \ProvidesPackage{exesheet} - [2020/08/30 v1.1 .dtx exesheet file] +[2021/09/18 v1.2 .dtx exesheet file] \RequirePackage{ifthen} \newboolean{notoc} @@ -36,79 +36,87 @@ \RequirePackage{versions} \RequirePackage{geometry} \RequirePackage{fancybox} - -\def\exercisename{Exercise} -\def\subpartname{Part} -\def\annexname{Annex} -\def\exname{Ex} -\def\pointsname{points} -\def\pointname{point} -\def\correctionname{Correction} -\def\ptsname{pts} -\def\ptname{pt} - -\newcommand\exetranslate{% - \@ifpackageloaded{babel}{% - \addto\captionsfrench{% - \def\exercisename{Exercice} - \def\subpartname{Partie} - \def\annexname{Annexe} - \def\exname{Ex} - \def\pointsname{points} - \def\pointname{point} - \def\correctionname{Correction} - \def\ptsname{pts} - \def\ptname{pt} - } - \addto\captionsgerman{% - \def\exercisename{\"Ubung} - \def\subpartname{Teil} - \def\annexname{Anhang} - \def\exname{\"Ub} - \def\pointsname{Punkte} - \def\pointname{Punkt} - \def\correctionname{Verbesserung} - \def\ptsname{Pkte} - \def\ptname{Pkt} - } - \addto\captionsspanish{% - \def\exercisename{Ejercicio} - \def\subpartname{Parte} - \def\annexname{Anexo} - \def\exname{Ej} - \def\pointsname{puntos} - \def\pointname{punto} - \def\correctionname{Correcci\'on} - \def\ptsname{ptos} - \def\ptname{pot} - } - \addto\captionsitalian{% - \def\exercisename{Esercizio} - \def\subpartname{Parte} - \def\annexname{Ansesso} - \def\exname{Es} - \def\pointsname{punti} - \def\pointname{punto} - \def\correctionname{Correzione} - \def\ptsname{pti} - \def\ptname{pt} - } - \addto\captionsportuges{% - \def\exercisename{Exerc\'icio} - \def\subpartname{Parte} - \def\annexname{Anexo} - \def\exname{Ex} - \def\pointsname{pontos} - \def\pointname{ponto} - \def\correctionname{Corre\c c\~ao} - \def\ptsname{pts} - \def\ptname{pt} - } - }{} - } - -\AtBeginDocument{\exetranslate} % if loaded before babel -\exetranslate % necessary when loaded after babel +\RequirePackage{translations} + +\DeclareTranslationFallback{exesheet-exercise}{Exercise} +\DeclareTranslationFallback{exesheet-subpart}{Part} +\DeclareTranslationFallback{exesheet-annex}{Annex} +\DeclareTranslationFallback{exesheet-ex}{Ex} +\DeclareTranslationFallback{exesheet-points}{points} +\DeclareTranslationFallback{exesheet-point}{point} +\DeclareTranslationFallback{exesheet-correction}{Correction} +\DeclareTranslationFallback{exesheet-pts}{pts} +\DeclareTranslationFallback{exesheet-pt}{pt} + +\DeclareTranslation{English}{exesheet-exercise}{Exercise} +\DeclareTranslation{English}{exesheet-subpart}{Part} +\DeclareTranslation{English}{exesheet-annex}{Annex} +\DeclareTranslation{English}{exesheet-ex}{Ex} +\DeclareTranslation{English}{exesheet-points}{points} +\DeclareTranslation{English}{exesheet-point}{point} +\DeclareTranslation{English}{exesheet-correction}{Correction} +\DeclareTranslation{English}{exesheet-pts}{pts} +\DeclareTranslation{English}{exesheet-pt}{pt} + +\DeclareTranslation{French}{exesheet-exercise}{Exercice} +\DeclareTranslation{French}{exesheet-subpart}{Partie} +\DeclareTranslation{French}{exesheet-annex}{Annexe} +\DeclareTranslation{French}{exesheet-ex}{Ex} +\DeclareTranslation{French}{exesheet-points}{points} +\DeclareTranslation{French}{exesheet-point}{point} +\DeclareTranslation{French}{exesheet-correction}{Correction} +\DeclareTranslation{French}{exesheet-pts}{pts} +\DeclareTranslation{French}{exesheet-pt}{pt} + +\DeclareTranslation{German}{exesheet-exercise}{\"Ubung} +\DeclareTranslation{German}{exesheet-subpart}{Teil} +\DeclareTranslation{German}{exesheet-annex}{Anhang} +\DeclareTranslation{German}{exesheet-ex}{\"Ub} +\DeclareTranslation{German}{exesheet-points}{Punkte} +\DeclareTranslation{German}{exesheet-point}{Punkt} +\DeclareTranslation{German}{exesheet-correction}{Verbesserung} +\DeclareTranslation{German}{exesheet-pts}{Pkte} +\DeclareTranslation{German}{exesheet-pt}{Pkt} + +\DeclareTranslation{Spanish}{exesheet-exercise}{Ejercicio} +\DeclareTranslation{Spanish}{exesheet-subpart}{Parte} +\DeclareTranslation{Spanish}{exesheet-annex}{Anexo} +\DeclareTranslation{Spanish}{exesheet-ex}{Ej} +\DeclareTranslation{Spanish}{exesheet-points}{puntos} +\DeclareTranslation{Spanish}{exesheet-point}{punto} +\DeclareTranslation{Spanish}{exesheet-correction}{Correcci\'on} +\DeclareTranslation{Spanish}{exesheet-pts}{ptos} +\DeclareTranslation{Spanish}{exesheet-pt}{pto} + +\DeclareTranslation{Italian}{exesheet-exercise}{Esercizio} +\DeclareTranslation{Italian}{exesheet-subpart}{Parte} +\DeclareTranslation{Italian}{exesheet-annex}{Annesso} +\DeclareTranslation{Italian}{exesheet-ex}{Es} +\DeclareTranslation{Italian}{exesheet-points}{punti} +\DeclareTranslation{Italian}{exesheet-point}{punto} +\DeclareTranslation{Italian}{exesheet-correction}{correzione} +\DeclareTranslation{Italian}{exesheet-pts}{pti} +\DeclareTranslation{Italian}{exesheet-pt}{pt} + +\DeclareTranslation{Portuges}{exesheet-exercise}{Exerc\'icio} +\DeclareTranslation{Portuges}{exesheet-subpart}{Parte} +\DeclareTranslation{Portuges}{exesheet-annex}{Anexo} +\DeclareTranslation{Portuges}{exesheet-ex}{Ex} +\DeclareTranslation{Portuges}{exesheet-points}{pontos} +\DeclareTranslation{Portuges}{exesheet-point}{ponto} +\DeclareTranslation{Portuges}{exesheet-correction}{Corre\c c\~ao} +\DeclareTranslation{Portuges}{exesheet-pts}{pts} +\DeclareTranslation{Portuges}{exesheet-pt}{pt} + +\newcommand*\exercisename{\GetTranslation{exesheet-exercise}} +\newcommand*\subpartname{\GetTranslation{exesheet-subpart}} +\newcommand*\annexname{\GetTranslation{exesheet-annex}} +\newcommand*\exname{\GetTranslation{exesheet-ex}} +\newcommand*\pointsname{\GetTranslation{exesheet-points}} +\newcommand*\pointname{\GetTranslation{exesheet-point}} +\newcommand*\correctionname{\GetTranslation{exesheet-correction}} +\newcommand*\ptsname{\GetTranslation{exesheet-pts}} +\newcommand*\ptname{\GetTranslation{exesheet-pt}} \definecolor{pointscolor}{named}{red} \definecolor{ptscolor}{named}{red} @@ -125,15 +133,15 @@ \subsection*{\labelexercisestyle\labelexercise\ #1} \ifthenelse{\boolean{notoc}}{}{ \addcontentsline{toc}{subsection}{\labelexercise} - } } +} \newcommand*{\@@exercise}[2][]{% \subsection*{\labelexercisestyle #2 #1} \setcounter{subpart}{0} % resets the parts counter \ifthenelse{\boolean{notoc}}{}{ \addcontentsline{toc}{subsection}{#2} - } } +} \newcommand{\exercise}{\@ifstar{\@@exercise}{\@exercise}} \newcounter{subpart}[exercise] % @@ -146,14 +154,14 @@ \subsubsection*{\labelsubpartstyle\labelsubpart\ #1} \ifthenelse{\boolean{notoc}}{}{ \addcontentsline{toc}{subsubsection}{\labelsubpart} - } } +} \newcommand*{\@@subpart}[2][]{% \subsubsection*{\labelsubpartstyle #2 #1} \ifthenelse{\boolean{notoc}}{}{ \addcontentsline{toc}{subsubsection}{#2} - } } +} \newcommand{\subpart}{\@ifstar{\@@subpart}{\@subpart}} \newcommand{\annexstyle}{\MakeUppercase} @@ -161,8 +169,8 @@ \subsection*{\mbox{}\hfill\annexstyle{\annexname} #1\hfill\mbox{}} \ifthenelse{\boolean{notoc}}{}{ \addcontentsline{toc}{subsection}{\annexname} - } } +} \newcommand{\exlabel}{\exname.~\theexercise} \newcommand{\exsepmark}{---} @@ -170,15 +178,15 @@ \newcommand{\@@exe}{\textbf{\exlabel}~} \newcommand{\exe}{\bigskip\par\noindent\refstepcounter{exercise} \@ifstar{\@@exe}{\@exe} - } +} \newcommand{\pointsstyle}{% \small\mdseries\sffamily\color{pointscolor}\fbox} \newcommand*{\points}[1]{\hfill \pointsstyle{#1~% \ifthenelse{\lengthtest{#1 cm < 2cm}}{\pointname}{\pointsname}% - } } +} \newcommand\standardfrenchlists{% \@ifpackagewith{babel}{frenchb}{ @@ -187,15 +195,15 @@ \@ifundefined{frenchsetup}{ \frenchbsetup{StandardLists=true}}{ \frenchsetup{StandardLists=True}} - }{} - } + }{} +} \ifthenelse{\boolean{nosetlist}}{}{ \AtBeginDocument{% if loaded before babel package \standardfrenchlists} \standardfrenchlists % necessary when loaded after babel \setlist[enumerate]{font=\bfseries} \setlist[enumerate,1]{topsep=1.5ex plus 1ex minus 1ex,leftmargin=1.5em} - } +} \newenvironment{exenumerate}[1][]{% \setlist[enumerate]{font=\bfseries} @@ -204,26 +212,26 @@ \setlist[enumerate,3]{noitemsep,nolistsep} \setlist[itemize]{noitemsep,nolistsep} \begin{enumerate}[#1] - }{\end{enumerate}} + }{\end{enumerate}} \ifthenelse{\boolean{nosetlist}}{ - \NewTasksEnvironment[label=1., + \NewTasksEnvironment[label=\arabic*., column-sep=1em, after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenum1}[\item](2) - \NewTasksEnvironment[label=(a), + \NewTasksEnvironment[label=(\alph*), column-sep=1em,label-align=right, item-indent=2.15em,label-width=1.6em,label-offset=0.5em, after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenuma}[\item](2) - }{% by default - \NewTasksEnvironment[label=1.,label-format=\bfseries, +}{% by default + \NewTasksEnvironment[label=\arabic*.,label-format=\bfseries, column-sep=1em,label-align=right, item-indent=1.5em,label-width=1em,label-offset=0.5em, after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenum1}[\item](2) - \NewTasksEnvironment[label=(a),label-format=\bfseries, + \NewTasksEnvironment[label=(\alph*),label-format=\bfseries, column-sep=1em,label-align=right, item-indent=2.15em,label-width=1.6em,label-offset=0.5em, after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablenuma}[\item](2) - } +} \PackageWarning{exesheet}{Environment tablenum is deprecated and replaced by tablenum1} \NewTasksEnvironment[label=\labelitemi, @@ -235,18 +243,18 @@ \setlength{\multicolsep}{2ex} \raggedcolumns % default is \flushcolumns \begin{multicols}{#2} % #2 = number of columns - \begin{enumerate}[#1] % #1 = options of enumerate - }{ - \end{enumerate} + \begin{enumerate}[#1] % #1 = options of enumerate + }{ + \end{enumerate} \end{multicols} } \newenvironment{colsenum*}[2][]{% \setlength{\multicolsep}{2ex} \begin{multicols}{#2} % #2 = number of columns - \begin{enumerate}[#1] % #1 = options of enumerate - }{ - \end{enumerate} + \begin{enumerate}[#1] % #1 = options of enumerate + }{ + \end{enumerate} \end{multicols} } @@ -254,18 +262,18 @@ \setlength{\multicolsep}{2ex} \raggedcolumns \begin{multicols}{#2} - \begin{itemize}[#1] - }{ - \end{itemize} + \begin{itemize}[#1] + }{ + \end{itemize} \end{multicols} } \newenvironment{colsitem*}[2][]{% \setlength{\multicolsep}{2ex} \begin{multicols}{#2} - \begin{itemize}[#1] - }{ - \end{itemize} + \begin{itemize}[#1] + }{ + \end{itemize} \end{multicols} } @@ -285,8 +293,8 @@ \ifthenelse{\boolean{questions}}{ \setcounter{exe@ini}{\value{exercise}} \setcounter{subpart@ini}{\value{subpart}} - }{\comment}}% - {\ifthenelse{\boolean{questions}}{}{\endcomment}} + }{\comment}}% +{\ifthenelse{\boolean{questions}}{}{\endcomment}} \newcounter{@toclevel} \newcommand{\set@toclevel}[1][]{ @@ -294,12 +302,12 @@ \ifthenelse{\value{exercise} > \value{exe@ini}}{ \setcounter{@toclevel}{1} }{\ifthenelse{\equal{\the\@enumdepth}{0}}{ - % we're not in an enumerate environment - \ifthenelse{\(\value{subpart} > \value{subpart@ini}\) - \or \(\value{subpart} = 0\)}{ - \setcounter{@toclevel}{2} - }{\setcounter{@toclevel}{3}} - }{\setcounter{@toclevel}{4}}} + % we're not in an enumerate environment + \ifthenelse{\(\value{subpart} > \value{subpart@ini}\) + \or \(\value{subpart} = 0\)}{ + \setcounter{@toclevel}{2} + }{\setcounter{@toclevel}{3}} + }{\setcounter{@toclevel}{4}}} }{\setcounter{@toclevel}{#1}}} \newcommand{\correctionstyle}{\color{correctioncolor}} @@ -314,26 +322,26 @@ \addcontentsline{toc}{section}{\correctionname}} \setcounter{exercise}{0} }{\ifthenelse{\value{@toclevel} = 2}{% - \subsection*{\correctionstyle\correctionname} - \ifthenelse{\boolean{notoc}}{}{ - \addcontentsline{toc}{subsection}{\correctionname}} - \setcounter{subpart}{0} - }{\ifthenelse{\value{@toclevel} = 3}{% - \subsubsection*{\correctionstyle\correctionname} + \subsection*{\correctionstyle\correctionname} \ifthenelse{\boolean{notoc}}{}{ - \addcontentsline{toc}{subsubsection}{ - \correctionname}} + \addcontentsline{toc}{subsection}{\correctionname}} + \setcounter{subpart}{0} + }{\ifthenelse{\value{@toclevel} = 3}{% + \subsubsection*{\correctionstyle\correctionname} + \ifthenelse{\boolean{notoc}}{}{ + \addcontentsline{toc}{subsubsection}{ + \correctionname}} }{\par\textbf{\correctionstyle\correctionname}\par }% - }% + }% }% - \correctionstyle% + \correctionstyle% }{}% }{\comment} }{\ifthenelse{\boolean{answers}}{}{\endcomment}} \newenvironment{answers*}{\ifthenelse{\boolean{answers}}{}{\comment}}% - {\ifthenelse{\boolean{answers}}{}{\endcomment}} +{\ifthenelse{\boolean{answers}}{}{\endcomment}} \newcommand{\question}[2]{% \ifthenelse{\boolean{questions}}{#1}{} @@ -343,10 +351,10 @@ \ifx#2\empty\else \par\correctionstyle\textbf{\correctionname}\par \fi - }{} + }{} #2}{} \egroup - } +} \let\@oldpoints\points \renewcommand*{\points}[1]{% @@ -362,14 +370,14 @@ \mbox{}% \marginpar{\hspace{0pt}% \ptsstyle{\pointmark{#1}}}% - }{}% + }{}% \ignorespaces - } +} \newcommand{\displaypts}{% \reversemarginpar \geometry{hmarginratio=3:2} \setboolean{marginpts}{true} - } +} \newlength{\ptsboxlength} \setlength{\ptsboxlength}{3.1em} @@ -378,11 +386,11 @@ \ifthenelse{\boolean{marginpoints}}{% \mbox{}% \marginpar{\markingstyle{\ovalbox{% - \makebox[\ptsboxlength]{\pointmark{#1}}}% + \makebox[\ptsboxlength]{\pointmark{#1}}}% }}% - }{}% + }{}% \ignorespaces - } +} \newboolean{marginpoints} \newboolean{marginfullnotes} @@ -398,24 +406,24 @@ \marginpar{% \ifthenelse{\equal{#1}{}}{}{\markingstyle{#1}\\}% \ifthenelse{\boolean{marginfullnotes}}{\notestyle #2}{}% - }% - }{}% + }% + }{}% \ignorespaces - } +} \newcommand{\@@note}[1]{% \ifthenelse{\boolean{marginpoints}}{% \mbox{}% \marginpar{\markingstyle{#1}}% - }{}% + }{}% \ignorespaces - } +} \newcommand{\note}{\@ifstar{\@@note}{\@note}} \newcommand{\displaypoints}{% \reversemarginpar \geometry{hmarginratio=3:2} \setboolean{marginpoints}{true} - } +} \newcommand*{\displaynotes}[1][\raggedleft]{% \reversemarginpar @@ -427,7 +435,7 @@ \setlength{\marginparwidth}{0.8\marginparwidth} \setboolean{marginpoints}{true} \setboolean{marginfullnotes}{true} - } +} \newcommand*{\displaynotesright}[1][\raggedright]{% \normalmarginpar @@ -441,7 +449,7 @@ \setlength{\marginparwidth}{0.8\marginparwidth} \setboolean{marginpoints}{true} \setboolean{marginfullnotes}{true} - } +} \newcommand{\totalpoints}{% \ifthenelse{\boolean{marginpoints}}{\totalexe}{\points}} \endinput -- cgit v1.2.3