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