summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/strc-syn.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkxl/strc-syn.mkxl')
-rw-r--r--tex/context/base/mkxl/strc-syn.mkxl65
1 files changed, 48 insertions, 17 deletions
diff --git a/tex/context/base/mkxl/strc-syn.mkxl b/tex/context/base/mkxl/strc-syn.mkxl
index af6d0c6e2..9b4c37ceb 100644
--- a/tex/context/base/mkxl/strc-syn.mkxl
+++ b/tex/context/base/mkxl/strc-syn.mkxl
@@ -13,7 +13,7 @@
\writestatus{loading}{ConTeXt Structure Macros / Synonyms and Sorting}
-\registerctxluafile{strc-syn}{}
+\registerctxluafile{strc-syn}{autosuffix}
%D Although we could nowadays build this on top of regular lists we keep this
%D more efficient variant around. Eventually we can add some options to lists
@@ -354,24 +354,37 @@
}%
\relax
\ifx\currentsynonymoption\v!yes
- \instance\setuxvalue\currentsynonymtag{\strc_synonyms_insert{\currentsynonym}{\currentsynonymtag}}%
+ %\instance\setuxvalue\currentsynonymtag{\strc_synonyms_insert{\currentsynonym}{\currentsynonymtag}}%
+ \protected\instance\xdefcsname\currentsynonymtag\endcsname
+ {\strc_synonyms_insert{\currentsynonym}{\currentsynonymtag}}%
\fi
\fi
\endgroup}
\permanent\tolerant\protected\def\registersynonym [#1]#*[#2]{\clf_registerusedsynonym{#1}{#2}}
-\permanent \protected\def\currentsynonymname {\clf_synonymname{\currentsimplelist}{\currentsynonymtag}}
-\permanent \protected\def\currentsynonymmeaning {\clf_synonymmeaning{\currentsimplelist}{\currentsynonymtag}}
-\permanent \protected\def\doifelsecurrentsynonymused {\clf_doifelsesynonymused{\currentsimplelist}{\currentsynonymtag}}
-\permanent \protected\def\doifelsecurrentsynonymshown{\clf_doifelsesynonymshown{\currentsimplelist}{\currentsynonymtag}}
+\permanent \protected\def\currentsynonymname {\clf_synonymname\currentsimplelist\currentsynonymtag}
+\permanent \protected\def\currentsynonymmeaning {\clf_synonymmeaning\currentsimplelist\currentsynonymtag}
+\permanent \protected\def\currentsynonympages {\clf_synonympages\currentsimplelist\currentsynonymtag}
+\permanent \protected\def\doifelsecurrentsynonymused {\clf_doifelsesynonymused\currentsimplelist\currentsynonymtag}
+\permanent \protected\def\doifelsecurrentsynonymshown{\clf_doifelsesynonymshown\currentsimplelist\currentsynonymtag}
\permanent \protected\def\resetusedsynonyms [#1]{\clf_resetsynonyms{#1}{used}}
\permanent \protected\def\resetshownsynonyms [#1]{\clf_resetsynonyms{#1}{shown}}
\permanent \protected\def\resetlistsynonyms [#1]{\clf_resetsynonyms{#1}{list}}
\permanent \protected\def\resetsynonyms [#1]{\clf_resetsynonyms{#1}{all}}
\permanent \protected\def\resetsynonymsprogress [#1]{\clf_resetsynonyms{#1}{progress}}
+\permanent\protected\def\registercurrentsynonympage % \registercurrentsortingpage
+ {\ifcstok{\simplelistparameter\v!page}\v!yes
+ \clf_enhancesynonym\currentsimplelist\currentsortingtag
+ \fi}
+
\aliased\let\rawsynonymname \clf_synonymname
\aliased\let\rawsynonymmeaning\clf_synonymmeaning
+\aliased\let\rawsynonympages \clf_synonympages
+
+\permanent\protected\def\synonymname [#1]#*[#2]{\clf_synonymname {#1}{#2}}
+\permanent\protected\def\synonymmeaning[#1]#*[#2]{\clf_synonymmeaning{#1}{#2}}
+\permanent\protected\def\synonympages [#1]#*[#2]{\clf_synonympages {#1}{#2}}
\installcorenamespace{simplelistalternative} % specific ways of rendering a list
\installcorenamespace{simplelistrenderings} % a namespace for setups (rather local)
@@ -424,6 +437,7 @@
\dostarttaggedchained\t!synonym\currentsynonym\??simplelist
\dotagsynonym
\usesimpleliststyleandcolor\c!synonymstyle\c!synonymcolor
+ \registercurrentsynonympage
\simplelistparameter\c!synonymcommand{\currentsynonymname}%
\dostoptagged
\endgroup
@@ -523,9 +537,7 @@
\aliased\let\setupsorting\setupsimplelist
-% if #3=\relax or \v!none, then no command but still protected
-
-% these might become private
+% some of these might become private
\mutable\lettonothing\currentsortingoption
\mutable\lettonothing\currentsortingcoding
@@ -536,10 +548,14 @@
\permanent\tolerant\protected\def\definesorting[#1]#*[#2]#*[#3]%
{\ifnum\lastarguments=\plusthree
- \doifnot{#3}\v!none
- {\ifx#3\relax \else
- \protected\instance\def#3##1{\strc_sorting_insert{#1}{##1}}%
- \fi}%
+ %\ifparameter#3\or
+ \ifcstok{#3}\v!none
+ % skip
+ \orelse\ifrelax#3\relax
+ % skip
+ \else
+ \protected\instance\def#3##1{\strc_sorting_insert{#1}{##1}}%
+ \fi
\frozen\instance\protected\defcsname#1\endcsname{\definesort[\v!no][#1]}%
\else
\frozen\instance\protected\defcsname#1\endcsname{\definesort[\v!yes][#1]}%
@@ -600,14 +616,25 @@
}%
\relax
\ifx\currentsortingoption\v!yes
- \instance\setuxvalue\currentsortingtag{\strc_sorting_insert{\currentsorting}{\currentsortingtag}}%
+ %\instance\setuxvalue\currentsortingtag{\strc_sorting_insert{\currentsorting}{\currentsortingtag}}%
+ \protected\instance\xdefcsname\currentsortingtag\endcsname
+ {\strc_sorting_insert{\currentsorting}{\currentsortingtag}}%
\fi
\fi
\endgroup}
-\permanent\protected\def\currentsortingname {\clf_synonymname {\currentsimplelist}{\currentsortingtag}}
-\permanent\protected\def\doifelsecurrentsortingused {\clf_doifelsesynonymused {\currentsimplelist}{\currentsortingtag}}
-\permanent\protected\def\resetusedsortings [#1]{\clf_resetusedsynonyms {#1}}
+\permanent\protected\def\currentsortingname {\clf_synonymname\currentsimplelist\currentsortingtag}
+\permanent\protected\def\currentsortingpages {\clf_synonympages\currentsimplelist\currentsortingtag}
+\permanent\protected\def\doifelsecurrentsortingused {\clf_doifelsesynonymused\currentsimplelist\currentsortingtag}
+\permanent\protected\def\resetusedsortings [#1]{\clf_resetusedsynonyms{#1}}
+
+\permanent\protected\def\sortingname [#1]#*[#2]{\clf_synonymname {#1}{#2}}
+\permanent\protected\def\sortingpages[#1]#*[#2]{\clf_synonympages{#1}{#2}}
+
+\aliased\let\rawsortingname \clf_synonymname
+\aliased\let\rawsortingpages\clf_synonymmeaning
+
+\aliased\let\registercurrentsortingpage\registercurrentsynonympage
\setupsimplelist
[\v!sorting]
@@ -641,6 +668,7 @@
\dostarttaggedchained\t!sorting\currentsorting\??simplelist
\dotagsorting
\usesimpleliststyleandcolor\c!style\c!color
+ \registercurrentsortingpage
\currentsortingname
\dostoptagged
\endgroup
@@ -649,6 +677,9 @@
\permanent\tolerant\protected\def\registersort[#1]#*[#2]%
{\clf_registerusedsynonym{#1}{#2}}
+\permanent\tolerant\protected\def\registersortpage[#1]#*[#2]%
+ {\clf_enhancesynonym{#1}{#2}}
+
% before after
%
% maybe just 'commandset' and then combine