summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/exsheets/tasks.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/exsheets/tasks.sty')
-rw-r--r--Master/texmf-dist/tex/latex/exsheets/tasks.sty601
1 files changed, 0 insertions, 601 deletions
diff --git a/Master/texmf-dist/tex/latex/exsheets/tasks.sty b/Master/texmf-dist/tex/latex/exsheets/tasks.sty
deleted file mode 100644
index 8985933e0ad..00000000000
--- a/Master/texmf-dist/tex/latex/exsheets/tasks.sty
+++ /dev/null
@@ -1,601 +0,0 @@
-% --------------------------------------------------------------------------
-% the TASKS package
-%
-% Horizontal columned lists.
-%
-% --------------------------------------------------------------------------
-% Clemens Niederberger
-% Web: https://bitbucket.org/cgnieder/exsheets/
-% E-Mail: contact@mychemistry.eu
-% --------------------------------------------------------------------------
-% Copyright 2011-2014 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 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.
-% --------------------------------------------------------------------------
-\def\@tasks@date{2014/05/11}
-\def\@tasks@version{0.9c}
-
-\RequirePackage { expl3 , xparse , l3keys2e }
-\ProvidesExplPackage
- {tasks}
- {\@tasks@date}
- {\@tasks@version}
- {Horizontal columned lists.}
-
-% --------------------------------------------------------------------------
-% check expl3 version:
-\@ifpackagelater { expl3 } { 2012/11/21 }
- { }
- {
- \PackageError { tasks } { Support~package~expl3~too~old }
- {
- You~need~to~update~your~installation~of~the~bundles~'l3kernel'~and~
- 'l3packages'.\MessageBreak
- Loading~tasks~will~abort!
- }
- \tex_endinput:D
- }
-
-% --------------------------------------------------------------------------
-% requirements:
-\RequirePackage { epic , cntformats , xtemplate , environ }
-
-% --------------------------------------------------------------------------
-% variables:
-\seq_new:N \l__tasks_seq
-
-\int_new:N \l__tasks_depth_int
-\int_new:N \g__tasks_int
-\int_new:N \g__tasks_total_items_int
-\int_new:N \l__tasks_columns_int
-\int_new:N \l__tasks_rows_int
-
-\bool_new:N \l__tasks_enumerate_bool
-\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
-
-\tl_new:N \l__tasks_instance_tl
-\tl_new:N \l__tasks_label_tl
-\tl_new:N \l__tasks_custom_label_tl
-\tl_new:N \l__tasks_label_pattern_tl
-\tl_new:N \l__tasks_custom_label_pattern_tl
-\tl_new:N \l__tasks_label_format_tl
-\tl_new:N \l__tasks_custom_label_format_tl
-\tl_new:N \l__tasks_item_fill_left_tl
-\tl_new:N \l__tasks_item_fill_right_tl
-\tl_new:N \l__tasks_label_align_tl
-% \tl_new:N \task
-\tl_new:N \l__tasks_item_tl
-\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
-\dim_new:N \l__tasks_label_offset_dim
-\dim_new:N \l__tasks_label_default_offset_dim
-
-\skip_new:N \l__tasks_after_item_skip
-\skip_new:N \l__tasks_custom_after_item_skip
-\skip_new:N \l__tasks_before_list_skip
-\skip_new:N \l__tasks_after_list_skip
-
-\NewCounterPattern* [ tasks ] { task } { tsk }
-\ReadCounterFrom [ tasks ] { task } \g__tasks_int
-
-% temporary variables:
-\tl_new:N \l__tasks_tmpa_tl
-\int_new:N \g__tasks_tmpa_int
-\int_new:N \l__tasks_tmpb_int
-\coffin_new:N \l__tasks_tmpa_coffin
-\coffin_new:N \l__tasks_tmpb_coffin
-\coffin_new:N \l__tasks_tmpc_coffin
-
-\cs_new_eq:NN \__tasks_debug:n \use:n
-
-% --------------------------------------------------------------------------
-% collect the tasks:
-\cs_new_protected:Npn \__tasks_collect_tasks:nw #1#2 \end #3
- {
- \tl_put_right:Nn \l__tasks_body_tl { #1 }
- \end { #3 }
- \tl_if_eq:nnF { #1 } { #3 }
- { \__tasks_collect_tasks:nw { #1 } }
- }
-
-% #1: instance
-% #2: number of columns
-% #3: item separator
-% #4: environment body
-\cs_new_protected:Npn \__tasks:nnnn #1#2#3#4
- {
- \seq_set_split:Nnn \l__tasks_seq { #3 } { #4 }
- % remove the first (empty) item:
- \seq_pop_left:NN \l__tasks_seq \l__tasks_tmpa_tl
- \tl_if_blank:VF \l__tasks_tmpa_tl
- { \tl_show:N \l__tasks_tmpa_tl \@noitemerr }
- \int_gset:Nn \g__tasks_total_items_int
- { \seq_count:N \l__tasks_seq }
- \UseInstance { tasks } { #1 }
- { \g__tasks_total_items_int }
- { #2 }
- { \l__tasks_custom_label_pattern_tl }
- % just to be sure:
- \seq_clear:N \l__tasks_seq
- }
-\cs_generate_variant:Nn \__tasks:nnnn { VnnV }
-
-\cs_new_protected:Npn \__tasks_task:nnw #1#2[#3,#4][#5,#6](#7,#8)
- {
- \dim_set:Nn \l__tasks_item_width_dim
- {
- \linewidth / \l__tasks_columns_int -
- \l__tasks_depth_int \l__tasks_item_indent_dim
- }
- \int_gincr:N \g__tasks_tmpa_int
- \__tasks_gset_rows_num:NN
- \g__tasks_total_items_int
- \l__tasks_columns_int
- \int_compare:nT { \g__tasks_tmpa_int > \l__tasks_columns_int }
- {
- \int_gset:Nn \g__tasks_tmpa_int { 1 }
- \int_incr:N \l__tasks_tmpb_int
- }
- % the item:
- \hcoffin_set:Nn \l__tasks_tmpa_coffin
- {
- \vcoffin_set:Nnn \l__tasks_tmpc_coffin
- { \l__tasks_item_width_dim }
- { \__tasks_setup: #2 }
- \coffin_typeset:Nnnnn \l__tasks_tmpc_coffin
- { l } { T } { 0pt } { 0pt }
- }
- % the label:
- \hcoffin_set:Nn \l__tasks_tmpb_coffin
- {
- \vcoffin_set:Nnn \l__tasks_tmpc_coffin
- { \l__tasks_label_width_dim }
- {
- \noindent
- \tl_use:N \l__tasks_item_fill_left_tl
- \strut #1
- \tl_use:N \l__tasks_item_fill_right_tl
- }
- \__tasks_debug:n
- {
- \coffin_typeset:Nnnnn \l__tasks_tmpc_coffin
- { l } { T } { 0pt } { 0pt }
- }
- }
- \coffin_attach:NnnNnnnn
- \l__tasks_tmpa_coffin { l } { T }
- \l__tasks_tmpb_coffin { l } { T }
- { - \l__tasks_label_width_dim - \l__tasks_label_offset_dim } { 0pt }
- % typeset label & item:
- % need this when a new row starts:
- \int_compare:nT { \g__tasks_tmpa_int = 1 }
- { \skip_vertical:N \c_zero_skip }
- \noindent
- \skip_horizontal:N \l__tasks_item_indent_dim
- \__tasks_debug:n
- {
- \coffin_typeset:Nnnnn \l__tasks_tmpa_coffin
- { l } { T } { 0pt } { 0pt }
- }
- % need this before a new row starts:
- \bool_if:nT
- {
- ( \int_compare_p:n { \g__tasks_tmpa_int = \l__tasks_columns_int } )
- &&
- ( \int_compare_p:n { \l__tasks_tmpb_int != \l__tasks_rows_int } )
- }
- { \skip_vertical:N \l__tasks_after_item_skip }
- \coffin_clear:N \l__tasks_tmpa_coffin
- \coffin_clear:N \l__tasks_tmpb_coffin
- \coffin_clear:N \l__tasks_tmpc_coffin
- }
-\cs_generate_variant:Nn \__tasks_task:nnw { VV }
-
-\cs_new_protected:Npn \__tasks_setup:
- {
- \dim_set:Nn \parskip { 0pt }
- \skip_set:Nn \parfillskip { 0pt plus 1fil }
- \dim_set_eq:NN \parskip \parsep
- \dim_set_eq:NN \parindent \listparindent
- \noindent
- \strut
- }
-
-\cs_new_protected:Npn \__tasks_gset_rows_num:NN #1#2
- {
- \int_gset:Nn \l__tasks_rows_int { \int_div_truncate:nn { #1 } { #2 } }
- \int_compare:nNnT { \int_mod:nn { #1 } { #2 } } > { 0 }
- { \int_gincr:N \l__tasks_rows_int }
- }
-
-\cs_new_protected:Npn \__tasks_label_align:n #1
- {
- \clist_if_in:nnTF { left , center , right } { #1 }
- {
- \tl_if_eq:nnT { #1 } { left }
- {
- \tl_clear:N \l__tasks_item_fill_left_tl
- \tl_set_eq:NN \l__tasks_item_fill_right_tl \hfill
- }
- \tl_if_eq:nnT { #1 } { right }
- {
- \tl_set_eq:NN \l__tasks_item_fill_left_tl \hfill
- \tl_clear:N \l__tasks_item_fill_right_tl
- }
- \tl_if_eq:nnT { #1 } { center }
- {
- \tl_set_eq:NN \l__tasks_item_fill_left_tl \hfill
- \tl_set_eq:NN \l__tasks_item_fill_right_tl \hfill
- }
- }
- {
- \tl_clear:N \l__tasks_item_fill_left_tl
- \tl_set_eq:NN \l__tasks_item_fill_right_tl \hfill
- }
- }
-\cs_generate_variant:Nn \__tasks_label_align:n { V }
-\__tasks_label_align:n { left }
-
-% --------------------------------------------------------------------------
-% the `tasks' object:
-% #1: number of items
-% #2: number of columns
-% #3: label-format
-\DeclareObjectType { tasks } { 3 }
-% the `default' template interface:
-\DeclareTemplateInterface { tasks } { default } { 3 }
- {
- 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
- }
-
-% in the next three commands we want a really unlikely to occurr marker; for
-% this we use $ with unusual catcode in ``$tasks$default$label$'':
-\char_set_catcode_alignment:N \$
-
-% the `default' template code:
-\DeclareTemplateCode { tasks } { default } { 3 }
- {
- enumerate = \l__tasks_enumerate_bool ,
- label = \l__tasks_label_tl ,
- 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 ,
- label-offset = \l__tasks_label_default_offset_dim ,
- after-item-skip = \l__tasks_after_item_skip
- }
- {
- \AssignTemplateKeys
- \bool_if:NF \l__tasks_label_width_bool
- {
- \dim_set_eq:NN
- \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
- \l__tasks_label_offset_dim
- \l__tasks_label_default_offset_dim
- }
- \bool_if:NT \l__tasks_custom_after_item_skip_bool
- {
- \skip_set_eq:NN
- \l__tasks_after_item_skip
- \l__tasks_custom_after_item_skip
- }
- \bool_if:NT \l__tasks_custom_label_bool
- {
- \tl_set_eq:NN
- \l__tasks_label_tl
- \l__tasks_custom_label_tl
- \bool_set_false:N \l__tasks_enumerate_bool
- }
- \__tasks_label_align:V \l__tasks_label_align_tl
- % need this for enumerate list:
- \bool_if:nT { !\l__tasks_resume_bool && \l__tasks_enumerate_bool }
- { \int_gzero:N \g__tasks_int }
- \int_set:Nn \l__tasks_columns_int { #2 }
- % set all the items in their own coffins and join with the ground:
- \int_gzero:N \g__tasks_tmpa_int
- \int_set:Nn \l__tasks_tmpb_int { 1 }
- \tl_if_blank:VF \l__tasks_custom_label_pattern_tl
- {
- \tl_set_eq:NN
- \l__tasks_label_pattern_tl
- \l__tasks_custom_label_pattern_tl
- }
- \tl_if_blank:VF \l__tasks_custom_label_format_tl
- {
- \tl_set_eq:NN
- \l__tasks_label_format_tl
- \l__tasks_custom_label_format_tl
- }
- \seq_map_inline:Nn \l__tasks_seq
- {
- \__tasks_read_item:w ##1 \q_stop
- \bool_if:NTF \l__tasks_enumerate_bool
- {
- \tl_if_eq:VnT \l__tasks_tmp_label_tl { $tasks$default$label$ }
- {
- \int_gincr:N \g__tasks_int
- \SaveCounterPatternFrom [ tasks ]
- \l__tasks_tmpa_tl
- \l__tasks_label_tl
- \l__tasks_label_pattern_tl
- \cs_gset:Npx \@currentlabel { \l__tasks_label_tl }
- }
- }
- {
- \tl_if_blank:VT \l__tasks_label_tl
- { \tl_set_eq:NN \l__tasks_label_tl \labelitemi }
- }
- \tl_put_left:NV \l__tasks_label_tl \l__tasks_label_format_tl
- \tl_if_eq:VnTF \l__tasks_tmp_label_tl { $tasks$default$label$ }
- {
- \__tasks_task:VVw
- \l__tasks_label_tl
- \l__tasks_item_tl
- [ l , b ] [ l , t ] ( 0pt , 0pt )
- }
- {
- \__tasks_task:VVw
- \l__tasks_tmp_label_tl
- \l__tasks_item_tl
- [ l , b ] [ l , t ] ( 0pt , 0pt )
- \tl_clear:N \l__tasks_tmp_label_tl
- }
- }
- }
-\cs_generate_variant:Nn \tl_if_eq:nnTF { V }
-\cs_generate_variant:Nn \tl_if_eq:nnT { V }
-
-\cs_new:Npn \__tasks_read_item:w
- {
- \peek_meaning:NTF [
- { \__tasks_read_item_aux:w }
- { \__tasks_read_item_aux:w[$tasks$default$label$] }
- }
-
-\cs_new_protected:Npn \__tasks_read_item_aux:w [#1]#2 \q_stop
- {
- \tl_set:Nn \l__tasks_tmp_label_tl { #1 }
- \tl_if_eq:nnF { #1 } { $tasks$default$label$ }
- { \tl_put_left:NV \l__tasks_tmp_label_tl \l__tasks_label_format_tl }
- \tl_set:Nn \l__tasks_item_tl { \ignorespaces #2 }
- }
-
-\char_set_catcode_math_toggle:N \$
-
-% --------------------------------------------------------------------------
-% choice box:
-\bool_new:N \l__tasks_choice_checked_bool
-\dim_new:N \l__tasks_choice_width_dim
-\dim_set:Nn \l__tasks_choice_width_dim { 1.25ex }
-\dim_new:N \l__tasks_choice_linewidth_dim
-\dim_set:Nn \l__tasks_choice_linewidth_dim { .3pt }
-\dim_new:N \l__tasks_choice_checkwidth_dim
-\dim_set:Nn \l__tasks_choice_checkwidth_dim { .5pt }
-\dim_new:N \l__tasks_choice_raise_dim
-\dim_set:Nn \l__tasks_choice_raise_dim { .1ex }
-
-\cs_new_protected:Npn \tasks_choice:
- {
- \leavevmode
- \group_begin:
- \bool_set_false:N \l__tasks_choice_checked_bool
- \box_move_up:nn
- { \l__tasks_choice_raise_dim }
- { \hbox:n { \__tasks_choice: } }
- \group_end:
- }
-
-\cs_new_protected:Npn \tasks_choice_checked:
- {
- \leavevmode
- \group_begin:
- \bool_set_true:N \l__tasks_choice_checked_bool
- \box_move_up:nn
- { \l__tasks_choice_raise_dim }
- { \hbox:n { \__tasks_choice: } }
- \group_end:
- }
-
-\cs_new_protected:Npn \__tasks_choice:
- {%
- \dim_set:Nn \unitlength { .1\l__tasks_choice_width_dim }
- \begin{picture}(10,0)
- \linethickness \l__tasks_choice_linewidth_dim
- \drawline(0,0)(0,10)(10,10)(10,0)(0,0)
- \linethickness \l__tasks_choice_checkwidth_dim
- \bool_if:NT \l__tasks_choice_checked_bool
- {
- \drawline(2,2)(8,8)
- \drawline(2,8)(8,2)
- }
- \end{picture}%
- }
-
-\providecommand* \choicebox { \tasks_choice: }
-\providecommand* \checkedchoicebox { \tasks_choice_checked: }
-
-% --------------------------------------------------------------------------
-% base instance:
-% ALPHABETIZE: a) b) c)
-\DeclareInstance { tasks } { alphabetize } { default } { }
-
-\keys_define:nn { tasks / list }
- {
- style .tl_set:N = \l__tasks_instance_tl ,
- counter-format .tl_set:N = \l__tasks_custom_label_pattern_tl ,
- label .code:n =
- \bool_set_true:N \l__tasks_custom_label_bool
- \tl_set:Nn \l__tasks_custom_label_tl { #1 } ,
- label-format .tl_set:N = \l__tasks_custom_label_format_tl ,
- label-width .code:n =
- \dim_set:Nn \l__tasks_label_width_dim { #1 }
- \bool_set_true:N \l__tasks_label_width_bool ,
- label-offset .code:n =
- \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 =
- \bool_set_true:N \l__tasks_custom_after_item_skip_bool
- \skip_set:Nn \l__tasks_custom_after_item_skip { #1 } ,
- resume .bool_set:N = \l__tasks_resume_bool
- }
-
-% --------------------------------------------------------------------------
-% the generic environment:
-\NewEnviron { __tasks_env: } [ 3 ]
- {
- \keys_set:nn { tasks / list } { #2 }
- \tl_if_blank:VT \l__tasks_instance_tl
- { \keys_set:nn { tasks / list } { style = alphabetize } }
- \skip_vertical:N \l__tasks_before_list_skip
- \skip_vertical:N \c_zero_skip
- \list {}
- {
- \dim_set:Nn \leftmargin { 0pt }
- \dim_set:Nn \rightmargin { 0pt }
- }
- \item \scan_stop:
- \int_incr:N \l__tasks_depth_int
- \__tasks:VnnV \l__tasks_instance_tl { #3 } { #1 } \BODY
- \endlist
- \skip_vertical:N \l__tasks_after_list_skip
- }
-
-% --------------------------------------------------------------------------
-% command to start a new row:
-\cs_new_protected:Npn \tasks_new_row:
- {
- \int_gset:Nn \g__tasks_total_items_int
- { \g__tasks_total_items_int + \l__tasks_columns_int - \g__tasks_tmpa_int }
- \__tasks_gset_rows_num:NN
- \g__tasks_total_items_int
- \l__tasks_columns_int
- \int_gset_eq:NN \g__tasks_tmpa_int \l__tasks_columns_int
- }
-
-\NewDocumentCommand \startnewitemline {}
- { \tasks_new_row: }
-
-% --------------------------------------------------------------------------
-% the user environment:
-\NewDocumentCommand \NewTasks { O{}mO{\task}D(){1} }
- {
- \NewDocumentEnvironment { #2 } { O{}D(){#4} }
- { \__tasks_env: { #3 } { #1,##1 } { ##2 } }
- { \end__tasks_env: }
- }
-
-\NewDocumentCommand \RenewTasks { O{}mO{\task}D(){1} }
- {
- \RenewDocumentEnvironment { #2 } { O{}D(){#4} }
- { \__tasks_env: { #3 } { #1,##1 } { ##2 } }
- { \end__tasks_env: }
- }
-
-% --------------------------------------------------------------------------
-% default list:
-\NewTasks { tasks }
-
-% --------------------------------------------------------------------------
-% package options:
-\keys_define:nn { tasks / options }
- {
- more .bool_set:N = \l__tasks_load_tasks_bool
- }
-
-\ProcessKeysOptions { tasks / options }
-
-\bool_if:NT \l__tasks_load_tasks_bool
- {
- \cs_if_exist:NF \tasks_config_file_loaded:
- { \input { tasks.cfg } }
- }
-
-% --------------------------------------------------------------------------
-% setup:
-\cs_new_protected:Npn \tasks_setup:n #1
- { \keys_set:nn { tasks / list } { #1 } }
-
-\NewDocumentCommand \settasks { m }
- { \tasks_setup:n { #1 } }
-
-% --------------------------------------------------------------------------
-\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
-2013/12/03 v0.9b - add missing \noindent for the case when \listparindent is
- non-zero, fixes http://tex.stackexchange.com/q/148082/5049
-2014/05/11 v0.9c - remove definition of the \task macro: it is not necessary
- for `tasks' to function but it conflicts e.g. with `ltxdoc'
- class