summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/knowledge
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-12-20 21:30:15 +0000
committerKarl Berry <karl@freefriends.org>2021-12-20 21:30:15 +0000
commit10c0448f0a37bb0c9aad482c365e8410c572af51 (patch)
tree279a6d2d8bf46fb68f8f37179ccbc514fd4c6fcb /Master/texmf-dist/tex/latex/knowledge
parent2bf0542d3eca03870bf292349c0eca5469d69ae6 (diff)
knowledge (20dec21)
git-svn-id: svn://tug.org/texlive/trunk@61356 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/knowledge')
-rw-r--r--Master/texmf-dist/tex/latex/knowledge/knowledge.sty460
1 files changed, 358 insertions, 102 deletions
diff --git a/Master/texmf-dist/tex/latex/knowledge/knowledge.sty b/Master/texmf-dist/tex/latex/knowledge/knowledge.sty
index f05eb931fc9..887f9a50ae1 100644
--- a/Master/texmf-dist/tex/latex/knowledge/knowledge.sty
+++ b/Master/texmf-dist/tex/latex/knowledge/knowledge.sty
@@ -23,7 +23,7 @@
%% LaTeX version 1999/12/01 or later.
%%
\usepackage{expl3}
-\ProvidesExplPackage{knowledge}{2021/03/31}{1.25}{}
+\ProvidesExplPackage{knowledge}{2021/12/20}{1.26}{}
%%%%%%%%%%
\RequirePackage{l3keys2e}
\RequirePackage{etoolbox}
@@ -829,7 +829,7 @@
\cs_new:Nn\knowledge_info:n
{\msg_info:nnn{knowledge}{knowledge~info}{#1}}
\cs_new:Nn\knowledge_warning:n{
- \msg_warning:nnn{knowledge}{knowledge~warning}{#1}
+ \msg_warning:nnn{knowledge}{knowledge~warning}{#1}
}
\cs_new:Nn\knowledge_error:n
{\msg_error:nnn{knowledge}{knowledge~error}{#1}}
@@ -842,25 +842,25 @@
\cs_generate_variant:Nn\knowledge_warning:n{x}
\cs_generate_variant:Nn\knowledge_error:n{x}
\cs_new:Npn\knowledge_warning:nn{
-\bool_if:NTF\knowledge_warningsilent_bool
-\use_none:nn
-\msg_warning:nn
+ \bool_if:NTF\knowledge_warningsilent_bool
+ \use_none:nn
+ \msg_warning:nn
}
\cs_new:Npn\knowledge_warning:nnn{
-\bool_if:NTF\knowledge_warningsilent_bool
-\use_none:nnn
-\msg_warning:nnn
+ \bool_if:NTF\knowledge_warningsilent_bool
+ \use_none:nnn
+ \msg_warning:nnn
}
\cs_new:Npn\knowledge_warning:nnnn{
-\bool_if:NTF\knowledge_warningsilent_bool
-\use_none:nnnn
-\msg_warning:nnnn
+ \bool_if:NTF\knowledge_warningsilent_bool
+ \use_none:nnnn
+ \msg_warning:nnnn
}
\cs_generate_variant:Nn\knowledge_warning:nnnn{nnxx}
\cs_new:Npn\knowledge_warning:nnnnn{
-\bool_if:NTF\knowledge_warningsilent_bool
-\use_none:nnnnn
-\msg_warning:nnnnn
+ \bool_if:NTF\knowledge_warningsilent_bool
+ \use_none:nnnnn
+ \msg_warning:nnnnn
}
\cs_generate_variant:Nn\knowledge_warning:nnnnn{nnxxx}
\msg_new:nnn{ knowledge }{ knowledge~recursion }
@@ -1022,10 +1022,66 @@
{\tl_set:Nn\knowledge_option_complexityAP_command_tl{#1}}
{\knowledge_error:n{Package~option~'complexity~AP'~must~be~followed~by~a~single~control~sequence.}}
}
+\tl_new:N\knowledge_option_anchor_point_color_tl
+\tl_set:Nn\knowledge_option_anchor_point_color_tl{red}
+\KnowledgeConfigureTrigger{anchor~point~color}
+ {\tl_set:Nn\knowledge_option_anchor_point_color_tl{#1}}
+\KnowledgeConfigureTrigger{AP~color}
+ {\tl_set:Nn\knowledge_option_anchor_point_color_tl{#1}}
+\tl_new:N\knowledge_option_anchor_point_shift_tl
+\tl_set:Nn\knowledge_option_anchor_point_shift_tl{(0,0)}
+\KnowledgeConfigureTrigger{anchor~point~shift}
+ {\tl_set:Nn\knowledge_option_anchor_point_shift_tl{(#1)}}
+\KnowledgeConfigureTrigger{AP~shift}
+ {\tl_set:Nn\knowledge_option_anchor_point_shift_tl{(#1)}}
+
+\cs_new:Nn\knowledge_anchor_point_corner:n{\line(0,-1){#1}\line(1,0){#1}}
+\cs_new:Nn\knowledge_anchor_point_cross:n{
+\put(0,0){\line(0,-1){#1}}\put(0,0){\line(0,1){#1}}\put(0,0){\line(-1,0){#1}}\put(0,0){\line(1,0){#1}}}
+\tl_new:N\knowledge_option_anchor_point_shape_tl
+\tl_set:Nn\knowledge_option_anchor_point_shape_tl{\knowledge_anchor_point_corner:n{0.2}}
+
+\tl_const:Nn\knowledge_APshape_name_corner_tl{corner}
+\tl_const:Nn\knowledge_APshape_name_tinycorner_tl{tiny~corner}
+\tl_const:Nn\knowledge_APshape_name_smallcorner_tl{small~corner}
+\tl_const:Nn\knowledge_APshape_name_largecorner_tl{large~corner}
+\tl_const:Nn\knowledge_APshape_name_cross_tl{cross}
+\tl_const:Nn\knowledge_APshape_name_tinycross_tl{tiny~cross}
+\tl_const:Nn\knowledge_APshape_name_smallcross_tl{small~cross}
+\tl_const:Nn\knowledge_APshape_name_largecross_tl{large~cross}
+
+\KnowledgeConfigureTrigger{AP~shape}
+ {\knowledge_set_anchor_point_shape:n{#1}}
+\KnowledgeConfigureTrigger{anchor~point~shape}
+ {\knowledge_set_anchor_point_shape:n{#1}}
+\cs_new:Nn \knowledge_set_anchor_point_shape:n{
+ \tl_set:Nn\l_tmpa_tl{#1}
+ \tl_case:NnTF\l_tmpa_tl{
+ \knowledge_APshape_name_corner_t
+{\tl_set:Nn\knowledge_option_anchor_point_shape_tl{\knowledge_anchor_point_corner:n{0.5}}}
+ \knowledge_APshape_name_tinycorner_tl
+{\tl_set:Nn\knowledge_option_anchor_point_shape_tl{\knowledge_anchor_point_corner:n{0.1}}}
+ \knowledge_APshape_name_smallcorner_tl
+{\tl_set:Nn\knowledge_option_anchor_point_shape_tl{\knowledge_anchor_point_corner:n{0.2}}}
+ \knowledge_APshape_name_largecorner_tl
+{\tl_set:Nn\knowledge_option_anchor_point_shape_tl{\knowledge_anchor_point_corner:n{0.8}}}
+ \knowledge_APshape_name_cross_tl
+{\tl_set:Nn\knowledge_option_anchor_point_shape_tl{\knowledge_anchor_point_cross:n{0.5}}}
+ \knowledge_APshape_name_tinycross_tl
+{\tl_set:Nn\knowledge_option_anchor_point_shape_tl{\knowledge_anchor_point_cross:n{0.1}}}
+ \knowledge_APshape_name_smallcross_tl
+{\tl_set:Nn\knowledge_option_anchor_point_shape_tl{\knowledge_anchor_point_cross:n{0.2}}}
+ \knowledge_APshape_name_largecross_tl
+{\tl_set:Nn\knowledge_option_anchor_point_shape_tl{\knowledge_anchor_point_cross:n{0.8}}}
+ }{}{
+ \tl_set:Nn\knowledge_option_anchor_point_shape_tl{#1}
+ }
+ }
\KnowledgeConfigureTrigger{ fix~hyperref~twocolumn }
{\knowledgeFixHyperrefTwocolumn}
\KnowledgeConfigureTrigger{ notion }
{\KnowledgeConfigureNotion{notion}
+ \knowledge_directives_require_aci_package:nn{notion}{hyperref}
\knowledgesetvariant\kl{suggestion=notion}
\knowledgesetvariant\intro{suggestion=notion}
\knowledgesetvariant\phantomintro{suggestion=notion}
@@ -1048,6 +1104,7 @@
\knowledge_option_aci_test_loaded:n{hyperref}
\knowledge_option_aci_test_loaded:n{xcolor}
\knowledge_option_aci_test_loaded:n{makeidx}
+\knowledge_option_aci_test_loaded:n{cleveref}
\cs_new:Nn\knowledge_option_aci_define:n{
\keys_define:nn{ knowledge~package~options } {
#1 .choice: ,
@@ -1074,6 +1131,7 @@
\knowledge_option_aci_define:n{hyperref}
\knowledge_option_aci_define:n{xcolor}
\knowledge_option_aci_define:n{makeidx}
+\knowledge_option_aci_define:n{cleveref}
\ProcessKeysOptions{knowledge~package~options}
\bool_new:N\knowledge_option_composition_bool
@@ -1121,6 +1179,7 @@
\knowledge_option_aci_autoload:nnn{ hyperref }{}{}
\knowledge_option_aci_autoload:nn{ xcolor }{}
\knowledge_option_aci_autoload:nn{ makeidx }{}
+\knowledge_option_aci_autoload:nn{ cleveref }{}
\tl_const:Nn\scope_tl{SC@PE}
\tl_const:Nn\scopept_tl{SC@PE2}
\seq_new:N\scope_instances_stack_seq
@@ -2195,7 +2254,7 @@
\keys_if_exist:nnTF{ knowledge~directives }{ #2 }
{\IfBooleanTF{#1}
{\knowledgedirective:nnn{#2}{#3}{#4}}
- {\msg_error:nnn{ knowledge }{ knowledgedirective~redifinition }{#2}}}
+ {\msg_error:nnn{ knowledge }{ knowledgedirective~redefinition }{#2}}}
{\knowledgedirective:nnn{#2}{#3}{#4}}
\kl_hide_end:
}
@@ -2203,10 +2262,10 @@
\cs_set:cn
{knowledgedirective_#1:n}
{\keys_set:nn{ knowledge~directives }{#3}}
- \keys_define:nn{ knowledge~directives }
+ \keys_define:nn{ knowledge~directives }
{#1 .code:n = {\use:c{knowledgedirective_#1:n}{##1}}}
- \IfNoValueF{#2}
- {\keys_define:nn{ knowledge~directives }{#2 .default:n = {#2}}}
+ \IfNoValueF{#2}
+ {\keys_define:nn{ knowledge~directives }{#1 .default:n = {#2}}}
}
\tl_new:N\knowledge_knowledgedefault_tl
\NewDocumentCommand\knowledgedefault{sm}{
@@ -2259,7 +2318,7 @@
{\use:c{knowledge_kl_\tl_to_str:V\knowledge_kl_modifiers_tl _init_tl}}
{\knowledge_error:x
{Unknown~variant~modifier~sequence~`\exp_not:V\knowledge_kl_modifiers_tl'.}}
- %
+ %
\knowledge_kl_modifiers_reset:
%
\knowledge_kl_use_styles:x{\knowledge_kl_default_style_tl}
@@ -2616,6 +2675,8 @@
\exp_not:c{knowledge_kl_\cs_to_str:N#1_unknown_style_cont_tl}
\exp_not:n{\tl_set_eq:NN\knowledge_kl_styledirectives_tl}
\exp_not:c{knowledge_kl_\cs_to_str:N#1 _styledirectives_tl}
+ \exp_not:n{\tl_set_eq:NN\knowledge_kl_display_process_tl}
+ \exp_not:c{knowledge_kl_\cs_to_str:N#1 _display_process_tl}
\exp_not:c{knowledge_kl_\cs_to_str:N#1 _autoknowledge_tl}
}
%
@@ -2647,6 +2708,9 @@
namespace .code:n =
{\tl_set:cn{knowledge_kl_\knowledge_variant_key_tl _namespace_tl}{#1}},
%
+ display~code .code:n =
+ {\tl_set:cn{knowledge_kl_\knowledge_variant_key_tl _display_process_tl}{#1}},
+ %
unknown~warning .choices:nn = {true,false}
{\bool_set_text:cn{knowledge_kl_\knowledge_variant_key_tl _unknownwarning_bool}{#1}},
%
@@ -2851,6 +2915,11 @@
\cs_generate_variant:Nn\knowledge_kl_display_generic:n{x}
\cs_generate_variant:Nn\knowledge_kl_display_generic_cond:Nn{Nx}
\cs_new:Nn\knowledge_kl_compute_code:{
+ \tl_if_exist_ne:NTF\knowledge_kl_display_process_tl
+ \knowledge_kl_display_process_tl
+ \knowledge_kl_default_compute_code:
+}
+\cs_new:Nn\knowledge_kl_default_compute_code:{
\tl_if_exist_ne:NTF\knowledge_kl_forcedtext_tl
{\tl_gset_eq:NN\knowledge_display_code_tl\knowledge_kl_forcedtext_tl}
{\tl_gset_eq:NN\knowledge_display_code_tl\knowledge_kl_text_tl}
@@ -2872,6 +2941,9 @@
%
\bool_if:NT\knowledge_xcolor_active_bool
\knowledge_kl_compute_code_xcolor:
+ %
+ \knowledge_kl_compute_code_hyperreftarget:
+ %
\bool_if:NT\knowledge_hyperref_active_bool
\knowledge_kl_compute_code_hyperref:
%
@@ -2915,8 +2987,6 @@
{\exp_not:N\kl_hyperlink_silentref:nn
{\exp_not:V\knowledge_kl_ref_tl}}}
%
- \knowledge_kl_compute_code_hyperreftarget:
- %
\bool_if:NT\kl_autoreflink_bool
{\tl_if_exist_ne:NT\knowledge_kl_autoref_tl
{\knowledge_kl_display_generic:x
@@ -2944,21 +3014,8 @@
{\exp_not:N\KAuxAutorefTarget
\exp_not:o\knowledge_kl_resourcearguments_tl}}
}
-\cs_new:Nn\knowledge_kl_compute_code_makeidx:{
- \tl_if_exist_ne:NTF\knowledge_kl_index_tl
- {\exp_args:Nx\index
- {\tl_if_exist_ne:NTF\knowledge_kl_index_parent_key_tl
- {\exp_not:V\knowledge_kl_index_parent_key_tl!}{}
- \tl_if_exist_ne:NTF\knowledge_kl_index_key_tl
- {\exp_not:V\knowledge_kl_index_key_tl@}{}
- \expandafter\tl_to_str:n\expandafter{\knowledge_kl_index_tl}
- \tl_if_exist_ne:NTF\knowledge_kl_index_number_style_tl
- {|\exp_not:V\knowledge_kl_index_number_style_tl}{}
- }}{}
-}
-
\cs_new:Npn\kl_up:n{\mode_if_math:TF\use:n\textup}
-\cs_new:Npn\kl_md:n{\mode_if_math:TF\mathmd\textmd}
+\cs_new:Npn\kl_md:n{\mode_if_math:TF\use:n\textmd}
\cs_new:Npn\kl_sc:n{\mode_if_math:TF\mathsc\textsc}
\cs_new:Npn\kl_it:n{\mode_if_math:TF\mathit\textit}
\cs_new:Npn\mathscerror#1{\knowledge_error:n{`smallcaps'~only~allowed~in~math~mode.}}
@@ -2991,6 +3048,23 @@
{\exp_not:V\knowledge_kl_text_tl}
}
}
+\cs_new:Nn\knowledge_labelref_display_process:n{
+ \tl_if_exist_ne:NTF\knowledge_kl_ref_tl
+ {\tl_gset:Nx\knowledge_display_code_tl
+ {\exp_not:n{#1}
+ {\exp_not:V\knowledge_kl_ref_tl}}
+ }{
+ \bool_if:NTF\kl_autoreflink_bool
+ {\tl_if_exist_ne:NT\knowledge_kl_autoref_tl
+ {\tl_gset:Nx\knowledge_display_code_tl
+ {\exp_not:n{#1}
+ {\exp_not:V\knowledge_kl_autoref_tl}}
+ }
+ }{ \tl_gset:Nn\knowledge_display_code_tl{???}
+ }
+ }
+}
+\cs_set_eq:NN\knowledgedisplayref\knowledge_labelref_display_process:n
\NewDocumentCommand\knowledge_anchor_point_cs:{}
{\bool_if:NT\knowledge_hyperref_active_bool
{\strut\vadjust{\knowledge_AP_internal:}}}
@@ -3033,16 +3107,16 @@
\smash{\llap{\knowledge_AP_mark:\kern0.3em}}
\vss}}
\cs_new:Nn\knowledge_AP_mark:{%
- \setlength\unitlength{1em}
- \begin{picture}(0,0)
- \put(0,1.2){
- \bool_if:NT\knowledge_hyperref_active_bool
- {\put(-0.05,-1.04){\phantomsection}}
- \bool_if:NT\knowledge_configuration_visibleAP_bool
+ \setlength\unitlength{1em}
+ \begin{picture}(0,0)
+ \put(0,1.1){\expandafter\put\knowledge_option_anchor_point_shift_tl{
+ \bool_if:NT\knowledge_hyperref_active_bool
+ {\put(-0.05,-1.18){\phantomsection}}
+ \bool_if:NT\knowledge_configuration_visibleAP_bool
{\bool_if:NTF\knowledge_xcolor_active_bool
- {\textcolor{red}}{\use:n}
- {\line(0,-1){0.5}\line(1,0){0.5}}}}
- \end{picture}{}}
+ {\textcolor{\knowledge_option_anchor_point_color_tl}}{\use:n}
+ {\knowledge_option_anchor_point_shape_tl}}}}
+ \end{picture}{}}
\cs_new:Nn\knowledge_itemAP:{
\hbox_overlap_left:n
{\knowledge_AP_mark:\hspace{1em}}
@@ -3103,62 +3177,136 @@
pop~code={\knowledgeconfigure{quotation=true}}}}
}
-\cs_new:Nn\klparse_absorb_modifiers:
- {\tl_set_eq:NN\klparse_primes_tl\c_empty_tl
- \bool_if:NTF\klparse_load_primes_bool
- \klparse_absorb_modifiers_pses:
- \klparse_absorb_modifiers_ses:
- }
-
-\cs_new:Nn\klparse_absorb_modifiers_pses:
- {\klparse_ifnextchar:NTF'
- {\tl_put_right:Nn\klparse_primes_tl'
- \use_i:nn\klparse_absorb_modifiers_pses:}
- \klparse_absorb_modifiers_ses:
+\knowledgenewvariant\rekl{
+ namespace= default,
+ default~style= {autoref~link},
+ unknown~style= kl~unknown,
+ unknown~style~cont= kl~unknown~cont,
+ style~directive= style
+}
+\knowledgevariantmodifier{\intro*\rekl}{\reintro}
+\knowledgevariantmodifier{\rekl*\intro}{\reintro}
+\knowledgevariantmodifier{\reintro*\rekl}{\reintro}
+\knowledgevariantmodifier{\rekl*\reintro}{\reintro}
+\knowledgevariantmodifier{\rekl*\kl}{\rekl}
+\knowledgevariantmodifier{\kl*\rekl}{\rekl}
+\knowledgevariantmodifier{\rekl*\rekl}{\rekl}
+\knowledgevariantmodifier{\phantomintro*\rekl}{\phantomkl}
+\knowledgevariantmodifier{\rekl*\phantomintro}{\phantomkl}
+\knowledgevariantmodifier{\phantomintro*\kl}{\phantomintro}
+\knowledgevariantmodifier{\phantomkl*\kl}{\phantomkl}
+
+\knowledgedirective{automatic~in~command}{notion}
+
+\tl_gset:Nn\knowledge_inner_modifer_re_tl{\rekl*}
+
+\int_new:N\knowledge_inner_modifier_count_int
+\cs_new:Nn\knowledge_inner_command:
+ {knowledge_cmdkl \int_to_arabic:n\knowledge_inner_modifier_count_int :n}
+
+\NewDocumentCommand\withkl{mm}{
+ \int_gincr:N\knowledge_inner_modifier_count_int
+ \group_begin:
+ \group_end:
+ \cs_gset:cpx
+ {\knowledge_inner_command:}
+ {\exp_not:N\cs_gset:Npn
+ \exp_not:c{\knowledge_inner_command:}
+ {\knowledge_inner_modifer_re_tl\knowledge_kl_modifiers_tl\exp_not:n{#1}}
+ \knowledge_kl_modifiers_tl\exp_not:n{#1}}
+ \knowledge_kl_modifiers_reset:
+ #2{}{}
+ \int_gdecr:N\knowledge_inner_modifier_count_int
+}
+
+\cs_new:Nn\knowledge_error_unexpected_cmdkl:{
+ \knowledge_error:n{\cmdkl~is~only~allowed~inside~\withkl~or~in~macros~defined~using~\knowledgenewcommand-like~commands}
+}
+\newrobustcmd\cmdkl[1]{
+ \int_compare:nNnTF\knowledge_inner_modifier_count_int=0
+ \knowledge_error_unexpected_cmdkl:
+ \use:c{\knowledge_inner_command:}{#1}
+}
+
+\NewDocumentCommand\knowledge_knowledgified_newcommand:NNwn{mmsoom}{
+ \use:x{
+ \exp_not:n{#1{#2}}
+ \IfBooleanTF {#3} {*} {}
+ \IfNoValueF{#4}{\exp_not:n{[{#4}]}}
+ \IfNoValueF{#5}{\exp_not:n{[{#5}]}} }
+ {\withkl{\kl[{#2}]}{#6}}
+ \knowledge{#2}{automatic~in~command}
+}
+\NewDocumentCommand\knowledge_knowledgified_NewDocumentCommand:NNnn{mmmm}{
+ #1#2{#3}{\withkl{\kl[{#2}]}{#4}}
+ \knowledge{#2}{cmdkl}
+}
+\NewDocumentCommand\KnowledgifyNewcommand{m}{
+ \cs_if_exist:NTF#1{
+ \exp_args:Nc\NewDocumentCommand{knowledge\cs_to_str:N#1}{}
+ {\knowledge_knowledgified_newcommand:NNwn#1}
+ }{
+ %\tl_show:n{Unknown~#1~in~\KnowledgifyNewcommand}
+ \use:x{\exp_not:N\NewDocumentCommand
+ \exp_not:c{knowledge\cs_to_str:N#1}
+ {}
+ {\exp_not:N\knowledge_error:n{
+ The~command~\exp_not:N#1~should~be~defined~for~\exp_not:c
+ {knowledge\cs_to_str:N#1}~to~be~usable.}}
+ }
}
-
-\cs_new:Nn\klparse_absorb_modifiers_ses:
- {\bool_if:NTF\klparse_load_subscript_bool
- {\klparse_absorb_subscript:Nn\klparse_subscript_tl\klparse_absorb_modifiers_es:}
- {\tl_set_eq:NN\klparse_subscript_tl\klparse_novalue_tl
- \klparse_absorb_modifiers_es:}
- }
-
-\cs_new:Nn\klparse_absorb_modifiers_es:
- {\bool_if:NTF\klparse_load_supscript_bool
- {\tl_if_empty:NTF\klparse_primes_tl
- {\klparse_absorb_supscript:Nn\klparse_supscript_tl
- \klparse_absorb_modifiers_ts:}
- {\tl_set_eq:NN\klparse_supscript_tl\klparse_novalue_tl
- \klparse_absorb_modifiers_exec:}}
- {\tl_set_eq:NN\klparse_supscript_tl\klparse_novalue_tl
- \klparse_absorb_modifiers_exec:}
- }
-
-\cs_new:Nn\klparse_absorb_modifiers_ts:
- {\bool_if:NTF\klparse_load_subscript_bool{
- \klparse_if_novalue:NTF\klparse_subscript_tl
- {\klparse_absorb_subscript:Nn\klparse_subscript_tl\klparse_absorb_modifiers_exec:}
- \klparse_absorb_modifiers_exec:}
- {\klparse_absorb_modifiers_exec:}
- }
-\ExplSyntaxOff
-\def\absorbsupscriptNn{\absorbopt ^}
-\def\absorbsubscriptNn{\absorbopt _}
-\ExplSyntaxOn
-\cs_set_eq:NN\klparse_absorb_supscript:Nn\absorbsupscriptNn
-\cs_set_eq:NN\klparse_absorb_subscript:Nn\absorbsubscriptNn
-
-\cs_new:Npn\absorbopt#1#2#3
- {\klparse_ifnextchar:NTF #1
- {\klparse_absorbopt_ii:NnNn #2 {#3}}
- {\tl_set_eq:NN #2 \klparse_novalue_tl #3}}
-
-\cs_new:Nn\klparse_absorbopt_ii:NnNn
- {\tl_set:Nn #1 {#4} #2 }
-\cs_set_eq:NN\klparse_if_load_subscript:TF\use_i:nn
-\cs_set_eq:NN\klparse_if_load_supscript:TF\use_i:nn
-\cs_set_eq:NN\klparse_if_load_primes:TF\use_i:nn
+}
+\NewDocumentCommand\KnowledgifyNewDocumentCommand{m}{
+ \cs_if_exist:NTF#1{
+ \exp_args:Nc\NewDocumentCommand{Knowledge\cs_to_str:N#1}{}
+ {\knowledge_knowledgified_NewDocumentCommand:NNnn#1}
+ }{
+ %\tl_show:n{Unknown~#1~in~\KnowledgifyNewDocumentCommand}
+ \use:x{\exp_not:N\NewDocumentCommand
+ \exp_not:c{knowledge\cs_to_str:N#1}
+ {}
+ {\exp_not:N\knowledge_error:n{
+ The~command~\exp_not:N#1~should~be~defined~for~\exp_not:c
+ {Knowledge\cs_to_str:N#1}~to~be~usable.}}
+ }
+ }
+}
+\KnowledgifyNewcommand\newcommand
+\KnowledgifyNewcommand\renewcommand
+\KnowledgifyNewcommand\newrobustcmd
+\KnowledgifyNewDocumentCommand\NewDocumentCommand
+\KnowledgifyNewDocumentCommand\RenewDocumentCommand
+\KnowledgifyNewDocumentCommand\ProvideDocumentCommand
+\KnowledgifyNewDocumentCommand\DeclareDocumentCommand
+\KnowledgifyNewcommand\declarecommand
+\KnowledgifyNewcommand\newmathcommand
+\KnowledgifyNewcommand\newtextcommand
+\KnowledgifyNewcommand\renewmathcommand
+\KnowledgifyNewcommand\renewtextcommand
+\KnowledgifyNewcommand\declaremathcommand
+\KnowledgifyNewcommand\declaretextcommand
+\KnowledgifyNewDocumentCommand\NewDocumentMathCommand
+\KnowledgifyNewDocumentCommand\NewDocumentTextCommand
+\KnowledgifyNewDocumentCommand\RenewDocumentMathCommand
+\KnowledgifyNewDocumentCommand\RenewDocumentTextCommand
+\KnowledgifyNewDocumentCommand\ProvideDocumentMathCommand
+\KnowledgifyNewDocumentCommand\ProvideDocumentTextCommand
+\KnowledgifyNewDocumentCommand\DeclareDocumentMathCommand
+\KnowledgifyNewDocumentCommand\DeclareDocumentTextCommand
+\KnowledgifyNewcommand\newcommandPIE
+\KnowledgifyNewcommand\renewcommandPIE
+\KnowledgifyNewcommand\declarecommandPIE
+\KnowledgifyNewcommand\newmathcommandPIE
+\KnowledgifyNewcommand\renewmathcommandPIE
+\KnowledgifyNewcommand\declaremathcommandPIE
+\KnowledgifyNewDocumentCommand\NewDocumentCommandPIE
+\KnowledgifyNewDocumentCommand\RenewDocumentCommandPIE
+\KnowledgifyNewDocumentCommand\DeclareDocumentCommandPIE
+\KnowledgifyNewDocumentCommand\ProvideDocumentCommandPIE
+\KnowledgifyNewDocumentCommand\NewDocumentMathCommandPIE
+\KnowledgifyNewDocumentCommand\RenewDocumentMathCommandPIE
+\KnowledgifyNewDocumentCommand\DeclareDocumentMathCommandPIE
+\KnowledgifyNewDocumentCommand\ProvideDocumentMathCommandPIE
\cs_new:Nn\knowledge_directives_require_aci_package:nn
{\bool_if:cTF{knowledge_#2_syntax_bool}{}{
\NewKnowledgeParamPackageError{#1}{#2}}}
@@ -3187,15 +3335,28 @@
}
\NewKnowledgeParamTl*{url}
\NewKnowledgeParamTl*{ref}
-
\knowledge_directives_require_aci_package:nn
- {url,ref,autoref}{hyperref}
+ {url}{hyperref}
\bool_if:NT\knowledge_hyperref_active_bool{
\DeclareExpandableDocumentCommand\knowledge_fake_klTKS{mmm}{#1}
\pdfstringdefDisableCommands{%
\let\klTKS\knowledge_fake_klTKS
}
}
+\cs_new:Nn\knowledge_kl_compute_code_makeidx:{
+ \bool_if:NF\knowledge_kl_noindex_bool{
+ \tl_if_exist_ne:NTF\knowledge_kl_index_tl
+ {\exp_args:Nx\index
+ {\tl_if_exist_ne:NTF\knowledge_kl_index_parent_key_tl
+ {\exp_not:V\knowledge_kl_index_parent_key_tl!}{}
+ \tl_if_exist_ne:NTF\knowledge_kl_index_key_tl
+ {\exp_not:V\knowledge_kl_index_key_tl@}{}
+ \expandafter\tl_to_str:n\expandafter{\knowledge_kl_index_tl}
+ \tl_if_exist_ne:NTF\knowledge_kl_index_number_style_tl
+ {|\exp_not:V\knowledge_kl_index_number_style_tl}{}
+ }}{}
+ }
+}
\def\knowledgeIntroIndexStyle#1{\textbf{#1}}
\NewKnowledgeParamTl{index}
\keys_define:nn { knowledge~directives }
@@ -3209,6 +3370,85 @@
\NewKnowledgeParamTl*[\knowledge_kl_index_number_style_tl]{index~style}
\NewKnowledgeParamTl*[\knowledge_kl_index_parent_key_tl]{index~parent~key}
\NewKnowledgeParamTl*[\knowledge_kl_index_key_tl]{index~key}
+\NewKnowledgeParamBool*{no~index}\knowledge_kl_noindex_bool
+\bool_if:NTF\knowledge_cleveref_active_bool{
+ \knowledgenewvariant\kcref{
+ namespace=default,
+ unknown~style={kl~unknown,ref~unknown},
+ unknown~style~cont={kl~unknown~cont,ref~unknown},
+ default~style=autoref~link,
+ display~code={\knowledgedisplayref\cref}
+ }
+ \knowledgenewvariant\kCref{
+ namespace=default,
+ unknown~style={kl~unknown,ref~unknown},
+ unknown~style~cont={kl~unknown~cont,ref~unknown},
+ default~style=autoref~link,
+ display~code={\knowledgedisplayref\Cref}
+ }
+ \knowledgenewvariant\kcpageref{
+ namespace=default,
+ unknown~style={kl~unknown,ref~unknown},
+ unknown~style~cont={kl~unknown~cont,ref~unknown},
+ default~style=autoref~link,
+ display~code={\knowledgedisplayref\cpageref}
+ }
+ \knowledgenewvariant\kCpageref{
+ namespace=default,
+ unknown~style={kl~unknown,ref~unknown},
+ unknown~style~cont={kl~unknown~cont,ref~unknown},
+ default~style=autoref~link,
+ display~code={\knowledgedisplayref\Cpageref}
+ }
+ \knowledgenewvariant\knamecref{
+ namespace=default,
+ unknown~style={kl~unknown,ref~unknown},
+ unknown~style~cont={kl~unknown~cont,ref~unknown},
+ default~style=autoref~link,
+ display~code={\knowledgedisplayref\namecref}
+ }
+ \knowledgenewvariant\knameCref{
+ namespace=default,
+ unknown~style={kl~unknown,ref~unknown},
+ unknown~style~cont={kl~unknown~cont,ref~unknown},
+ default~style=autoref~link,
+ display~code={\knowledgedisplayref\nameCref}
+ }
+ \knowledgenewvariant\knamecrefs{
+ namespace=default,
+ unknown~style={kl~unknown,ref~unknown},
+ unknown~style~cont={kl~unknown~cont,ref~unknown},
+ default~style=autoref~link,
+ display~code={\knowledgedisplayref\namecrefs}
+ }
+ \knowledgenewvariant\knameCrefs{
+ namespace=default,
+ unknown~style={kl~unknown,ref~unknown},
+ unknown~style~cont={kl~unknown~cont,ref~unknown},
+ default~style=autoref~link,
+ display~code={\knowledgedisplayref\nameCrefs}
+ }
+ \knowledgevariantmodifier{\kcref*\kl}{\kcref}
+ \knowledgevariantmodifier{\kCref*\kl}{\kCref}
+ \knowledgevariantmodifier{\kcpageref*\kl}{\kcpageref}
+ \knowledgevariantmodifier{\kCpageref*\kl}{\kCpageref}
+ \knowledgevariantmodifier{\knamecref*\kl}{\knamecref}
+ \knowledgevariantmodifier{\knameCref*\kl}{\knameCref}
+ \knowledgevariantmodifier{\knamecrefs*\kl}{\knamecrefs}
+ \knowledgevariantmodifier{\knameCrefs*\kl}{\knameCrefs}
+}{
+ \cs_new:Nn\knowledge_cleveref_error:N{
+ \newcommand#1{\knowledge_error:n{Use~package~'cleveref'~for~command~#1.}}
+ }
+ \knowledge_cleveref_error:N\kcref
+ \knowledge_cleveref_error:N\kCref
+ \knowledge_cleveref_error:N\kcpageref
+ \knowledge_cleveref_error:N\kCpageref
+ \knowledge_cleveref_error:N\knamecref
+ \knowledge_cleveref_error:N\knameCref
+ \knowledge_cleveref_error:N\knamecrefs
+ \knowledge_cleveref_error:N\knameCrefs
+}
\ExplSyntaxOff\makeatletter
\newcommand\knowledgeFixHyperrefTwocolumn{
\RequirePackage{etoolbox}
@@ -3318,7 +3558,23 @@
unknown style cont=intro unknown cont,
style directive=intro style
}
-
+\knowledgestyle{ref unknown}{text=??}
+\knowledgenewvariant\kref{
+ namespace=default,
+ unknown style={kl unknown,ref unknown},
+ unknown style cont={kl unknown cont,ref unknown},
+ default style=autoref link,
+ display code={\knowledgedisplayref\ref}
+}
+\knowledgenewvariant\kpageref{
+ namespace=default,
+ unknown style={kl unknown,ref unknown},
+ unknown style cont={kl unknown cont,ref unknown},
+ default style=autoref link,
+ display code={\knowledgedisplayref\pageref}
+}
+\knowledgevariantmodifier{\kref*\kl}{\kref}
+\knowledgevariantmodifier{\kpageref*\kl}{\kpageref}
\knowledgevariantmodifier{\intro*\kl}{\intro}
\knowledgevariantmodifier{\reintro*\kl}{\reintro}