diff options
author | Norbert Preining <norbert@preining.info> | 2023-03-22 03:01:52 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-03-22 03:01:52 +0000 |
commit | cbbc6dbdbf08b70a7e7d8d184ca51c57c835415a (patch) | |
tree | 97ded8ca7095c54f6ff9b661be6b93f80bf792c4 /macros/latex/contrib/stex/tex/etc/lststex.sty | |
parent | de9a0afa47c2ee09e1d4704821cad2b231d36b3f (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.sty | 127 |
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 |