diff options
Diffstat (limited to 'macros/latex/contrib/exesheet/exesheet.dtx')
-rw-r--r-- | macros/latex/contrib/exesheet/exesheet.dtx | 1537 |
1 files changed, 810 insertions, 727 deletions
diff --git a/macros/latex/contrib/exesheet/exesheet.dtx b/macros/latex/contrib/exesheet/exesheet.dtx index 04cdd77b5b..1e5355ba3a 100644 --- a/macros/latex/contrib/exesheet/exesheet.dtx +++ b/macros/latex/contrib/exesheet/exesheet.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2020-2021 by Antoine Missier <antoine.missier@ac-toulouse.fr> +% Copyright (C) 2020-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr> % ---------------------------------------------------------------------- % % This file may be distributed and/or modified under the @@ -23,7 +23,7 @@ %<class>\ProvidesClass{exesheet} %<package>\ProvidesPackage{exesheet} %<*class|package> -[2023/01/16 v2.0 .dtx exesheet file] +[2023/08/25 v2.1 .dtx exesheet file] %</class|package> %<*driver> \documentclass{ltxdoc} @@ -45,7 +45,6 @@ \usepackage{pstricks} \usepackage{array} \usepackage{spacingtricks} -\usepackage{centeredline} % \psset{unit=1cm} \geometry{textwidth=355pt,vmarginratio=1:1,hmarginratio=3:2} @@ -84,7 +83,7 @@ %</driver> % \fi % -% \CheckSum{1118} +% \CheckSum{1132} % % \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 @@ -137,6 +136,11 @@ % code revision and simplification, % documentation update} % +% \changes{v2.1}{2023/07/30}{ +% new environments tablenuma* and tablitem*} +% \changes{v2.1}{2023/08/24}{ +% English correction in the documentation} +% % \GetFileInfo{exesheet.dtx} % % \maketitle @@ -145,120 +149,123 @@ % % \section{Introduction} % -% The \textsf{exesheet} \emph{package} is used for typesetting exercise or exam sheets. -% In addition, the \textsf{exesheet} \emph{class} loads the \textsf{schooldocs} package. -% This one makes adjustments for margins and title and defines various layout styles -% with particular header and footer, appropriate for exercise sheets (among others). -% See the \textsf{schooldocs} documentation for more details. -% The \textsf{exesheet} \emph{class} is based on \textsf{article} -% and passes to it its unknown options. -% -% Many other packages are dedicated to exercise sheets. -% Most propose to encapsulate each exercise in an environment -% whereas \textsf{exesheet} begins each exercise with |\exercise|, -% which works like a subsection (with the same features) -% and is suitable for documents consisting exclusively of exercises. -% The package provides also alternative formatting, -% more relevant for short exercises. -% -% Another specificity of the \textsf{exesheet} package is the particular settings -% for enumeration lists, -% 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, however, -% for all exercises of the sheet, you can display questions only, -% answers 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: -% you can do a correct version for all exercises together, or a correction per exercise, +% The \textsf{exesheet} \emph{package} is designed for typesetting exercise or exam sheets. +% Additionally, the \textsf{exesheet} \emph{class} loads the \textsf{schooldocs} package. +% The latter makes adjustments to margins and titles, and defines various layout styles +% with specific headers and footers suitable for exercise sheets, among other uses. +% Refer to the documentation of the \textsf{schooldocs} package for more details. +% The \textsf{exesheet} \emph{class} is build upon the \textsf{article} class +% and forwards any unknown options to it. +% +% There are many other packages dedicated to exercise sheets. +% Most of them suggest encapsulating each exercise within an environment. +% In contrast, \textsf{exesheet} starts each exercise with |\exercise|, +% which functions similarly to a subsection (with the same features) +% and is suitable for documents that primarily consist of exercises. +% The package also offers alternative formatting, +% which is more suitable for shorter exercises. +% +% Another distinctive feature of the \textsf{exesheet} package is its specific settings +% for enumeration lists, which are +% useful for numbering questions or answers within an exercise. +% +% While other packages often offer more or less complex mechanisms +% for managing the placement of answers, +% \textsf{exesheet} doesn't aspire to such complexity. However, +% for all exercises within the sheet, you have the capability to display only questions, +% only answers, or both, all while preserving their placement as they appear +% in the source file. This choice allows for great flexibility: +% you can create a correct version for all exercises collectively, +% or individual corrections per exercise, % per part (subpart of exercise), per question, per sub-question. % -% Finally this package enables to display -% a detailed marking scheme in the margin, +% Finally this package enables to display a detailed marking scheme in the margin, % with optional explanations or remarks, -% and with consistency control. +% and offering consistency control. % -% Many settings can be changed and several options manage the output document. -% These options are based on the keyval mechanism: \texttt{key=value} -% (thanks to Maxime Chupin and Denis Bitouzé for their wise ideas to improve this package). -% The options can be passed to class or package, \eg +% Many settings can be customized, and various options are available +% to manage the output document. +% These options rely on the key-val mechanism: \texttt{key=value} +% (thanks to Maxime Chupin and Denis Bitouzé for suggesting this idea to improve this package). +% These options can be applied to the class or the package, \eg % \begin{center} % |\documentclass[a4paper,11pt,output=answers,display=pts]{exesheet}| % \end{center} -% or later with the |\exesheetset|\marg{options} command. +% or later using the command |\exesheetset|\marg{options}. % In the example above, \texttt{a4paper,11pt} are options -% passed to the underlying class \textsf{article}. +% that are passed to the underlying \textsf{article} class. % %\medskip -% \emph{In the current document, a frame is used to highlight -% examples output.} +% \emph{In the current document, a frame is utilized to emphasize output +% examples.} % % \section{Titles} % % \subsection{The \texttt{\bs exercise} command} % % \DescribeMacro{\exercise} -% Each exercise begins with the |\exercise|\oarg{opt} command. +% Each exercise starts with the |\exercise|\oarg{opt} command. % This command typesets \textbf{\exercisename}, as a document -% subsection, followed by automatic numbering, -% unique for the whole document. -% The optional parameter \meta{opt} is used to put additional text -% on the same title line, for example to precise a subject or a marking scheme. -% |\exercise[(to begin)]| yields: +% subsection, followed by automatic numbering +% unique to the entire document. +% The optional parameter \meta{opt} is utilized to include additional text +% on the same title line, such as specifying a subject or a marking scheme. +% Thus, using |\exercise[(to begin)]| results in: % % \exercise[(to begin)] % \psframe(-0.25,1.3)(12.75,-0.3) -% Try to use this first command now, it's easy. +% Give this initial command a try; it's straightforward. % % \bigskip % To bring additional text closer to the exercise number, -% we can use |\unskip| which eliminates preceding space, -% and also |\hrulefill| can be put in the optional argument -% to produce an horizontal rule. -% See the following example, obtained with \\ +% we can employ |\unskip| which removes any preceding space. +% Take a look at the following example, achieved with % |\exercise[\unskip*** (difficult)]|: % \exercise[\unskip*** (difficult)] % \psframe(-0.25,1.3)(12.75,-0.3) % Calculate $1+1$. % % \bigskip -% Several settings can be changed by refining the following commands. +% ^^A Various settings can be modified by refining the following commands. % -% \medskip +% ^^A \medskip % \DescribeMacro{\exercisename} -% The word ``\exercisename'' has automatic translation in a few languages -% \footnote{Translation is currently integrated into the package -% for the following languages: French, German, Spanish, Italian, Portuges.} -% according to the loaded language (by \textsf{babel} or \textsf{polyglossia}). -% It can be redefined, with |\renewcommand|, -% or better you can use (in the preamble) macros from the \textsf{translations} -% package (allowing dynamic language change), \eg \\ +% The term ``\exercisename'' is automatically translated into various languages +% \footnote{Currently, translation is integrated into the package +% for the following languages: French, German, Spanish, Italian, and Portuguese.} +% depending on the language that is loaded (via \textsf{babel} or \textsf{polyglossia}). +% You can redefine it using |\renewcommand|. +% A better approach is to use macros from the \textsf{translations} +% package by Clemens Niederberger (which allows dynamic language switching), \eg % |\DeclareTranslation{Swedish}{exesheet-exercise}{\"Ovning}}|. % +% \smallskip % \DescribeMacro{\labelexercise} -% This command calls |\exercisename| following by the exercise number. -% It can be redefined. For example, to add a period after the exercise number: +% This command combines |\exercisename| with the exercise number and +% can be redefined. For instance, if you want to include a period after the exercise number, +% you can redefine it as follows:\\ % |\renewcommand{\labelexercise}{\exercisename~\theexercise.}| -% +% +% \smallskip % \DescribeMacro{\theexercise} -% To change only the numbering type, redefine -% the |\theexercise| command, based on the |exercise| counter. +% If you wish to alter only the numbering style, you can redefine +% the |\theexercise| command based on the |exercise| counter. % +% \smallskip % \DescribeMacro{\labelexercisestyle} -% This macro (which is empty by default) allows to define a particular style -% for exercise titles. In the present document, we defined in the preamble: +% This macro, which is initially empty, enables the definition of a specific style +% for exercise titles. In this document, we have set the following in the preamble: % |\renewcommand{\labelexercisestyle}{\rmfamily\color{black}}| -% \footnote{In the present document, to highlight real sections and subsections titles, -% their color and font have been modified with the +% \footnote{In this document, real section and subsection titles have been highlighted by +% modifying their color and font using the % \texttt{\bs allsectionsfont} macro from the \textsf{sectsty} package.}. % % \medskip % \DescribeMacro{\exercise*} % The starred version |\exercise*|\oarg{opt}\marg{label} -% allows to choose another \meta{label} for a particular exercise -% and removes the numbering. For instance: -% |\exercise*[(Fermat's theorem)]{Problem}| yields: +% permits the selection of an alternative \meta{label} for a specific exercise +% while omitting the numbering. For instance: +% |\exercise*[(Fermat's theorem)]{Problem}| results in: % % \exercise*[(Fermat's theorem)]{Problem} % \psframe(-0.25,1.3)(12.75,-0.7) @@ -266,126 +273,132 @@ % 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 sub-subsection. +% An exercise may consist of multiple parts, which can be created using +% the |\subpart|\oarg{opt} command. +% The part title is typeset similar to a sub-subsection. +% % \exercise % \subpart[(preliminary)] % \psframe(-0.25,1.95)(12.75,-1.85) -% First of all, prepare your cup of tea. +% To begin, prepare your cup of tea. % \subpart -% Now you are ready to make the current exercise. -% +% Now you are ready to proceed with the current exercise. % \bigskip -% The following macros manage formatting in the same way as for |\exercise|. +% +% \pagebreak +% The following macros manage formatting in the same manner as for |\exercise|. % % \medskip % \DescribeMacro{\thesubpart} -% By default, the subpart numbering uses letters : A, B, C, etc. -% This numbering type can be redefined with the |\thesubpart| command based on -% the |subpart| counter, for instance |\renewcommand\thesubpart{\arabic{subpart}}|. +% By default, subpart numbering employs letters : A, B, C, and so on. +% This numbering style can be modified using the |\thesubpart| command, which relies on +% the |subpart| counter. For example, you can redefine it as follows: +% |\renewcommand\thesubpart{\arabic{subpart}}|. % +% \smallskip % \DescribeMacro{\subpartname} \DescribeMacro{\labelsubpart} % \DescribeMacro{\labelsubpartstyle} % The |\subpart| command -% uses |\subpartname| (with automatic translation in a few languages -% according to the selected language), -% |\labelsubpart| and |\labelsubpartstyle|, which can be changed. +% utilizes |\subpartname| (with automatic translation in several languages +% according to the chosen language), as well as +% |\labelsubpart| and |\labelsubpartstyle|, all of which can be modified. % % \medskip % \DescribeMacro{\subpart*} -% Like |\exercise*|, the starred version |\subpart*|\oarg{opt}\marg{label} -% allows to freely typeset the subpart \marg{label}, for instance -% |\subpart*{First part}|. +% Similar to |\exercise*|, the starred version |\subpart*|\oarg{opt}\marg{label} +% permits an alternative \meta{label} and omits the numbering. For instance, +% you can use |\subpart*{First part}|. % % \subsection{The \texttt{\bs annex} command} % \DescribeMacro{\annex} -% The |\annex|\oarg{opt} command typesets the title \textbf{ANNEX}, -% in uppercase letters, centered -% and in the subsection style, -% with an optional parameter, added on the same line. +% The |\annex|\oarg{opt} command composes the title \textbf{ANNEX} +% in uppercase letters, centered, using the subsection style, +% with an optional parameter that will be added on the same line. % % \vspace{-\baselineskip} % \noindent\psframe(-0.25,-0.3)(12.75,-1.3) -% \annex[(to return)] +% \annex[(to be returned)] % % \bigskip % \DescribeMacro{\annexname} -% The word ``\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. +% The term ``\annexname'' is automatically translated into several languages. +% It can be extended to additional languages or altered by redefining |\annexname| +% or by utilizing macros from the \textsf{translations} package. % +% \smallskip % \DescribeMacro{\annexstyle} -% The annex title style is set by the |\annexstyle| macro, -% defined as follows: |\newcommand\annexstyle{\MakeUppercase}|. -% This command may be redefined as one wants. +% The style of the annex title is determined by the |\annexstyle| macro, +% which is defined as follows: |\newcommand\annexstyle{\MakeUppercase}|. +% This command may be redefined according to your preferences. % -% \subsection{Exercise titles in table of contents} \label{toc} +% \subsection{Exercise titles in the table of contents} \label{toc} % \DescribeMacro{[exetoc=\meta{bool}]} % By default, the titles \textbf{\exercisename}, \textbf{\subpartname} -% or \textbf{\annexname}, appear in the table of contents -% (or in the pdf file summary when \textsf{hyperref} package is used). -% To avoid this, you can set the option \texttt{exetoc=false} (default is \texttt{true}). -% But notice that title optional arguments will always be ignored in the table of contents. +% and \textbf{\annexname} are included in the table of contents if there is any +% (or in the PDF file's summary when the \textsf{hyperref} package is utilized). +% To prevent this, you can set the package option \texttt{exetoc=false} +% (with the default being \texttt{true}). +% However, note that optional title arguments will always be ignored in the table of contents. % % \subsection{Short exercises: the \texttt{\bs exe} command} % \DescribeMacro{\exe} -% The |\exe| command starts an exercise by the abbreviation \textbf{\exname}.\ -% followed by the exercise number, -% without using sectioning commands, and the exercise body begins on the same -% line. An exercise starts a new paragraph without indentation. +% The |\exe| command initiates an exercise with the abbreviation \textbf{\exname}.\@ +% followed by the exercise number. This is achieved without +% utilizing sectioning commands, and the exercise content begins on the same +% line. An exercise begins a new paragraph without any indentation. % -% \exe This is a short exercise who -% can contain several paragraphs or questions however. +% \exe This is a brief exercise that can encompass several +% paragraphs or questions. % % \noindent\psframe(-0.25,1.4)(12.75,-1.2) -% \indent Here for example starts a new paragraph. -% \exe This is another short exercise. +% \indent Here for example a new paragraph begins. +% \exe This is another concise exercise. % % \bigskip % \DescribeMacro{\exname} \DescribeMacro{\exlabel} \DescribeMacro{\exsepmark} -% The abbreviation \textbf{\exname} may be changed by +% The abbreviation \textbf{\exname} can be modified by % 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. -% One can change these features by redefining these commands. +% The |\exlabel| macro combines |\exname| with a period then the exercise number +% (given by the \texttt{exercise} counter), +% while |\exsepmark| typesets a long dash. +% You can alter these characteristics by redefining these commands. % % \medskip % \DescribeMacro{\exe*} -% The starred version prints no separator as shown below: +% The starred version doesn't display a separator, as demonstrated below: % % \vspace{-\baselineskip} % \noindent\psframe(-0.25,-0.35)(12.75,-1.1) -% \exe* Another short exercise without separator. +% \exe* Another short exercise without a separator. % % \section{Enumerations and lists} % % \subsection{List settings} \label{setlist} % \DescribeEnv{enumerate} \DescribeMacro{\item} -% Enumeration lists are intended to represent questions and sub-questions -% inside exercises. For a good highlight, -% labels are typeset in bold. -% Moreover, they are left aligned, at the start of the line, -% without indentation, and the vertical space between items -% is increased compared with \LaTeX\ standard lists. -% These settings are done by the |\setlist| command -% \footnote{Labels may also be changed occasionally in an optional argument +% Enumeration lists are designed to represent questions and sub-questions +% within exercises. To provide clear emphasis, +% labels are formatted in bold. +% Additionally, these labels are aligned to the left, positioned at the start of the line +% without indentation, and the vertical spacing between items +% is increased compared to standard \LaTeX{} lists. +% These formatting adjustments are achieved using the |\setlist| command +% \footnote{Labels can also be modified by providing an optional argument, % \eg \texttt{\bs begin\{enumerate\}[A.]}, -% or globally thanks to \texttt{\bs labelenumi} -% and \texttt{\bs labelenumii} commands.} -% from the \textsf{enumitem} package of Javier Bezos. -% Lists with \texttt{itemize} environment are kept in their default +% or globally through the use of \texttt{\bs labelenumi} +% and \texttt{\bs labelenumii} commands.}, +% a feature from the \textsf{enumitem} package by Javier Bezos. +% Lists created with the \texttt{itemize} environment retain their default % configuration % \footnote{The \texttt{french} option of the \textsf{babel} package -% alters \texttt{itemize} lists behavior and uses long dashes +% changes the behavior of \texttt{itemize} lists and employs long dashes % as labels for each list level. -% This behavior is problematic when mathematics follows the dash -% symbol because the latter may be confused with the minus sign. -% Default \texttt{itemize} lists are restored.}. +% This behavior can cause issues when mathematical content follows the dash +% symbol, as it might be mistaken for the minus sign. +% The default \texttt{itemize} list style is reinstated to address this concern.}. % % \vspace{-\baselineskip} -% \noindent\psframe(-0.25,-0.35)(12.75,-3.6) +% \noindent\psframe(-0.25,-0.35)(12.75,-3.9) % \exercise % \begin{enumerate} % \item First question @@ -398,23 +411,24 @@ % % \smallskip % \DescribeMacro{[setlist=\meta{bool}]} -% One can avoid enumeration list alterations and restore \LaTeX\ -% default settings with the option |[setlist=false]| -% (default value is \texttt{true} of course). +% To prevent changes to enumeration lists and revert to the default \LaTeX{} +% settings, you can utilize the package option |setlist=false| +% (with the default value being \texttt{true} of course). % % \subsection{List of exercises : the \texttt{exenumerate} environment} % \DescribeEnv{exenumerate} -% When an exercise sheet is made of short independent questions, -% it would be ill-advised to display the complete title \textbf{\exercisename} for each. -% In addition to the |\exe| command, previously presented, -% we provide an even lighter solution with the |exenumerate| environment. -% It's only an enumeration list in which -% spaces between items are further increased compared to those of \texttt{enumerate}. -% Below is an example (the main list is an \texttt{exenumerate} environment but the -% sub-list is produced with common \texttt{enumerate} environments): +% When an exercise sheet consists of short, independent questions, +% it might be unreasonable to display the full title \textbf{\exercisename} for each one. +% In addition to the previously mentioned |\exe| command, +% we offer an even more streamlined solution using the |exenumerate| environment. +% This environment is essentially an enumeration list with increased spacing +% between items, compared to the \texttt{enumerate} environment. +% Here is an example (the main list uses the \texttt{exenumerate} environment, while the +% sub-list is created using the standard \texttt{enumerate} environment): % -% \vspace{-\baselineskip} -% \noindent\psframe(-0.25,-0.3)(12.75,-5.3) +% \pagebreak +% ^^A \vspace{-\baselineskip} +% \noindent\psframe(-0.25,-0.3)(12.75,-6) % \begin{exenumerate} % \item Translate the following sentences in English: % \begin{enumerate} @@ -424,47 +438,50 @@ % \item Translate the following sentence in German: % \par Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna, % vitae ornare odio metus a mi. -% \item Translate the following sentences in French: +% \item Translate the following sentence in French: % Cum sociis natoque penatibus % et magnis dis parturient montes, nascetur ridiculus mus. % \end{exenumerate} % % \medskip -% The environment takes an optional parameter, like \texttt{enumerate}, -% which enables, among others, -% to typeset alternative list labels, \eg +% The environment takes an optional parameter, similar to \texttt{enumerate}, +% that allows, among others things, +% the typesetting of alternative list labels, \eg % |\begin{exenumerate}[A.]|. -% There are many other options (see the \textsf{enumitem} package documentation). +% There are numerous other options available +% (refer to the \textsf{enumitem} package documentation for details). % -% \subsection{Items aligned by row: \texttt{tablenum1$\mid$a}, \texttt{tablitem}} +% \subsection{Items aligned by row: \texttt{tablenum1}, \texttt{tablenuma}, \texttt{tablitem}} % \DescribeEnv{tablenum1} % \DescribeEnv{tablenuma} % \DescribeEnv{tablitem} -% These three environments are used to typeset short questions (\texttt{tablenum1}), +% These three environments are employed to typeset brief questions (\texttt{tablenum1}), % sub-questions (\texttt{tablenuma}) or \texttt{itemize} lists (\texttt{tablitem}) -% on the same line. They have the same syntax: +% on the same line. They share the same syntax: % |\begin{tablenum1}|\oarg{opt}|(|\meta{cols}|)|. -% The \meta{cols} parameter is the number of columns used by the environment. It must be -% \emph{in parentheses}. This parameter can be omitted, then its value is 2. -% As for classic lists, each item begins with the |\item| command. -% -% These three environments are defined by the -% |\NewTasksEnvironment| macro, from the \textsf{tasks} package by Clemens Niederberger. -% They take an optional argument \meta{opt} -% explained in the documentation of this package, -% \eg |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 +% The \meta{cols} parameter denotes the number of columns utilized by the environment. +% It must be enclosed \emph{in parentheses}. +% This parameter can be omitted, in which case its default value is 2. +% Similar to conventional lists, each item is initiated with the |\item| command. +% +% These three environments are defined using the +% |\NewTasksEnvironment| macro from the \textsf{tasks} package by Clemens Niederberger. +% They accept an optional argument \meta{opt}, which is +% explained in the documentation of this package. +% For example, similar to the \texttt{enumitem} package, +% |label=\arabic*)| produces an Arabic numbering +% followed by a closing parenthesis. +% Additionally there are numerous possibilities for arranging items in original ways. +% For instance, the |\item*| command allows you to % specify the number of columns the item is supposed to span. -% In the following example, -% the five |\item| are placed in order between +% In the subsequent example, +% the five |\item| commands are sequentially positioned between % |\begin{tablenum1}(3)| and |\end{tablenum1}|. -% Notice that numbering is made line by line. +% It's important to notice that numbering occurs line by line in this context. % % \exercise -% \psframe(-0.25,1.3)(12.75,-2.7) -% Give the derivative of the following functions: +% \psframe(-0.25,1.3)(12.75,-2.8) +% Provide the derivative of the following functions: % \begin{tablenum1}(3) % \item $\ds f(x) = \frac{1-x^2}{\mathrm{e}^x +\mathrm{e}^{-x}}$, % \item $\ds g(x) = \ln \left( \frac{1-x}{1+x^2}\right)$, @@ -475,27 +492,55 @@ % % \smallskip % For \texttt{tablenuma}, labels are -% letters (a, b, c, \ldots) surrounded -% by parentheses. This cannot be modified globally, -% except by redefining the environment with |\RenewTasksEnvironment|. -% If the \textsf{exesheet} package is called with the option \texttt{setlist=false}, -% labels of \texttt{tablenum1} and \texttt{tablenuma} environments -% are displayed with indentation and in normal font instead of bold. +% letters (a, b, c, \ldots) enclosed in +% parentheses. This cannot be globally altered, +% except by redefining the environment using |\RenewTasksEnvironment|. +% If the \textsf{exesheet} package is invoked with the option \texttt{setlist=false}, +% labels within \texttt{tablenum1} and \texttt{tablenuma} environments +% will be presented with indentation and in regular font rather than bold. +% +% \medskip +% \DescribeEnv{tablenuma*} \DescribeEnv{tablitem*} +% When you intend to utilize \texttt{tablenuma} (or \texttt{tablitem}) +% immediately after inserting the |\item| command +% within an \texttt{enumerate} environment, +% a vertical misplacement occurs, as demonstrated in the following example: +% \begin{enumerate} +% \item +% \begin{tablenuma}(3) \item One \item Two \item Three \end{tablenuma} +% \end{enumerate} +% +% To achieve proper vertical spacing in such cases, we offer +% the starred environments \texttt{tablenuma*} and \texttt{tablitem*}, +% with corrected alignment as shown below: +% +% \noindent\psframe(-0.25,0.05)(12.75,-1) +% \psline[linewidth=0.1pt,linecolor=green,linestyle=dashed](0, -0.63)(10.5, -0.63) +% \begin{enumerate} +% \item +% \begin{tablenuma*}(3) \item One \item Two \item Three \end{tablenuma*} +% \end{enumerate} +% +% \medskip +% If the vertical alignment is still not optimal, include +% |\mbox{}\vspace|\marg{height} just before invoking |\begin{tablenuma*}| +% (or |\begin{tablitem*}|), where \meta{height} can be a positive or negative length. % % \subsection{Items aligned by column: \texttt{colsenum}, \texttt{colsitem}} % \DescribeEnv{colsenum} -% To get numbering of items by column, we provide the -% \texttt{colsenum} environment: |\begin{colsenum}|\oarg{opt}\marg{cols}. -% The mandatory parameter is the number of columns -% and the optional one will be passed to \texttt{enumerate}, -% allowing, for example, to change the type of numbering (a, A, etc.). -% To use this environment, we have to load the +% To achieve numbering of items by column, the +% \texttt{colsenum} environment is available: +% |\begin{colsenum}|\oarg{opt}\marg{cols}. +% The mandatory parameter is the number of columns, +% and the optional parameter will be passed to the \texttt{enumerate} environment, +% allowing you to change the numbering type (\eg a, A, etc.), among other possibilities. +% To use this environment, you need to load the % \textsf{multicol} package in the preamble. -% Here an example with |\begin{colsenum}{3}|: +% Here's an example with |\begin{colsenum}{3}|: % % \exercise % \psframe(-0.25,1.3)(12.75,-2.65) -% Give the derivative of the following functions: +% Provide the derivative of the following functions: % \begin{colsenum}{3} % \item $\ds f(x) = \frac{1-x^2}{\mathrm{e}^x +\mathrm{e}^{-x}}$, % \item $\ds g(x) = \ln \left( \frac{1-x}{1+x^2}\right)$, @@ -506,18 +551,19 @@ % % \medskip % \DescribeEnv{colsenum*} -% We will notice that, on each line, items are not necessarily well -% aligned, which can produce inelegant effects. -% On the other hand, the \texttt{colsenum} environment doesn't try to align columns -% from the bottom by adjusting space between items. -% If we want to get this -% (which is the default option in \textsf{multicol}), we have the -% \texttt{colsenum*} environment (same syntax than \texttt{colsenum}). -% Here what we get in that case, with the same exercise: +% We will observe that, on each line, items are not necessarily properly +% aligned, which can result in ungraceful effects. +% On the other hand the \texttt{colsenum} environment doesn't attempt to align columns +% from the bottom by adjusting the spacing between items. +% If we desire this alignment +% (which is the default behavior in \textsf{multicol}), we can use the +% \texttt{colsenum*} environment (with the same syntax as \texttt{colsenum}). +% Here's what we obtain with \texttt{colsenum*}, using the same exercise: % +% \pagebreak % \exercise % \psframe(-0.25,1.3)(12.75,-2.65) -% Give the derivative of the following functions: +% Provide the derivative of the following functions: % \begin{colsenum*}{3} % \item $\ds f(x) = \frac{1-x^2}{\mathrm{e}^x +\mathrm{e}^{-x}}$, % \item $\ds g(x) = \ln \left( \frac{1-x}{1+x^2}\right)$, @@ -527,25 +573,25 @@ % \end{colsenum*} % % \medskip -% We can see that these alignments are less good than those -% obtained by row numbering. The column numbering -% may nevertheless be preferable when there are many items with variable heights, -% and a number of items which can be different from one column to the other. -% Moreover, an advantage of \texttt{colsenum} is that the choice of labels -% is automatic depending on the list level (and the language), +% We can observe that these alignments are not as elegant as those +% achieved through row numbering. However, column numbering +% might still be more suitable when dealing with numerous items of varying heights, +% and especially when the number of items can differ from column to column. +% Additionally, a benefit of \texttt{colsenum} is that the label selection +% is automatic based on the list level (and the language), % unlike \texttt{tablenum1} or \texttt{tablenuma}. % % \bigskip % \DescribeEnv{colsitem} % \DescribeEnv{colsitem*} -% For \texttt{itemize} lists, the environment \texttt{colsitem} -% produces items aligned by column rather than by lines as for -% \texttt{tablitem}: +% For \texttt{itemize} lists, the \texttt{colsitem} environment +% generates items aligned by column, unlike the line-by-line alignment of +% \texttt{tablitem}. To use it, simply employ % |\begin{colsitem}|\oarg{opt}\marg{cols}. The optional parameter, -% which is passed to the underlying \texttt{itemize} environment, -% allows to change the item label (bullet by default). -% And, as for \texttt{colsenum*}, the \texttt{colsitem*} environment -% produces an alignment of columns from the bottom. +% passed to the underlying \texttt{itemize} environment, +% permits the modification of the item label (bullet by default). +% Furthermore, just like \texttt{colsenum*}, the \texttt{colsitem*} environment +% produces column alignment from the bottom. % % \section{Questions and solutions} % @@ -553,58 +599,63 @@ % \label{output} % % \DescribeEnv{questions} \DescribeEnv{answers} -% The package provides the two environments \texttt{questions} and \texttt{answers} -% to make optionally appear or disappear questions and answers of exercises. +% The package offers two environments, \texttt{questions} and \texttt{answers}, +% which allow you to optionally show or hide questions and answers within exercises. % % \bigskip % \DescribeMacro{[output=\meta{opt}]} -% The output is controlled by the \texttt{output} key option: it takes three -% recognized values: \texttt{questions}, \texttt{answers}, \texttt{both}. -% The \texttt{questions} value allows to display questions without answers, -% \texttt{answers} displays answers without questions, -% \texttt{both} (the default option) displays both. +% The output is governed by the \texttt{output} key option which recognizes three +% values: \texttt{questions}, \texttt{answers}, and \texttt{both}. +% The \texttt{questions} value shows only questions without answers, +% \texttt{answers} displays answers without questions, and +% \texttt{both} (the default option) displays both questions and answers. % % \bigskip % \DescribeMacro{\correctionstyle} \DescribeMacro{correctioncolor} +% In the default case where both questions and answers are displayed, +% the answers are typeset using the |\correctionstyle| style, +% which utilizes the color \texttt{correctioncolor}. +% You can modify this color using the |\definecolor| macro +% \footnote{The \texttt{\bs definecolor} command is provided by the \textsf{xcolor} package +% developed by Uwe Kern, which is automatically loaded by \textsf{exesheet}.}. +% By default, |\definecolor{correctioncolor}{rgb}{0,0.2,0.6}| is used, +% resulting in a kind of dark blue. +% +% \medskip % \DescribeMacro{\correctionname} -% 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 changed with the |\definecolor| macro -% \footnote{from the \textsf{xcolor} package by Uwe Kern -% which is loaded by \textsf{exesheet}.} -% (by default |\definecolor{correctioncolor}{rgb}{0,0.2,0.6}| = kind of dark blue). -% Moreover, with \texttt{output=both} +% Furthermore, when using \texttt{output=both} % the title \textbf{\correctionname} is displayed at the beginning % of \texttt{answers} environments. -% It is defined by the |\correctionname| macro (with translation in a few languages -% and that can changed: -% for example you may prefer ``Solution'' -% than ``\correctionname''). -% The style defined by |\correctionstyle| will apply to the title -% as for the whole environment. -% Here an example. +% This title is defined by the |\correctionname| macro, +% with translation available in several languages, and it can also be modified. +% For instance you might prefer ``Solution'' +% over ``\correctionname''. +% The style defined by |\correctionstyle| will be applied to the title +% as well as the entire environment. +% Here's an example to illustrate this: % -% \vspace{-\baselineskip} -% \noindent\psframe(-0.25,-0.25)(12.75,-6.7) +% \pagebreak +% ^^A \vspace{-\baselineskip} +% \noindent\psframe(-0.25,-0.25)(12.75,-6.9) % \exercise % \begin{questions} % \begin{enumerate} % \item Is the \textsf{exesheet} package useful ? -% \item Isn't there any other packages that deal with exercises ? +% \item Aren't there any other packages that deal with exercises ? % \end{enumerate} % \end{questions} % \begin{answers} % \begin{enumerate} -% \item Yes, the \textsf{exesheet} package is useful for teachers. -% \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, +% \item Yes, the \textsf{exesheet} package is indeed useful for teachers. +% \item There are numerous other packages that handle exercises and +% provide the capability to create questions and solutions separately. +% For instance the +% \textsf{exercise} package by Paul Pichaureau, \textsf{exercises} by Roger Jud, +% \textsf{exsheets} (now superseded by \textsf{xsim}) by Clemens Niederberger, % \textsf{exframe} by Niklas Beisert, % \textsf{exam} by Philip Hirschhorn, % \textsf{answers} by Mike Piff and Joseph Wright, -% \textsf{probsoln} by Nicola Talbot, etc. +% \textsf{probsoln} by Nicola Talbot, and more. % \end{enumerate} % \end{answers} % @@ -613,235 +664,242 @@ % the word ``\correctionname'' is not displayed. % % \subsection{About the title ``\correctionname'' in \texttt{answers} environments} -% Internally, we have used the |\comment| and |\endcomment| macros +% Internally, we have utilized the |\comment| and |\endcomment| macros % from the \textsf{versions} package by Uwe Lück. -% Other excellent packages allow to manage -% selectively piece of code. Let us mention -% \textsf{verbatim} by Rainer Schöpf, \textsf{comment} by Victor Eijkhout, +% Several other outstanding packages also enable selective management of code portions. +% Notably, the \textsf{verbatim} package by Rainer Schöpf, +% \textsf{comment} by Victor Eijkhout, % \textsf{version} by Donald Arseneau and Stephen Bellantoni, % \textsf{optional} by Donald Arseneau % and \textsf{codesection} by Matthias Pospiech. % -% The \textsf{versions} package provides furthermore +% Moreover the \textsf{versions} package includes % the |\includeversion|\marg{env} and -% |\excludeversion|\marg{env} macros who allow to make appear or disappear -% any environment \meta{env} and these optional environments -% may be nested -% \footnote{The \textsf{codesection} package also allows -% such nesting, including in the preamble, as well as -% the \textsf{optional} package, but the latter manages only short optional code.}. +% |\excludeversion|\marg{env} macros which allow for the inclusion or exclusion of +% any environment \meta{env}. These ``optional'' environments +% can be nested +% \footnote{The \textsf{codesection} package also supports +% such nesting, including within the preamble, as well as +% the \textsf{optional} package, but the latter manages only short sections of optional code.}. % % However the \texttt{questions} and \texttt{answers} environments -% perform another task, not only making appear or disappear piece of text. -% In what format should the output yield the title \textbf{\correctionname} -% and at which level should it be put in the table of contents -% (or in the summary of the pdf file)? -% In fact it depends on which level the environment has been nested. -% We can make a single \texttt{answers} environment for the whole -% sheet or an \texttt{answers} environment -% for each exercise, for each exercise part, for each question or sub-question. -% In fact, the typeset of the title \textbf{\correctionname} -% and his level in the table of contents will be computed by the environment. +% serve a broader purpose beyond merely displaying or hiding text. +% For instance, you can choose to have a single answers environment +% for the entire sheet, or alternatively, have separate answers environments +% for each exercise, exercise part, question, or sub-question. +% The format in which the title \textbf{\correctionname} should appear +% in the output, and its placement in the table of contents +% or PDF file summary, depends on the nesting level of the environment. +% In fact, the rendering of the \textbf{\correctionname} title and its corresponding +% table of contents level will be automatically calculated by the environment. % % \medskip % \DescribeEnv{answers\oarg{level}} -% Nevertheless, one can imagine twisted situations in which -% the title level will not be correct. -% Moreover, the user may want to change the level of the title. -% It is then possible to force the level of the title ``\correctionname'' -% with |\begin{answers}|\oarg{level}. +% However, there are perhaps twisted situations in which +% the title level may not always be accurate. +% Furthermore, users might wish to adjust the title's level themselves. +% To achieve this, you can manually set the level of the title ``\correctionname'' +% using |\begin{answers}|\oarg{level}. % The optional \meta{level} parameter is defined as follows: -% 1 for section level titles, -% 2 for subsections (like \textbf{\exercisename}), -% 3 for sub-subsections (like \textbf{\partname}), -% another number for lower levels -% (that will not appear in the table of contents). +% 1 for section-level titles, +% 2 for subsections (akin \textbf{\exercisename}), +% 3 for sub-subsections (similar to \textbf{\partname}), +% other numbers for lower levels +% (which won't appear in the table of contents or in the PDF file’s summary). % -% \pagebreak +% \smallskip % \DescribeMacro{answers*} -% The starred version \texttt{answers*} makes the title -% \textbf{\correctionname} completely disappear. +% The starred version \texttt{answers*}, completely hides the +% \textbf{\correctionname} title. % % \subsection{Commands \texttt{\bs question}, \texttt{\bs answer} and \texttt{\bs answerspace}} % \label{answerspace} % \DescribeMacro{\question}\DescribeMacro{\answer} -% Instead of \texttt{questions} and \texttt{answers} environments, -% we can also use simple |\question|\marg{ques} and |\answer|\marg{ans} macros -% in which display of \meta{ques} and \meta{ans} arguments -% are controlled by the same previous key option \texttt{output=\meta{opt}}. -% It may be more suitable when questions and answers are short, for instance -% if you want to display the answer after each question item. -% The title ``\correctionname'' will not appear on the beginning -% of each answer; answers are typeset with |\correctionstyle| +% Instead of using \texttt{questions} and \texttt{answers} environments, +% we can also employ the simpler |\question|\marg{ques} and |\answer|\marg{ans} macros. +% The visibility of \meta{ques} and \meta{ans} content is +% regulated by the same previous \texttt{output=\meta{opt}} key option. +% This approach might be more fitting for brief questions and answers, such as when +% you wish to display the answer immediately after each question item. +% The title ``\correctionname'' won't appear at the start +% of each answer with the |\answer| macro. +% The answers are formatted using |\correctionstyle| % if \texttt{output=both}. -% But these commands don't work with \texttt{verbatim} text inside, -% whereas \texttt{questions} and \texttt{answers} environments allow that. +% However these commands do not support \texttt{verbatim} text within them, +% unlike the \texttt{questions} and \texttt{answers} environments which do. % % \bigskip % \DescribeMacro{\answerspace} -% Some teachers are used to give to their students documents in which questions are typeset -% but instead of answers you have blank space, so that the paper is intended to be -% fulfilled by the students. -% For this purpose, thanks to a suggestion of Maxime Chupin, -% we provide the macro |\answerspace|\oarg{height}, -% in which the parameter height is a valid length, \eg |\answerspace{3cm}|. +% Some teachers are accustomed to providing their students with documents +% where questions are typeset, leaving blank spaces instead of answers. +% This layout allows students to fill in their responses on the paper. +% To achieve this, thanks to a suggestion from Maxime Chupin, +% we offer the |\answerspace|\marg{height} macro, +% in which the parameter \meta{height} is a valid length, +% \eg |\answerspace{3cm}|. % +% \medskip % \DescribeMacro{[answerspace=\meta{bool}]} -% This vertical space display is optional and is controlled by the key -% \texttt{answerspace} which can be \texttt{true} or \texttt{false} (by default). -% Of course this macro is not intended to be placed inside \texttt{answers} -% environments, but anywhere else. +% The blank spaces introduced by |\answerspace| can be displayed +% or hidden, controlled by the +% \texttt{answerspace} option key, which can be set to either +% \texttt{true} or \texttt{false} (the default). +% Of course the |\answerspace| macro is not meant to be used within \texttt{answers} +% environments. % % \section{Marginal notes for marking scheme} % -% The \textsf{exesheet} package allows to display in margins a marking -% scheme with comments and explanations about answers. +% The \textsf{exesheet} package enables the display of a detailed marking +% scheme in the margins, along with comments and explanations about answers. % % \subsection{The \texttt{\bs points} command}\label{points} % \DescribeMacro{\points} % The |\points|\marg{pts} command displays the number of points awarded for an exercise. -% It is intended to be entered in the optional argument of the +% It is intended to be included in the optional argument of the % |\exercise| command -% \footnote{Using this command in the optional argument of -% \texttt{\bs exercise} is incompatible with -% the \textsf{memoir} class which redefines section commands.}. -% For instance -% |\exercise[\points{5}]| yields: +% \footnote{However using this command in the optional argument of +% \texttt{\bs exercise} is not compatible with +% the \textsf{memoir} class, as the \textsf{memoir} class redefines section commands.}. +% In the following example, we used +% |\exercise[\points{5}]|: % \exercise[\points{5}] % \psframe(-0.25,1.3)(12.75,-0.4) % Try to read this document to the end without drinking tea and you get five points. % % \bigskip -% When only correction is displayed in an exercise, the |\points| macro is patched -% to suppress the display of points. -% An extended solution for printing answers with the scale will be presented -% in section \ref{totalpoints}, including a new |\totalpoints| macro. +% When only the correction is displayed in an exercise, the |\points| macro doesn't +% show the points. +% A more comprehensive solution for printing answers along with the point scale +% will be presented +% in section \ref{totalpoints}, which includes another |\totalpoints| macro. % % \bigskip % \DescribeMacro{\pointsname} \DescribeMacro{\pointname} -% The word ``\pointsname'' (or in the singular ``\pointname'' -% if \meta{pts} is inferior to 2), is added and, like before, -% gets automatic translation in a few languages -% (and can be changed). +% The term ``\pointsname'' (or ``\pointname'' in the singular +% if \meta{pts} is less than 2), is appended and +% is automatically translated into several languages +% (and can also be modified). % +% \smallskip % \DescribeMacro{\pointsstyle} \DescribeMacro{pointscolor} -% The style used by the |\points| command may be redefined with |\pointsstyle|. -% The color is set by |pointscolor| with the |\definecolor| command, -% and you can change it, -% \eg: |\definecolor{pointscolor}{named}{blue}|. +% You can adjust the |\points| command's style through |\pointsstyle|. +% The color setting (red by default) is managed by |pointscolor| using |\definecolor|, +% for example you can declare: |\definecolor{pointscolor}{named}{blue}|. % % \subsection{The \texttt{\bs pts} command} \label{pts} % \DescribeMacro{\pts} -% When exercises are typeset with the |\exe| macro, +% When exercises are typeset using the |\exe| macro % or as a list with the \texttt{exenumerate} environment, -% the marking scheme can be displayed in the margin, on the line where -% we put the |\pts|\marg{num} command (in general the first line of the exercise). -% The \meta{num} parameter is the number of points assigned to the exercise. -% Below what we obtain with with |\exe\pts{3}... \exe\pts{1.5}...| +% the marking scheme can be shown in the margin, aligned with the line where +% the |\pts|\marg{num} command is placed (typically the first line of the exercise). +% The \meta{num} parameter represents the number of points assigned to the exercise. +% Here's an example with |\exe\pts{3}... \exe\pts{1.5}...| % % \vspace{-\baselineskip} % \noindent\psframe(-3.0,-0.25)(12.75,-1.95) -% \exe \pts{3} The first exercise with a marking scheme. +% \exe \pts{3} The first short exercise with a marking scheme. % \exe \pts{1.5} The second one. % % \bigskip % \DescribeMacro{\ptsname} \DescribeMacro{\ptname} % \DescribeMacro{ptscolor} \DescribeMacro{\ptsstyle} % The abbreviation ``\ptsname'' (or ``\ptname'' -% when the number of points is inferior to 2) -% is automatically added with macros |\ptsname| or |\ptname| -% (translated in a few languages if \textsf{babel} ore \textsf{polyglossia} are loaded). -% The display color of the points is defined by \texttt{ptscolor}, which can be changed -% with |\definecolor|: by default |\definecolor{ptscolor}{named}{red}|. -% The display style is defined by |\ptsstyle|: among other things, it adds parenthesis around. +% when the number of points is less than 2) +% is added automatically using |\ptsname| or |\ptname| macros +% (translated in several languages +% if \textsf{babel} or \textsf{polyglossia} is loaded). +% The point's display color is defined by \texttt{ptscolor}, changeable via +% |\definecolor| (red by default). +% The display style is determined by |\ptsstyle|, which among other things, +% adds parenthesis around. % % \bigskip % \DescribeMacro{[display=\meta{opt}]} -% The display of the marking scheme is controlled by the -% option key \texttt{display}. -% By default |display=none| and the marking scheme will not be displayed. -% Use |display=pts| to make it appear. -% More details about this key are given in \ref{margin}. +% The marking scheme visibility is controlled by the +% \texttt{display} option key. +% The default option is |display=none|, keeping the marking scheme hidden. +% To reveal the marking scheme, use |display=pts|. +% More details are available in section \ref{margin}. % % \medskip % \DescribeMacro{[marginpos=\meta{opt}]} -% The side where to place the scale is controlled by the |marginpos| key option -% whose possible values are (first) \texttt{left} or \texttt{right}. -% The default is \texttt{left} -% (although the default behavior of \LaTeX{} is to place marginal notes on the right side). -% This option has no effect when -% |display=none|. -% -% For a \emph{two side} document, the default behavior is to typeset text in the outer margin -% which will be enlarged relatively to the inner margin (that contains the binding). -% The outer margin is on the right hand side for odd pages and on the left hand side -% for even pages. So the \texttt{marginpos} key option can take those two additional -% values. -% When you give a \texttt{left} or \texttt{right} value with a two side document, -% it will be converted to default value, \texttt{outer}, with a warning message. +% The positioning of the scale is determined by the |marginpos| option key, +% typically \texttt{left} or \texttt{right}. +% The default value is \texttt{left} +% even though \LaTeX{} positions marginal notes on the right side by default. +% This option has no impact when |display=none|. +% +% For a two-sided document, the default behavior is to place text in the outer margin, +% which is wider than the inner margin (that contains the binding). +% The outer margin aligns with the right side on odd pages and with the left side +% on even pages. Therefore, the \texttt{marginpos} option can also take the +% values \texttt{inner} or \texttt{outer}. +% If you specify \texttt{left} or \texttt{right} when the \texttt{twoside} mode is activated, +% this value will be converted to \texttt{outer}, accompanied by a warning message. % % \medskip -% \DescribeMacro{twoside mode} -% For a document is in twoside mode, marginal notes sometimes appear on the wrong -% side of a page. This is a known bug of \LaTeX\ for which the solution -% is to call the package \textsf{mparhack} (what is done by \textsf{exesheet} -% for a twoside mode document) and to \emph{run \LaTeX\ twice}. -% If necessary you get a warning message to rerun. +% With the \texttt{twoside} mode, marginal notes might occasionally +% appear on the wrong side of a page. +% This is a known \LaTeX{} bug, and the solution involves using +% the \textsf{mparhack} package (which \textsf{exesheet} automatically includes +% for documents in two-side mode) and \emph{running \LaTeX{} twice}. +% If necessary, a warning message will prompt you to perform the re-run. % % \subsection{Commands \texttt{\bs totalexe}, \texttt{\bs note*} and \texttt{\bs note}} % % \label{note} -% To give a more detailed marking scheme, we get -% the following commands. +% For a more comprehensive marking scheme, the following commands are available. % % \medskip % \DescribeMacro{\totalexe} -% |\totalexe|\marg{num} displays the total number of points of an exercise, -% by default inside an oval box, with the word ``\ptsname'' (or ``\ptname'') -% added and in bold red. -% In the next example, the exercise title has been obtained with |\exercise[\totalexe{4}]|. +% The |\totalexe|\marg{num} macro displays the total number of points of an exercise. +% By default, it appears inside an oval box, with the addition of the word +% ``\ptsname'' (or ``\ptname'') in bold red. +% In the following example, the exercise title has been generated +% using |\exercise[\totalexe{4}]|. % % \medskip % \DescribeMacro{\note*} -% For each answer or solution in the correct version, the command -% |\note*|\marg{num} states the number of points of that question. -% The appearance is somewhat different from the one obtained with |\pts|: -% by default the number is displayed without being followed by ``\ptsname'' or ``\ptname'', -% without parenthesis, and in bold. -% In the answer 3 of the next example, just after |\item|, we used: |\note*{1.5}|. +% For each answer or solution in the correct version, the +% |\note*|\marg{num} command indicates the number of points allocated to that question. +% The appearance slightly varies compared to |\pts|: +% by default the number is displayed in bold without the ``\ptsname'' or ``\ptname'' suffix, +% and without parenthesis. +% In the following example, for answer 3, +% we employed |\note*{1.5}|, placed right after |\item|. % % \medskip % \DescribeMacro{\note} -% The |\note|\marg{comment} macro is used to give details about the marking scheme -% and to indicate how points are awarded. -% In a comment argument you can use |\\| to get a line break, -% or even |\\[|\meta{height}|]| to increase the line break from \meta{height}. +% The |\note|\marg{comment} macro is utilized to provide additional information +% regarding the marking scheme and to explain how points are assigned. +% In the \meta{comment} argument you can use |\\| to create a line break +% or even |\\[|\meta{height}|]| to adjust the line spacing by \meta{height}. % % \DescribeMacro{\note\oarg{num}} -% It is often convenient to put |\note*|\marg{num}|\note|\marg{comment} -% at the beginning of an answer. In that case \LaTeX\ will place the margin -% notes one under the other and will protest with: -% \texttt{LaTeX Warning: Marginpar on page \ldots\@ moved.} \\ -% This is not a real problem because generally \LaTeX\ is able to -% manage the placement of these -% marginal notes, one below the other. Nevertheless, one can avoid unnecessary protests by -% compacting both commands in a single one and typing the number of points -% as an optional argument of note: +% Placing |\note*|\marg{num}|\note|\marg{comment} +% at the beginning of an answer is often practical. +% In such cases \LaTeX{} will align the margin +% notes vertically, which leads to a warning like: +% \texttt{LaTeX Warning: Marginpar on page \ldots\@ moved.} +% However, this warning is not an issue, as \LaTeX{} can usually handle the arrangement +% of these marginal notes, stacking them one below the other. +% Nonetheless, to prevent unnecessary warnings, you can combine both commands into a +% single one by specifying the number of points as an optional argument of the |\note| command: % |\note|\oarg{num}\marg{comment}. % -% The first comment on the following example is obtained (just after |\item|) with\\ +% The initial comment in the following example is generated (immediately after |\item|) using % |\note[1]{0.5 for the anti-derivative\\0.5 for simplifying}|. % % \exercise[\totalexe{4}] \label{totalexe} % \begin{questions} % \psframe(-3.5,1.3)(12.75,-14) -% For each following question, say if the assertion is true or false. -% Justify the answer carefully. +% For each subsequent question, determine whether the statement is true or false. +% Provide a thorough justification for your answer. % \begin{tablenum1} % \item $\ds \int_{0}^{\sqrt{3}}\frac{1}{x+\sqrt{3}} \,\mathrm{d}x = \ln 2$, % \item $\ds \int_{2}^{\mathrm{e}} \frac{1}{x\ln x} \,\mathrm{d}x = -\ln 2$, -% \item* The function $F$ defined on $\mathbf{R}$ by -% $F(x) = \ds \int_{0}^{x}\frac{1}{t^2+t+1}\,\mathrm{d} t$ is increasing on $\mathbf{R}$. +% \item* The function $F$, defined on $\mathbf{R}$ by +% $F(x) = \ds \int_{0}^{x}\frac{1}{t^2+t+1}\,\mathrm{d} t$, is increasing on $\mathbf{R}$. % \end{tablenum1} % \end{questions} % @@ -857,8 +915,8 @@ % \] % \textbf{TRUE}. % -% \item \note[1.5]{1 for the anti-derivative \\0.5 for final value \\[2ex] -% other method: $\frac{1}{x \ln x} >0$ on $[2, \mathrm{e}]$ +% \item \note[1.5]{1 for the anti-derivative \\0.5 for the final value \\[2ex] +% Other method: $\frac{1}{x \ln x} >0$ on $[2, \mathrm{e}]$ % whereas $-\ln2<0$ % } % We have $\ds\frac{1}{x \ln x}= \frac{\frac{1}{x}}{\ln x}= \frac{u'(x)}{u(x)}$ @@ -871,8 +929,8 @@ % \textbf{FALSE}. % % \item \note*{1.5} -% The function $F$ defined on $\mathbf{R}$ by -% \[ F(x)= \int_{0}^{x}\frac{1}{t^2+t+1}\, \mathrm{d}t \] +% The function $F$, defined on $\mathbf{R}$ by +% \[ F(x)= \int_{0}^{x}\frac{1}{t^2+t+1}\, \mathrm{d}t, \] % is derivable on $\mathbf{R}$ and its derivative is such that % $F'(x)=\frac{1}{x^2+x+1}$. % \note{0.5 for $F'$\\1 for the sign of $F'$ and conclusion} @@ -882,164 +940,167 @@ % \textbf{TRUE}. % \end{enumerate} % \end{answers} -% In the comment of answer 2, a wider vertical space is produced at line break -% with the optional argument |\\[2ex]|. -% The last comment, not placed beside the number of points of answer 3, -% has been produced by placing on the first line after the formula: +% In the comment for answer 2, a larger vertical space is created with +% the optional argument |\\[2ex]| for line break. +% The last comment, which isn't positioned next to the points number, +% was produced by placing the following on the first line after the formula: % |\note{0.5 for $F'$\\1 for the sign of $F'$ and conclusion}|. % % \medskip % \DescribeMacro{markingcolor} \DescribeMacro{\markingstyle} \DescribeMacro{\ptsboxlength} -% The points display color, in |\totalexe| and |\note*|, -% is defined by \texttt{markingcolor} -% 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), +% The color and style for displaying points in |\totalexe| and |\note*| +% can be customized using \texttt{markingcolor} and |\markingstyle|, respectively. +% The oval box produced by |\totalexe| is created using the |\ovalbox| command +% from the \textsf{fancybox} package (by Timothy Van Zandt), % with corner arcs set by |\cornersize{1}|. -% The length of the box is not adjusted to content but depends on the value -% of |\ptsboxlength| in order to keep uniform appearance -% from one exercise to the other. +% The box's length is determined by +% |\ptsboxlength|, and not by the box's content, to ensure uniformity across exercises. % % \medskip % \DescribeMacro{notecolor} \DescribeMacro{\notestyle} -% Comment notes are typeset by default in a dark green color +% By default, comment notes are typeset in a dark green color % defined by |\definecolor{notecolor}{rgb}{0.0,0.4,0.0}|. -% The style of the comment is set by the |\notestyle| macro. +% The style of the comment is determined by the |\notestyle| macro. % % \subsection{Margin notes options} \label{margin} % % \DescribeMacro{[display=\meta{opt}]} -% The \texttt{display} key option controls how the marking scheme -% will be displayed: as seen previously (subsection \ref{pts}), -% \texttt{display=none} displays nothing. With \texttt{display=pts} -% the numbers passed as argument to |\pts|, |\totalexe|, |\note*| -% or as optional argument of |\note|\oarg{num}\texttt{\{...\}} will be displayed. -% The last possible value is \texttt{display=notes} which displays the full marginal -% notes with points and comments (the mandatory argument of |\note|) -% as seen in the previous example. +% The \texttt{display} key option governs the presentation of the marking scheme: +% as discussed previously (subsection \ref{pts}), +% \texttt{display=none} shows nothing. When using \texttt{display=pts} +% the numbers provided as arguments to |\pts|, |\totalexe|, |\note*| +% or as optional arguments of |\note|\oarg{num}\texttt{\{...\}} will be exhibited. +% The final option is \texttt{display=notes} which reveals the complete marginal +% notes, containing points and comments (the mandatory argument of |\note|), +% as illustrated in the previous example. % % \medskip % \DescribeMacro{[marginpos=\meta{opt}]} -% As seen previously in subsection \ref{pts}, the side where to place the scale is controlled -% by the \texttt{marginpos} key option -% whose possible values are \texttt{left} and \texttt{right} -% (or \texttt{inner} and \texttt{outer} if the document is in two side mode). +% As previously mentioned in subsection \ref{pts}, the side on which +% to position the scale is determined by the \texttt{marginpos} key option, +% with possible values of \texttt{left} and \texttt{right} +% (or \texttt{inner} and \texttt{outer} if the document is in \texttt{twoside} mode). % % \medskip % \DescribeMacro{[marginwidth=\meta{opt}]} -% The key option \texttt{marginwidth} controls margins layout. -% The possible values are -% \texttt{standard}, \texttt{expand} or \texttt{unset}. +% The margin layout is governed by the \texttt{marginwidth} key option, +% which can take one of the following values: +% \texttt{standard}, \texttt{expand}, or \texttt{unset}. % % This option has no effect when \texttt{display=none}. -% In that case, left and right margins have same width, -% except for a two side mode document for which the ratio between left and right -% margin is 2:3. -% Otherwise the key \texttt{marginwidth} acts as follow: +% In this case, both the left and right margins have the same width, +% except in a two-sided document where the ratio between the left and right +% margins is 2:3. +% Otherwise the \texttt{marginwidth} key option behaves as follows: % \begin{description} % \item[\texttt{standard}] -% The left margin is enlarged and the -% right one is reduced, with a ratio of 3:2 (or 2:3 if \texttt{marginpos=left}). -% The text body is shifted without altering the text width. -% The margin paragraph width remains relatively short; it depends also on page geometry. -% This option is not suitable for verbose comments. +% The left margin is widened, and the +% right margin is reduced, with a ratio of 3:2 (or 2:3 if \texttt{marginpos=right}). +% The text body is shifted without changing its width. +% The margin paragraph width remains relatively short +% (depends on page geometry). +% This option is not ideal for lengthy comments. % -% \item[\texttt{expand}] It is the default value. -% The behavior is the same than with the -% \texttt{standard} value if \texttt{display=pts}, but if \texttt{display=notes} -% the margin is expanded with a ratio of 3:1 (or 1:3) and margin paragraph width -% is increased. -% -% \item[\texttt{unset}] The previous settings may not suit to anyone, -% so you have this other option. -% In that case, no setting will be proceeded on the margin width and you -% can make your own setting. For that, you have the convenient macro |\geometry| +% \item[\texttt{expand}] (default value)\enskip +% The behavior is the same as with the +% \texttt{standard} value when \texttt{display=pts}. However, when \texttt{display=notes}, +% the margin expands with a ratio of 3:1 (or 1:3) and the width of margin paragraphs +% increases. +% +% \item[\texttt{unset}] This option is provided for cases where the previous settings +% are not suitable. +% In this case, no adjustments are made to the margin width. Instead, you can define +% your own settings using the convenient |\geometry| macro % from the \textsf{geometry} package (by Hideo Umeki). -% For example you can put in the preamble +% For instance, you can place the following in the preamble: % \centeredline{|\geometry{hmarginratio=2:1,marginparwidth=2.5cm}|.} % -% If \texttt{marginpos=right}, you must invert the ratio, \eg 1:2 instead of 2:1. +% If \texttt{marginpos=right}, you need to invert the ratio, \eg 1:2 instead of 2:1. % If \texttt{marginwidth} is not set to \texttt{unset}, % such a command will have no effect. % \end{description} -% The margin settings are valid -% for the whole document and must be set in the preamble. +% Margin settings are applicable to the entire document +% and need to be configured in the preamble. % % \medskip % \DescribeMacro{[noteragged=\meta{opt}]} -% For the mandatory argument of |\note|, text alignment in margins -% is controlled by the package option \texttt{noteragged}, -% which can take the following values: +% The package option \texttt{noteragged} controls the text alignment within the margins +% for the mandatory argument of |\note|. +% It offers the following values: % \texttt{left}, \texttt{right}, \texttt{center}, \texttt{justify} or \texttt{twoside}. -% The default value is \texttt{noteragged=left}. It means that the text -% is right aligned, which is a common behavior for text in the left margin; -% \texttt{noteragged=right} yields a left aligned text; -% \texttt{justify} means that the text is justified, which is the default setting -% of \LaTeX\ marginal notes. -% Finally \texttt{noteragged=twoside} is equivalent to \texttt{noteragged=left} for odd pages -% and \texttt{noteragged=right} for even pages, if the document is in two side mode. -% It has no effect otherwise (the default value \texttt{noteragged=left} will be taken -% and a warning message appears in the shell). +% The default value is \texttt{noteragged=left}, resulting in right-aligned text, +% which is common for text in the left margin. +% When \texttt{noteragged=right}, the text is left-aligned text. +% Using \texttt{justify} makes the text justified, aligning with +% \LaTeX's default behavior for marginal notes. +% Finally \texttt{noteragged=twoside} aligns text to the left on odd pages +% and to the right on even pages in a two-sided document. +% It has no effect otherwise (the default \texttt{noteragged=left} is used +% and a warning message appears in the terminal). % % When \texttt{display} is not set to \texttt{notes}, the \texttt{noteragged} option -% has no effect because it concerns only text put in mandatory argument of |\note|. +% has no impact, as it specifically applies to text within the mandatory argument of |\note|. % % \subsection{The \texttt{\bs totalpoints} command} \label{totalpoints} % % \DescribeMacro{\totalpoints} -% The |\totalpoints|\marg{num} macro is intended -% to replace |\points| when using a detailed marking scheme. -% When the scale is not displayed, -% it is equivalent to |\points| and when the scale is displayed, -% it is equivalent to |\totalexe|. -% For example, in the exercise \ref{totalexe}, we should use -% |\totalpoints| rather than |\totalexe|, -% because, when the detailed marking scheme is not displayed, the total points will be typeset -% as in the exercise \ref{points} rather than in the margin. +% The |\totalpoints|\marg{num} macro serves as a replacement for +% |\points| when using a comprehensive marking scheme. +% When the scale isn't visible, +% it functions similarly to |\points|, and when the scale is shown, +% it's akin to |\totalexe|. +% For instance, in the exercise \ref{totalexe}, it's preferable to use +% |\totalpoints| instead of |\totalexe|, +% as when the detailed marking scheme isn't displayed, the total points will be typeset +% in a manner similar to exercise \ref{points} rather than in the margin. % % \subsection{Marking scheme consistency checking}\label{scale} % % \DescribeMacro{[checkpts=\meta{bool}]} % The marking scheme can be checked % \footnote{Thanks to Denis Bitouzé for his suggestion about this feature.} -% with the keyval option \texttt{[checkpts=true]}, +% using the key-val option \texttt{checkpts=true}; % the default value is \texttt{false}. % % \medskip -% For each exercise, the sum of points awarded for each question (with |\pts|, |\note*| -% or |\note[ ]| is compared to the total of the exercise given in -% |\points|, |\totalexe| or |totalpoints|. -% A warning message appear in the shell to indicate if the scale is valid or not -% for the exercise. For example: +% For each exercise, the cumulative points allocated to each question (via |\pts|, |\note*| +% or |\note[ ]| are compared to the exercise's total specified in +% |\points|, |\totalexe| or |\totalpoints|. +% A warning message will be displayed in the shell to indicate whether +% the scale is valid +% for the exercise or not. For example: % \begin{center} -% \texttt{Package exesheet warning: Exercise 3: sum of points is 4.5pt instead of 5pt.} +% \texttt{Package exesheet warning: Exercise 3: Sum of points is 4.5pt instead of 5pt.} % \end{center} -% Depending on your language, you can use comma notation numbers (4,5 as well as 4.5). -% The checking takes place at the beginning of the next exercise. If no points are specified -% for the questions, no warning message will be displayed at this level. +% Both comma notation (\eg 4,5) and decimal point format (\eg 4.5) +% may be accepted, depending on your chosen language. +% The validation occurs at the beginning of the subsequent exercise. +% No warning messages will be presented at this level if no points are specified +% for the questions. % % \medskip % \DescribeMacro{\totalsheet} -% At the end of the sheet, the last exercise is checked, then a global checking -% is made on the whole sheet. For that, the total points of the sheet must be specified -% in the preamble with the |\totalsheet|\marg{total} macro -% (else you get a warning message). -% If subtotal points have been awarded for exercises, the global comparison -% is between the sum of these subtotals and the total of points recorded -% with the |\totalsheet| macro. -% If not, the audit covers the sum of points awarded for each individual question. -% A warning message indicates the result of this last checking. -% Finally a last message indicate if all the scale controls have been successfully +% At the end of the sheet, the last exercise is checked, +% followed by a global examination of the entire sheet. +% This last task requires knowledge of the total points for the sheet. To achieve this, use +% the |\totalsheet|\marg{total} macro in the preamble; +% otherwise, a warning message will be displayed. +% If subtotals have been assigned to exercises, the overall comparison +% is made between the sum of these subtotals and the total points recorded +% using the |\totalsheet| macro. +% If not, the evaluation encompasses the sum of points for each individual question. +% A subsequent warning message indicates the outcome of this last verification. +% Finally, a message indicates whether all scale controls have been successfully % passed or not. % % \section{Options} \label{options} % % \subsection{Summary of available options} % -% Here we present a summary table of available options. Explanations of use -% are given in the corresponding sections. -% The default value is typeset in bold. +% Here we provide a summary table of the available options. Details on their usage +% can be found in the respective sections. +% The default value is displayed in bold. % % \begin{center} \ttfamily % \setlength{\extrarowheight}{1pt} @@ -1061,69 +1122,70 @@ % \end{tabular} % \end{center} % -% When an invalid key is passed, an error is produced, but -% when a value is not recognized, a warning message occur:\\ -% \texttt{Value `\meta{value}'\ is not supported by option `\meta{key}'\ +% When an invalid key is provided, an error is generated. However, +% if a value is not recognized, a warning message will appear:\\ +% \texttt{Value `\meta{value}'\ is not supported by `\meta{key}' option % on input line \ldots} \\ -% For each option, you can set them with class or package calling: \eg \\ +% For each option, you can set them through the class or package invocation, \eg % |\usepackage[output=answers,display=notes,noteragged=right]{exesheet}| % % \bigskip % \DescribeMacro{\exesheetset} -% You can also use the |\exesheetset|\{list of \meta{key}=\meta{value} options\} +% You can also use the |\exesheetset|\{list of \meta{key}=\meta{value}\} % command. -% Nevertheless, only the options \texttt{output}, \texttt{answerspace}, \texttt{display}, +% Note that some options, \texttt{output}, \texttt{answerspace}, \texttt{display}, % and \texttt{noteragged}, -% can be changed dynamically, even in the document body, although this is not really expected. -% The others are usable in the preamble only. -% Dynamic options are processed at each call, the others will be processed once, -% at begin document. +% can be changed dynamically, even within the document, +% while the others are applicable in the preamble exclusively. +% Dynamic options are processed with each call, whereas the others are processed once, +% when the document begins. % \hypertarget{correct}{} % % \bigskip % \DescribeMacro{[correct=\meta{opt}]} -% A special option, \texttt{correct}, can be used only when calling the \textsf{exesheet} -% class or in combination with the \textsf{schooldocs} package. -% Its effect is to add ``\correctname'' (or its translation) -% in the document title and headers. -% Possible values are: \texttt{true}, \texttt{false} (by default) or \texttt{conditional}. -% The value \texttt{correct=conditional}, means \texttt{true} if answers are displayed, -% \texttt{false} otherwise. +% A special option, \texttt{correct}, can be employed when using the \textsf{exesheet} +% \emph{class} or in conjunction with the \textsf{schooldocs} package. +% This option adds ``\correctname'' (or its translation) +% to the document title and headers. +% Possible values are: \texttt{true}, \texttt{false} (default) or \texttt{conditional}. +% When set to \texttt{correct=conditional}, it behaves as \texttt{true} +% when answers are displayed and \texttt{false} when they're not. % % \subsection{Alternative (deprecated) commands} % -% Previously to version 2.0, we used some special commands to set output and display options. -% Thanks to a suggestion of Maxime Chupin, keyval options have been implemented -% in the package. -% Although the latter is more convenient, -% the old commands will be presented here -% and maintained for now, for compatibility reasons. -% When using them, a warning message will appear, but these commands still work. -% However previous options \texttt{nosetlist} and \texttt{notoc} +% Prior to version 2.0, we used specialized commands to configure +% output and display options. +% Thanks to a suggestion from Maxime Chupin, we have now implemented \emph{key=value} +% options in the package. +% Although the latter is more user-friendly, +% the older commands are still supported for compatibility reasons and are outlined here. +% While these commands will trigger a warning message, they remain functional. +% However, the previous options \texttt{nosetlist} and \texttt{notoc} % are no longer supported. % % \bigskip % \DescribeMacro{\questionsonly} \DescribeMacro{\answersonly} -% These two commands are equivalent to respectively \texttt{output=questions} -% and \texttt{output=answers}. +% The command |\questionslonly| is equivalent to setting \texttt{output=questions} +% and |\answersonly| means \texttt{output=answers}. % % \medskip % \DescribeMacro{\displaypts} \DescribeMacro{\displaypoints} -% These two commands are now equivalent to \texttt{display=pts}. -% -% \medskip % \DescribeMacro{\displaynotes}\DescribeMacro{\displaynotesright} -% These two commands mean \texttt{display=notes} -% and moreover \texttt{marginpos=right} for the latter. +% The commands |\displaypts| and |\displaypoints| +% are equivalent to setting \texttt{display=pts}; +% |\displaynotes| means \texttt{display=notes}, +% and |\displaynotesright| corresponds to +% \texttt{display=notes} and \texttt{marginpos=right}. % % \StopEventually{} % % \section{Implementation} % % \subsection{Options and required packages} -% The \texttt{exesheet} class is based on the \texttt{article} class -% and passes to it all its unknown options. -% |\ProcessKeyvalOptions*| is useless in class, will be done by the package. +% The \texttt{exesheet} class is build upon the \texttt{article} class +% and transfers all its unknown options to it. The use of +% |\ProcessKeyvalOptions*| is unnecessary within the class +% as it will be managed by the package. % \begin{macrocode} %<*class> \RequirePackage{kvoptions} @@ -1145,18 +1207,20 @@ %</class> % \end{macrocode} % -% Then options are defined thanks to \textsf{kvoptions} package (based on \textsf{keyval}). -% String options are processed in separate macros -% defined in the corresponding sections of each. -% These process macros will be executed when package is loaded -% (at end of package because |\exs@process...| aren't recognized at the beginning), -% or at begin document for options whose -% effect cannot be changed dynamically -% and must be set in the preamble -% (they will be processed once). -% -% A special case is \texttt{setlist} when used with \textsf{babel-french}. -% It will then be processed immediately and disabled (see below for explanations). +% Options are established using the \textsf{kvoptions} package (build on \textsf{keyval}). +% String options are managed through distinct macros +% that are defined in their respective sections. +% For options whose effects cannot be dynamically altered +% and must be configured in the preamble, they are processed once +% upon the start of the document. +% The other options are executed upon package loading +% (at the end of the package, as |\exs@process...| +% commands are not recognized at the outset). +% +% A distinct case emerges with \texttt{setlist} when utilized in conjunction with +% \textsf{babel-french}. +% In this instance, it is processed immediately and subsequently disabled +% (further clarification follows below). % % \begin{macrocode} %<*package> @@ -1187,7 +1251,7 @@ \newif\ifexesheet@multicol \@ifpackageloaded{multicol}{ \exesheet@multicoltrue}{\exesheet@multicolfalse} - % to set the rule to the right color in answers environments + % configuring the rule color within answers environments \exs@process@setlist \exs@process@marginpos \exs@process@marginwidth @@ -1202,23 +1266,26 @@ % \end{macrocode} % \begin{macro}{\exesheetset} -% The macro |\exesheetset| can receive keyval options. -% It can be used anywhere in the document to modify some settings, -% but has no effect on non dynamic options if called outside the preamble; -% thanks to |\DisableKeyValOption| a warning message occur in that case. +% The |\exesheetset| macro can accept key-val options and +% can be utilized anywhere in the document to adjust certain settings. +% However, it won't affect non dynamic options if called outside the preamble. +% In such cases a warning message occur due to the use of |\DisableKeyValOption|. % \begin{macrocode} \def\exesheetset#1{\setkeys{exesheet}{#1}\exs@process@dynoptions} % \end{macrocode} % \end{macro} -% Now we load several packages. -% The \texttt{shortlabel} option in the \textsf{enumitem} package allows to use labels like in -% the \textsf{enumerate} package \eg 1., a), A. etc. +% Now, we load several packages. +% If the \textsf{geometry} package is already loaded, it will not be reloaded +% to prevent an option clash. +% The \texttt{shortlabel} option in the \textsf{enumitem} package allows the use +% of labels similar to +% the \textsf{enumerate} package such as 1., a), A., and so on. % The \textsf{mparhack} package (by Tom Sgouros and Stefan Ulrich) -% is loaded only for two side mode documents. +% is loaded exclusively for documents in \texttt{twoside} mode. % \begin{macrocode} \RequirePackage{ifthen} -\RequirePackage{geometry} +\@ifpackageloaded{geometry}{}{\RequirePackage{geometry}} \RequirePackage{xcolor} \RequirePackage[shortlabels]{enumitem} \RequirePackage{tasks} @@ -1231,14 +1298,14 @@ % \end{macrocode} % % \subsection{Internationalization} -% Here we define keywords and their translation in French, German, Spanish -% 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}. +% Here we define keywords along with their translations in French, German, Spanish +% Italian, Portuguese. We achieve this using macros from the \textsf{translations} package +% by Clemens Niederberger. This package automatically detects the language being used, +% as loaded by \textsf{babel} or \textsf{polyglossia}. % -% Accented characters cannot be used here because they are not recognized +% Accented characters cannot be utilized here, as they might not be recognized % if \textsf{inputenc} is loaded after \textsf{exesheet}. -% So we have used basic \LaTeX\ control sequences to produce them. +% As a workaround, we rely on basic \LaTeX{} control sequences to generate them. % % \begin{macrocode} \DeclareTranslationFallback{exesheet-exercise}{Exercise} @@ -1297,7 +1364,7 @@ \DeclareTranslation{Italian}{exesheet-ex}{Es} \DeclareTranslation{Italian}{exesheet-points}{punti} \DeclareTranslation{Italian}{exesheet-point}{punto} -\DeclareTranslation{Italian}{exesheet-correction}{correzione} +\DeclareTranslation{Italian}{exesheet-correction}{Correzione} \DeclareTranslation{Italian}{exesheet-pts}{pti} \DeclareTranslation{Italian}{exesheet-pt}{pt} @@ -1325,26 +1392,27 @@ % % \subsection{Titles} % -% The \texttt{exercise} counter numbers exercises for the whole document -% regardless of any section. -% To reset the counter at some point, just write |\setcounter{exercise}{0}| -% and for an automatic reset at each section, -% add in the preamble \\ +% The \texttt{exercise} counter assigns numbers to exercises throughout the entire document, +% regardless of sections. +% To reset the counter manually, simply use |\setcounter{exercise}{0}|. +% For an automatic reset at each new section, +% include the following code in the preamble \\ % |\makeatletter \@addtoreset{exercise}{section} \makeatother|. % -% The parts counter depends on \texttt{exercise} and is reset -% at each new exercise. +% The parts counter depends on the \texttt{exercise} counter and is reset +% with each new exercise. % -% Commands |\labelexercisestyle| and |\labelsubpartstyle| -% are empty, but allow to personalize the style, for instance:\\ +% The commands |\labelexercisestyle| and |\labelsubpartstyle| +% are initially empty, but they allow you to customize the styling. For example:\\ % |\renewcommand\labelexercisestyle{\sffamily}|. % -% The |\exe@check| macro checks the marking scheme, it will be defined +% The |\exe@check| macro, responsible for verifying the marking scheme, will be defined % in section \ref{MSoptions}. -% By default, the table of contents displays the titles of exercises and parts, -% |\ifexesheet@exetoc| is \texttt{true}. -% To display in it only exercise titles but not parts, -% place in the preamble |\setcounter{tocdepth}{2}|. +% +% By default, the table of contents includes both exercises and parts titles, +% as controlled by the boolean |\ifexesheet@exetoc|. +% To only display exercise titles in the table of contents while omitting parts, +% include the following code in the preamble: |\setcounter{tocdepth}{2}|. % % \begin{macro}{\exercise} % \begin{macrocode} @@ -1354,7 +1422,7 @@ \newcommand{\labelexercisestyle}{} \newcommand*{\@exercise}[1][]{% \ifexesheet@checkpts \exe@check{\labelexercise} \fi - % curiously the \execheck must be done before \refstepcounter ! + % curiously, the \execheck must be performed before \refstepcounter ! \refstepcounter{exercise} \subsection*{\labelexercisestyle\labelexercise\enskip #1} \ifexesheet@exetoc @@ -1425,9 +1493,9 @@ % \subsection{Enumerations and lists} % % \begin{macro}{\exenumerate} -% The |\setlist| command comes from the \textsf{enumitem} package -% (|\setenumerate| is obsolete). By default |itemsep=1ex| for lists of first level, -% and |leftmargin=1.5em| allows to align labels on the start of lines. +% The |\setlist| command is part of the \textsf{enumitem} package +% (|\setenumerate| is deprecated). By default, |itemsep=1ex| is set for first-level lists, +% and |leftmargin=1.5em| is used to align labels with the start of lines. % \begin{macrocode} \newenvironment{exenumerate}[1][]{% \setlist[enumerate]{font=\bfseries} @@ -1440,13 +1508,13 @@ % \end{macrocode} % \end{macro} -% When using \textsf{babel} with the option \texttt{french}, -% \texttt{itemize} lists are modified with the same dash label for each list level. -% These modifications are canceled here to restore default -% \LaTeX\ \texttt{itemize} lists (labels and spaces). -% We have create the |\standardfrenchlists| command which must be called into -% |AtBeginDocument| or not, depending on whether -% \textsf{exesheet} is loaded before \textsf{babel} or after. +% When using the \textsf{babel} package with the \texttt{french} option, +% \texttt{itemize} lists are altered to use the same dash label for each list level. +% These modifications are undone here to revert to the default +% \LaTeX\ \texttt{itemize} lists, including labels and spaces. +% We have created the |\standardfrenchlists| command, which should be invoked within the +% |AtBeginDocument| command, depending on whether +% \textsf{exesheet} is loaded before or after \textsf{babel}. % \begin{macrocode} \newcommand\standardfrenchlists{% \@ifpackagewith{babel}{french}{ @@ -1460,18 +1528,18 @@ \def\exs@process@setlist{% must be executed at begin document \ifexesheet@setlist - \standardfrenchlists % if exesheet is loaded before babel package + \standardfrenchlists % if exesheet is loaded before babel \setlist[enumerate]{font=\bfseries} \setlist[enumerate,1]{topsep=1.5ex plus 1ex minus 1ex,leftmargin=1.5em} \fi % \end{macrocode} % \DescribeEnv{tablenum1} \DescribeEnv{tablenuma} -% The |\NewTasks| command comes from the \textsf{tasks} package. -% It allows to define environments \texttt{tablenum1}, \texttt{tablenuma} -% and \texttt{tablitem}. -% Horizontal spaces are adjusted to get good alignments with -% items of other \texttt{enumerate} (or \texttt{itemize}) environments. +% The |\NewTasks| command is part of the \textsf{tasks} package. +% It enables the definition of the environments \texttt{tablenum1}, +% \texttt{tablenuma} and \texttt{tablitem}. +% Horizontal spacing is adjusted to ensure proper alignment with +% items in other \texttt{enumerate} (or \texttt{itemize}) environments. % \begin{macrocode} \ifexesheet@setlist \NewTasksEnvironment[label=\arabic*.,label-format=\bfseries, @@ -1502,6 +1570,22 @@ after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablitem}[\item](2) % \end{macrocode} +% \DescribeEnv{tablenuma*} \DescribeEnv{tablitem*} +% The starred environments \texttt{tablenuma*} and \texttt{tablitem*} +% are designed to be employed within an \texttt{enumerate} environment, +% precisely at the outset of an |\item|, in order to achieve correct horizontal +% alignment. +% The length of |-1.667\baselineskip| has been tested with various font families and sizes. +% It functions properly. +% \begin{macrocode} +\newenvironment{tablenuma*}{% + \mbox{}\vspace{-1.667\baselineskip}\begin{tablenuma}}{ + \end{tablenuma}} +\newenvironment{tablitem*}{% + \mbox{}\vspace{-1.667\baselineskip}\begin{tablitem}}{ + \end{tablitem}} + +% \end{macrocode} % \DescribeEnv{colsenum} % \begin{macrocode} \newenvironment{colsenum}[2][]{% @@ -1556,9 +1640,9 @@ % \subsection{Questions and answers} % % \begin{macro}{\exs@process@output} -% |exesheet@questions| and |exesheet@answers| booleans -% control the display of corresponding environments. -% They are set by the \texttt{output} key option in the +% The booleans |exesheet@questions| and |exesheet@answers| +% governs the visibility of their corresponding environments. +% These booleans are configured through the \texttt{output} key option within the % |\exs@process@output| macro. % \begin{macrocode} \newboolean{exesheet@questions}\setboolean{exesheet@questions}{true} @@ -1578,7 +1662,7 @@ \setboolean{exesheet@answers}{true} }{% else \PackageWarning{exesheet}{Value `\exesheet@output' - is not supported by option `output'} + is not supported by `output' option} }}} } @@ -1586,22 +1670,22 @@ % \end{macro} % % \begin{environment}{questions} -% We use the \textsf{versions} package by Uwe Lück -% who provides |\comment| and |\endcomment| macros, -% that allow the magic of conditional displays (we can also find them -% in \textsf{verbatim} or \textsf{version} packages). -% The noteworthy \textsf{codesection} package, allows to encapsulate -% optional code between the macros |\BeginCodeSection|\marg{skip} -% and |\EndCodeSection|\marg{skip}, -% both in the text body and in the preamble, -% but these macros cannot be used inside an environment -% as we did here for |\comment| and |\endcomment|. -% -% Some tests are made by |\ifthenelse{\bolean{...}}| -% because |\comment| and |\endcomment| causes some hassle +% We utilize the \textsf{versions} package developed by Uwe Lück, +% which introduces the macros |\comment| and |\endcomment|. +% These macros facilitate conditional displays, a technique also employed +% in the \textsf{verbatim} and \textsf{version} packages. +% Additionally, the notable \textsf{codesection} package offers the capability +% to enclose optional code between |\BeginCodeSection|\marg{skip} +% and |\EndCodeSection|\marg{skip} macros, +% both in the text body and the preamble. +% However, these macros cannot be used within an environment +% as we've done here with |\comment| and |\endcomment|. +% Several of our tests use the \LaTeX{} syntax |\ifthenelse{\bolean{...}}| +% since |\comment| and |\endcomment| can sometimes interfere % with the \TeX\ structure |\if| \ldots |\else| \ldots |\fi|. -% The two counters |exe@ini| and |subpart@ini| are used in -% the following |\set@toclevel| macro. +% +% The two counters |exe@ini| and |subpart@ini| are employed in +% the subsequent |\set@toclevel| macro. % \begin{macrocode} \newcounter{exe@ini} \newcounter{subpart@ini} @@ -1617,13 +1701,14 @@ % \end{environment} % \begin{environment}{answers} % The internal macro |\set@toclevel| calculates the title level (counter |toc@level|) -% to get a correct typesetting of the word ``\correctionname'' at the start of an -% \texttt{answers} environment (when \texttt{questions} and \texttt{answers} are -% displayed together). The principle is to compare the state of counters -% \texttt{exercise} and \texttt{subpart} with those saved at the time of -% the call of the \texttt{questions} environment. The |\@enumdepth| counter indicates the -% \texttt{enumerate} list level in which we are (0 = out of lists). -% The optional parameter of the \texttt{answers} environment allows to force this title level. +% to ensure correct typesetting of ``\correctionname'' at the start of an +% \texttt{answers} environment, when \texttt{questions} and \texttt{answers} are +% displayed together. It involves comparing the \texttt{exercise} and \texttt{subpart} +% counters with their values at the time of the \texttt{questions} environment call. +% The |\@enumdepth| counter indicates the +% current \texttt{enumerate} list level (with 0 indicating outside of any list). +% The optional parameter of the \texttt{answers} environment permits +% the explicit specification of this title level. % \begin{macrocode} \newcounter{@toclevel} \newcommand{\set@toclevel}[1][]{ @@ -1642,7 +1727,7 @@ % \end{macrocode} % The internal macro |\typeset@correctionname|, -% typesets the word ``\correctionname'' at the right level. +% displays the term ``\correctionname'' at the appropriate level. % \begin{macrocode} \definecolor{correctioncolor}{rgb}{0,0.2,0.6} % kind of dark blue \newcommand{\correctionstyle}{\color{correctioncolor}} @@ -1673,7 +1758,7 @@ } % \end{macrocode} -% Then we can write the \texttt{answers} environment. +% Then we proceed to define the \texttt{answers} environment. % \begin{macrocode} \newenvironment{answers}[1][]{% #1 is the optional level \ifthenelse{\boolean{exesheet@answers}}{% @@ -1694,8 +1779,8 @@ % \end{macrocode} % In the \texttt{answers} environment, when placing |\correctionstyle| -% before |\subsubsection| (case of |\typeset@correctionname|), -% the preceding vertical space may be too wide. +% before |\subsubsection| (as in the case of |\typeset@correctionname|), +% the preceding vertical space may become too wide. % \end{environment} % % \begin{macro}{\question} @@ -1715,8 +1800,8 @@ % \end{macrocode} % \end{macro} % \begin{macro}{\answerspace} -% The \texttt{answerspace} macro was a suggestion of Maxime Chupin -% to permit students to write answers on the given paper. +% The |\answerspace| macro was suggested by Maxime Chupin +% to allow students space for writing their answers on the provided paper. % \begin{macrocode} \newcommand\answerspace[1]{ \ifexesheet@answerspace \par\vspace{#1} \fi} @@ -1726,15 +1811,15 @@ % % \subsection{Marking scheme options processing} \label{MSoptions} % -% Options \texttt{display}, \texttt{marginpos}, \texttt{marginwidth} -% and \texttt{noteragged} are processed with the following internal commands. +% The options \texttt{display}, \texttt{marginpos}, \texttt{marginwidth} +% and \texttt{noteragged} are handled using the following internal commands. % % \medskip -% The \texttt{display} key option sets the value of the two booleans +% The \texttt{display} key option determines the value of the two booleans % |exesheet@pts| and |exesheet@notes|. -% |exesheet@pts| controls the display of the content of |\pts| and of optional arguments -% of |\note|, -% whereas |exesheet@notes| controls mandatory arguments of |\note|. +% The |exesheet@pts| boolean controls the display of the content of |\pts| +% and optional arguments of |\note|, +% while the |exesheet@notes| boolean controls mandatory arguments of |\note|. % % \begin{macro}{\exs@process@display} % \begin{macrocode} @@ -1755,28 +1840,28 @@ \setboolean{exesheet@notes}{false} }{% else \PackageWarning{exesheet}{Value `\exesheet@display' - is not supported by option `display'} + is not supported by `display' option} }}} } % \end{macrocode} % \end{macro} % \begin{macro}{\exs@process@marginpos} -% The \texttt{marginpos} key option takes value \texttt{left} (the default) or \texttt{right} -% (or \texttt{inner} and \texttt{outer}). In practice \texttt{inner} is equivalent to -% \texttt{left} -% but, in two side mode, \texttt{left} (the default value) or \texttt{right} -% are converted to \texttt{outer} (the default value for two side mode). +% The \texttt{marginpos} key option takes the values \texttt{left} (the default value) +% or \texttt{right} (or \texttt{inner} and \texttt{outer}). +% In practice, \texttt{inner} is equivalent to \texttt{left}, +% but in two-sided mode, the values \texttt{left} or \texttt{right} +% are converted to \texttt{outer} (which is then the default value for two-sided mode). % \begin{macrocode} \newboolean{exesheet@leftmargin} \def\exs@process@marginpos{ \ifthenelse{\equal{\exesheet@marginpos}{left}}{ \if@twoside% - \PackageWarningNoLine{exesheet}{Default `marginpos' option + \PackageWarningNoLine{exesheet}{The default `marginpos' option \MessageBreak - for two side documents is `outer'.\MessageBreak - Use `inner' to change the side} + for two-sided documents is `outer'.\MessageBreak + To change the side, use `inner'} \def\exesheet@marginpos{outer} \setboolean{exesheet@leftmargin}{false} \normalmarginpar @@ -1787,10 +1872,10 @@ }{% else if \ifthenelse{\equal{\exesheet@marginpos}{right}}{ \if@twoside% - \PackageWarningNoLine{exesheet}{Default `marginpos' option + \PackageWarningNoLine{exesheet}{The default `marginpos' option \MessageBreak - for two side documents is `outer'.\MessageBreak - Use `inner' to change the side} + for two-sided documents is `outer'.\MessageBreak + To change the side, use `inner'} \def\exesheet@marginpos{outer} \fi \setboolean{exesheet@leftmargin}{false} @@ -1804,26 +1889,25 @@ \setboolean{exesheet@leftmargin}{false} \normalmarginpar }{% else - \PackageWarningNoLine{exesheet}{Value `\exesheet@marginpos' - is not supported by option `marginpos'} + \PackageWarningNoLine{exesheet}{The value `\exesheet@marginpos' + is not supported by the `marginpos' option} }}}} } % \end{macrocode} % \end{macro} % \begin{macro}{\exs@process@marginwidth} -% The \texttt{marginwidth} option changes the ratio between left and right margins -% depending on what has to be displayed in the margin (only points or full -% notes) -% \footnote{So that the effect on the margin ratio is correct, this option is processed -% at begin document, after other commands -% that also could alter page geometry.}. -% -% When \texttt{display=notes}, the additional length \texttt{1\,in} matches +% The \texttt{marginwidth} option adjusts the ratio between left and right margins +% based on what needs to be displayed in the margin (points only or full notes) +% \footnote{To ensure the accurate effect on the margin ratio, this option is processed +% at beginning of the document, after other commands +% that could potentially alter the page geometry.}. +% +% When \texttt{display=notes}, the additional length of \texttt{1\,in} corresponds to % the default free space to the left of |\oddsidemargin|. % % The macros |\standardmarginwidthfactor| and |\largemarginwidthfactor| -% represent the ratio between total margin width and |\marginparwidth|. +% represent the ratios between the total margin width and |\marginparwidth|. % % \begin{macrocode} \def\standardmarginwidthfactor{0.6} @@ -1847,7 +1931,7 @@ \def\exesheet@smallmargins{ \geometry{hmarginratio=1:1} - \leftnotemarginwidth{\standardmarginwidthfactor} % right gives the same + \leftnotemarginwidth{\standardmarginwidthfactor} } \def\exesheet@standardmargins{ \ifexesheet@leftmargin @@ -1876,7 +1960,7 @@ \else \exesheet@smallmargins \fi - }{% else display=pts or notes + }{% else display=pts or display=notes \exesheet@standardmargins } }{% else if @@ -1897,33 +1981,34 @@ \ifthenelse{\equal{\exesheet@marginwidth}{unset}}{ % do nothing }{% else - \PackageWarningNoLine{exesheet}{Value `\exesheet@marginwidth' - is not supported by option `marginwidth'} + \PackageWarningNoLine{exesheet}{The value `\exesheet@marginwidth' + is not supported by the `marginwidth' option} }}} } % \end{macrocode} % \end{macro} -% For a two side mode document, the package \textsf{geometry} doesn't set the margin -% paragraph width correctly by default, it's too large. So we made here an explicit setting -% useful in the case of \texttt{marginwidth=unset}. Otherwise, the setting is -% made by the \texttt{marginwidth} key option. +% For a two-sided document, the \textsf{geometry} package doe not correctly set +% the width of the margin paragraph by default; it's too wide. +% Therefore we provide an explicit setting here, which is +% useful when \texttt{marginwidth=unset}. Otherwise, the setting is +% handled by the \texttt{marginwidth} key option. % % \begin{macrocode} \if@twoside \rightnotemarginwidth{0.5} \fi % \end{macrocode} % \begin{macro}{\exs@process@noteragged} -% The noteragged option takes one of the following values: +% The noteragged option can take one of the following values: % \texttt{left}, \texttt{right}, \texttt{center}, \texttt{justify} or \texttt{twoside}. -% -% |\marginpar| with optional parameter makes the job for a two side document. -% We then use |\noteraggedleft| and |\noteraggedright| instead of |\noteragged|. -% % Commands |\RaggedLeft|, |\RaggedRight|, |\Centering| and |\justifying| -% come from the \textsf{ragged2e} package by Martin Schröder. -% They give better results as standard commands -% |\raggedleft|, |\raggedright| (or |\centering|). -% The default \LaTeX\ setting for marginal notes is justifying. +% When working with a two-sided document, |\marginpar| can be used with an optional parameter +% to distinguish left from right contents. +% In this context, we employ |\noteraggedleft| and |\noteraggedright| instead of |\noteragged|. +% The \textsf{ragged2e} package by Martin Schröder offers the commands +% |\RaggedLeft|, |\RaggedRight|, |\Centering|, and |\justifying|. +% These commands yield better results compared to the standard +% |\raggedleft|, |\raggedright| and |\centering| commands. +% Margin paragraphs are justified by default in \LaTeX. % \begin{macrocode} \newcommand{\noteragged}{} \newcommand{\noteraggedleft}{} @@ -1966,11 +2051,11 @@ \renewcommand{\noteraggedright}{\RaggedRight} \else \PackageWarning{exesheet}{Invalid option `noteragged=twoside' - when the document \MessageBreak is not in two side mode} + when the document \MessageBreak is not in two-side mode} \fi }{% else - \PackageWarning{exesheet}{Value `\exesheet@noteragged' - is not supported by option `noteragged'} + \PackageWarning{exesheet}{The value `\exesheet@noteragged' + is not supported by the `noteragged' option} }}}}} } @@ -1978,20 +2063,19 @@ % \end{macro} % % \begin{macro}{\exs@process@checkpts} -% The scale control option is based on length calculus. -% By default these calculus are local but we need to make them global, -% therefore the two first macros |\gsetlength| and |\gaddtolength|. -% In them we must avoid to produce a too large space at the place -% where |\marginpar| is called, therefore all \% symbols at end of lines. -% -% For each question, points assigned will be added in |\sum@pts| -% and, for each exercise, points are accumulated in |\sum@exe|. -% These lengths are compared to |\exe@total| and |\sheet@total|. -% |\exe@check| is called at the beginning of each exercise -% (when macro |\points|, |\totalexe| or |\totalpoints| is called) -% to check the previous one, -% and also in the |\exs@process@checkpts| at end of document -% to check the last exercise. +% The scale control option relies on calculations with \emph{lengths}, +% which need to have a \emph{global} scope. +% To achieve this, we employ the macros |\gsetlength| and |\gaddtolength|. +% These macros include \% symbols at the end of lines to avoid expanded blank +% spaces. +% +% For questions, assigned points will be added in |\sum@pts|, +% while for exercises, points accumulate in |\sum@exe|. +% These lengths are compared against |\exe@total| and |\sheet@total|. +% The |\exe@check| macro validates the calculations of the previous exercise +% when triggered by |\points|, |\totalexe| or |\totalpoints| macros. +% It is also invoked within |\exs@process@checkpts| at the document's end +% for a final check on the last exercise. % \begin{macrocode} \newlength{\sheet@total} \newlength{\sum@exe} @@ -2001,14 +2085,14 @@ \newboolean{scale@valid} \setboolean{scale@valid}{true} -\gdef\gsetlength#1#2{% to get global length values +\gdef\gsetlength#1#2{% for obtaining global length values \begingroup \setlength\skip@{#2}% local assignment to a scratch register \global#1=\skip@% global assignment to #1 - \endgroup % \skip@ is restored by end of group + \endgroup % \skip@ is restored at the end of the group } -\gdef\gaddtolength#1#2{% percent symbol necessary here ! +\gdef\gaddtolength#1#2{% percent symbol necessary here! \begingroup \setlength\skip@{#1}% \addtolength\skip@{#2}% @@ -2022,26 +2106,26 @@ }{ \ifthenelse{\lengthtest{\exe@total = \sum@pts}}{ \PackageWarningNoLine{exesheet}{\exe@label: - scale \the\exe@total\space is valid} + The scale of \the\exe@total\space is valid} }{ \PackageWarningNoLine{exesheet}{\exe@label: - sum of points is + Sum of points is \the\sum@pts\space instead of \the\exe@total} \setboolean{scale@valid}{false} } \gsetlength{\sum@pts}{0pt} } - \def\exe@label{#1} % for the next exercise + \def\exe@label{#1} % for the upcoming exercise } \def\exs@process@checkpts{ \ifexesheet@checkpts \ifthenelse{\lengthtest{\sheet@total = 0pt}}{ - \PackageWarningNoLine{exesheet}{Option checkpts is true; + \PackageWarningNoLine{exesheet}{Option checkpts is true, \MessageBreak - but you didn't use \string\totalsheet\space + but \string\totalsheet\space is missing in the preamble. \MessageBreak - See the documentation for more information} + See documentation} }{} \gsetlength{\sum@exe}{0pt} \gsetlength{\exe@total}{0pt} @@ -2072,8 +2156,8 @@ \ifthenelse{\boolean{scale@valid}}{ \PackageWarningNoLine{exesheet}{Scale is valid} }{ - \PackageWarningNoLine{exesheet}{Scale is NOT valid ! - See above} + \PackageWarningNoLine{exesheet}{INVALID SCALE! + Refer to above} } } \fi @@ -2098,9 +2182,9 @@ \ifthenelse{\boolean{exesheet@questions}}{\exesheet@points{#1}}{}} % \end{macrocode} -% Percent symbols are necessary to avoid spaces between the -% |\fbox| and its inner text. -% Without |\lengthtest|, the test |#1 < 2| doesn't work with decimal numbers +% To prevent spaces between the |\fbox| and its inner text, +% percent symbols are necessary. +% The test |#1 < 2| doesn't work with decimal numbers without |\lengthtest|, % but it works with lengths. % \end{macro} % \DescribeMacro{\pts} @@ -2124,15 +2208,15 @@ % \end{macrocode} % % \begin{macro}{\totalexe} -% In the following macros using -% |\marginpar|, percent symbols and |\ignorespaces| are necessary -% to avoid an enlarged blank space in the text (or the margin) -% where these macros are inserted. +% In the subsequent macros that utilize +% |\marginpar|, the presence of percent symbols and |\ignorespaces| is essential +% to prevent the occurrence of expanded blank spaces in the text (or the margin), +% where these macros are incorporated. % \begin{macrocode} \definecolor{markingcolor}{named}{red} \newcommand{\markingstyle}[1]{\footnotesize\sffamily% \centering\color{markingcolor}\textbf{#1}} - % inner arguments allow boxed styles + % inner arguments enable the implementation of boxed styles \newlength{\ptsboxlength} \setlength{\ptsboxlength}{3.1em} \cornersize{1} @@ -2161,16 +2245,16 @@ % \end{macro} % % \begin{macro}{\note} -% Boolean \texttt{exesheet@pts} and \texttt{exesheet@notes} control -% the display of marginal notes. If \texttt{exesheet@pts} is \texttt{false}, +% The booleans \texttt{exesheet@pts} and \texttt{exesheet@notes} control +% the display of marginal notes. If \texttt{exesheet@pts} is set to \texttt{false}, % \DescribeMacro{\note*} % \texttt{exesheet@notes} will be ignored. -% |\noindent| is necessary when using |\justifying| from the \textsf{ragged2e} +% |\noindent| is required when using |\justifying| from the \textsf{ragged2e} % package. -% Inside the |\note@marginpar| macro, double braces around |\markingstyle| -% avoid some unattended style in the mandatory argument of |\note|. -% A vicious error occur when using |\if| \ldots |\fi| structure inside -% the |\note@marginpar| macro instead of |\ifthenelse| +% Within the |\note@marginpar| macro, enclosing |\markingstyle| in double braces +% helps prevent unintended formatting within the mandatory argument of |\note|. +% A vicious error occurs when using an |\if| \ldots |\fi| structure +% instead of |\ifthenelse| inside |\note@marginpar| % (but only if |@twoside| is \texttt{true}). % \begin{macrocode} \definecolor{notecolor}{rgb}{0.0, 0.4, 0.0} % kind of dark green @@ -2237,71 +2321,70 @@ \ifexesheet@answers \correct \fi }{}} }{ - \PackageWarningNoLine{exesheet}{Package `schooldocs' must be loaded + \PackageWarningNoLine{exesheet}{The `correct' option requires \MessageBreak - to use the `correct' option} + the `schooldocs' package to be loaded} }} } % \end{macrocode} % \end{macro} % -% The following macros are maintained for now -% only for compatibility reasons. +% For the time being, the following macros are kept for compatibility reasons. % \begin{macrocode} \newcommand{\questionsonly}{ - \PackageWarning{exesheet}{Command \string\questionsonly\space - is deprecated, \MessageBreak - use `output=questions' as package option instead} + \PackageWarning{exesheet}{The command \string\questionsonly\space + is deprecated; \MessageBreak + use the package option `output=questions' instead} \renewcommand\exesheet@output{questions} \exs@process@output } \newcommand{\answersonly}{ - \PackageWarning{exesheet}{Command \string\answersonly\space - is deprecated, \MessageBreak - use `output=answers' as package option instead} + \PackageWarning{exesheet}{The command \string\answersonly\space + is deprecated; \MessageBreak + use the package option `output=answers' instead} \renewcommand\exesheet@output{answers} \exs@process@output } \newcommand{\displaypts}{% - \PackageWarning{exesheet}{Command \string\displaypts\space - is deprecated, \MessageBreak - use `display=pts' as package option instead} + \PackageWarning{exesheet}{The command \string\displaypts\space + is deprecated; \MessageBreak + use the package option `display=pts' instead} \renewcommand\exesheet@display{pts} \exs@process@display } \newcommand{\displaypoints}{% - \PackageWarning{exesheet}{Command \string\displaypoints\space - is deprecated, \MessageBreak - use `display=pts' as package option instead} + \PackageWarning{exesheet}{The command \string\displaypoints\space + is deprecated; \MessageBreak + use the package option `display=pts' instead} \renewcommand\exesheet@display{pts} \exs@process@display } \newcommand*{\displaynotes}[1][\RaggedLeft]{% % \renewcommand{\noteragged}{#1} no effect now! - \PackageWarning{exesheet}{Command \string\displaynotes\space - is deprecated, \MessageBreak - use `display=notes' as package option instead} + \PackageWarning{exesheet}{The command \string\displaynotes\space + is deprecated; \MessageBreak + use the package option `display=notes' instead} \renewcommand\exesheet@display{notes} \exs@process@display \renewcommand{\noteragged}{#1} } \newcommand*{\displaynotesright}[1][\RaggedRight]{% % \renewcommand{\noteragged}{#1} no effect now! - \PackageWarning{exesheet}{Command \string\displaynotes\space - is deprecated, \MessageBreak - use `display=notes, margin=right' as package options instead} + \PackageWarning{exesheet}{The command \string\displaynotes\space + is deprecated; \MessageBreak + use the package options `display=notes, margin=right' instead} \renewcommand\exesheet@display{notes} \exs@process@display \renewcommand\exesheet@margin{right} \renewcommand{\noteragged}{#1} } -\PackageInfo{exesheet}{Environment `tablenum' is deprecated \MessageBreak - and replaced by `tablenum1'. \MessageBreak - Options `notoc' and `nosetlist' \MessageBreak - are no longer supported\@gobble} - % gobble allow to suppress line number +\PackageInfo{exesheet}{The environment `tablenum' is deprecated + \MessageBreak and has been replaced by `tablenum1'. + \MessageBreak The options `notoc' and `nosetlist' + \MessageBreak are no longer supported\@gobble} + % \@gobble suppresses the line number here %</package> % \end{macrocode} % |