summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/knowledge
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-12-03 22:05:20 +0000
committerKarl Berry <karl@freefriends.org>2019-12-03 22:05:20 +0000
commitb35ea48fb406c5aaebc3b92c7ec228e03f75e58f (patch)
treecb46a95f3d488d3c04f85ed914148c543ea61da7 /Master/texmf-dist/tex/latex/knowledge
parentc7b7b71e49652c9ff0f4f3b2fa6a344041ddbeb1 (diff)
knowledge (3dec19)
git-svn-id: svn://tug.org/texlive/trunk@53015 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/knowledge')
-rw-r--r--Master/texmf-dist/tex/latex/knowledge/knowledge.sty234
1 files changed, 155 insertions, 79 deletions
diff --git a/Master/texmf-dist/tex/latex/knowledge/knowledge.sty b/Master/texmf-dist/tex/latex/knowledge/knowledge.sty
index 93019b0dbd0..fab365a87c9 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}{2019/11/19}{1.19}{}
+\ProvidesExplPackage{knowledge}{2019/12/03}{1.20}{}
%%%%%%%%%%
\RequirePackage{l3keys2e}
\RequirePackage{etoolbox}
@@ -159,10 +159,37 @@
\KAuxWrite*{}}
\NewDocumentCommand\KAuxClose{}
- {\iow_close:N\knowledge_kaux_iow
+ {\KAuxWrite*{\KAuxEOF {}}
+ \iow_close:N\knowledge_kaux_iow
\bool_gset_true:N\kaux_can_be_used_bool
\kaux_posttreatment_tl
}
+\cs_new:Npn\kaux_if_exist_containline:nnTF#1#2{
+ \file_if_exist:nTF{#1}{
+ \ior_open:Nn\klg_tmpa_ior{#1}
+ \bool_gset_false:N\g_tmpa_bool
+ \bool_gset_false:N\g_tmpb_bool
+ \str_gset:Nn\g_tmpb_str{#2}
+ \bool_do_until:Nn\g_tmpa_bool{
+ \ior_if_eof:NTF\klg_tmpa_ior
+ {\bool_set_true:N\g_tmpa_bool}
+ {
+ \ior_str_get:NN\klg_tmpa_ior\g_tmpa_str
+ %\iow_term:x{(\exp_not:V\g_tmpa_str)=?(\exp_not:V\g_tmpb_str)}
+ \str_if_eq:NNTF\g_tmpa_str\g_tmpb_str
+ {\bool_gset_true:N\g_tmpa_bool
+ \bool_gset_true:N\g_tmpb_bool}
+ {}
+ }}
+ \ior_close:N\klg_tmpa_ior
+ %\bool_show:N\g_tmpb_bool
+ \bool_if:NTF\g_tmpb_bool
+ }
+ {\use_ii:nn}
+}
+
+\NewDocumentCommand\IfKAuxReadyTF{}
+ {\exp_args:Nx\kaux_if_exist_containline:nnTF{\c_sys_jobname_str.kaux}{\KAuxEOF {}}}
\NewDocumentCommand\KAuxBefore{m}
{\tl_gput_right:Nn\kaux_pretreatment_tl{#1}}
\NewDocumentCommand\KAuxAfter{m}
@@ -184,6 +211,9 @@
\tl_gset:cn{kaux_\cs_to_str:N#1-args_tl}{#2}
\tl_gput_right:Nn\kaux_command_list_tl{#1}
}
+\NewKAuxCommand\KAuxEOF{m}
+ {Does~nothing,~useless~empty~argument
+ ,~and~is~searched~for~knowing~if~the~kaux~file~was~written~till~the~end.}
\NewDocumentCommand\KAuxCommand{mmm}
{ \cs_if_exist:NTF #1
{}
@@ -624,7 +654,6 @@
\ior_close:N\klg_tmpa_ior
\iow_close:N\klg_tmpa_iow
\group_end:}}
-
\cs_new_protected_with_variants:Nnn\kl_compare_files:Nnn{NnV,NVn,NVV}
{\group_begin:
\bool_set_false:N\l_tmpa_bool% set when finished
@@ -666,7 +695,6 @@
{\group_end:\bool_set_true:N#1}
{\group_end:\bool_set_false:N#1}
}
-
\cs_new_protected:Nn\kl_tl_to_file:nn
{\iow_open:Nn\klg_tmpa_iow{#1}
\iow_now:Nn\klg_tmpa_iow{#2}
@@ -791,6 +819,13 @@
\tl_new:N\char_escape_tl
\tl_set:Nx\char_escape_tl
{\expandafter\tl_head:n\expandafter{\string\escape}}
+\cs_new:Nn\debug_vars:nn{
+ \iow_term:n{---~{#1}}
+ \tl_map_inline:nn{#2}
+ {\iow_term:x{\space\space\exp_not:N##1=\space\tl_if_exist:NTF##1
+ {{\exp_not:V##1}}
+ {undefined}}}
+}
\cs_new:Nn\knowledge_info:n
{\msg_info:nnn{knowledge}{knowledge~info}{#1}}
\cs_new:Nn\knowledge_warning:n
@@ -806,14 +841,14 @@
\cs_generate_variant:Nn\knowledge_warning:n{x}
\cs_generate_variant:Nn\knowledge_error:n{x}
\msg_new:nnn{ knowledge }{ knowledge~recursion }
- { The~knowledges~are~probably~cyclic,~starting~from~'#1'~(namespace~'#2'),~
+ { The~knowledges~are~probably~cyclic,~starting~from\\<#1>~(namespace~'#2'),~
currently~at~'#3'.}
\msg_new:nnn{ knowledge }{ knowledge~unknown }
- {The~knowledge~'#1'~could~not~be~found~in~scopes~<~#3~>~(namespace~'#2').}
+ {The~knowledge~'#1'~could~not~be~found~in~scopes\\<#3>~(namespace~'#2').}
\msg_new:nnn{ knowledge }{ knowledge~unknown~in~scope }
- {The~knowledge~'#1'~could~not~be~found~in~scope~'#3'~(namespace~'#2').}
+ {The~knowledge~'#1'~could~not~be~found~in~scope\\<#3>~(namespace~'#2').}
\msg_new:nnn{ knowledge }{ knowledge~unknown~label }
- {The~label~'#2'~could~not~be~found~while~searching~for~'#1'.~Possibly~rerun~latex.}
+ {The~label~'#2'~could~not~be~found~while~searching~for:\\<#1>\\Possibly~rerun~latex.}
\msg_new:nnn{ knowledge }{ package~required }
{In~order~to~use~directive~'#1',~please~load~package~or~use~option~'#2'.}
\msg_new:nnn{ knowledge }{ knowledge~exists }
@@ -835,12 +870,12 @@
\msg_new:nnn{scope}{area~not~in~context}
{\tl_if_empty:nTF{#2}{}{\exp_not:n{#2}}:
~The~area~`#1'~can't~be~found~in~context.~Possibly~rerun~latex.}
-\msg_new:nnn{knowledge}{recap~unknown~knowledge}
- {Some~knowledge~are~not~defined.~See~the~'.diagnose'~file~for~more~information.}
-\msg_new:nnn{knowledge}{recap~autoref~introduced~twice}
- {Some~knowledge~is~introduced~twice.~See~the~'.diagnose'~file~for~more~information.}
-\msg_new:nnn{knowledge}{recap~autoref~not~introduced}
- {Some~knowledge~is~used~but~not~introduced.~See~the~'.diagnose'~file~for~more~information.}
+\exp_args:Nnnx\msg_new:nnn{knowledge}{recap~unknown~knowledge}
+ {Some~knowledge~are~not~defined.~See~the~'\c_sys_jobname_str.diagnose'~file~for~more~information.}
+\exp_args:Nnnx\msg_new:nnn{knowledge}{recap~autoref~introduced~twice}
+ {Some~knowledge~is~introduced~twice.~See~the~'\c_sys_jobname_str.diagnose'~file~for~more~information.}
+\exp_args:Nnnx\msg_new:nnn{knowledge}{recap~autoref~not~introduced}
+ {Some~knowledge~is~used~but~not~introduced.~See~the~'\c_sys_jobname_str.diagnose'~file~for~more~information.}
\tl_clear_new:N\knowledge_configuration_pending_tl
\newrobustcmd\knowledgeconfigure[1]{
\keys_set:nn{ knowledge~configuration~options }{#1}
@@ -928,9 +963,13 @@
\bool_new:N\knowledge_configuration_diagnoseline_bool
\bool_set_false:N\knowledge_configuration_diagnoseline_bool
\KnowledgeConfigureBooleanOption[\knowledge_configuration_diagnoseline_bool]{diagnose~line}
-\bool_new:N\knowledge_configuration_barsuggestion_bool
-\bool_gset_false:N\knowledge_configuration_barsuggestion_bool
-\KnowledgeConfigureBooleanOption[\knowledge_configuration_barsuggestion_bool]{bar~suggestion}
+\bool_new:N\knowledge_configuration_diagnosehelp_bool
+\bool_set_true:N\knowledge_configuration_diagnosehelp_bool
+\KnowledgeConfigureBooleanOption[\knowledge_configuration_diagnosehelp_bool]{diagnose~help}
+\bool_new:N\knowledge_configuration_diagnosebar_bool
+\bool_gset_true:N\knowledge_configuration_diagnosebar_bool
+\KnowledgeConfigureBooleanOption[\knowledge_configuration_diagnosebar_bool]{bar~suggestion}%backward compatibility
+\KnowledgeConfigureBooleanOption[\knowledge_configuration_diagnosebar_bool]{diagnose~bar}
\bool_new:N\knowledge_configuration_visibleAP_bool
\KnowledgeConfigureBooleanOption[\knowledge_configuration_visibleAP_bool]{visible~anchor~points}\KnowledgeConfigureBooleanOption[\knowledge_configuration_visibleAP_bool]{visible~AP}
\bool_new:N\knowledge_hyperlinks_active_bool
@@ -1441,20 +1480,20 @@
\bool_gset_true:c{\knowledge_scopetag_tl[#1]_bool}}
}
\NewDocumentCommand\knowledgescope{ >{\SplitList{,}}m }{
-\kl_hide_begin:\group_begin:
+ \kl_hide_begin:\group_begin:
\ProcessList{#1}\knowledge_knowledgescope_one:n
\group_end:\kl_hide_end:
}
\cs_new:Nn\knowledge_knowledgescope_one:n{
\knowledge_scopetag_declares:n{#1}
\scope_get_labelizable_instance:N\l_tmpb_tl
- \KAuxWriteX*{\exp_not:n{\KAuxNewLinkScopetagInstance}%{\exp_not:n{#1}}% old version
- {#1}{\l_tmpb_tl}}
+ \KAuxWriteX*{\exp_not:N\KAuxNewLinkScopetagInstance{#1}{\l_tmpb_tl}}
}
\bool_new:N\knowledge_configuration_label_autoscope_bool
\bool_gset_true:N\knowledge_configuration_label_autoscope_bool
\KnowledgeConfigureBooleanOption[\knowledge_configuration_label_autoscope_bool]{patch~label}
-\NewDocumentCommand\scopeLabel{m}{
+\KnowledgeConfigureBooleanOption[\knowledge_configuration_label_autoscope_bool]{label~scope}
+\NewDocumentCommand\knowledgelabel{m}{
\kl_hide_begin:
\bool_if:NTF
\knowledge_configuration_label_autoscope_bool
@@ -1464,7 +1503,8 @@
\kl_hide_end:
\cs_if_exist:NTF\LaTeXlabel\LaTeXlabel\use_none:n{#1}
}
-\let\label\scopeLabel
+\let\scopeLabel\knowledgelabel%for backward compatibility
+\let\label\knowledgelabel
\cs_new:Npn\knowledge_latex_label:n{
\cs_if_exist:NTF\LaTeXlabel\LaTeXlabel\label
}
@@ -1481,8 +1521,8 @@
\NewKAuxCommand\KAuxNewLinkScopetagInstance{mm}
{Package~scope:~Declares~that~a~label~is~declared~in~an~instance~of~a~scope.}
\DeclareKAuxPhaseCommand\KAuxNewLinkScopetagInstance{init}{
-\knowledge_scopetag_ensure:n{#1}
-\seq_gput_right:cn{\knowledge_scopetag_tl[#1]_seq}{#2}
+ \knowledge_scopetag_ensure:n{#1}
+ \seq_gput_right:cn{\knowledge_scopetag_tl[#1]_seq}{#2}
}
\NewKAuxCommand\KAuxScopeNewInstance{mmm}
{Package~scope:~Declares~a~new~instance~of~a~scope.}
@@ -1539,7 +1579,7 @@
{\scope_area_pop:n{##1}}
{}}
\kutils_secure_latex_command:N\label
- \let\label\scopeLabel
+ \let\label\knowledgelabel
}
\NewDocumentCommand\ScopeActivate{}{
\cs_gset_eq:NN\ScopeActivate\relax
@@ -1593,9 +1633,9 @@
{\scope_area_pop:n{knowledge~import~internal}}
\NewDocumentEnvironment{knowledge~context}{m}
{\ScopeActivate\scope_area_push:n{knowledge~context~internal}
- \scopeLabel{#1}}
+ \knowledgelabel{#1}}
{\scope_area_pop:n{knowledge~context~internal}}
-\KAuxBefore{\KAuxProcess{init}}
+\KAuxBefore{\IfKAuxReadyTF{\KAuxProcess{init}}{}}
\KAuxInit{}
\KAuxAfter{\KnowledgeDiagnoseOutput}
\iow_new:N\knowledge_diagnosefile_iow
@@ -1638,6 +1678,21 @@
\knowledge_diagnose:n{}
\knowledge_diagnose:n{}
%
+ \bool_if:NTF\knowledge_configuration_diagnosehelp_bool
+ {
+ \knowledge_diagnose:n{********}
+ \knowledge_diagnose:n{*~Help~*}
+ \knowledge_diagnose:n{********}
+ \knowledge_diagnose:n{}
+ \knowledge_diagnose:x{\use:c{@backslashchar}\cs_to_str:N\knowledgeconfigure{diagnose~bar=false}~deactivate~`|'-notation~in~diagnose~file.}
+ \knowledge_diagnose:x{\use:c{@backslashchar}\cs_to_str:N\knowledgeconfigure{diagnose~help=false}~deactivate~long~help~in~the~diagnose~file.}
+ \knowledge_diagnose:x{\use:c{@backslashchar}\cs_to_str:N\knowledgeconfigure{diagnose~line=true}~add~line~numbers~to~diagnose~file.}
+ \knowledge_diagnose:n{}
+ }{
+ \knowledge_diagnose:x{\use:c{@backslashchar}\cs_to_str:N\knowledgeconfigure{diagnose~help=true}~to~activate~help~in~the~diagnose~file.}
+ \knowledge_diagnose:n{}
+ }
+ %
\int_compare:nNnT\kl_digest_unknownknowledge_int>0{
\knowledge_diagnose:n{************************}
\knowledge_diagnose:n{*~Undefined~knowledges~*}
@@ -1645,6 +1700,8 @@
\knowledge_diagnose:n{}
%
\knowledge_diagnose_reset_line:
+ \bool_if:NT\knowledge_configuration_diagnosebar_bool
+ {\knowledge_diagnose:x{\use:c{@backslashchar}knowledge{ignore}}}
\KAuxProcess{diagnose-unknown-suggest}
%
\knowledge_diagnose:n{}
@@ -1845,15 +1902,13 @@
export / false .code:n = {\bool_set_false:N\knowledge_knowledge_export_bool},
export / true .code:n = {\bool_set_true:N\knowledge_knowledge_export_bool},
export .default:n = false,
- link~instance .code:n =
- { \tl_set:Nn\knowledge_knowledge_instance_tl{#1} },
scope .code:n =
- { \knowledge_scope_track_scope:n{#1}
+ { \knowledge_scope_track_scope:n{#1}
\tl_gput_right:Nn\knowledge_knowledge_immediate_synonym_directives_tl{,scope = {#1}}},
synonym .code:n =
{ \bool_set_true:N\knowledge_knowledge_is_synonym_bool
\exp_args:Nnx\keys_set:nn { knowledge~directives }
- {link={\exp_not:o\knowledge_knowledge_synonymlink_tl},
+ {link={\exp_not:V\knowledge_knowledge_synonymlink_tl},
link~instance={\exp_not:V\knowledge_knowledge_synonyminstance_tl}}},
}
\NewKAuxCommand\KAuxKnowledge{mmmm}
@@ -1910,7 +1965,7 @@
\bool_gset_false:N\knowledge_knowledge_is_synonym_bool
%
\tl_if_eq:nnTF{#4}{|}
- {\__knowledge_knowledge_cont_newsyntax:nw{#3}|}
+ {\__knowledge_knowledge_cont_barnotation:nw{#3}|}
{\tl_if_eq:nnTF{#4}{[}
{\__knowledge_knowledge_cont_classical:nw{#3}[}
{\__knowledge_knowledge_cont_classical:nw{#3}{#4}}}
@@ -1926,6 +1981,7 @@
\kl_hide_end:
}
\NewDocumentCommand\__knowledge_knowledge_cont_classical:nw{m >{\SplitList{|}}o m }{
+ %\iow_term:n{\__knowledge_knowledge_cont_classical~{#1}{#3}}
\knowledge_knowledge_setparseat:NNn\l_tmpa_tl\l_tmpb_tl{#1}
%
\use:x{
@@ -1936,6 +1992,9 @@
\tl_if_empty:NTF\l_tmpb_tl{}{,scope={\exp_not:V\l_tmpb_tl}}}}
%
\exp_args:NV\__knowledge_knowledge_recallsynonym:n\l_tmpa_tl
+ %\tl_show:N\l_tmpa_tl
+ %\tl_show:N\knowledge_knowledge_instance_tl
+ %\tl_show:N\knowledge_knowledge_immediate_synonym_directives_tl
%
\IfNoValueTF{#2}{}{
\cs_set:Nn\l_tmpa_cs:n
@@ -1946,40 +2005,42 @@
%
\__knowledge_knowledge_end:
}
-\cs_new:Npn\knowledge_knowledge_newsyntax_firstline:n{}
-\cs_new:Npn\knowledge_knowledge_newsyntax_nextlines:n{}
-\cs_new:Npn\__knowledge_knowledge_cont_newsyntax:nw#1{
-\cs_set:Nn\knowledge_knowledge_newsyntax_firstline:n
- {\knowledge{##1}{#1}
- \cs_set_eq:NN
- \knowledge_knowledge_newsyntax_exec_line:n
- \knowledge_knowledge_newsyntax_nextlines:n}
-\cs_set:Nn\knowledge_knowledge_newsyntax_nextlines:n
- {\exp_args:Nnx\knowledge{##1}
- {\exp_not:V\knowledge_knowledge_immediate_synonym_directives_tl}}
-\cs_set_eq:NN
- \knowledge_knowledge_newsyntax_exec_line:n
- \knowledge_knowledge_newsyntax_firstline:n
-\kl_newknowledge_parse:w
+\cs_new:Npn\knowledge_knowledge_barnotation_firstline:n{}
+\cs_new:Npn\knowledge_knowledge_barnotation_nextlines:n{}
+\cs_new:Npn\__knowledge_knowledge_cont_barnotation:nw#1{
+ \cs_set:Nn\knowledge_knowledge_barnotation_firstline:n{
+ %\knowledge_knowledge_setparseat\g_tmpa_tl\g_tmpb_tl{#1}
+ %\iow_term:n{\knowledge{##1}{#1}~(first)}
+ \knowledge{##1}{#1}
+ \cs_set_eq:NN
+ \knowledge_knowledge_barnotation_exec_line:n
+ \knowledge_knowledge_barnotation_nextlines:n}
+ \cs_set:Nn\knowledge_knowledge_barnotation_nextlines:n
+ {%\iow_term:n{\exp_not:n{\knowledge{##1}}{synonym}}
+ \knowledge{##1}{synonym}}
+ \cs_set_eq:NN
+ \knowledge_knowledge_barnotation_exec_line:n
+ \knowledge_knowledge_barnotation_firstline:n
+ \kl_newknowledge_parse:w
}
\cs_new:Npn\kl_newknowledge_parse:w{
-\peek_charcode_remove_ignore_spaces:NTF|
-{\kl_insert_klendline:w\knowledge_knowledge_newsyntax_exec_line:w}
-{\__knowledge_knowledge_end:}
+ \peek_charcode_remove_ignore_spaces:NTF|
+ {\kl_insert_klendline:w\knowledge_knowledge_barnotation_exec_line:w}
+ {\__knowledge_knowledge_end:}
}
-\cs_new:Npn\knowledge_knowledge_newsyntax_exec_line:w#1\kl_end_line:{
- \knowledge_knowledge_newsyntax_exec_line:n{#1}
-\kl_newknowledge_parse:w
+\cs_new:Npn\knowledge_knowledge_barnotation_exec_line:w#1\kl_end_line:{
+ \knowledge_knowledge_barnotation_exec_line:n{#1}
+ \kl_newknowledge_parse:w
}
\char_set_catcode_active:N\^^M
\cs_gset:Npn\kl_insert_klendline:w{\group_begin:\catcode`\^^M=\active\kl_insert_klendline_:w}
\cs_gset:Npn\kl_insert_klendline_:w#1^^M{\group_end:#1\kl_end_line:}
\char_set_catcode_end_line:N\^^M
\cs_new:Nn\knowledge_knowledge_setparseat:NNn
-{\knowledge_knowledge_setparseat_:NNw#1#2#3@@\kl_end:}
+ {\knowledge_knowledge_setparseat_:NNw#1#2#3@@\kl_end:}
\cs_new:Npn\knowledge_knowledge_setparseat_:NNw#1#2#3@#4@#5\kl_end:
-{\tl_set:Nx#1{\tl_trim_spaces:n{#3}}
-\tl_set:Nx#2{\tl_trim_spaces:n{#4}}}
+ {\tl_set:Nx#1{\tl_trim_spaces:n{#3}}
+ \tl_set:Nx#2{\tl_trim_spaces:n{#4}}}
\NewDocumentCommand\knowledgestyle{ s m m }
{ \kl_hide_begin:
\group_begin:
@@ -2030,9 +2091,9 @@
{}
%
\bool_if:NT\knowledge_knowledge_clear_bool
- {\tl_put_left:Nn\knowledge_knowledge_directives_tl{clear,}}
+ {\tl_put_left:Nn\knowledge_knowledge_directives_tl{clear,}}
\bool_if:NT\knowledge_knowledge_append_bool
- {\tl_put_left:Nn\knowledge_knowledge_directives_tl{force,}}
+ {\tl_put_left:Nn\knowledge_knowledge_directives_tl{force,}}
%
\bool_if:nTF{\knowledge_knowledge_now_bool}
{\use:x{
@@ -2132,14 +2193,18 @@
\tl_gnew:Nn\knowledge_display_code_tl{INTERNAL~ERROR~DISPLAY~CODE}
\NewDocumentCommand\klTKS{}{\knowledge_klTKS:nnn}
\cs_new:Nn\knowledge_klTKS:nnn{
+ %\iow_term:n{\knowledge_klTKS:nnn{#1}{#2}{#3}}
\group_begin:
%
\tl_set:Nx\knowledge_kl_linkscope_tl{\tl_to_str:n{#3}}
- \tl_set:Nn\knowledge_kl_instance_tl{}
+ \tl_set:Nn\knowledge_kl_linkinstance_tl{}
\tl_set:Nn\knowledge_kl_text_tl{#1}
\tl_set:Nx\knowledge_kl_base_key_tl{\tl_to_str:n{#2}}
\tl_set_eq:NN\knowledge_kl_key_tl\knowledge_kl_base_key_tl
\int_set_eq:NN\knowledge_kl_recursion_int\knowledge_kl_max_recursion_int
+ %\debug_vars:nn{klTKS:nnn}
+ % {\knowledge_kl_linkscope_tl\knowledge_kl_linkinstance_tl
+ % \knowledge_kl_text_tl\knowledge_kl_base_key_tl}
%
\tl_if_exist:cTF
{knowledge_kl_\tl_to_str:V\knowledge_kl_modifiers_tl _init_tl}
@@ -2161,7 +2226,9 @@
\knowledge_kl_find_recursion_exceeded:TF
\knowledge_kl_error_recursion:
{\tl_if_empty:NTF\knowledge_kl_linkscope_tl
- \knowledge_kl_find_withoutscope:
+ {\tl_if_empty:NTF\knowledge_kl_linkinstance_tl
+ {\knowledge_kl_find_withoutscope:}
+ {\knowledge_kl_find_withinstance:}}
\knowledge_kl_find_withscopetag:}
}
\cs_set:Npn\knowledge_kl_find_recursion_exceeded:TF{
@@ -2171,20 +2238,22 @@
\cs_new:Nn\knowledge_kl_find_withinstance:{
\knowledge_knowledge_if_exist:VVVTF
\knowledge_kl_namespace_tl
- \knowledge_kl_instance_tl
+ \knowledge_kl_linkinstance_tl
\knowledge_kl_key_tl
{\knowledge_kl_exec:nnV
\knowledge_kl_namespace_tl
- \knowledge_kl_instance_tl
+ \knowledge_kl_linkinstance_tl
\knowledge_kl_key_tl}
{ \knowledge_kl_error_unknown_in_scope_firsttime: }
}
\cs_new:Nn\knowledge_kl_find_withscopetag:{
+ %\debug_vars:nn{\knowledge_kl_find_withscopetag:}{\knowledge_kl_linkscope_tl}
\exp_args:NV\knowledge_scopetag_warn_if_unknown:n\knowledge_kl_linkscope_tl
\tl_clear:N\l_tmpa_tl
\exp_args:Nc\seq_map_function:NN
{\knowledge_scopetag_tl[\knowledge_kl_linkscope_tl]_seq}
\knowledge_kl_find_scopetag_tmpa:n
+ % tests whether the search was successful
\tl_if_empty:NTF\l_tmpa_tl
{\knowledge_kl_error_unknown_in_scope_firsttime:}
{\knowledge_kl_exec:VVV
@@ -2192,6 +2261,9 @@
\l_tmpa_tl
\knowledge_kl_key_tl}
}
+\cs_new:Npn\knowledge_kl_find_scopetag_tmpa:n{
+ \knowledge_kl_find_scopetag:Nn\l_tmpa_tl
+}
\cs_new:Nn\knowledge_kl_find_scopetag:Nn{
\tl_if_empty:NTF#1
{\knowledge_knowledge_if_exist:VnVTF
@@ -2202,16 +2274,18 @@
{}}
{}
}
-\cs_new:Npn\knowledge_kl_find_scopetag_tmpa:n{
- \knowledge_kl_find_scopetag:Nn\l_tmpa_tl
-}
\cs_new:Nn\knowledge_kl_find_withoutscope:{
+ %\debug_vars:nn{\knowledge_kl_find_withoutscope:}
+ % {\knowledge_kl_key_tl\knowledge_kl_linkinstance_tl}
+ %\exp_args:NVVV\knowledge_knowledge_if_exist:nnnTF
+ % \knowledge_kl_namespace_tl\knowledge_kl_linkinstance_tl\knowledge_kl_key_tl
+ % {\tl_show:n{found}}{\tl_show:n{not~found}}
\knowledge_kl_find_in_scope:VNTF
\knowledge_kl_key_tl
- \knowledge_kl_instance_tl
- {\knowledge_kl_exec:nnV
+ \knowledge_kl_linkinstance_tl
+ {\knowledge_kl_exec:VVV
\knowledge_kl_namespace_tl
- \knowledge_kl_instance_tl
+ \knowledge_kl_linkinstance_tl
\knowledge_kl_key_tl}
{\knowledge_kl_error_unknown_firsttime:}
}
@@ -2221,6 +2295,7 @@
}
\cs_new:Nn\knowledge_kl_find_in_scope:nnNTF{
\group_begin:
+ %\tl_show:n{\knowledge_kl_find_in_scope:~#1/#2/#3}
\tl_set:Nn\l_tmpa_tl{#1}
\tl_set:Nn\l_tmpb_tl{#2}
\bool_gset_false:N\g_tmpa_bool
@@ -2233,13 +2308,13 @@
{#5}
}
\cs_new:Nn\knowledge_kl_find_in_scope_test:n{
-\tl_if_eq:nnTF{#1}{|}{}{
-\knowledge_kl_find_in_scope_test_:n{#1}
-\seq_if_exist:cTF{\knowledge_scopetag_tl[#1]_seq}
- {\exp_args:Nc\seq_map_function:NN
- {\knowledge_scopetag_tl[#1]_seq}
- \knowledge_kl_find_in_scope_test_:n
- }{}}
+ \tl_if_eq:nnTF{#1}{|}{}{
+ \knowledge_kl_find_in_scope_test_:n{#1}
+ \seq_if_exist:cTF{\knowledge_scopetag_tl[#1]_seq}
+ {\exp_args:Nc\seq_map_function:NN
+ {\knowledge_scopetag_tl[#1]_seq}
+ \knowledge_kl_find_in_scope_test_:n
+ }{}}
}
\cs_new:Nn\knowledge_kl_find_in_scope_test_:n{
\exp_args:Nc\ktuple_if_exist:NTF
@@ -2253,13 +2328,14 @@
\cs_new:Nn\knowledge_kl_exec:nnn{
\tl_set:Nx\knowledge_kl_resourcearguments_tl
{{#1}{#2}{\exp_not:n{#3}}}
+ %\debug_vars:nn{\knowledge_kl_exec:nnn}{\knowledge_kl_resourcearguments_tl}
\exp_args:NNc\tl_set:Nn\knowledge_kl_resourcetoken_tl
{\knowledge_id:nnn{#1}{#2}{#3}}
\expandafter\ktuple_countuse_gincr:N\knowledge_kl_resourcetoken_tl
%
\tl_clear:N\knowledge_kl_link_tl
\tl_clear:N\knowledge_kl_linkscope_tl
- \tl_clear:N\knowledge_kl_instance_tl
+ \tl_clear:N\knowledge_kl_linkinstance_tl
\tl_map_function:NN
\knowledge_kl_styledirectives_tl
\tl_clear:N
@@ -2335,7 +2411,7 @@
{\tl_if_empty:NTF\l_tmpa_tl{}{\tl_put_right:Nn\l_tmpa_tl{,}
\tl_put_right:Nn\l_tmpa_tl{namespace={#1}}}}
- \bool_if:NTF\knowledge_configuration_barsuggestion_bool{
+ \bool_if:NTF\knowledge_configuration_diagnosebar_bool{
%\knowledge_diagnose:x{\char_escape_tl knowledge{\exp_not:V\l_tmpa_tl}}
\tl_set:Nn\l_tmpa_tl{~~~|~~#3}
\tl_if_empty:nTF{#2}{}
@@ -2607,7 +2683,7 @@
\NewKnowledgeParamBool*{uppercase}\kl_uppercase_bool
\NewKnowledgeParamTl*{link}
\NewKnowledgeParamTl*[\knowledge_kl_linkscope_tl]{link~scope}
-\NewKnowledgeParamTl*[\knowledge_kl_instance_tl]{link~instance}
+\NewKnowledgeParamTl*[\knowledge_kl_linkinstance_tl]{link~instance}
\NewKnowledgeParamTl*[\knowledge_kl_forcedtext_tl]{text}
\NewKnowledgeParamTl*{wrap}
@@ -3198,7 +3274,7 @@
\expandafter{\tl_to_str:n{#1}}}
\newcommand\robustdisplaybracket[1]
{[\robustdisplay{#1}]}
-
+\knowledgedirective{ignore}{}
\ExplSyntaxOff
\IfKnowledgePaperModeTF{
\knowledgestyle{kl unknown}{}