summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/knowledge
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-02-13 03:00:36 +0000
committerNorbert Preining <norbert@preining.info>2022-02-13 03:00:36 +0000
commita488c0e94aba29c7f7062852569792d58efda8dc (patch)
tree055ce3e8af6b02021a55b0acd80ba42c86216939 /macros/latex/contrib/knowledge
parent5656f95d1f5070edb430085a49ca8cd1f6f6f064 (diff)
CTAN sync 202202130300
Diffstat (limited to 'macros/latex/contrib/knowledge')
-rw-r--r--macros/latex/contrib/knowledge/README.md4
-rw-r--r--macros/latex/contrib/knowledge/knowledge-code.dtx79
-rw-r--r--macros/latex/contrib/knowledge/knowledge.pdfbin770976 -> 771140 bytes
-rw-r--r--macros/latex/contrib/knowledge/knowledge.tex40
4 files changed, 83 insertions, 40 deletions
diff --git a/macros/latex/contrib/knowledge/README.md b/macros/latex/contrib/knowledge/README.md
index 93d3a6adb0..07b55368a0 100644
--- a/macros/latex/contrib/knowledge/README.md
+++ b/macros/latex/contrib/knowledge/README.md
@@ -3,8 +3,8 @@ This directory contains the package
name: knowledge
license: LaTeX Project Public License version 1.2 or above
- version: v1.27
- date: 2022/01/12
+ version: v1.28
+ date: 2022/02/12
author: Thomas Colcombet
mail: thomas.colcombet@irif.fr
web: https://ctan.org/pkg/knowledge
diff --git a/macros/latex/contrib/knowledge/knowledge-code.dtx b/macros/latex/contrib/knowledge/knowledge-code.dtx
index 0f66f049d1..2f6a4f0a12 100644
--- a/macros/latex/contrib/knowledge/knowledge-code.dtx
+++ b/macros/latex/contrib/knowledge/knowledge-code.dtx
@@ -23,7 +23,7 @@
%
% \iffalse
%<head>\usepackage{expl3}
-%<head>\ProvidesExplPackage{knowledge}{2022/01/12}{1.27}{}
+%<head>\ProvidesExplPackage{knowledge}{2022/02/12}{1.28}{}
%<*driver>
\def\knowledgecode{active}
\input{knowledge.tex}
@@ -60,6 +60,7 @@
% \changes{1.25}{2021/03/31}{bug correction} %
% \changes{1.26}{2021/12/20}{enhanced math+other functionalities+extra options} %
% \changes{1.27}{2022/01/12}{doc changes} %
+% \changes{1.28}{2022/02/12}{imakeidx support} %
% \GetFileInfo{knowledge.sty} %
% \DoNotIndex{}
%
@@ -79,8 +80,8 @@ This directory contains the package
name: knowledge
license: LaTeX Project Public License version 1.2 or above
- version: v1.27
- date: 2022/01/12
+ version: v1.28
+ date: 2022/02/12
author: Thomas Colcombet
mail: thomas.colcombet@irif.fr
web: https://ctan.org/pkg/knowledge
@@ -620,9 +621,16 @@ This directory contains the package
%
% \subsubsection{External package options}
%
-%\csintro{\knowledge_xcolor_active_bool}, \csintro{\knowledge_xcolor_syntax_bool},
-%\csintro{\knowledge_hyperref_active_bool}, \csintro{\knowledge_hyperref_syntax_bool},
-%\csintro{\knowledge_makeidx_active_bool}, \csintro{\knowledge_makeidx_syntax_bool}
+%\csintro{\knowledge_xcolor_active_bool},
+% \csintro{\knowledge_xcolor_syntax_bool},
+%\csintro{\knowledge_hyperref_active_bool},
+%\csintro{\knowledge_hyperref_syntax_bool},
+%\csintro{\knowledge_makeidx_active_bool},
+%\csintro{\knowledge_makeidx_syntax_bool},
+%\csintro{\knowledge_imakeidx_active_bool},
+%\csintro{\knowledge_imakeidx_syntax_bool}.
+%
+%
%
% First, one tests the package available.
% \csintro{\package_if_loaded:nTF} tests if a package is loaded.
@@ -645,6 +653,7 @@ This directory contains the package
\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{imakeidx}
\knowledge_option_aci_test_loaded:n{cleveref}
% \end{macrocode}
%\begin{quote}\tt
@@ -690,6 +699,7 @@ This directory contains the package
\knowledge_option_aci_define:n{hyperref}
\knowledge_option_aci_define:n{xcolor}
\knowledge_option_aci_define:n{makeidx}
+\knowledge_option_aci_define:n{imakeidx}
\knowledge_option_aci_define:n{cleveref}
% \end{macrocode}
%
@@ -762,6 +772,7 @@ This directory contains the package
\knowledge_option_aci_autoload:nnn{ hyperref }{}{}
\knowledge_option_aci_autoload:nn{ xcolor }{}
\knowledge_option_aci_autoload:nn{ makeidx }{}
+\knowledge_option_aci_autoload:nn{ imakeidx }{}
\knowledge_option_aci_autoload:nn{ cleveref }{}
% \end{macrocode}
%
@@ -3988,7 +3999,7 @@ This directory contains the package
% \end{macrocode}
%
%
-% \subsubsection{The \kl{makeidx option}}
+% \subsubsection{The \kl{makeidx option} and \kl{imakeidx} options}
%
% \begin{macrocode}
%\bool_if:NT\knowledge_makeidx_active_bool{
@@ -4008,18 +4019,36 @@ This directory contains the package
% }}}}
%}
% \end{macrocode}
+% Since "imakeidx@@package" extends the syntax of "makeidx@@package",
+% internally, activating the package or the syntax for "imakeidx@@package"
+% does the same thing for "makeidx@@package".
+% \begin{macrocode}
+\bool_if:NT\knowledge_imakeidx_active_bool{\bool_set_true:N\knowledge_makeidx_active_bool}
+\bool_if:NT\knowledge_imakeidx_syntax_bool{\bool_set_true:N\knowledge_makeidx_syntax_bool}
+% \end{macrocode}
+% The index option has to variant, depending on whether the name of the index is used or not.
% \begin{macrocode}
+\cs_new:Npn \knowledge_index:nn #1 #2{
+ \tl_if_empty:nTF {#1}
+ {\index{#2}}
+ {\index[{#1}]{#2}}
+ }
+
+\cs_generate_variant:Nn \knowledge_index:nn {xx}
+
\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@}{}
+ {\knowledge_index:xx
+ {\tl_if_exist_ne:NTF \knowledge_kl_index_name_tl
+ {\exp_not:V \knowledge_kl_index_name_tl}{}}
+ {\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}{}
+ {|\exp_not:V\knowledge_kl_index_number_style_tl}{}
}}{}
}
}
@@ -4034,12 +4063,26 @@ This directory contains the package
{\knowledge_delay_directive:n{index={#1}}}},
index .default:n = {}
}
-
-\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:NT\knowledge_makeidx_syntax_bool
+{ \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:NT\knowledge_imakeidx_syntax_bool {
+ \NewKnowledgeParamTl*[\knowledge_kl_index_name_tl]{index~name}
+}
% \end{macrocode}
+% Activating error message is packages not loaded.
+% \begin{macrocode}
+\knowledge_directives_require_aci_package:nn
+ {index,index~key,index~parent~key,index~style}{makeidx}
+\knowledge_directives_require_aci_package:nn
+ {index~name}{imakeidx}
+% \end{macrocode}
+%
+%
%
% \subsubsection{The \kl{cleveref option}}
%
diff --git a/macros/latex/contrib/knowledge/knowledge.pdf b/macros/latex/contrib/knowledge/knowledge.pdf
index 124bdf88ca..2e7e53daac 100644
--- a/macros/latex/contrib/knowledge/knowledge.pdf
+++ b/macros/latex/contrib/knowledge/knowledge.pdf
Binary files differ
diff --git a/macros/latex/contrib/knowledge/knowledge.tex b/macros/latex/contrib/knowledge/knowledge.tex
index aca0ea97dd..a821315e1b 100644
--- a/macros/latex/contrib/knowledge/knowledge.tex
+++ b/macros/latex/contrib/knowledge/knowledge.tex
@@ -13,6 +13,8 @@
\GetFileInfo{knowledge.sty}
\edef\knowledgeversiondate{\fileversion--\filedate}
+\knowledgeconfigure{diagnose line=true}
+
% Depending on whether the file is included from knowledge-code.dtx
% or not, some configuration changes.
% This involves mainly the presence of the code.
@@ -333,6 +335,7 @@
\knowledge{index key=}{directive}
\knowledge{index parent key=}{directive}
\knowledge{index style=}{directive}
+\knowledge{index name=}{directive}
\knowledge{label scope}[label scope=]{option}
\knowledge{color=}{directive}
\knowledge{cyclic color}{directive}
@@ -359,9 +362,12 @@
\knowledge{quotation}[quotation=]{option}
\knowledge{notion}{option}
\knowledge{cyclic colors=}{option}
+ \knowledge{imakeidx}{option}
\end{scope}
+
\knowledge{hyperref option}{link=hyperref,link scope=option}
\knowledge{makeidx option}{link=makeidx,link scope=option}
+\knowledge{imakeidx option}{link=imakeidx,link scope=option}
\knowledge{cleveref option}{link=cleveref,link scope=option}
\knowledge{scope option}{link=scope,link scope=option}
\knowledge{xcolor option}{link=xcolor,link scope=option}
@@ -409,6 +415,7 @@
\knowledge{standalone}{package,url={https://www.ctan.org/pkg/standalone}}
\knowledge{xcolor}{package,url={https://www.ctan.org/pkg/xcolor}}
\knowledge{makeidx}{package,url={https://www.ctan.org/pkg/makeidx}}
+ \knowledge{imakeidx}{package,url={https://www.ctan.org/pkg/imakeidx}}
\knowledge{cleveref}{package,url={https://www.ctan.org/pkg/cleveref}}
\knowledge{etoolbox}{package,url={https://www.ctan.org/pkg/etoolbox}}
\knowledge{xparse}{package,url={https://www.ctan.org/pkg/xparse}}
@@ -753,7 +760,7 @@ I have seen Till Tantau who explained me how to test whether a material is displ
\item[2018-02-24] Documentation improvement for the environment "thebibliography@@env".
\item[2018-05-17] Correction to be compatible with the latest version of "expl3@@package" (thanks to Leo Stefanesco).
\item[2018-07-26] Compatibility with utf8 symbols in labels (thanks to Yves Guiraud).
-\item[2018-11-22] Corrected bug for "makeidx@@package" (thanks to Sylvain Schmitz). V1.14 on "CTAN".
+\item[2018-11-22] Corrected bug for "makeidx@@option" (thanks to Sylvain Schmitz). V1.14 on "CTAN".
\item[2019-01-27] Minor improvement of the doc, and hiding links in it. V1.15.
\item[2019-02-15] Correction of a placement problem with \cs\AP. V1.16.
\item[2019-05-23] Adding of the "`\vbar'-notation" for the \cs{\knowledge} command.
@@ -772,13 +779,14 @@ I have seen Till Tantau who explained me how to test whether a material is displ
\item[2020-05-02] Doc update ("acmart@@package" colors, thanks to Daniela Petri\c san).
\item[2020-09-22] Adding the "silent" option as suggested by Patrick Lambein-Monette. V1.24.
\item[2021-03-31] Correcting a bug caused by a change of semantics in "expl3@@package". V1.25.
-\item[2021-05-25] Added the \cs\kref, \cs\kpageref, \cs\kcref, and \cs\kCref\ commands a suggested by Ziv Scully.
+\item[2021-05-25] Added the \cs\kref, \cs\kpageref, \cs\kcref, and \cs\kCref\ commands as suggested by Ziv Scully.
\item[2021-05-26] Corrected wrongly used default parameter in \cs\knowledgedirective.
\item[2021-05-27] The explicit text given in a \cs\kl-command now overrides the "text=" directive.
\item[2021-07-18] Adding the "no index" directive.
\item[2021-12-20] Adding options "anchor point shape", "anchor point color", "anchor point shift" (request of Rémi Morvan).
\item[2021-12-27] Bug correction for corner shape, and doc update (thanks to Rémi Morvan).
\item[2022-01-12] Minor changes. Removing dead link for the webpage. V1.27
+\item[2022-02-12] Adding support of "imakeidx@@package" and the directive "index name=" (request and code change by Maximilian Keßler). V1.28
\end{compactdesc}
\normalsize
%\restoregeometry
@@ -1142,17 +1150,6 @@ The use of "variants of \cs{\kl}" is also useful for typesetting mathematics. I
\section{Usage of the \kl(package){knowledge} package}
\label{section:doc}
-\iffalse
-We shall now give a more complete description of the functionalities of the "knwoeldge@@package".
-\ref{subsection:loading packages}
-\ref{subsection:knowledge command}
-\ref{subsection:kl command}
-\ref{subsection:diagnose file}
-\ref{subsection:hyperref package}
-\ref{subsection:xcolor package}
-\ref{subsection:makeidx package}
-\fi
-
\subsection{Options and configuration}
\label{subsection:loading packages}
@@ -1167,7 +1164,7 @@ The options that can be used in the optional parameter of \cs{\usepackage} when
\begin{compactdesc}
\itemAP[Writing mode] The "paper", "electronic" or "composition" modes are possible ("composition" is by default) (see Section~\ref{subsubsection:writing modes} for more details).
These modes change several rendering settings.
-\itemAP[Other packages] some of the options concern the loading and the use of other packages (\kl(package){hyperref}, \kl(package){xcolor}, \kl (package){makeidx}, \dots). Note that these package can also be loaded before "knowledge@@package". This is explained in Section~\ref{subsubsection:packages-loading}.
+\itemAP[Other packages] some of the options concern the loading and the use of other packages (\kl(package){hyperref}, \kl(package){xcolor}, \kl (package){makeidx}, \kl (package){imakeidx}, \kl (package){cleveref}, \dots). Note that these package can also be loaded before "knowledge@@package". This is explained in Section~\ref{subsubsection:packages-loading}.
\itemAP[Configuration options] as used by the command \cs{\knowledgeconfigure} can be used when loading the package.
\itemAP[Scoping] The \kl[scope option]{scope} "option@package option" makes the package aware at a fine level of the structure of the document (see Section~\ref{subsection:scoping} for explanations). This provides, for instance, the possibility to define pieces of "knowledge" that are attached to a sections of the document.
\itemAP[Other] The "no patch" option prevents the "knowledge@@package" to apply some patches that are convenient by default.
@@ -1220,7 +1217,7 @@ The following primitives are available to the user for "writing mode"-sensitive
\label{subsubsection:packages-loading}
A certain number of "package options" coincide with the loading of other packages.
For the moment, the packages that are concerned are \kl(option){hyperref},
-\kl(option){xcolor}, and \kl(option){makeidx}.
+\kl(option){xcolor}, \kl(option){makeidx}, and "imakeidx@@option".
For activating these functionalities, it is sufficient, either to load the package \emph{before} the "knowledge@@package" package, or to name it explicitly as an "option@package option" for "knowledge@@package".
Loading separately the package is convenient for setting options for it. For instance,
@@ -1250,7 +1247,7 @@ Currently, the packages that can be loaded are:
\begin{description}
\itemAP[\kl(package){hyperref}] which activates all the (auto)referencing capabilities.
\item[\kl(package){xcolor}] which activates coloring commands.
-\item[\kl(package){makeidx}] for handling the index automatically.
+\item[\kl(package){makeidx} and "imakeidx@@package"] for handling the index automatically.
\end{description}
\subsubsection{Configuring and \cs{\knowledgeconfigure}}
@@ -1385,7 +1382,7 @@ A certain number of Boolean directives are available without any options. These
(that leaves it in the default state, or the one determined by surrounding knowledges).
The general boolean \kl[\knowledge directives]{directives} are the following:
\begin{description}
-\itemAP[\kl{autoref}] activates the ability to introduce once, use several times an instance. This is often used for defining links inside a document (see the "hyperref@@option" in \kCref*"hyperref@@option"). This can also be used for constructing the index (see the "makeidx@@option" in \kCref*"makeidx@@option"). It can simply be used for referencing the number of the environment or the proper page of introduction (see \cs\kref\ and \cs\kpageref\ commands and their more powerful "cleveref@@option" in \kCref*"cleveref@@option").
+\itemAP[\kl{autoref}] activates the ability to introduce once, use several times an instance. This is often used for defining links inside a document (see the "hyperref@@option" in \kCref*"hyperref@@option"). This can also be used for constructing the index (see the "makeidx@@option" and in "imakeidx@@option"\kCref*"makeidx@@option"). It can simply be used for referencing the number of the environment or the proper page of introduction (see \cs\kref\ and \cs\kpageref\ commands and their more powerful "cleveref@@option" in \kCref*"cleveref@@option").
\itemAP[\kl{autorefhere}] puts immediately a label at the location of the definition, and makes all \cs{\kl} occurrences of this \kl{knowledge}
hyperlink to this location.
\itemAP[\intro{emphasize}] forces the text to be emphasized using `\cs{\emph}',
@@ -2405,16 +2402,17 @@ Finally, the "anchor points" reference point can be shifted, using:
in which $x$ and $y$ are by default in unit \texttt{em} (note the use of curly braces and of no parenthesis, which is mandatory).
-\subsubsection{The \kl{makeidx option}}
+\subsubsection{The \kl(option){makeidx} and \kl(option){imakeidx} options}
\label{subsection:makeidx option}
-\subsubsubsection{Activating the \kl{makeidx option}}
+\subsubsubsection{Activating the \kl(option){makeidx} and \kl(option){makeidx} options}
-The \intro{makeidx option} loads the \intro(package){makeidx} package and triggers a certain number of link-related features. This is done either by the command:
+The \intro{makeidx option} loads the \kl(package){imakeidx} package and triggers a certain number of link-related features. This is done either by the command:
\begin{center}
\smallcode{\cs{\usepackage}[\kl(option){makeidx}]\{\kl(package){knowledge}\}}
\end{center}\noindent
or by loading the \kl(package){makeidx} before the "knowledge@@package" package.
+The same goes for the \intro{imakeidx option}.
\subsubsubsection{Features}
@@ -2428,6 +2426,7 @@ The following \kl[\knowledge directives]{directives} are to be used:
\begin{code}[8cm]
\cs\def\cs\knowledgeIntroIndexStyle\#1\{\cs\fbox\{\#1\}\}
\end{code}
+\itemAP[\intro{index name=}] requires to activate "imakeidx@@option", and allows to choose the index name in case of multiple indexes.
\end{description}
\AP
The "directive" ""no index"", deactivates the index feature for a knowledge. This is meant to be used in a "style".
@@ -3101,6 +3100,7 @@ If other kind of problems occur, report them to \texttt{thomas.colcombet@irif.fr
%\item[\kl{import=}] (\kl{not implemented})
\item[\kl{index=}] Chooses the text to be displayed in the \kl{index=}.
\item[\kl{index key=}] the key used to choose the place in the \kl{index}.
+\item[\kl{index name=}] the name of the \kl{index} (requires "imakeidx@@option").
\item[\kl{index style=}] the \kl{style} to be used to display in the \kl{index}.
\item[\kl{index parent key=}] the parent key in the \kl{index}.
\item[\kl{intro style=}] Chooses the typesetting in case of an intro.