diff options
author | Karl Berry <karl@freefriends.org> | 2013-04-29 23:28:32 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-04-29 23:28:32 +0000 |
commit | f39ecf357dcabe86d7841b9b1f0226ff23936bf5 (patch) | |
tree | fee982fb4da3128b566743698b2496bdc98a5b36 /Master | |
parent | 2e581c28cb4e1f20cd408c0bdc9885c7f18f9e5e (diff) |
exsheets (29apr13)
git-svn-id: svn://tug.org/texlive/trunk@30166 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/README | 34 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/cntformats_en.pdf | bin | 0 -> 423275 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/cntformats_en.tex | 407 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf | bin | 690078 -> 693353 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex | 114 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/tasks_en.pdf | bin | 0 -> 430673 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/tasks_en.tex | 564 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/translations_en.pdf | bin | 0 -> 408785 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/translations_en.tex | 335 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/exsheets/cntformats.sty | 62 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/exsheets/exsheets.sty | 251 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/exsheets/exsheets_headings.def | 72 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/exsheets/tasks.sty | 42 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/exsheets/translations.sty | 17 |
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 Binary files differnew file mode 100644 index 00000000000..8af9557974d --- /dev/null +++ b/Master/texmf-dist/doc/latex/exsheets/cntformats_en.pdf 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 Binary files differindex 50be4c19ddc..b70f61851f6 100644 --- a/Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf +++ b/Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf 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 Binary files differnew file mode 100644 index 00000000000..877e59b6538 --- /dev/null +++ b/Master/texmf-dist/doc/latex/exsheets/tasks_en.pdf 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 Binary files differnew file mode 100644 index 00000000000..8252b58e4de --- /dev/null +++ b/Master/texmf-dist/doc/latex/exsheets/translations_en.pdf 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 |