summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-05-03 22:19:36 +0000
committerKarl Berry <karl@freefriends.org>2016-05-03 22:19:36 +0000
commit0a4df79ff44155e39af8d3fb5ad0e7763341cc4a (patch)
treeebadf60bcb77ed3198c0eed46d8fbb300297d2a2 /Master/texmf-dist/tex/latex
parent7b948f621af5b04be4a7eaf082edf4820995322e (diff)
tasks (3may16)
git-svn-id: svn://tug.org/texlive/trunk@40876 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/tasks/tasks.cfg11
-rw-r--r--Master/texmf-dist/tex/latex/tasks/tasks.sty205
2 files changed, 106 insertions, 110 deletions
diff --git a/Master/texmf-dist/tex/latex/tasks/tasks.cfg b/Master/texmf-dist/tex/latex/tasks/tasks.cfg
index 12b3c50517c..0aa10ea09e4 100644
--- a/Master/texmf-dist/tex/latex/tasks/tasks.cfg
+++ b/Master/texmf-dist/tex/latex/tasks/tasks.cfg
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/tasks/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2014 Clemens Niederberger
+% Copyright 2013-2015 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -27,9 +27,11 @@
% --------------------------------------------------------------------------
% further instances for the `tasks' environment
\ProvidesFile{tasks.cfg}
- [\@tasks@date\space v\@tasks@version\space tasks instances]
-
-\cs_new:Npn \tasks_config_file_loaded: {}
+ [%
+ \csname c_tasks_date_tl\endcsname\space
+ v\csname c_tasks_version_tl\endcsname\space
+ tasks instances%
+ ]
% ITEMIZE:
\DeclareInstance {tasks} {itemize} {default}
@@ -49,4 +51,3 @@
label = \choicebox
}
-\tex_endinput:D
diff --git a/Master/texmf-dist/tex/latex/tasks/tasks.sty b/Master/texmf-dist/tex/latex/tasks/tasks.sty
index 0efe96b43a0..435e30dcb71 100644
--- a/Master/texmf-dist/tex/latex/tasks/tasks.sty
+++ b/Master/texmf-dist/tex/latex/tasks/tasks.sty
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/tasks/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2014 Clemens Niederberger
+% Copyright 2013-2016 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -25,40 +25,19 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-\def\@tasks@date{2014/07/29}
-\def\@tasks@version{0.10a}
-
-\RequirePackage { expl3 , xparse , l3keys2e }
+\RequirePackage { expl3 , xparse , epic , cntformats , xtemplate , environ }
+\ExplSyntaxOn
+
+\tl_const:Nn \c_tasks_name_tl {tasks}
+\tl_const:Nn \c_tasks_date_tl {2016/05/03}
+\tl_const:Nn \c_tasks_version_tl {0.11}
+\tl_const:Nn \c_tasks_info_tl {Horizontal columned lists}
+
\ProvidesExplPackage
- {tasks}
- {\@tasks@date}
- {\@tasks@version}
- {Horizontal columned lists.}
-
-% --------------------------------------------------------------------------
-% check expl3 version:
-\@ifpackagelater { expl3 } { 2014/01/01 }
- { }
- {
- \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 }
-
-\msg_new:nnn {tasks} {deprecated-option}
- {
- The~ option~ `#1'~ has~ been~ removed~ from~ the~ `tasks'~ package.~
- Please~ see~ the~ documentation~ for~details.
- }
-
+ {\c_tasks_name_tl}
+ {\c_tasks_date_tl}
+ {\c_tasks_version_tl}
+ {\c_tasks_info_tl \c_space_tl (CN)}
% --------------------------------------------------------------------------
% variants of kernel functions:
@@ -97,6 +76,8 @@
\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_format_tl
+\tl_new:N \l__tasks_custom_item_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
@@ -141,10 +122,10 @@
% collect the tasks:
\cs_new_protected:Npn \__tasks_collect_tasks:nww #1#2 \end #3
{
- \tl_put_right:Nn \l__tasks_body_tl { #1 }
- \end { #3 }
- \tl_if_eq:nnF { #1 } { #3 }
- { \__tasks_collect_tasks:nww { #1 } }
+ \tl_put_right:Nn \l__tasks_body_tl {#1}
+ \end {#3}
+ \tl_if_eq:nnF {#1} {#3}
+ { \__tasks_collect_tasks:nww {#1} }
}
% #1: instance
@@ -154,15 +135,15 @@
\cs_new_protected:Npn \__tasks:nnnn #1#2#3#4
{
\bool_if:NT \l__tasks_debug_bool { \dim_set:Nn \fboxsep {0pt} }
- \seq_set_split:Nnn \l__tasks_seq { #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 { \@noitemerr }
\int_gset:Nn \g__tasks_total_items_int
{ \seq_count:N \l__tasks_seq }
- \UseInstance { tasks } { #1 }
+ \UseInstance {tasks} {#1}
{ \g__tasks_total_items_int }
- { #2 }
+ {#2}
{ \l__tasks_custom_label_pattern_tl }
% just to be sure:
\seq_clear:N \l__tasks_seq
@@ -170,8 +151,9 @@
\cs_generate_variant:Nn \__tasks:nnnn { VnnV }
% #1: label
-% #2: item
-\cs_new_protected:Npn \__tasks_task:nn #1#2
+% #2: item format
+% #3: item
+\cs_new_protected:Npn \__tasks_task:nnn #1#2#3
{
% start a new item line if \l__tasks_item_full_line_bool
\bool_if:NT \l__tasks_item_full_line_bool
@@ -182,6 +164,7 @@
{ \skip_vertical:N \l__tasks_after_item_skip }
\tasks_new_row:
}
+ % step column position:
\int_gincr:N \g__tasks_current_col_num_int
\dim_set:Nn \l__tasks_item_width_dim
{
@@ -201,7 +184,7 @@
\g__tasks_total_items_int
\l__tasks_columns_int
% set \g__tasks_current_col_num_int to 1 if at the start of a row,
- % the also step \g__tasks_current_row_num_int :
+ % then also step \g__tasks_current_row_num_int :
\int_compare:nNnT { \g__tasks_current_col_num_int } > { \l__tasks_columns_int }
{
\int_gset:Nn \g__tasks_current_col_num_int { 1 }
@@ -209,15 +192,13 @@
}
\bool_if:NT \l__tasks_item_rest_of_line_bool
{
+ \int_set:Nn \l__tasks_tmpa_int
+ { \l__tasks_columns_int - \g__tasks_current_col_num_int + 1 }
\int_compare:nNnTF { \l__tasks_item_columns_int } = { 0 }
{
- \int_set:Nn \l__tasks_tmpa_int
- { \l__tasks_columns_int - \g__tasks_current_col_num_int + 1 }
- \int_set:Nn \l__tasks_tmpb_int { \l__tasks_tmpa_int -1 }
+ \int_set:Nn \l__tasks_tmpb_int { \l__tasks_tmpa_int - 1 } % 8
}
{
- \int_set:Nn \l__tasks_tmpa_int
- { \l__tasks_columns_int - \g__tasks_current_col_num_int + 1 }
\int_compare:nNnTF
{ \l__tasks_tmpa_int } > { \l__tasks_item_columns_int }
{ \int_set_eq:NN \l__tasks_tmpa_int \l__tasks_item_columns_int }
@@ -249,11 +230,11 @@
{
\vcoffin_set:Nnn \l__tasks_tmpa_coffin
{ \l__tasks_item_width_dim }
- { \__tasks_setup: #2 \strut }
+ { \__tasks_setup: #2 {#3} \strut }
\__tasks_debug:n
{
\coffin_typeset:Nnnnn \l__tasks_tmpa_coffin
- { l } { T } { 0pt } { 0pt }
+ {l} {T} {0pt} {0pt}
}
}
% set the label box:
@@ -273,7 +254,7 @@
\__tasks_debug:n
{
\coffin_typeset:Nnnnn \l__tasks_tmpa_coffin
- { l } { T } { 0pt } { 0pt }
+ {l} {T} {0pt} {0pt}
}
}
% attach the label box at the left of the item box, shifted by
@@ -292,7 +273,7 @@
\skip_horizontal:N \l__tasks_item_indent_dim
% typeset the item (with the attached label protruding to the left):
\coffin_typeset:Nnnnn \l__tasks_item_coffin
- { l } { T } { 0pt } { 0pt }
+ {l} {T} {0pt} {0pt}
\bool_if:nT
{
\l__tasks_item_full_line_bool ||
@@ -322,7 +303,7 @@
\bool_set_false:N \l__tasks_item_full_line_bool
\bool_set_false:N \l__tasks_item_rest_of_line_bool
}
-\cs_generate_variant:Nn \__tasks_task:nn { VV }
+\cs_generate_variant:Nn \__tasks_task:nnn { VVV }
\cs_new_protected:Npn \__tasks_setup:
{
@@ -336,26 +317,26 @@
\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_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 }
+ \str_case:nnF {#1}
{
- \tl_if_eq:nnT { #1 } { left }
+ {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 }
+ {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 }
+ {center}
{
\tl_set_eq:NN \l__tasks_item_fill_left_tl \hfill
\tl_set_eq:NN \l__tasks_item_fill_right_tl \hfill
@@ -367,16 +348,16 @@
}
}
\cs_generate_variant:Nn \__tasks_label_align:n { V }
-\__tasks_label_align:n { left }
+\__tasks_label_align:n {left}
% --------------------------------------------------------------------------
% the `tasks' object:
% #1: number of items
% #2: number of columns
% #3: label-format
-\DeclareObjectType { tasks } { 3 }
+\DeclareObjectType {tasks} {3}
% the `default' template interface:
-\DeclareTemplateInterface { tasks } { default } { 3 }
+\DeclareTemplateInterface {tasks} {default} {3}
{
enumerate : boolean = true ,
label : tokenlist ,
@@ -385,6 +366,7 @@
label-format : tokenlist ,
label-width : length = 1em ,
label-offset : length = .3333em ,
+ item-format : tokenlist ,
after-item-skip : skip = 1ex plus 1ex minus 1ex
}
@@ -395,7 +377,7 @@
\char_set_catcode_alignment:N \$
% the `default' template code:
-\DeclareTemplateCode { tasks } { default } { 3 }
+\DeclareTemplateCode {tasks} {default} {3}
{
enumerate = \l__tasks_enumerate_bool ,
label = \l__tasks_label_tl ,
@@ -404,6 +386,7 @@
label-format = \l__tasks_label_format_tl ,
label-width = \l__tasks_label_default_width_dim ,
label-offset = \l__tasks_label_default_offset_dim ,
+ item-format = \l__tasks_item_format_tl ,
after-item-skip = \l__tasks_after_item_skip
}
{
@@ -451,10 +434,10 @@
% 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 }
+ \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_current_col_num_int
- \int_set:Nn \g__tasks_current_row_num_int { 1 }
+ \int_set:Nn \g__tasks_current_row_num_int {1}
\tl_if_blank:VF \l__tasks_custom_label_pattern_tl
{
\tl_set_eq:NN
@@ -467,6 +450,12 @@
\l__tasks_label_format_tl
\l__tasks_custom_label_format_tl
}
+ \tl_if_blank:VF \l__tasks_custom_item_format_tl
+ {
+ \tl_set_eq:NN
+ \l__tasks_item_format_tl
+ \l__tasks_custom_item_format_tl
+ }
\seq_map_inline:Nn \l__tasks_seq
{
\__tasks_read_item:www ##1 \q_stop
@@ -475,7 +464,7 @@
\tl_if_eq:VnT \l__tasks_tmp_label_tl { $tasks$default$label$ }
{
\int_gincr:N \g__tasks_int
- \SaveCounterPatternFrom [ tasks ]
+ \SaveCounterPatternFrom [tasks]
\l__tasks_tmpa_tl
\l__tasks_label_tl
\l__tasks_label_pattern_tl
@@ -487,15 +476,18 @@
{ \tl_set_eq:NN \l__tasks_label_tl \labelitemi }
}
\tl_put_left:NV \l__tasks_label_tl \l__tasks_label_format_tl
+ % \tl_put_left:NV \l__tasks_item_tl \l__tasks_item_format_tl
\tl_if_eq:VnTF \l__tasks_tmp_label_tl { $tasks$default$label$ }
{
- \__tasks_task:VV
+ \__tasks_task:VVV
\l__tasks_label_tl
+ \l__tasks_item_format_tl
\l__tasks_item_tl
}
{
- \__tasks_task:VV
+ \__tasks_task:VVV
\l__tasks_tmp_label_tl
+ \l__tasks_item_format_tl
\l__tasks_item_tl
\tl_clear:N \l__tasks_tmp_label_tl
}
@@ -541,7 +533,7 @@
\cs_new_protected:Npn \__tasks_read_item_aux_ii:ww [#1]#2 \q_stop
{
- \tl_set:Nn \l__tasks_tmp_label_tl { #1 }
+ \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 }
@@ -604,54 +596,59 @@
% --------------------------------------------------------------------------
% base instance:
% ALPHABETIZE: a) b) c)
-\DeclareInstance { tasks } { alphabetize } { default } { }
+\DeclareInstance {tasks} {alphabetize} {default} { }
-\keys_define:nn { tasks / list }
+\keys_define:nn {tasks/list}
{
debug .bool_set:N = \l__tasks_debug_bool ,
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 } ,
+ \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 }
+ \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 }
+ \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-format .tl_set:N = \l__tasks_custom_item_format_tl ,
item-indent .code:n =
- \dim_set:Nn \l__tasks_item_indent_dim { #1 }
+ \dim_set:Nn \l__tasks_item_indent_dim {#1}
\bool_set_true:N \l__tasks_item_indent_bool ,
column-sep .dim_set:N = \l__tasks_column_sep_dim ,
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 } ,
+ \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 ]
+\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 } }
- \vspace {\l__tasks_before_list_skip}
+ \if@inlabel
+ \noindent\par\nobreak\vskip-\parskip\vskip-\baselineskip\hrule\@height\z@
+ \fi
+ \dim_compare:nNnF { \l__tasks_before_list_skip } = { 0pt }
+ { \vspace {\l__tasks_before_list_skip} }
\list {}
{
- \dim_set:Nn \leftmargin { 0pt }
- \dim_set:Nn \rightmargin { 0pt }
+ \keys_set:nn {tasks/list} { style = alphabetize , #2 }
+ % \keys_set:nn {tasks/list} {#2}
+ \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
+ \__tasks:VnnV \l__tasks_instance_tl {#3} {#1} \BODY
\endlist
- \vspace {\l__tasks_after_list_skip}
+ \dim_compare:nNnF { \l__tasks_after_list_skip } = { 0pt }
+ { \vspace {\l__tasks_after_list_skip} }
}
% --------------------------------------------------------------------------
@@ -659,7 +656,11 @@
\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_current_col_num_int }
+ {
+ \g__tasks_total_items_int +
+ \l__tasks_columns_int -
+ \g__tasks_current_col_num_int
+ }
\__tasks_gset_rows_num:NN
\g__tasks_total_items_int
\l__tasks_columns_int
@@ -673,41 +674,31 @@
% the user environment:
\NewDocumentCommand \NewTasks { O{}mO{\task}D(){1} }
{
- \NewDocumentEnvironment { #2 } { O{}D(){#4} }
- { \__tasks_env: { #3 } { #1,##1 } { ##2 } }
+ \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 } }
+ \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 .code:n = \msg_warning:nnn {tasks} {deprecated-option} {more}
- }
-
-\ProcessKeysOptions { tasks / options }
+\NewTasks {tasks}
-\cs_if_exist:NF \tasks_config_file_loaded:
- { \file_input:n { tasks.cfg } }
+\file_if_exist:nT {tasks.cfg} { \file_input:n {tasks.cfg} }
% --------------------------------------------------------------------------
% setup:
\cs_new_protected:Npn \tasks_setup:n #1
- { \keys_set:nn { tasks / list } { #1 } }
+ { \keys_set:nn {tasks/list} {#1} }
\NewDocumentCommand \settasks { m }
- { \tasks_setup:n { #1 } }
+ { \tasks_setup:n {#1} }
% --------------------------------------------------------------------------
\tex_endinput:D
@@ -755,3 +746,7 @@
- remove unnecessary (and unused) arguments of
\__tasks_task:nn
- add \strut to the end of an item
+2016/05/03 v0.11 - new option: `item-format'
+ - some changes to how the list is displayed, especially
+ regarding spacing -- it now better resembles the standard
+ lists