summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/stex/tex/etc/lststex.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-03-22 03:01:52 +0000
committerNorbert Preining <norbert@preining.info>2023-03-22 03:01:52 +0000
commitcbbc6dbdbf08b70a7e7d8d184ca51c57c835415a (patch)
tree97ded8ca7095c54f6ff9b661be6b93f80bf792c4 /macros/latex/contrib/stex/tex/etc/lststex.sty
parentde9a0afa47c2ee09e1d4704821cad2b231d36b3f (diff)
CTAN sync 202303220301
Diffstat (limited to 'macros/latex/contrib/stex/tex/etc/lststex.sty')
-rw-r--r--macros/latex/contrib/stex/tex/etc/lststex.sty127
1 files changed, 127 insertions, 0 deletions
diff --git a/macros/latex/contrib/stex/tex/etc/lststex.sty b/macros/latex/contrib/stex/tex/etc/lststex.sty
index 2b0f7a9b2e..423e0b4a20 100644
--- a/macros/latex/contrib/stex/tex/etc/lststex.sty
+++ b/macros/latex/contrib/stex/tex/etc/lststex.sty
@@ -31,6 +31,133 @@
\define@key{stexlisting}{id}{\def\sref@id{#1}}
\define@key{stexlisting}{id}{\def\stexlst@id{#1}}
+\definecolor{semanticmacrocolor}{HTML}{008800}
+
+\lstdefinelanguage{sTeX}{
+ sensitive=true,
+ numbers=left,
+ numbersep=3pt,
+ xleftmargin=3pt,
+ alsoother={$()$},
+ alsoletter={\\},
+ escapechar=|,
+ %moredelim = [s][\itshape]{$}{$},
+ %moredelim = [s][\itshape\bfseries]{\\[}{\\]},
+ classoffset=0,keywordstyle=\bfseries,morekeywords={
+ \\begin,\\end,\\ExplSyntaxOn,\\ExplSyntaxOff,\\documentclass,
+ \\usepackage,\\def,\\[,\\],\\else,\\fi,
+ \\newcommand, \\renewcommand, \\let,\$
+ },
+ classoffset=1,keywordstyle=\itshape\color{semanticmacrocolor},morekeywords={
+ % semantic macros
+ },
+ classoffset=2,keywordstyle=\color{blue},morekeywords={
+ \\symdecl,\\symdef,\\notation,\\vardef,\\varseq,
+ \\textsymdecl, \\renamedecl, \\assign, \\setnotation,
+ \\STEXexport
+ },
+ classoffset=3,keywordstyle=\color{orange},morekeywords={
+ \\importmodule,\\usemodule,\\libinput,\\inputref,\\mhinput,
+ \\libusepackage,\\addmhbibresource,\\ifinputref,\\copymod,
+ \\ifstexhtml, \\IfInputref,\\requiremodule,\\realize,\\usestructure
+ },
+ classoffset=4,keywordstyle=\color{purple},morekeywords={
+ \\definiendum,\\definame,\\Definame,\\symref,\\symname,\\comp,\\this,
+ \\compemph,\\definiens,\\svar,\\infprec,\\neginfprec,\\ellipses,
+ \\Symname,\\arg,\\yield,\\assumption,\\spfstep,\\eqstep,\\conclude,
+ \\symref,\\sn,\\sr,\\sns,\\Sn,\\Sns,\\defnotation,\\symuse,\\maincomp,
+ \\argsep,\\argmap,\\argarraymap,\\conclusion
+ },
+ classoffset=5,keywordstyle=\color{magenta},morekeywords={
+ smodule,sdefinition,sassertion,sparagraph,sexample,
+ sproof,subproof,spfcases,spfcase,spfstep,spfcomment,spfblock,
+ \\spfidea,\\spfsketch,\\spfcasesketch,\\sproofend,
+ \\spfjust,\\premise,\\justarg,\\inlinedef,\\inlineex,\\inlineass,
+ \\varbind,
+ copymodule,interpretmodule,mathstructure,sexample,extstructure,
+ extstructure*,realization
+ },
+ classoffset=6,keywordstyle=\color{cyan},morekeywords={
+ sfragment,blindfragment,\\skipfragment,
+ \\currentsectionlevel,\\Currentsectionlevel,\\setsectionlevel,
+ \\prematurestop,\\afterprematurestop,
+ \\setSGvar,\\useSGvar,\\ifSGvar,\\sref,\\sreflabel,\\extref,\\srefsetin,
+ \\srefsym,\\srefsymuri
+ },
+ classoffset=7,keywordstyle=\color{brown},morekeywords={
+ frame,note,\\ifnotes,\\setslidelogo,\\setsource,\\setlicensing
+ slides,notes,sectocframes,frameimages,fiboxed,
+ nparagraph, nparagraph, ndefinition, nexample, nsproof, nassertion,
+ \\frameimage,\\mhframeimage,\\textwarning,
+ \\activateexcursion,\\printexcursion,\\excursionref,\\excursiongroup
+ },
+ classoffset=8,keywordstyle=\color{red},morekeywords={
+ frame,note
+ },
+ classoffset=9,keywordstyle=\color{gray},morekeywords={
+ % variables
+ }
+}
+
+\ExplSyntaxOn
+
+\lstnewenvironment{stexcode}[1][]{
+ \_lststex_parse_args:n{#1}
+ \exp_args:No \lstset\l_lststex_return_tl
+}{}
+
+\newcommand\stexcodeinline[1][]{
+ \_lststex_parse_args:n{#1}
+ \exp_args:Nno \use:nn{\lstinline[} \l_lststex_return_tl ]
+}
+
+\keys_define:nn{ lststex }{
+ symbols .code:n = {
+ \clist_map_inline:nn{#1}{
+ \clist_put_right:Nn \l_lststex_symbols_clist {##1}
+ \clist_put_right:Nn \l_lststex_symbols_clist {\\##1}
+ }
+ },
+ variables .code:n = {
+ \clist_map_inline:nn{#1}{
+ \clist_put_right:Nn \l_lststex_variables_clist {##1}
+ \clist_put_right:Nn \l_lststex_variables_clist {\\##1}
+ }
+ },
+ unknown .code:n = {
+ \tl_if_empty:nTF{#1}{
+ \exp_args:NNo \clist_put_right:Nn \l_lststex_pass_on_args_clist \l_keys_key_str
+ }{
+ \exp_args:NNx \clist_put_right:Nn \l_lststex_pass_on_args_clist {
+ \l_keys_key_str = \exp_not:n{{#1}}
+ }
+ }
+ }
+}
+
+\cs_new_protected:Nn \_lststex_parse_args:n {
+ \clist_clear:N \l_lststex_pass_on_args_clist
+ \clist_put_right:Nn \l_lststex_pass_on_args_clist {language=sTeX}
+ \clist_clear:N \l_lststex_symbols_clist
+ \clist_clear:N \l_lststex_variables_clist
+ \keys_set:nn { lststex }{ #1 }
+ \tl_set:Nx \l_lststex_return_tl {
+ \exp_args:No \exp_not:n \l_lststex_pass_on_args_clist
+ \clist_if_empty:NF \l_lststex_symbols_clist {
+ ,classoffset=1,morekeywords={
+ \exp_args:No \exp_not:n \l_lststex_symbols_clist
+ }
+ }
+ \clist_if_empty:NF \l_lststex_variables_clist {
+ ,classoffset=9,morekeywords={
+ \exp_args:No \exp_not:n \l_lststex_variables_clist
+ }
+ }
+ }
+}
+
+\ExplSyntaxOff
+
% LocalWords: lstdefinelanguage morekeywords morecomment moretexcs defin sref
% LocalWords: twindef atwindef definalt twindefalt atwindefalt termref lstset
% LocalWords: basicstyle scriptsize fullflexible lineskip aboveskip belowskip