summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-04-29 23:28:32 +0000
committerKarl Berry <karl@freefriends.org>2013-04-29 23:28:32 +0000
commitf39ecf357dcabe86d7841b9b1f0226ff23936bf5 (patch)
treefee982fb4da3128b566743698b2496bdc98a5b36
parent2e581c28cb4e1f20cd408c0bdc9885c7f18f9e5e (diff)
exsheets (29apr13)
git-svn-id: svn://tug.org/texlive/trunk@30166 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/exsheets/README34
-rw-r--r--Master/texmf-dist/doc/latex/exsheets/cntformats_en.pdfbin0 -> 423275 bytes
-rw-r--r--Master/texmf-dist/doc/latex/exsheets/cntformats_en.tex407
-rw-r--r--Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdfbin690078 -> 693353 bytes
-rw-r--r--Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex114
-rw-r--r--Master/texmf-dist/doc/latex/exsheets/tasks_en.pdfbin0 -> 430673 bytes
-rw-r--r--Master/texmf-dist/doc/latex/exsheets/tasks_en.tex564
-rw-r--r--Master/texmf-dist/doc/latex/exsheets/translations_en.pdfbin0 -> 408785 bytes
-rw-r--r--Master/texmf-dist/doc/latex/exsheets/translations_en.tex335
-rw-r--r--Master/texmf-dist/tex/latex/exsheets/cntformats.sty62
-rw-r--r--Master/texmf-dist/tex/latex/exsheets/exsheets.sty251
-rw-r--r--Master/texmf-dist/tex/latex/exsheets/exsheets_headings.def72
-rw-r--r--Master/texmf-dist/tex/latex/exsheets/tasks.sty42
-rw-r--r--Master/texmf-dist/tex/latex/exsheets/translations.sty17
14 files changed, 1697 insertions, 201 deletions
diff --git a/Master/texmf-dist/doc/latex/exsheets/README b/Master/texmf-dist/doc/latex/exsheets/README
index 55317f7c961..9f89fe0d396 100644
--- a/Master/texmf-dist/doc/latex/exsheets/README
+++ b/Master/texmf-dist/doc/latex/exsheets/README
@@ -1,14 +1,14 @@
--------------------------------------------------------------------------
-EXSHEETS v0.9c - 2013/04/21
+EXSHEETS 2013/04/25
bundled packages:
-the EXSHEETS package
+the EXSHEETS package v0.9d
Yet another package for the creation of exercise sheets
-the TRANSLATIONS package v0.9a
+the TRANSLATIONS package v0.9d
a simple translator
-the CNTFORMATS package v0.4
+the CNTFORMATS package v0.5
A different way to read counters.
-the TASKS package v0.9
+the TASKS package v0.9d
Horizontal columned lists.
All mentioned packages are described in exsheets_en.pdf
@@ -31,21 +31,23 @@ This work has the LPPL maintenance status `maintained'.
The Current Maintainer of this work is Clemens Niederberger.
--------------------------------------------------------------------------
-The exsheets package consists of the files
+The exsheets bundle consists of the files
- exsheets.sty, exsheets_headings.def, exsheets_headings.cfg,
exsheets_configurations.cfg,
- - exsheets_en.tex, exsheets_en.pdf, grading-table.tex,
+ exsheets_en.tex, exsheets_en.pdf
+
+ - tasks.sty, tasks.cfg, tasks_en.tex, task_en.pdf
+
+ - translations.sty, translations_en.tex, translations_en.pdf,
+ translations-basic-dictionary-english.trsl,
+ translations-basic-dictionary-french.trsl,
+ translations-basic-dictionary-german.trsl,
+ translations-basic-dictionary-spanish.trsl
+
+ - cntformats.sty, cntformats_en.tex, cntformats_en.pdf
+
- README
--------------------------------------------------------------------------
-The translations package consists of the files
- - translations.sty
---------------------------------------------------------------------------
-The cntformats package consists of the files
- - cntformats.sty
---------------------------------------------------------------------------
-The tasks package consists of the files
- - tasks.sty, tasks.cfg
---------------------------------------------------------------------------
If you have any ideas, questions, suggestions or bugs to report, please
feel free to contact me.
-------------------------------------------------------------------------- \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/exsheets/cntformats_en.pdf b/Master/texmf-dist/doc/latex/exsheets/cntformats_en.pdf
new file mode 100644
index 00000000000..8af9557974d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/exsheets/cntformats_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/exsheets/cntformats_en.tex b/Master/texmf-dist/doc/latex/exsheets/cntformats_en.tex
new file mode 100644
index 00000000000..98a1605aa48
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/exsheets/cntformats_en.tex
@@ -0,0 +1,407 @@
+% arara: pdflatex
+% arara: biber
+% arara: pdflatex
+% arara: pdflatex
+% --------------------------------------------------------------------------
+% the TRANSLATIONS package
+%
+%
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://bitbucket.org/cgnieder/exsheets/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2011-2013 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+% The translations package is part of the exsheets bundle
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+%
+% if you want to compile this documentation you'll need the document class
+% `cnpkgdoc' which you can get here:
+% https://bitbucket.org/cgnieder/cnpkgdoc/
+% the class is licensed LPPL 1.3 or later
+%
+% use `pdflatex' and `biber' for compilation
+%
+\PassOptionsToPackage{supstfm=libertinesups}{superiors}
+\documentclass[toc=index,toc=bib,numbers=noendperiod]{cnpkgdoc}
+% ----------------------------------------------------------------------------
+% document layout and typographic features
+\docsetup{
+ pkg = {cntformats} ,
+ url = {https://bitbucket.org/cgnieder/exsheets/} ,
+ subtitle = {{\small part of the \href{exsheets_en.pdf}{\ExSheets} bundle}\\[\baselineskip]a different way to read counters} ,
+ language = en ,
+ modules = true ,
+ code-box = {
+ backgroundcolor = gray!7!white ,
+ skipbelow = .6\baselineskip plus .5ex minus .5ex ,
+ skipabove = .6\baselineskip plus .5ex minus .5ex
+ } ,
+ gobble = 1
+}
+\usepackage{libertinehologopatch}
+\cnpkgusecolorscheme{friendly}
+
+\usepackage[biblatex]{embrac}[2012/06/29]
+ \ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+ \ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+\usepackage{microtype}
+\usepackage[multiple]{fnpct}
+
+\renewcommand*\othersectionlevelsformat[3]{\textcolor{main}{#3\autodot}\enskip}
+\renewcommand*\partformat{\textcolor{main}{\partname~\thepart\autodot}}
+
+\pagestyle{headings}
+
+\setcapindent{1.5em}
+\setkomafont{caption}{\normalfont\footnotesize\sffamily}
+\setkomafont{captionlabel}{\normalfont\footnotesize\sffamily\scshape}
+
+\usepackage{booktabs,array,ragged2e}
+
+% ----------------------------------------------------------------------------
+% code examples
+\addcmds{
+ @cntfmts@parsed@pattern, AddCounterPattern, alphalph,
+ cs, eSaveCounterPattern, ExplSyntaxOff, ExplSyntaxOn, int,
+ myoddnumber, NewCounterPattern, NewPatternFormat, numexpr, ordinalnum,
+ ReadCounterFrom, ReadCounterPattern, ReadCounterPatternFrom, relax,
+ SaveCounterPattern, somesetupcommand,
+ tmpa, tmpb, the
+}
+
+% ----------------------------------------------------------------------------
+% other packages, bibliography, index
+\usepackage{xcoffins,wasysym,enumitem,booktabs,siunitx}
+\usepackage[accsupp]{acro}
+\DeclareAcronym{id}{
+ short = id ,
+ long = Identifier ,
+ format = \scshape ,
+ pdfstring = ID ,
+ accsupp = ID
+}
+
+\usepackage{filecontents}
+\usepackage{imakeidx}
+\begin{filecontents*}{\jobname.ist}
+ heading_prefix "{\\bfseries "
+ heading_suffix "\\hfil}\\nopagebreak\n"
+ headings_flag 1
+ delim_0 "\\dotfill\\hyperpage{"
+ delim_1 "\\dotfill\\hyperpage{"
+ delim_2 "\\dotfill\\hyperpage{"
+ delim_r "}\\textendash\\hyperpage{"
+ delim_t "}"
+ suffix_2p "\\nohyperpage{\\,f.}"
+ suffix_3p "\\nohyperpage{\\,ff.}"
+\end{filecontents*}
+\indexsetup{othercode=\footnotesize}
+\makeindex[options={-s \jobname.ist},intoc,columns=3,columnsep=1em]
+
+\usepackage{csquotes}
+\usepackage[backend=biber,style=alphabetic]{biblatex}
+
+
+% ----------------------------------------------------------------------------
+% example definitions that have to be done in the preamble:
+\usepackage{alphalph}
+\NewPatternFormat{aa}{\alphalph}
+\usepackage{fmtcount}
+\NewPatternFormat{o}{\ordinalnum}
+\newcommand*\myoddnumber[1]{\the\numexpr2*(#1)-1\relax}
+\NewPatternFormat{x}{\myoddnumber}
+\NewCounterPattern{testa}{ta}
+
+% ----------------------------------------------------------------------------
+% custom commands
+\newcommand*\ExSheets{{\scshape\textcolor{main}{ExSheets}}\xspace}
+
+\newcommand*\Default[1]{%
+ \hfill\llap
+ {%
+ \ifblank{#1}%
+ {(initially~empty)}%
+ {Default:~\code{#1}}%
+ }%
+ \newline
+}
+\newcommand*\required{\hfill\llap{required}\newline}
+\newcommand*\optional{\hfill\llap{optional}\newline}
+
+\newcommand*\nooption[2]{\item[\code{\textcolor{key}{#1} = #2}] \cnpkgdocarrow\ }
+
+\newcommand*\unexpsign{$\RHD$}
+\newcommand*\expsign{\textcolor{red}{$\rhd$}}
+\renewcommand*\cnpkgdoctriangle{\unexpsign}
+\newcommand*\expandable{%
+ \def\cnpkgdoctriangle{%
+ \expsign
+ \gdef\cnpkgdoctriangle{\unexpsign}}}
+
+\usepackage{marginnote}
+\makeatletter
+\newcommand*\sinceversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Introduced in version~#1}}%
+ \@esphack}
+\newcommand*\changedversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Changed in version~#1}}%
+ \@esphack}
+\makeatother
+
+\pdfstringdefDisableCommands{\def\llap#1{#1\space}\def\bigstar{*}}
+
+% ----------------------------------------------------------------------------
+% title page
+% \TitlePicture{%
+% \parbox{.8\linewidth}{%
+% }%
+% }
+
+\begin{document}
+
+\section{Motivation}\secidx{Motivation}
+\cntformats provides a way to format counters with what I will call patterns.
+This does not in any way effect the usual \LaTeXe\ way of treating counters and
+does not use \cmd*{the<counter>} nor is it affected by the redefinition of them.
+
+This package is aimed at package or class authors and probably not very useful
+for document authors.
+
+When I first had the idea for this package the idea of what it does already
+existed as part of the \ExSheets package. I can't recall why I came up with
+the idea in the first place or why I originally wanted a new syntax for
+formatting the \code{question} counter. Anyway, here we are.
+\secidx*{Motivation}
+
+\section{License and Requirements}\label{sec:license}\secidx{Requirements}
+\cntformats is placed under the terms of the \LaTeX{} Project Public License,
+version 1.3 or later (\url{http://www.latex-project.org/lppl.txt}). It has the
+status ``maintained.''
+
+\cntformats requires the \paket{etoolbox} package.
+\secidx*{Requirements}
+
+\section{Example}\secidx{Example}
+A use case typically looks as follows:
+\begin{beispiel}
+ \ReadCounterPattern{se.sse}
+\end{beispiel}
+where the key \code{se} stands for the current value of the \code{section} counter
+and \code{sse} for \code{subsection}, respectively. \code{se.sse} is an example
+for what will be called \emph{pattern}. The keys for the counters can have optional
+arguments that specify the format:
+\begin{beispiel}
+ \stepcounter{subsection}
+ \ReadCounterPattern{se[A](sse[r])}
+\end{beispiel}
+\code{A} stands for \cmd{Alph} and \code{r} for \cmd{roman}. A complete list can
+be found in table~\ref{tab:predefined:formats} on page~\pageref{tab:predefined:formats}.
+As you can see you can insert arbitrary other tokens in a pattern that won't be
+changed. It is important to notice, though, that the patterns are only replaced
+if they're \emph{not} placed in a braced group!
+
+\begin{beispiel}
+ \ReadCounterPattern{{se[A](sse[r])}}
+\end{beispiel}
+
+I would imagine that the argument to \cmd{ReadCounterPattern} is usually
+supplied by a user setting an option \ldots
+\begin{beispiel}[code only]
+ \somesetupcommand{
+ counter-format = se[A](sse[r])
+ }
+\end{beispiel}
+\ldots{} and then internally used by the corresponding package or class.
+\secidx*{Example}
+
+\section{Usage}\secidx{Usage}
+In the following description of the available commands the symbol \expsign{}
+means that the command is expandable, \unexpsign{} means that it isn't.
+
+In order to make counters known to \cntformats the following commands are used:
+\begin{beschreibung}
+ \Befehl{AddCounterPattern}*[<module>]{<counter>}\ma{<pattern>}\newline
+ This command will make the (existing) counter \code{<counter>} known to
+ \cntformats and assign the pattern \code{<pattern>} to it.
+ \Befehl{NewCounterPattern}*[<module>]{<counter>}\ma{<pattern>}\newline
+ This command will create a new counter \code{<counter>}, make it known to
+ \cntformats and assign the pattern \code{<pattern>} to it.
+ \Befehl{ReadCounterFrom}[<module>]{<counter>}\ma{<internal cmd>}\newline
+ If you use one of the commands above with the starred version the number for
+ the pattern is not automatically fetched from the internal \cmd*{c@<counter>}.
+ This can now be assigned with \cmd{ReadCounterFrom} where \code{<internal cmd>}
+ is the macro that holds the number.
+\end{beschreibung}
+The commands above can only be used in the document preamble.
+
+After the creation of these pattern markers one wants to be able to use them.
+There are a number of macros that allow different aspects of usage.
+\begin{beschreibung}
+ \Befehl{ReadCounterPattern}[<module>]{<pattern>}\newline
+ Reads, interprets and prints a pattern.
+ \expandable\Befehl{@cntfmts@parsed@pattern}\newline
+ After \cmd{ReadCounterPattern} has been used the current pattern interpretation
+ is stored in this macro. The \emph{interpretation} is \emph{not} what is printed.
+ See the examples below for details.
+ \Befehl{ReadCounterPatternFrom}[<module>]{<macro that holds pattern>}\newline
+ Reads, interprets and prints a pattern that's stored in a macro.\\
+ Otherwise the same as \cmd{ReadCounterPattern}.
+ \Befehl{SaveCounterPattern}{<cmd a>}\ma{<cmd b>}\ma{<pattern>}\newline
+ Saves the \code{<pattern>} in \code{<cmd a>} and the interpreted pattern in
+ \code{<cmd b>}.
+ \Befehl{eSaveCounterPattern}[<module>]{<cmd a>}\ma{<cmd b>}\ma{<pattern>}\newline
+ Saves the \code{<pattern>} in \code{<cmd a>} and the expanded pattern in
+ \code{<cmd b>}.
+ \Befehl{SaveCounterPatternFrom}[<module>]{<cmd a>}\ma{<cmd b>}\ma{<macro that
+ holds pattern>}\newline
+ Like \cmd{SaveCounterPattern} but reads the pattern from a macro.
+ \Befehl{eSaveCounterPatternFrom}[<module>]{<cmd a>}\ma{<cmd b>}\ma{<macro that
+ holds pattern>}\newline
+ Like \cmd{eSaveCounterPattern} but reads the pattern from a macro.
+\end{beschreibung}
+
+The optional argument \code{<module>} should be specific for a package, say, so
+that different patterns for the \code{section} for example don't interfer with
+each other. If you leave the argument the default module \code{cntfmts} is used.
+
+The \ExSheets packages uses the commands with the module \code{exsheets}.
+You can find the following lines in \ExSheets' code:
+\begin{beispiel}[code only]
+ \AddCounterPattern*[exsheets]{section}{se}
+ \ReadCounterFrom[exsheets]{section} \l__exsheets_counter_sec_int
+ \NewCounterPattern*[exsheets]{question}{qu}
+ \ReadCounterFrom[exsheets]{question} \l__exsheets_counter_qu_int
+\end{beispiel}
+
+Now let's see a short example that hopefully explains what the macros do:
+\begin{beispiel}
+ % preamble
+ % \NewCounterPattern{testa}{ta}
+ \setcounter{testa}{11}
+ \ReadCounterPattern{ta}
+ \ReadCounterPattern{ta[a]} \\
+ \ttfamily\makeatletter
+ \meaning\@cntfmts@parsed@pattern
+
+ \bigskip
+ \SaveCounterPattern\tmpa\tmpb{ta[a]}
+ \meaning\tmpa \\
+ \meaning\tmpb
+
+ \bigskip
+ \eSaveCounterPattern\tmpa\tmpb{ta[a]}
+ \meaning\tmpa \\
+ \meaning\tmpb
+\end{beispiel}
+You can see that somehow additional (empty) groups and a \cmd*{relax} found their
+way into the interpreted and thus the expanded pattern. This is due to the fact
+that reading optional arguments expandably isn't easy and must have some safety
+net.
+\secidx*{Usage}
+
+\section{Predefined and New Patterns and Format Keys}\secidx{Predefined Patterns}
+\subsection{Predefined Patterns and Format Keys}
+\cntformats predefines a number of pattern keys. These are listed in
+table~\ref{tab:predefined:patterns}.
+
+\begin{multicols}{2}
+\begin{center}
+ \centering
+ \captionof{table}{Predefined Patterns for the module \code{cntfmts}.}\label{tab:predefined:patterns}
+ \begin{tabular}{>{\ttfamily}l>{\ttfamily}l}
+ \toprule
+ \normalfont\bfseries counter & \normalfont\bfseries pattern \\
+ \midrule
+ chapter & ch \\
+ section & se \\
+ subsection & sse \\
+ subsubsection & ssse \\
+ paragraph & pg \\
+ \bottomrule
+ \end{tabular}
+
+ \captionof{table}{Predefined Format Keys}\label{tab:predefined:formats}
+ \begin{tabular}{>{\ttfamily}ll}
+ \toprule
+ \normalfont\bfseries key & \normalfont\bfseries format \\
+ \midrule
+ 1 & \cmd{arabic} \\
+ a & \cmd{alph} \\
+ A & \cmd{Alph} \\
+ r & \cmd{roman} \\
+ R & \cmd{Roman} \\
+ \bottomrule
+ \end{tabular}
+\end{center}
+\end{multicols}
+
+\subsection{New Patterns and Format Keys}
+Table~\ref{tab:predefined:formats} lists the predefined formats. If you want you
+can add own formats.
+\begin{beschreibung}
+ \Befehl{NewPatternFormat}{<pattern>}\ma{<format>}\newline
+ \code{<format>} is a number presentation command like \cmd{@alph}, \textit{i.e.},
+ it needs a mandatory argument that takes a number. It is used in \code{<format>}
+ \emph{without} its argument. This command can only be used in the preamble.
+\end{beschreibung}
+
+Here are now a few examples of possible new patterns. Suppose the following code
+in the preamble:
+\begin{beispiel}[code only]
+ \usepackage{alphalph,fmtcount}
+ \newcommand*\myoddnumber[1]{\the\numexpr2*(#1)-1\relax}
+
+ \NewPatternFormat{aa}{\alphalph}
+ \NewPatternFormat{o}{\ordinalnum}
+ \NewPatternFormat{x}{\myoddnumber}
+
+ \newcounter{testa}
+ \NewCounterPattern{testa}{ta}
+ \setcounter{testa}{4}
+\end{beispiel}
+
+Then we can use the new pattern and the new formats as follows:\setcounter{testa}{4}
+\begin{beispiel}
+ \ReadCounterPattern{ta[aa]}
+ \ReadCounterPattern{ta[o]}
+ \ReadCounterPattern{ta[x]}
+\end{beispiel}
+\secidx*{Predefined Patterns}
+
+\section{Implementation}
+In the following code the lines 1--30 have been omitted. They only repeat the
+license statement which has already been mentioned in section~\ref{sec:license}.
+
+\implementation[linerange={31-1000},firstnumber=31]
+
+\indexprologue{\noindent Section titles are indicated \textbf{bold}, packages
+\textsf{sans serif}, commands \code{\textbackslash\textcolor{code}{brown}}
+ and options \textcolor{key}{\code{yellow}}.\par\bigskip}
+
+\printindex
+
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf b/Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf
index 50be4c19ddc..b70f61851f6 100644
--- a/Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf
+++ b/Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex b/Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex
index 74ed6fdc596..d71603bff11 100644
--- a/Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex
+++ b/Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex
@@ -26,10 +26,21 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-% The exsheets package consists of the files
+% The exsheets bundle consists of the files
% - exsheets.sty, exsheets_headings.def, exsheets_headings.cfg,
% exsheets_configurations.cfg,
-% - exsheets_en.tex, exsheets_en.pdf,
+% exsheets_en.tex, exsheets_en.pdf
+%
+% - tasks.sty, tasks.cfg, tasks_en.tex, task_en.pdf
+%
+% - translations.sty, translations_en.tex, translations_en.pdf,
+% translations-basic-dictionary-english.trsl,
+% translations-basic-dictionary-french.trsl,
+% translations-basic-dictionary-german.trsl,
+% translations-basic-dictionary-spanish.trsl
+%
+% - cntformats.sty, cntformats_en.tex, cntformats_en.pdf
+%
% - README
% --------------------------------------------------------------------------
% If you have any ideas, questions, suggestions or bugs to report, please
@@ -41,8 +52,9 @@
% https://bitbucket.org/cgnieder/cnpkgdoc/
% the class is licensed LPPL 1.3 or later
%
-% use `xelatex' and `biber' for compilation
+% use `pdflatex' and `biber' for compilation
%
+\PassOptionsToPackage{supstfm=libertinesups}{superiors}
\documentclass[DIV10,toc=index,toc=bib,numbers=noendperiod]{cnpkgdoc}
% ----------------------------------------------------------------------------
% document layout and typographic features
@@ -50,9 +62,13 @@
pkg = {[load-headings,load-tasks]exsheets} ,
url = {https://bitbucket.org/cgnieder/exsheets/} ,
title = the ExSheets bundle ,
- subtitle = {the packages \ExSheets, \Tasks, \translations and \cntformats\\
+ subtitle = {%
+ the packages \ExSheets, \href{tasks_en.pdf}{\Tasks},
+ \href{translations_en.pdf}{\translations} and
+ \href{cntformats_en.pdf}{\cntformats}\\
\emph{or}\\
- Yet another package for the creation of exercise sheets and exams.} ,
+ Yet another package for the creation of exercise sheets and exams.%
+ } ,
name = ExSheets ,
language = en ,
modules = true ,
@@ -170,7 +186,7 @@
\makeindex[options={-s \jobname.ist},intoc,columns=3]
\usepackage{csquotes}
-\usepackage[backend=biber]{biblatex}
+\usepackage[backend=biber,style=alphabetic]{biblatex}
\addbibresource{biblatex-examples.bib}
\addbibresource{\jobname.bib}
@@ -181,49 +197,56 @@
maintainer = {Joseph Wright},
date = {2010-10-11},
version = {2.13},
- url = {http://www.ctan.org/pkg/answers/}
+ url = {http://mirror.ctan.org/macros/latex/contrib/answers/}
}
@package{enumitem,
title = {enumitem},
author = {Javier Bezos},
date = {2011-09-28},
version = {3.5.2},
- url = {http://www.ctan.org/pkg/enumitem/}
+ url = {http://mirror.ctan.org/macros/latex/contrib/enumitem/}
+}
+@package{eqexam,
+ title = {eqexam},
+ author = {D. P. Story},
+ date = {2011-09-01},
+ version = {3.0k},
+ url = {http://mirror.ctan.org/macros/latex/contrib/eqexam/}
}
@package{exam,
title = {exam},
author = {Philip Hirschhorn},
date = {2011-05-22},
version = {2.4},
- url = {http://www.ctan.org/pkg/exam/}
+ url = {http://mirror.ctan.org/macros/latex/contrib/exam/}
}
@package{examdesign,
title = {examdesign},
author = {Jason Alexander},
date = {2001-03-26},
version = {1.1},
- url = {http://www.ctan.org/pkg/examdesign/}
+ url = {http://mirror.ctan.org/macros/latex/contrib/examdesign/}
}
@package{exercise,
title = {exercise},
author = {Paul Pichaureau},
date = {2012-05-08},
version = {1.58},
- url = {http://www.ctan.org/pkg/answers/}
+ url = {http://mirror.ctan.org/macros/latex/contrib/answers/}
}
@package{multienum,
title = {multienum},
author = {Dennis Kletzing},
date = {2005-05-19},
version = {n.n.},
- url = {http://www.ctan.org/pkg/multienum/}
+ url = {http://mirror.ctan.org/macros/latex/contrib/multienum/}
}
@package{probsoln,
title = {probsoln},
author = {Nicola L. C. Talbot},
- date = {2011-12-10},
- version = {3.02},
- url = {http://www.ctan.org/pkg/probsolns/}
+ date = {2012-08-23},
+ version = {3.04},
+ url = {http://mirror.ctan.org/macros/latex/contrib/probsoln/}
}
\end{filecontents}
@@ -338,10 +361,11 @@ It has the status ``maintained.''
\section{Motivation}\secidx[Motivation]{Preliminary}
There are already quite a number of packages that allow the creation of exercise
-sheets or written exams. Just to name the most common ones: \paket{exam}~\cite{exam},
-\paket{examdesign}~\cite{examdesign}, \paket{exercise}~\cite{exercise},
-\paket{probsoln}~\cite{probsoln}, \paket{answers}~\cite{answers} (and
-\href{http://www.ctan.org/characterization/primary/document-types/exams-exercise-sets-and-answers/}{many more}).
+sheets or written exams. Just to name the most common ones:
+\paket*{eqexam}~\cite{eqexam}, \paket*{exam}~\cite{exam},
+\paket*{examdesign}~\cite{examdesign}, \paket*{exercise}~\cite{exercise},
+\paket*{probsoln}~\cite{probsoln}, \paket*{answers}~\cite{answers} (and many more%
+\footnote{see \url{http://www.ctan.org/characterization/primary/document-types/exams-exercise-sets-and-answers/}}).
One thing I missed in all packages that I've tried out\footnote{Well, probably I
didn't try hard enough\ldots} was a high flexibility in choosing which questions
@@ -367,14 +391,14 @@ the \paket*{multienum} package~\cite{multienum}.}.
On the other hand \ExSheets doesn't --~and probably won't~-- offer a real
possibility for creating multiple choice questions. As a fact it doesn't provide
many (if any) means to specify the \emph{type} of question or the structure. If
-these are your needs take a look at \paket{examdesign}, for example. Or exploit
-the possibilities \paket{enumitem}~\cite{enumitem} gives you.
+these are your needs take a look at \paket{examdesign}~\cite{examdesign}, for
+example. Or exploit the possibilities \paket{enumitem}~\cite{enumitem} gives you.
-I had the idea for this package in 2008. Back then my \TeX\ skills were by far
+I had the idea for this package in 2008. Back then my \TeX{} skills were by far
not good enough to write it. Actually, even today I wouldn't have been able to
realize it without all the l3 packages like \paket*{l3kernel} and \paket*{l3packages}.
-I actively began to develop \ExSheets in spring 2011 but it wasn't until now
-(September 2012) that I consider it stable enough for wider usage. At the time
+I actively began to develop \ExSheets in spring~2011 but it wasn't until now
+(September~2012) that I consider it stable enough for wider usage. At the time
of writing (\today) there still are probably lots of rough edges let alone bugs
so I am very interested in all kinds of feedback.
@@ -428,6 +452,19 @@ actually lead to the most annoying changes. In this case say
I am very sorry for any inconvenience! I am trying to keep such changes as minimal
and rare as possibly. However, it is not always avoidable when a package is new
and still a child. It will grow up eventually.
+
+\ExSheets' other packages -- \href{tasks_en.pdf}{\Tasks},
+\href{translations_en.pdf}{\translations} and \href{cntformats_en.pdf}{\cntformats}
+-- have gotten their own documentation which are essentially extracted from this
+very document you're reading now. They still will be documented in the main
+documentation (this document), though. Right now (April~25th~2013) the separate
+documentations do not contain much more information than is written here but they
+might, in time, get more details about the corresponding package.
+
+\section{Thanks}
+I need to thank the many users who gave me feedback so far! For one thing this
+shows me that \ExSheets is useful to people. It also led to many improvements
+like new features and countless bug fixes.
\secidx*{Preliminary}
\part{The \ExSheets package}\label{part:exsheets}\secidx{\ExSheets}[ExSheets]
@@ -814,6 +851,9 @@ You have two possibilities to display and count them:
option allows to set an extra word for it.
\Option[points]{use-name}{\default{true}|false}\Default{true}
Don't display the name at all. Or do.
+ \Option[points]{format}{<code>}\Default{\cmd*{@firtsofone}}
+ \sinceversion{0.9d}Format number plus name as a whole. Ideally \code{<code>} would
+ end with a command that takes an argument. Else number plus name will be braced.
\Option[points]{number-format}{<any code>}\Default{}
This option allows formatting of the number, \eg italics:
\key{number-format}{\cmd{textit}}.
@@ -2118,6 +2158,11 @@ will be loaded \cmd*{AtBeginDocument}.
\part{The \Tasks package (\tasksversion)}\label{part:tasks}
\secidx{\Tasks}[tasks]
+\section{About the Documentation}
+\noindent\sinceversion{0.9a}The \Tasks package got its own documentation --
+\url{tasks_en.pdf}. This effectively means that the following part won't be
+updated any more. Updates will go in the linked file instead.
+
\section{Motivation}\secidx[Motivation]{\Tasks}[tasks]
\noindent\changedversion{0.7}Originally \Tasks has been an integral part of
\ExSheets. However, users told me that it indeed could be useful to have it as a
@@ -2255,6 +2300,11 @@ The environment itself has some more options, namely these:
Sets the width of the item labels.
\Option{label-offset}{<dim>}\Default{.3333em}
\sinceversion{0.7}Sets the offset, \emph{i.e.}, the distance between label and item.
+ \Option{item-indent}\Default{2.5em}
+ \sinceversion{0.9a}The indent of an item, \textit{i.e.}, the horizontal space
+ available for both label and label-offset. If \code{indent = label-width + label=offset}
+ the label will align with the textblock above (if \key{label-align}{left} is
+ set).
\Option{label-align}{left|right|center}\Default{left}
\sinceversion{0.7}Determines how the labels are aligned within the label-box
whose width is set with \key{label-width}
@@ -2467,6 +2517,11 @@ This is rather brief this time:
\part{The \translations package (\trnsltversion)}
\label{part:translations}\secidx{\translations}[translations]
+\section{About the Documentation}
+\noindent\sinceversion{0.9a}The \translations package got its own documentation --
+\url{translations_en.pdf}. This effectively means that the following part won't be
+updated any more. Updates will go in the linked file instead.
+
\section{Motivation}\secidx[Motivation]{\translations}[translations]
I wrote this package when I was in need for an expandable version of
\paket*{translator}'s \cmd{translate}. If you don't need that then there is no
@@ -2528,7 +2583,9 @@ These are the commands provided by \translations:
specified language.
\Befehl{LoadDictionaryFor}{<lang>}\ma{<name>}\newline
Loads a file named \code{<name>-<lang>.trsl}.
- \Befehl{DeclareDictTranslation}{<key>}\ma{<translation>}% TODO: beschreibung
+\Befehl{DeclareDictTranslation}{<key>}\ma{<translation>}\newline
+ This command is to be used in a dictionary file and picks up the language
+ of that file.
\end{beschreibung}
Quite a number of languages already are defined, either directly or via an alias.
So, before you define a language you should take a look in \code{translations.sty}
@@ -2577,6 +2634,11 @@ A typical dictionary file should look as follows:
\part{The \cntformats package (\cntfmtsversion)}
\label{part:cntformats}\secidx{\cntformats}[cntformats]
+\section{About the Documentation}
+\noindent\sinceversion{0.5}The \cntformats{} package got its own documentation --
+\url{cntformats_en.pdf}. This effectively means that the following part won't be
+updated any more. Updates will go in the linked file instead.
+
\section{Motivation}\secidx[Motivation]{\cntformats}[cntformats]
\cntformats provides a way to format counters with what I will call patterns.
This does not in any way effect the usual \LaTeXe\ way of treating counters and
@@ -2601,7 +2663,7 @@ arguments that specify the format:
\stepcounter{subsection}
\ReadCounterPattern{se[R](sse[a])}
\end{beispiel}
-\code{A} stands for \cmd{Alph} and \code{r} for \cmd{roman}. A complete list can
+\code{R} stands for \cmd{Roman} and \code{a} for \cmd{alph}. A complete list can
be found in table~\ref{tab:predefined:formats} on page~\pageref{tab:predefined:formats}.
As you can see you can insert arbitrary other tokens in a pattern that won't be
changed.
diff --git a/Master/texmf-dist/doc/latex/exsheets/tasks_en.pdf b/Master/texmf-dist/doc/latex/exsheets/tasks_en.pdf
new file mode 100644
index 00000000000..877e59b6538
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/exsheets/tasks_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/exsheets/tasks_en.tex b/Master/texmf-dist/doc/latex/exsheets/tasks_en.tex
new file mode 100644
index 00000000000..7bc73eaac63
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/exsheets/tasks_en.tex
@@ -0,0 +1,564 @@
+% arara: pdflatex
+% arara: biber
+% arara: pdflatex
+% arara: pdflatex
+% --------------------------------------------------------------------------
+% the TASKS package
+%
+% horizontal columned lists
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://bitbucket.org/cgnieder/exsheets/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2011-2013 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+% The tasks package is part of the exsheets bundle
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+%
+% if you want to compile this documentation you'll need the document class
+% `cnpkgdoc' which you can get here:
+% https://bitbucket.org/cgnieder/cnpkgdoc/
+% the class is licensed LPPL 1.3 or later
+%
+% use `pdflatex' and `biber' for compilation
+%
+\PassOptionsToPackage{supstfm=libertinesups}{superiors}
+\documentclass[DIV9,toc=index,toc=bib,numbers=noendperiod]{cnpkgdoc}
+% ----------------------------------------------------------------------------
+% document layout and typographic features
+\docsetup{
+ pkg = {[more]tasks} ,
+ url = {https://bitbucket.org/cgnieder/exsheets/} ,
+ title = \Tasks ,
+ subtitle = {{\small part of the \href{exsheets_en.pdf}{\ExSheets} bundle}\\[\baselineskip]create horizontal columned lists} ,
+ name = tasks ,
+ language = en ,
+ modules = true ,
+ code-box = {
+ backgroundcolor = gray!7!white ,
+ skipbelow = .6\baselineskip plus .5ex minus .5ex ,
+ skipabove = .6\baselineskip plus .5ex minus .5ex ,
+ innerleftmargin = 1.5em ,
+ innerrightmargin = 2.5em
+ } ,
+ gobble = 1
+}
+\usepackage{libertinehologopatch}
+\cnpkgusecolorscheme{friendly}
+
+\usepackage[biblatex]{embrac}[2012/06/29]
+ \ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+ \ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+\usepackage{microtype}
+\usepackage[multiple]{fnpct}
+
+\renewcommand*\othersectionlevelsformat[3]{\textcolor{main}{#3\autodot}\enskip}
+\renewcommand*\partformat{\textcolor{main}{\partname~\thepart\autodot}}
+
+\pagestyle{headings}
+
+\setcapindent{1.5em}
+\setkomafont{caption}{\normalfont\footnotesize\sffamily}
+\setkomafont{captionlabel}{\normalfont\footnotesize\sffamily\scshape}
+
+\usepackage{booktabs,array,ragged2e}
+
+% ----------------------------------------------------------------------------
+% code examples
+\newcommand*\Tasks{{\scshape\textcolor{main}{tasks}}\xspace}
+\newcommand*\ExSheets{{\scshape\textcolor{main}{ExSheets}}\xspace}
+
+\addcmds{
+ choice, correct,
+ DeclareInstance, DeclareTemplateInterface,
+ leftthumbsup, NewTasks,
+ s, sample, settasks, task
+}
+
+% ----------------------------------------------------------------------------
+% other packages, bibliography, index
+\usepackage{xcoffins,wasysym,enumitem,booktabs,siunitx}
+\usepackage[accsupp]{acro}
+\DeclareAcronym{id}{
+ short = id ,
+ long = Identifier ,
+ format = \scshape ,
+ pdfstring = ID ,
+ accsupp = ID
+}
+
+\usepackage{filecontents}
+\usepackage{imakeidx}
+\begin{filecontents*}{\jobname.ist}
+ heading_prefix "{\\bfseries "
+ heading_suffix "\\hfil}\\nopagebreak\n"
+ headings_flag 1
+ delim_0 "\\dotfill\\hyperpage{"
+ delim_1 "\\dotfill\\hyperpage{"
+ delim_2 "\\dotfill\\hyperpage{"
+ delim_r "}\\textendash\\hyperpage{"
+ delim_t "}"
+ suffix_2p "\\nohyperpage{\\,f.}"
+ suffix_3p "\\nohyperpage{\\,ff.}"
+\end{filecontents*}
+\indexsetup{othercode=\footnotesize}
+\makeindex[options={-s \jobname.ist},intoc,columns=3]
+
+\usepackage{csquotes}
+\usepackage[backend=biber,style=alphabetic]{biblatex}
+
+
+% ----------------------------------------------------------------------------
+% example definitions that have to be done in the preamble:
+\usepackage{exsheets}
+\usepackage{dingbat}
+\NewTasks[style=multiplechoice]{choices}[\choice](3)
+\newcommand*\correct{\PrintSolutionsTF{\checkedchoicebox}{\choicebox}}
+
+% ----------------------------------------------------------------------------
+% custom commands
+\newcommand*\Default[1]{%
+ \hfill\llap
+ {%
+ \ifblank{#1}%
+ {(initially~empty)}%
+ {Default:~\code{#1}}%
+ }%
+ \newline
+}
+\newcommand*\required{\hfill\llap{required}\newline}
+\newcommand*\optional{\hfill\llap{optional}\newline}
+
+\newcommand*\nooption[2]{\item[\code{\textcolor{key}{#1} = #2}] \cnpkgdocarrow\ }
+
+\newcommand*\unexpsign{$\RHD$}
+\newcommand*\expsign{\textcolor{red}{$\rhd$}}
+\renewcommand*\cnpkgdoctriangle{\unexpsign}
+\newcommand*\expandable{%
+ \def\cnpkgdoctriangle{%
+ \expsign
+ \gdef\cnpkgdoctriangle{\unexpsign}}}
+
+\usepackage{marginnote}
+\makeatletter
+\newcommand*\sinceversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Introduced in version~#1}}%
+ \@esphack}
+\newcommand*\changedversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Changed in version~#1}}%
+ \@esphack}
+\makeatother
+
+\pdfstringdefDisableCommands{\def\llap#1{#1\space}\def\bigstar{*}}
+
+% ----------------------------------------------------------------------------
+% title page
+% \TitlePicture{%
+% \parbox{.8\linewidth}{%
+% }%
+% }
+
+\def\s{This is some sample text we will use to create a somewhat
+ longer text spanning a few lines.}
+\def\sample{\s\ \s\par\s}
+
+\begin{document}
+
+\section{Motivation}\secidx{Motivation}
+\noindent\changedversion{0.7}Originally \Tasks has been an integral part of
+\ExSheets. However, users told me that it indeed could be useful to have it as a
+stand-alone package not having to load the whole \ExSheets beast just for having
+the \code{tasks} environment available. Since I agree with this the environment
+has been extracted into a package if its own, \Tasks.
+
+The reason for the \code{tasks} environment is an unwritten agreement in German
+maths textbooks (in (junior) high school, especially) to organize exercises in
+columns counting horizontally rather than vertically. That is what \code{tasks}
+primarily is for. If you don't need this feature you're better off using traditional
+\LaTeX{} lists and the \paket{enumitem} package for customization.
+\secidx*{Motivation}
+
+\section{License and Requirements}\label{sec:license}\secidx{Requirements}
+\Tasks is placed under the terms of the \LaTeX{} Project Public License,
+version 1.3 or later (\url{http://www.latex-project.org/lppl.txt}). It has the
+status ``maintained.''
+
+\Tasks requires packages \paket{l3kernel} ,\paket{xparse}, \paket{l3keys2e},
+\paket{epic}, \paket*{cntformats}\footnote{Part of the \ExSheets bundle},
+\paket{xtemplate} and \paket{environ}.
+\secidx*{Requirements}
+
+\section{How it works}
+\subsection{The Basics}
+The \code{tasks} environment is similar to a list like \code{enumerate} but not
+the same:
+\begin{itemize}
+ \item The first difference: there is no pagebreak possible inside an item but
+ only between items.
+ \item The second difference: the enumeration default is a), b), c) \ldots
+ \item The third difference: there is a split at \emph{every} occurrence of the
+ item separator. For this reason the default separator is not \cmd*{item} but
+ \cmd{task} so it is unique to this environment only.
+ \item The fourth difference: the \code{tasks} environment cannot be nested. You
+ can, however, use an \code{itemize} environment or something in it.
+ \item The fifth difference: verbatim material cannot be used in it. You'll
+ have to use \cmd*{string}, \cmd*{texttt} or \cmd*{detokenize}. If this won't
+ suffice then don't use \code{tasks}.
+\end{itemize}
+
+\begin{beschreibung}
+ \Umg{tasks}[<options>]{\unskip\da{<num of columns>} \cmd{task}\ldots}
+\end{beschreibung}
+Let's see an example:
+\begin{beispiel}[code only]
+ % \sample is defined to contain some sample text:
+ % \def\s{This is some sample text we will use to create a somewhat
+ % longer text spanning a few lines.}
+ % \def\sample{\s\ \s\par\s}
+ Some text before the list.
+ \begin{tasks}
+ \task \sample
+ \task \sample
+ \task \sample
+ \end{tasks}
+ And also some text after it.
+\end{beispiel}
+Some text before the list.
+\begin{tasks}
+ \task \sample
+ \task \sample
+ \task \sample
+\end{tasks}
+And also some text after it.
+
+The environment takes the optional argument \da{<num of columns>} with which the
+number of columns used by the environment is specified.
+\begin{beispiel}[code only]
+ \begin{tasks}(2)
+ \task \sample
+ \task \s\ \s
+ \task \s
+ \task \sample
+ \task \s\par\s
+ \end{tasks}
+\end{beispiel}
+\begin{tasks}(2)
+ \task \sample
+ \task \s\ \s
+ \task \s
+ \task \sample
+ \task \s\par\s
+\end{tasks}
+
+\subsection{Introducing a New Row}
+\noindent\sinceversion{0.9}Sometimes it may come in handy if the current
+row of items could be terminated and a new one is started. This is possible
+with the following command:
+\begin{beschreibung}
+ \Befehl{startnewitemline}
+\end{beschreibung}
+\begin{beispiel}[code only]
+ \begin{tasks}(4)
+ \task the first
+ \task the second
+ \task the third
+ \task the fourth
+ \task \rlap{the fifth item is way too long for this so we start a new row} \startnewitemline
+ \task the sixth
+ \task the seventh
+ \task \rlap{the eighth item also is too long} \startnewitemline
+ \task the nineth
+ \task the tenth
+ \end{tasks}
+\end{beispiel}
+\begin{tasks}(4)
+ \task the first
+ \task the second
+ \task the third
+ \task the fourth
+ \task \rlap{the fifth item is way too long for this so we start a new row} \startnewitemline
+ \task the sixth
+ \task the seventh
+ \task \rlap{the eighth item also is too long} \startnewitemline
+ \task the nineth
+ \task the tenth
+\end{tasks}
+
+\section{Available Options}\secidx{Options}\label{sec:tasks:options}
+The \Tasks package has one package option which also is called when you load
+\ExSheets with the \key{load-tasks} option.
+\begin{beschreibung}
+ \Option{more}\newline
+ load additional instances for the \code{tasks} object, details are explained
+ later in section~\ref{sec:tasks:instances}.
+\end{beschreibung}
+
+The environment itself has some more options, namely these:
+\begin{beschreibung}
+ \Option{style}{<instance>}\Default{}
+ Choose the instance to be used. Read more on this in section~\ref{sec:tasks}.
+ \Option{counter-format}{<counter specs>}\Default{}
+ \sinceversion{0.9}Sets a custom label. The letters \code{tsk} are replaced
+ with the task-counter. An optional argument directly following these letters
+ specifies the counter format: \code{1}: \cmd{arabic}, \code{a}: \cmd{alph},
+ \code{A}: \cmd{Alph}, \code{r}: \cmd{roman} and \code{R}: \cmd{Roman}.
+ \Option{label-format}{<code>}\Default{}
+ \changedversion{0.9}Can be used to apply a formatting like, \emph{e.g.},
+ \cmd*{bfseries} to the labels.
+ \Option{label}{<code>}\Default{}
+ \changedversion{0.9}Overwrite the automatic label to a custom one.
+ \Option{label-width}{<dim>}\Default{1em}
+ Sets the width of the item labels.
+ \Option{label-offset}{<dim>}\Default{.3333em}
+ \sinceversion{0.7}Sets the offset, \emph{i.e.}, the distance between label and item.
+ \Option{item-indent}\Default{2.5em}
+ \sinceversion{0.9a}The indent of an item, \textit{i.e.}, the horizontal space
+ available for both label and label-offset. If \code{indent = label-width + label=offset}
+ the label will align with the textblock above (if \key{label-align}{left} is
+ set).
+ \Option{label-align}{left|right|center}\Default{left}
+ \sinceversion{0.7}Determines how the labels are aligned within the label-box
+ whose width is set with \key{label-width}
+ \Option{before-skip}{<skip>}\Default{0pt}
+ Sets the skip before the list.
+ \Option{after-skip}{<skip>}\Default{0pt}
+ Sets the skip after the list.
+ \Option{after-item-skip}{<skip>}\Default{1ex plus 1ex minus 1ex}
+ \sinceversion{0.9}This vertical skip is inserted between rows of items.
+ \Option{resume}{\default{true}|false}\Default{false}
+ The enumeration will resume from a previous \code{tasks} environment. In order
+ to use this option properly you shouldn't mix different \code{tasks} environments
+ that both count their items.
+\end{beschreibung}
+These options can also be set using a setup command:
+\begin{beschreibung}
+ \Befehl{settasks}{<options>}
+\end{beschreibung}
+
+Now the same list as above but with three columns and a different label:
+\begin{beispiel}[code only]
+ \begin{tasks}[counter-format=(tsk[r]),label-width=4ex](3)
+ \task \sample
+ \task \s\ \s
+ \task \s
+ \task \sample
+ \task \s\par\s
+ \end{tasks}
+\end{beispiel}
+\begin{tasks}[counter-format=(tsk[r]),label-width=4ex](3)
+ \task \sample
+ \task \s\ \s
+ \task \s
+ \task \sample
+ \task \s\par\s
+\end{tasks}
+
+Let's use it inside a question, \textit{i.e.}, inside \ExSheets' \code{question}
+environment:
+\begin{beispiel}
+ % since settings are local the following ones will be lost
+ % outside this example;
+ \settasks{
+ counter-format = qu.tsk ,
+ item-indent = 2em ,
+ label-width = 2em ,
+ label-offset = 0pt
+ }
+ \begin{question}[type=exam]{4}
+ I have these two tasks for you. Shall we begin?
+ \begin{tasks}(2)
+ \task The first task: easy!
+ \task The second task: even more so!
+ \end{tasks}
+ \end{question}
+ \begin{solution}[print]
+ Now, let's see\ldots\ ah, yes:
+ \begin{tasks}
+ \task This is the first solution. Told you it was easy.
+ \task This is the second solution. And of course you knew that!
+ \end{tasks}
+ \end{solution}
+\end{beispiel}
+\secidx*{Options}
+
+\section{Available Instances}\label{sec:tasks:instances}
+When you use the package option \key{more} of the \Tasks package or load \ExSheets
+with the \key{load-tasks} option there are currently three additional instances
+for the \code{tasks} object available:
+\begin{description}
+ \item[itemize] uses \cmd{labelitemi} as labels.
+ \item[enumerate] enumerates the items with 1., 2., \ldots
+ \item[multiplechoice] a --~well~-- `multiple choice' list.
+\end{description}
+\begin{beispiel}
+ \begin{tasks}[style=itemize](2)
+ \task that's just how\ldots
+ \task \ldots we expected
+ \end{tasks}
+ \begin{tasks}[style=enumerate](2)
+ \task that's just how\ldots
+ \task \ldots we expected
+ \end{tasks}
+ \begin{tasks}[style=multiplechoice](2)
+ \task that's just how\ldots
+ \task \ldots we expected
+ \end{tasks}
+\end{beispiel}
+
+\section{Custom Labels}\secidx{Custom Labels}
+If you want to change a single label inside a list, you can use the optional
+argument of \cmd{task}. This will temporarily overwrite the default label.
+\begin{beispiel}
+ \begin{tasks}[style=itemize]
+ \task a standard item
+ \task another one
+ \task[+] a different one
+ \task and another one
+ \end{tasks}
+\end{beispiel}
+\secidx*{Custom Labels}
+
+\section{New Tasks}\secidx{Own Environments}
+It is possible to add custom environments that work like the \code{tasks} environment.
+\begin{beschreibung}
+ \Befehl{NewTasks}[<options>]{<name>}\oa{<separator}\da{<cols>}\newline
+ Define environment \ma{<name>} that uses \code{<separator>} to introduce a
+ new item. Default for \code{<separator>} is \cmd{task}, default for
+ \code{<cols>} is \code{1}. The \code{<options>} are the ones described in
+ section~\ref{sec:tasks:options}.
+ \Befehl{RenewTasks}[<options>]{<name>}\oa{<separator}\da{<cols>}\newline
+ Renew environment previously defined with \cmd{NewTasks}.
+\end{beschreibung}
+The \code{tasks} environment is defined as follows:
+\begin{beispiel}[code only]
+ \NewTasks{tasks}
+\end{beispiel}
+
+The separator does not have to be a control sequence:
+\begin{beispiel}
+ % preamble:
+ % \usepackage{dingbat}
+ \NewTasks[label=\footnotesize\leftthumbsup,label-width=1.3em]{done}[*]
+ \begin{done}
+ * First task
+ * Second Task
+ \end{done}
+\end{beispiel}
+Although this might seem handy or even nice I strongly advice against using
+something different than a command sequence. Remember that the items will be
+split at \emph{every} occurrence of the separator. So in order to use the
+separator (here for example for a starred variant of a command) within an item
+it has to be hidden in braces. This is avoided of you use a command sequence
+which even doesn't have to be defined.
+
+Let's say you want a \code{choices} environment that has three columns in its
+default state. You could do something like this:
+\begin{beispiel}
+ % preamble:
+ % \NewTasks[style=multiplechoice]{choices}[\choice](3)
+ % \newcommand*\correct{\PrintSolutionsTF{\checkedchoicebox}{\choicebox}}
+ %
+ % \PrintSolutionsTF and the {question} environment are provided
+ % by the ExSheets package
+ \begin{question}
+ \begin{choices}
+ \choice First choice
+ \choice Second choice
+ \choice[\correct] Third choice
+ \end{choices}
+ \end{question}
+ \begin{solution}[print]
+ \begin{choices}
+ \choice First choice
+ \choice Second choice
+ \choice[\correct] Third choice
+ \end{choices}
+ \end{solution}
+\end{beispiel}
+
+The last example shows you two additional commands:
+\begin{beschreibung}
+ \Befehl{choicebox} \choicebox
+ \Befehl{checkedchoicebox} \checkedchoicebox
+\end{beschreibung}
+\secidx*{Own Environments}
+
+\section{Styling \Tasks}
+Equivalent to the styling of \ExSheets{} \Tasks uses \paket{xtemplate} to
+declare additional instances for the lists.
+
+\subsection{The \code{tasks} Object}\label{sec:tasks}\secidx{The `tasks' Object}
+The object that's defined by \Tasks is the `tasks' object.
+This time there are four instances available for the one template (again
+`default') that was defined.
+
+\subsubsection{Available Options}
+This section only lists the options that can be used when defining an instance
+of the `default' template. The following subsections will give some examples
+of their usage.
+
+\begin{beispiel}[code only]
+ \DeclareTemplateInterface{tasks}{default}{3}
+ {
+ % option : type = default
+ enumerate : boolean = true ,
+ label : tokenlist ,
+ indent : length = 2.5em ,
+ counter-format : tokenlist = tsk[a]) ,
+ label-format : tokenlist ,
+ label-width : length = 1em ,
+ label-offset : length = .3333em ,
+ after-item-skip : skip = 1ex plus 1ex minus 1ex
+ }
+\end{beispiel}
+
+\subsubsection{Predefined Instances}
+This is rather brief this time:
+\begin{beispiel}[code only]
+ % ALPHABETIZE: a) b) c)
+ \DeclareInstance{tasks}{alphabetize}{default}{}
+ % available when `load-tasks=true':
+ % ITEMIZE:
+ \DeclareInstance{tasks}{itemize}{default}
+ {
+ enumerate = false ,
+ label-width = 1.125em
+ }
+ % ENUMERATE:
+ \DeclareInstance{tasks}{enumerate}{default}
+ { counter-format = tsk. }
+ % MULTIPLECHOICE:
+ \DeclareInstance{tasks}{multiplechoice}{default}
+ {
+ enumerate = false ,
+ label = \choicebox ,
+ }
+\end{beispiel}
+\secidx*{The `tasks' Object}
+
+\printindex
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/exsheets/translations_en.pdf b/Master/texmf-dist/doc/latex/exsheets/translations_en.pdf
new file mode 100644
index 00000000000..8252b58e4de
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/exsheets/translations_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/exsheets/translations_en.tex b/Master/texmf-dist/doc/latex/exsheets/translations_en.tex
new file mode 100644
index 00000000000..81dd771c158
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/exsheets/translations_en.tex
@@ -0,0 +1,335 @@
+% arara: pdflatex
+% arara: pdflatex
+% --------------------------------------------------------------------------
+% the TRANSLATIONS package
+%
+% a simple translator
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://bitbucket.org/cgnieder/exsheets/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2011-2013 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+% The translations package is part of the exsheets bundle
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+%
+% if you want to compile this documentation you'll need the document class
+% `cnpkgdoc' which you can get here:
+% https://bitbucket.org/cgnieder/cnpkgdoc/
+% the class is licensed LPPL 1.3 or later
+%
+% use `pdflatex' for compilation
+%
+\PassOptionsToPackage{supstfm=libertinesups}{superiors}
+\documentclass[DIV9,toc=index,toc=bib,numbers=noendperiod]{cnpkgdoc}
+% ----------------------------------------------------------------------------
+% document layout and typographic features
+\docsetup{
+ pkg = {translations} ,
+ url = {https://bitbucket.org/cgnieder/exsheets/} ,
+ subtitle = {{\small part of the \href{exsheets_en.pdf}{\ExSheets} bundle}\\[\baselineskip]a simple translator} ,
+ language = en ,
+ modules = true ,
+ code-box = {
+ backgroundcolor = gray!7!white ,
+ skipbelow = .6\baselineskip plus .5ex minus .5ex ,
+ skipabove = .6\baselineskip plus .5ex minus .5ex ,
+ innerleftmargin = 1.5em ,
+ innerrightmargin = 2.5em
+ } ,
+ gobble = 1
+}
+\usepackage{libertinehologopatch}
+\cnpkgusecolorscheme{friendly}
+
+\usepackage[biblatex]{embrac}[2012/06/29]
+ \ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+ \ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+\usepackage{microtype}
+\usepackage[multiple]{fnpct}
+
+\renewcommand*\othersectionlevelsformat[3]{\textcolor{main}{#3\autodot}\enskip}
+\renewcommand*\partformat{\textcolor{main}{\partname~\thepart\autodot}}
+
+\pagestyle{headings}
+
+\setcapindent{1.5em}
+\setkomafont{caption}{\normalfont\footnotesize\sffamily}
+\setkomafont{captionlabel}{\normalfont\footnotesize\sffamily\scshape}
+
+\usepackage{booktabs,array,ragged2e}
+
+% ----------------------------------------------------------------------------
+% code examples
+\addcmds{
+ cuisine,
+ DeclareDictTranslation, DeclareLanguage, DeclareLanguageAlias,
+ DeclareLanguageDialect, DeclareTranslation, DeclareTranslationFallback,
+ GetTranslation, GetTranslationFor,
+ kitchen,
+ LoadDictionary, LoadDictionaryFor,
+ mypackage@title,
+ NewTranslation,
+ ProvideDictionaryFor,
+ RenewTranslation,RequirePackage,
+ SaveTranslation, SaveTranslationFor, selectlanguage
+}
+
+% ----------------------------------------------------------------------------
+% other packages, bibliography, index
+\usepackage{xcoffins,wasysym,enumitem,booktabs,siunitx}
+\usepackage[accsupp]{acro}
+\DeclareAcronym{id}{
+ short = id ,
+ long = Identifier ,
+ format = \scshape ,
+ pdfstring = ID ,
+ accsupp = ID
+}
+
+\usepackage{filecontents}
+\usepackage{imakeidx}
+\begin{filecontents*}{\jobname.ist}
+ heading_prefix "{\\bfseries "
+ heading_suffix "\\hfil}\\nopagebreak\n"
+ headings_flag 1
+ delim_0 "\\dotfill\\hyperpage{"
+ delim_1 "\\dotfill\\hyperpage{"
+ delim_2 "\\dotfill\\hyperpage{"
+ delim_r "}\\textendash\\hyperpage{"
+ delim_t "}"
+ suffix_2p "\\nohyperpage{\\,f.}"
+ suffix_3p "\\nohyperpage{\\,ff.}"
+\end{filecontents*}
+\indexsetup{othercode=\footnotesize}
+\makeindex[options={-s \jobname.ist},intoc,columns=3]
+
+\usepackage{csquotes}
+\usepackage[backend=biber,style=alphabetic]{biblatex}
+
+
+% ----------------------------------------------------------------------------
+% example definitions that have to be done in the preamble:
+\DeclareTranslation{English}{Kueche}{kitchen}
+\DeclareTranslation{German}{Kueche}{K\"uche}
+\DeclareTranslation{Spanish}{Kueche}{cocina}
+\DeclareTranslation{French}{Kueche}{cuisine}
+\DeclareTranslation{English}{foo}{foo}
+\DeclareTranslation{British}{foo}{bar}
+
+% ----------------------------------------------------------------------------
+% custom commands
+\newcommand*\ExSheets{{\scshape\textcolor{main}{ExSheets}}\xspace}
+\newcommand*\Default[1]{%
+ \hfill\llap
+ {%
+ \ifblank{#1}%
+ {(initially~empty)}%
+ {Default:~\code{#1}}%
+ }%
+ \newline
+}
+\newcommand*\required{\hfill\llap{required}\newline}
+\newcommand*\optional{\hfill\llap{optional}\newline}
+
+\newcommand*\nooption[2]{\item[\code{\textcolor{key}{#1} = #2}] \cnpkgdocarrow\ }
+
+\newcommand*\unexpsign{$\RHD$}
+\newcommand*\expsign{\textcolor{red}{$\rhd$}}
+\renewcommand*\cnpkgdoctriangle{\unexpsign}
+\newcommand*\expandable{%
+ \def\cnpkgdoctriangle{%
+ \expsign
+ \gdef\cnpkgdoctriangle{\unexpsign}}}
+
+\usepackage{marginnote}
+\makeatletter
+\newcommand*\sinceversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Introduced in version~#1}}%
+ \@esphack}
+\newcommand*\changedversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Changed in version~#1}}%
+ \@esphack}
+\makeatother
+
+\pdfstringdefDisableCommands{\def\llap#1{#1\space}\def\bigstar{*}}
+
+% ----------------------------------------------------------------------------
+% title page
+% \TitlePicture{%
+% \parbox{.8\linewidth}{%
+% }%
+% }
+
+\begin{document}
+
+\section{Motivation}\secidx{Motivation}
+I wrote this package when I was in need for an expandable version of
+\paket*{translator}'s \cmd{translate}. If you don't need that then there is
+very likely no need whatsoever for this package as \paket*{translator} from the
+\paket{beamer} bundle provides very similar functionality \translations does
+(except for: \paket{translator}'s \cmd{translate} isn't expandable,
+\cmd{GetTranslation} is.).
+\secidx*{Motivation}
+
+\section{License and Requirements}\label{sec:license}\secidx{Requirements}
+\translations is placed under the terms of the \LaTeX{} Project Public License,
+version 1.3 or later (\url{http://www.latex-project.org/lppl.txt}). It has the
+status ``maintained.''
+
+\translations requires the \paket{etoolbox} package.
+\secidx*{Requirements}
+
+\section{Usage}\secidx{Usage}
+\subsection{Available Commands}
+Below the commands provided by \translations are explained. The symbol \expsign{}
+means that the command is expandable, \unexpsign{} means that it isn't.
+\begin{beschreibung}
+ \Befehl{DeclareLanguage}{<lang>}\newline
+ Declare a language that can be used by \translations. If the language already
+ exists it will be silently redefined. This command can only be used in the preamble.
+ \Befehl{DeclareLanguageAlias}{<lang2>}\ma{<lang1>}\newline
+ Declares \code{<lang2>} to be an alias of \code{<lang1>}. If \code{<lang1>}
+ doesn't exist yet a warning will be raised and it will be defined. This command
+ can only be used in the preamble.
+ \Befehl{DeclareLanguageDialect}{<dialect>}\ma{<lang>}\newline
+ Declares \code{<dialect>} to be a dialect of language \code{<lang>}. If a
+ translation for \code{<dialect>} is provided it is used by the translation
+ macros. If there is none the corresponding translation for \code{<lang>} is
+ used instead.
+ \Befehl{NewTranslation}{<lang>}\ma{<key>}\ma{<translation>}\newline
+ Defines a translation of key \code{<key>} for the language \code{<lang>}.
+ An error will be raised if a translation of \code{<key>} already exists.
+ This command can only be used in the preamble.
+ \Befehl{RenewTranslation}{<lang>}\ma{<key>}\ma{<translation>}\newline
+ Redefines a translation of key \code{<key>} for the language \code{<lang>}.
+ An error will be raised if no translation of \code{<key>} exists.
+ This command can only be used in the preamble.
+ \Befehl{DeclareTranslation}{<lang>}\ma{<key>}\ma{<translation>}\newline
+ Defines a translation of key \code{<key>} for the language \code{<lang>}.
+ No error will be raised if a translation of \code{<key>} already exists.
+ This command can only be used in the preamble.
+ \Befehl{DeclareTranslationFallback}{<key>}\ma{<fallback>}\newline
+ Defines a fallback translation for key \code{<key>} that is used in case no
+ translation of \code{<key>} for the currently active language has been provided.
+ No error will be raised if a fallback for \code{<key>} already exists.
+ This command can only be used in the preamble.
+ \expandable\Befehl{GetTranslationFor}{<lang>}\ma{<key>}\newline
+ Fetches and prints the translation of \code{<key>} for the language \code{<lang>}.
+ This command is expandable.
+ \expandable\Befehl{GetTranslation}{<key>}\newline
+ Fetches and prints the translation of \code{<key>} for the currently active
+ language (as for example set by \paket{babel}). This command is expandable.
+ \Befehl{SaveTranslationFor}{<cmd>}\ma{<lang>}\ma{<key>}\newline
+ Fetches and saves the translation of \code{<key>} for the language \code{<lang>}
+ in the macro \code{<cmd>}.
+ \Befehl{SaveTranslation}{<cmd>}\ma{<key>}\newline
+ Fetches and saves the translation of \code{<key>} for the currently active
+ language (as for example set by \paket{babel}) in the macro \code{<cmd>}.
+ \Befehl{LoadDictionary}{<name>}\newline
+ Loads a file named \code{<name>-<lang>.trsl} where \code{<lang>} corresponds
+ to the lowercase name of the current language as defined with
+ \cmd{DeclareLanguage}. This file should contain the translations for the
+ specified language.
+ \Befehl{LoadDictionaryFor}{<lang>}\ma{<name>}\newline
+ Loads a file named \code{<name>-<lang>.trsl}.
+ \Befehl{DeclareDictTranslation}{<key>}\ma{<translation>}\newline
+ This command is to be used in a dictionary file and picks up the language
+ of that file, see section~\ref{sec:dictionaries} for an example.
+\end{beschreibung}
+Quite a number of languages already are defined, either directly or via an alias.
+So, before you define a language you should take a look in \code{translations.sty}
+if the language doesn't already exist.
+
+\subsection{A Small Example}
+Here is a small example of usage:
+\begin{beispiel}
+ % in the preamble:
+ % \DeclareTranslation{English}{Kueche}{kitchen}
+ % \DeclareTranslation{German}{Kueche}{K\"uche}
+ % \DeclareTranslation{Spanish}{Kueche}{cocina}
+ % \DeclareTranslation{French}{Kueche}{cuisine}
+
+ \GetTranslation{Kueche}
+ \SaveTranslation\kitchen{Kueche}
+ \SaveTranslationFor\cuisine{french}{Kueche}
+
+ \selectlanguage{ngerman}
+ \GetTranslation{Kueche} \kitchen\ \GetTranslationFor{spanish}{Kueche}
+ \cuisine
+\end{beispiel}
+
+There is also support for dialects:
+\begin{beispiel}
+ % in the preamble:
+ % \DeclareTranslation{English}{foo}{foo}
+ % \DeclareTranslation{British}{foo}{bar}
+ \GetTranslationFor{English}{foo} \\
+ \GetTranslationFor{British}{foo} \\
+ \GetTranslationFor{American}{foo}
+\end{beispiel}
+
+\subsection{Usage in Packages}
+In package a typical usage in a package would look as follows:
+\begin{beispiel}[code only]
+ \RequirePackage{translations}
+ \DeclareTranslationFallback{mypackage-title}{Nice Title}
+ \DeclareTranslation{English}{mypackage-title}{Nice Title}
+ \DeclareTranslation{French}{mypackage-title}{Beau Titre}
+ \DeclareTranslation{German}{mypackage-title}{Sch\"{o}ner Titel}
+ ...
+ \def\mypackage@title{\GetTranslation{mypackage-title}}
+\end{beispiel}
+
+
+\subsection{Dictionaries}\label{sec:dictionaries}
+A typical dictionary file should look as follows:
+\begin{beispiel}[code only]
+ % this is file housing-german.trsl
+ \ProvideDictionaryFor{German}{housing}[<version info>]
+ \DeclareDictTranslation{kitchen (housing)}{K\"uche}
+ \DeclareDictTranslation{bathroom (housing)}{Bad}
+ \DeclareDictTranslation{living room (housing)}{Wohnzimmer}
+ \DeclareDictTranslation{bedroom (housing)}{Schlafzimmer}
+ ...
+ \endinput
+\end{beispiel}
+
+\secidx*{Usage}
+
+\section{Implementation}
+In the following code the lines 1--30 have been omitted. They only repeat the
+license statement which has already been mentioned in section~\ref{sec:license}.
+
+\implementation[linerange={31-1000},firstnumber=31]
+
+\indexprologue{\noindent Section titles are indicated \textbf{bold}, packages
+\textsf{sans serif}, commands \code{\textbackslash\textcolor{code}{brown}}
+ and options \textcolor{key}{\code{yellow}}.\par\bigskip}
+
+\printindex
+
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/exsheets/cntformats.sty b/Master/texmf-dist/tex/latex/exsheets/cntformats.sty
index dcf99e3b027..f97ca6147e0 100644
--- a/Master/texmf-dist/tex/latex/exsheets/cntformats.sty
+++ b/Master/texmf-dist/tex/latex/exsheets/cntformats.sty
@@ -23,14 +23,13 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-% The cntformats package consists of the files
-% - cntformats.sty
+% The cntformats package is part of the exsheets bundle
% --------------------------------------------------------------------------
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-\def\@cntfmts@date{2012/11/08}
-\def\@cntfmts@version{v0.4}
+\def\@cntfmts@date{2012/04/23}
+\def\@cntfmts@version{v0.5}
\ProvidesPackage{cntformats}[\@cntfmts@date\space \@cntfmts@version\space A different way to read counters.]
\RequirePackage{etoolbox}
@@ -67,7 +66,7 @@
% if you happen to read this code and notice some obvious reasons why these
% macros shoudn't be used like this, please send me your improved version
% (seriously! But please explain why yours is better)
-\def\ifintl#1#2{%
+\long\def\@cntfmts@ifintl#1#2{%
\def\@cntfmts@intl@tmpa##1#2{}%
\expandafter\if\expandafter\relax\expandafter
\detokenize\expandafter{\@cntfmts@intl@tmpa#1{}{}#2}\relax%
@@ -76,11 +75,11 @@
\expandafter\@firstoftwo
\fi
}
-\def\ifintlcs#1{%
- \expandafter\ifintl\expandafter{#1}}
+\long\def\@cntfmts@ifintlcs#1{%
+ \expandafter\@cntfmts@ifintl\expandafter{#1}}
-\long\def\replaceonceincs#1#2#3{%
- \ifintlcs#1{#2}%
+\long\def\@cntfmts@replaceonceincs#1#2#3{%
+ \@cntfmts@ifintlcs#1{#2}%
{\@cntfmts@replace@once@incs#1{#2}{#3}}{}%
}
\long\def\@cntfmts@replace@once@incs#1#2#3{%
@@ -89,21 +88,21 @@
\expandafter\@cntfmts@replo@tmpa#1\q@stop
}
-\long\def\replaceallin#1#2#3{%
+\long\def\@cntfmts@replaceallin#1#2#3{%
\def\@cntfmts@repla@tmpa{#1}%
- \replaceonceincs\@cntfmts@repla@tmpa{#2}{#3}%
- \ifintlcs\@cntfmts@repla@tmpa{#2}%
- {\expandafter\replaceallin\expandafter{\@cntfmts@repla@tmpa}{#2}{#3}}%
+ \@cntfmts@replaceonceincs\@cntfmts@repla@tmpa{#2}{#3}%
+ \@cntfmts@ifintlcs\@cntfmts@repla@tmpa{#2}%
+ {\expandafter\@cntfmts@replaceallin\expandafter{\@cntfmts@repla@tmpa}{#2}{#3}}%
{\expandonce\@cntfmts@repla@tmpa}%
}
-\long\def\replaceallincs#1#2#3{%
- \replaceonceincs#1{#2}{#3}%
- \ifintlcs#1{#2}{\replaceallincs#1{#2}{#3}}{}%
+\long\def\@cntfmts@replaceallincs#1#2#3{%
+ \@cntfmts@replaceonceincs#1{#2}{#3}%
+ \@cntfmts@ifintlcs#1{#2}{\@cntfmts@replaceallincs#1{#2}{#3}}{}%
}
% ----------------------------------------------------------------------------
% expansion tools
-% heavily inspired by expl3's \exp_args:N<spec>
+% heavily inspired by expl3's \exp_args:N<spec> -- one might say: copied
\long\def\@cntfmts@getnextbraced#1#2#3{#2\@cntfmts@firstofone{#3{#1}}}
\long\def\@cntfmts@firstofone#1{#1}
\long\def\@cntfmts@braced@unexpanded#1\@cntfmts@firstofone#2#3{%
@@ -158,7 +157,7 @@
% #2: counter
% #3: id
\newcommand*\@cntfmts@add@counter@pattern[3][cntfmts]{%
- \ifcsdef{the#2}
+ \ifcsdef{c@#2}
{}{\@cntfmts@err@unknown@counter{#2}}%
\ifcsdef{@#1@#2@counter}
{\@cntfmts@err@pattern@defined{#1}{#2}}
@@ -264,7 +263,7 @@
% #1: module
% #2: pattern-key
\def\@cntfmts@replace@pattern#1#2{%
- \replaceallincs\@cntfmts@parsed@pattern
+ \@cntfmts@replaceallincs\@cntfmts@parsed@pattern
{#2}{{}\csuse{@#1@read@#2@counter}}}
\newrobustcmd*\ReadCounterPattern[2][cntfmts]{%
@@ -310,15 +309,28 @@
\NewPatternFormat{r}{\@roman}
\NewPatternFormat{R}{\@Roman}
-\ifdef\theparagraph
+\ifdef\c@paragraph
{\AddCounterPattern{paragraph}{pg}}{}
-\ifdef\thesubsubsection
+\ifdef\c@subsubsection
{\AddCounterPattern{subsubsection}{ssse}}{}
-\ifdef\thesubsection
+\ifdef\c@subsection
{\AddCounterPattern{subsection}{sse}}{}
-\ifdef\thesection
+\ifdef\c@section
{\AddCounterPattern{section}{se}}{}
-\ifdef\thechapter
+\ifdef\c@chapter
{\AddCounterPattern{chapter}{ch}}{}
-\endinput \ No newline at end of file
+\endinput
+
+% HISTORY:
+2012/09/30 v0.2beta - first version (as part of the `exsheets' bundle)
+2012/11/08 v0.4 - stepped number with `exsheets' until now; next stepping
+ won't synchronize but will step to whatever deems
+ appropriate
+2012/04/23 v0.5 - changed tests for heading commands to test explicitly for
+ the associated counters
+ - change test for counter in \@cntfmts@add@counter@pattern
+ from \the<ounter> to \c@<ounter>
+ - rename tokenlist test macros to use cntformats'
+ namespace
+ \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/exsheets/exsheets.sty b/Master/texmf-dist/tex/latex/exsheets/exsheets.sty
index df10a42d33f..0d5fd6cbc35 100644
--- a/Master/texmf-dist/tex/latex/exsheets/exsheets.sty
+++ b/Master/texmf-dist/tex/latex/exsheets/exsheets.sty
@@ -31,8 +31,8 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% ----------------------------------------------------------------------------
-\def\exsheets@date{2013/04/21}
-\def\exsheets@version{0.9c}
+\def\exsheets@date{2013/04/25}
+\def\exsheets@version{0.9d}
\RequirePackage { expl3 , xparse }
\ProvidesExplPackage
@@ -88,6 +88,12 @@
\token_to_str:N \totalpoints .~I~will~do~nothing~instead.
}
+\msg_new:nnn { exsheets} { parse-points }
+ {
+ You~need~to~activate~"points/parse"~if~you~want~to~use~
+ \token_to_str:N #1 .~I~will~do~nothing~instead.
+ }
+
\msg_new:nnn { exsheets} { headings }
{
You~requested~the~headings~instance~`#1'~\msg_line_context: \c_space_tl
@@ -281,6 +287,8 @@
\tl_set:Nn \l__exsheets_points_pre_bonus_marker_tl { (+ }
\tl_new:N \l__exsheets_points_post_bonus_marker_tl
\tl_set:Nn \l__exsheets_points_post_bonus_marker_tl { ) }
+\tl_new:N \l__exsheets_points_format_tl
+\tl_set:Nn \l__exsheets_points_format_tl { \use:n }
\cs_new_protected_nopar:Npn \exsheets_set_points_name:n #1
{
@@ -310,11 +318,17 @@
% FIXME: \fp_add will deprecate!
\cs_new_protected_nopar:Npn \exsheets_add_points:n #1
- { \fp_gadd:Nn \g__exsheets_points_sum_fp { #1 } }
+ {
+ \fp_gadd:Nn \g__exsheets_points_sum_fp { #1 }
+ \fp_gadd:Nn \g__exsheets_this_question_points_fp { #1 }
+ }
\cs_generate_variant:Nn \exsheets_add_points:n { V }
\cs_new_protected_nopar:Npn \exsheets_add_bonus:n #1
- { \fp_gadd:Nn \g__exsheets_bonus_sum_fp { #1 } }
+ {
+ \fp_gadd:Nn \g__exsheets_bonus_sum_fp { #1 }
+ \fp_gadd:Nn \g__exsheets_this_question_bonus_fp { #1 }
+ }
\cs_generate_variant:Nn \exsheets_add_bonus:n { V }
\cs_new_protected_nopar:Npn \exsheets@sum@of@points #1
@@ -330,7 +344,7 @@
{
\bool_if:NTF \l__exsheets_parse_points_bool
{ \exsheets_num:n { \fp_to_decimal:n { #1 } } }
- { \use:n { \fp_to_decimal:n { #1 } } }
+ { \use:n { #1 } }
}
\group_end:
}
@@ -343,7 +357,7 @@
{
\bool_if:NTF \l__exsheets_parse_points_bool
{ \exsheets_num:n { \fp_to_decimal:n { #1 } } }
- { \use:n { \fp_to_decimal:n { #1 } } }
+ { \use:n { #1 } }
}
\group_end:
}
@@ -440,8 +454,13 @@
\cs_new_protected_nopar:Npn \exsheets_print_points:n #1
{
- \exsheets_parse_points:n { #1 }
- \exsheets_points_name:n { #1 }
+ \group_begin:
+ \tl_use:N \l__exsheets_points_format_tl
+ {
+ \exsheets_parse_points:n { #1 }
+ \exsheets_points_name:n { #1 }
+ }
+ \group_end:
}
\cs_generate_variant:Nn \exsheets_print_points:n { V }
@@ -454,30 +473,46 @@
\NewDocumentCommand \pointssum { s }
{
- \IfBooleanTF { #1 }
- { \exsheets_parse_points:n { \g__exsheets_total_points_fp } }
- { \exsheets_print_points:n { \g__exsheets_total_points_fp } }
+ \bool_if:NTF \l__exsheets_parse_points_bool
+ {
+ \IfBooleanTF { #1 }
+ { \exsheets_parse_points:n { \g__exsheets_total_points_fp } }
+ { \exsheets_print_points:n { \g__exsheets_total_points_fp } }
+ }
+ { \msg_warning:nnn { exsheets } { parse-points } { \pointssum } }
}
\NewDocumentCommand \bonussum { s }
{
- \IfBooleanTF { #1 }
- { \exsheets_parse_bonus:n { \g__exsheets_total_bonus_fp } }
- { \exsheets_print_bonus:n { \g__exsheets_total_bonus_fp } }
+ \bool_if:NTF \l__exsheets_parse_points_bool
+ {
+ \IfBooleanTF { #1 }
+ { \exsheets_parse_bonus:n { \g__exsheets_total_bonus_fp } }
+ { \exsheets_print_bonus:n { \g__exsheets_total_bonus_fp } }
+ }
+ { \msg_warning:nnn { exsheets } { parse-points } { \bonussum } }
}
\NewDocumentCommand \currentpointssum { s }
{
- \IfBooleanTF { #1 }
- { \exsheets_parse_points:n { \g__exsheets_points_sum_fp } }
- { \exsheets_print_points:n { \g__exsheets_points_sum_fp } }
+ \bool_if:NTF \l__exsheets_parse_points_bool
+ {
+ \IfBooleanTF { #1 }
+ { \exsheets_parse_points:n { \g__exsheets_points_sum_fp } }
+ { \exsheets_print_points:n { \g__exsheets_points_sum_fp } }
+ }
+ { \msg_warning:nnn { exsheets } { parse-points } { \currentpointssum } }
}
\NewDocumentCommand \currentbonussum { s }
{
- \IfBooleanTF { #1 }
- { \exsheets_parse_bonus:n { \g__exsheets_bonus_sum_fp } }
- { \exsheets_print_bonus:n { \g__exsheets_bonus_sum_fp } }
+ \bool_if:NTF \l__exsheets_parse_points_bool
+ {
+ \IfBooleanTF { #1 }
+ { \exsheets_parse_bonus:n { \g__exsheets_bonus_sum_fp } }
+ { \exsheets_print_bonus:n { \g__exsheets_bonus_sum_fp } }
+ }
+ { \msg_warning:nnn { exsheets } { parse-points } { \currentbonussum } }
}
\NewDocumentCommand \totalpoints { s }
@@ -551,6 +586,7 @@
pre-bonus .tl_set:N = \l__exsheets_points_pre_bonus_marker_tl ,
post-bonus .tl_set:N = \l__exsheets_points_post_bonus_marker_tl ,
use-name .bool_set:N = \l__exsheets_points_name_bool ,
+ format .tl_set:N = \l__exsheets_points_format_tl ,
number-format .tl_set:N = \l__exsheets_points_number_format_tl ,
bonus-format .tl_set:N = \l__exsheets_bonus_number_format_tl ,
parse .bool_set:N = \l__exsheets_parse_points_bool ,
@@ -920,9 +956,13 @@
\tl_new:N \g__exsheets_questions_current_id_tl
\tl_new:N \l__exsheets_title_tl
\tl_new:N \l__exsheets_questions_label_tl
+\tl_new:N \l__exsheets_questions_points_tl
\bool_new:N \l__exsheets_points_not_given_bool
+\fp_new:N \g__exsheets_this_question_points_fp
+\fp_new:N \g__exsheets_this_question_bonus_fp
+
\cs_new_protected:Npn \__exsheets_read_points:w #1+#2+#3 \q_stop
{
\tl_if_blank:nTF { #1 }
@@ -937,7 +977,11 @@
}
}
\cs_new_protected:Npn \__exsheets_read_points:n #1
- { \__exsheets_read_points:w #1++ \q_stop }
+ {
+ \bool_if:NTF \l__exsheets_parse_points_bool
+ { \__exsheets_read_points:w #1++ \q_stop }
+ { \tl_set:Nn \l__exsheets_questions_points_tl { #1 } }
+ }
\newenvironment { __exsheets_question: } [2]
{
@@ -1012,6 +1056,8 @@
\g__exsheets_questions_id_int
}
% Punktevergabe:
+ \fp_gzero:N \g__exsheets_this_question_points_fp
+ \fp_gzero:N \g__exsheets_this_question_bonus_fp
\IfNoValueTF { #2 }
{
\__exsheets_read_points:n { 0 }
@@ -1025,6 +1071,9 @@
}
}
{
+ \fp_gset_eq:NN
+ \g__exsheets_this_question_points_fp
+ \l__exsheets_question_points_fp
\__exsheets_read_points:n { #2 }
\SetQuestionProperties{points=#2}
}
@@ -1087,17 +1136,38 @@
\bool_if:NTF \l__exsheets_exam_bool
{ \tl_set_eq:NN \l__exsheets_title_tl \l__exsheets_questions_name_tl }
{ \tl_set_eq:NN \l__exsheets_title_tl \l__exsheets_exsheets_name_tl }
- \__exsheets_use_heading:VVVnn
- \l__exsheets_question_heading_instance_tl
- \l__exsheets_title_tl
- \l__exsheets_qu_counter_interpretation_tl
- { \l__exsheets_question_points_fp }
- { \l__exsheets_question_bonus_fp }
+ \bool_if:NTF \l__exsheets_parse_points_bool
+ {
+ \__exsheets_use_heading:VVVnn
+ \l__exsheets_question_heading_instance_tl
+ \l__exsheets_title_tl
+ \l__exsheets_qu_counter_interpretation_tl
+ { \l__exsheets_question_points_fp }
+ { \l__exsheets_question_bonus_fp }
+ }
+ {
+ \__exsheets_use_heading:VVVnn
+ \l__exsheets_question_heading_instance_tl
+ \l__exsheets_title_tl
+ \l__exsheets_qu_counter_interpretation_tl
+ { \l__exsheets_questions_points_tl }
+ { 0 }
+ }
}
}
\__exsheets_questions_internal:
}
- { \end__exsheets_questions_internal: }
+ {
+ \end__exsheets_questions_internal:
+ \bool_if:NF \l__exsheets_points_questions_default_bool
+ {
+ \fp_compare:nT { \g__exsheets_this_question_points_fp > 0 }
+ {
+ \exp_args:Nx \SetQuestionProperties
+ { points = \fp_to_tl:N \g__exsheets_this_question_points_fp }
+ }
+ }
+ }
% current question number:
\prop_new:N \g__exsheets_question_number_prop
@@ -1398,6 +1468,9 @@
\group_end:
}
+\int_new:N \l__exsheets_questions_set_int
+\int_new:N \g__exsheets_select_random_int
+
\cs_new_protected:Npn \exsheets_include_questions:n #1
{
\bool_set_true:N \l__exsheets_select_questions_bool
@@ -1406,7 +1479,13 @@
\seq_map_inline:Nn \l__exsheets_tmpa_seq
{
\bool_set_true:N \l__exsheets_questions_deactivate_bool
- \int_set_eq:NN \l__exsheets_tmpc_int \g__exsheets_questions_id_int
+ \int_set_eq:NN
+ \l__exsheets_questions_set_int
+ \g__exsheets_questions_used_int
+ \int_set_eq:NN
+ \l__exsheets_tmpc_int
+ \g__exsheets_questions_id_int
+ \int_gzero:N \g__exsheets_select_random_int
\exsheets_file_input_if_exist:n { ##1 }
\__exsheets_prop_count:NN
\g__exsheets_included_questions_prop
@@ -1489,23 +1568,12 @@
\int_gincr:N \g__exsheets_questions_id_int
\bool_if:NTF \l__exsheets_include_random_bool
{
- \int_set:Nn \l__exsheets_tmpa_int
- {
- \int_mod:nn
- { \g__exsheets_questions_id_int }
- { \g__exsheets_selection_number_int }
- }
- \int_set:Nn \l__exsheets_tmpa_int { \l__exsheets_tmpa_int - 1 }
- \int_compare:nTF { \l__exsheets_tmpa_int = -1 }
- {
- \int_set_eq:NN
- \l__exsheets_tmpa_int
- \g__exsheets_selection_number_int
- }
- {
- \int_compare:nT { \l__exsheets_tmpa_int = 0 }
- { \int_set:Nn \l__exsheets_tmpa_int { 1 } }
- }
+ \int_gincr:N \g__exsheets_select_random_int
+ \int_set_eq:NN \l__exsheets_tmpa_int \g__exsheets_select_random_int
+% ID: \int_use:N \g__exsheets_questions_id_int ,~
+% set: \int_use:N \l__exsheets_questions_set_int ,~
+% selection: \int_use:N \g__exsheets_selection_number_int ,~
+% tmpa: \int_use:N \l__exsheets_tmpa_int \par
}
{
\int_set_eq:NN
@@ -2245,15 +2313,15 @@
{
style .choice: ,
style / line .code:n =
- { \cs_set_eq:NN \exsheets_write_blank:n \uline } ,
+ \cs_set_eq:NN \exsheets_write_blank:n \uline ,
style / wave .code:n =
- { \cs_set_eq:NN \exsheets_write_blank:n \uwave } ,
+ \cs_set_eq:NN \exsheets_write_blank:n \uwave ,
style / dline .code:n =
- { \cs_set_eq:NN \exsheets_write_blank:n \uuline } ,
+ \cs_set_eq:NN \exsheets_write_blank:n \uuline ,
style / dotted .code:n =
- { \cs_set_eq:NN \exsheets_write_blank:n \dotuline } ,
+ \cs_set_eq:NN \exsheets_write_blank:n \dotuline ,
style / dashed .code:n =
- { \cs_set_eq:NN \exsheets_write_blank:n \dashuline } ,
+ \cs_set_eq:NN \exsheets_write_blank:n \dashuline ,
scale .tl_set:N = \l__exsheets_blank_scale_tl ,
width .code:n =
{
@@ -2269,8 +2337,7 @@
{
\group_begin:
\IfNoValueF { #2 } { \keys_set:nn { exsheets / blank } { #2 } }
- \mode_if_horizontal:TF
- { \exsheets_blank:n { #3 } }
+ \mode_if_vertical:TF
{
\IfBooleanF { #1 } { \noindent }
\exsheets_blank:n { #3 }
@@ -2281,13 +2348,16 @@
\par
}
}
+ { \exsheets_blank:n { #3 } }
\group_end:
}
\cs_new_protected:Npn \exsheets_blank:n #1
{
\box_clear:N \l__exsheets_blank_box
- \hbox_set:Nn \l__exsheets_blank_box { #1 }
+ \mode_if_math:TF
+ { \hbox_set:Nn \l__exsheets_blank_box { $ \m@th \mathpalette{}{#1} $ } }
+ { \hbox_set:Nn \l__exsheets_blank_box { #1 } }
\bool_if:NTF \l__exsheets_inside_solution_bool
{ \exsheets_write_blank:n { #1 } }
{
@@ -2305,23 +2375,27 @@
\bool_if:NTF \l__exsheets_blank_width_bool
{ \dim_set:Nn \l__exsheets_tmpa_dim { #1 } }
{
- \fp_set:Nn \l_tmpa_fp { \dim_to_fp:n { #1 } }
- \fp_mul:Nn \l_tmpa_fp { \l__exsheets_blank_scale_tl }
+ \fp_set:Nn \l_tmpa_fp
+ { \dim_to_fp:n { #1 } * \l__exsheets_blank_scale_tl }
\dim_set:Nn \l__exsheets_tmpa_dim { \fp_to_dim:N \l_tmpa_fp }
}
\dim_compare:nTF { \l__exsheets_tmpa_dim > 2em }
{
- \exsheets_write_blank:n { \skip_horizontal:n { 1em } }
- \dim_sub:Nn \l__exsheets_tmpa_dim { 2em }
- \dim_do_while:nn { \l__exsheets_tmpa_dim > \c_zero_dim }
+ \mode_if_math:TF
+ { \exsheets_write_blank:n { \skip_horizontal:N \l__exsheets_tmpa_dim } }
{
- \tex_penalty:D \hyphenpenalty
- \dim_compare:nTF { \l__exsheets_tmpa_dim < 1pt }
- { \exsheets_write_blank:n { \skip_horizontal:N \l__exsheets_tmpa_dim } }
- { \exsheets_write_blank:n { \skip_horizontal:n { 1pt } } }
- \dim_sub:Nn \l__exsheets_tmpa_dim { 1pt }
+ \exsheets_write_blank:n { \skip_horizontal:n { 1em } }
+ \dim_sub:Nn \l__exsheets_tmpa_dim { 2em }
+ \dim_do_while:nn { \l__exsheets_tmpa_dim > \c_zero_dim }
+ {
+ \tex_penalty:D \hyphenpenalty
+ \dim_compare:nTF { \l__exsheets_tmpa_dim < 1pt }
+ { \exsheets_write_blank:n { \skip_horizontal:N \l__exsheets_tmpa_dim } }
+ { \exsheets_write_blank:n { \skip_horizontal:n { 1pt } } }
+ \dim_sub:Nn \l__exsheets_tmpa_dim { 1pt }
+ }
+ \exsheets_write_blank:n { \skip_horizontal:n { 1em } }
}
- \exsheets_write_blank:n { \skip_horizontal:n { 1em } }
}
{ \exsheets_write_blank:n { \skip_horizontal:N \l__exsheets_tmpa_dim } }
}
@@ -2535,8 +2609,6 @@ HISTORY:
\bonus, \bonussum, \pointssum, \currentpointssum,
\currentbonussum
- added grades distribution
- - `translations' got \LoadDictionary and \LoadDictionaryFor
- added and loads of languages defined.
2012/10/05 v0.2a - resolved bug in saving and recovering question number
using \exsheets@save@number and \QuestionNumber
2012/10/08 v0.2b - improved the reference to chapter/solution numbers
@@ -2577,7 +2649,6 @@ HISTORY:
- define unexpandable internal commands protected
- translations basic dictionaries for English, German,
French and Spanish
- - translations: new command \DeclareDictTranslation
- new \includequestions option `exclude'
- new way of handling the `class' of questions:
instead of hard-coded `classes' and `topics'
@@ -2590,40 +2661,26 @@ HISTORY:
- \includequestions[random=<num>] now obeys class
as done with \SetupExSheets{use-topics={foo,bar}}
- new macro \questionsincludedlast
-2013/04/04 v0.8a - translations: bug fix in \DeclareDictTranslation
- - exsheets: added Portuguese translations
- - tasks: corrected \seq_length:N => \seq_count:N
-2013/04/07 v0.9 - translations: slightly improved messages
- - tasks: protected internal commands where appropriate
- - tasks: made enumerated item referenceable with \label{}
- and \ref{}; this introduced new options:
- * the former `label-format' is now `counter-format'
- * new: `label-format'
- - tasks: changed defaults for `label-width' and
- `label-offset'
- - tasks: ensure that the `after-item-skip' is only
- inserted in between rows
- - tasks: new option `after-item-skip'
- - tasks: improvements when label are set with optional
- argument:
- * a provided but empty argument is now correctly
- recognized
- * the counter is _not_ stepped anymore for enumerated
- lists when the optional argument is provided
- - tasks: new command \startnewitemline that forces the next
- item to be put at the beginning of a row
- - exsheets: protected internal commands where appropriate
- - exsheets: added possibility to set general options
- with \NewQuSolPair and \RenewQuSolPair
-2013/04/08 v0.9a - exsheets: added headings instance `empty'
- - translations: changed fallback warning into info
+2013/04/04 v0.8a - added Portuguese translations
+2013/04/07 v0.9 - protected internal commands where appropriate
+ - added possibility to set general options with
+ \NewQuSolPair and \RenewQuSolPair
+2013/04/08 v0.9a - added headings instance `empty'
2013/04/18 v0.9b - fixed erroneous behaviour of \includequestions when
used more than once
- added hook \l__exsheets_heading_points_post_hook_tl
2013/04/21 v0.9c - bug fix: \ForEachQuestion seems to work correctly
again
-
+2013/04/25 v0.9d - bug fix: \includequestions works correctly when used
+ multiple times together with ordinary instances of
+ the {question} environment
+ - bug fix: points/parse=false correctly disables parsing
+ points again
+ - bug fix: \addpoints didn't add to the question property
+ - new option `points/format'
+ - \blank now works in math mode, it doesn't do linebreaks
+ there if `ulem' doesn't allow them (which it doesn't)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% TODO:
-- points/decimal-marker, points/frac (?), points/format (?,im interface)
+- points/decimal-marker, points/frac (?), points/format (?,im interface) \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/exsheets/exsheets_headings.def b/Master/texmf-dist/tex/latex/exsheets/exsheets_headings.def
index c9f80403371..7c320340b2c 100644
--- a/Master/texmf-dist/tex/latex/exsheets/exsheets_headings.def
+++ b/Master/texmf-dist/tex/latex/exsheets/exsheets_headings.def
@@ -298,45 +298,57 @@
}
\hcoffin_set:Nn \l__exsheets_heading_points_coffin
{
- \bool_if:nF { \fp_compare_p:n { #3 = 0 } && \fp_compare_p:n { #4 = 0 } }
+ \bool_if:NTF \l__exsheets_parse_points_bool
{
- \tl_use:N \l__exsheets_heading_points_format_tl
- \group_begin:
- \tl_use:N \l__exsheets_heading_title_format_tl \strut
- \group_end:
- \tl_use:N \l__exsheets_heading_points_pre_code_tl
+ \bool_if:nF { \fp_compare_p:n { #3 = 0 } && \fp_compare_p:n { #4 = 0 } }
{
- \fp_compare:nF { #3 = 0 }
- {
- \bool_if:nTF
- {
- \l__exsheets_points_separate_bonus_bool ||
- \fp_compare_p:n { #4 = 0 }
- }
- { \exsheets_print_points:n { #3 } }
- { \exsheets_parse_points:n { #3 } }
- }
- \bool_if:nT { !\fp_compare_p:n { #3 = 0 } && !\fp_compare_p:n { #4 = 0 } }
- { ~ }
- \fp_compare:nF { #4 = 0 }
+ \tl_use:N \l__exsheets_heading_points_format_tl
+ \group_begin:
+ \tl_use:N \l__exsheets_heading_title_format_tl \strut
+ \group_end:
+ \tl_use:N \l__exsheets_heading_points_pre_code_tl
{
- \tl_use:N \l__exsheets_points_pre_bonus_marker_tl
- \bool_if:nTF
+ \fp_compare:nF { #3 = 0 }
{
- \l__exsheets_points_separate_bonus_bool ||
- \fp_compare_p:n { #3 = 0 }
+ \bool_if:nTF
+ {
+ \l__exsheets_points_separate_bonus_bool ||
+ \fp_compare_p:n { #4 = 0 }
+ }
+ { \exsheets_print_points:n { #3 } }
+ { \exsheets_parse_points:n { #3 } }
}
+ \bool_if:nT { !\fp_compare_p:n { #3 = 0 } && !\fp_compare_p:n { #4 = 0 } }
+ { ~ }
+ \fp_compare:nF { #4 = 0 }
{
- \exsheets_print_bonus:n { #4 }
- \tl_use:N \l__exsheets_points_post_bonus_marker_tl
- }
- {
- \exsheets_parse_bonus:n { #4 }
- \tl_use:N \l__exsheets_points_post_bonus_marker_tl
- \exsheets_points_name:n { #3 + #4 }
+ \tl_use:N \l__exsheets_points_pre_bonus_marker_tl
+ \bool_if:nTF
+ {
+ \l__exsheets_points_separate_bonus_bool ||
+ \fp_compare_p:n { #3 = 0 }
+ }
+ {
+ \exsheets_print_bonus:n { #4 }
+ \tl_use:N \l__exsheets_points_post_bonus_marker_tl
+ }
+ {
+ \exsheets_parse_bonus:n { #4 }
+ \tl_use:N \l__exsheets_points_post_bonus_marker_tl
+ \exsheets_points_name:n { #3 + #4 }
+ }
}
}
+ \tl_use:N \l__exsheets_heading_points_post_code_tl
}
+ }
+ {% points/parse = false
+ \tl_use:N \l__exsheets_heading_points_format_tl
+ \group_begin:
+ \tl_use:N \l__exsheets_heading_title_format_tl \strut
+ \group_end:
+ \tl_use:N \l__exsheets_heading_points_pre_code_tl
+ { \exsheets_print_points:n { #3 } }
\tl_use:N \l__exsheets_heading_points_post_code_tl
}
}
diff --git a/Master/texmf-dist/tex/latex/exsheets/tasks.sty b/Master/texmf-dist/tex/latex/exsheets/tasks.sty
index d0b73f1f8f6..52fffde6e58 100644
--- a/Master/texmf-dist/tex/latex/exsheets/tasks.sty
+++ b/Master/texmf-dist/tex/latex/exsheets/tasks.sty
@@ -28,8 +28,8 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-\def\@tasks@date{2013/04/07}
-\def\@tasks@version{0.9}
+\def\@tasks@date{2013/04/22}
+\def\@tasks@version{0.9a}
\RequirePackage { expl3 , xparse , l3keys2e }
\ProvidesExplPackage
@@ -70,6 +70,7 @@
\bool_new:N \l__tasks_resume_bool
\bool_new:N \l__tasks_load_tasks_bool
\bool_new:N \l__tasks_label_width_bool
+\bool_new:N \l__tasks_item_indent_bool
\bool_new:N \l__tasks_label_offset_bool
\bool_new:N \l__tasks_custom_label_bool
\bool_new:N \l__tasks_custom_after_item_skip_bool
@@ -89,6 +90,7 @@
\tl_new:N \l__tasks_tmp_label_tl
\dim_new:N \l__tasks_item_indent_dim
+\dim_new:N \l__tasks_item_default_indent_dim
\dim_new:N \l__tasks_item_width_dim
\dim_new:N \l__tasks_label_width_dim
\dim_new:N \l__tasks_label_default_width_dim
@@ -268,7 +270,7 @@
{
enumerate = \l__tasks_enumerate_bool ,
label = \l__tasks_label_tl ,
- indent = \l__tasks_item_indent_dim ,
+ indent = \l__tasks_item_default_indent_dim ,
counter-format = \l__tasks_label_pattern_tl ,
label-format = \l__tasks_label_format_tl ,
label-width = \l__tasks_label_default_width_dim ,
@@ -283,6 +285,12 @@
\l__tasks_label_width_dim
\l__tasks_label_default_width_dim
}
+ \bool_if:NF \l__tasks_item_indent_bool
+ {
+ \dim_set_eq:NN
+ \l__tasks_item_indent_dim
+ \l__tasks_item_default_indent_dim
+ }
\bool_if:NF \l__tasks_label_offset_bool
{
\dim_set_eq:NN
@@ -444,6 +452,9 @@
\dim_set:Nn \l__tasks_label_offset_dim { #1 }
\bool_set_true:N \l__tasks_label_offset_bool ,
label-align .tl_set:N = \l__tasks_label_align_tl ,
+ item-indent .code:n =
+ \dim_set:Nn \l__tasks_item_indent_dim { #1 }
+ \bool_set_true:N \l__tasks_item_indent_bool ,
before-skip .skip_set:N = \l__tasks_before_list_skip ,
after-skip .skip_set:N = \l__tasks_after_list_skip ,
after-item-skip .code:n =
@@ -532,4 +543,27 @@
{ \tasks_setup:n { #1 } }
% --------------------------------------------------------------------------
-\tex_endinput:D \ No newline at end of file
+\tex_endinput:D
+
+% HISTORY:
+2013/01/19 v0.7 - extracted from `exsheets' package; this also lead to a
+ slightly new syntax and a few new options for it
+2013/04/04 v0.8a - corrected \seq_length:N => \seq_count:N
+2013/04/07 v0.9 - protected internal commands where appropriate
+ - made enumerated item referenceable with \label{}
+ and \ref{}; this introduced new options:
+ * the former `label-format' is now `counter-format'
+ * new: `label-format'
+ - changed defaults for `label-width' and `label-offset'
+ - ensure that the `after-item-skip' is only
+ inserted in between rows
+ - new option `after-item-skip'
+ - improvements when label are set with optional argument:
+ * a provided but empty argument is now correctly recognized
+ * the counter is _not_ stepped anymore for enumerated
+ lists when the optional argument is provided
+ - new command \startnewitemline that forces the next item to
+ be put at the beginning of a row
+2013/04/22 v0.9a - new option `item-indent'
+ - synchronized version number with `exsheets' until now but
+ won't any more \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/exsheets/translations.sty b/Master/texmf-dist/tex/latex/exsheets/translations.sty
index fbd5976d838..1f46c1ca8ce 100644
--- a/Master/texmf-dist/tex/latex/exsheets/translations.sty
+++ b/Master/texmf-dist/tex/latex/exsheets/translations.sty
@@ -23,8 +23,7 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-% The translations package consists of the files
-% - translations.sty
+% The translations package is part of the exsheets bundle.
% --------------------------------------------------------------------------
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
@@ -369,4 +368,16 @@
\DeclareLanguageAlias {Turkish}{turkish}
\DeclareLanguageAlias {Ukrainian}{ukrainian}
-\endinput \ No newline at end of file
+\endinput
+
+% HISTORY:
+2012/09/30 v0.2beta - first version (as part of the `exsheets' bundle)
+2012/10/05 v0.2 - \LoadDictionary and \LoadDictionaryFor added and loads of
+ languages defined.
+2013/03/10 v0.8 - basic dictionaries for English, German, French and Spanish
+ - new command \DeclareDictTranslation
+2013/04/04 v0.8a - bug fix in \DeclareDictTranslation
+2013/04/07 v0.9 - slightly improved messages
+2013/04/08 v0.9a - changed fallback warning into info
+ - synchronized version number with `exsheets' until now but
+ won't any more