From 10c0448f0a37bb0c9aad482c365e8410c572af51 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 20 Dec 2021 21:30:15 +0000 Subject: knowledge (20dec21) git-svn-id: svn://tug.org/texlive/trunk@61356 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/knowledge/knowledge.sty | 460 ++++++++++++++++----- 1 file changed, 358 insertions(+), 102 deletions(-) (limited to 'Master/texmf-dist/tex') 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} -- cgit v1.2.3