texlive[50489] Master/texmf-dist: stex (20mar19)

commits+karl at tug.org commits+karl at tug.org
Wed Mar 20 23:31:25 CET 2019


Revision: 50489
          http://tug.org/svn/texlive?view=revision&revision=50489
Author:   karl
Date:     2019-03-20 23:31:24 +0100 (Wed, 20 Mar 2019)
Log Message:
-----------
stex (20mar19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/stex/cmath/cmath.pdf
    trunk/Master/texmf-dist/doc/latex/stex/dcm/dcm.pdf
    trunk/Master/texmf-dist/doc/latex/stex/example/background/Makefile
    trunk/Master/texmf-dist/doc/latex/stex/example/background/all.pdf
    trunk/Master/texmf-dist/doc/latex/stex/example/background/functions.pdf
    trunk/Master/texmf-dist/doc/latex/stex/example/background/reals.pdf
    trunk/Master/texmf-dist/doc/latex/stex/example/paper/Makefile
    trunk/Master/texmf-dist/doc/latex/stex/example/paper/continuous.pdf
    trunk/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.pdf
    trunk/Master/texmf-dist/doc/latex/stex/example/paper/intro.pdf
    trunk/Master/texmf-dist/doc/latex/stex/hwexam/hwexam.pdf
    trunk/Master/texmf-dist/doc/latex/stex/metakeys/metakeys.pdf
    trunk/Master/texmf-dist/doc/latex/stex/mikoslides/mikoslides.pdf
    trunk/Master/texmf-dist/doc/latex/stex/modules/modules.pdf
    trunk/Master/texmf-dist/doc/latex/stex/omdoc/omdoc.pdf
    trunk/Master/texmf-dist/doc/latex/stex/omtext/omtext.pdf
    trunk/Master/texmf-dist/doc/latex/stex/presentation/presentation.pdf
    trunk/Master/texmf-dist/doc/latex/stex/problem/problem.pdf
    trunk/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.pdf
    trunk/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.tex
    trunk/Master/texmf-dist/doc/latex/stex/rfdmeta/rdfmeta.pdf
    trunk/Master/texmf-dist/doc/latex/stex/smglom/smglom.pdf
    trunk/Master/texmf-dist/doc/latex/stex/smultiling/smultiling.pdf
    trunk/Master/texmf-dist/doc/latex/stex/sproof/sproof.pdf
    trunk/Master/texmf-dist/doc/latex/stex/sref/book.pdf
    trunk/Master/texmf-dist/doc/latex/stex/sref/idc.pdf
    trunk/Master/texmf-dist/doc/latex/stex/sref/scr.pdf
    trunk/Master/texmf-dist/doc/latex/stex/sref/sref.pdf
    trunk/Master/texmf-dist/doc/latex/stex/statements/statements.pdf
    trunk/Master/texmf-dist/doc/latex/stex/stex/stex.pdf
    trunk/Master/texmf-dist/doc/latex/stex/structview/structview.pdf
    trunk/Master/texmf-dist/doc/latex/stex/tikzinput/tikzinput.pdf
    trunk/Master/texmf-dist/doc/latex/stex/workaddress/workaddress.pdf
    trunk/Master/texmf-dist/source/latex/stex/cmath/cmath.dtx
    trunk/Master/texmf-dist/source/latex/stex/dcm/dcm.dtx
    trunk/Master/texmf-dist/source/latex/stex/hwexam/hwexam.dtx
    trunk/Master/texmf-dist/source/latex/stex/lib/bib/extcrossrefs.bib
    trunk/Master/texmf-dist/source/latex/stex/lib/bib/extpubs.bib
    trunk/Master/texmf-dist/source/latex/stex/lib/bib/kwarccrossrefs.bib
    trunk/Master/texmf-dist/source/latex/stex/lib/bib/kwarcpubs.bib
    trunk/Master/texmf-dist/source/latex/stex/lib/make/Makefile.in
    trunk/Master/texmf-dist/source/latex/stex/lib/make/Makefile.latex.in
    trunk/Master/texmf-dist/source/latex/stex/lib/make/Makefile.vars
    trunk/Master/texmf-dist/source/latex/stex/metakeys/metakeys.dtx
    trunk/Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx
    trunk/Master/texmf-dist/source/latex/stex/modules/modules.dtx
    trunk/Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx
    trunk/Master/texmf-dist/source/latex/stex/omtext/omtext.dtx
    trunk/Master/texmf-dist/source/latex/stex/presentation/presentation.dtx
    trunk/Master/texmf-dist/source/latex/stex/problem/problem.dtx
    trunk/Master/texmf-dist/source/latex/stex/rfdmeta/rdfmeta.dtx
    trunk/Master/texmf-dist/source/latex/stex/smglom/smglom.dtx
    trunk/Master/texmf-dist/source/latex/stex/smultiling/smultiling.dtx
    trunk/Master/texmf-dist/source/latex/stex/sproof/sproof.dtx
    trunk/Master/texmf-dist/source/latex/stex/sref/sref.dtx
    trunk/Master/texmf-dist/source/latex/stex/statements/statements.dtx
    trunk/Master/texmf-dist/source/latex/stex/stex/stex.dtx
    trunk/Master/texmf-dist/source/latex/stex/structview/structview.dtx
    trunk/Master/texmf-dist/source/latex/stex/tikzinput/tikzinput.dtx
    trunk/Master/texmf-dist/source/latex/stex/workaddress/workaddress.dtx
    trunk/Master/texmf-dist/tex/latex/stex/cmath/cmath.sty
    trunk/Master/texmf-dist/tex/latex/stex/dcm/dcm.sty
    trunk/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.cls
    trunk/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.sty
    trunk/Master/texmf-dist/tex/latex/stex/metakeys/metakeys.sty
    trunk/Master/texmf-dist/tex/latex/stex/mikoslides/beamerthemeJacobs.sty
    trunk/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls
    trunk/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.sty
    trunk/Master/texmf-dist/tex/latex/stex/modules/modules.sty
    trunk/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls
    trunk/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty
    trunk/Master/texmf-dist/tex/latex/stex/omtext/omtext.sty
    trunk/Master/texmf-dist/tex/latex/stex/presentation/presentation.sty
    trunk/Master/texmf-dist/tex/latex/stex/problem/problem.sty
    trunk/Master/texmf-dist/tex/latex/stex/rfdmeta/rdfmeta.sty
    trunk/Master/texmf-dist/tex/latex/stex/smglom/smglom.cls
    trunk/Master/texmf-dist/tex/latex/stex/smultiling/smultiling.sty
    trunk/Master/texmf-dist/tex/latex/stex/sproof/sproof.sty
    trunk/Master/texmf-dist/tex/latex/stex/sref/sref.sty
    trunk/Master/texmf-dist/tex/latex/stex/statements/statements.sty
    trunk/Master/texmf-dist/tex/latex/stex/stex/stex.sty
    trunk/Master/texmf-dist/tex/latex/stex/structview/structview.sty
    trunk/Master/texmf-dist/tex/latex/stex/tikzinput/tikzinput.sty
    trunk/Master/texmf-dist/tex/latex/stex/workaddress/workaddress.sty

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/stex/example/paper/paper.pdf
    trunk/Master/texmf-dist/tex/latex/stex/mikoslides/mikoaffiliation.sty

Modified: trunk/Master/texmf-dist/doc/latex/stex/cmath/cmath.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/dcm/dcm.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/example/background/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/stex/example/background/Makefile	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/doc/latex/stex/example/background/Makefile	2019-03-20 22:31:24 UTC (rev 50489)
@@ -2,6 +2,7 @@
 TARGET = all.tex
 BUTFILES = pre.tex post.tex
 MODSLIBDIR = .
+BIBINPUTS = $(PREFIX)/lib/bib:
 
 include $(STEXDIR)/lib/make/Makefile.vars
 all: pdf mpdf

Modified: trunk/Master/texmf-dist/doc/latex/stex/example/background/all.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/example/background/functions.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/example/background/reals.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/example/paper/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/stex/example/paper/Makefile	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/doc/latex/stex/example/paper/Makefile	2019-03-20 22:31:24 UTC (rev 50489)
@@ -1,6 +1,7 @@
 STEXDIR = ../..
 TARGET = paper.tex
 MODSLIBDIR = ../background
+BIBINPUTS = $(PREFIX)/lib/bib:
 
 include $(STEXDIR)/lib/make/Makefile.vars
 all: pdf mpdf

Modified: trunk/Master/texmf-dist/doc/latex/stex/example/paper/continuous.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/example/paper/intro.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/stex/example/paper/paper.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/hwexam/hwexam.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/metakeys/metakeys.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/mikoslides/mikoslides.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/modules/modules.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/omdoc/omdoc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/omtext/omtext.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/presentation/presentation.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/problem/problem.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.tex	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.tex	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,12 +10,11 @@
   \symdef{tuev}{\text{T\"UV}}
   \begin{omgroup}[id=foo,hasState=test]{Definitions}
   \begin{definition}[for=hasState]
-    A document {\definiendum[hasState]{has state}} $x$, iff
-    the project manager decrees it so. 
+    A document \defii{has}{state} $x$, iff the project manager decrees it so.
   \end{definition}
   \begin{definition}[for=statedocrd,hasState=$\statedocrd\tuev$]
-    A document has state \definiendum[statedocrd]{rd. $x$},
-    iff it has been submitted to $x$ for certification.
+    A document has state \defi[name=statedocrd]{rd. $x$}, iff it has been submitted to $x$ for
+    certification.
   \end{definition}
   \begin{definition}[for=tuev,hasState=$\statedocrd\tuev$]
     The $\tuev$ (Technischer \"Uberwachungs Verein) is a national
@@ -24,3 +23,8 @@
 \end{omgroup}
 \end{module}
 \end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:

Modified: trunk/Master/texmf-dist/doc/latex/stex/rfdmeta/rdfmeta.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/smglom/smglom.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/smultiling/smultiling.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/sproof/sproof.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/sref/book.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/sref/idc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/sref/scr.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/sref/sref.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/statements/statements.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/stex/stex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/structview/structview.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/tikzinput/tikzinput.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/stex/workaddress/workaddress.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/stex/cmath/cmath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/cmath/cmath.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/cmath/cmath.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -9,10 +9,11 @@
 % 
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{cmath}[2016/04/07 v0.1 inline content math]
+%<package>\ProvidesPackage{cmath}[2019/03/20 v0.1 inline content math]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{url,array,float,amstext,alltt}
 \usepackage{modules,cmath,stex-logo}
 \usepackage[show]{ed}
@@ -27,8 +28,11 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{cmath.dtx}\end{document}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\begin{document}
+\RecordChanges
+\DocInput{cmath.dtx}
+\end{document}
 %</driver>
 % \fi
 % 
@@ -55,9 +59,10 @@
 % \def\atwintoo#1#2#3{{#1 #2 #3}\atwin{#1}{#2}{#3}}
 % \title{{\texttt{cmath.sty}}: An Infrastructure for building Inline Content Math in
 % {\stex}\thanks{Version {\fileversion} (last revised {\filedate})}} 
-%    \author{Michael Kohlhase \& Deyan Ginev\\
-%            Jacobs University, Bremen\\
-%            \url{http://kwarc.info/kohlhase}}
+%    \author{Michael Kohlhase \\
+%    FAU Erlangen-N\"urnberg\\
+%    \url{http://kwarc.info/kohlhase}\and
+%    Deyan Ginev\\Authorea}
 % \date{\today}
 % \maketitle
 %
@@ -206,9 +211,9 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item none reported yet
-% \end{compactenum}
+% \end{enumerate}
 % 
 % \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography}
 %

Modified: trunk/Master/texmf-dist/source/latex/stex/dcm/dcm.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/dcm/dcm.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/dcm/dcm.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,10 +10,11 @@
 % \iffalse
 %<*package>
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{dcm}[2016/04/07 v0.3 Dublin Core Metadata]
+\ProvidesPackage{dcm}[2019/03/20 v0.3 Dublin Core Metadata]
 %</package>
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{dcm,modules,stex-logo,url,array,float}
 \usepackage[show]{ed}
 \usepackage[hyperref=auto,style=alphabetic]{biblatex}
@@ -43,8 +44,11 @@
               {Safe and Secure Cognitive Systems}
 \WAinstitution[id=dfki,url=http://dfki.de,shortname=DFKI,acronym=DFKI]
               {German Research Center for Artificial Intelligence}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{dcm.dtx}\end{document}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\begin{document}
+\RecordChanges
+\DocInput{dcm.dtx}
+\end{document}
 %</driver>
 % \fi
 %
@@ -217,9 +221,9 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item none reported yet
-% \end{compactenum}
+% \end{enumerate}
 % 
 % \StopEventually{\printbibliography}
 % 
@@ -265,7 +269,7 @@
 % \begin{macro}{\DCMcreators}
 %   the |\DCMcreators| macro checks whether all ids are defined.
 %    \begin{macrocode}
-\def\DCMcreators#1{\@for\@I:=#1\do{\wa at ref@test{person}\@I{id}}
+\def\DCMcreators#1{\@for\@I:=#1\do{\wa at ref1{person}\@I{id}}
 \gdef\dcm at creators{#1}}
 %    \end{macrocode}
 % \end{macro}
@@ -273,7 +277,7 @@
 % \begin{macro}{\DCMcontributors}
 %   the |\DCMcontributors| macro also checks whether all ids are defined.
 %    \begin{macrocode}
-\def\DCMcontributors#1{\@for\@I:=#1\do{\wa at ref@test{person}\@I{id}}%
+\def\DCMcontributors#1{\@for\@I:=#1\do{\wa at ref1{person}\@I{id}}%
 \def\dcm at contributors{#1}}
 %    \end{macrocode}
 % \end{macro}
@@ -456,7 +460,6 @@
 \def\dcm at subsection@heading{Subsection}
 \def\dcm at subsubsection@heading{Subsubsection}
 \def\dcm at paragraph@heading{Paragraph}
-\def\omdoc{OMDoc}
 %</package>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/stex/hwexam/hwexam.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/hwexam/hwexam.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/hwexam/hwexam.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -9,11 +9,12 @@
 % 
 % \iffalse
 %<package|cls>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{hwexam}[2016/04/07 v1.1 homework assignments and exams]
-%<cls>\ProvidesClass{hwexam}[2016/04/07 v1.1 assignment and exam documents]
+%<package>\ProvidesPackage{hwexam}[2019/03/20 v1.1 homework assignments and exams]
+%<cls>\ProvidesClass{hwexam}[2019/03/20 v1.1 assignment and exam documents]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{url,float}
 \usepackage{hwexam}
 \usepackage[show]{ed}
@@ -29,8 +30,11 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{hwexam.dtx}\end{document}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\begin{document}
+\RecordChanges
+\DocInput{hwexam.dtx}
+\end{document}
 %</driver>
 % \fi
 %\CheckSum{464}
@@ -52,8 +56,8 @@
 % \title{\texttt{hwexam.sty/cls}: An Infrastructure for formatting Assignments 
 %        and Exams\thanks{Version {\fileversion} (last revised {\filedate})}}
 %    \author{Michael Kohlhase\\
-%            Jacobs University, Bremen\\
-%            \url{http://kwarc.info/kohlhase}}
+%    FAU Erlangen-N\"urnberg\\
+%    \url{http://kwarc.info/kohlhase}}
 % \maketitle
 %
 % \begin{abstract}
@@ -163,9 +167,9 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item none reported yet. 
-% \end{compactenum}
+% \end{enumerate}
 % 
 % \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography}\newpage
 % \newpage
@@ -246,9 +250,18 @@
 %   |*.ldf| files. 
 %    \begin{macrocode}
 \AfterBabelLanguage{ngerman}{\input{hwexam-ngerman.ldf}}
+\AfterBabelLanguage{arabic}{\input{hwexam-arabic.ldf}}
 \newcommand\hwexam at assignment@kw{Assignment}
 \newcommand\hwexam at given@kw{Given}
 \newcommand\hwexam at due@kw{Due}
+\newcommand\hwexam at testemptypage@kw{This page was intentionally left blank for extra
+  space}%
+\newcommand\correction at probs@kw{prob.}%
+\newcommand\correction at pts@kw{total}%
+\newcommand\correction at reached@kw{reached}%
+\newcommand\correction at sum@kw{Sum}%
+\newcommand\correction at grade@kw{grade}%
+\newcommand\correction at forgrading@kw{To be used for grading, do not write here}
 %    \end{macrocode}
 % \end{macro}
 % 
@@ -451,7 +464,7 @@
 {\noindent\large{}Name: \hfill Matriculation Number:\hspace*{2cm}\strut\\[1ex]
 \begin{center}\Large\textbf{\@title}\\[1ex]\large\@date\\[3ex]\end{center}  
 {\textbf{You have 
-\ifx\test at heading@duration\@empty\testheading at min minutes\else\testheading at duration\fi 
+\ifx\testheading at duration\@empty\testheading at min minutes\else\testheading at duration\fi 
 (sharp) for the test}};\\ Write the solutions to the sheet.}\par\noindent
 
 \newcount\check at time\check at time=\testheading at min
@@ -488,14 +501,13 @@
 % 
 % \begin{macro}{\testemptypage}
 %    \begin{macrocode}
-\newcommand\testemptypage[1][]{\iftest\begin{center}This page was intentionally left
-    blank for extra space\end{center}\vfill\eject\else\fi}
+\newcommand\testemptypage[1][]{\iftest\begin{center}\hwexam at testemptypage@kw\end{center}\vfill\eject\else\fi}
 %    \end{macrocode}
 % \end{macro}
 % 
 % \begin{macro}{\@problem}
-%   This macro acts on a problem's record in the |*.aux| file. Here we redefine it to
-%   generate the correction table. 
+%   This macro acts on a problem's record in the |*.aux| file. Here we redefine it (it was
+%   defined to do nothing in |problem.sty|) to  generate the correction table. 
 %    \begin{macrocode}
 \renewcommand\@problem[3]{\stepcounter{assignment at probs}
 \def\@@pts{#2}\ifx\@@pts\@empty\else\addtocounter{assignment at totalpts}{#2}\fi
@@ -512,17 +524,19 @@
 \newcounter{assignment at probs}
 \newcounter{assignment at totalpts}
 \newcounter{assignment at totalmin}
-\newcommand\correction at probs{prob.}%
-\newcommand\correction at pts{total}%
-\newcommand\correction at reached{reached}%
+\def\correction at probs{\correction at probs@kw}%
+\def\correction at pts{\correction at pts@kw}%
+\def\correction at reached{\correction at reached@kw}%
+\def\after at correction@table{}%
 \stepcounter{assignment at probs}
 \newcommand\correction at table{\begin{tabular}{|l|*{\theassignment at probs}{c|}|l|}\hline%
 &\multicolumn{\theassignment at probs}{c||}%|
-{\footnotesize To be used for grading, do not write here} &\\\hline
-\correction at probs & Sum & grade\\\hline
+{\footnotesize\correction at forgrading@kw} &\\\hline
+\correction at probs & \correction at sum@kw & \correction at grade@kw\\\hline
 \correction at pts &\theassignment at totalpts & \\\hline
 \correction at reached & & \\[.7cm]\hline
-\end{tabular}}
+\end{tabular}
+\ifx\after at correction@table\@empty\else\strut\par\noindent\after at correction@table\fi}
 %</package>
 %    \end{macrocode}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/stex/lib/bib/extcrossrefs.bib
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/lib/bib/extcrossrefs.bib	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/lib/bib/extcrossrefs.bib	2019-03-20 22:31:24 UTC (rev 50489)
@@ -1,5 +1,20 @@
 @STRING{ecmessage = "READ the README please!!!!!!!!!!!!!!"}
 
+ at book{KosBuc:rtul15,
+ title = {The Road to Universal Logic, Festschrift for the 50th Birthday of Jean-Yves B{\'e}ziau},
+ volume = 2,
+ editor = {Koslow, Arnold and Buchsbaum, Arthur},
+ publisher = {Springer Verlag},
+ year = 2015}
+
+ at Proceedings{MathUI15,
+  editor =   {Andrea Kohlhase and Paul Libbrecht},
+  title =    {Mathematical User Interfaces Workshop at {CICM}},
+  booktitle =    {Mathematical User Interfaces Workshop},
+  url = {http://www.cermat.org/events/MathUI/15/proceedings},
+  year =    {2015},
+  month = jul}
+
 @proceedings{SEMS15,
   year = {2015},
   booktitle = {Second workshop on Software Engineering methods in Spreadsheets},
@@ -82,7 +97,7 @@
 
 @proceedings{NTCIR11,
   title = {NTCIR Workshop 11 Meeting},
-  editor = {Noriko Kando and Hideo Joho andKazuaki Kishida},
+  editor = {Noriko Kando and Hideo Joho and Kazuaki Kishida},
   booktitle = {NTCIR 11 Conference},
   address = {Tokyo, Japan},
   publisher = {NII, Tokyo},
@@ -593,6 +608,14 @@
     9\textsuperscript{th} International Conference, LPAR 2002},
   key = {LPAR2002}}
 
+
+ at proceedings{UITP14,
+  year = "2014",
+  booktitle = "Workshop on User Interfaces for Theorem Provers",
+  title = "Workshop on User Interfaces for Theorem Provers",
+  editor = "C. Benzm{\"u}ller and B. {Woltzenlogel Paleo}",
+  publisher = "Elsevier"}
+
 @proceedings{uitp2012,
   editor = {Cezary Kaliszyk and Christoph L{\"u}th},
   title = {User Interfaces for Theorem Provers},
@@ -741,6 +764,16 @@
   publisher = {Springer Verlag},
   booktitle = {Mathematical Knowledge Management (MKM)}}
 
+ at PROCEEDINGS{MACIS15,
+  title = {MACIS 2015},
+  year = 2016,
+  SOONeditor = {????},
+  SOONnumber = {????},
+  series = {LNAI},
+  publisher = {Springer Verlag},
+  booktitle = {MACIS 2015: Sixth International Conference on Mathematical Aspects of Computer and Information Sciences},
+  note = {in press}}
+
 @PROCEEDINGS{MKM07,
   title = {{MKM/Calculemus}},
   booktitle = {Towards Mechanized Mathematical Assistants. {MKM/Calculemus}},
@@ -3033,6 +3066,14 @@
   year = 2009,
   month = sep,}
 
+ at PROCEEDINGS{LWA15,
+  title = {Proceedings of the LWA 2015 Workshops: KDML, FGWM, IR, and FGDB},
+  booktitle = {Proceedings of the LWA 2015 Workshops: KDML, FGWM, IR, and FGDB},
+  editor = {Ralph Bergmann and  Sebastian G{\"o}rg and Gilbert M{\"u}ller},
+  institution = {FGDB. Trier, Germany},
+  year = 2015,
+  month = oct}
+
 @PROCEEDINGS{LWA13,
   title = {Wissens- und Er\-fah\-rungs\-ma\-nage\-ment LWA (Lernen, Wissensentdeckung und Adaptivit{\"a}t) Conference Proceedings},
 booktitle = {LWA 2013 - Lernen, Wissen & Adaptivit{\"a}t, Workshop Proceedings, Bamberg, 7.-9. October 2013},
@@ -3917,7 +3958,6 @@
   title = {Wikipedia, the free encyclopedia},
   howpublished = {\url{http://www.wikipedia.org}},
   editor = {{Wikimedia Foundation}},
-  year = {2001--2007},
   key = {Wikipedia},
   url = {http://www.wikipedia.org}}
 

Modified: trunk/Master/texmf-dist/source/latex/stex/lib/bib/extpubs.bib
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/lib/bib/extpubs.bib	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/lib/bib/extpubs.bib	2019-03-20 22:31:24 UTC (rev 50489)
@@ -2,6 +2,157 @@
 
 @STRING{JWS = {Web Semantics: Science, Services and Agents on the World Wide Web}}
 
+
+ at book{ChaStr:pg14,
+  title = {Pro {Git}},
+  edition= {2nd Edition},
+  year = {2014},
+  author = {Scott Chacon and Ben Straub},
+  isbn = {978-1484200773},
+  url = {https://git-scm.com/book/en/v2},
+  publisher = {APress}}
+
+ at Article{zbMATH06165381,
+    Author = "Thierry {Bouche} and Olaf {Teschke} and Krzy{\'s} {Wojciechowski}",
+    Title = "Time lag in mathematical references",
+    Journal = "{European Mathematical Society Newsletter}",
+    ISSN = "1027-488X",
+    Volume = "86",
+    Pages = "54--55",
+    Year = "2012"} 
+
+ at online{SCLWorkshop16,
+ title = {Semantic Representation of Mathematical Knowledge Workshop},
+ url = {https://www.fields.utoronto.ca/programs/scientific/15-16/semantic/},
+ date = {February 3-5, 2016},
+ institution =  {Fields Institute, Toronto, Ontario}}
+
+ at online{Zyga:mfnsp16,
+  author = {Lisa Zyga},
+  note = {Online article at \url{http://phys.org}},
+  title = {Mathematician finds his 'new' solution to {Poisson} formula problem buried in 1959 paper},
+  url = {http://phys.org/news/2016-03-mathematician-solution-poisson-formula-problem.html},
+  date = {2016}}
+
+ at online{EPUB-contentdocs:on,crossref={EPUB.-contentdocs:base},
+  urldate = {2016-03-29}}
+ at misc{EPUB-contentdocs:URL,crossref={EPUB-contentdocs:base},
+  howpublished = {\url{http://www.idpf.org/epub/301/spec/epub-contentdocs.html}}}
+ at misc{EPUB-contentdocs:base,
+  title = {EPUB Content Documents 3.0.1},
+  url = {http://www.idpf.org/epub/301/spec/epub-contentdocs.html},
+  author = {Markus Gylling and William McCoy and Dave Cramer and Elika J. Etemad},
+  institution = {International Digital Publishing Forum (IDPF)}}
+
+ at online{EPUB-publications:on,crossref={EPUB-publications:base},
+  urldate = {2016-03-29}}
+ at misc{EPUB-publications:URL,crossref={EPUB-publications:base},
+  howpublished = {\url{http://www.idpf.org/epub/301/spec/epub-publications.html}}}
+ at misc{EPUB-publications:base,
+  title = {EPUB Publications 3.0.1},
+  url = {http://www.idpf.org/epub/301/spec/epub-publications.html},
+  author = {Markus Gylling and William McCoy and Matt Garrish},
+  institution = {International Digital Publishing Forum (IDPF)},
+  urldate = {2016-03-29}}
+
+ at online{OCF:on,crossref={OCF:base},
+  urldate = {2016-03-29}}
+ at misc{OCF:URL,crossref={OCF:base},
+  howpublished = {\url{http://www.idpf.org/epub/301/spec/epub-ocf.html}}}
+ at misc{OCF:base,
+  title = {EPUB Open Container Format (OCF) 3.0.1},
+  url = {http://www.idpf.org/epub/301/spec/epub-ocf.html},
+  author = {James Pritchett and Markus Gylling},
+  institution = {International Digital Publishing Forum (IDPF)},
+  urldate = {2016-03-29}}
+
+ at online{EPUB-mediaoverlays:on,crossref={EPUB-mediaoverlays:base},
+  urldate = {2016-03-29}}
+ at misc{EPUB-mediaoverlays:URL,crossref={EPUB-mediaoverlays:base},
+  howpublished = {\url{http://www.idpf.org/epub/301/spec/epub-mediaoverlays.html}}}
+ at misc{EPUB-mediaoverlays:base,
+  title = {EPUB Media Overlays 3.0.1},
+  url = {http://www.idpf.org/epub/301/spec/epub-mediaoverlays.html},
+  author = {Marisa DeMeglio and Daniel Weck},
+  institution = {International Digital Publishing Forum (IDPF)},
+  urldate = {2016-03-29}}
+
+ at online{opendefinition.org,
+  url = {http://opendefinition.org},
+  label = {OD},
+  title = {The Open Definition},
+  urldate = {2016-01-11}}
+
+ at misc{Gutenberg:url,crossref={Gutenberg:base},
+  key = {GO},
+  howpublished = {Project page at \url{https://www.gutenberg.org}},
+  note = {accessed 1. 3. 2016}}
+ at online{Gutenberg:online,crossref={Gutenberg:base},
+  urldate = {2016-03-01},
+  label={GO}}
+ at misc{Gutenberg:base,
+  title = {Project Gutenberg},
+  url = {https://www.gutenberg.org}}
+  
+
+ at Misc{Morzycki:modificationbook,
+    author = {Marcin Morzycki},
+    year = 2014,
+    chapter = {The Lexical Semantics of Adjectives: More Than Just Scales},
+    title = {Modification},
+    booktitle = {Modification},
+    note = {Book manuscript. In preparation for the Cambridge University Press series \emph{Key Topics in Semantics and Pragmatics}.},
+    url = {http://msu.edu/~morzycki/work/book}}
+
+ at article{Cantor:bbtm95,
+author = {Cantor, Georg},
+year ={1895},
+title = {Beitr{\"a}ge zur Begr{\"u}ndung der transfiniten Mengenlehre (1)},
+journal = {Mathematische Annalen},
+volume = {46},
+pages = {481--512},
+doi = {10.1007/bf02124929}}
+
+ at article{Cantor:bbtm97,
+author = {Cantor, Georg},
+year ={1897},
+title = {Beitr{\"a}ge zur Begr{\"u}ndung der transfiniten Mengenlehre (2)},
+journal = {Mathematische Annalen},
+volume = {49},
+pages = {207--246},
+doi = {doi:10.1007/bf01444205}}
+
+ at book{DoxPapPap:lest09,
+  title={Logicomix: An Epic Search for Truth},
+  author={Doxiad{\=e}s, A.K. and Papadimitriou, C.H. and Papadatos, A. and Di Donna, A.},
+  isbn={9780747597209},
+  year={2009},
+  publisher={Bloomsbury}
+}
+
+ at book{Hofstadter:GEB79,
+ author = {Hofstadter, Douglas R.},
+ year = {1979},
+ title= {G{\"o}del, Escher, Bach: An Eternal Golden Braid},
+ publisher = {Basic Books},
+ isbn = { 0-465-02656-7}}
+
+ at misc{python-regexp:URL,crossref={python-regexp:base},
+key = {RE},
+howpublished = {online manual at \url{https://docs.python.org/2/library/re.html}}}
+ at online{python-regexp:on,crossref={python-regexp:base},
+label = {RE},
+urldate = {2015-09-20}}
+ at misc{python-regexp:base,
+url = {https://docs.python.org/2/library/re.html},
+title = {\texttt{re} -- Regular expression operations}}
+
+ at incollection{MosCodNeuKut:dol15,
+author = {Till Mossakowski and Mihai Codescu and Fabian Neuhaus and Oliver Kutz},
+crossref = {KosBuc:rtul15},
+title = {The Distributed Ontology, Modeling, and Specification Language -- DOL},
+pages = {489--520}}
+
 @incollection{Gonthier+:mcpoot13,
 doi = {10.1007/978-3-642-39634-2_14},
 title = {A Machine-Checked Proof of the Odd Order Theorem},
@@ -1648,7 +1799,7 @@
   title = 	 {The {\texttt{biblatex}} Package},
   year = 	 2010,
   institution =  {CTAN: Comprehensive {\TeX} Archive Network},
-  url = 	 {http://www.ctan.org/tex-archive/macros/latex/exptl/biblatex/doc/biblatex.pdf}}
+  url = 	 {http://ctan.org/pkg/biblatex}}
 
 @TechReport{CalStai:natm09,
   author = 	 {Cris Calude and Ludwig Staiger},
@@ -2048,6 +2199,29 @@
   date = {2011-10-11},
   url = {http://idpf.org/epub/30/spec/epub30-overview.html}}
 
+ at online{IDPF:on,crossref={IDPF:base},
+  label = {IDPF},
+  urldate = {2016-03-29}}
+ at misc{IDPF:URL,crossref={IDPF:base},
+  key = {IDPF},
+  howpublished = {\url{http://www.idpf.org}}}
+ at misc{IDPF:base,
+  title = {International Digital Publishing Forum (IDPF)},
+  url = {http://idpf.org},
+  urldate = {2016-03-27}}
+
+ at online{epubvalidator:on,crossref={epubvalidator:base},
+  label = {EV},
+  urldate = {2016-03-29}}
+ at misc{epubvalidator:URL,crossref={epubvalidator:base},
+  key = {EV},
+  howpublished = {\url{http://validator.idpf.org/}}}
+ at misc{epubvalidator:base,
+  title = {EPUB Validator (beta)},
+  institution = {International Digital Publishing Forum (IDPF)},
+  url = {http://validator.idpf.org/},
+  urldate = {2016-03-27}}
+  
 @online{mobi:online,
   title={MOBI eBook Format},
   institution = {Mobipocket SA},
@@ -2372,9 +2546,9 @@
  }
 
 @online{5stardata,
-  title = {5 star Open Data},
+  title = {5-star Open Data},
   url = {http://5stardata.info/},
-  urldate =      {2013-09-18},
+  urldate =      {2015-10-11},
   date = {2012-04-03},
 }
 
@@ -3526,8 +3700,8 @@
   title = {{The Comprehensive LaTeX Symbol List}},
   year = 2009,
   note = {seen August 2011},
-  howpublished = {\url{http://ctan.org/tex-archive/info/symbols/comprehensive/}},
-  url = {http://ctan.org/tex-archive/info/symbols/comprehensive/},
+  howpublished = {\url{http://mirror.ctan.org/info/symbols/comprehensive/}},
+  url = {http://mirror.ctan.org/info/symbols/comprehensive/},
   keywords = {lamapunbibs}
 }
 
@@ -6764,7 +6938,7 @@
 @Manual{Tantau:ugbc,
   title = 	 {User Guide to the Beamer Class},
   author = 	 {Till Tantau},
-  url = {http://www.ctan.org/tex-archive/macros/latex/contrib/beamer/doc/beameruserguide.pdf}}
+  url = {http://ctan.org/macros/latex/contrib/beamer/doc/beameruserguide.pdf}}
 
 @PhdThesis{Lawvere:fsat63,
   author =	"F. William Lawvere",
@@ -6777,7 +6951,7 @@
  title = {beamer -- A LaTeX class for producing presentations and slides},
  author = {Till Tantau},
  urldate = {2014-01-07},
- url={http://www.ctan.org/pkg/beamer}}
+ url={http://ctan.org/pkg/beamer}}
 
 @article{Barnard:teifede97,
     author = "David T. Barnard and Nancy Ide",
@@ -8370,11 +8544,11 @@
 
 @online{CTAN:on,crossref={CTAN:base},urldate={2012-12-11},label={CTAN}}
 @MISC{URL:CTAN,crossref={CTAN:base},
-  howpublished = {\webpageat\url{http://www.ctan.org}}}
+  howpublished = {\webpageat\url{http://ctan.org}}}
 @MISC{CTAN:base,
   key = {CTAN},
   title = {{CTAN} the {Comprehensive {\TeX} Archive Network}},
-  url = {http://www.ctan.org}}
+  url = {http://ctan.org}}
 
 @INCOLLECTION{KamLamMaaWel:rnlcmim07,
   author = {Fairouz Kamareddine and Robert Lamar and Manuel Maarek  and J. B. Wells},
@@ -8383,6 +8557,32 @@
   keywords = {lamapunbibs},
   crossref = {MKM07}}
 
+ at online{manifold-atlas:on,
+  label = {MAP},
+  title = {Manifold Atlas},
+  url = {http://www.map.mpim-bonn.mpg.de/Main_Page},
+  urldate = {2016-03-20}}
+
+ at incollection{KamWellZen:cmt14,
+  author =  {Fairouz Kamareddine and Joe Wells and Christoph Zengler and Henk Barendregt},
+  editor = {Joerg Siekmann and Dov Gabbay and John Woods},
+  year = {2104},
+  title = {Computerising Mathematical Text In Joerg Siekmann},
+  volume = {11},
+  booktitle = {Logic and Computation in the 20th century},
+  publisher = {North Holland},
+  pages = {87--140}}
+
+ at article{BucJebKut:tcansm16,
+ title = {Theorema 2.0: Computer-Assisted Natural-Style Mathematics},
+ author = {Bruno Buchberger and Tudor Jebelean and Temur Kutsia and Alexander Maletzky and Wolfgang Windsteiger},
+ year = {2016},
+ journal = {Journal of Formalized Reasoning},
+ volume = {9},
+ number = {1},
+ note = {Special Issue: Twenty Years of the QED Manifesto},
+ pages = {149--185}}
+
 @INCOLLECTION{KamMaaRetWel:nsmt07,
   author = {Fairouz Kamareddine and Manuel Maarek and Krzysztof Retel and J. B. Wells},
   title = {Narrative Structure of Mathematical Texts},
@@ -8882,7 +9082,7 @@
 @online{Miller:latexml:online,crossref={Miller:latexml:base},urldate={2013-03-12},label={LTX}}
 @Misc{Miller:latexml,crossref={Miller:latexml:base},
   howpublished = {Web Manual at \url{http://dlmf.nist.gov/LaTeXML/}},
-  note = {\seen{\September 2011}}}
+  note = {seen September 2011}}
 @Misc{Miller:latexml:base,
   author =   {Bruce Miller},
   title =    {{\texttt{LaTeXML}}: A {\LaTeX} to {XML} Converter},
@@ -9795,7 +9995,7 @@
   note = {seen January  2015}}
 @online{Jing:on,crossref={Jing:base},
   label = {Jing},
-  urldate = {2015/01/15}}
+  urldate = {2015-01-15}}
 @MISC{Jing:base,
   title = {{Jing} --- {Relax} {NG} {Validator} in {Java}},
   url = {http://www.thaiopensource.com/relaxng/jing.html}}
@@ -16797,25 +16997,12 @@
   author = {Blachman, Nancy},
   address = {Wiesbaden}}
 
- at book{blabos:rainl98,crossref={BlaBos:rainl05}}
 @book{BlaBos:rainl05,
   author =        {Blackburn, Patrick and Bos, Johan},
   title =         {Representation and Inference for Natural Language. A First Course in Computational Semantics},
-  keywords =      {lamapunbibs},
   publisher =     {CSLI},
   year =          {2005}}
 
-
-
-
-
-
-
-
-
-
-
-
 @UNPUBLISHED{bg98,
   author = {Patrick Blackburn and Claire Gardent},
   title = {A specification language for discourse},
@@ -17026,7 +17213,7 @@
   number = {854},
   month = jun}
 
- at BOOK{Bourbaki:a68,
+ at BOOK{Bourbaki:tos68,
   title = {Theory of Sets},
   publisher = {Springer Verlag},
   year = {1968},
@@ -17040,6 +17227,13 @@
   author = {Nicolas Bourbaki},
   series = {Elements of Mathematics}}
 
+ at Book{Bourbaki:gt89,
+  Title                    = {General Topology 1-4},
+  Author                   = {N. Bourbaki},
+  Publisher                = {Springer Verlag},
+  Year                     = {1989},
+  series = {Elements of Mathematics}}
+
 @MISC{Box:soap00,
   author = {Don Box and David Ehnebuske and Gopal Kakivaya and Andrew Layman
     and Noah Mendelsohn and Henrik Frystyk Nielsen and Satish Thatte
@@ -17821,11 +18015,27 @@
     title = {On a Solution of the Mutilated Checkerboard Problem using the Theorema Set Theory Prover},
     pages = {28--47},
     crossref = {CALCULEMUS01}}
- at Misc{URL:creativecommonsMetadata,
-  key = {Creative Commons Metadata},
+
+
+ at Misc{URL:creativecommonsWorldwide,crossref={creativecommonsWorldwide:base},
+  key = 	 {Creative Commons Worldwide},
+  howpublished = {\webpageat\url{http://creativecommons.org/worldwide}}}
+ at online{creativecommonsWorldwide:on,crossref={creativecommonsWorldwide:base},
+  label = {CCW},
+  urldate = {2014-11-02}}
+ at Misc{creativecommonsWorldwide:base,
+  title = 	 {{Creative Commons Worldwide}},
+  url = {http://creativecommons.org/worldwide}}
+
+ at Misc{URL:creativecommonsMetadata,crossref={creativecommonsMetadata:base},
+  key = 	 {Creative Commons Worldwide},
+  howpublished = {\webpageat\url{http://creativecommons.org/worldwide}}}
+ at online{creativecommonsMetadata:on,crossref={creativecommonsMetadata:base},
+  label = {CCM},
+  urldate = {2014-11-02}}
+ at Misc{creativecommonsMetadata:base,
   title = {{Metadata Commons Worldwide}},
- url = {http://creativecommons.org/learn/technology/metadata},
-  howpublished = {\webpageat\url{http://creativecommons.org/learn/technology/metadata}}}
+  url = {http://creativecommons.org/learn/technology/metadata}}
 
 @INPROCEEDINGS{ChiTsoZanZha:ecqsmxd02,
   author = {Shu-Yao Chien and Vassilis J. Tsotras and Carlo Zaniolo and Donghui
@@ -20572,6 +20782,15 @@
   address = {San Francisco, CA, USA},
   isbn = {0-934613-31-1}}
 
+ at article{Hilbert:udu26,
+ author = {Hilbert, David},
+ year = {1926},
+ title = {{\"U}ber das Unendliche},
+ journal = {Mathematische Annalen},
+ volume = {95},
+ pages = {161--190},
+ doi = {10.1007/BF01206605}}
+ 
 @ARTICLE{Gentzen:uudlsi35,
   author = {Gerhard Gentzen},
   title = {Untersuchungen {\"u}ber das logische {Schlie{\ss}en} {I}},
@@ -24381,7 +24600,7 @@
 @ARTICLE{Lenat:tnoh82,
   author = {Douglas B.\ Lenat},
   title = {The Nature of Heuristics},
-  journal = {AI Jounal},
+  journal = {AI Journal},
   year = {1982},
   volume = {19},
   pages = {189--249}}
@@ -24819,6 +25038,7 @@
   institution = {Library of Congress Network Development and MARC Standards Office},
   year = 2003,
   key = {MARC},
+  label = {MR},
   url = {http://www.loc.gov/marc/relators}}
 
 @online{LCSH,
@@ -28406,7 +28626,7 @@
 @ARTICLE{Russell08,
   author = {Bertrand Russell},
   title = {Mathematical Logic as based on the Theory of Types},
-  journal = {American Jounal of Mathematics},
+  journal = {American Journal of Mathematics},
   year = {1908},
   volume = {XXX},
   pages = {222--262}}
@@ -30171,12 +30391,23 @@
   venue = {Hiroshima, Japan},
   eventdate = {2004}}
 
+ at online{MetaMath:on,
+  label = {MeMa},
+  title = {Metamath Home page},
+  url = {http://us.metamath.org}}
+  
+ at online{HalAdaBau:afpkc15,
+  title =	"{A formal proof of the Kepler conjecture}",
+  author =	{Thomas Hales and Mark Adams and Gertrud Bauer and Dat Tat Dang and John Harrison and Truong Le Hoang and Cezary Kaliszyk and Victor Magron and Sean McLaughlin and Thang Tat Nguyen and Truong Quang Nguyen and Tobias Nipkow and Steven Obua and Joseph Pleso and Jason Rute and Alexey Solovyev and An Hoai Thi Ta and Trung Nam Tran and Diep Thi Trieu and Josef Urban and Ky Khac Vu and Roland Zumkeller},
+  year = 	{2015},
+  url = {http://arxiv.org/abs/1501.02155}
+}
+
 @MANUAL{CoqManual,
-  title = {The Coq Proof Assistant Reference Manual},
+  title = {The Coq Proof Assistant: Reference Manual},
   author = {Coq Development Team},
   organization = {INRIA},
-  note = {see {\url{http://coq.inria.fr/doc/main.html}}},
-  url = {http://coq.inria.fr/doc/main.html},
+  url = {https://coq.inria.fr/refman/},
   key = {COQ}}
 
 @TECHREPORT{coq-03-a,
@@ -30804,7 +31035,7 @@
   author = {Marilyn Walker and Aravind Joshi and Ellen Prince},
   address = {Oxford, England}}
 
- at BOOK{WalMue:dtdg99o,
+ at BOOK{WalMue:dtdg99,
   title = {DocBook: The Definitive Guide},
   publisher = {O'Reilly},
   year = {1999},
@@ -31979,10 +32210,14 @@
   url = {http://www.faqs.org/rfcs/rfc2046.html},
   year =	 1996}
 
- at Misc{IANA:TLD,
+ at Misc{IANA:TLD,crossref={TLD:base},
   key =		 {IANA TLD},
+  howpublished = {\url{http://www.iana.org/cctld/cctld-whois.htm}}}
+ at online{TLD:on,crossref={TLD:base},  
+  label =	 {TLD},
+  urlcate = {2014-11-02}}
+ at MISC{TLD:base,  
   title =	 {Root-Zone Whois Information},
-  howpublished = {\url{http://www.iana.org/cctld/cctld-whois.htm}},
   url = {http://www.iana.org/cctld/cctld-whois.htm},
   institution = {IANA Internet Assigned Names Association}}
 
@@ -32004,12 +32239,6 @@
   title = 	 {{\textsc{OpenMath}} Content Dictionaries},
   url = {http://www.openmath.org/cd/}}
 
- at Misc{URL:creativecommonsWorldwide,
-  key = 	 {Creative Commons Worldwide},
-  title = 	 {{Creative Commons Worldwide}},
-  howpublished = {\webpageat\url{http://creativecommons.org/worldwide}},
-  url = {http://creativecommons.org/worldwide}}
-
 @TECHREPORT{W3C:xmlschema11,crossref={W3C09:xmlschema11}}
 @TECHREPORT{W3C09:xmlschema11,
   title = {{W3C XML Schema Definition Language (XSD) 1.1 Part 1: Structures}},
@@ -32692,7 +32921,17 @@
   month = oct,
   url = {http://www.w3.org/TR/2008/NOTE-xhtml-rdfa-primer-20081014/}}
 
- at TECHREPORT{w3c:rdfa-core,crossref={w3c:REC-rdfa-core-20120607}}
+ at TECHREPORT{w3c:rdfa-core,crossref={w3c:REC-rdfa-core-20150317}}
+ at TECHREPORT{w3c:REC-rdfa-core-20150317,
+  title = {{RDFa} Core 1.1},
+  subtitle = {Syntax and processing rules for embedding RDF through attributes},
+  institution = {World Wide Web Consortium ({W3C})},
+  date = {2015-03-17},
+  edition = 3,
+  type = {{W3C} {Recommendation}},
+  author = {Ben Adida and Mark Birbeck and Shane McCarron and Ivan Herman},
+  url = {http://www.w3.org/TR/2012/REC-rdfa-core-20150317}}
+
 @TECHREPORT{w3c:REC-rdfa-core-20120607,
   title = {{RDFa} Core 1.1},
   subtitle = {Syntax and processing rules for embedding RDF through attributes},
@@ -33358,7 +33597,7 @@
 @online{Patashnik:b88,
   author = {Oren Patashnik},
   title = {bib{\TeX}ing},
-  url = {http://www.ctan.org/get/biblio/bibtex/contrib/doc/btxdoc.pdf},
+  url = {http://mirrors.ctan.org/biblio/bibtex/base/btxdoc.pdf},
   urldate = {2009-12-14}}
 
 @MISC{MKM-IG-Meetings:web,
@@ -33400,7 +33639,6 @@
   crossref = {CADE94},
   pages = {238--251},
   url = {http://www.cs.chalmers.se/Cs/Research/Logic/TypesSS05/Extra/wiedijk_2.pdf},
-  year = {1995},
   key = {QED95}}
 
 @MISC{QEDManifesto95,
@@ -33487,7 +33725,7 @@
   author =   {Wolfgang May and Andreas Schedler},
   title =    {An Extension of the LATEX-Theorem Evironment},
   type =     {Self-documenting {\LaTeX} package},
-  url = {http://dante.ctan.org/tex-archive/macros/latex/contrib/ntheorem/ntheorem.pdf},
+  url = {http://ctan.org/pkg/ntheorem},
   urldate = {2010-01-11}}
 
 @misc{Heldoorn:siunits07,
@@ -33494,7 +33732,7 @@
   author =   {Marcel Heldoorn},
   title =    {The SIunits package: Consistent application of SI units},
   type =     {Self-documenting {\LaTeX} package},
-  url = {http://mirror.ctan.org/macros/latex/contrib/SIunits/SIunits.pdf},
+  url = {http://ctan.org/pkg/siunits},
   urldate = {2011-03-13}}
 
 
@@ -33959,9 +34197,11 @@
   publisher = 	 {London: Lawrence Erlbaum Associates},
   year = 	 2006,
   pages = 	 {43--57}}
+
 @misc{posix,
  title = "{IEEE POSIX}",
  key = "POSIX",
+ label = "PO88",
  year = "1988",
  note = "ISO/IEC 9945"}
 
@@ -37235,12 +37475,12 @@
 
 @TechReport{ctan/macros/latex/contrib/listings:oldfashioned,
   crossref = {ctan/macros/latex/contrib/listings:base},
-  note = {\url{http://www.ctan.org/tex-archive/macros/latex/contrib/listings}},
+  note = {\url{http://ctan.org/listings}},
 }
 
 @TechReport{ctan/macros/latex/contrib/listings:biblatex,
   crossref = {ctan/macros/latex/contrib/listings:base},
-  url = {http://www.ctan.org/tex-archive/macros/latex/contrib/listings}}
+  url = {http://ctan.org/pkg/listings}}
 
 @TechReport{ctan/macros/latex/contrib/listings:base,
   key = {ctan/macros/latex/contrib/listings},
@@ -38428,6 +38668,21 @@
   pubs = {projects/krextor},
 }
 
+ at book{DauLynCar:dcglmr14,
+  title = {Developing a 21st Century Global Library for Mathematics Research},
+  author = {Ingrid Daubechies and Clifford A. Lynch and Kathleen M. Carley and
+            Timothy W. Cole and Judith L. Klavans and Yann LeCun and
+	    Michael Lesk and Peter Olver and Jim Pitman and Zhihong Xia},
+  url = {http://www.nap.edu/catalog/18619/developing-a-21st-century-global-library-for-mathematics-research},
+  publisher = {THE NATIONAL ACADEMIES PRESS},
+  year = {2014},
+  isbn = {978-0-309-29848-3}}
+  
+ at online{webofscience:on,
+  label = {ISI},
+  url = {webofscience.com},
+  title = {Web of Science}}
+  
 @InProceedings{TRTBN:OpenStreetMapWebOfData11,
   author =       {Johannes Trame and Philippe Rieffel and Umut Tas and Alkyoni Baglatzi and Volker von Nathusius},
   title =        {{LOSM} -- A lightweight approach to integrate {OpenStreetMap} into the Web of Data},

Modified: trunk/Master/texmf-dist/source/latex/stex/lib/bib/kwarccrossrefs.bib
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/lib/bib/kwarccrossrefs.bib	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/lib/bib/kwarccrossrefs.bib	2019-03-20 22:31:24 UTC (rev 50489)
@@ -1,5 +1,9 @@
 @STRING{krcmessage = "READ the README please!!!!!!!!!!!!!!"}
 
+ at proceedings{CICM16,
+ year = {2016},
+ note = {Submitted to CICM2016}}
+ 
 @proceedings{CICM13,
   editor = {Jacques Carette and David Aspinall and Christoph Lange and Petr Sojka and Wolfgang Windsteiger},
   venue = {Bath, UK},

Modified: trunk/Master/texmf-dist/source/latex/stex/lib/bib/kwarcpubs.bib
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/lib/bib/kwarcpubs.bib	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/lib/bib/kwarcpubs.bib	2019-03-20 22:31:24 UTC (rev 50489)
@@ -1,6 +1,87 @@
 @string{kpmessage = "READ the README please!!!!!!!!!!!!!!"}
- at STRING{stexyear = 2015}
+ at STRING{stexyear = 2016}
 
+ at unpublished{IMKT-charter,
+  label = {IMKT},
+  url = {http://mathontheweb.org/gdml/IMKT-Charter-final.pdf},
+  title = {International Mathematical Knowledge Trust Charter},
+  year = {2016},
+  author = {The Global Digital Mathematics Library Working Group},
+  pubs = {mkohlhase}}
+  
+
+ at unpublished{DehKohKon:iop16,
+  title = {Interoperability in the {OpenDreamKit} Project: The Math-in-the-Middle Approach},
+  author = {Paul-Olivier Dehaye and Michael Kohlhase and Alexander Konovalov and Samuel Leli{\`e}vre and Markus Pfeiffer and Nicolas M. Thi{\'e}ry},
+  url = {https://github.com/OpenDreamKit/OpenDreamKit/blob/master/WP6/CICM2016/submission.pdf},
+  pubs = {mkohlhase},
+  crossref = {CICM16}}
+
+ at unpublished{IanKohRab:upmsm16,
+  title = {Understanding the Pragmatics of Module Systems for Mathematics},
+  author = {Mihnea Iancu and Michael Kohlhase and  Florian Rabe},
+  pubs = {mkohlhase,miancu,frabe},
+  url = {http://kwarc.info/kohlhase/submit/structural-extensions16.pdf},
+  crossref = {CICM16}}
+
+ at unpublished{KalKohMue:samc16,
+  title = {A Standard for Aligning Mathematical Concepts},
+  author = {Cezary Kaliszyk and Michael Kohlhase and Dennis M{\"u}ller and Florian Rabe},
+  url = {http://kwarc.info/kohlhase/submit/alignments16.pdf},
+  pubs = {mkohlhase,dmueller,frabe},
+  crossref = {CICM16}}
+
+ at unpublished{IanKohRab:mslo16,
+  title = {Mixing Surface Languages for OMDoc},
+  author = {Mihnea Iancu and  Michael Kohlhase and Florian Rabe and Hang Yuan},
+  url = {http://kwarc.info/kohlhase/submit/alignments16.pdf},
+  pubs = {mkohlhase,miancu,frabe},
+  crossref = {CICM16}}
+
+
+ at online{MMTsurface:on,
+ label = {MMT},
+ title = {The MMT Surface Syntax},
+ author = {Florian Rabe},
+ url = {https://svn.kwarc.info/repos/MMT/doc/html/index.html#syntax/text.html},
+ urldate = {2016-03-19}}
+ 
+ at inproceedings{HamKoh:fsfm15,
+  author = {Radu Hambasan and Michael Kohlhase},
+  title = {Faceted Search for Mathematics},
+  crossref = {LWA15},
+  url = {http://ceur-ws.org/Vol-1458/D05_CRC1_Hambasan.pdf},
+  pages = {33--44},
+  pubs = {mkohlhase}}
+
+ at unpublished{KohKoh:faetd12,
+  title = {Frames: Active Examples for Technical Documents},
+  author = {Andrea Kohlhase and Michael Kohlhase},
+  url = {http://kwarc.info/kohlhase/submit/activeex-2012.pdf},
+  year  = {2012}}
+  
+ at inproceedings{GinLalKoh:katsd15,
+  author = {Deyan Ginev and Sourabh Lal and Michael Kohlhase and Tom Wiesing},
+  title = {KAT: an Annotation Tool for STEM Documents},
+  crossref = {MathUI15},
+  url = {http://www.cermat.org/events/MathUI/15/proceedings/Lal-Kohlhase-Ginev_KAT_annotations_MathUI_15.pdf},
+  pubs = {mkohlhase,dginev,twiesing}}
+
+ at inproceedings{PenKoh:rpscsmc15,
+  author = {Naomi Pentrel and Michael Kohlhase},
+  title = {Relational Presentations Using Semantic Closeness Spatial Narrative for Mathematical Content},
+  crossref = {MathUI15},
+  url = {http://www.cermat.org/events/MathUI/15/proceedings/Pentrel-Kohlhase_Semantic_Closness-MathUI_15.pdf},
+  pubs = {mkohlhase}}
+
+ at inproceedings{LuzIanKoh:iolo15,
+  author = {Enxhell Luzhnica and Mihnea Iancu and Michael Kohlhase},
+  title = {Importing the {OEIS} Library into {OMDoc}},
+  crossref = {LWA15},
+  url = {http://ceur-ws.org/Vol-1458/F13_CRC73_Luzhnica.pdf},
+  pages = {296--303},
+  pubs = {miancu,mkohlhase}}
+
 @inproceedings{ToaKohKoh:sfs15,
   title = {Assessment for Spreadsheets},
   author = {Alexandru Toader and Michael Kohlhase and  Andrea Kohlhase},
@@ -18,6 +99,7 @@
   title = {A Flexiformal Model of Knowledge Dissemination and Aggregation in Mathematics},
   author = {Mihnea Iancu and Michael Kohlhase},
   crossref = {CICM15},
+  pages = {137--152},  
   url = {http://kwarc.info/kohlhase/papers/cicm15-recaps.pdf},
   pubs = {mkohlhase,miancu}}
 
@@ -25,6 +107,7 @@
   title = {Math Literate Knowledge Management via Induced Material},
   author = {Mihnea Iancu and Michael Kohlhase},
   crossref = {CICM15},
+  pages = {187--202},
   url = {http://kwarc.info/kohlhase/papers/cicm15-induced.pdf},
   pubs = {mkohlhase,miancu}}
 
@@ -59,16 +142,15 @@
   pubs = {mkohlhase,cjucovschi}}
 
 @MISC{flatsearch-demo,crossref={flatsearch-demo:base},
- key={FS},
- howpublished     = {\url{http://cds.omdoc.org:8181/search.html}}}
+   key={FS},
+   howpublished     = {\url{http://cds.omdoc.org:8181/search.html}}}
 @online{flatsearch-demo:on,crossref={flatsearch-demo:base},
-label={FS},
-urldate={2015-04-23}}
+   label={FS},
+   urldate={2015-04-23}}
 @MISC{flatsearch-demo:base,
- title    = {FlatSearch Demo},
- url= {http://cds.omdoc.org:8181/search.html}}
+   title    = {FlatSearch Demo},
+   url= {http://cds.omdoc.org:8181/search.html}}
 
-
 @inproceedings{IanKohProd:rassmk14,
   author    = {Mihnea Iancu and
                Michael Kohlhase and
@@ -118,6 +200,8 @@
   crossref = {CICM-WS-WiP2014},
   pubs = {mkohlhase}}
 
+
+ at inproceedings{Kohlhase:MathGenerationGap:2014,crossref={Kohlhase:mwsiggm14}}
 @inproceedings{Kohlhase:mwsiggm14,
   author    = {Andrea Kohlhase},
   title     = {Math Web Search Interfaces and the Generation Gap of Mathematicians},
@@ -137,11 +221,16 @@
 
 @online{MathHub:law:on,
   label = {LMH},
-  title = {Local Editing Workflows},
-  url = {http://mathhub.info/help/lmh-workflows},
-  urldate = {2014-04-14},
-  pubs = {dginev,project/llamapun}}
+  title = {MathHub Offline Authoring},
+  url = {http://mathhub.info/help/offline-authoring.html},
+  urldate = {2016-04-07}}
 
+ at online{MathHub:oa:on,
+  label = {MH},
+  title = {MathHub Online Authoring},
+  url = {http://mathhub.info/help/online-authoring.html},
+  urldate = {2016-04-07}}
+
 % better use the journal article: KohRab:som12
 @InProceedings{KohRab:som09,
   title = "Semantics of {OpenMath} and {MathML3}",
@@ -168,7 +257,7 @@
   journal = {Sprache und Datenverarbeitung, International Journal for
                   Language Data Processing},
   note = {Special Issue ``The language of mathematics -- computational, linguistic and logical aspects''; in press},
-  year = {2015},
+  year = {2016},
   pubs = {mkohlhase,miancu}}
 
 @misc{CKLR:SoundCombVickCode13,
@@ -232,7 +321,6 @@
 @unpublished{KohGinMer:fspmco13,
  title = {A Framework for Semantic Publishing of Modular Content Objects},
  author = {Michael Kohlhase and Deyan Ginev and Vlad Merticariu},
- crossref = {CICM13},
  url = {http://kwarc.info/kohlhase/papers/cicm13-sepcomp.pdf}, 
  pubs = {mkohlhase,projects/latin,frabe,projects/omdoc}}
 
@@ -306,8 +394,12 @@
   editor = {Christoph Benzm{\"u}ller and Jens Otten},
   booktitle = {Automated Reasoning in Quantified Non-Classical Logics (ARQNL)},
   venue = {Vienna, Austria},
+  publisher    = {EasyChair},
+  series    = {EasyChair Proceedings in Computing},
+  number    = {33},
+  pages     = {42--58},
   eventdate = {2014-07-23},
-  url = {http://www.iltp.de/ARQNL-2014/download/arqnl2014_paper5.pdf},
+  url = {http://easychair.org/publications/paper/Proof_Support_for_Common_Logic},
   pubs = {clange}}
 
 @online{HundredTheoremsEconomics,
@@ -322,11 +414,11 @@
 
 @online{AuctionTheoryToolbox,
   title = {Auction Theory Toolbox},
-  author = {Christoph Lange and Colin Rowat and Manfred Kerber and Makarius Wenzel and Marco Caminati and Till Mossakowski and Wolfgang Windsteiger},
+  author = {Christoph Lange and Colin Rowat and Manfred Kerber and Makarius Wenzel and Marco B. Caminati and Till Mossakowski and Wolfgang Windsteiger},
   url = {http://cs.bham.ac.uk/research/projects/formare/code/auction-theory/},
-  urldate =      {2013-01-13},
-  date =      {2013-01-13},
-  year = 2013,
+  urldate =      {2015-12-27},
+  date =      {2015-07-02},
+  year = 2015,
   pubs = {clange,projects/formare},
   keywords = {formalization}}
 
@@ -639,25 +731,33 @@
   url = {http://ntcir-math.nii.ac.jp/},
   urldate =      {2012-05-18}}
 
- at online{NTCIR11-Math2:on,crossref={NTCIR-Math:on}}
- at online{NTCIR-Math:on,
+ at online{NTCIR11-Math2:on,
   label={NTM},
   title = {{NTCIR}-11 Task: Math2},
   url = {http://ntcir-math.nii.ac.jp/},
   urldate =      {2014-02-18}}
 
+ at online{NTCIR12-MathIR:on,
+  label={NTM},
+  title = {{NTCIR}-12 MathIR},
+  url = {http://ntcir-math.nii.ac.jp/},
+  urldate =      {2015-12-18}}
 
+
 @online{CICM,
   title = {Conference on Intelligent Computer Mathematics ({CICM})},
   url = {http://cicm-conference.org},
   urldate =      {2012-03-18}}
 
- at unpublished{KohRab:qrtpflmk15,
- title = {QED Reloaded: Towards a Pluralistic Formal Library of Mathematical Knowledge},
+ at article{KohRab:qrtpflmk15,
+ title = {{QED} Reloaded: Towards a Pluralistic Formal Library of Mathematical Knowledge},
  author = {Michael Kohlhase and Florian Rabe},
- year = {2015},
- url = {http://kwarc.info/kohlhase/submit/qed20.pdf},
- note  = {submitted},
+ year = {2016},
+ journal = {Journal of Formalized Reasoning},
+ volume = {9},
+ number = {1},
+ pages = {201--234},
+ url = {http://jfr.unibo.it/article/download/4570/5733},
  pubs = {mkohlhase,frabe,projects/oaf}}
 
 @inproceedings{KohIan:ssmk12,
@@ -670,6 +770,7 @@
   pubs={mkohlhase,miancu,projects/mws}}
 
 @online{MIR-happening,
+  label = {MIRH},
   title = {Math {IR} Happening at {MIR} 2012},
   url = {http://cicm2012.cicm-conference.org/cicm.php?event=mir&menu=happening},
   urldate =      {2012-03-18}}
@@ -856,14 +957,21 @@
   author = 	 {Michael Kohlhase},
   title = 	 {Flexible Symbol Grounding in OMDoc},
   note = 	 {KWARC Blue Note},
-  url = {https://svn.omdoc.org/repos/omdoc/doc/blue/grounding/note.pdf},
+  url = {http://gl.kwarc.info/omdoc/blue/raw/master/grounding/note.pdf},
   year = 	 2013}
 
+ at Unpublished{Kohlhase:rdrtg14,
+  author = 	 {Michael Kohlhase},
+  title = 	 {The Role of Discourse Referents in Theory Graphs},
+  note = 	 {KWARC Blue Note},
+  url = {http://gl.kwarc.info/omdoc/blue/raw/master/drt-graph/note.pdf},
+  year = 	 2014}
+
 @Unpublished{Kohlhase:osslepsdl13,
   author = 	 {Michael Kohlhase},
   title = {Organizing Symbols between Slides, Lecture Notes, Encyclopedias, and Original Papers in Semantic Digital Libraries},
   note = 	 {KWARC Blue Note},
-  url = {https://svn.omdoc.org/repos/omdoc/doc/blue/slides-notes/note.pdf},
+  url = {http://gl.kwarc.info/omdoc/blue/raw/master/slides-notes/note.pdf},
   year = 	 2013}
 
 @InProceedings{Kohlhase:tffm13,
@@ -878,7 +986,7 @@
   author = 	 {Michael Kohlhase},
   title = 	 {A Document Ontology for  {OMDoc2}}, 
   note = 	 {KWARC Blue Note},
-  url = {https://svn.omdoc.org/repos/omdoc/doc/blue/ontology/note.pdf},
+  url = {http://gl.kwarc.info/omdoc/blue/raw/master/ontology/note.pdf},
   year = 	 2013}
 
 @Unpublished{KohIan:hlpmo13,
@@ -885,7 +993,7 @@
   author = 	 {Michael Kohlhase and Mihnea Iancu},
   title = 	 {Higher-Level Parallel Markup in {OMDoc}},
   note = 	 {KWARC Blue Note},
-  url = {https://svn.omdoc.org/repos/omdoc/doc/blue/parallel/note.pdf},
+  url = {http://gl.kwarc.info/omdoc/blue/raw/master/parallel/note.pdf},
   year = 	 2013}
 
 @Unpublished{LigKoh:comesf13,
@@ -899,7 +1007,7 @@
   author = 	 {Michael Kohlhase},
   title = 	 {The {OMDoc2} Language Design},
   note = 	 {KWARC Blue Note},
-  url = {https://svn.omdoc.org/repos/omdoc/doc/blue/design/note.pdf},
+  url = {http://gl.kwarc.info/omdoc/blue/raw/master/design/note.pdf},
   year = 	 2013}
 
 @Unpublished{Kohlhase:eco13,
@@ -906,7 +1014,7 @@
   author = 	 {Michael Kohlhase},
   title = 	 {Examples and Counterexamples in {OMDoc}},
   note = 	 {KWARC blue note},
-  url = {https://svn.omdoc.org/repos/omdoc/trunk/doc/blue/examples/note.pdf},
+  url = {http://gl.kwarc.info/omdoc/blue/raw/master/example/note.pdf},
   year = 	 2013}
 
 % use the CICM paper CarFarKoh:rsckmt14 instead. 
@@ -914,7 +1022,6 @@
   author = 	 {Jacues Carette and William Farmer and Michael Kohlhase},
   title = 	 {TetraPod Realms},
   note = 	 {TetraPod Blue Note},
-  url = {https://svn.mathweb.org/repos/tetrapod/doc/blue/realms/note.pdf},
   year = 	 2013}
 
 @inproceedings{LKDGKMMZ:PlanetaryExecutableSTEM11,
@@ -1470,12 +1577,13 @@
 @misc{MMT:base,
   author = {Florian Rabe},
   title = {The {MMT} Language and System},
-  url = {https://svn.kwarc.info/repos/MMT},
+  url = {https://svn.kwarc.info/repos/MMT/doc/html},
   urldate = {2011-10-11},
   pubs = {frabe}}
 
 @inproceedings{Rabe:MAGMS13,
   author = "Florian Rabe",
+  
   title = "{The MMT API: A Generic MKM System}",
   crossref = {CICM13},
   pages={339--343},
@@ -2140,7 +2248,8 @@
   label = {Krextor},
   crossref = {krextor:base},
   keywords = {software},
-  urldate = {2010-12-06},
+  urldate =      {2015-12-26},
+  date = {2013-01-16},
   pubs = {clange,projects/docOnto}}
 
 @inproceedings{LangeEtAl:ArgumentationSWiM08,
@@ -2551,7 +2660,8 @@
 
 @online{SWiM:on,
   crossref={SWiM:base},
-  urldate =      {2010-12-06},
+  urldate =      {2015-12-27},
+  date =      {2010-09-08},
   keywords = {software},
   pubs = {clange},
 }
@@ -2559,9 +2669,9 @@
 @MISC{URL:SWiM,
   crossref={SWiM:base},
   key = {SWiM},
-  howpublished = {\webpageat\url{http://kwarc.info/projects/swim/}},
+  howpublished = {\webpageat\url{http://old.kwarc.info/projects/swim/}},
   note = {seen October  2008}}
-
+ 
 @MISC{URL:SWiM:SHORT,
   crossref={SWiM:base},
   key = {SWiM},
@@ -2570,7 +2680,7 @@
 @misc{SWiM:base,
   title = {{\sc{SWiM}}: A Semantic Wiki for Mathematical Knowledge Management},
   author = {Christoph Lange},
-  url = {http://kwarc.info/projects/swim/},
+  url = {http://old.kwarc.info/projects/swim/},
 }
 
 @MISC{URL:sTeX:github,crossref={sTeX:github:base},
@@ -2582,17 +2692,35 @@
   urldate = {2015-05-15}}
 @misc{sTeX:github:base,
   title = {{KWARC/sTeX}},
-  url = {https://svn.kwarc.info/repos/stex}}
+  url = {https://github.com/KWARC/sTeX}}
 
+ at MISC{URL:lmh:github,crossref={lmh:github:base},
+  key = {lmh},
+  howpublished = {GitHub repository at \url{https://github.com/KWARC/lmh}},
+  note = {accessed 15. 5. 2015}}
+ at online{lmh:github:on,crossref={lmh:github:base},
+  label = {lmh},
+  urldate = {2015-05-15}}
+ at misc{lmh:github:base,
+  title = {{KWARC/lmh}},
+  url = {https://github.com/KWARC/lmh}}
+
 @MISC{URL:LaTeX2Office:github,
   key = {L2O},
-  howpublished = {GitHub repository at \url{https://github.com/KWARC/LaTeXML-Plugin-Doc}},
-  url = {https://svn.kwarc.info/repos/stex}}
+  howpublished = {GitHub repository at \url{https://github.com/KWARC/LaTeXML-Plugin-Doc}}}
 @online{LaTeX2Office:github:on,
   label = {L2O},
   note = {GitHub repository},
   url = {https://github.com/KWARC/LaTeXML-Plugin-Doc}}
 
+ at MISC{URL:LaTeXMLsTeX:github,
+  key = {L2O},
+  howpublished = {GitHub repository at \url{https://github.com/KWARC/LaTeXML-Plugin-sTeX}}}
+ at online{LaTeXMLsTeX:github:on,
+  label = {L2O},
+  note = {GitHub repository},
+  url = {https://github.com/KWARC/LaTeXML-Plugin-sTeX}}
+
 @online{sTeX-mode:on,
   urldate = {2009-11-10},
   crossref={sTeX-mode:base}}
@@ -3474,7 +3602,7 @@
   crossref = {OMDocDocOnto:base}}
 
 @misc{OMDocDocOnto:web,
-  howpublished = {\webpageat\url{http://kwarc.info/projects/docOnto/omdoc.html}},
+  howpublished = {\webpageat\url{http://old.kwarc.info/projects/docOnto/omdoc.html}},
   note = {seen 2/2012},
   crossref = {OMDocDocOnto:base}}
 
@@ -3481,7 +3609,7 @@
 @misc{OMDocDocOnto:base,
   author = {Christoph Lange},
   title = {The {OMDoc} Ontology},
-  url = {http://kwarc.info/projects/docOnto/omdoc.html}}
+  url = {http://old.kwarc.info/projects/docOnto/omdoc.html}}
 
 @MISC{KWARC:web,
   key = {{KWARC}},
@@ -4263,6 +4391,14 @@
   crossref = {UITP98},
 pubs = {mkohlhase}}
 
+ at inproceedings{Rabe:LII14,
+  author = "Florian Rabe",
+  title = "{A Logic-Independent {IDE}}",
+  pages = "48--60",
+  url = {https://kwarc.info/people/frabe/Research/rabe_ui_14.pdf},
+  crossref = {UITP14},
+  pubs = {frabe}}
+
 @MISC{CPoint:Web,
   author = {Andrea Kohlhase},
   title = {CPoint},
@@ -4987,9 +5123,18 @@
   author = {Florian Rabe and Michael Kohlhase},
   title = {An {XML}-based Syntax for {MMT}},
   url = {https://svn.kwarc.info/repos/frabe/Papers/omdoc-spec/xmlsyntax/report.pdf},
-  year=2012,
+  year = 2012,
   pubs = {mkohlhase,frabe,projects/omdoc}}
 
+ at online{ODKproposal:on,
+  label = {ODK},
+  url = {https://github.com/OpenDreamKit/OpenDreamKit/raw/master/Proposal/proposal-www.pdf},
+  title = {Open Digital Research Environment Toolkit for the Advancement of Mathematics}, 
+  urldate = {2015-09-01},
+  type = {Project Proposal},
+  pubs = {mkohlhase}}
+
+
 @Unpublished{Rabe:ttbor12,
   author = {Florian Rabe},
   title = {A Type Theory Based on Reflection},
@@ -5167,7 +5312,7 @@
   title = {Using {\LaTeX} as a Semantic Markup Format},
   journal = {Mathematics in Computer Science},
   publisher = {Birkh{\"a}user},
-  url = {https://svn.kwarc.info/repos/stex/doc/mcs08/stex.pdf},
+  url = {https://kwarc.info/kohlhase/papers/mcs08-stex.pdf},
   year = {2008},
   volume = {2},
   number = {2},
@@ -5453,10 +5598,10 @@
 
 @techreport{Kohlhase:pplp:ctan,crossref={Kohlhase:pplp:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url = {http://www.ctan.org/get/macros/latex/contrib/proposal/base/proposal.pdf}, 
+  url = {http://mirror.ctan.org/macros/latex/contrib/proposal/base/proposal.pdf}, 
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:pplp:svn,crossref={Kohlhase:pplp:base},
-  url = {https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/base/proposal.pdf}}
+  url = {http://github.com/KWARC/LaTeX-proposal/base/proposal.pdf}}
 @techreport{Kohlhase:pplp:base,
   author = {Michael Kohlhase},
   title = {Preparing Proposals in {\LaTeX} with {\tt{proposal.cls}}},
@@ -5465,10 +5610,10 @@
 
 @techreport{Kohlhase:pdrp:ctan,crossref={Kohlhase:pdrp:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url = {http://www.ctan.org/get/macros/latex/contrib/proposal/dfg/dfgproposal.pdf}, 
+  url = {http://mirror.ctan.org/macros/latex/contrib/proposal/dfg/dfgproposal.pdf}, 
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:pdrp:svn,crossref={Kohlhase:pdrp:base},
-  url = {https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/dfgproposal.pdf}}
+  url = {http://github.com/KWARC/LaTeX-proposal/dfg/dfgproposal.pdf}}
 @techreport{Kohlhase:pdrp:base,
   author = {Michael Kohlhase},
   title = {Preparing DFG Proposals and Reports in {\LaTeX} with {\texttt{dfgproposal.cls}}},
@@ -5477,10 +5622,10 @@
 
 @techreport{Kohlhase:pfepr:ctan,crossref={Kohlhase:pfepr:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url = {http://www.ctan.org/get/macros/latex/contrib/proposal/eu/euproposal.pdf}, 
+  url = {http://mirror.ctan.org/macros/latex/contrib/proposal/eu/euproposal.pdf}, 
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:pfepr:svn,crossref={Kohlhase:pfepr:base},
-  url = {https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/euproposal.pdf}}
+  url = {http://github.com/KWARC/LaTeX-proposal/eu/euproposal.pdf}}
 @techreport{Kohlhase:pfepr:base,
   author = {Michael Kohlhase},
   title = {Preparing FP7 EU Proposals and Reports in {\LaTeX} with {\texttt{euproposal.cls}}}, 
@@ -5528,7 +5673,7 @@
 @techreport{Kohlhase:ipsmsl:ctan,crossref={Kohlhase:ipsmsl:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
   pubs = {mkohlhase,dginev,projects/stex},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/presentation/presentation.pdf}}
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/presentation/presentation.pdf}}
 @techreport{Kohlhase:ipsmsl:svn,crossref={Kohlhase:ipsmsl:base},
   url = {https://github.com/KWARC/sTeX/raw/master/sty/presentation/presentation.pdf}}
 @techreport{Kohlhase:ipsmsl:base,
@@ -5537,9 +5682,24 @@
   type =     {Self-documenting {\LaTeX} package},
   year = stexyear}
 
+ at techreport{Kohlhase:cmath:ctan,crossref={Kohlhase:cmath:base},
+  institution = {Comprehensive {\TeX} Archive Network (CTAN)},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/cmath/cmath.pdf},
+  pubs = {mkohlhase,projects/stex}}
+ at techreport{Kohlhase:cmath:svn,crossref={Kohlhase:cmath:base},
+  url =   {https://github.com/KWARC/sTeX/raw/master/sty/cmath/cmath.pdf}}
+ at techreport{Kohlhase:cmath:base,
+  author =   {Michael Kohlhase},
+  title =    {{\texttt{cmath.sty}}: An Infrastructure for building Inline Content Math in
+ {sTeX}},
+  type =     {Self-documenting {\LaTeX} package},
+  year = stexyear,
+  url = {https://github.com/KWARC/sTeX/raw/master/sty/cmath/cmath.pdf}}
+
+
 @techreport{Kohlhase:smp:ctan,crossref={Kohlhase:smp:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/sproof/sproof.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/sproof/sproof.pdf},
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:smp:svn,crossref={Kohlhase:smp:base},
   url =   {https://github.com/KWARC/sTeX/raw/master/sty/sproof/sproof.pdf}}
@@ -5550,9 +5710,22 @@
   year = stexyear,
   url = {https://github.com/KWARC/sTeX/raw/master/sty/sproof/sproof.pdf}}
 
+ at techreport{Kohlhase:mikoslides:ctan,crossref={Kohlhase:mikoslides:base},
+  institution = {Comprehensive {\TeX} Archive Network (CTAN)},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/mikoslides/mikoslides.pdf},
+  pubs = {mkohlhase,projects/stex}}
+ at techreport{Kohlhase:mikoslides:svn,crossref={Kohlhase:mikoslides:base},
+  url =   {https://github.com/KWARC/sTeX/raw/master/sty/mikoslides/mikoslides.pdf}}
+ at techreport{Kohlhase:mikoslides:base,
+  author =   {Michael Kohlhase},
+  title =    {Slides and Course Notes},
+  type =     {Self-documenting {\LaTeX} package},
+  year = stexyear,
+  url = {https://github.com/KWARC/sTeX/raw/master/sty/mikoslides/mikoslides.pdf}}
+
 @techreport{Kohlhase:reqdoc:ctan,crossref={Kohlhase:reqdoc:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/reqdoc/reqdoc.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/reqdoc/reqdoc.pdf},
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:reqdoc:svn,
   url = {https://github.com/KWARC/sTeX/raw/master/sty/reqdoc/reqdoc.pdf}}
@@ -5564,7 +5737,7 @@
 
 @techreport{Kohlhase:physml:ctan,crossref={Kohlhase:physml:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/physml/physml.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/physml/physml.pdf},
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:physml:svn,crossref={Kohlhase:physml:base},
   url = {https://github.com/KWARC/sTeX/raw/master/sty/physml/physml.pdf}}
@@ -5576,7 +5749,7 @@
 
 @techreport{Kohlhase:dcm:ctan,crossref={Kohlhase:dcm:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/dcm/dcm.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/dcm/dcm.pdf},
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:dcm:svn,crossref={Kohlhase:dcm:base},
   url =   {https://github.com/KWARC/sTeX/raw/master/sty/stex/dcm/dcm.pdf}}
@@ -5588,7 +5761,7 @@
 
 @techreport{Kohlhase:workaddress:ctan,crossref={Kohlhase:workaddress:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/workaddress/workaddress.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/workaddress/workaddress.pdf},
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:workaddress:svn,crossref={Kohlhase:workaddress:base},
   url =   {https://github.com/KWARC/sTeX/raw/master/sty/stex/workaddress/workaddress.pdf}}
@@ -5599,16 +5772,16 @@
   year = stexyear}
 
 
- at techreport{Kohlhase:assignment:ctan,crossref={Kohlhase:assignment:base},
+ at techreport{Kohlhase:hwexam:ctan,crossref={Kohlhase:hwexam:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/assignment/assignment.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/hwexam/hwexam.pdf},
   pubs = {mkohlhase,projects/stex}}
- at misc{Kohlhase:assignment*,crossref={Kohlhase:assignment:base},
-  url = {https://github.com/KWARC/sTeX/raw/master/sty/assignment/assignment.pdf}}
- at techreport{Kohlhase:assignment:base,
+ at misc{Kohlhase:hwexam*,crossref={Kohlhase:hwexam:base},
+  url = {https://github.com/KWARC/sTeX/raw/master/sty/hwexam/hwexam.pdf}}
+ at techreport{Kohlhase:hwexam:base,
   author =   {Michael Kohlhase},
-  title =    {\texttt{assignment.sty/cls}: An Infrastructure for formatting Assignments
-                  and Exams},
+  title =    {\texttt{hwexam.sty/cls}: An Infrastructure for formatting Assignments and
+                  Exams},
   type =     {Self-documenting {\LaTeX} package},
   year = stexyear}
 
@@ -5615,7 +5788,7 @@
 
 @techreport{Kohlhase:problem:ctan,crossref={Kohlhase:problem:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/problem/problem.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/problem/problem.pdf},
   pubs = {mkohlhase,projects/stex}}
 @misc{Kohlhase:problem*,crossref={Kohlhase:problem:base},
   url = {https://github.com/KWARC/sTeX/raw/master/sty/problem/problem.pdf}}
@@ -5628,7 +5801,7 @@
 
 @techreport{Kohlhase:sref:ctan,crossref={Kohlhase:sref:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/sref/sref.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/sref/sref.pdf},
   pubs = {mkohlhase,projects/stex}}
 @misc{Kohlhase:sref*,crossref={Kohlhase:sref:base},
   url = {https://github.com/KWARC/sTeX/raw/master/sty/sref/sref.pdf}}
@@ -5641,7 +5814,7 @@
 
 @techreport{Kohlhase:metakeys:ctan,crossref={Kohlhase:metakeys:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/metakeys/metakeys.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/metakeys/metakeys.pdf},
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:metakeys:svn,crossref={Kohlhase:metakeys:base},
   url = {https://github.com/KWARC/sTeX/raw/master/sty/metakeys/metakeys.pdf}}
@@ -5654,7 +5827,7 @@
 
 @techreport{Kohlhase:rdfmeta:ctan,crossref = {Kohlhase:rdfmeta:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/rdfmeta/rdfmeta.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/rdfmeta/rdfmeta.pdf},
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:rdfmeta:svn,crossref = {Kohlhase:rdfmeta:base},
   url = {https://github.com/KWARC/sTeX/raw/master/sty/rdfmeta/rdfmeta.pdf}}
@@ -5666,7 +5839,7 @@
 
 @techreport{Kohlhase:owl2onto:ctan,crossref = {Kohlhase:owl2onto:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/owl2onto/owl2onto.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/owl2onto/owl2onto.pdf},
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:owl2onto:svn,crossref = {Kohlhase:owl2onto:base},
   url = {https://github.com/KWARC/sTeX/raw/master/sty/owl2onto/owl2onto.pdf}}
@@ -5679,7 +5852,7 @@
 
 @techreport{Kohlhase:smms:ctan,crossref={Kohlhase:smms:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/statements/statements.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/statements/statements.pdf},
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:smms:svn,crossref={Kohlhase:smms:base},
   url = {https://github.com/KWARC/sTeX/raw/master/sty/statements/statements.pdf}}
@@ -5691,7 +5864,7 @@
 
 @techreport{Kohlhase:tbscml:ctan,crossref={Kohlhase:tbscml:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/cmathml/cmathml.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/cmathml/cmathml.pdf},
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:tbscml:svn,crossref={Kohlhase:tbscml:base},
   url = {https://github.com/KWARC/sTeX/raw/master/sty/cmathml/cmathml.pdf}}
@@ -5704,7 +5877,7 @@
 
 @techreport{Kohlhase:clbscm:ctan,crossref={Kohlhase:clbscm:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/cnx/cnx.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/cnx/cnx.pdf},
   pubs = {mkohlhase,projects/stex}}
 @techreport{Kohlhase:clbscm:svn,crossref={Kohlhase:clbscm:base},
   url = {https://github.com/KWARC/sTeX/raw/master/sty/cnx/cnx.pdf}}
@@ -5716,7 +5889,7 @@
 
 @techreport{Kohlhase:smomdl:ctan,crossref={Kohlhase:smomdl:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/omdoc/omdoc.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/omdoc/omdoc.pdf},
   pubs = {mkohlhase,projects/stex,projects/omdoc}}
 @techreport{Kohlhase:smomdl*:svn,crossref={Kohlhase:smomdl:base},
   url = {https://github.com/KWARC/sTeX/raw/master/sty/omdoc/omdoc.pdf}}
@@ -5728,7 +5901,7 @@
 
 @techreport{Kohlhase:smmtf:ctan,crossref={Kohlhase:smmtf:base},
   institution = {Comprehensive {\TeX} Archive Network (CTAN)},
-  url =   {http://www.ctan.org/tex-archive/macros/latex/contrib/stex/omtext/omtext.pdf},
+  url =   {http://mirror.ctan.org/macros/latex/contrib/stex/sty/omtext/omtext.pdf},
   pubs = {mkohlhase,projects/stex,projects/omdoc}}
 @techreport{Kohlhase:smmtf*:svn,crossref={Kohlhase:smmtf:base},
   url = {https://github.com/KWARC/sTeX/raw/master/sty/omtext/omtext.pdf}}
@@ -5828,19 +6001,21 @@
 @online{krextor:webpage,
   crossref = {krextor:base},
   lastchecked = nov,
-  year = 2008}
+}
 
 @MISC{krextor,
   crossref = {krextor:base},
-  howpublished = {\webpageat\url{http://kwarc.info/projects/krextor/}},
-  month = nov,
-  year = 2008}
+  howpublished = {\webpageat\url{http://trac.kwarc.info/krextor/}},
+  month = jan,
+  year = 2013}
 
 @MISC{krextor:base,
   key = {Krextor},
   title = {Krextor -- The {KWARC} {RDF} Extractor},
   author = {Christoph Lange and others},
-  url = {http://kwarc.info/projects/krextor/}}
+  url = {http://kwarc.info/projects/krextor/},
+  month = jan,
+  year = 2013}
 
 @phdthesis{Lange:PhD:plain,
  author = {Christoph Lange},
@@ -6449,6 +6624,13 @@
  url = {http://arxiv.org/abs/1404.6548}, 
  pubs = {dginev}}
 
+ at inproceedings{HamKoh:fsm15,
+ title = {Faceted Search for Mathematics},
+ author = {Radu Hambasan and Michael Kohlhase},
+ url = {http://kwarc.info/kohlhase/papers/macis15.pdf},
+ pubs = {mkohlhase,projects/mathsearch},
+ crossref = {MACIS15}}
+ 
 
 @inproceedings{KohlhaseEtAl:FullSemanticTransparency:2013,
  author = {Andrea Kohlhase and Michael Kohlhase and Constantin Jucovschi and Alexandru Toader},
@@ -6549,10 +6731,14 @@
   urldate = {2014-04-21},
   url = {http://mathhub.info/mh/glossary}}
 
- at online{SMGloM:on,
+ at misc{SMGloM:URL,crossref={SMGloM:base},key={SMG},
+  howpublished = {\url{http://smglom.mathhub.info}},
+  note = {System home page seen 2014-04-21}}
+ at online{SMGloM:on,crossref={SMGloM:base},
   label = {SMG},
+  urldate = {2014-04-21}}
+ at misc{SMGloM:base,
   title = {SMGloM: A Semantic, Multilingual Terminology for Mathematics},
-  urldate = {2014-04-21},
   url = {http://smglom.mathhub.info}}
 
 @online{SMGloM:dict:on,
@@ -6673,13 +6859,6 @@
   pubs =         {akohlhase},
   note = {submitted to Mensch und Computer 2014}}
 
- at unpublished{Kohlhase:MathGenerationGap:2014,
-  author = 	 {Andrea Kohlhase},
-  title = 	 {Math Web Interfaces and the Generation Gap of Mathematicians},
-  SOONcrossref =     {WMMI 2014},
-  pubs =         {akohlhase},
-  note = {submitted to Web and Mobile Math Interfaces 2014}}
-
 @INPROCEEDINGS{KohToa:Fency:2013,
   author = {Andrea Kohlhase and Alexandru Toader},
   title = {Exploration of Spreadsheet Formulae with Fency},
@@ -6687,6 +6866,13 @@
   crossref = {FGWM13},
   pubs = {akohlhase,atoader, projects/sissi}}
 
+ at InProceedings{KohGus:CoOccurrencesInSpreadsheets:2015,
+  author = {Andrea Kohlhase and Ana Guseva},
+  title = {Co-Occurrences of Context Dimensions of Spreadsheets},
+  crossref = {MathUI15},
+url ={http://www.cermat.org/events/MathUI/15/proceedings/Kohlhase-Guseva-Cooccurences-context-MathUI_15.pdf},
+  pubs = {akohlhase,aguseva}}
+
 % Officially: url = {http://jpubs.jacobs-university.de/handle/579/2453}
 @TECHREPORT{Koh:FramingsOfInformation:2013,
   author = {Andrea Kohlhase},
@@ -6742,3 +6928,10 @@
   pubs = "projects/mathsearch, projects/sissi"
 }
 
+ at online{YTInters,
+  label = {IntV15},
+  author = {Dennis M{\"u}ller},
+  title = {Theory Intersections in {MMT}},
+  url = {https://www.youtube.com/watch?v=qXKaGuV7kLY},
+  Urldate = {2015-06-29}}
+

Modified: trunk/Master/texmf-dist/source/latex/stex/lib/make/Makefile.in
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/lib/make/Makefile.in	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/lib/make/Makefile.in	2019-03-20 22:31:24 UTC (rev 50489)
@@ -1,2 +1,3 @@
 include $(STEXDIR)/lib/make/Makefile.base.in
 include $(STEXDIR)/lib/make/Makefile.latex.in
+include $(STEXDIR)/lib/make/Makefile.latexml.in

Modified: trunk/Master/texmf-dist/source/latex/stex/lib/make/Makefile.latex.in
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/lib/make/Makefile.latex.in	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/lib/make/Makefile.latex.in	2019-03-20 22:31:24 UTC (rev 50489)
@@ -17,8 +17,10 @@
 	@if (test -e $(patsubst %.tex, %.idx,  $<));\
 	    then makeindex $(patsubst %.tex, %.idx,  $<); fi
 	@echo
-	@if (grep "No file$(patsubst %.tex, %.bbl,  $<)" $(patsubst %.tex, %.log,  $<)> /dev/null);\
-	    then bibtex $(patsubst %.tex, %,  $<); fi
+	@if (grep 'Please (re)run Biber' $(patsubst %.dtx, %.log, $(firstword $<)) > /dev/null);\
+	    then biber $(patsubst %.tex, %, $(firstword $<));fi
+	@if (grep 'Please (re)run BibTeX' $(patsubst %.dtx, %.log, $(firstword $<)) > /dev/null);\
+	    then bibtex $(patsubst %.tex, %, $(firstword $<));fi
 	@echo   
 	$(PDFLATEX)  $< || $(RM) $@
 	@echo

Modified: trunk/Master/texmf-dist/source/latex/stex/lib/make/Makefile.vars
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/lib/make/Makefile.vars	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/lib/make/Makefile.vars	2019-03-20 22:31:24 UTC (rev 50489)
@@ -1,2 +1,3 @@
 include $(STEXDIR)/lib/make/Makefile.base.vars
 include $(STEXDIR)/lib/make/Makefile.latex.vars
+include $(STEXDIR)/lib/make/Makefile.latexml.vars

Modified: trunk/Master/texmf-dist/source/latex/stex/metakeys/metakeys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/metakeys/metakeys.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/metakeys/metakeys.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,10 +10,11 @@
 % \iffalse
 %<*package>
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{metakeys}[2016/04/07 v0.9 Framework for Metadata Keys]
+\ProvidesPackage{metakeys}[2019/03/20 v0.9 Framework for Metadata Keys]
 %</package>
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{stex-logo,url,array,float}
 \usepackage[show]{ed}
 \usepackage{ctangit}
@@ -27,9 +28,12 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
 \usepackage[showmeta]{metakeys}
-\begin{document}\DocInput{metakeys.dtx}\end{document}
+\begin{document}
+\RecordChanges
+\DocInput{metakeys.dtx}
+\end{document}
 %</driver>
 % \fi
 %
@@ -50,7 +54,7 @@
 % \title{{\texttt{metakeys.sty}}: A generic framework for extensible Metadata in {\LaTeX}\thanks{Version {\fileversion} (last revised
 %        {\filedate})}}
 %    \author{Michael Kohlhase\\
-%            Jacobs University, Bremen\\
+%            FAU Erlangen-N\"urnberg\\
 %            \url{http://kwarc.info/kohlhase}}
 % \maketitle
 % \begin{abstract}
@@ -185,9 +189,9 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item none reported yet
-% \end{compactenum}
+% \end{enumerate}
 % 
 % \StopEventually{\newpage\PrintChanges\printbibliography}
 % 

Modified: trunk/Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,14 +10,15 @@
 % 
 % \iffalse
 %<cls|package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<cls>\ProvidesClass{mikoslides}[2016/04/07 v1.1 Jacobs slides Class]
-%<package>\ProvidesPackage{mikoslides}[2016/04/07 v1.1 Jacobs slides Package]
+%<cls>\ProvidesClass{mikoslides}[2019/03/20 v1.2 MiKo slides Class]
+%<package>\ProvidesPackage{mikoslides}[2019/03/20 v1.2 MiKo slides Package]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{url,array,float,xspace}
 \usepackage[show]{ed}
-\usepackage{graphicx}
+\usepackage{graphicx,paralist}
 \usepackage[hyperref=auto,style=alphabetic]{biblatex}
 \addbibresource{kwarcpubs.bib}
 \addbibresource{extpubs.bib}
@@ -27,10 +28,13 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online},
-\hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
+\def\githubissue#1{\cite{sTeX:github:on},
+\hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
 \usepackage{hyperref}
-\begin{document}\DocInput{mikoslides.dtx}\end{document}
+\begin{document}
+\RecordChanges
+\DocInput{mikoslides.dtx}
+\end{document}
 %</driver>
 % \fi
 % 
@@ -50,6 +54,7 @@
 % \changes{v1.1}{2015/10/25}{Removing the old title macros (use the regular ones instead)}
 % \changes{v1.1}{2015/10/25}{reinterpreting omgroup}
 % \changes{v1.1}{2015/11/04}{moving MathHub support out to separate package}
+% \changes{v1.2}{2018/12/03}{changed to keyval class/package options, allowed arbitrary classes}
 % 
 % \GetFileInfo{mikoslides.cls}
 % \MakeShortVerb{\|}
@@ -68,7 +73,6 @@
 % \def\snippet#1{{\ttfamily{#1}}}
 % \def\cnxlatex{CNX\LaTeX\xspace}
 % \def\mathml{{\scshape{MathML}}\xspace}
-% \def\latexml{\hbox{{\LaTeX}ML}\xspace}
 % \def\omdoc{OMDoc\xspace}
 % \def\activemath{{\scshape{ActiveMath}}\xspace}
 % \def\textwarning{\includegraphics[width=1.2em]{dangerous-bend}\xspace}
@@ -76,7 +80,7 @@
 % \title{Slides and Course Notes\thanks{Version {\fileversion}
 % (last revised {\filedate})}}
 %    \author{Michael Kohlhase\\
-%            Jacobs University, Bremen\\
+%            FAU Erlangen-N\"urnberg\\
 %            \url{http://kwarc.info/kohlhase}}
 % \maketitle
 %
@@ -89,10 +93,10 @@
 %
 %\section{Introduction}
 %
-% This Document class is derived from |beamer.cls|~\cite{beamerclass:on}, specializes it
-% with a simple theme (Jacobs as a default) and adds a ``notes version'' for course notes
-% derived from the |omdoc| class~\cite{Kohlhase:smomdl} that is more suited to printing
-% than the one supplied by |beamer.cls|.
+% The |mikoslides| document class is derived from |beamer.cls|~\cite{beamerclass:on}, it
+% adds a ``notes version'' for course notes derived from the |omdoc|
+% class~\cite{Kohlhase:smomdl} that is more suited to printing than the one supplied by
+% |beamer.cls|.
 %
 % 
 %\section{The User Interface}\label{sec:user}
@@ -114,7 +118,7 @@
 % 
 % The |mikoslides| class takes a variety of class options:\ednote{leaving out noproblems
 % for the moment until we decide what to do with it.}
-% \begin{compactitem}
+% \begin{itemize}
 % \item The options \DescribeMacro{slides}|slides|\DescribeMacro and {notes}|notes| switch
 %   between slides mode and notes mode (see Section~\ref{sec:user:notesslides}).
 % \item If the option \DescribeMacro{sectocframes}|sectocframes| is given, then special
@@ -122,8 +126,10 @@
 % \item \DescribeMacro{showmeta}|showmeta|. If this is set, then the metadata keys are
 %   shown (see~\cite{Kohlhase:metakeys:ctan} for details and customization options).
 % \item If the option \DescribeMacro{frameimages}|frameimages| is set, then slide mode
-%   also shows the |\frameimage|-generated frames. 
-% \end{compactitem}
+%   also shows the |\frameimage|-generated frames.
+% \item \DescribeMacro{topsect}|topsect=|\meta{sect} can be used to specify the
+%   top-level sectioning level; the default for \meta{setc} is |section|.
+% \end{itemize}
 % 
 % \subsection{Notes and Slides}\label{sec:user:notesslides}
 % 
@@ -171,6 +177,20 @@
 % package~\cite{CarRah:tpp99} and \meta{path} is the file path (extension can be left off
 % like in |\includegraphics|).
 % 
+% If we want to transclude a the contents of a file as a note, we can use the
+% \DescribeMacro{\ninputref}|\ninputref| macro. |\ninputref{foo}| is equivalent to 
+%\begin{verbatim}
+% \begin{note}
+% \inputref{foo}
+% \end{note}
+% \end{verbatim}
+% 
+% There are some environments that tend to occur at the top-level of |note|
+% environments. We make convenience versions of these: e.g. the
+% \DescribeEnv{nomtext}|nomtext| environment is just an |omtext| inside a |note|
+% environemnt (but looks nicer in the source, since it avoids one level of source
+% indenting). Similarly, we have the \DescribeEnv{nomgroup}|nomgroup| environment.
+%  
 % \subsection{Header and Footer Lines}\label{sec:user:headfootlines}
 %
 % \subsection{Colors and Highlighting}\label{sec:user:highlighting}
@@ -186,12 +206,12 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item when option |book| which uses |\pagestyle{headings}| is given and semantic macros
 %   are given in the |omgroup| titles, then they sometimes are not defined by the time the
 %   heading is formatted. Need to look into how the headings are made. This is a problem
 %   of the underlying |omdoc| package.
-% \end{compactenum}
+% \end{enumerate}
 % 
 % \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography}
 % 
@@ -200,93 +220,124 @@
 %\subsection{Class and Package Options}\label{sec:impl:init}
 %
 % We define some Package Options and switches for the |mikoslides| class and activate them
-% by passing them on to |beamer.cls| and |omdoc.cls| and the |mikoslides| package.
+% by passing them on to |beamer.cls| and |omdoc.cls| and the |mikoslides| package. We pass
+% the |nontheorem| option to the |statements| package when we are not in notes mode, since
+% the |beamer| package has its own (overlay-aware) theorem environments. 
 %
 %    \begin{macrocode}
 %<*cls>
-\newif\ifnotes\notesfalse
-\DeclareOption{notes}{\notestrue\PassOptionsToPackage{\CurrentOption}{mikoslides}}
-\DeclareOption{slides}{\notesfalse\PassOptionsToPackage{\CurrentOption}{mikoslides}}
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{omdoc}
-                           \PassOptionsToClass{\CurrentOption}{beamer}
-                           \PassOptionsToPackage{\CurrentOption}{mikoslides}}
-\ProcessOptions
+\RequirePackage{kvoptions}
+\RequirePackage{etoolbox}
+\SetupKeyvalOptions{family=mks at cls,prefix=mks at cls@}
+\DeclareStringOption[article]{class}
+\AddToKeyvalOption*{class}{\PassOptionsToClass{class=\mks at cls@class}{omdoc}
+  \ifdefstring{\mks at cls@class}{book}{\PassOptionsToPackage{topsect=part}{mikoslides}}{}
+  \ifdefstring{\mks at cls@class}{report}{\PassOptionsToPackage{topsect=part}{mikoslides}}}{}
+\DeclareBoolOption{notes}
+\DeclareComplementaryOption{slides}{notes}
+\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{omdoc}
+  \PassOptionsToClass{\CurrentOption}{beamer}
+  \PassOptionsToPackage{\CurrentOption}{mikoslides}}
+\ProcessKeyvalOptions{mks at cls}
 %</cls>
 %    \end{macrocode}
-% now we do the same for the |mikoslides| package. Note that we also have to define the
-% same switches\ednote{MK: we may think about making all of them internal}, since we might
-% use |mikoslides.sty| in a different class.
+% now we do the same for the |mikoslides| package. 
 %    \begin{macrocode}
 %<*package>
-\newif\if at mikoslides@mh@\@mikoslides at mh@false
-\DeclareOption{mh}{\@mikoslides at mh@true
-  \PassOptionsToPackage{\CurrentOption}{stex}
-  \PassOptionsToPackage{\CurrentOption}{smglom}
-  \PassOptionsToPackage{\CurrentOption}{tikzinput}}
-\newif\ifnotes\notesfalse 
-\DeclareOption{notes}{\notestrue}
-\DeclareOption{slides}{\notesfalse}
-\newif\ifsectocframes\sectocframesfalse 
-\DeclareOption{sectocframes}{\sectocframestrue}
-\newif\ifframeimages\frameimagesfalse 
-\DeclareOption{frameimages}{\frameimagestrue}
-\newif\if at part\@partfalse 
-\DeclareOption{report}{\@parttrue\PassOptionsToPackage{\CurrentOption}{omdoc}}
-\DeclareOption{book}{\@parttrue\PassOptionsToPackage{\CurrentOption}{omdoc}}
-\newif\ifproblems\problemstrue
-\DeclareOption{noproblems}{\problemsfalse}
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{stex}
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=mks at sty,prefix=mks at sty@}
+\DeclareStringOption[section]{topsect}
+\DeclareBoolOption{mh}
+\AddToKeyvalOption*{mh}{
+  \PassOptionsToPackage{mh}{stex}
+  \PassOptionsToPackage{mh}{smglom}
+  \PassOptionsToPackage{mh}{tikzinput}}
+\newif\ifnotes\notestrue
+\DeclareBoolOption{notes}
+\AddToKeyvalOption*{notes}{\notestrue\PassOptionsToPackage{notes}{statements}}
+\DeclareComplementaryOption{slides}{notes}
+\AddToKeyvalOption*{slides}{\notesfalse\PassOptionsToPackage{nontheorem}{statements}}
+\DeclareBoolOption{sectocframes}
+\AddToKeyvalOption*{sectocframes}{\PassOptionsToPackage{msection}{statements}}
+\DeclareBoolOption{frameimages}
+\DeclareBoolOption{noproblems}
+\DeclareDefaultOption{\PassOptionsToPackage{\CurrentOption}{stex}
                            \PassOptionsToPackage{\CurrentOption}{smglom}
                            \PassOptionsToPackage{\CurrentOption}{tikzinput}}
-\ProcessOptions
+\ProcessKeyvalOptions{mks at sty}
 %</package>
 %    \end{macrocode}
 %
 % Depending on the options, we either load the |article|-based |omdoc| or the |beamer|
-% class. In the first case, we also have to make the |beamer|-specific things available to
-% |article| via the |beamerarticle| package. We use options to avoid loading theorem-like
-% environments, since we want to use our own from the $\sTeX$ packages. On the \latexml
-% side we just load the omdoc class and provide the |\usetheme| macro that would otherwise
-% from the the |beamer| class.
+% class (and set some counters).
 %    \begin{macrocode}
 %<*cls>
-\ifnotes
+\ifmks at cls@notes
   \LoadClass{omdoc}
-  \RequirePackage{a4wide}
-  \RequirePackage{marginnote}
-  \RequirePackage{mdframed}
-  \RequirePackage[notheorems,noamsthm,noxcolor]{beamerarticle}
-  \RequirePackage[bookmarks,bookmarksopen,bookmarksnumbered,breaklinks,
-      linkcolor=black,citecolor=black,urlcolor=cyan,filecolor=cyan,colorlinks]{hyperref}
 \else
-  \LoadClass[notheorems,noamsthm,10pt]{beamer}
+  \LoadClass[10pt,notheorems]{beamer}
   \newcounter{Item}
   \newcounter{paragraph}
   \newcounter{subparagraph}
   \newcounter{Hfootnote}
-  \usetheme{Jacobs}
 \fi
+%    \end{macrocode}
+% now it only remains to load the |mikoslides| package that does all the rest. 
+%    \begin{macrocode}
 \RequirePackage{mikoslides}
 %</cls>
 %    \end{macrocode}
 % 
-% now, we load the remaining packages for both versions. 
+% In |notes| mode, we also have to make the |beamer|-specific things available to
+% |article| via the |beamerarticle| package. We use options to avoid loading theorem-like
+% environments, since we want to use our own from the $\sTeX$ packages.  The first batch
+% of packages we want are loaded on |mikoslides.sty|. These are the general ones, we will
+% load the \sTeX-specific ones after we have done some work (e.g. defined the counters
+% |m*|). Only the |stex-logo| package is already needed now for the default theme.
 %
 %    \begin{macrocode}
 %<*package>
-\if at mikoslides@mh@\RequirePackage{mikoslides-mh}\fi
-\RequirePackage{stex}
-\RequirePackage{smglom}
-\RequirePackage{tikzinput}
+\ifmks at sty@notes
+\RequirePackage{a4wide}
+\RequirePackage{marginnote}
+\RequirePackage{xcolor}
+\RequirePackage{mdframed}
+\RequirePackage[noxcolor,noamsthm]{beamerarticle}
+\fi
+\ifmks at sty@mh\RequirePackage{mikoslides-mh}\fi
+\RequirePackage{etoolbox}
 \RequirePackage{amssymb}
 \RequirePackage{amsmath}
 \RequirePackage{comment}
 \RequirePackage{textcomp}
 \RequirePackage{url}
+\RequirePackage{graphicx}
+\RequirePackage{stex-logo}
+\RequirePackage{pgf}
+\ifmks at sty@notes
+\RequirePackage[bookmarks,bookmarksopen,bookmarksnumbered,breaklinks,
+linkcolor=black,citecolor=black,urlcolor=cyan,filecolor=cyan,colorlinks]{hyperref}
+\fi
 %    \end{macrocode}
+%
+% finally, we require the |metakeys| package from \sTeX, so that we can use the
+% |\addmetakey| mechanism.
+%
+%    \begin{macrocode}
+\RequirePackage{metakeys}
+%    \end{macrocode}
 % 
 % \subsection{Notes and Slides}\label{sec:impl:noteslides}
 %
+% For the lecture notes cases, we also provide the |\usetheme| macro that would otherwise
+% from the the |beamer| class. While the latter loads |beamertheme|\meta{theme}{.sty}, the
+% notes version loads |beamernotestheme|\meta{theme}|.sty|.\ednote{MK: This is not ideal, but
+% I am not sure that I want to be able to provide the full theme functionality there.}
+%    \begin{macrocode}
+\ifmks at sty@notes
+\renewcommand\usetheme[2][]{\usepackage[#1]{beamernotestheme#2}}
+\fi
+%    \end{macrocode}
 % We define the sizes of slides in the notes. Somehow, we cannot get by with the same
 % here. 
 %
@@ -302,7 +353,7 @@
 % no-operation otherwise we declare the |note| environment as a comment via the |comment|
 % package.
 %    \begin{macrocode}
-\ifnotes%
+\ifmks at sty@notes%
   \renewenvironment{note}{\ignorespaces}{}%
 \else%
   \excludecomment{note}%
@@ -310,13 +361,18 @@
 %    \end{macrocode}
 % \end{environment}
 % 
+% \begin{macro}{\ninputref}
+%    \begin{macrocode}
+\newcommand\ninputref[2][]{\ifmks at sty@notes\inputref[#1]{#2}\fi}
+%    \end{macrocode}
+% \end{macro}
+% 
 %
-% We start by giving the {\latexml} binding for the |frame| environment from the |beamer|
-% class. We first set up the slide boxes in |article| mode. We set up sizes and provide a
+% We first set up the slide boxes in |article| mode. We set up sizes and provide a
 % box register for the frames and a counter for the slides.
 % 
 %    \begin{macrocode}
-\ifnotes
+\ifmks at sty@notes
   \newlength{\slideframewidth}
   \setlength{\slideframewidth}{1.5pt}
 %    \end{macrocode}
@@ -330,11 +386,9 @@
   \addmetakey[yes]{frame}{fragile}
   \addmetakey[yes]{frame}{shrink}
   \addmetakey[yes]{frame}{squeeze}
+  \addmetakey[yes]{frame}{t}
 %    \end{macrocode}
-%   We redefine the |itemize| environment so that it looks more like the one in |beamer|
-%   with |Jacobs| theme. We create the box with the |mdframed| environment from the
-%   equinymous package.
-%   Then we define the environment, read them, and construct the slide number and label. 
+% We define the environment, read them, and construct the slide number and label.
 %    \begin{macrocode}
   \renewenvironment{frame}[1][]{%
     \metasetkeys{frame}{#1}%
@@ -345,8 +399,7 @@
       \label{\frame at label}%
     \fi%
 %    \end{macrocode}
-%   We redefine the |itemize| environment so that it looks more like the one in |beamer|
-%   with |Jacobs| theme. 
+%   We redefine the |itemize| environment so that it looks more like the one in |beamer|. 
 %    \begin{macrocode}
     \def\itemize at level{outer}%
     \def\itemize at outer{outer}%
@@ -395,40 +448,55 @@
 %    \begin{macrocode}
 \newrobustcmd\frameimage[2][]{%
   \stepcounter{slide}%
-  \ifframeimages%
+  \ifmks at sty@frameimages%
     \def\Gin at ewidth{}\setkeys{Gin}{#1}%
-    \ifnotes%
-    \else%
-      \vfill%
-    \fi%
+    \ifmks at sty@notes\else\vfill\fi%
     \ifx\Gin at ewidth\@empty%
       \mycgraphics[width=\slidewidth,#1]{#2}\else\mycgraphics[#1]{#2}%
     \fi%
     \par\strut\hfill{\footnotesize Slide \arabic{slide}}%
-    \ifnotes%
-    \else%
-      \vfill%
-    \fi%
+    \ifmks at sty@notes\else\vfill\fi%
   \fi%
 }% ifframeimages
 %    \end{macrocode}
 % \end{macro}
 % 
+% \begin{macro}{\pause}
+%   \ednote{MK: fake it in notes mode for now}
+%    \begin{macrocode}
+\ifmks at sty@notes\newcommand\pause{}\fi
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{environment}{nomtext}
+%    \begin{macrocode}
+\ifmks at sty@notes\newenvironment{nomtext}[1][]{\begin{omtext}[#1]}{\end{omtext}}%
+\else\excludecomment{nomtext}\fi%
+%    \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{nomgroup}
+%    \begin{macrocode}
+\ifmks at sty@notes\newenvironment{nomgroup}[2][]{\begin{omgroup}[#1]{#2}}{\end{omgroup}}%
+\else\excludecomment{nomgroup}\fi%
+%    \end{macrocode}
+% \end{environment}
 % \subsection{Header and Footer Lines}\label{sec:impl:headfootlines}
 %
 % Now, we set up the infrastructure for the footer line of the slides, we use boxes for
 % the logos, so that they are only loaded once, that considerably speeds up processing.
+% 
 % \begin{macro}{\setslidelogo}
 % The default logo is the logo of Jacobs University. Customization can be done by |\setslidelogo{|\meta{logo name}|}|.
 %    \begin{macrocode}
 \newlength{\slidelogoheight}
-\ifnotes%
+\ifmks at sty@notes%
   \setlength{\slidelogoheight}{.4cm}%
 \else%
   \setlength{\slidelogoheight}{1cm}%
 \fi%
 \newsavebox{\slidelogo}%
-\sbox{\slidelogo}{\includegraphics[height=\slidelogoheight]{jacobs-logo}}%
+\sbox{\slidelogo}{\sTeX}%
 \newrobustcmd{\setslidelogo}[1]{%
   \sbox{\slidelogo}{\includegraphics[height=\slidelogoheight]{#1}}%
 }%
@@ -444,7 +512,11 @@
 % \end{macro}
 %
 % \begin{macro}{\setlicensing}
-% Now, we set up the copyright and licensing. By default we use the Creative Commons Attribuition-ShareAlike license to strengthen the public domain. If package |hyperref| is loaded, then we can attach a hyperlink to the license logo. |\setlicensing[|\meta{url}|]{|\meta{logo name}|}| is used for customization, where ||\meta{url}|| is optional.
+%   Now, we set up the copyright and licensing. By default we use the Creative Commons
+%   Attribuition-ShareAlike license to strengthen the public domain. If package |hyperref|
+%   is loaded, then we can attach a hyperlink to the license
+%   logo. |\setlicensing[|\meta{url}|]{|\meta{logo name}|}| is used for customization,
+%   where ||\meta{url}|| is optional.
 %    \begin{macrocode}
 \def\copyrightnotice{\footnotesize\copyright:\hspace{.3ex}{\source}}%
 \newsavebox{\cclogo}%
@@ -467,11 +539,11 @@
     \def\licensing{{\usebox{\cclogo}}}%
   \else%
     \def\licensing{%
-	  \ifcchref%
-	    \href{#1}{\usebox{\cclogo}}%
-	  \else%
-	    {\usebox{\cclogo}}%
-	  \fi%
+      \ifcchref%
+      \href{#1}{\usebox{\cclogo}}%
+      \else%
+      {\usebox{\cclogo}}%
+      \fi%
     }%
   \fi%
 }%
@@ -492,13 +564,19 @@
 % 
 % \subsection{Colors and Highlighting}\label{sec:impl:highlighting}
 %
+% We first specify sans serif fonts as the default. 
+%
+%    \begin{macrocode}
+\sffamily
+%    \end{macrocode}
+%
 % Now, we set up an infrastructure for highlighting phrases in slides. Note that we use
 % content-oriented macros for highlighting rather than directly using color markup. 
 % The first thing to to is to adapt the green so that it is dark enough for most beamers
 %    \begin{macrocode}
 \AtBeginDocument{%
-  \definecolor{green}{rgb}{0,.5,0}%
-  \definecolor{purple}{cmyk}{.3,1,0,.17}%
+\definecolor{green}{rgb}{0,.5,0}%
+\definecolor{purple}{cmyk}{.3,1,0,.17}%
 }%
 %    \end{macrocode}
 %
@@ -519,12 +597,12 @@
 %   as the macro can be used quite often we put it into a box register, so that it is only
 %   loaded once. 
 %    \begin{macrocode}
-\pgfdeclareimage[width=.9em]{miko at small@dbend}{dangerous-bend}
+\pgfdeclareimage[width=.8em]{miko at small@dbend}{dangerous-bend}
 \def\smalltextwarning{%
   \pgfuseimage{miko at small@dbend}%
   \xspace%
 }%
-\pgfdeclareimage[width=1.5em]{miko at dbend}{dangerous-bend}
+\pgfdeclareimage[width=1.2em]{miko at dbend}{dangerous-bend}
 \newrobustcmd\textwarning{%
   \raisebox{-.05cm}{\pgfuseimage{miko at dbend}}%
   \xspace%
@@ -537,14 +615,7 @@
 %    \end{macrocode}
 % \end{macro}
 % 
-% \subsection{Front Matter, Titles, etc}
-%
-% We need to redefine the frontmatter macros inherited from the |beamer| class for
-% LaTeXML, since there they take an optional argument.
 %    \begin{macrocode}
-%    \end{macrocode}
-%    \begin{macrocode}
-%      Must be first command on slide to make positioning work.
 \newrobustcmd\putgraphicsat[3]{%
   \begin{picture}(0,0)\put(#1){\includegraphics[#2]{#3}}\end{picture}%
 }%
@@ -556,61 +627,119 @@
 % \subsection{Sectioning}
 %
 % If the |sectocframes| option is set, then we make section frames. We first define a set
-% of counters
+% of counters\ednote{I forget: why not use the counters from beamer/article? --> document
+% this.}
 %    \begin{macrocode}
-\ifsectocframes%
-  \if at part%
-    \newcounter{mpart}%
-    \newcounter{mchapter}%
-    \newcounter{msection}[mchapter]%
-  \else%
-    \newcounter{msection}%
-  \fi%
-  \newcounter{msubsection}[msection]%
-  \newcounter{msubsubsection}[msubsection]%
-  \newcounter{msubsubsubsection}[msubsubsection]%
-\fi% ifsectocframes 
+\ifmks at sty@sectocframes%
+\ifdefstring\mks at sty@topsect{part}{%
+  \newcounter{mpart}\newcounter{mchapter}\newcounter{msection}[mchapter]}
+{\ifdefstring\mks at sty@topsect{chapter}{%
+    \newcounter{mchapter}\newcounter{msection}[mchapter]}
+  {\newcounter{msection}}}
+\newcounter{msubsection}[msection]%
+\newcounter{msubsubsection}[msubsection]%
+\newcounter{msubsubsubsection}[msubsubsection]%
+\fi% ifsectocframes
 %    \end{macrocode}
-% and then 
+%
+% Now that we have defined the counters, we can load the \sTeX-specific packages (in
+% particular |statements| that needs these counters). 
+%
 %    \begin{macrocode}
-\ifnotes\else% only in slides
-  \renewenvironment{omgroup}[2][]{%
-    \metasetkeys{omgroup}{#1}\sref at target%
-    \advance\section at level by 1% 
-    \ifsectocframes%
-    \begin{frame}%
-    \vfill\Large\centering%
-    \red{%
-    	\ifcase\section at level\or%
-        \stepcounter{mpart}Part \Roman{mpart}\or%
-        \stepcounter{mchapter}Chapter \arabic{mchapter}\or
-        \stepcounter{msection}\if at part\arabic{mchapter}.\fi\arabic{msection}\or
-        \stepcounter{msubsection}\if at part\arabic{mchapter}.\fi\arabic{msection}.\arabic{msubsection}\or
-        \stepcounter{msubsubsection}\if at part\arabic{mchapter}.\fi\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}.\or
-        \stepcounter{msubsubsubsection}\if at part\arabic{mchapter}.\fi\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}.\arabic{msubsubsubsection}%
-      \fi% end ifcase
-      \quad #2%
-    }%
-    \vfill%
-    \end{frame}%
-    \fi %ifsectocframes
-  }
-  {\advance\section at level by -1}% 
-\fi% ifnotes
+\RequirePackage{stex}
+\RequirePackage{smglom}
+\RequirePackage{tikzinput}
 %    \end{macrocode}
+% 
+% Finally, we set the \DescribeMacro{\section at level}|\section at level| macro that governs
+% sectioning. 
 %
+%    \begin{macrocode}
+\section at level=2
+\ifdefstring{\mks at sty@topsect}{part}{\section at level=0}{}
+\ifdefstring{\mks at sty@topsect}{chapter}{\section at level=1}{}
+%    \end{macrocode}
+% 
+% Now \sTeX is loaded, we redefine the |omgroup| environment to produce section toc frames
+% (if the option |sectocframes| is specified.)\ednote{MK: we should probably just redefine
+% omgroup at num and omgroup at nonum, since they do the actual work so that we can add the
+% sectocframes behavior here without having to copy the internals. Then there is less
+% material that can get out of sync. Additionally, we should have a hook in the original
+% code of those so that we can increment the slides counter in notes node (to keep slides
+% in sync)}
+% 
+%    \begin{macrocode}
+\ifmks at sty@notes\else% only in slides
+\def\part at prefix{\ifdefstring\mks at sty@topsect{part}{\arabic{mchapter}.}{}}
+\renewenvironment{omgroup}[2][]{%
+  \metasetkeys{omgroup}{#1}\sref at target%
+  \advance\section at level by 1%
+  \ifmks at sty@sectocframes%
+  \stepcounter{slide}
+  \begin{frame}[noframenumbering]%
+  \vfill\Large\centering%
+  \red{%
+    \ifcase\section at level\or
+    \stepcounter{mpart}
+    \def\@@label{Part \Roman{mpart}}
+    \def\currentsectionlevel{part}
+    \or%
+    \stepcounter{mchapter}
+    \def\@@label{Chapter \arabic{mchapter}}
+    \def\currentsectionlevel{chapter}
+    \or
+    \stepcounter{msection}
+    \def\@@label{\part at prefix\arabic{msection}}
+    \def\currentsectionlevel{section}
+    \or
+    \stepcounter{msubsection}
+    \def\@@label{\part at prefix\arabic{msection}.\arabic{msubsection}}
+    \def\currentsectionlevel{subsection}
+    \or
+    \stepcounter{msubsubsection}
+    \def\@@label{\part at prefix\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}}
+    \def\currentsectionlevel{subsubsection}
+    \or
+    \stepcounter{msubsubsubsection}
+    \def\@@label{\part at prefix\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}.\arabic{msubsubsubsection}}
+    \def\currentsectionlevel{subsubsubsection}
+    \fi% end ifcase
+    \@@label\sref at label@id\@@label
+    \quad #2%
+  }%
+  \vfill%
+  \end{frame}%
+  \fi %ifmks at sty@sectocframes
+}
+{\advance\section at level by -1}%
+\fi% ifmks at sty@notes
+%    \end{macrocode}
+%
 % \subsection{Miscellaneous}
 %
+% We set up a |beamer| template for theorems like ams style, but without a block
+% environment.  
+%    \begin{macrocode}
+\def\inserttheorembodyfont{\normalfont}
+\defbeamertemplate{theorem begin}{miko}
+{\inserttheoremheadfont\inserttheoremname\inserttheoremnumber
+  \ifx\inserttheoremaddition\@empty\else\ (\inserttheoremaddition)\fi%
+  \inserttheorempunctuation\inserttheorembodyfont\xspace}
+\defbeamertemplate{theorem end}{miko}{}
+%    \end{macrocode}
+% and we set it as the default one. 
+%    \begin{macrocode}
+\setbeamertemplate{theorems}[miko]
+%    \end{macrocode}
 % The following fixes an error I do not understand, this has something to do with
 % beamer compatibility, which has similar definitions but only up to 1. 
 %    \begin{macrocode}
 \expandafter\def\csname Parent2\endcsname{}
+%    \end{macrocode}
+% We need to disregard the columns macros introduced by the |beamer| class in the notes.  
 %    \begin{macrocode}
-%
-% We need to disregard the columns macros introduced by the |beamer| class
-%    \begin{macrocode}
-\ifnotes%
-  \renewenvironment{columns}{%
+\ifmks at sty@notes%
+  \renewenvironment{columns}[1][]{%
     \par\noindent%
     \begin{minipage}%
     \slidewidth\centering\leavevmode%
@@ -618,20 +747,16 @@
     \end{minipage}\par\noindent%
   }%
   \newsavebox\columnbox%
-  \renewenvironment{column}[1]{%
-    \begin{lrbox}{\columnbox}\begin{minipage}{#1}%
+  \renewenvironment<>{column}[2][]{%
+    \begin{lrbox}{\columnbox}\begin{minipage}{#2}%
   }{%
     \end{minipage}\end{lrbox}\usebox\columnbox%
   }%
-\fi%
+\fi% ifnotes
 %    \end{macrocode}
-% Now, some things that are imported from the |pgf| and |beamer| packages: 
-%    \begin{macrocode}
-%    \end{macrocode}
-% 
 %
 %    \begin{macrocode}
-\ifproblems%
+\ifmks at sty@noproblems%
   \newenvironment{problems}{}{}%
 \else%
   \excludecomment{problems}%
@@ -647,7 +772,7 @@
 %%% End: 
 % \fi
 % LocalWords:  mikoslides dtx beamer omdoc notheorems noamsthm beamerarticle sc Licences
-% LocalWords:  graphicx slidelabel stex latexml amssymb tikz url CPERL  amsmath filedate
+% LocalWords:  graphicx slidelabel stex amssymb tikz url CPERL  amsmath filedate
 % LocalWords:  LoadClass RequirePackage DefRegister DefEnvironment omgroup rgb frameimage
 % LocalWords:  afterDigestBegin setProperty LookupValue DefConstructor hyperref Tantau's
 % LocalWords:  cmyk lec DefMacro titleslide ttitle RawTeX metadata etoolbox cls emph ugbc
@@ -678,7 +803,7 @@
 % LocalWords:  putgraphicsat beginomgroup ifnum vfill vfill noindent leavevmode cscpnrr11
 % LocalWords:  columnbox lrbox needwrapper unlist omtext bgroup autoclose pgf readXToken
 % LocalWords:  mygraphics doctex NeedsTeXFormat textbackslash userdefinedwidth foobar
-%  LocalWords:  includegrahics smalltextwarning msubsubsection msubsubsubsection ldots
+%  LocalWords:  includegrahics smalltextwarnings msubsubsection msubsubsubsection ldots
 %  LocalWords:  frameimages frameimages ifframeimages frameimagesfalse frameimagestrue
 %  LocalWords:  expandafter csname endcsname specializes customization flexiformal colors
 %  LocalWords:  initialize Initialization defindex realized itemize newrobustcmd

Modified: trunk/Master/texmf-dist/source/latex/stex/modules/modules.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/modules/modules.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/modules/modules.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,10 +10,12 @@
 %  
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{modules}[2016/04/07 v1.4 Semantic Markup]
+%<package>\ProvidesPackage{modules}[2019/03/20 v1.4 Semantic Markup]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
 \usepackage{stex-logo,modules}
 \usepackage{url,array,float,textcomp}
 \usepackage[show]{ed}
@@ -31,8 +33,11 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{modules.dtx}\end{document} 
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\begin{document}
+\RecordChanges
+\DocInput{modules.dtx}
+\end{document} 
 %</driver>
 % \fi
 % 
@@ -66,6 +71,7 @@
 % but can no longer do relative paths.}
 % \changes{v1.4}{2015/04/02}{deprecated \texttt {\textbackslash sinput} and \texttt {\textbackslash sinputref}}
 % \changes{v1.5}{2015/11/02}{Moved MH Versions to a separate \texttt{mathhub} package}
+% \changes{v1.5}{2018/06/15}{``unidentified cd'' in termref is now an error.}
 % 
 % \GetFileInfo{modules.sty}
 % 
@@ -85,10 +91,12 @@
 % \def\atwintoo#1#2#3{{#1 #2 #3}\atwin{#1}{#2}{#3}}
 % \def\cT{\mathcal{T}}\def\cD{\mathcal{D}}
 % \title{{\texttt{modules.sty}}: Semantic Macros and Module Scoping   in {\stex}\thanks{Version {\fileversion} (last revised
-%        {\filedate})}}
-%    \author{Michael Kohlhase \& Deyan Ginev \& Rares Ambrus\\
-%            Jacobs University, Bremen\\
-%            \url{http://kwarc.info/kohlhase}}
+% {\filedate})}}
+% \author{Michael Kohlhase\\
+%    FAU Erlangen-N\"urnberg\\
+%    \url{http://kwarc.info/kohlhase}\and
+%    Deyan Ginev\\Authorea\and 
+%    Rares Ambrus\\Jacobs University Bremen}
 % \maketitle
 %
 % \begin{abstract}
@@ -158,7 +166,7 @@
 % 
 % \subsection{Package Options}\label{sec:options}
 %
-% The |modules| package takes two options: If we set
+% The |modules| package takes six options: If we set
 % \DescribeMacro{showmods}|showmods|\ednote{This mechanism does not work yet, since we
 % cannot disable it when importing modules and that leads to unwanted boxes. What we need
 % to do instead is to tweak the sms utility to use an internal version that never shows
@@ -171,10 +179,15 @@
 % \DescribeMacro{noauxreq}|noauxreq| prohibits the registration of |\@requiremodules|
 % commands in the |aux| file. They are necessary for preloading the module signatures so
 % that entries in the table of contents can have semantic macros; but as they sometimes
-% cause trouble the option allows to turn off preloading.
+% cause trouble the option allows to turn off preloading. 
 % 
-% If the \DescribeMacro{showmeta}|showmeta| is set, then the metadata keys are shown
+% If the \DescribeMacro{showmeta}|showmeta| optin is set, then the metadata keys are shown
 % (see~\cite{Kohlhase:metakeys:ctan} for details and customization options).
+%
+% The \texttt{mh} option enables MathHub support; see~\cite{Kohlhase:mss:ctan}.
+%
+% Finally, if the \DescribeMacro{trwarn}|trwrn| is given, then the |modules| package only
+% gives warnings instead of hard errors when term references are unknown. 
 % 
 % \subsection{Semantic Macros}\label{sec:symdef}
 %
@@ -320,7 +333,7 @@
 % \subsection{Axiomatic Assumptions}\label{sec:user:assumptions}
 % 
 % In many ways, axioms and assumptions in definitions behave a lot like symbols
-% (see~\cite{RabKoh:WSMSML10} for discussion). Therefore we provide the macro
+% (see~\cite{RabKoh:WSMSML13} for discussion). Therefore we provide the macro
 % \DescribeMacro{\assdef}|\assdef| that can be used to mark up assumptions. Given a phrase
 % \meta{phrase} in a definition\ednote{only definitions?}, we can use
 % |\assdef{|\meta{name}|}{|\meta{phrase}|}| to give this the symbol name
@@ -347,20 +360,20 @@
 % \end{exfig}
 %
 % Semantic variables differ from semantic constants in two ways:
-% \begin{inparaenum}[\em i\rm)]
+% \begin{enumerate}
 % \item they do not participate
 % in the imports mechanism and
 % \item they generate markup with variables.
-% \end{inparaenum}
+% \end{enumerate}
 %  In the case of
 % Figure~\ref{fig:monoid} we (want to) have the \xml markup in Figure~\ref{fig:omsemvar}.
 % To associate the notation to the variables, we define semantic macros for them, here the
 % macro |\op| for the (semigroup) operation via the \DescribeMacro{\vardef}|\vardef|
 % macro. |\vardef| works exactly like, except
-% \begin{inparaenum}[\em i\rm)]
+% \begin{enumerate}
 % \item semantic variables are local to the current {\TeX} group and 
 % \item they generate variable markup in the \xml
-% \end{inparaenum}
+% \end{enumerate}
 % 
 % \begin{exfig}\lstset{basicstyle=\scriptsize,aboveskip=-.5em,belowskip=-1.5em}
 % \begin{tabular}{l|p{9.7cm}}
@@ -470,7 +483,7 @@
 % The \DescribeMacro{\metalanguage}|\metalanguage| macro is a variant of
 % \lstinline|importmodule| that imports the meta language, i.e. the language in which the
 % meaning of the new symbols is expressed. For mathematics this is often first-order logic
-% with some set theory; see~\cite{RabKoh:WSMSML10} for discussion. 
+% with some set theory; see~\cite{RabKoh:WSMSML13} for discussion. 
 % 
 % \subsection{Dealing with multiple Files}\label{sec:user:multiple}
 %
@@ -570,7 +583,7 @@
 %\begin{exfig}
 % \begin{verbatim}
 % \begin{omtext}
-%   \usemodule[../algebra/rings.tex]{ring}
+%   \usemodule[load=../algebra/rings.tex]{ring}
 %   We $R$ be a ring $(\rbase,\rplus,\rzero,\rminusOp,\rtimes,\rone)$, ...
 % \end{omtext}
 % \end{verbatim}
@@ -600,7 +613,7 @@
 % 
 % In this section we will discuss limitations and possible extensions of the |modules|
 % package. Any contributions and extension ideas are welcome; please discuss ideas,
-% requests, fixes, etc on the {\sTeX} TRAC~\cite{sTeX:online}.
+% requests, fixes, etc on the {\sTeX} TRAC~\cite{sTeX:github:on}.
 % 
 % \subsection{Perl Utility \texttt{sms}}\label{sec:limitations:sms}
 % 
@@ -608,7 +621,7 @@
 % signatures from \sTeX files. This considerably adds to the complexity of the \sTeX
 % installation and workflow. If we can solve security setting problems that allows us to
 % write to \sTeX module signatures outside the current directory, writing them from \sTeX
-% may be an avenue of future development see~\cite[issue \#1522]{sTeX:online} for a
+% may be an avenue of future development see~\cite[issue \#1522]{sTeX:github:on} for a
 % discussion.
 % 
 % \subsection{Qualified Imports}\label{sec:limitations:qualified-imports}
@@ -617,7 +630,7 @@
 % for importing macros with a disambiguating prefix (this is used whenever we have
 % conflicting names for macros inherited from different modules). This is not accessible
 % from the current interface. We need something like a |\importqualified| macro for this;
-% see~\cite[issue \#1505]{sTeX:online}. Until this is implemented the infrastructure is
+% see~\cite[issue \#1505]{sTeX:github:on}. Until this is implemented the infrastructure is
 % turned off by default, but we have already introduced the
 % \DescribeMacro{qualifiedimports}|qualifiedimports| option for the future.
 % 
@@ -699,7 +712,9 @@
 \DeclareOption{noauxreq}{\aux at reqfalse}
 \newif\ifmod at qualified\mod at qualifiedfalse
 \DeclareOption{qualifiedimports}{\mod at qualifiedtrue}
-\newif\if at mmt\@mmtfalse
+\newif\if at trwarn\@trwarnfalse
+\DeclareOption{trwarn}{\@trwarntrue}
+\newif\if at mmt\@mmtfalse 
 \DeclareOption{mmt}{\@mmttrue}
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}}
 \ProcessOptions
@@ -713,7 +728,7 @@
 % right version). For {\latexml}, we also initialize the package inclusions.
 %    \begin{macrocode}
 \RequirePackage{sref}
-\if at modules@mh@\RequirePackage{modules-mh}\fi 
+\if at modules@mh@\RequirePackage{modules-mh}\fi
 \if at mmt\RequirePackage{mmt}\fi
 \RequirePackage{xspace}
 \RequirePackage{mdframed}
@@ -735,6 +750,8 @@
 \addmetakey*{module}{creators}
 \addmetakey*{module}{contributors}
 \addmetakey*{module}{srccite}
+\addmetakey*{module}{align}[WithTheModuleOfTheSameName]
+\addmetakey*{module}{noalign}[true]
 %    \end{macrocode}
 % \end{macro}
 %
@@ -767,7 +784,7 @@
 % \begin{macro}{module at heading}
 %   Then we make a convenience macro for the module heading. This can be customized. 
 %    \begin{macrocode}
-\newcounter{module}[section]%
+\ifdef{\thesection}{\newcounter{module}[section]}{\newcounter{module}}%
 \newrobustcmd\module at heading{%
   \stepcounter{module}%
   \ifmod at show%
@@ -833,12 +850,9 @@
 %   problem?}\ednote{Jinbo: This part of code is extremely easy to generate bugs, cautiously edit this part of code.}\newline
 %   Naive understanding of this code: |#1| be will be expanded first, then |\this at module|, then |\active at defs|, then |\g at addto@macro|. 
 %    \begin{macrocode}
-\def\export at defs#1{%
-	\@ifundefined{mod at id}{}{%
-		\expandafter\expandafter\expandafter\g at addto@macro%
-                \expandafter\this at module\expandafter{\activate at defs{#1}}%
-	}%
-}%
+\def\export at defs#1{\@ifundefined{mod at id}{}{%
+\expandafter\expandafter\expandafter\g at addto@macro%
+\expandafter\this at module\expandafter{\activate at defs{#1}}}}%
 %    \end{macrocode}
 % \end{macro}
 %
@@ -911,11 +925,11 @@
         \relax% do nothing, it has already been loaded, else signal an error
 	  }{%
         \PackageError{modules}
-        {{Module Name Clash\MessageBreak
+        {Module Name Clash\MessageBreak
         A module with name #2 was already loaded under the path "\@path"\MessageBreak
         The imported path "\@load" is probably a different module with the\MessageBreak
         same name; this is dangerous -- not importing}%
-        {Check whether the Module name is correct}}%
+        {Check whether the Module name is correct}%
       }%
     }%
   \fi}%
@@ -1002,11 +1016,15 @@
 %   and it will not be added to the current module (i.e. we cannot inherit a local
 %   function).  Note, the optional key local does not need a value: we write
 %   |\symdef[local]{somefunction}[0]{some expansion}|. The other keys are not used in the
-%   {\LaTeX} part.
+%   {\LaTeX} part. 
 %    \begin{macrocode}
 \newif\if at symdeflocal%
 \srefaddidkey{symdef}%
 \define at key{symdef}{local}[true]{\@symdeflocaltrue}%
+\define at key{symdef}{noverb}[all]{}%
+\define at key{symdef}{align}[WithTheSymbolOfTheSameName]{}%
+\define at key{symdef}{specializes}{}%
+\addmetakey*{symdef}{noalign}[true]
 \define at key{symdef}{primary}[true]{}%
 \define at key{symdef}{assocarg}{}%
 \define at key{symdef}{bvars}{}%
@@ -1022,12 +1040,8 @@
 % \begin{macro}{\symdef}
 %    The the |\symdef|, and |\@symdef| macros just handle optional arguments.
 %    \begin{macrocode}
-\def\symdef{%
-  \@ifnextchar[{\@symdef}{\@symdef[]}%
-}%
-\def\@symdef[#1]#2{%
-  \@ifnextchar[{\@@symdef[#1]{#2}}{\@@symdef[#1]{#2}[0]}%
-}%
+\def\symdef{\@ifnextchar[{\@symdef}{\@symdef[]}}%
+\def\@symdef[#1]#2{\@ifnextchar[{\@@symdef[#1]{#2}}{\@@symdef[#1]{#2}[0]}}%
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1310,6 +1324,15 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\module at component}
+%   This macro computes the module component identifier for external links on term
+%   references. It is initially empty, but can be redefined later (e.g.in the |smultiling|
+%   package).
+%    \begin{macrocode}
+\newcommand\mod at component[1]{}
+%    \end{macrocode}
+% \end{macro}
+% 
 % \begin{macro}{\mod at termref} 
 %   |\mod at termref{|\meta{module}|}{|\meta{name}|}{|\meta{nl}|}| determines whether the
 %   macro |\module@|\meta{module}|@path| is defined. If it is, we make it the prefix of a
@@ -1317,19 +1340,26 @@
 %   otherwise we give a warning.\ednote{MK: this should be rethought, in particular the
 %   local reference does not work!}
 %    \begin{macrocode}
-\def\mod at termref#1#2#3{%
-  \def\@test{#3}%
+\newcommand\mod at termref[3]{\def\@test{#3}%
   \@ifundefined{module at defs@#1}{%
     \protect\G at refundefinedtrue%
-    \@latex at warning{\protect\termref with unidentified cd "#1": the cd key must reference an active module}%
-    \def\@label{sref@#2 at target}%
-  }%
-  {\def\@label{sref@#2@#1 at target}}%
-  \@ifundefined{module@#1 at path}% local reference
-    {\sref at hlink@ifh{\@label}{\ifx\@test\@empty #2\else #3\fi}}%
-    {\def\@uri{\csname module@#1 at path\endcsname.pdf\#\@label}%
-    \sref at href@ifh{\@uri}{\ifx\@test\@empty #2\else #3\fi}}%
+    \if at trwarn
+      \PackageWarning{modules}{`\protect\termref' with unidentified cd "#1":\MessageBreak
+        the cd key must reference an active module}%
+    \else
+      \PackageError{modules}{`\protect\termref' with unidentified cd "#1"}
+      {the cd key must reference an active module}%
+    \fi}%
+  {\def\@label{sref@#2@#1\mod at component{#1}@target}%
+    \@ifundefined{module@#1 at path}% local reference
+    {\sref at hlink@ifh{\@label}{\ifx\@test\@empty #2\else #3\fi}%
+%      \footnote{sTeX mod at termref: local reference to\\ \@label}
+    }%
+    {\def\@uri{\csname module@#1 at path\endcsname\mod at component{#1}.pdf\#\@label}%
+      \sref at href@ifh{\@uri}{\ifx\@test\@empty #2\else #3\fi}%
+%      \footnote{sTeX mod at termref: external reference to \\\@uri}
 }%
+  }}%
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1392,8 +1422,9 @@
 % \begin{macro}{\inputref}
 %   |\inputref{|\meta{path to the current file without extension}|}| supports both
 %   absolute path and relative path, meanwhile, records the path and the extension (not
-%   for relative path).  \ednote{MK: maybe do something with a non-standard
-%   (i.e. non-\texttt{tex}) extension with an optional argument?}
+%   for relative path).  \ednote{MK: the first (optional) argument is not used. Maybe do
+%   something with a non-standard (i.e. non-\texttt{tex}) extension with an optional
+%   argument?}
 %    \begin{macrocode}
 \newrobustcmd\inputref[2][]{%
   \def\@Slash{/}
@@ -1424,7 +1455,7 @@
 %    \begin{macrocode}
 \newrobustcmd\sinput[1]{%
   \PackageError{modules}%
-  {The \protect\sinput macro is deprecated}{use the \protect\input instead!}%
+  {The `\protect\sinput' macro is deprecated}{use the \protect\input instead!}%
 }%
 \newrobustcmd\sinputref[1]{%
   \PackageError{modules}%
@@ -1590,7 +1621,7 @@
 % LocalWords:  toks mixfixi mixfixa mixfixii mixfixia mixfixai mixfixiii arg cr OPaths
 % LocalWords:  undef tok PARAM thyid BerFieMas inparaenum omsemvar vardef vardef mhview
 % LocalWords:  getString showfalse showtrue xcomment stex srcref KeyVal omext osslepsdl13
-% LocalWords:  beginItemize getProperty introdcue afterOpen numberIt Tokenize mathhub
+% LocalWords:  beginItemize getProperty introdcue afterOpen numberIt Tokenize mathhub mmt
 % LocalWords:  OptionalSemiverbatim omdocmod PushValue assocarg getStomach prs HorIacJuc
 % LocalWords:  begingroup beginMode endMode endgroup insertElement resymdef sym cscpnrr11
 % LocalWords:  updir nargkey PresFormatters mixfixaii formatters argname expr behavior
@@ -1605,7 +1636,7 @@
 % LocalWords:  vspace hrule vspace arith arbitraryn xbool oplus xdisjunction tw mhinput
 % LocalWords:  emph capitalize ldots termref termref symref symref ctancite nc mhinputref
 % LocalWords:  smms hyperref RahObe hmlmh10 widehat texmf.cnf requiremodules cs 2oms04
-% LocalWords:  sinput sinputref sinputref cname csname 2oms04
+% LocalWords:  sinput sinputref sinputref cname csname 2oms04 if at mmt modules-mh pathsuris
 % LocalWords:  OPhats usepackage importqualified Crossreferencing jobname ltxml etoolbox
 % LocalWords:  jobname printbibliography textsf langle textsf langle textlangle listadd
 % LocalWords:  textrangle textlangle newif ifmod qualifiedfalse qualifiedtrue usemhmodule
@@ -1631,5 +1662,13 @@
 % LocalWords:  auxout omtext surroundwithmdframed ignorespaces NeedsTeXFormat lstinline
 %  LocalWords:  modularizations conventionalized initialize xstring srccite csgdef csxdef
 %  LocalWords:  customized newrobustcmd ifcsundef definedness providerobustcmd cpath
-%  LocalWords:  canonicalization canonicalize canoncalized RealAddrNum itemize
-%  LocalWords:  NEWrequiremodules
+%  LocalWords:  canonicalization canonicalize canoncalized RealAddrNum itemize mmtheory
+%  LocalWords:  NEWrequiremodules mmtheoryend ignorespacesafterend ignorespacesandpars
+%  LocalWords:  mmtinclude noexport withusedmodules catcode13 ignorespacesandparsafterend
+%  LocalWords:  ifhmode unskip mmtconstdec mmtconstdec
+
+% \endinput
+% Local Variables:
+% mode: doctex
+% TeX-master: t
+% End:

Modified: trunk/Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,12 +10,13 @@
 %   
 % \iffalse
 %<package|cls>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{omdoc}[2016/04/07 v1.2 OMDoc document Structure]
-%<cls>\ProvidesClass{omdoc}[2016/04/07 v1.2 OMDoc Documents]
+%<package>\ProvidesPackage{omdoc}[2019/03/20 v1.3 OMDoc document Structure]
+%<cls>\ProvidesClass{omdoc}[2019/03/20 v1.3 OMDoc Documents]
 %
 %<*driver>
 \documentclass{ltxdoc}
-\usepackage{url,array,omdoc,omtext,float}
+\usepackage[utf8]{inputenc}
+\usepackage{url,array,float}
 \usepackage[show]{ed}
 \usepackage[hyperref=auto,style=alphabetic]{biblatex}
 \addbibresource{kwarcpubs.bib}
@@ -23,13 +24,19 @@
 \addbibresource{kwarccrossrefs.bib}
 \addbibresource{extcrossrefs.bib}
 \usepackage{stex-logo}
+\usepackage{omdoc}
+\usepackage{omtext}
 \usepackage{ctangit}
 \usepackage{hyperref}
+\usepackage{paralist}
 \makeindex
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\begin{document}\DocInput{omdoc.dtx}\end{document}
+\begin{document}
+\RecordChanges
+\DocInput{omdoc.dtx}
+\end{document}
 %</driver>
 % \fi
 % 
@@ -46,6 +53,8 @@
 % \changes{v1.2}{2014/01/12}{front/backmatter}
 % \changes{v1.3}{2015/11/18}{removing keyval arg from document in favor of
 % \texttt{\textbackslash documentkeys} macro}
+% \changes{v1.3}{2018/09/10}{global variables and switches}
+% \changes{v1.3}{2018/12/03}{changed to keyval class/package options, allowed arbitrary classes}
 %
 % 
 % \MakeShortVerb{\|}
@@ -54,7 +63,7 @@
 % \def\latexml{{\LaTeX}ML}
 % \title{{\texttt{omdoc.sty/cls}}: Semantic Markup for Open Mathematical Documents in {\LaTeX}}
 %    \author{Michael Kohlhase\\
-%            Jacobs University, Bremen\\
+%            FAU Erlangen-N\"urnberg\\
 %            \url{http://kwarc.info/kohlhase}}
 % \maketitle
 %
@@ -95,7 +104,7 @@
 %  formatting/presentation.\ednote{integrate with latexml's XMRef in the Math mode.}
 % \end{omgroup}
 % 
-% \begin{omgroup}[id=sec:user]{The User Interface}\
+% \begin{omgroup}[id=sec:user]{The User Interface}
 % 
 %   The |omdoc| package generates two files: |omdoc.cls|, and |omdoc.sty|. The {\omdoc}
 %   class is a minimally changed variant of the standard |article| class that includes the
@@ -104,18 +113,21 @@
 %
 % \begin{omgroup}[id=sec:user:options]{Package and Class Options}
 % 
-%   The |omdoc| package and class accept the following options: 
+%   The |omdoc| class accept the following options: 
 %   \begin{center}
-%     \begin{tabular}{|l|l|}\hline
-%         \texttt{report} & load |report.cls| instead of |article.cls|\\\hline 
-%         \texttt{book}  & load |book.cls| instead of |article.cls|\\\hline 
+%     \begin{tabular}{|l|p{10cm}|}\hline
+%         \texttt{class=\meta{name}} & load \meta{name}|.cls| instead of |article.cls|\\\hline 
+%         \texttt{topsect=\meta{sect}} & The top-level sectioning level; the default for
+%         \meta{sect} is \texttt{section}\\\hline 
 %         \texttt{showignores} & show the the contents of the |ignore| environment after all \\\hline
 %         \texttt{showmeta} & show the metadata; see |metakeys.sty|\\\hline
 %         \texttt{showmods} & show modules; see |modules.sty|\\\hline
 %         \texttt{extrefs} & allow external references; see |sref.sty|\\\hline
 %         \texttt{defindex} & index definienda; see |statements.sty|\\\hline
+%         \texttt{mh} & MathHub support; see~\cite{Kohlhase:mss:ctan}\\\hline
 %     \end{tabular}
 %   \end{center}
+%   The |omdoc| package accepts the same except the first two.
 % \end{omgroup}
 % 
 % \begin{omgroup}[id=sec:user:struct]{Document Structure}
@@ -159,7 +171,7 @@
 %   correct level. Example~\ref{fig:docstruct} shows a typical setup for the outer
 %   document structure of a book with parts and chapters. We use two levels of
 %   |blindomgroup|:
-%   \begin{compactitem}
+%   \begin{itemize}
 %   \item The outer one groups the introductory parts of the book (which we assume to have
 %     a sectioning hierarchy topping at the part level). This |blindomgroup| makes sure
 %     that the introductory remarks become a ``chapter'' instead of a ``part''.
@@ -168,7 +180,7 @@
 %     the future.} and makes the preface of the book a section-level construct. Note that
 %     here the |display=flow| on the |omgroup| environment prevents numbering as is
 %     traditional for prefaces. 
-%   \end{compactitem}
+%   \end{itemize}
 %   \begin{exfig}
 % \begin{verbatim}
 % \begin{document}
@@ -238,6 +250,23 @@
 %   if we decide to keep them.}
 % \end{omgroup}
 % 
+% \begin{omgroup}[id=sec:user:gvars]{Global Variables}
+% 
+%   Text fragments and modules can be made more re-usable by the use of global
+%   variables. For instance, the admin section of a course can be made course-independent
+%   (and therefore re-usable) by using variables (actually token registers)
+%   |courseAcronym| and |courseTitle| instead of the text itself. The variables can then
+%   be set in the \sTeX preamble of the course notes file.
+%   \DescribeMacro{\setSGvar}|\setSGvar{|\meta{vname}|}{|\meta{text}|}| to set the global
+%   variable \meta{vname} to \meta{text} and
+%   \DescribeMacro{\useSGvar}|\useSGvar{|\meta{vname}|}| to reference it.
+%
+%   With \DescribeMacro{\ifSGvar}|\ifSGvar| we can test for the contents of a global
+%   variable: the macro call |\ifSGvar{|\meta{vname}|}{|\meta{val}|}{|\meta{ctext}|}|
+%   tests the content of the global variable \meta{vname}, only if (after expansion) it is
+%   equal to \meta{val}, the conditional text \meta{ctext} is formatted.
+% \end{omgroup}
+%
 % \begin{omgroup}[id=sec:user:colors]{Colors}
 % 
 %   For convenience, the |omdoc| package defines a couple of color macros for the |color|
@@ -254,11 +283,11 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item when option |book| which uses |\pagestyle{headings}| is given and semantic macros
 %   are given in the |omgroup| titles, then they sometimes are not defined by the time the
 %   heading is formatted. Need to look into how the headings are made. 
-% \end{compactenum}
+% \end{enumerate}
 % \end{omgroup}
 % 
 % \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\newpage\printbibliography}\newpage
@@ -270,30 +299,44 @@
 %   package provides the concrete functionality.
 % 
 % \begin{omgroup}[id=sec:impl:cls:options]{Class Options}
-%   To initialize the |omdoc| class, we declare and process the necessary options. For
+%   To initialize the |omdoc| class, we declare and process the necessary options using
+%   the |kvoptions| package for  key/value options handling. For
 %   |omdoc.cls| this is quite simple. We have options |report| and |book|, which set the
-%   \DescribeMacro{\omdoc at class}|\omdoc at class| macro and pass on the macro to |omdoc.sty|
-%   for further processing. The |book| option also sets the \DescribeMacro{\ifclass at book}
-%   conditional to true for the frontmatter handling later. 
+%   \DescribeMacro{\omdoc at cls@class}|\omdoc at cls@class| macro and pass on the macro to |omdoc.sty|
+%   for further processing. 
 % 
 %    \begin{macrocode}
 %<*cls>
-\def\omdoc at class{article}
-\DeclareOption{report}{\def\omdoc at class{report}%
-  \PassOptionsToPackage{\CurrentOption}{omdoc}
-  \PassOptionsToPackage{\CurrentOption}{stex}}
-\newif\ifclass at book\class at bookfalse 
-\DeclareOption{book}{\def\omdoc at class{book}\class at booktrue%
-  \PassOptionsToPackage{\CurrentOption}{omdoc}
-  \PassOptionsToPackage{\CurrentOption}{stex}}
+\RequirePackage{etoolbox}
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=omdoc at cls,prefix=omdoc at cls@}
+\DeclareStringOption[article]{class}
+\AddToKeyvalOption*{class}{\PassOptionsToPackage{class=\omdoc at cls@class}{omdoc}}
 %    \end{macrocode}
+%
+% the following options are deprecated.
+%
+%    \begin{macrocode}
+\DeclareVoidOption{report}{\def\omdoc at cls@class{report}%
+\ClassWarning{omdoc}{the option 'report' is deprecated, use 'class=report', instead}}
+\DeclareVoidOption{book}{\def\omdoc at cls@class{book}%
+\ClassWarning{omdoc}{the option 'part' is deprecated, use 'class=book', instead}}
+\DeclareVoidOption{bookpart}{\def\omdoc at cls@class{book}%
+\PassOptionsToPackage{topsect=chapter}{omdoc}%
+\ClassWarning{omdoc}{the option 'bookpart' is deprecated, use 'class=book,topsect=chapter', instead}}
+%    \end{macrocode}
 % the rest of the options are only passed on to |omdoc.sty| and the class selected by the
-% first options.  
+% first options.  We need to load the |etoolbox| package early for |\@xappto|. 
 %    \begin{macrocode}
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\omdoc at class}
-                           \PassOptionsToPackage{\CurrentOption}{omdoc}
-                           \PassOptionsToPackage{\CurrentOption}{stex}}
-\ProcessOptions
+\def\@omdoc at cls@docopt{}
+\DeclareDefaultOption{%
+\ifx\@omdoc at cls@docopt\@empty%
+\xdef\@omdoc at cls@docopt{\CurrentOption}%
+\else\xappto\@omdoc at cls@docopt{,\CurrentOption}%
+\fi}%
+\PassOptionsToPackage{\CurrentOption}{omdoc}
+\PassOptionsToPackage{\CurrentOption}{stex}
+\ProcessKeyvalOptions{omdoc at cls}
 %    \end{macrocode}
 %
 % We load |article.cls|, and the desired packages. For the {\latexml} bindings, we make
@@ -300,8 +343,7 @@
 % sure the right packages are loaded.
 %
 %    \begin{macrocode}
-\LoadClass{\omdoc at class}
-\RequirePackage{etoolbox}
+\LoadClass[\@omdoc at cls@docopt]{\omdoc at cls@class}
 \RequirePackage{omdoc}
 \RequirePackage{stex}
 %    \end{macrocode}
@@ -319,7 +361,6 @@
 \srefaddidkey{document}
 \newcommand\documentkeys[1]{\metasetkeys{document}{#1}}
 \let\orig at document=\document
-\srefaddidkey{document}
 \renewcommand{\document}[1][]{\metasetkeys{document}{#1}\orig at document}
 %</cls>
 %    \end{macrocode}
@@ -333,29 +374,44 @@
 %
 %   We declare some switches which will modify the behavior according to the package
 %   options. Generally, an option |xxx| will just set the appropriate switches to true
-%   (otherwise they stay false). The |report| and |book| options affect the sectioning
-%   behavior of the |omgroup| environment via the
-%   \DescribeMacro{\section at level}|\section at level| macro later.
+%   (otherwise they stay false).
 %
 %    \begin{macrocode}
 %<*package>
-\newif\ifshow at ignores\show at ignoresfalse
-\DeclareOption{showignores}{\show at ignorestrue}
-\newcount\section at level\section at level=2
-\DeclareOption{report}{\section at level=0}
-\DeclareOption{book}{\section at level=0}
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}}
-\ProcessOptions
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=omdoc at sty,prefix=omdoc at sty@}
+\DeclareBoolOption{mh}
+\DeclareStringOption[article]{class}
+\DeclareBoolOption{showignores}
+\DeclareStringOption[section]{topsect}
+\newcount\section at level 
+\DeclareDefaultOption{\PassOptionsToPackage{\CurrentOption}{sref}}
+\ProcessKeyvalOptions{omdoc at sty}
 %    \end{macrocode}
 %
 % Then we need to set up the packages by requiring the |sref| package to be loaded.
 %
 %    \begin{macrocode}
+\ifomdoc at sty@mh\RequirePackage{omdoc-mh}\fi
 \RequirePackage{sref}
 \RequirePackage{xspace}
 \RequirePackage{comment}
 \RequirePackage{pathsuris}
 %    \end{macrocode}
+%
+% Finally, we set the \DescribeMacro{\section at level}|\section at level| macro that governs
+% sectioning. The default is two (corresponding to the |article| class), then we set the
+% defaults for the standard classes |book| and |report| and then we take care of the
+% levels passed in via the |topsect| option.
+%
+%    \begin{macrocode}
+\section at level=2
+\ifdefstring{\omdoc at sty@class}{book}{\section at level=0}{}
+\ifdefstring{\omdoc at sty@class}{report}{\section at level=0}{}
+\ifdefstring{\omdoc at sty@topsect}{part}{\section at level=0}{}
+\ifdefstring{\omdoc at sty@topsect}{chapter}{\section at level=1}{}
+%    \end{macrocode}
+%
 % \end{omgroup}
 % 
 % \begin{omgroup}[id=sec:impl:struct]{Document Structure}
@@ -400,14 +456,19 @@
 %   convenience macro: |\omgroup at nonum{|\meta{level}|}{|\meta{title}|}| makes numbered
 %   sectioning with title \meta{title} at level \meta{level}. We have to check the |short|
 %   key was given in the |omgroup| environment and -- if it is use it. But how to do that
-%   depends on whether the |rdfmeta| package has been loaded.
+%   depends on whether the |rdfmeta| package has been loaded. In the end we call
+%   |\sref at label@id| to enable crossreferencing.
 %    \begin{macrocode}
 \newcommand\omgroup at num[2]{%
-\sref at label@id{\omdoc at sect@name~\@nameuse{the#1}}%
-\ifx\omgroup at short\@empty\@nameuse{#1}{#2}%
-\else\@ifundefined{rdfmeta at sectioning}{\@nameuse{#1}[\omgroup at short]{#2}}%
-{\@nameuse{rdfmeta@#1 at old}[\omgroup at short]{#2}}%
-\fi}
+\edef\@@ID{\sref at id}
+\ifx\omgroup at short\@empty% no short title
+\@nameuse{#1}{#2}%
+\else% we have a short title
+\@ifundefined{rdfmeta at sectioning}%
+  {\@nameuse{#1}[\omgroup at short]{#2}}%
+  {\@nameuse{rdfmeta@#1 at old}[\omgroup at short]{#2}}%
+\fi%
+\sref at label@id at arg{\omdoc at sect@name~\@nameuse{the#1}}\@@ID}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -430,8 +491,7 @@
 % run at the beginning of the |omgroup|, i.e. after the section heading.
 %    \begin{macrocode}
 \newif\if@@num\@@numtrue
-\newif\if at frontmatter\@frontmatterfalse
-\newif\if at backmatter\@backmatterfalse
+\newif\if at mainmatter\@mainmattertrue
 \newcommand\at at begin@omgroup[3][]{}
 %    \end{macrocode}
 %
@@ -448,7 +508,8 @@
 \if@@num% numbering not overridden by frontmatter, etc.
 \ifx\omdoc at sect@num\@true\omgroup at num{#2}{#3}\else\omgroup at nonum{#2}{#3}\fi%
 \def\current at section@level{\omdoc at sect@name}%
-\else\omgroup at nonum{#2}{#3}\fi}
+\else\omgroup at nonum{#2}{#3}%
+\fi}% if@@num
 %    \end{macrocode}
 % and another one, if redefines the |\addtocontentsline| macro of {\LaTeX} to import the
 % respective macros. It takes as an argument a list of module names.\ednote{MK: the
@@ -455,13 +516,17 @@
 % extension sms is hard-coded here, but should not be. This will not work in multilingual
 % settings.}
 %    \begin{macrocode}
-\newcommand\omgroup at redefine@addtocontents[1]{\edef\@@import{#1}%
-\@for\@I:=\@@import\do{\edef\@path{\csname module@\@I  @path\endcsname}%
-\@ifundefined{tf at toc}\relax{\protected at write\tf at toc{}{\string\@requiremodules{\@path}{sms}}}}
+\newcommand\omgroup at redefine@addtocontents[1]{%
+\edef\@@import{#1}%
+\@for\@I:=\@@import\do{%
+\edef\@path{\csname module@\@I  @path\endcsname}%
+\@ifundefined{tf at toc}\relax%
+     {\protected at write\tf at toc{}{\string\@requiremodules{\@path}{sms}}}}
 \ifx\hyper at anchor\@undefined% hyperref.sty loaded?
 \def\addcontentsline##1##2##3{%
 \addtocontents{##1}{\protect\contentsline{##2}{\string\withusedmodules{#1}{##3}}{\thepage}}}
-\else\def\addcontentsline##1##2##3{%
+\else% hyperref.sty not loaded
+\def\addcontentsline##1##2##3{%
 \addtocontents{##1}{\protect\contentsline{##2}{\string\withusedmodules{#1}{##3}}{\thepage}{\@currentHref}}}%
 \fi}% hypreref.sty loaded?
 %    \end{macrocode}
@@ -472,7 +537,7 @@
 \newenvironment{omgroup}[2][]% keys, title
 {\metasetkeys{omgroup}{#1}\sref at target%
 \ifx\omgroup at display\st at flow\@@numfalse\fi
-\if at frontmatter\@@numfalse\fi
+\if at mainmatter\else\@@numfalse\fi
 %    \end{macrocode}
 % If the |loadmodules| key is set on |\begin{omgroup}|, we redefine the |\addcontetsline|
 %   macro that determines how the sectioning commands below construct the entries for the
@@ -485,7 +550,7 @@
 % now we only need to construct the right sectioning depending on the value of
 % |\section at level|.
 %    \begin{macrocode}
-\advance\section at level by 1
+\advance\section at level by 1\relax%
 \ifcase\section at level%
 \or\omdoc at sectioning[name=Part,clear,num]{part}{#2}%
 \or\omdoc at sectioning[name=Chapter,clear,num]{chapter}{#2}%
@@ -515,35 +580,45 @@
 % \end{macro}
 % 
 % \begin{environment}{frontmatter}
-%   |book.cls| already has a |\frontmatter| macro, so we have to redefine the front
-%   matter environment in this case.
+%   some classes (e.g. |book.cls|) already have |\frontmatter|, |\mainmatter|, and
+%   |\backmatter| macros. As we want to define |frontmatter| and |backmatter|
+%   environments, we save their behavior (possibly defining it) in |orig@*matter| macros
+%   and make them undefined (so that we can define the environments).
 %    \begin{macrocode}
 %<*cls>
-\ifclass at book
-\renewenvironment{frontmatter}
-{\@frontmattertrue\cleardoublepage\@mainmatterfalse\pagenumbering{roman}}
-{\@frontmatterfalse\setcounter{page}{1}\pagenumbering{arabic}}
-\else
+\ifcsdef{frontmatter}% to redefine if necessary
+  {\cslet{orig at frontmatter}{\frontmatter}\cslet{frontmatter}{\relax}}
+  {\cslet{orig at frontmatter}{\clearpage\@mainmatterfalse\pagenumbering{roman}}}
+\ifcsdef{backmatter}% to redefine if necessary
+  {\cslet{orig at backmatter}{\backmatter}\cslet{backmatter}{\relax}}
+  {\cslet{orig at backmatter}{\clearpage\@mainmatterfalse\pagenumbering{roman}}}
+%    \end{macrocode}
+% \end{environment}
+% 
+% \begin{environment}{frontmatter}
+%   now we can define the environments
+%    \begin{macrocode}
 \newenvironment{frontmatter}
-{\@frontmattertrue\pagenumbering{roman}}
-{\@frontmatterfalse\setcounter{page}{1}\pagenumbering{arabic}}
-\fi
-%    \End{macrocode}
+{\orig at frontmatter}
+{\ifcsdef{mainmatter}{}{\clearpage\@mainmattertrue\pagenumbering{arabic}}}
+%    \end{macrocode}
 % \end{environment}
 %
 % \begin{environment}{backmatter}
-%   |book.cls| already has a |\backmatter| macro, so we have to redefine the back
-%   matter environment in this case.
+%   some classes (e.g. |book.cls|) already have a |\backmatter| macro. We use that
+%   (possibly defining it). 
 %    \begin{macrocode}
-\ifclass at book
-\renewenvironment{backmatter}
-{\cleardoublepage\@mainmatterfalse\@backmattertrue}
-{\@backmatterfalse}
-\else
-\newenvironment{backmatter}{\@backmattertrue}{\@backmatterfalse}
-\fi
-%</cls>
+\newenvironment{backmatter}
+{\orig at backmatter}
+{\ifcsdef{mainmatter}{}{\clearpage\@mainmattertrue\pagenumbering{arabic}}}
 %    \end{macrocode}
+%
+% finally, we make sure that page numbering is arabic.
+%
+%    \begin{macrocode}
+\pagenumbering{arabic}
+%</cls> 
+%    \end{macrocode}
 % \end{environment}
 % \end{omgroup}
 %
@@ -551,7 +626,7 @@
 % \begin{environment}{ignore}
 %    \begin{macrocode}
 %<*package>
-\ifshow at ignores
+\ifomdoc at sty@showignores
 \addmetakey{ignore}{type}
 \addmetakey{ignore}{comment}
 \newenvironment{ignore}[1][]
@@ -570,7 +645,7 @@
 \def\LXMID#1#2{\expandafter\gdef\csname xmarg#1\endcsname{#2}\csname xmarg#1\endcsname}
 \def\LXMRef#1{\csname xmarg#1\endcsname}
 %    \end{macrocode}
-
+%
 % \begin{macro}{\STRlabel}
 %    The main macro, it it used to attach a label to some text expansion. Later on, using the
 %    |\STRcopy| macro, the author can use this label to get the expansion originally assigned.
@@ -605,6 +680,31 @@
 % \end{macro}
 % \end{omgroup}
 % 
+% \begin{omgroup}[id=sec:impl:gvars]{Global Variables}
+%
+% \begin{macro}{\setSGvar}
+%   set a global variable
+%    \begin{macrocode}
+\newcommand\setSGvar[1]{\@namedef{sTeX at Gvar@#1}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\useSGvar}
+%   use a global variable
+%    \begin{macrocode}
+\newcommand\useSGvar[1]{\@nameuse{sTeX at Gvar@#1}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifSGvar}
+%   set a global variable
+%    \begin{macrocode}
+\newcommand\ifSGvar[3]{\def\@test{#2}\expandafter\ifx\csname sTeX at Gvar@#1\endcsname\@test #3\fi}
+%    \end{macrocode}
+% \end{macro}
+%
+% \end{omgroup}
+%
 % \begin{omgroup}[id=sec:impl:colors]{Colors}
 % 
 % \begin{environment}{blue, red, green, magenta}
@@ -637,7 +737,7 @@
 % LocalWords:  RequirePackage RegisterNamespace namespace xsl DocType ltxml dtd DAG hline
 % LocalWords:  ltx DefEnvironment beforeDigest AssignValue inPreamble getGullet rangle
 % LocalWords:  afterDigest keyval omgroup DefKeyVal Semiverbatim KeyVal srcf frontmatter
-% LocalWords:  OptionalKeyVals DefParameterType IfBeginFollows skipSpaces CMP rangle
+% LocalWords:  OptionalKeyVals DefParameterType IfBeginFollows skipSpaces CMP rangle xdef
 % LocalWords:  ifNext DefMacro needwrapper unlist DefConstructor omtext bgroup showmods
 % LocalWords:  useCMPItemizations RefStepItemCounter egroup beginItemize li di pathsuris
 % LocalWords:  beforeDigestEnd dt autoclose ul ol dl env showignores srcref Cwd rdfmeta
@@ -659,14 +759,24 @@
 % LocalWords:  parttrue srefaddidkey newenvironment textbf compactenum showmeta tf at toc
 % LocalWords:  noindent noindent ignorespaces ifnum thepart thechapter regexp color.sty
 % LocalWords:  thesection thesubsection thesubsubsection needswrapper itshape xmarg xmarg
-% LocalWords:  textgreater renewenvironment excludecomment STRlabeldef csname
-% LocalWords:  expandafter endcsname xref newcommand gdef doctex metakeys Hacky
+% LocalWords:  textgreater renewenvironment excludecomment STRlabeldef csname Section,num
+% LocalWords:  expandafter endcsname xref newcommand gdef doctex metakeys Hacky arabic
 % LocalWords:  metasetkeys addmetakey printindex providecommand jobname.ind importmodules
 % LocalWords:  jobname.ind tocdepth hateq ensuremath xspace hatequiv equiv NeedsTeXFormat
-% LocalWords:  textleadsto leadsto etoolbox blindomgroup blindomgroup docstruct
-% LocalWords:  compactitem exfig vspace currentsectionlevel currentsectionlevel
+% LocalWords:  textleadsto leadsto etoolbox blindomgroup blindomgroup docstruct setSGvar
+% LocalWords:  compactitem exfig vspace currentsectionlevel currentsectionlevel setSGvar
 % LocalWords:  ldots URLBASE ifclass bookfalse booktrue currentsetionlevel thedocument at ID
-% LocalWords:  nonum phantomsection nameuse numtrue numfalse contentsline unnum
+% LocalWords:  nonum phantomsection nameuse numtrue numfalse contentsline unnum vname
 % LocalWords:  thepage hypreref.sty ifcase cleardoublepage frontmatterfalse customization
-% LocalWords:  frontmattertrue pagenumbering setcounter hyperref.sty addcontetsline
-%  LocalWords:  mfirstuc.sty internationalize documentkeys withusedmodules
+% LocalWords:  frontmattertrue pagenumbering setcounter hyperref.sty addcontetsline ctext
+%  LocalWords:  mfirstuc.sty internationalize documentkeys withusedmodules Part,clear,num
+
+% \endinput
+% Local Variables:
+% mode: doctex
+% TeX-master: t
+% End:
+%  LocalWords:  crossreferencing Chapter,clear,num Subsection,num Subsubsection,num cslet
+%  LocalWords:  Paragraph,ref Subparagraph,ref useSGvar useSGvar ifSGvar ifSGvar topsect
+%  LocalWords:  sTeX at Gvar kvoptions omdoc at cls,prefix book,topsect xappto omdoc at sty,prefix
+%  LocalWords:  ifdefstring ifcsdef cslet

Modified: trunk/Master/texmf-dist/source/latex/stex/omtext/omtext.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/omtext/omtext.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/omtext/omtext.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,12 +10,14 @@
 %   
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{omtext}[2016/04/07 v1.1 OMDoc Text Fragments]
+%<package>\ProvidesPackage{omtext}[2019/03/20 v1.1 OMDoc Text Fragments]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{url,array,float,amsfonts}
 \usepackage{omtext,omdoc}
+\usepackage{graphicx}
 \usepackage[show]{ed}
 \usepackage[hyperref=auto,style=alphabetic]{biblatex}
 \addbibresource{kwarcpubs.bib}
@@ -29,8 +31,11 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{omtext.dtx}\end{document}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\begin{document}
+\RecordChanges
+\DocInput{omtext.dtx}
+\end{document}
 %</driver>
 % \fi
 % 
@@ -59,7 +64,7 @@
 % \title{\texttt{omtext}: Semantic Markup for Mathematical Text Fragments in {\LaTeX}\thanks{Version {\fileversion} (last revised
 %        {\filedate})}}
 %    \author{Michael Kohlhase\\
-%            Jacobs University, Bremen\\
+%            FAU Erlangen-N\"urnberg\\
 %            \url{http://kwarc.info/kohlhase}}
 % \maketitle
 %
@@ -177,13 +182,13 @@
 %   A more complex example has multiple identifiers embedded in a restriction, as in ``Let
 %   $x,y,z\in\mathbb{R}$, such that $x+2y=z$, then \ldots'', which we mark up as
 % \begin{verbatim}
-% Let \vdec{\vids[x,y,z]{$\minset{x,y,z}\Reals$}, 
+% Let \vdec[x,y,z]{\vcond$\minset{x,y,z}\Reals$}, 
 %    such that \vrest{$x+2y=z$}}, then \ldots''
 % \end{verbatim}
-%   \ednote{explain and make better examples}\ednote{unify this with the vardef macros
-%   from (currently) the modules package.}\ednote{talk with Frederic about this see what
-%   other examples there are.}\ednote{how do we identify the variables in complex
+%   \ednote{explain and make better examples}\ednote{talk with Frederic about this see
+%   what other examples there are.}\ednote{how do we identify the variables in complex
 %   restriction patterns. maybe with LMXref, which we should reinstate for this.}
+%   \ednote{document strucdec and impdec}
 % \end{omgroup}
 % 
 % \begin{omgroup}[id=sec:user:block]{Block-Level Markup}
@@ -222,42 +227,69 @@
 %   package and class make the usual |\index| macro undefined\ednote{implement this and
 %     issue the respective error message}.
 % 
-%   The \DescribeMacro{\indextoo}|\indextoo| macro renders a word and marks it for the
-%   index. Sometimes, we want to index a slightly different form of the word, e.g. for
-%   non-standard plurals: while |\indextoo{word}s| works fine, we cannot use this for the
-%   word ``datum'', which has the plural ``data''. For this we have the macro
-%   \DescribeMacro{\indexalt}|\indexalt|, which takes another argument for the displayed
-%   text, allowing us to use |\indexalt{data}{datum}|, which prints ``data'' but puts
-%   ``datum'' into the index.
-% 
-%   The second set of macros adds an infrastructure for two-word compounds. Take for
-%   instance the compound ``OMDoc document'', which we usually want to add into the index
-%   under ``OMDoc'' and ``document''. \DescribeMacro{\twintoo}|\twintoo{OMDoc}{document}|
-%   is a variant of |\indextoo| that will do just this. Again, we have a version that
-%   prints a variant: This is useful for situations like this the one in
-%   Figure~\ref{fig:index-markup}:
+%     The \DescribeMacro{\indi}|\indi| macro renders a word and marks it for the
+%     index. Sometimes, we want to index a slightly different form of the word, e.g. for
+%     non-standard plurals: while |\indi{word}s| works fine, we cannot use this for the
+%     word ``datum'', which has the plural ``data''. For this we have the macro
+%     \DescribeMacro{\aindi}|\aindi|, which takes another argument for the displayed text,
+%     allowing us to use |\aindi{data}{datum}|, which prints ``data'' but puts ``datum''
+%     into the index.
+%   
+%     The second set of macros adds an infrastructure for multi-word compounds. Take for
+%     instance the compound ``OMDoc document'', which we usually want to add into the
+%     index under ``OMDoc'' and
+%     ``document''. \DescribeMacro{\indii}|\indii{OMDoc}{document}| is a variant of
+%     |\indi| that will do just this. Again, we have a version that prints a variant: This
+%     is useful for situations like this the one in Figure~\ref{fig:index-markup}:
 % \begin{exfig}
 % \begin{verbatim}
-% We call group \twinalt{Abelian}{Abelian}{group}, iff \ldots
+% We call group \aindii{Abelian}{Abelian}{group}, iff \ldots
 % \end{verbatim}
 % \vspace*{-1em}will result in the following
 % \begin{quote}
-%   We call group \twinalt{Abelian}{Abelian}{group}, iff \ldots
+%   We call group \aindii{Abelian}{Abelian}{group}, iff \ldots
 % \end{quote}
 % and put ``Abelian Group'' into the index.
 % \caption{Index markup}\label{fig:index-markup}
 % \end{exfig}
 % 
-% The third set of macros does the same for two-word compounds with adjectives,
-% e.g. ``wonderful OMDoc
-% document''. \DescribeMacro{\atwintoo}|\atwin{wonderful}{OMdoc}{document}| will make the
-% necessary index entries under ``wonderful'' and ``document''. Again, we have a variant
-% \DescribeMacro{\atwinalt}|\atwinalt| whose first argument is the alternative text.
+% Analogously, there are variants for tree/four-word compounds:
+% \DescribeMacro{\indiii}|\indiii|, \DescribeMacro{\aindiii}|\aindiii|,
+% \DescribeMacro{\indiv}|\indiv|, and \DescribeMacro{\aindiv}|\indiv|. For instance for
+% ``wonderful OMDoc
+% document''. \DescribeMacro{\indiii}|\atwin{wonderful}{OMdoc}{document}| will make the
+% necessary index entries under ``wonderful'' and ``document''.
+% 
+% Finally, there are variants \DescribeMacro{\Indi*}|\Indi|, |\Indii|, |\Indiii|, and
+% |\Indiv| that print the capitalized version of the word complex, and |\indis|,
+% |\indiis|, |\indiiis|, and |\indivs| that add a plurals, and ultimately
+% \DescribeMacro{\Indi*}|\Indis|, |\Indiis|, |\indiiis|, and |\Indivs| that print the
+% capitalized version of the plural.
 %
-% All index macros take an optional first argument that is used for ordering the
-% respective entries in the index.
+% All index macros take an optional first keyword argument: If the |loadmodules| key is
+% given, we import the module we are in, otherwise all the currently imported modules. We
+% do not have to require the module files, since the index is a the end of the
+% document. If the |at| key is given, then we use that for sorting in the index.
 % \end{omgroup}
 %
+% \begin{omgroup}[id=sec:user:misc]{Miscellaneous}
+%   
+%   We supply some text-level shortcuts for mathematical formulations, for instance \hateq
+%   for ``this corresponds to'' or \ergo for ``therefore''. They are semantic in the sense
+%   that they are used as special words -- not part of formulae, even though they look
+%   like mathematical symbols. The following table gives the full set.
+%   \begin{center}
+%     \DescribeMacro{\hateq}\DescribeMacro {\hatequiv}
+%     \DescribeMacro {\ergo}\DescribeMacro{\ogre}
+%     \begin{tabular}{|l|l|l|}\hline
+%         macro & pres. & stands for \\\hline
+%         |\hateq| & \hateq& this corresponds to\\
+%         |\hatequiv| & \hatequiv & this statement corresponds to\\
+%         |\ergo| &\ergo & therefore\\
+%         |\ogre| &\ogre & because of \\\hline
+%       \end{tabular}
+%     \end{center}
+%   \end{omgroup}
 % \end{omgroup}
 % 
 % \begin{omgroup}{Limitations}\label{sec:limitations}
@@ -265,9 +297,9 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item none reported yet
-% \end{compactenum}
+% \end{enumerate}
 % \end{omgroup}
 % 
 % \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography}\newpage
@@ -419,10 +451,25 @@
 %   development and may change at any time. Currently they are completely empty.
 % 
 % \begin{macrocode}
-\newcommand\vdec[1]{#1}
-\newcommand\vids[2][]{#2}
+\newcommand\vdec[2][]{#2}
 \newcommand\vrest[2][]{#2}
+\newcommand\vcond[2][]{#2}
 %    \end{macrocode}
+%
+% \begin{macro}{\strucdec}
+%   \ednote{document above}
+%    \begin{macrocode}
+\newcommand\strucdec[2][]{#2}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\impdec}
+%   \ednote{document above}
+%    \begin{macrocode}
+\newcommand\impdec[2][]{#2}
+%    \end{macrocode}
+% \end{macro}
+% 
 % \end{omgroup}
 %
 % \begin{omgroup}[id=sec:impl:block]{Block-Level Markup}
@@ -432,7 +479,7 @@
 \def\begin at sblockquote{\begin{quote}\sl}
 \def\end at sblockquote{\end{quote}}
 \def\begin@@sblockquote#1{\begin at sblockquote}
-\def\end@@sblockquote#1{\def\@@lec##1{{\rm ##1}}\@lec{#1}\end at sblockquote}
+\def\end@@sblockquote#1{\def\@@lec##1{\textrm{##1}}\@lec{#1}\end at sblockquote}
 \newenvironment{sblockquote}[1][]
   {\def\@opt{#1}\ifx\@opt\@empty\begin at sblockquote\else\begin@@sblockquote\@opt\fi}
   {\ifx\@opt\@empty\end at sblockquote\else\end@@sblockquote\@opt\fi}
@@ -443,7 +490,7 @@
 %    \begin{macrocode}
 \newenvironment{sboxquote}[1][]
 {\def\@@src{#1}\begin{mdframed}[leftmargin=.5cm,rightmargin=.5cm]}
-{\@lec{\rm\@@src}\end{mdframed}}
+{\@lec{\textrm\@@src}\end{mdframed}}
 %    \end{macrocode}
 % \end{environment}
 % 
@@ -473,8 +520,9 @@
 % \end{omgroup}
 % 
 % \begin{omgroup}[id=sec:impl:index]{Index Markup}
+%
 % \begin{macro}{\omdoc at index*}
-%   these are the main internal indexing commands -- dividing them into three is awful,
+%   these are the main internal indexing commands -- dividing them into four macros is awful,
 %   but I did not get list processing running. It makes sure that the modules necessary
 %   for interpreting the math in the index entries are loaded. If the |loadmodules| key is
 %   given, we import the module we are in otherwise all the currently imported modules. We
@@ -513,67 +561,57 @@
 \string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#2}!%
 \string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#3}!%
 \string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#4}%
-\else #2!#3\fi% loadmodules 
+\else #2!#3!#4\fi% loadmodules 
 }{\thepage}}%
 \endgroup\@esphack\fi}%ifindex
+\newcommand\omdoc at indexiv[5][]{\ifindex%
+\metasetkeys{omdoc at index}{#1}%
+\@bsphack\begingroup\@sanitize%
+\protected at write\@indexfile{}{\string\indexentry%
+{\ifx\omdoc at index@at\@empty\else\omdoc at index@at @\fi%
+\ifx\omdoc at index@loadmodules\@true%
+\string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#2}!%
+\string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#3}!%
+\string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#4}%
+\string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#5}%
+\else #2!#3!#4!#5\fi% loadmodules 
+}{\thepage}}%
+\endgroup\@esphack\fi}%ifindex
 %    \end{macrocode}
 % \end{macro}
 % 
 % Now, we make two interface macros that make use of this: 
 %
-% \begin{macro}{\indexalt}
+% \begin{macro}{\*indi*}
 %    \begin{macrocode}
-\newcommand\indexalt[3][]{{#2}\omdoc at indexi[#1]{#3}}               % word in text and index
+\newcommand\aindi[3][]{{#2}\omdoc at indexi[#1]{#3}}
+\newcommand\indi[2][]{{#2}\omdoc at indexi[#1]{#2}}
+\newcommand\indis[2][]{{#2}\omdoc at indexi[#1]{#2s}}
+\newcommand\Indi[2][]{{\captitalize{#2}}\omdoc at indexi[#1]{#2}}
+\newcommand\Indis[2][]{{\capitalize{#2}}\omdoc at indexi[#1]{#2s}}
+
+\newcommand\@indii[3][]{\omdoc at indexii[#1]{#2}{#3}\omdoc at indexii[#1]{#3}{#2}}
+\newcommand\aindii[4][]{#2\@indii[#1]{#3}{#4}}
+\newcommand\indii[3][]{{#2 #3}\@indii[#1]{#2}{#3}}
+\newcommand\indiis[3][]{{#2 #3s}\@indii[#1]{#2}{#3}}
+\newcommand\Indii[3][]{{\captitalize{#2 #3}}\@indii[#1]{#2}{#3}}
+\newcommand\Indiis[3][]{{\capitalize{#2 #3}}\@indii[#1]{#2}{#3}}
+
+\newcommand\@indiii[4][]{\omdoc at indexiii[#1]{#2}{#3}{#4}\omdoc at indexii[#1]{#3}{#2 (#4)}}
+\newcommand\aindiii[5][]{{#2}\@indiii[#1]{#3}{#4}{#5}}
+\newcommand\indiii[4][]{{#2 #3 #4}\@indiii[#1]{#2}{#3}{#4}}
+\newcommand\indiiis[4][]{{#2 #3 #4s}\@indiii[#1]{#2}{#3}{#4}}
+\newcommand\Indiii[4][]{\captitalize{#2 #3 #4}\@indiii[#1]{#2}{#3}{#4}}
+\newcommand\Indiiis[4][]{\capitalize{#2 #3 #4s}\@indiii[#1]{#2}{#3}{#4}}
+
+\newcommand\@indiv[5][]{\omdoc at indexiv[#1]{#2}{#3}{#4}{#5}}
+\newcommand\aindiv[6][]{#2\@indiv[#1]{#3}{#4}{#5}{#6}}
+\newcommand\indiv[5][]{{#2 #3 #4 #5}\@indiv[#1]{#2}{#3}{#4}{#5}}
+\newcommand\indivs[5][]{{#2 #3 #4 #5s}\@indiv[#1]{#2}{#3}{#4}{#5}}
+\newcommand\Indiv[5][]{\capitalize{#2 #3 #4 #5s}\@indiv[#1]{#2}{#3}{#4}{#5}}
+\newcommand\Indivs[5][]{\capitalize{#2 #3 #4 #5s}\@indiv[#1]{#2}{#3}{#4}{#5}}
 %    \end{macrocode}
 % \end{macro}
-%
-% \begin{macro}{\indextoo}
-%    \begin{macrocode}
-\newcommand\indextoo[2][]{{#2}\omdoc at indexi[#1]{#2}}               % word in text and index
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@twin}
-% this puts two-compound words into the index in various permutations
-%    \begin{macrocode}
-\newcommand\@twin[3][]{\omdoc at indexii[#1]{#2}{#3}\omdoc at indexii[#1]{#3}{#2}}
-%    \end{macrocode}
-% \end{macro}
-%
-% And again we have two interface macros building on this 
-%
-% \begin{macro}{\twinalt}
-%    \begin{macrocode}
-\newcommand\twinalt[4][]{#2\@twin[#1]{#3}{#4}}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\twinalt}
-%    \begin{macrocode}
-\newcommand\twintoo[3][]{{#2 #3}\@twin[#1]{#2}{#3}} % and use the word compound too
-%    \end{macrocode}
-% \end{macro}
-% 
-% \begin{macro}{\@atwin}
-%   this puts adjectivized two-compound words into the index in various
-%   permutations\ednote{what to do with the optional argument here and below?}
-%    \begin{macrocode}
-\newcommand\@atwin[4][]{\omdoc at indexiii[#1]{#2}{#3}{#4}\omdoc at indexii[#1]{#3}{#2 (#4)}}
-%    \end{macrocode}
-% \end{macro}
-% 
-% and the two interface macros for this case: 
-% \begin{macro}{\@atwinalt}
-%    \begin{macrocode}
-\newcommand\atwinalt[5][]{#2\@atwin[#1]{#3}{#4}{#4}}
-%    \end{macrocode}
-% \end{macro}
-% 
-% \begin{macro}{\atwintoo}
-%    \begin{macrocode}
-\newcommand\atwintoo[4][]{{#2 #3 #4}\@atwin[#1]{#2}{#3}{#4}}         % and use it too
-%    \end{macrocode}
-% \end{macro}
 % \end{omgroup}
 % 
 % \begin{omgroup}[id=sec:impl:misc]{Miscellaneous}
@@ -580,18 +618,42 @@
 %   Some shortcuts that use math symbols but are not mathematical at all; in particular,
 %   they should not be translated by {\latexml}.
 %    \begin{macrocode}
-\newcommand\hateq{\ensuremath{\hat=}\xspace}
-\newcommand\hatequiv{\ensuremath{\hat\equiv}\xspace}
+\newcommand\hateq{\ensuremath{\widehat=}\xspace}
+\newcommand\hatequiv{\ensuremath{\widehat\equiv}\xspace}
 \@ifundefined{ergo}%
 {\newcommand\ergo{\ensuremath{\leadsto}\xspace}}%
 {\renewcommand\ergo{\ensuremath{\leadsto}\xspace}}%
 \newcommand{\reflect at squig}[2]{\reflectbox{$\m at th#1\rightsquigarrow$}}%
 \newcommand\ogre{\ensuremath{\mathrel{\mathpalette\reflect at squig\relax}}\xspace}%
-%</package>
+\newcommand\notergo{\ensuremath{\not\leadsto}}
+\newcommand\notogre{\ensuremath{\not\mathrel{\mathpalette\reflect at squig\relax}}\xspace}%
 %    \end{macrocode}
 %
 % \end{omgroup}
-%\end{omgroup}
+%
+% \begin{omgroup}{Deprecated Functionality}\label{sec:deprecated}
+%
+% In this section we centralize old interfaces that are only partially supported any
+% more. 
+% \begin{macro}{\*def*}
+%    \begin{macrocode}
+\newcommand\indextoo[2][]{\indi[#1]{#2}%
+\PackageWarning{omtext}{\protect\indextoo\space is deprecated, use \protect\indi\space instead}}
+\newcommand\indexalt[2][]{\aindi[#1]{#2}%
+\PackageWarning{omtext}{\protect\indextoo\space is deprecated, use \protect\aindi\space instead}}
+\newcommand\twintoo[3][]{\indii[#1]{#2}{#3}%
+\PackageWarning{omtext}{\protect\twintoo\space is deprecated, use \protect\indii\space instead}}
+\newcommand\twinalt[3][]{\aindii[#1]{#2}{#3}%
+\PackageWarning{omtext}{\protect\twinalt\space is deprecated, use \protect\aindii\space instead}}
+\newcommand\atwintoo[4][]{\indiii[#1]{#2}{#3}{#4}%
+\PackageWarning{omtext}{\protect\atwintoo\space is deprecated, use \protect\indiii\space instead}}
+\newcommand\atwinalt[4][]{\aindii[#1]{#2}{#3}{#4}%
+\PackageWarning{omtext}{\protect\atwinalt\space is deprecated, use \protect\aindiii\space instead}}
+%</package>
+%    \end{macrocode}
+% \end{macro}
+% \end{omgroup}
+% \end{omgroup}
 % \Finale
 \endinput
 % \iffalse

Modified: trunk/Master/texmf-dist/source/latex/stex/presentation/presentation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/presentation/presentation.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/presentation/presentation.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -9,10 +9,11 @@
 % 
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{presentation}[2016/04/07 v1.0 presentation for semantic macros]
+%<package>\ProvidesPackage{presentation}[2019/03/20 v1.0 presentation for semantic macros]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{url,array,float,amstext,alltt}
 \usepackage{modules,presentation,stex-logo}
 \usepackage[show]{ed}
@@ -27,8 +28,11 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{presentation.dtx}\end{document}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\begin{document}
+\RecordChanges
+\DocInput{presentation.dtx}
+\end{document}
 %</driver>
 % \fi
 % 
@@ -49,9 +53,9 @@
 % \changes{v0.9h}{2010/06/18}{considering done now}
 % \changes{v1.0}{2010/12/27}{adding \texttt{\textbackslash funapp}}
 % \changes{v1.0}{2011/01/28}{moving \texttt{\textbackslash funapp} and
+% \texttt{\textbackslash vname} (and friends) to new package {\texttt{cmath}}}
 % \changes{v1.0}{2012/11/09}{Moving LaTeXML bindings into \texttt{presentation.sty.ltxml} and
 % disabling generation}
-% \texttt{\textbackslash vname} (and friends) to new package {\texttt{cmath}}}
 % \GetFileInfo{presentation.sty}
 % 
 % \MakeShortVerb{\|}
@@ -70,9 +74,10 @@
 % \def\atwintoo#1#2#3{{#1 #2 #3}\atwin{#1}{#2}{#3}}
 % \title{{\texttt{presentation.sty}}: An Infrastructure for Presenting Semantic 
 %   Macros in {\stex}\thanks{Version {\fileversion} (last revised {\filedate})}}
-%    \author{Michael Kohlhase \& Deyan Ginev\\
-%            Jacobs University, Bremen\\
-%            \url{http://kwarc.info/kohlhase}}
+%    \author{Michael Kohlhase
+%    FAU Erlangen-N\"urnberg\\
+%    \url{http://kwarc.info/kohlhase}\and
+%    \& Deyan Ginev\\Authorea}
 % \date{\today}
 % \maketitle
 %
@@ -149,7 +154,7 @@
 % |\symdef| declarations. For marking up applications of symbolic functions in text we
 % should use the |\symdef|-defined semantic macros direct. For applications of function
 % variables we have two options:
-% \begin{compactenum}[\em i)]
+% \begin{enumerate}
 % \item direct prefix markup of the form |f(x)|, where we have declared the symbol |f| to
 %   be a function via the |function| key of the enclosing environment --- e.g. |omtext|
 %   (see~\cite{Kohlhase:smmtf*:svn}).
@@ -158,7 +163,7 @@
 %   such as $f_1^\prime$). Note that the default prefix rendering of the function is
 %   sufficient here, since we can otherwise make use of a user-defined application
 %   operator.
-% \end{compactenum}
+% \end{enumerate}
 % 
 % \subsection{Mixfix Notations}\label{sec:mixfix}
 % 
@@ -554,9 +559,9 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item none reported yet
-% \end{compactenum}
+% \end{enumerate}
 % 
 % \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography}
 %
@@ -986,6 +991,8 @@
 % \end{macro}
 %
 % \begin{macro}{\pmrow}
+%   \ednote{this does not work together with the robustification (using |newrobustcmd|)
+%   in |symdef|}
 %    \begin{macrocode}
 \def\pmrow#1{\expandafter\@gobble\x at mrow#1\endx at mrow,}
 \def\x at mrow#1,{&#1\x at mrow}
@@ -1040,3 +1047,9 @@
 % LocalWords:  arrayline arraycell qquad hrule cmath compactenum omtext smmtf
 % LocalWords:  wrongfrac elidability elidable renewcommand tabularnewline
 % LocalWords:  docsvlist refactorings
+
+% \endinput
+% Local Variables:
+% mode: doctex
+% TeX-master: t
+% End:

Modified: trunk/Master/texmf-dist/source/latex/stex/problem/problem.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/problem/problem.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/problem/problem.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -9,10 +9,11 @@
 % 
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{problem}[2016/04/07 v1.2 Semantic Markup for Problems]
+%<package>\ProvidesPackage{problem}[2019/03/20 v1.3 Semantic Markup for Problems]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{url,float,xspace}
 \usepackage[solutions,hints,notes]{problem}
 \usepackage[show]{ed}
@@ -29,8 +30,11 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{problem.dtx}\end{document}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\begin{document}
+\RecordChanges
+\DocInput{problem.dtx}
+\end{document}
 %</driver>
 % \fi
 % 
@@ -42,6 +46,7 @@
 % \changes{v1.0}{2013/10/09}{adding \texttt{\textbackslash start/stopsolution}}
 % \changes{v1.1}{2013/12/12}{adding MathHub support}
 % \changes{v1.2}{2015/11/04}{moving MathHub support out to separate package}
+% \changes{v1.3}{2018/11/23}{Addint Multiple Choice Blocks}
 % 
 % \GetFileInfo{problem.sty}
 % 
@@ -50,7 +55,7 @@
 % \title{\texttt{problem.sty}: An Infrastructure for formatting Problems\thanks{Version {\fileversion} (last revised
 %        {\filedate})}}
 %    \author{Michael Kohlhase\\
-%            Jacobs University, Bremen\\
+%            FAU Erlangen-N\"urnberg\\
 %            \url{http://kwarc.info/kohlhase}}
 % \maketitle
 %
@@ -156,8 +161,6 @@
 % in a |problem| environment to give hints and to make notes that elaborate certain aspects
 % of the problem.
 %
-% \subsection{Starting and Stopping Solutions}
-% 
 % Sometimes we would like to locally override the |solutions| option we have given to the
 % package. To turn on solutions we use the
 % \DescribeMacro{\startsolutions}|\startsolutions|, to turn them off,
@@ -164,6 +167,55 @@
 % \DescribeMacro{\stopsolutions}|\stopsolutions|. These two can be used at any point in
 % the documents. 
 %
+% \subsection{Multiple Choice Blocks}\label{sec:user:mcq}
+% 
+% Multiple choice blocks can be formatted using the \DescribeMacro{mcb}|mcb| environment,
+% in which single choices are marked up with
+% \DescribeMacro{\mcc}|\mcc[|\meta{keyvals}|]{|\meta{text}|}| macro, which takes an
+% optional key/value argument \meta{keyvals} for choice metadata and a required argument
+% \meta{text} for the proposed answer text. The following keys are supported
+% \begin{itemize}
+% \item \DescribeMacro{T}|T| for true answers, \DescribeMacro{F}|F| for false ones,
+% \item \DescribeMacro{Ttext}|Ttext| the verdict for true answers,
+%   \DescribeMacro{Ftext}|Ftext| for false ones, and
+% \item \DescribeMacro{feedback}|feedback| for a short feedback text given to the student.
+% \end{itemize}
+% See Figure~\ref{fig: mcq} for an example
+%\begin{exfig}
+% \begin{verbatim}
+% \begin{problem}[title=Functions]
+%   What is the keyword to introduce a function definition in python?
+%   \begin{mcb}
+%     \mcc[T]{def}
+%     \mcc[F,feedback=that is for C and C++]{function}
+%     \mcc[F,feedback=that is for Standard ML]{fun}
+%     \mcc[F,Ftext=Nooooooooo,feedback=that is for Java]{public static void}
+%   \end{mcb}
+% \end{problem}
+% \end{verbatim}
+%  \solutionsfalse\hrule
+% \begin{problem}[title=Functions]
+%   What is the keyword to introduce a function definition in python?
+%   \begin{mcb}
+%     \mcc[T]{def}
+%     \mcc[F,feedback=that is for C and C++]{function}
+%     \mcc[F,feedback=that is for Standard ML]{fun}
+%     \mcc[F,Ftext=Nooooooooo,feedback=that is for Java]{public static void}
+%   \end{mcb}
+% \end{problem}
+% \solutionstrue\hrule
+% \begin{problem}[title=Functions]
+%   What is the keyword to introduce a function definition in python?
+%   \begin{mcb}
+%     \mcc[T]{def}
+%     \mcc[F,feedback=that is for C and C++]{function}
+%     \mcc[F,feedback=that is for Standard ML]{fun}
+%     \mcc[F,Ftext=Nooooooooo,feedback=that is for Java]{public static void}
+%   \end{mcb}
+% \end{problem}
+% \caption{A Problem with a multiple choice block}\label{fig:mcq}
+% \end{exfig}
+% 
 % \subsection{Including Problems}\label{sec:user:includeproblem}
 % 
 % The \DescribeMacro{\includeproblem}|\includeproblem| macro can be used to include a
@@ -192,9 +244,9 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item none reported yet
-% \end{compactenum}
+% \end{enumerate}
 % 
 % \StopEventually{\newpage\PrintChanges}
 % \newpage
@@ -241,6 +293,7 @@
 %   |*.ldf| files. 
 %    \begin{macrocode}
 \AfterBabelLanguage{ngerman}{\input{problem-ngerman.ldf}}
+\AfterBabelLanguage{arabic}{\input{problem-arabic.ldf}}
 \def\prob at problem@kw{Problem}
 \def\prob at solution@kw{Solution}
 %    \end{macrocode}
@@ -277,7 +330,8 @@
 % \begin{macro}{\prob at number}
 %   We consolidate the problem number into a reusable internal macro
 % \begin{macrocode}
-\def\prob at number{\ifx\inclprob at refnum\@empty%
+\newcommand\prob at number{%
+\ifx\inclprob at refnum\@empty% if there is no outside refnumb
 \ifx\problem at refnum\@empty\prob at label\theproblem%
 \else\prob at label\problem at refnum\fi%
 \else\prob at label\inclprob at refnum\fi}
@@ -317,7 +371,7 @@
 \@in at omtexttrue% we are in a statement (for inline definitions)
 \stepcounter{problem}\record at problem%
 \def\current at section@level{\prob at problem@kw}%
-\par\noindent\textbf\prob at heading\show at pts\show at min\rm\noindent\ignorespaces}
+\par\noindent\textbf\prob at heading\show at pts\show at min\rmfamily\noindent\ignorespaces}
 {\smallskip}
 \ifboxed\surroundwithmdframed{problem}\fi
 %    \end{macrocode}
@@ -407,6 +461,39 @@
 \fi%ifhints
 %    \end{macrocode}
 % 
+% \subsection{Multiple Choice Blocks}\label{sec:impl:mcq}
+%
+% \begin{environment}{mcb}
+%   \ednote{MK: maybe import something better here from a dedicated MC package}
+%    \begin{macrocode}
+\newenvironment{mcb}
+{\begin{enumerate}}
+{\end{enumerate}}
+%    \end{macrocode}
+% \end{environment}
+% we define the keys for the |mcc| macro
+%    \begin{macrocode} 
+\srefaddidkey{mcc}
+\addmetakey{mcc}{feedback}
+\addmetakey[T]{mcc}{T}
+\addmetakey[F]{mcc}{F}
+\addmetakey[Yes]{mcc}{Ttext}
+\addmetakey[No]{mcc}{Ftext}
+%    \end{macrocode}
+%
+% \begin{macro}{\mcc}
+%    \begin{macrocode}
+\newcommand\mcc[2][]{%
+\metasetkeys{mcc}{#1}%
+\item #2%
+\ifsolutions\\%
+\ifcsstring{mcc at T}{T}{}{\mcc at Ttext}%
+\ifcsstring{mcc at F}{F}{}{\mcc at Ftext}%
+\ifx\mcc at feedback\@empty!\else, \mcc at feedback\fi%
+\fi} %solutions
+%    \end{macrocode}
+% \end{macro}
+% 
 % \subsection{Including Problems}\label{sec:impl:includeproblem}
 %
 % \begin{macro}{\includeproblem}

Modified: trunk/Master/texmf-dist/source/latex/stex/rfdmeta/rdfmeta.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/rfdmeta/rdfmeta.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/rfdmeta/rdfmeta.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,10 +10,11 @@
 % \iffalse
 %<*package>
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{rdfmeta}[2016/04/07 v0.2 Metadata key upgrades]
+\ProvidesPackage{rdfmeta}[2019/03/20 v0.2 Metadata key upgrades]
 %</package>
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage[sectioning]{rdfmeta}
 \usepackage{url,array,float,stex-logo}
 \usepackage[show]{ed}
@@ -31,10 +32,13 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
 \def\omdoc{OMDoc\xspace}
 \def\omdocv#1{OMDoc{#1}\xspace}
-\begin{document}\DocInput{rdfmeta.dtx}\end{document}
+\begin{document}
+\RecordChanges
+\DocInput{rdfmeta.dtx}
+\end{document}
 %</driver>
 % \fi
 %
@@ -51,7 +55,7 @@
 % \title{RDFa Metadata in {\LaTeX}\thanks{Version {\fileversion} (last revised
 %        {\filedate})}}
 % \author{Michael Kohlhase \\
-%         Jacobs University, Bremen\\
+%         FAU Erlangen-N\"urnberg\\
 %         \url{http://kwarc.info/kohlhase}}
 % \maketitle
 % \begin{abstract}
@@ -125,7 +129,7 @@
 % gives an overview over the key groups and their identifiers in \stex.
 % \begin{figure}
 % \begin{tabular}{|>{\tt}l|>{\tt}p{5.5cm}|>{\tt}p{2.4cm}|}\hline
-%   \rm\textbf{Key Group Identifier} & \rm\textbf{Macros} & \rm\textbf{Package/Class} \\\hline\hline 
+%   \rmfamily\textbf{Key Group Identifier} & \rmfamily\textbf{Macros} & \rmfamily\textbf{Package/Class} \\\hline\hline 
 %   dcm at person & DCMPerson & dcm.sty\\\hline
 %   dcm at institution & DCMInstitution & dcm.sty\\\hline
 %   dcm at sect & section & dcm.sty\\\hline
@@ -231,7 +235,7 @@
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
 %
-% \begin{compactenum}
+% \begin{enumerate}
 % \item Currently the coverage of the redefinitions of standard commands in the
 %   \url{rdfmeta} package is minimal; we will extend this in the future.
 % \item The |\rdfmeta at upgrade| macro only works with single arguments, this should be easy
@@ -245,7 +249,7 @@
 % \newcommand\keydefs[2]{\@for\@I:=#1\do{\keydef{#1}{#2}}}
 % \end{verbatim}
 % does not work for me. 
-% \end{compactenum}
+% \end{enumerate}
 % 
 % \StopEventually{\printbibliography}
 % 

Modified: trunk/Master/texmf-dist/source/latex/stex/smglom/smglom.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/smglom/smglom.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/smglom/smglom.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,11 +10,12 @@
 %   
 % \iffalse
 %<package|cls>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<cls>\ProvidesClass{smglom}[2016/04/07 v0.1 Semantic Multilingual Glossary for Math]
-%<sty>\ProvidesPackage{smglom}[2016/04/07 v0.1 Semantic Multilingual Glossary for Math]
+%<cls>\ProvidesClass{smglom}[2019/03/20 v0.1 Semantic Multilingual Glossary for Math]
+%<sty>\ProvidesPackage{smglom}[2019/03/20 v0.1 Semantic Multilingual Glossary for Math]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{url,array,omdoc,omtext,float}
 \usepackage[show]{ed}
 \usepackage[hyperref=auto,style=alphabetic]{biblatex}
@@ -29,8 +30,10 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{hstp://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{smglom.dtx}\end{document}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{hstp://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
+\begin{document}
+\DocInput{smglom.dtx}
+\end{document}
 %</driver>
 % \fi
 % 
@@ -42,12 +45,13 @@
 % 
 % \MakeShortVerb{\|}
 %
-% \def\omdoc{OMDoc}
-% \def\latexml{{\LaTeX}ML}
+% \def\omdoc{OMDoc\xspace}
+% \def\smglom{SMGloM\xspace}
+% \def\latexml{{\LaTeX}ML\xspace}
 % \title{{\texttt{smglom.cls/sty}}: Semantic Multilingual Glossary for Math}
 %    \author{Michael Kohlhase\\
-%            Jacobs University, Bremen\\
-%            \url{http://kwarc.info/kohlhase}}
+%    FAU Erlangen-N\"urnberg\\
+%    \url{http://kwarc.info/kohlhase}}
 % \maketitle
 %
 % \begin{abstract}
@@ -73,8 +77,52 @@
 %   them on to these. 
 % \end{omgroup}
 % 
+% \begin{omgroup}[id=user:modules]{Convenience Macros for \protect\smglom Modules}
+%   \ednote{document them}
 % \end{omgroup}
 % 
+% \begin{omgroup}[id=user:relations]{Terminological Relations}
+%   \ednote{document them}
+% \end{omgroup}
+% 
+% \begin{omgroup}[id=user:alignments]{Namespaces and Alignments}
+%   \ednote{MK: maybe this should go into some other module; it seems awfully
+%   foundational.} In \smglom, we often want to align the content of glossary modules to
+%   formalizations, e.g. to take advantage of type declarations there. The
+%   \DescribeMacro{\symalign}|\symalign| macro takes two regular arguments: the first is
+%   the name symbol declared in the current module (e.g. by a |\symi|), and the second the
+%   URI name of a symbol in an external theory in the form \meta{theory}|?|\meta{name}.
+%   
+%   As full MMT URIs are of the form \meta{URI}|?|\meta{theory}|?|\meta{name}, we need a
+%   way to specify the \meta{URI}. We adopt the system of \textbf{namespaces} of in MMT:
+%   the \DescribeMacro{\namespace} macro declares a namespace URI. If the optional
+%   argument is given, then this is a namespace abbreviation declaration, which can be
+%   used later, for instance in |\symalign| that takes an optional first argument: the
+%   namespace of the external theory. 
+% 
+%   The situation below is typical. We first declare the namespace abbreviation |sets| and
+%   then use the \DescribeMacro{\modalign}|\modalign| macro to specify that the external
+%   theory |sets:?ESet| is the default alignment target, i.e. any symbol that in the local
+%   |emptyset| module is aligned by default to the symbol with the same name in the
+%   external |sets:?ESet| theory. 
+%   
+% \begin{verbatim}
+% \begin{modsig}[creators=miko]{emptyset}
+%   \gimport{set}
+%   \namespace[sets]{http://mathhub.info/MitM/smglom/sets}
+%   \modalign[sets]{ESet}
+% 
+%  \symdef{eset}{\emptyset}
+%  \symi{non-empty}
+%  \symalign{non-empty}{ESet?non_empty}
+% \end{modsig}
+% \end{verbatim}
+% 
+%   The default alignment breaks down for the symbol |non-empty|, so we specify an
+%   alignment to the symbol |Eset?non_empty| via |\symalign|.
+% \end{omgroup}
+% \end{omgroup}
+% 
 % \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography}\newpage
 %
 % \begin{omgroup}[id=sec:impl:cls]{Implementation: The SMGloM Class}
@@ -126,7 +174,7 @@
 %    \end{macrocode}
 % \end{omgroup}
 % 
-% \begin{omgroup}[id=sec:module-defs]{For Module Definitions} %
+% \begin{omgroup}[id=impl:modules]{Convenience Macros for \protect\smglom Modules}
 % \begin{macro}{\gimport}
 % Just a shortcut, we have a starred and unstarred version, the first one is conservative.
 % For example, if we execute:\newline
@@ -170,8 +218,7 @@
 % \begin{macro}{guse}
 %   just a shortcut
 %    \begin{macrocode}
-\newrobustcmd\guse[2][]{%
-  \def\@test{#1}%
+\newrobustcmd\guse[2][]{\def\@test{#1}%
   \edef\mh@@repos{\mh at currentrepos}%
   \ifx\@test\@empty%
     \usemhmodule[repos=\mh@@repos,ext=tex,path=#2]{#2}%
@@ -184,6 +231,27 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{environment}{gstructure}
+%   we essentially copy over the definition of |mhstructure|, but adapt it to the \smglom
+%   situation.
+%    \begin{macrocode}
+\newenvironment{gstructure}[3][]{\def\@test{#1}%
+  \xdef\mh@@@repos{\mh at currentrepos}%
+  \ifx\@test\@empty%
+    \gdef\@@doit{\importmhmodule[repos=\mh@@@repos,path=#3,ext=tex]{#3}}%
+  \else%
+    \gdef\@@doit{\importmhmodule[repos=#1,path=#3,ext=tex]{#3}}%
+  \fi%
+  \ifmod at show\par\noindent structure import "#2" from module #3 \@@doit\fi%
+  \ignorespacesandpars}
+{\aftergroup\@@doit\ifmod at show end import\fi%
+  \ignorespacesandparsafterend}
+%    \end{macrocode}
+% \end{environment}
+% \end{omgroup}
+% 
+% \begin{omgroup}[id=impl:relations]{Terminological Relations}
+%
 % \begin{macro}{*nym}
 %    \begin{macrocode}
 \newrobustcmd\hypernym[3][]{\if at importing\else\par\noindent #2 is a hypernym of #3\fi}%
@@ -200,6 +268,27 @@
 % \end{macro}
 % \end{omgroup}
 % 
+% \begin{omgroup}[id=impl:alignments]{Namespaces and Alignments}
+%
+% \begin{macro}{\namespace}
+%    \begin{macrocode}
+\newcommand\namespace[2][]{\ignorespaces}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\modalign}
+%    \begin{macrocode}
+\newcommand\modalign[2][]{\ignorespaces}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\symalign}
+%    \begin{macrocode}
+\newcommand\symalign[3][]{\ignorespaces}
+%    \end{macrocode}
+% \end{macro}
+% \end{omgroup}
+%
 % \begin{omgroup}[id=sec:langbindings]{For Language Bindings}
 %
 % Here we adapt the |smultiling| functionality to the special situation, where the module
@@ -209,7 +298,7 @@
 %   The |gviewsig| environment is just a layer over the |mhviewsig| environment with the keys
 %   suitably adapted.
 %    \begin{macrocode}
-\newenvironment{gviewsig}[4][]{%
+\newenvironment{gviewsig}[4][]{% keys, id, from, to
   \def\test{#1}%
   \ifx\@test\@empty%
     \begin{mhviewsig}[frompath=#3,topath=#4]{#2}{#3}{#4}%
@@ -228,7 +317,7 @@
 %   The |gviewnl| environment is just a layer over the |mhviewnl| environment with the
 %   keys suitably adapted.
 %    \begin{macrocode}
-\newenvironment{gviewnl}[5][]{%
+\newenvironment{gviewnl}[5][]{% keys, id, lang, from, to
   \def\@test{#1}\ifx\@test\@empty%
     \begin{mhviewnl}[frompath=#4,topath=#5]{#2}{#3}{#4}{#5}%
   \else%
@@ -250,7 +339,7 @@
 % \end{macro}
 % \end{omgroup}
 % 
-% \begin{omgroup}{Authoring States}
+% \begin{omgroup}{Authoring States, etc}
 % We add a key to the module environment.
 %    \begin{macrocode}
 \addmetakey{module}{state}%
@@ -295,8 +384,15 @@
 %%% End: 
 % \fi
 
-% LocalWords:  iffalse cls smglo smglo.dtx omdoc latexml texttt smlog.cls sref SMGloM
+% LocalWords:  iffalse cls smglo smglo.dtx omdoc latexml texttt smlog.cls sref SMGloM ifx
 % LocalWords:  maketitle newpage tableofcontents newpage omgroup ednote ltxml smglom.dtx
 % LocalWords:  printbibliography showmeta metakeys amstext ginput newrobustcmd sproof cmath
 % LocalWords:  module-defs gimport renewrobustcmd langbindings gle newenvironment amsfonts
-% LocalWords:  doctex NeedsTeXFormat langfiles ngerman smultiling
+% LocalWords:  doctex NeedsTeXFormat langfiles ngerman smultiling xspace formalizations
+%  LocalWords:  symalign symalign symi textbf modalign modalign ESet emptyset initialize
+%  LocalWords:  stex impl:modules unstarred numberfields mh at currentrepos mh at repos 1,ext
+%  LocalWords:  importmhmodule mhcurrentrepos conservative,repos tex,path guse gstructure
+%  LocalWords:  ignorespacesandpars usemhmodule mhstructure xdef gdef 3,ext 1,path nym
+%  LocalWords:  ifmod at show noindent aftergroup ignorespacesandparsafterend impl:relations
+%  LocalWords:  impl:alignments newcommand begingroup catcode`_ gviewsig mhviewsig
+%  LocalWords:  3,topath gviewnl mhviewnl 4,topath gincludeview addmetakey

Modified: trunk/Master/texmf-dist/source/latex/stex/smultiling/smultiling.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/smultiling/smultiling.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/smultiling/smultiling.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,10 +10,11 @@
 %   
 % \iffalse
 %<sty>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<sty>\ProvidesPackage{smultiling}[2016/04/07 v0.1 Multilingual Support for sTeX]
+%<sty>\ProvidesPackage{smultiling}[2019/03/20 v0.2 Multilingual Support for sTeX]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{url,array,omdoc,omtext,float}
 \usepackage[show]{ed}
 \usepackage[hyperref=auto,style=alphabetic]{biblatex}
@@ -28,12 +29,15 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{hstp://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{hstp://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
 \def\smglom{\textsf{SMGloM}\xspace}
 \def\omdoc{\textsf{OMDoc}\xspace}
 \def\latexml{{\LaTeX}ML\xspace}
 \def\lmh{\textsf{lmh}\xspace}
-\begin{document}\DocInput{smultiling.dtx}\end{document}
+\begin{document}
+\RecordChanges
+\DocInput{smultiling.dtx}
+\end{document}
 %</driver>
 % \fi
 % 
@@ -40,6 +44,8 @@
 %\CheckSum{189}
 % 
 % \changes{v0.1}{2014/04/19}{First Version}
+% \changes{v0.2}{2017/10/15}{Adding a key-value argument to \texttt{\textbackslash symi}
+% and friends for GF metadata}
 %
 % 
 % \MakeShortVerb{\|}
@@ -47,9 +53,10 @@
 % \def\omdoc{OMDoc}
 % \def\latexml{{\LaTeX}ML}
 % \title{{\texttt{smultiling.sty}}: Multilinguality Support for \protect\sTeX}
-%    \author{Michael Kohlhase, Deyan Ginev\\
-%            Jacobs University, Bremen\\
-%            \url{http://kwarc.info/kohlhase}}
+%    \author{Michael Kohlhase\\
+%    FAU Erlangen-N\"urnberg\\
+%    \url{http://kwarc.info/kohlhase}\and
+%    Deyan Ginev\\Authorea}
 % \maketitle
 %
 % \begin{abstract}
@@ -68,13 +75,13 @@
 % 
 %\begin{omgroup}[id=sec:STR]{Introduction}
 %  We have been using \sTeX as the encoding for the Semantic Multilingual Glossary of
-%  Mathematics (\smglom; see~\cite{IanJucKoh:sps14}). The \smglom data model has been
-%  taxing the representational capabilities of \sTeX with respect to multilingual support
-%  and verbalization definitions; see~\cite{Kohlhase:dmesmgm14}, which we assume as
-%  background reading for this note.
+%  Mathematics (\smglom; see~\cite{GinIanJuc:spsttom16,SMGloM:gloss:on}). The \smglom data
+%  model has been taxing the representational capabilities of \sTeX with respect to
+%  multilingual support and verbalization definitions; see~\cite{Kohlhase:dmesmgm14},
+%  which we assume as background reading for this note.
 % 
 % \begin{omgroup}{\protect\sTeX Module Signatures}
-%   (monolingual) \sTeX had the intuition that the symbol definitions (|\symdef| and
+%   (Monolingual) \sTeX had the intuition that the symbol definitions (|\symdef| and
 %   |\symvariant|) are interspersed with the text and we generate \sTeX module signatures
 %   (SMS |*.sms| files) from the \sTeX files. The SMS duplicate ``formal'' information
 %   from the ``narrative'' \sTeX files. In the \smglom, we extend this idea by making the
@@ -91,8 +98,8 @@
 % \begin{module}[id=foo]
 % \symdef{bar}{BAR}
 % \begin{definition}[for=bar]
-%   A \defiii{big}{array}{raster} ($\bar$) is a\ldots, it is much bigger 
-%   than a \defiii[sar]{small}{array}{raster}.
+%   A \defiii{big}{array}{raster} ($\bar$) is a\ldots, it is much
+%   bigger than a \defiii[sar]{small}{array}{raster}.
 % \end{definition}
 % \end{module}
 % \end{verbatim}\vspace{-2em}
@@ -103,22 +110,22 @@
 % \begin{verbatim}
 % \usepackage{multiling}
 % \begin{modsig}{foo}
-% \symdef{bar}{BAR}
-% \symi{sar}
+%   \symdef{bar}{BAR}
+%   \symi[gfc=N]{sar}
 % \end{modsig}
 %
 % \begin{modnl}[creators=miko,primary]{foo}{en}
-% \begin{definition}
-%   A \defiii[bar]{big}{array}{raster} ($\bar$) is a\ldots, it is much bigger
-%   than a \defiii[sar]{small}{array}{raster}. 
-% \end{definition}
+%   \begin{definition}
+%     A \defiii[bar]{big}{array}{raster} ($\bar$) is a\ldots, it is much bigger
+%     than a \defiii[sar]{small}{array}{raster}. 
+%   \end{definition}
 % \end{modnl}
 %
 % \begin{modnl}[creators=miko]{foo}{de}
-% \begin{definition}
-%   Ein \defiii[bar]{gro"ses}{Feld}{Raster} ($\bar$) ist ein\ldots, es
-%   ist viel gr"o"ser als ein \defiii[sar]{kleines}{Feld}{Raster}. 
-% \end{definition}
+%   \begin{definition}
+%     Ein \defiii[bar]{gro"ses}{Feld}{Raster} ($\bar$) ist ein\ldots, es
+%     ist viel gr"o"ser als ein \defiii[sar]{kleines}{Feld}{Raster}. 
+%   \end{definition}
 % \end{modnl}
 % \end{verbatim}\vspace{-2em}
 % \caption{Multilingual \protect\sTeX for Figure \protect\ref{fig:stex-monolingual}.}
@@ -150,20 +157,22 @@
 %   of the module signature it provides language bindings for and the second the ISO 639
 %   language specifier of the content language. We add the |primary| key |modnl|, which
 %   can specify the primary language binding (the one the others translate from; and which
-%   serves as the reference in case of translation conflicts).\ednote{@DG: This needs to
+%   serves as the reference in case of translation conflicts).\ednote{@Hang: This needs to
 %   be implemented in LaTeXML}
 % 
 %   There is another difference in the multilingual encoding: All symbols are introduced
 %   in the module signature, either by a |\symdef| or the new \DescribeMacro{\symi}|\symi|
-%   macro. |\symi{|\meta{name}|}| takes a symbol name \meta{name} as an argument and
-%   reserves that name. The variant \DescribeMacro{\symi*}|\symi*{|\meta{name}|}| declares
-%   \meta{name} to be a primary symbol; see~\cite{Kohlhase:dmesmgm14} for a
-%   discussion. \sTeX provides variants \DescribeMacro{\symii}|\symii| and
-%   \DescribeMacro{\symiii}|\symiii| -- and their starred versions -- for multi-part
-%   names.
+%   macro. |\symi[|\meta{keys}|]{|\meta{name}|}| takes a symbol name \meta{name} as an
+%   argument and reserves that name. The variant
+%   \DescribeMacro{\symi*}|\symi*[|\meta{keys}|]{|\meta{name}|}| declares \meta{name} to
+%   be a primary symbol; see~\cite{Kohlhase:dmesmgm14} for a discussion. \sTeX provides
+%   variants \DescribeMacro{\symii}|\symii|, \DescribeMacro{\symiii}|\symiii|, and
+%   \DescribeMacro{\symiv}|\symiv| -- and their starred versions -- for multi-part
+%   names. The key-value interface \meta{keys} does not have any effect on the {\LaTeX}
+%   rendering, it can be used to embed metadata. See  for instance \sref{user:GFmeta}. 
 % \end{omgroup}
 % 
-% \begin{omgroup}{Multilingual Definitions and Crossreferencing Terms}
+% \begin{omgroup}{Multilingual Definitions and Cross-referencing Terms}
 %   We do not need a new infrastructure for defining mathematical concepts, only the
 %   realization that symbols are language-independent. So we can use symbols for the
 %   coordination of corresponding verbalizations. As the example in
@@ -172,7 +181,7 @@
 %   provide different verbalizations of the same symbol.
 % 
 %   For multilingual term references the situtation is more complex: For single-word
-%   verbalizations we could use |\atrefi| for language bindigns. Say we have introduced a
+%   verbalizations we could use |\atrefi| for language bindings. Say we have introduced a
 %   symbol |foo| in English by |\defi{foo}| and in German by |\defi[foo]{Foo}|. Then we
 %   can indeed reference it via |\trefi{foo}| and |\atrefi{Foo}{foo}|. But one the one
 %   hand this blurs the distinction between translation and ``linguistic variants'' and on
@@ -179,41 +188,54 @@
 %   the other hand does not scale to multi-word compounds as |bar| in
 %   Figure~\ref{fig:stex-multiling}, which we would have to reference as
 %   |\atrefiii{gro"ses Feld Raster}{bar}|. To avoid this, the |smultiling| package
-%   provides the new macros \DescribeMacro{\mtref*}|\mtrefi|, |\mtrefii|, and |\mtrefiii|
+%   provides the new macros \DescribeMacro{\mtref}|\mtrefi|, |\mtrefii|, and |\mtrefiii|
 %   for multilingual references. Using this, we can reference |bar| as
 %   |\mtrefiii[?bar]{gro"ses}{Feld}{Raster}|, where we use the (up to three) mandatory
 %   arguments to segment the lexical constituents.
 % 
-%   The first argument it syntactially optional to keep the parallelity to |\*def*|
+%   The first argument it syntactically optional to keep the parallelism to |\*def*|
 %   |\*tref*| it specifies the symbol via its name \meta{name} and module name \meta{mod}
 %   in a MMT URI \meta{mod}|?|\meta{name}. Note that MMT URIs can be relative:
-%   \begin{compactenum}
+%   \begin{enumerate}
 %     \item |foo?bar| denotes the symbol |bar| from module |foo|
 %     \item |foo| the module |foo| (the symbol name is induced from the remaining
 %       arguments of |\mtref*|)
 %     \item |?bar| specifies symbol |bar| from the current module
-%     \end{compactenum}
-%     Note that the number suffix |i|/|ii|/|iii| indicates the number of words in the
+%     \end{enumerate}
+%     Note that the number suffix |i|/|ii|/|iii|/|iv| indicates the number of words in the
 %     actual language binding, not in the symbol name as in |\atref*|.
+% 
+%     Finally note that hyperlinks on term references only have information on the
+%     underlying symbol and module names -- i.e. signature information -- and we need to
+%     cross-reference into the language bindings. To do this, we need to know the base
+%     language of the document. To ensure basic functionality we set this to |en| and
+%     provide the \DescribeMacro{\sTeXlanguage}|\sTeXlanguage| macro to set it. 
 % \end{omgroup}
 % 
 % \begin{omgroup}{Multilingual Views}
 %   Views receive a similar treatment as modules in the |smultiling| package. A
-%   multilingual view consists of a view signature marked up with the
-%   \DescribeMacro{viewsig}|viewsig| environment. This takes three required arguments: a
-%   view name, the source module, and the target module. The optional first argument is
-%   for metadata (|display|, |title|, |creators|, and |contributors|) and load information
-%   (|frompath|, |fromrepos|, |topath|, and |torepos|).\ednote{MK: that does not work yet,
-%   what we describe here is \texttt{mhviewig}; we need to refactor further.}
+%   multilingual view consists of
+%   \begin{enumerate}
+%   \item a \textbf{view signature} marked up with the \DescribeEnv{viewsig}|viewsig|
+%     environment. This takes three required arguments: a view name, the source module,
+%     and the target module. The optional first argument is for metadata (|display|,
+%     |title|, |creators|, and |contributors|) and load information (|loadfrom| and
+%     |loadto|) and
+%   \item multiple \textbf{language bindings} marked up by the
+%     \DescribeEnv{viewnl}|viewnl| environment, which takes two required arguments: the
+%     view name and the language specifier. The optional first key/value argument takes
+%     the same keys as |viewsig| except the last two.
+%   \end{enumerate}
+% 
 % \begin{verbatim}
-% \begin{viewsig}[creators=miko,]{norm-metric}{metric-space}{norm}
+% \begin{viewsig}[creators=miko]{norm-metric}{metric-space}{norm}
 %   \vassign{base-set}{base-set}
-%   \vassign{metric}{\funcdot{x,y}{\norm{x-y}}}
+%   \fassign{x,y}{\metric{x,y}}{\norm{x-y}}
 % \end{viewsig}
 % \end{verbatim}
 %   Views have language bindings just as modules do, in our case, we have 
 % \begin{verbatim}
-% \begin{gviewnl}[creators=miko]{norm-metric}{en}{norm}{metric-space}
+% \begin{viewnl}[creators=miko]{norm-metric}{en}
 %   \obligation{metric-space}{obl.norm-metric.en}
 %   \begin{assertion}[type=obligation,id=obl.norm-metric.en]
 %     $\defeq{d(x,y)}{\norm{x-y}}$ is a \trefii[metric-space]{distance}{function}
@@ -222,19 +244,38 @@
 %     {we prove the three conditions for a distance function:}
 %     ...
 %   \end{sproof}
-% \end{gviewnl}
+% \end{viewnl}
 % \end{verbatim}
 % 
 % \end{omgroup}
 % 
 % \begin{omgroup}{Mathematical Keywords}
-%   For translations of the mathemtical keywords, the |statements| and |sproofs| packages
+%   For translations of the mathematical keywords, the |statements| and |sproofs| packages
 %   in \sTeX define special language definition files,
 %   e.g. |statements-ngerman.ldf|.\ednote{say more about this}\ednote{There is the
 %   translator package which belongs to beamer, maybe we should switch to that.} There is
 %   currently only very limited support for this.
 % \end{omgroup}
+% 
+% \begin{omgroup}[id=user:GFmeta]{GF Metadata}
+%   Several \sTeX macros and environments allow keys for syntactical information about the
+%   objects declared. 
+% 
+%   The symbol-declaring macros |\symi| and friends as well as |\symdef| allow
+%   \DescribeMacro{gfc}{gfc} key allows to specify the grammatical category in terms of
+%   the Resource Grammar of the Grammatical Framework~\cite{GFResourceGrammar:on}.
+%
+%   The verbalization-defining macros |\defi| and friends allow the |gfa| (GF apply) and
+%   |gfl| (GF linearization) keys. 
+%  
+%   A definiendum of the form
+%   |\defii[gfa=mkN]{empty}{set}| generates the GF linearization |empty_set = mkN "empty set"|. 
+%   Some what less conveniently,
+%   |\defii[name=datum,gfl={mkN "Datum", "Daten"}{Datum}| can be used if the GF
+%   linearization is more complex than simply applying a ``make command'' to the
+%   verbalization.  
 % \end{omgroup}
+% \end{omgroup}
 %
 % \begin{omgroup}{Limitations}
 %
@@ -252,22 +293,22 @@
 % \usepackage{multiling}
 % \usepackage[usenglish,ngerman]{babel}% babel support
 % \begin{modsig}{foo}
-% \symdef{bar}{BAR}
-% \symi{sar}
+%   \symdef{bar}{BAR}
+%   \symi{sar}
 % \end{modsig}
 % \selectlanguage{english}% english version follows
 % \begin{modnl}[creators=miko,primary]{foo}{en}
-% \begin{definition}
-%   A \defiii[bar]{big}{array}{raster} ($\bar$) is a\ldots, it is much bigger
-%   than a \defiii[sar]{small}{array}{raster}. 
-% \end{definition}
+%   \begin{definition}
+%     A \defiii[bar]{big}{array}{raster} ($\bar$) is a\ldots, it is much bigger
+%     than a \defiii[sar]{small}{array}{raster}. 
+%   \end{definition}
 % \end{modnl}
 % \selectlanguage{german}% german umlauts please
 % \begin{modnl}[creators=miko]{foo}{de}
-% \begin{definition}
-%   Ein \defiii[bar]{gro"ses}{Feld}{Raster} ($\bar$) ist ein\ldots, es
-%   ist viel gr"o"ser als ein \defiii[sar]{kleines}{Feld}{Raster}. 
-% \end{definition}
+%   \begin{definition}
+%     Ein \defiii[bar]{gro"ses}{Feld}{Raster} ($\bar$) ist ein\ldots, es
+%     ist viel gr"o"ser als ein \defiii[sar]{kleines}{Feld}{Raster}. 
+%   \end{definition}
 % \end{modnl}
 % \end{verbatim}\vspace{-2em}
 % \caption{Multilingual \protect\sTeX with \texttt{babel}}
@@ -274,19 +315,30 @@
 % \label{fig:stex-multiling-babel}
 % \end{exfig}
 % 
-% For the |langfiles| setup, which assumes that module signatures and langauge bindings
+% For the |langfiles| setup, which assumes that module signatures and language bindings
 % are in separate files, |babel| integration can be simplified by providing a
 % language-specific preamble file with |\usepackage{|\meta{language}|}{babel}| which is
 % pre-pended to all language binding files when formatted. This preamble can also contain
-% the other langauge-specific packages (e.g. for font encodings, etc.).
+% the other language-specific packages (e.g. for font encodings, etc.).
 % \end{omgroup}
 % 
+% \begin{omgroup}{PDF links on term references are language-dependent}
+%   Given the |langfiles| mode, we need the intended language to generate PDF links on
+%   term references. But we cannot infer this for top-level ``papers'' (we do in the
+%   language bindings). So it has to be specified via |\sTexlanguage|, and we do not
+%   really had a way to check that it is. Unfortunately, the only place it would be natural
+%   to do so is in |\mod at component|, but the |\PackageError| there had to be commented
+%   out, since it leads to serious errors. Thus we set the language to |en| by default,
+%   which is sub-optimal. Maybe there is a way to infer the document language from the
+%   babel settings. 
+% \end{omgroup}
+% 
 % \begin{omgroup}{Language-Specific Limitations}
 % Some languages have more problems than others
 % \begin{description}
 % \item[Turkish] makes \texttt{=} an active character (to give better spacing); this
-%   interacts unfavorably with the |keyval| package which needs \texttt{=} as key/value
-%   separator (and gives it a different catcode). Therefore we need to prohibit this by
+%   interacts unfavourably with the |keyval| package which needs \texttt{=} as key/value
+%   separator (and gives it a different category code). Therefore we need to prohibit this by
 %   restricting the |shorthands| option: use |\usepackage[turkish,shorthands=:!]{babel}|.
 % \item[Chinese] needs special fonts and |xelatex|\ednote{get Jinbo to document this}.
 % \end{description}
@@ -321,14 +373,44 @@
 % 
 % \begin{environment}{modsig}
 %   The |modsig| environment is just a layer over the |module| environment. We also
-%   redefine macros that may occur in module signatures so that they do not create markup.
+%   redefine macros that may occur in module signatures so that they do not create
+%   markup. Finally, we set the flag |\mod@|\meta{mod}|@multiling| to |true|.
 %    \begin{macrocode}
-\newenvironment{modsig}[2][]{%
-\def\@test{#1}\ifx\@test\@empty\begin{module}[id=#2]\else\begin{module}[id=#2,#1]\fi\ignorespacesandpars}
+\newenvironment{modsig}[2][]{\def\@test{#1}%
+\ifx\@test\@empty\begin{module}[id=#2]\else\begin{module}[id=#2,#1]\fi%
+\expandafter\gdef\csname mod@#2 at multiling\endcsname{true}%
+\ignorespacesandpars}
 {\end{module}\ignorespacesandparsafterend}
 %    \end{macrocode}
 % \end{environment}
 %
+% \begin{macro}{\mod at component}
+%   We redefine the macro from the |modules| package that computes the module component
+%   identifier for external links on term references. If |\mod@|\meta{mod}|@multiling| is
+%   |true|, then we make the component identifier |.|\meta{lang}, which can be customized
+%   by the next macro below.
+%    \begin{macrocode}
+\renewcommand\mod at component[1]{%
+\expandafter\ifx\csname mod@#1 at multiling\endcsname\@true%
+\@ifundefined{smultiling at language}{}
+% for some reason this error message bombs big time; so we leave it out. 
+% {\PackageError{smultiling}%
+%   {No document language specified for term reference links}
+%   {use \protect\sTeXlanguage to specify it!}}
+{.\smultiling at language}%
+\fi}
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\sTeXlanguage}
+%   This macro sets the internal flag |\smultiling at language|, we set the default to |en|,
+%   since otherwise hyper-references on term references do not work.
+%    \begin{macrocode}
+\newcommand\sTeXlanguage[1]{\def\smultiling at language{#1}}
+\sTeXlanguage{en}
+%    \end{macrocode}
+% \end{macro}
+% 
 % \begin{environment}{viewsig}
 %   The |viewsig| environment is just a layer over the |view| environment with the keys
 %   suitably adapted.
@@ -341,17 +423,33 @@
 % \end{environment}
 %
 % \begin{macro}{\@sym*}
-%   has a starred form for primary symbols.
+%   has a starred form for primary symbols. The key/value interface has no effect on the
+%   {\LaTeX} side. We read the to check whether only allowed ones are used.
 %    \begin{macrocode}
+\define at key{symi}{noverb}[all]{}%
+\define at key{symi}{align}[WithTheSymbolOfTheSameName]{}%
+\define at key{symi}{specializes}{}%
+\define at key{symi}{noalign}[true]{}%
 \newcommand\symi{\@ifstar\@symi at star\@symi}
-\newcommand\@symi[1]{\if at importing\else Symbol: \textsf{#1}\fi\ignorespacesandpars}
-\newcommand\@symi at star[1]{\if at importing\else Primary Symbol: \textsf{#1}\fi\ignorespacesandpars}
+\newcommand\@symi[2][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Symbol: \textsf{#2}\fi\ignorespacesandpars}
+\newcommand\@symi at star[2][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Primary Symbol: \textsf{#2}\fi\ignorespacesandpars}
 \newcommand\symii{\@ifstar\@symii at star\@symii}
-\newcommand\@symii[2]{\if at importing\else Symbol: \textsf{#1-#2}\fi\ignorespacesandpars}
-\newcommand\@symii at star[2]{\if at importing\else Primary Symbol: \textsf{#1-#2}\fi\ignorespacesandpars}
+\newcommand\@symii[3][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Symbol: \textsf{#2-#3}\fi\ignorespacesandpars}
+\newcommand\@symii at star[3][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Primary Symbol: \textsf{#2-#3}\fi\ignorespacesandpars}
 \newcommand\symiii{\@ifstar\@symiii at star\@symiii}
-\newcommand\@symiii[3]{\if at importing\else Symbol: \textsf{#1-#2-#3}\fi\ignorespacesandpars}
-\newcommand\@symiii at star[3]{\if at importing\else Primary Symbol: \textsf{#1-#2-#3}\fi\ignorespacesandpars}
+\newcommand\@symiii[4][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Symbol: \textsf{#2-#3-#4}\fi\ignorespacesandpars}
+\newcommand\@symiii at star[4][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Primary Symbol: \textsf{#2-#3-#4}\fi\ignorespacesandpars}
+\newcommand\symiv{\@ifstar\@symiv at star\@symiv}
+\newcommand\@symiv[5][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Symbol: \textsf{#2-#3-#4-#5}\fi\ignorespacesandpars}
+\newcommand\@symiv at star[5][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Primary Symbol: \textsf{#2-#3-#4-#5}\fi\ignorespacesandpars}
 %    \end{macrocode}
 % \end{macro}
 % \end{omgroup}
@@ -375,6 +473,7 @@
 %    \begin{macrocode}
 \newenvironment{modnl}[3][]{\metasetkeys{modnl}{#1}%
   \def\@test{#1}\ifx\@test\@empty\begin{module}[id=#2.#3]\else\begin{module}[id=#2.#3,#1]\fi%
+  \def\smultiling at language{#3}%
   \if at langfiles\importmodule[load=#2,ext=tex]{#2}\else
   \ifx\modnl at load\@empty\importmodule{#2}\else\importmodule[ext=tex,load=\modnl at load]{#2}\fi%
   \fi%
@@ -384,16 +483,16 @@
 % \end{environment}
 %
 % \begin{environment}{viewnl}
-%   The |viewnl| environment is just a layer over the |viewsketch| environment with the
-%   keys and langauge suitably adapted.\ednote{MK: we have to do something about the
-%   if at langfiles situation here. But this is non-trivial, since we do not know the current
-%   path, to which we could append .\meta{lang}!}
+%   The |viewnl| environment is just a layer over the |view| environment with the keys and
+%   language suitably adapted.\ednote{MK: we have to do something about the if at langfiles
+%   situation here. But this is non-trivial, since we do not know the current path, to
+%   which we could append .\meta{lang}!}
 %    \begin{macrocode}
 \newenvironment{viewnl}[5][]{\def\@test{#1}\ifx\@test\@empty%
-  \begin{viewsketch}[id=#2.#3,ext=tex]{#4}{#5}\else%
-  \begin{viewsketch}[id=#2.#3,#1,ext=tex]{#4}{#5}\fi%
+  \begin{view}[id=#2.#3,ext=tex]{#4}{#5}\else%
+  \begin{view}[id=#2.#3,#1,ext=tex]{#4}{#5}\fi%
   \ignorespacesandpars}
-  {\end{viewsketch}\ignorespacesandparsafterend}
+  {\end{view}\ignorespacesandparsafterend}
 %    \end{macrocode}
 % \end{environment}
 % \end{omgroup}
@@ -400,7 +499,7 @@
 % 
 % \begin{omgroup}{Multilingual Statements and Terms}
 %
-% \begin{macro}{\mtref*}
+% \begin{macro}{\mtref}
 %   we first first define an auxiliary conditional |\@instring| that checks of |?| is in
 %   the first argument.  |\mtrefi| uses it, if there is one, it just calls |\termref|,
 %   otherwise it calls |\@mtrefi|, which assembles the |\termref| after splitting at the
@@ -407,17 +506,59 @@
 %   |?|.
 %    \begin{macrocode}
 \def\@instring#1#2{TT\fi\begingroup\edef\x{\endgroup\noexpand\in@{#1}{#2}}\x\ifin@}
-\newcommand\mtrefi[2][]{\if\@instring{?}{#1}\@mtref #1\relax{#2}\else\termref[cd=#1]{#2}\fi}
-\def\@mtref#1?#2\relax{\termref[cd=#1,name=#2]}
+\def\@mtref#1?#2\relax{\@@mtref{#1}{#2}}
+\newcommand\@@mtref[3]{\def\@@cd{#1}\def\@@name{#2}%
+\ifx\@@cd\@empty%
+\ifx\@@name\@empty\termref[]{#3}\else\termref[name=\@@name]{#3}\fi%
+\else%
+\ifx\@@name\@empty\termref[cd=\@@cd]{#3}\else\termref[cd=\@@cd,name=\@@name]{#3}\fi%
+\fi}
+\newcommand\mtref[2][]{\if\@instring{?}{#1}\@mtref #1\relax{#2}\else\termref[cd=#1]{#2}\fi}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mtrefi*}
+%    \begin{macrocode}
+\newcommand\mtrefi[2][]{\if\@instring{?}{#1}\@mtref #1\relax{#2}%
+\else\termref[cd=#1]{#2}\fi}
 \newcommand\mtrefis[2][]{\mtrefi[#1]{#2s}}
+\newcommand\Mtrefi[2][]{\if\@instring{?}{#1}\@mtref #1\relax{\capitalize{#2}}%
+\else\termref[cd=#1]{\capitalize{#2}}\fi}
+\newcommand\Mtrefis[2][]{\Mtrefi[#1]{#2s}}
 \newcommand\mtrefii[3][]{\mtrefi[#1]{#2 #3}}
 \newcommand\mtrefiis[3][]{\mtrefi[#1]{#2 #3s}}
+\newcommand\Mtrefii[3][]{\Mtrefi[#1]{#2 #3a}}
+\newcommand\Mtrefiis[3][]{\Mtrefi[#1]{#2 #3s}}
 \newcommand\mtrefiii[4][]{\mtrefi[#1]{#2 #3 #4}}
+\newcommand\Mtrefiiis[4][]{\Mtrefi[#1]{#2 #3 #4s}}
+\newcommand\Mtrefiii[4][]{\Mtrefi[#1]{#2 #3 #4}}
 \newcommand\mtrefiiis[4][]{\mtrefi[#1]{#2 #3 #4s}}
+\newcommand\mtrefiv[5][]{\mtrefi[#1]{#2 #3 #4 #5}}
+\newcommand\mtrefivs[5][]{\mtrefi[#1]{#2 #3 #4 #5s}}
+\newcommand\Mtrefiv[5][]{\Mtrefi[#1]{#2 #3 #4 #5}}
+\newcommand\Mtrefivs[5][]{\Mtrefi[#1]{#2 #3 #4 #5s}}
 %    \end{macrocode}
 % \end{macro}
 % \end{omgroup}
 % 
+% \begin{omgroup}[id=impl:GFmeta]{GF Metadata}
+%
+% \begin{macro}{gfc}
+%   We add the |gfc| key to various symbol declaration macros. 
+%    \begin{macrocode}
+\addmetakey{symi}{gfc}
+\addmetakey{symdef}{gfc}%
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{gfa/l}
+%    \begin{macrocode}
+\addmetakey{definiendum}{gfa}
+\addmetakey{definiendum}{gfl}
+%    \end{macrocode}
+% \end{macro}
+% \end{omgroup}
+% 
 % \begin{omgroup}{Miscellaneneous}
 %   the |\ttl| macro (to-translate) is used to mark untranslated stuff. We need a better
 %   \latexml treatment of this eventually that is integrated with MathHub.info. 
@@ -439,8 +580,20 @@
 %%% End: 
 % \fi
 
-% LocalWords:  iffalse cls omdoc latexml texttt smlog.cls sref
-% LocalWords:  maketitle newpage tableofcontents newpage omgroup ednote ltxml
-% LocalWords:  printbibliography showmeta metakeys amstext ginput newcommand
-% LocalWords:  module-defs gimport renewcommand langbindings gle newenvironment
-% LocalWords:  doctex
+% LocalWords:  iffalse cls omdoc latexml texttt smlog.cls sref NeedsTeXFormat symi Deyan
+% LocalWords:  maketitle newpage tableofcontents newpage omgroup ednote ltxml Ginev exfig
+% LocalWords:  printbibliography showmeta metakeys amstext ginput newcommand smglom lmh
+% LocalWords:  module-defs gimport renewcommand langbindings gle newenvironment symdef
+% LocalWords:  doctex smultiling.dtx smultiling.sty GinIanJuc:spsttom16 verbalization gfc
+%  LocalWords:  Kohlhase:dmesmgm14 symvariant fig:stex-monolingual fig:stex-multiling gfc
+%  LocalWords:  vspace onefile modnl modnl symii symii symiii symiii symiv symiv atrefi
+%  LocalWords:  user:GFmeta realization verbalizations trefi atrefiii mtref mtrefi atref
+%  LocalWords:  mtrefii mtrefiii textbf viewsig viewsig loadfrom loadto viewnl viewnl gfa
+%  LocalWords:  sproofs statements-ngerman.ldf gfl linearization defii datum,gfl keyval
+%  LocalWords:  fic:stex-multiling fig:stex-multiling-babel usepackage usenglish,ngerman
+%  LocalWords:  selectlanguage turkish,shorthands xelatex Jinbo newif smultiling-mh ifx
+%  LocalWords:  etoolbox ignorespacesandpars ignorespacesandparsafterend 2,ext 1,ext ttl
+%  LocalWords:  metasetkeys noindent addmetakey srccite tex,load 3,ext termref begingroup
+%  LocalWords:  endgroup noexpand mtrefis mtrefiis Mtrefiiis mtrefiv mtrefivs impl:GFmeta
+%  LocalWords:  Miscellaneneous sTeXlanguage sTeXlanguage expandafter gdef csname
+%  LocalWords:  endcsname smultiling at language

Modified: trunk/Master/texmf-dist/source/latex/stex/sproof/sproof.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/sproof/sproof.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/sproof/sproof.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,10 +10,11 @@
 % 
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{sproof}[2016/04/07 v1.1 Semantic Markup for Proofs]
+%<package>\ProvidesPackage{sproof}[2019/03/20 v1.1 Semantic Markup for Proofs]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{url,array,stex,float,moreverb}
 \usepackage[show]{ed}
 \usepackage[hyperref=auto,style=alphabetic]{biblatex}
@@ -22,13 +23,17 @@
 \addbibresource{kwarccrossrefs.bib}
 \addbibresource{extcrossrefs.bib}
 \usepackage{ctangit}
+\usepackage{paralist}
 \usepackage{hyperref}
 \makeindex
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{sproof.dtx}\end{document}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\begin{document}
+\RecordChanges
+\DocInput{sproof.dtx}
+\end{document}
 %</driver>
 % \fi
 % 
@@ -65,7 +70,7 @@
 % \title{{\texttt{sproof.sty}}: Structural Markup for Proofs\thanks{Version {\fileversion} (last revised
 %        {\filedate})}}
 %    \author{Michael Kohlhase\\
-%            Jacobs University, Bremen\\
+%            FAU Erlangen-N\"urnberg\\
 %            \url{http://kwarc.info/kohlhase}}
 % \maketitle
 %
@@ -346,10 +351,10 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the TRAC. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item The numbering scheme of proofs cannot be changed. It is more geared for teaching
 %   proof structures (the author's main use case) and not for writing papers.\lec{reported
-%   by Tobias Pfeiffer; see \tracissue{1658}} (fixed)
+%   by Tobias Pfeiffer (fixed)}
 % \item currently proof steps are formatted by the {\LaTeX} |description| environment. We
 %   would like to configure this, e.g. to use the |inparaenum| environment for more
 %   condensed proofs. I am just not sure what the best user interface would be I can
@@ -356,7 +361,7 @@
 %   imagine redefining an internal environment |spf at proofstep@list| or adding a key
 %   |prooflistenv| to the |proof| environment that allows to specify the environment
 %   directly. Maybe we should do both. 
-% \end{compactenum}
+% \end{enumerate}
 % 
 % 
 % \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography}
@@ -515,6 +520,7 @@
 % For the other languages, we set up triggers
 %    \begin{macrocode}
 \AfterBabelLanguage{ngerman}{\input{sproof-ngerman.ldf}}
+\AfterBabelLanguage{arabic}{\input{sproof-arabic.ldf}}
 %    \end{macrocode}
 %
 % \begin{macro}{spfsketch}
@@ -599,7 +605,7 @@
   \else%
     \item[\the at pst@label]%
   \fi%
-  \ifx\spf at title\@empty\else{(\stDMemph{\spf at title})}\fi%
+  \ifx\spf at title\@empty\else{(\stDMemph{\spf at title}) }\fi%
   \sref at label@id{\pst at label}\ignorespaces%
 }{%
   \next at pst@label\@in at omtextfalse\ignorespaces%
@@ -622,7 +628,7 @@
 % contains a start text. Both environments start a new numbered proof level.
 %
 % \begin{environment}{subproof}
-%   In the |subproof| environment, a new (lower-level) proof environment is started.
+%   In the |subproof| environment, a new (lower-level) proproofof environment is started.
 %    \begin{macrocode}
 \newenvironment{subproof}[2][]{%
   \metasetkeys{spf}{#1}%

Modified: trunk/Master/texmf-dist/source/latex/stex/sref/sref.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/sref/sref.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/sref/sref.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -11,10 +11,11 @@
 % \iffalse
 %<*package>
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{sref}[2016/04/07 v1.2 Semantic Cross-References]
+\ProvidesPackage{sref}[2019/03/20 v1.2 Semantic Cross-References]
 %</package>
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{url,array,float}
 \usepackage[show]{ed}
 \usepackage[hyperref=auto,style=alphabetic]{biblatex}
@@ -29,8 +30,11 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\newrobustcmd\tracissue[1]{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{sref.dtx}\end{document}
+\newrobustcmd\githubissue[1]{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\begin{document}
+\RecordChanges
+\DocInput{sref.dtx}
+\end{document}
 %</driver>
 % \fi
 % 
@@ -52,7 +56,7 @@
 % \title{{\texttt{sref.sty}}: Semantic Cross-Referencing in {\LaTeX}\thanks{Version {\fileversion} (last revised
 %        {\filedate})}}
 %    \author{Michael Kohlhase\\
-%            Jacobs University, Bremen\\
+%            FAU Erlangen-N\"urnberg\\
 %            \url{http://kwarc.info/kohlhase}}
 % \maketitle
 %
@@ -283,7 +287,7 @@
 % The |sref| package defines semantically referencable versions of commonly used {\LaTeX}
 % environments and command sequences.\footnote{This section will be extended by need, so
 % if you miss some semantic environment, please contact the package author, or (better)
-% file an issue at~\cite{sTeX:online})}
+% file an issue at~\cite{sTeX:github:on})}
 % 
 % The \DescribeEnv{sequation}|sequation| environment takes an optional key/value argument
 % that allows to specify an identifier and unifies the behavior of the |equation| (if an
@@ -350,11 +354,11 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item currently only the |\sref| macro has a fallback argument. The others |\srefs| and
 %   |\srefl| and their external variants should also have them, but I am not clear what
 %   the adequate invocation pattern would be.
-% \end{compactenum}
+% \end{enumerate}
 % 
 % \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography}
 % \newpage
@@ -605,6 +609,21 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\sref at label@id at arg}
+%   The |\sref at label@id at arg| writes a label definition for the second argument if it is
+%   defined.
+%    \begin{macrocode}
+\newcommand\sref at label@id at arg[2]{%
+  \def\@@id{#2}
+  \ifx\@@id\@empty%
+    \relax%
+  \else%
+    \sref at label{#1}{\@@id}%
+  \fi%
+}%
+%    \end{macrocode}
+% \end{macro}
+%
 % Finally we come to the user visible macro |\sref| which is used for
 % referencing.\ednote{The {\latexml} does not take into account the optional argument
 %   yet.}
@@ -621,7 +640,7 @@
   \edef\@fallback{#3}%
   \ifcsundef{sref@#2 at label}{%
     \ifx\@fallback\@empty% warn about undefined links and show a substitute
-      \protect\G at refundefinedtrue\@latex at warning{reference #2 undefined}%
+      \protect\G at refundefinedtrue\PackageWarning{sref}{reference #2 undefined}%
       \ifx\@linktext\@empty%
         ?#2?%
       \else%
@@ -628,7 +647,7 @@
         \@linktext%
       \fi%
     \else%
-      \protect\G at refundefinedtrue\@latex at warning{using fallback for undefined reference #2}%
+      \protect\G at refundefinedtrue\PackageWarning{sref}{using fallback for undefined reference #2}%
       \@fallback%
     \fi
   }{%
@@ -656,7 +675,7 @@
 %    \begin{macrocode}
 \newcommand\sref at pageref[1]{%
   \ifcsundef{sref@#1 at page}{%
-    \protect\G at refundefinedtrue\@latex at warning{reference #1 undefined}\sref at page@label{??}%
+    \protect\G at refundefinedtrue\PackageWarning{sref}{reference #1 undefined}\sref at page@label{??}%
   }{%
     \sref at hlink@ifh{sref@#1 at target}{\sref at page@label{\@nameuse{sref@#1 at page}}}%
   }%
@@ -671,10 +690,10 @@
 \newcommand\sref at href[3][]{%
   \edef\@linktext{#1}%
   \ifcsundef{sref@#2 at label}{%
-    \protect\G at refundefinedtrue\@latex at warning{reference #2 undefined}??%
+    \protect\G at refundefinedtrue\PackageWarning{sref}{reference #2 undefined}??%
   }{%
     \ifcsundef{sref@#3 at URI}{%
-      \protect\G at refundefinedtrue\@latex at warning{external refs of type  #3 undefined}??%
+      \protect\G at refundefinedtrue\PackageWarning{sref}{external refs of type  #3 undefined}??%
     }{%
       \edef\@uri{\@nameuse{sref@#3 at URI}.pdf\#sref@#2 at target}%
       \edef\@label{\ifx\@linktext\@empty\@nameuse{sref@#2 at label}\else\@linktext\fi}%
@@ -803,7 +822,7 @@
 % 
 % \begin{environment}{withcitation}
 %    \begin{macrocode}
-\newenvironment{withcitation}[1]{\def\citeit{\cite{#1}}}{}%
+\newenvironment{withcitation}[1]{\def\citeit{\cite{#1}\xspace}}{}%
 %</package>
 %    \end{macrocode}
 % \end{environment}

Modified: trunk/Master/texmf-dist/source/latex/stex/statements/statements.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/statements/statements.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/statements/statements.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,10 +10,12 @@
 %  
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{statements}[2016/04/07 v1.2 Semantic Markup for Statements]
+%<package>\ProvidesPackage{statements}[2019/03/20 v1.4 Semantic Markup for Statements]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
 \usepackage{url,array,float,amsfonts}
 \usepackage{statements,presentation}
 \usepackage{paralist}
@@ -30,8 +32,11 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{statements.dtx}\end{document}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\begin{document}
+\RecordChanges
+\DocInput{statements.dtx}
+\end{document}
 %</driver>
 % \fi
 % 
@@ -60,6 +65,9 @@
 % \changes{v1.2}{2015/04/03}{adding optional last arg to \texttt{\textbackslash \*defi*}}
 % \changes{v1.2}{2015/04/17}{adding \texttt{\textbackslash inlineass}}
 % \changes{v1.2}{2015/09/05}{adding \texttt{\textbackslash defis} and friends}
+% \changes{v1.3}{2017/07/31}{adding \texttt{\textbackslash Defi}, \texttt{\textbackslash Trefi} and friends}
+% \changes{v1.4}{2017/10/15}{changing the optional argument of \texttt{\textbackslash
+% defi} and friends to a keyval argument}
 % 
 % \GetFileInfo{statements.sty}
 % 
@@ -75,7 +83,7 @@
 % \title{Semantic Markup for Mathematical Statements\thanks{Version {\fileversion} (last revised
 %        {\filedate})}}
 %    \author{Michael Kohlhase\\
-%            Jacobs University, Bremen\\
+%            FAU Erlangen-N\"urnberg\\
 %            \url{http://kwarc.info/kohlhase}}
 % \maketitle
 %
@@ -122,11 +130,15 @@
 %
 % \subsection{Package Options}\label{sec:user:options}
 % 
-% The |statements| package provides the |defindex| option to \sTeX. If this is set, then
-% definienda are automatically passed into the index of the document. Furthermore, the
-% |statements| package passes the \DescribeMacro{showmeta}|showmeta| to the |metakeys|
-% package. If this is set, then the metadata keys are shown
-% (see~\cite{Kohlhase:metakeys:ctan} for details and customization options).
+% The |statements| package provides the \DescribeMacro{defindex}|defindex| option to
+% \sTeX. If this is set, then definienda are automatically passed into the index of the
+% document. Furthermore, the |statements| package passes the
+% \DescribeMacro{showmeta}|showmeta| to the |metakeys| package. If this is set, then the
+% metadata keys are shown (see~\cite{Kohlhase:metakeys:ctan} for details and customization
+% options). The |nontheorem| option tells statements not to load the |ntheorem| package --
+% in case some other theorem package is already loaded; e.g. by the |beamer| package and
+% we prefer that. Note that using the |nontheorem| option in a case where no theorem
+% package is loaded will lead to errors.
 %
 % \subsection{Statements}\label{sec:statements}
 % 
@@ -354,27 +366,32 @@
 % mathematical definitions. Its peculiarity is that it defines (i.e. gives a meaning to)
 % new mathematical concepts or objects. These\DescribeMacro{\definiendum} are identified
 % by the |\definiendum| macro, which is used as
-% |\definiendum[|\meta{sysname}|]{|\meta{text}|}|. Here, \meta{text} is the text that is
-% to be emphasized in the presentation and the optional \meta{sysname} is a system name of
-% the symbol defined (for reference via |\termref|, see
-% Section~\ref{sec:user:crossref}). If \meta{sysname} is not given, then \meta{text} is
-% used as a system name instead, which is usually sufficient for most situations.
+% |\definiendum[|\meta{keys}|]{|\meta{text}|}|. Here, \meta{text} is the text that is to
+% be emphasized in the presentation. |\definiendum| takes the key
+% \DescribeMacro{name}|name| for the optional system name of the symbol defined (for
+% reference via |\termref|, see Section~\ref{sec:user:crossref}). If the |name| key is not
+% given, then \meta{text} is used as a system name instead, which is usually sufficient
+% for most situations. The set of keys is extensible to add additional metadata for the
+% definiendum. Currently only the \DescribeMacro{lemma}|lemma| key is supported, which
+% allows to specify the base form of the name of the concept involved -- e.g. for
+% referencing in a glossary or index.
 % 
 %\begin{exfig}
+%  \def\succ#1{s(#1)}
 % \begin{verbatim}
 % \symdef{one}{1}
 % \begin{definition}[id=one.def,for=one]
 %   $\notatiendum[one]{\one}$ is the successor of $\zero$
-%   (formally: $\one\colon=\succ\zero$)
+%   (formally: $\one :=\succ\zero$)
 % \end{definition}
 % \end{verbatim}
-% \vspace{-1em}will lead to the result\medskip\par\noindent
-% \begin{module}
+% \vspace{-1em}will lead to the result\medskip\par\noindent\vspace*{-1em}
+% \begin{module}[id=onedef]
 % \importmodule{peano}
 % \symdef{one}{1}
 % \begin{definition}[id=one.def,for=one]
 %   $\notatiendum[one]{\one}$ is the successor of $\zero$
-%   (formally: $\one\colon=\succ\zero$)
+%   (formally: $\one :=\succ\zero$)
 % \end{definition}
 % \end{module}
 % \caption{A Definition based on Figure {\ref{fig:axioms}}}\label{fig:definition}
@@ -381,31 +398,44 @@
 % \end{exfig}
 % The \DescribeMacro{defi}|\defi{|\meta{word}|}| macro combines the functionality of the
 % |\definiendum| macro with index markup from the |omdoc|
-% package~\ctancite{Kohlhase:smomdl}: use
+% package~\ctancite{Kohlhase:smomdl}: For definienda where the lemma and \meta{text}
+% coincide use
 % \begin{center}
-% |\defi[|\meta{name}|]{|\meta{word}|}[|\meta{indexkeys}|]|
+% |\defi[|\meta{name}|]{|\meta{lemma}|}[|\meta{indexkeys}|]|
 % \end{center}
-% to markup a definiendum \meta{word} with system name \meta{name} that appear in the
+% to markup a definiendum \meta{lemma} with system name \meta{name} that appear in the
 % index (where \meta{indexkeys} are passed to the |\omdoc at index*| macros from the |omtext|
 % package) --- in other words in almost all definitions of single-word concepts.  We also
-% have the variants \DescribeMacro{\defii}|\defii| and \DescribeMacro{\defiii}|\defiii|
-% for (adjectivized) two-word compounds.  Note that if the definiendum contains sematnic
-% macros, then we need to specify the |loadmodules| key and also protect the semantic
-% macro. For instance if |\eset| is the semantic macro for $\emptyset$, then we would use
+% have the variants \DescribeMacro{\defii}|\defii|, \DescribeMacro{\defiii}|\defiii|, and
+% \DescribeMacro{\defiv}|\defiv| for (adjectivized) multi-word compounds.  Note that if
+% the definiendum contains semantic macros, then we need to specify the |loadmodules| key
+% and also protect the semantic macro. For instance if |\eset| is the semantic macro for
+% $\emptyset$, then we would use
 % \begin{verbatim}
 % \defii[eset-comp]{$\protect\eset$}{compatible}[loadmodules]
 % \end{verbatim}
-% for the definiendum markup. Finally, the variants \DescribeMacro{\adefi}|\adefi|,
-% \DescribeMacro{\adefii}|\adefii|,and \DescribeMacro{\adefiii}|\adefiii| have an
-% additional first argument that allows to specify an alternative text; see
-% Figure~\ref{fig:defin}. The main use of these is to mark up inflected forms as in
+% for the definiendum markup. 
+%
+% \begin{exfig}
 % \begin{verbatim}
-% we speak of \adefi{lemmata}{lemma} in this case. 
+% A \defi{graph} consists of \adefi{vertices}{vertex}  and \defis{edge}. 
 % \end{verbatim}
+% \caption{Definienda where Lemma and Text Form differ}\label{fig:lemma}
+% \end{exfig}
+%
+% For the cases where the lemma and \meta{text} are different we can use the variants
+% \DescribeMacro{\adefi}|\adefi|, \DescribeMacro{\adefii}|\adefii|,
+% \DescribeMacro{\adefiii}|\adefiii|, and \DescribeMacro{\adefiv}|\adefiv| that have
+% an additional first argument that allows to specify an alternative \meta{text}; see
+% Figure~\ref{fig:defin}. The main use of these is to mark up inflected forms as in
+% Figure~\ref{fig:lemma}.
+%
 % As the greatest number of these are plurals, which tends to be regular (e.g. adding a
 % trailing ``s'' in English), we provide the variants \DescribeMacro{\defis}|\defis|,
-% \DescribeMacro{\defiis}|\defiis|, and \DescribeMacro{\defiiis}|\defiiis| for that case:
-% |\defiis{simple}{group}| is equivalent to much longer |\adefii{simple groups}{simple}{group}|.
+% \DescribeMacro{\defiis}|\defiis|, \DescribeMacro{\defiiis}|\defiiis|, and
+% \DescribeMacro{\defivs}|\defivs| for that case: |\defiis{simple}{group}| is
+% equivalent to much longer |\adefii{simple groups}{simple}{group}| (but also see
+% Figure~\ref{fig:lemma}).
 % 
 % \begin{exfig}
 % \begin{tabular}{l|l|l}
@@ -427,7 +457,7 @@
 % \caption{Some definienda with Index}\label{fig:defin}
 % \end{exfig}
 % 
-% Note that the |\definiendum|, |\defi|, |\defii|, and |\defiii| macros can only be
+% Note that the |\definiendum|, |\defi*|, |\adefi*|, and |\defi*s|, macros can only be
 % used inside the definitional situation, i.e. in a |definition| or |symboldec|
 % environment or a |\inlinedef| macro. If you find yourself in a situation where you want
 % to use it outside, you will most likely want to wrap the appropriate text fragment in a
@@ -487,18 +517,18 @@
 % definition in module \meta{cd} that defines the concept \meta{name}, e.g. that contains
 % |\defi[|\meta{name}|]{|\meta{text}|}|.
 %
-% Just as the |\definiendum| macro has the convenience variants |\defi|, |\defii| and
-% |\defiii|, the |\termref| has variants |\trefi|, |\trefii|, and |\trefiii| that take two
-% and three arguments for the parts of the compositum. In the same module, concepts that
-% are marked up by |\defi{|\meta{name}|}| in the definition can be referenced by
+% Just as the |\definiendum| macro has the convenience variants |\defi| and |\?defi*|, the
+% |\termref| has variants |\trefi|, |\trefii|, |\trefiii|, and |\trefiv| that take two and
+% three arguments for the parts of the compositum. In the same module, concepts that are
+% marked up by |\defi{|\meta{name}|}| in the definition can be referenced by
 % \DescribeMacro{\trefi}|\trefi{|\meta{name}|}|. Here the link text is just
 % \meta{name}. Concepts defined via |\defii{|\meta{first}|}{|\meta{second}|}| can be
 % referenced by \DescribeMacro{\trefii}|\trefii{|\meta{first}|}{|\meta{second}|}| (with
-% link text ``\meta{first} \meta{second}'') and analogously for |\defiii| and
-% \DescribeMacro{\trefiii}|\trefiii|.
+% link text ``\meta{first} \meta{second}'') and analogously for
+% |\defiii|/\DescribeMacro{\trefiii}|\trefiii| and % |\defiv|/\DescribeMacro{\trefiv}|\trefiv|.
 % 
-% We have variants \DescribeMacro{\atref*}|\atrefi|, |\atrefii|, and |\atrefiii| with
-% alternative link text. For instance
+% We have variants \DescribeMacro{\atref*}|\atrefi|, |\atrefii|, |\atrefiii|, and 
+% |\atrefiv| with alternative link text. For instance
 % |\atrefii{|\meta{text}|{|\meta{first}|}{|\meta{second}|}| references a concept
 % introduced by |\defii{|\meta{first}|}{|\meta{second}|}| but with link text \meta{text}.
 % Of course, if the system identifier is given explicitly in the optional argument of the
@@ -531,7 +561,7 @@
 % support the |\term| macro like a wiki-like dangling link: a click on
 % |\term{|\meta{phrase}|}| could generate a new editor buffer with a stub definition (an
 % |definition| environment with |\definiendum| macro and appropriate metadata).\ednote{MK:
-% we probably need multi-part variants for |*tref*|}
+% we probably need multi-part variants for |?tref*|}
 % 
 % \section{Configuration of the Presentation}\label{sec:conf}
 % 
@@ -593,9 +623,9 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item none reported yet
-% \end{compactenum}
+% \end{enumerate}
 % 
 % \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography}
 % 
@@ -605,11 +635,17 @@
 %
 % We declare some switches which will modify the behavior according to the package
 % options. Generally, an option |xxx| will just set the appropriate switches to true
-% (otherwise they stay false). First we have the general options
+% (otherwise they stay false). First we have the general options: |msection| specifies
+% that theorems should be numbered in the |msection| counter provided by the |mikoslides|
+% package/class.
 %    \begin{macrocode}
 %<*package>
-\newif\ifdef at index\def at indexfalse
+\newif\ifdef at index\def at indexfalse 
 \DeclareOption{defindex}{\def at indextrue}
+\newif\if at nthm\@nthmtrue
+\DeclareOption{nontheorem}{\@nthmfalse}
+\newif\if at msection\@msectionfalse
+\DeclareOption{msection}{\@msectiontrue}
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{omtext}}
 \ProcessOptions
 %    \end{macrocode}
@@ -616,14 +652,17 @@
 % 
 % The next measure is to ensure that some {\sTeX} packages are loaded: |omdoc| for the
 % statement keys, |modules| since we need module identifiers for referencing. Furthermore,
-% we need the |ntheorem| package for presenting statements. For {\latexml}, we also
-% initialize the package inclusions, there we do not need |ntheorem|, since the XML does
-% not do the presentation.
+% we need the |ntheorem| package for presenting statements.
 %    \begin{macrocode}
 \RequirePackage{omtext}
 \RequirePackage[base]{babel}
+\ifcsdef{proof}{\cslet{proof}{\relax}\cslet{endproof}{\relax}}{}% to redefine if necessary
+\if at nthm
 \RequirePackage[hyperref]{ntheorem}
 \theoremstyle{plain}
+\else
+\RequirePackage{amsthm}
+\fi
 %    \end{macrocode}
 % Now, we define an auxiliary function that lowercases strings
 %    \begin{macrocode}
@@ -642,6 +681,7 @@
 % For the other languages, we set up triggers
 %    \begin{macrocode}
 \AfterBabelLanguage{ngerman}{\input{statements-ngerman.ldf}}
+\AfterBabelLanguage{arabic}{\input{statements-arabic.ldf}}
 %    \end{macrocode}
 %
 % \subsection{Statements}\label{sec:impl:statements}
@@ -661,6 +701,7 @@
 %    we just run the respective termination macro.
 %    \begin{macrocode}
 \def\define at statement@env#1{%
+\ifcsdef{#1}{\cslet{#1}{\relax}\cslet{end#1}{\relax}}{}% to redefine if necessary
 \newenvironment{#1}[1][]{\metasetkeys{omtext}{##1}\sref at target%
 \@in at omtexttrue%
 \ifx\omtext at display\st at flow\else%
@@ -668,8 +709,8 @@
 \ifx\sref at id\@empty\else\label{#1.\sref at id}\fi
 \csname st@#1 at initialize\endcsname\fi% display
 \ifx\sref at id\@empty\sref at label@id{here}\else%
-\sref at label@id{\STpresent{\csname ST#1EnvKeyword\endcsname}~\@currentlabel}\fi%
-\ignorespaces}
+\sref at label@id{\STpresent{\csname st@#1 at kw\endcsname}~\@currentlabel}\fi%
+\strut\ignorespaces}
 {\csname st@#1 at terminate\endcsname\ifx\omtext at display\st at flow\else\end{ST#1Env}\fi%
 \omtext at post@skip\@in at omtextfalse}}
 %    \end{macrocode}
@@ -679,14 +720,18 @@
 %    \begin{macrocode}
 \newenvironment{assertion}[1][]{\metasetkeys{omtext}{#1}\sref at target%
 \@in at omtexttrue%
-\ifx\omtext at display\st at flow\itshape\noindent\ignorespaces%
+\ifx\omtext at display\st at flow
+  \itshape\noindent\ignorespaces%
 \else% display!=flow
-\ifx\omtext at title\@empty\begin{ST\omtext at type AssEnv}%
-\else\begin{ST\omtext at type AssEnv}[\omtext at title]\fi\fi%
-\ifx\omtext at type\@empty\sref at label@id{here}\else%
-\sref at label@id{\STpresent{\csname ST\omtext at type AssEnvKeyword\endcsname}~\@currentlabel}
-\fi}%display=flow
-{\ifx\omtext at display\st at flow\else\end{ST\omtext at type AssEnv}\@in at omtextfalse\fi}
+  \xdef\@@@type{\omtext at type}% to keep it safe from \inlinedef 
+  \ifx\omtext at title\@empty\begin{ST\@@@type AssEnv}%
+  \else\begin{ST\@@@type AssEnv}[\omtext at title]%
+  \fi%
+\fi %display=flow
+\ifx\omtext at type\@empty\else%
+\sref at label@id{\STpresent{\csname st@\@@@type @kw\endcsname}~\@currentlabel}
+\fi}
+{\ifx\omtext at display\st at flow\else\end{ST\@@@type AssEnv}\@in at omtextfalse\fi}
 %    \end{macrocode}
 % \end{environment}
 %
@@ -710,14 +755,25 @@
 % \end{macro}
 % Then we configure the presentation of the theorem environments
 %    \begin{macrocode}
+\if at nthm
 \theorembodyfont{\itshape}
 \theoremheaderfont{\normalfont\bfseries}
+\else
+\theoremstyle{plain}
+\fi
 %    \end{macrocode}
-% and then we finally define the theorem environments in terms of the statement keywords
-% defined above. They are all numbered together with the section counter.
+%
 % \begin{environment}{ST*AssEnv}
+%   We define a number of internal assertion environments according to the values of its
+%   |type| key. 
 %    \begin{macrocode}
-\newtheorem{STtheoremAssEnv}{\st at theorem@kw}[section]
+\if at msection
+\newtheorem{STtheoremAssEnv}{\st at theorem@kw}[msection]
+\else
+\ifdef{\thesection}
+{\newtheorem{STtheoremAssEnv}{\st at theorem@kw}[section]}
+{\newtheorem{STtheoremAssEnv}{\st at theorem@kw}}
+\fi
 \newtheorem{STlemmaAssEnv}[STtheoremAssEnv]{\st at lemma@kw}
 \newtheorem{STpropositionAssEnv}[STtheoremAssEnv]{\st at proposition@kw}
 \newtheorem{STcorollaryAssEnv}[STtheoremAssEnv]{\st at corollary@kw}
@@ -727,7 +783,7 @@
 \newtheorem{STobligationAssEnv}[STtheoremAssEnv]{\st at obligation@kw}
 \newtheorem{STassumptionAssEnv}[STtheoremAssEnv]{\st at assumption@kw}
 \newtheorem{STobservationAssEnv}[STtheoremAssEnv]{\st at observation@kw}
-\theorembodyfont{\rm}
+\if at nthm\theorembodyfont{\rmfamily}\else\theoremstyle{definition}\fi
 \newtheorem{STremarkAssEnv}[STtheoremAssEnv]{\st at remark@kw}
 \newtheorem{STruleAssEnv}[STtheoremAssEnv]{\st at rule@kw}
 %    \end{macrocode}
@@ -734,13 +790,10 @@
 % \end{environment}
 %
 % \begin{environment}{example}
-%   \ednote{need to do something clever for the OMDoc representation of examples, in
-%   particular, the usevocab should only be defined in example}
 %    \begin{macrocode}
 \def\st at example@initialize{}\def\st at example@terminate{}
 \define at statement@env{example}
 \def\st at example@kw{Example}
-\theorembodyfont{\upshape}
 \newtheorem{STexampleEnv}[STtheoremAssEnv]{\st at example@kw}
 %    \end{macrocode}
 % \end{environment}
@@ -750,7 +803,6 @@
 \def\st at axiom@initialize{}\def\st at axiom@terminate{}
 \define at statement@env{axiom}
 \def\st at axiom@kw{Axiom}
-\theorembodyfont{\upshape}
 \newtheorem{STaxiomEnv}[STtheoremAssEnv]{\st at axiom@kw}
 %    \end{macrocode}
 % \end{environment}
@@ -794,7 +846,6 @@
 %   We first define a theorem environment 
 %    \begin{macrocode}
 \def\st at typedec@kw{Type Declaration}
-\theorembodyfont{\upshape}
 \newtheorem{STtypedecEnv}[STtheoremAssEnv]{\st at typedec@kw}
 %    \end{macrocode}
 % and then the environment itself.
@@ -805,7 +856,7 @@
 \ifx\omtext at title\@empty\begin{STtypedecEnv}\else\begin{STtypedecEnv}[\omtext at title]\fi%
 \ifx\sref at id\@empty\else\label{typedec.\sref at id}\fi
 \ifx\sref at id\@empty\sref at label@id{here}\else%
-\sref at label@id{\STpresent{\csname STtypedecEnvKeyword\endcsname}~\@currentlabel}\fi%
+\sref at label@id{\STpresent{\csname st at typedec@kw\endcsname}~\@currentlabel}\fi%
 \ignorespaces}
 {\ifx\omtext at display\st at flow\else\end{STtypedecEnv}\fi\omtext at post@skip}
 %    \end{macrocode}
@@ -816,15 +867,15 @@
 %   the |\st at indef| switch to suppress warnings from |\st at def@target|.
 %    \begin{macrocode}
 \newif\ifst at indef\st at indeffalse
+\ifcsdef{definition}{\cslet{definition}{\relax}\cslet{enddefinition}{\relax}}{}% to redefine if necessary
 \newenvironment{definition}[1][]{\metasetkeys{omtext}{#1}\sref at target\st at indeftrue%
 \ifx\omtext at display\st at flow\else%
 \ifx\omtext at title\@empty\begin{STdefinitionEnv}\else\begin{STdefinitionEnv}[\omtext at title]\fi\fi%
 \ifx\sref at id\@empty\sref at label@id{here}\else%
-\sref at label@id{\STpresent{\csname STdefinitionEnvKeyword\endcsname}~\@currentlabel}\fi%
+\sref at label@id{\STpresent{\csname st at definition@kw\endcsname}~\@currentlabel}\fi%
 \ignorespaces}
 {\ifx\omtext at display\st at flow\else\end{STdefinitionEnv}\fi}
 \def\st at definition@kw{Definition}
-\theorembodyfont{\upshape}
 \newtheorem{STdefinitionEnv}[STtheoremAssEnv]{\st at definition@kw}
 %    \end{macrocode}
 % \end{environment}
@@ -838,7 +889,6 @@
 \def\st at notation@initialize{}
 \define at statement@env{notation}
 \def\st at notation@kw{Notation}
-\theorembodyfont{\upshape}
 \newtheorem{STnotationEnv}[STtheoremAssEnv]{\st at notation@kw}
 %    \end{macrocode}
 % \end{environment}
@@ -845,20 +895,20 @@
 %
 % \begin{macro}{\st at def@target}
 %   the next macro is a variant of the |\sref at target| macro provided by the |sref| package
-%   specialized for the use in the |\definiendum|, |\defi|, |\defii|, and |\defiii|
-%   macros. |\st at def@target{|\meta{opt}|}{|\meta{name}|}| makes a target with label
-%   |sref@|\meta{opt}|@|\meta{modulename}|@target|, if \meta{opt} is non-empty, else with
-%   the label |sref@|\meta{name}|@|\meta{modulename}|@target| (the first time it
+%   specialized for the use in the |\definiendum|, |\defi*|, |\Defi*|, |\defi*s|, and |\Defi*s|
+%   macros. |\st at def@target{|\meta{opt}|}{|\meta{name}|}{|\meta{text}|}| makes a target
+%   with label |sref@|\meta{opt}|@|\meta{modulename}|@target|, if \meta{opt} is non-empty,
+%   else with the label |sref@|\meta{name}|@|\meta{modulename}|@target| (the first time it
 %   encounters this symbol; i.e. if |\sref@|\meta{name}|@|\meta{modulename}|@defined| is
-%   undefined). Also it generates the necessary warnings for a definiendum-like
-%   macro.
+%   undefined). And it formats the |\defemph|-emphasized \meta{text}.  Also it generates
+%   the necessary warnings for a definiendum-like macro.
 %    \begin{macrocode}
-\newcommand\st at def@target[3]{\def\@symname{#1}\def\@verbname{#2}%
+\newcommand\st at def@target[3]{\edef\@symname{#1}\def\@verbname{#2}%
 \ifst at indef% if we are in a definition or such
 \@ifundefined{mod at id}% if we are not in a module
 {\PackageWarning{statements}{definiendum in unidentified module\MessageBreak
-\protect\definiendum, \protect\defi,
-\protect\defii, \protect\defiii\MessageBreak
+\protect\definiendum, \protect\defi*,
+\protect\Defi*, \protect\defi*s, \protect\Defi*s\MessageBreak
 can only be referenced when called in a module with id key}}%
 {% now we are in a module
 \edef\@@cd{\ifx\omtext at theory\@empty\mod at id\else\omtext at theory\fi}%
@@ -866,15 +916,16 @@
 \defemph{\@ifundefined{sref@\@@name @\@@cd @defined}%
 {\expandafter\sref at target@ifh{sref@\@@name @\@@cd @target}{#3}}%
 {#3}}%
+%\footnote{sTeX: target sref@\@@name @\@@cd @target}% for testing targets
 \expandafter\gdef\csname sref@\@@name @\@@cd @defined\endcsname{yes}%
 \ifmetakeys at showmeta\metakeys at show@keys{\@@cd}{name:\@@name}\fi}%
-\else% st at indef
+\else% st at indef: we are not in a definition or such
 \PackageError{statements}%
 {definiendum outside definition context\MessageBreak
 \protect\definiendum, \protect\defi,
-\protect\defii, \protect\defiii\MessageBreak
-do not make sense semantically outside a definition.\MessageBreak
-Consider wrapping the defining phrase in a \protect\inlinedef}%
+\protect\Defi, \protect\defi*s, \protect\Defi*s\MessageBreak
+do not make sense semantically outside a definition.}
+{Consider wrapping the defining phrase in a \protect\inlinedef}%
 \fi}% st at indef
 %    \end{macrocode}
 % \end{macro}
@@ -897,8 +948,10 @@
 %
 % \begin{macro}{\definiendum}
 %    \begin{macrocode}
-%\newcommand\definiendum[2][]{\st at def@target{#1}{#2}\@termdef[#1]{#2}{#2}}
-\newcommand\definiendum[2][]{\st at def@target{#1}{#2}{#2}}
+\addmetakey{definiendum}{name}
+\addmetakey{definiendum}{lemma}
+\newcommand\definiendum[2][]{\setkeys{definiendum}{#1}%
+\st at def@target{\definiendum at name}{\definiendum at name}{#2}}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -910,7 +963,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% We expand the {\latexml} bindings for |\defi|, |\defii| and |\defiii| into two
+% We expand the {\latexml} bindings for |\defi|, |\defii|, |\defiii| and |\defiv| into two
 % instances one will be used for the definition and the other for indexing.
 %
 % \begin{macro}{\defi}
@@ -918,9 +971,15 @@
 %   handles the last optional argument and does the indexing. The information flow between
 %   them goes via the local |\@phrase| macro.
 %    \begin{macrocode}
-\newcommand\defi[2][]{\st at def@target{#1}{#2}{#2}\def\@phrase{#2}\@defi}
 \newcommand\@defi[1][]{\ifdef at index\omdoc at indexi[#1]{\@phrase}\fi\xspace}
-\newcommand\defis[2][]{\st at def@target{#1}{#2}{#2s}\def\@phrase{#2}\@defi}
+\newcommand\defi[2][]{\metasetkeys{definiendum}{#1}%
+\st at def@target{\definiendum at name}{#2}{#2}\def\@phrase{#2}\@defi}
+\newcommand\defis[2][]{\metasetkeys{definiendum}{#1}%
+\st at def@target{\definiendum at name}{#2}{#2s}\def\@phrase{#2}\@defi}
+\newcommand\Defi[2][]{\metasetkeys{definiendum}{#1}%
+\st at def@target{\definiendum at name}{#2}{\capitalize{#2}}\def\@phrase{#2}\@defi}
+\newcommand\Defis[2][]{\metasetkeys{definiendum}{#1}%
+\st at def@target{\definiendum at name}{#2}{\capitalize{#2s}}\def\@phrase{#2}\@defi}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -928,12 +987,12 @@
 %   Again we split the |\adefi| macro into two parts: |\adef| does the definiendum bit and
 %   |\@adefi| handles the last optional argument and does the indexing. 
 %    \begin{macrocode}
-\newcommand\adefi[3][]{\def\@name{#1}\def\@verb{#3}%
-\st at def@target{#1}{#3}{#2}\@adefi}
+\newcommand\adefi[3][]{\metasetkeys{definiendum}{#1}\def\@verb{#3}%
+\st at def@target{\definiendum at name}{#3}{#2}\@adefi}
 \newcommand\@adefi[1][]{%
 \ifdef at index%
-\ifx\@name\@empty\omdoc at indexi[#1]{\@verb}%
-\else\omdoc at indexi[at=\@name,#1]{\@verb}\fi%
+\ifx\definiendum at name\@empty\omdoc at indexi[#1]{\@verb}%
+\else\omdoc at indexi[at=\definiendum at name,#1]{\@verb}\fi%
 \fi\xspace}
 %    \end{macrocode}
 % \end{macro}
@@ -940,11 +999,19 @@
 %
 % \begin{macro}{\defii}
 %    \begin{macrocode}
-\newcommand\@defii[1][]{\ifdef at index\@twin[#1]{\@pone}{\@ptwo}\fi\xspace}
-\newcommand\defii[3][]{\def\@pone{#2}\def\@ptwo{#3}%
-\st at def@target{#1}{#2-#3}{#2 #3}\@defii}
-\newcommand\defiis[3][]{\def\@pone{#2}\def\@ptwo{#3}%
-\st at def@target{#1}{#2-#3}{#2 #3s}\@defii}
+\newcommand\@defii[1][]{\ifdef at index\omdoc at indexii[#1]{\@pone}{\@ptwo}\fi\xspace}
+\newcommand\defii[3][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}%
+\st at def@target{\definiendum at name}{#2-#3}{#2 #3}\@defii}
+\newcommand\defiis[3][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}%
+\st at def@target{\definiendum at name}{#2-#3}{#2 #3s}\@defii}
+\newcommand\Defii[3][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}%
+\st at def@target{\definiendum at name}{#2-#3}{\capitalize{#2 #3}}\@defii}
+\newcommand\Defiis[3][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}%
+\st at def@target{\definiendum at name}{#2-#3}{\capitalize{#2 #3s}}\@defii}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -951,12 +1018,12 @@
 % \begin{macro}{\adefii}
 %   analogous to |\adefi|
 %    \begin{macrocode}
-\newcommand\adefii[4][]{\def\@name{#1}\def\@pone{#3}\def\@ptwo{#4}%
-\st at def@target{#1}{#3-#4}{#2}\@adefii}
+\newcommand\adefii[4][]{\metasetkeys{definiendum}{#1}\def\@pone{#3}\def\@ptwo{#4}%
+\st at def@target{\definiendum at name}{#3-#4}{#2}\@adefii}
 \newcommand\@adefii[1][]{%
 \ifdef at index%
-\ifx\@name\@empty\@twin[#1]{\@pone}{\@ptwo}%
-\else\@twin[at=\@name,#1]{\@pone}{\@ptwo}\fi%
+\ifx\definiendum at name\@empty\omdoc at indexii[#1]{\@pone}{\@ptwo}%
+\else\omdoc at indexii[at=\definiendum at name,#1]{\@pone}{\@ptwo}\fi%
 \fi\xspace}
 %    \end{macrocode}
 % \end{macro}
@@ -964,26 +1031,66 @@
 % \begin{macro}{\defiii}
 %   similar to |\defii|
 %    \begin{macrocode}
-\newcommand\defiii[4][]{\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}%
-\st at def@target{#1}{#2-#3-#4}{#2 #3 #4}\@defiii}
-\newcommand\@defiii[1][]{\ifdef at index\@atwin[#1]{\@pone}{\@ptwo}{\@pthree}\fi\xspace}
-\newcommand\defiiis[4][]{\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}%
-\st at def@target{#1}{#2-#3-#4}{#2 #3 #4s}\@defiii}
+\newcommand\@defiii[1][]{\ifdef at index\omdoc at indexiii[#1]{\@pone}{\@ptwo}{\@pthree}\fi\xspace}
+\newcommand\defiii[4][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}%
+\st at def@target{\definiendum at name}{#2-#3-#4}{#2 #3 #4}\@defiii}
+\newcommand\defiiis[4][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}%
+\st at def@target{\definiendum at name}{#2-#3-#4}{#2 #3 #4s}\@defiii}
+\newcommand\Defiii[4][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}%
+\st at def@target{\definiendum at name}{#2-#3-#4}{\capitalize{#2 #3 #4}}\@defiii}
+\newcommand\Defiiis[4][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}%
+\st at def@target{\definiendum at name}{#2-#3-#4}{\capitalize{#2 #3 #4s}}\@defiii}
 %    \end{macrocode}
 % \end{macro}
 %
 % \begin{macro}{\adefiii}
 %    \begin{macrocode}
-\newcommand\adefiii[5][]{\def\@name{#1}\def\@pone{#3}\def\@ptwo{#4}\def\@pthree{#3}%
-\st at def@target{#1}{#3-#4-#5}{#2}\@adefiii}
+\newcommand\adefiii[5][]{\metasetkeys{definiendum}{#1}\def\@pone{#3}\def\@ptwo{#4}\def\@pthree{#5}%
+\st at def@target{\definiendum at name}{#3-#4-#5}{#2}\@adefiii}
 \newcommand\@adefiii[1][]{%
 \ifdef at index%
-\ifx\@name\@empty\@atwin[#1]{\@pone}{\@ptwo}{\@pthree}%
-\else\@atwin[at=\@name,#1]{\@pone}{\@ptwo}{\@pthree}\fi%
+\ifx\definiendum at name\@empty\omdoc at indexiii[#1]{\@pone}{\@ptwo}{\@pthree}%
+\else\omdoc at indexiii[at=\definiendum at name,#1]{\@pone}{\@ptwo}{\@pthree}\fi%
 \fi\xspace}
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\defiv}
+%   similar to |\defiii|
+%    \begin{macrocode}
+\newcommand\@defiv[1][]{\ifdef at index\omdoc at indexiv[#1]{\@pone}{\@ptwo}{\@pthree}{\@ptfour}\fi\xspace}
+\newcommand\defiv[5][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}\def\@ptfour{#5}%
+\st at def@target{\definiendum at name}{#2-#3-#4-#5}{#2 #3 #4 #5}\@defiv}
+\newcommand\defivs[5][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}\def\@ptfour{#5}%
+\st at def@target{\definiendum at name}{#2-#3-#4-#5}{#2 #3 #4 #5s}\@defiv}
+\newcommand\Defiv[5][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}\def\@ptfour{#5}%
+\st at def@target{\definiendum at name}{#2-#3-#4-#5}{\capitalize{#2 #3 #4 #5}}\@defiv}
+\newcommand\Defivs[5][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}\def\@ptfour{#5}%
+\st at def@target{\definiendum at name}{#2-#3-#4-#5}{\capitalize{#2 #3 #4 #5s}}\@defiv}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\adefiv}
+%    \begin{macrocode}
+\newcommand\adefiv[6][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#3}\def\@ptwo{#4}\def\@pthree{#5}\def\@ptfour{#6}%
+\st at def@target{\definiendum at name}{#3-#4-#5-#6}{#2}\@adefiv}
+\newcommand\@adefiv[1][]{%
+\ifdef at index%
+\ifx\definiendum at name\@empty\@indiv[#1]{\@pone}{\@ptwo}{\@pthree}{\@ptfour}%
+\else\@indiv[at=\definiendum at name,#1]{\@pone}{\@ptwo}{\@pthree}{\@ptfour}\fi%
+\fi\xspace}
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\inlineex}
 %    \begin{macrocode}
 \newcommand\inlineex[2][]{\metasetkeys{omtext}{#1}%
@@ -1003,7 +1110,7 @@
 \newcommand\inlinedef[2][]{\metasetkeys{omtext}{#1}%
 \if at in@omtext\else% we are not in an omtext or statement
 \PackageError{modules}{\protect\inlinedef\space outside a statement!}%
-{Try wrapping the paragraph in a\MessageBreak 
+{Try wrapping the paragraph in a\MessageBreak
 \protect\begin{omtext}, \protect\begin{assertion}, \protect\begin{axiom}, ... \MessageBreak
 whatever is suitable semantically}\fi%
 \sref at target\sref at label@id{here}\st at indeftrue #2}
@@ -1025,15 +1132,16 @@
 \addmetakey*{termref}{name}
 \addmetakey*{termref}{role}
 \newcommand\termref[2][]{\metasetkeys{termref}{#1}%
-  \ifx\termref at cd\@empty\def\termref at cd{\mod at id}\fi%
-  \ifx\termref at name\@empty\def\termref at name{#2}\fi%
-  \@ifundefined{sref@\termref at name @\termref at cd @defined}
-  {\ifx\termref at cdbase\@empty% external reference
-    \mod at termref\termref at cd\termref at name{#2}%
-    \else\sref at href@ifh\termref at cdbase{#2}%
-    \fi}%
-  {\sref at hlink@ifh{sref@\termref at name @\termref at cd @target}{#2}}%
-}
+\ifx\termref at cd\@empty\def\termref at cd{\mod at id}\fi%
+\ifx\termref at name\@empty\def\termref at name{#2}\fi%
+\@ifundefined{sref@\termref at name @\termref at cd @defined}%
+{\ifx\termref at cdbase\@empty% external reference
+\mod at termref\termref at cd\termref at name{#2}%
+\else\sref at href@ifh\termref at cdbase{#2}%
+\fi}%
+{\def\@label{sref@\termref at name @\termref at cd @target}%
+\sref at hlink@ifh\@label{#2}%\footnote{termref: internal reference to \@label}
+}}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1043,6 +1151,7 @@
 \ifx\@test\@empty\termref[name=#3]{#2}\else\termref[cd=#1,name=#3]{#2}\fi}
 \newcommand\atrefii[4][]{\atrefi[#1]{#2}{#3-#4}}
 \newcommand\atrefiii[5][]{\atrefi[#1]{#2}{#3-#4-#5}}
+\newcommand\atrefiv[6][]{\atrefi[#1]{#2}{#3-#4-#5-#6}}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1051,12 +1160,27 @@
 \newcommand\trefi[2][]{\atrefi[#1]{#2}{#2}}
 \newcommand\trefii[3][]{\atrefi[#1]{#2 #3}{#2-#3}}
 \newcommand\trefiii[4][]{\atrefi[#1]{#2 #3 #4}{#2-#3-#4}}
+\newcommand\trefiv[5][]{\atrefi[#1]{#2 #3 #4 #5}{#2-#3-#4-#5}}
 \newcommand\trefis[2][]{\atrefi[#1]{#2s}{#2}}
 \newcommand\trefiis[3][]{\atrefi[#1]{#2 #3s}{#2-#3}}
 \newcommand\trefiiis[4][]{\atrefi[#1]{#2 #3 #4s}{#2-#3-#4}}
+\newcommand\trefivs[5][]{\atrefi[#1]{#2 #3 #4 #5s}{#2-#3-#4-#5}}
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\Tref*}
+%    \begin{macrocode}
+\newcommand\Trefi[2][]{\atrefi[#1]{\capitalize{#2}}{#2}}
+\newcommand\Trefii[3][]{\atrefi[#1]{\capitalize{#2 #3}}{#2-#3}}
+\newcommand\Trefiii[4][]{\atrefi[#1]{\capitalize{#2 #3 #4}}{#2-#3-#4}}
+\newcommand\Trefiv[5][]{\atrefi[#1]{\capitalize{#2 #3 #4 #5}}{#2-#3-#4-#5}}
+\newcommand\Trefis[2][]{\atrefi[#1]{\capitalize{#2s}}{#2}}
+\newcommand\Trefiis[3][]{\atrefi[#1]{\capitalize{#2 #3s}}{#2-#3}}
+\newcommand\Trefiiis[4][]{\atrefi[#1]{\capitalize{#2 #3 #4s}}{#2-#3-#4}}
+\newcommand\Trefivs[5][]{\atrefi[#1]{\capitalize{#2 #3 #4 #5s}}{#2-#3-#4-#5}}
+%    \end{macrocode}
+% \end{macro}
+%
 % Now we care about the configuration switches, they are set to sensible values, if they
 % are not defined already. These are just configuration parameters, which should not
 % appear in documents, therefore we do not provide {\latexml} bindings for them.
@@ -1125,6 +1249,11 @@
 %
 \endinput
 % \iffalse
+%%% Local Variables: 
+%%% mode: doctex
+%%% TeX-master: t
+%%% End: 
+% \fi
 % LocalWords:  GPL structuresharing STR dtx keyval env envfalse idfalse idtrue typedec st
 % LocalWords:  displayfalse envtrue displaytrue forfalse typefalse titlefalse filedate eg
 % LocalWords:   continuesfalse fortrue fromtrue typetrue titletrue CPERL omdoc thedectype
@@ -1131,7 +1260,7 @@
 % LocalWords:   continuestrue symboldec omtext RequirePackage lowcase lc ToString termin
 % LocalWords:  foreach hyperref href hlink DefStatement OptionalKeyVals ne NeedsTeXFormat
 % LocalWords:  KeyVal xml CMP simpleDef PatternDef DefStatement PatternRule thedectype
-% LocalWords:  requation PatternCMP RecDef DefConstructor keyvals defs psymbols tref
+% LocalWords:  requation PatternCMP RecDef DefConstructor keyvals defs psymbols tref eset
 % LocalWords:  openElement symb closeElement ffor getValue attrs metadata undef rangle
 % LocalWords:  afterDigestBegin setProperty AssignValue afterDigest definiendum rangle
 % LocalWords:  cd addr LookupValue getArg toString idx idt definiendum ide idp st at flow
@@ -1138,36 +1267,38 @@
 % LocalWords:  DefMacro args unlist inlinedef uri pdf afterOpen numberIt texttt XMath
 % LocalWords:  iffalse consymb ntheorem textbackslash symref def scsys sc sc kw endinput
 % LocalWords:  mathml openmath latexml activemath fileversion maketitle stex importmodule
-% LocalWords:  setcounter tocdepth tableofcontents newpage sproofs ulsmf08 sref
+% LocalWords:  setcounter tocdepth tableofcontents newpage sproofs ulsmf08 sref usevocab
 % LocalWords:  MaySch eltte09 twintoo sref subsubsection exfig vspace vspace usemhvocab
-% LocalWords:  noindent renewtheorem hline textbf textbf footnotesize ple peano
+% LocalWords:  noindent renewtheorem hline textbf textbf footnotesize ple peano inlineass
 % LocalWords:  STaxiomEnv symdef medskip succ mathbb ldots stepcounter ednote usemhmodule
 % LocalWords:  STtheoremAssEnv stepcounter STtheoremAssEnv stepcounter defin STtypedecEnv
-% LocalWords:  STtheoremAssEnv notatiendum defin smomdl biblatex twindef cdbase
-% LocalWords:  twindef atwindef atwindef adjectivized varaiants twindefalt cseq
-% LocalWords:  twindefalt atwindefalt atwindefalt csymbol definalt termref emph
-% LocalWords:  termref compactdesc KohAmb smmssl twinref atwinref newpart impl
-% LocalWords:  termdef defemph defemph renewcommand termemph termenph stDMemph
-% LocalWords:  stDMemph STpresent STpresent makeatletter STlemmaAssEnv textsf
-% LocalWords:  STpropositionAssEnv STcorollaryAssEnv STconjectureAssEnv langle
-% LocalWords:  STfalseconjectureAssEnv STpostulateAssEnv STobligationAssEnv foo
-% LocalWords:  STassumptionAssEnv STobservationAssEnv STexampleEnv textsf ltxml
-% LocalWords:  STdefinitionEnv STnotationEnv printbibliography langle ncname
-% LocalWords:  theoremstyle sym newenvironment ifx csname endcsname inlineex
-% LocalWords:  currentlabel theorembodyfont itshape theoremheaderfont bfseries
-% LocalWords:  normalfont newtheorem upshape srefaddidkey  definendum 
-% LocalWords:  newcommand indef newif ifst indeffalse indeftrue attr whatsit
-% LocalWords:  STdefinitionEnvKeyword notemph modulename ifundefined atwin defi
-% LocalWords:  expandafter providecommand nameuse doctex ctancite funval defii
+% LocalWords:  STtheoremAssEnv notatiendum defin smomdl biblatex twindef cdbase defis
+% LocalWords:  twindef atwindef atwindef adjectivized varaiants twindefalt cseq defindex
+% LocalWords:  twindefalt atwindefalt atwindefalt csymbol definalt termref emph emptyset
+% LocalWords:  termref compactdesc KohAmb smmssl twinref atwinref newpart impl customized
+% LocalWords:  termdef defemph defemph renewcommand termemph termenph stDMemph formalized
+% LocalWords:  stDMemph STpresent STpresent makeatletter STlemmaAssEnv textsf emphasized
+% LocalWords:  STpropositionAssEnv STcorollaryAssEnv STconjectureAssEnv langle defiis
+% LocalWords:  STfalseconjectureAssEnv STpostulateAssEnv STobligationAssEnv foo defiis
+% LocalWords:  STassumptionAssEnv STobservationAssEnv STexampleEnv textsf ltxml defiiis
+% LocalWords:  STdefinitionEnv STnotationEnv printbibliography langle ncname localization
+% LocalWords:  theoremstyle sym newenvironment ifx csname endcsname inlineex loadmodules
+% LocalWords:  currentlabel theorembodyfont itshape theoremheaderfont bfseries defiiis
+% LocalWords:  normalfont newtheorem upshape srefaddidkey  definendum  customization gdef
+% LocalWords:  newcommand indef newif ifst indeffalse indeftrue attr whatsit automatized
+% LocalWords:  STdefinitionEnvKeyword notemph modulename ifundefined atwin defi behavior
+% LocalWords:  expandafter providecommand nameuse doctex ctancite funval defii initialize
+% LocalWords:  funsymbs findnodes symbolnode defsref showmeta showmeta sysname ngerman
+% LocalWords:  defii defiii defiii adefi adefi adefii adefii adefiii adefiii STruleAssEnv
+% LocalWords:  trefi trefii trefiii atref atrefi atrefii atrefiii conf metakeys setkeys
+% LocalWords:  compactenum Deref metasetkeys addmetakey symtype ltx ltx sts specialized
+% LocalWords:  ifmetakeys fntype rightarrow inlinetypedec inlinetypedec STremarkAssEnv
+% LocalWords:  ignorespaces usemodule textcolor STtypedecEnvKeyword flexiformalization
+%  LocalWords:  statements-ngerman.ldf omdoc at indexi xspace trefis trefiis trefiiis
+%  LocalWords:  importmhmodule
 
-%%% Local Variables: 
-%%% mode: doctex
-%%% TeX-master: t
-%%% End: 
-% \fi
-% LocalWords:  funsymbs findnodes symbolnode defsref showmeta showmeta sysname
-% LocalWords:  defii defiii defiii adefi adefi adefii adefii adefiii adefiii
-% LocalWords:  trefi trefii trefiii atref atrefi atrefii atrefiii conf metakeys
-% LocalWords:  compactenum Deref metasetkeys addmetakey symtype ltx ltx sts
-% LocalWords:  ifmetakeys fntype rightarrow inlinetypedec inlinetypedec
-% LocalWords:  ignorespaces usemodule textcolor STtypedecEnvKeyword
+% \endinput
+% Local Variables:
+% mode: doctex
+% TeX-master: t
+% End:

Modified: trunk/Master/texmf-dist/source/latex/stex/stex/stex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/stex/stex.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/stex/stex.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,11 +10,12 @@
 %   
 % \iffalse
 %<package|logo>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{stex}[2016/04/07 v1.0 Semantic Markup]
-%<logo>\ProvidesPackage{stex-logo}[2016/04/07 v1.0 sTeX Logo]
+%<package>\ProvidesPackage{stex}[2019/03/20 v1.0 Semantic Markup]
+%<logo>\ProvidesPackage{stex-logo}[2019/03/20 v1.0 sTeX Logo]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{url,float,xspace,tikz}
 \usepackage[show]{ed}
 \usepackage[hyperref=auto,style=alphabetic,backend=bibtex]{biblatex}
@@ -49,7 +50,7 @@
 % 
 % \title{Semantic Markup in {\TeX/\LaTeX}}
 % \author{Michael Kohlhase\\
-% Jacobs University, Bremen\\
+% FAU Erlangen-N\"urnberg\\
 % \url{http://kwarc.info/kohlhase}}
 % \maketitle
 %
@@ -124,7 +125,7 @@
 % The {\xml}-based syntax and the separation of the presentational-, functional- and
 % programming/extensibility concerns in {\mathml} has some distinct advantages over the
 % integrated approach in {\TeX/\LaTeX} on the services side: {\mathml} gives us better
-% \begin{compactitem}
+% \begin{itemize}
 % \item integration with web-based publishing,
 % \item accessibility to disabled persons, e.g. (well-written) {\mathml} contains enough
 %   structural information to supports screen readers.
@@ -131,12 +132,12 @@
 % \item reusability, searchabiliby and integration with mathematical software systems
 %   (e.g. copy-and-paste to computer algebra systems), and
 % \item validation and plausibility checking.
-% \end{compactitem}
+% \end{itemize}
 % 
 % On the other hand, {\TeX/\LaTeX}/s adaptable syntax and tightly integrated programming
 % features within has distinct advantages on the authoring side:
 %  
-% \begin{compactitem}
+% \begin{itemize}
 % \item The {\TeX/\LaTeX} syntax is much more compact than {\mathml}, and if needed, the
 %   community develops {\LaTeX} packages that supply new functionality in with a succinct
 %   and intuitive syntax.
@@ -148,7 +149,7 @@
 % \item There is a host of software systems centered around the {\TeX/\LaTeX} language that
 %   make authoring content easier: many editors have special modes for {\LaTeX}, there are
 %   spelling/style/grammar checkers, transformers to other markup formats, etc.
-% \end{compactitem}
+% \end{itemize}
 %
 % In other words, the technical community is is heavily invested in the whole
 % {\index*{workflow}}, and technical know-how about the format permeates the
@@ -181,7 +182,7 @@
 % bindings''\index{LaTeXML}{binding}, i.e. a directive to the \latexml emitter that
 % specifies the target representation in {\xml}.
 % 
-% \subsection{Generating \protect\omdoc from \sTeX}
+% \subsection{Generating \protect\omdoc from \protect\sTeX}
 % 
 % The \sTeX packages (see Section~\ref{sec:packages}) provide functionalities for marking
 % up the functional structure of mathematical documents, so that the {\LaTeX} sources
@@ -471,7 +472,7 @@
 % One of the key advantages of semantic markup with \sTeX is that the \sTeX sources are
 % highly reusable by the ``object-oriented'' inheritance model induced by \sTeX
 % modules. It turned out to be useful to divide \sTeX documents into three kinds of files:
-% \begin{compactenum}
+% \begin{enumerate}
 % \item \textbf{module files}: files that essentially contain a collection of \sTeX
 %   modules~\ctancite{KohAmb:smmssl} -- usually a single one whose module name coincides
 %   the file name base.
@@ -480,7 +481,7 @@
 %   additional remarks.
 % \item \textbf{driver files} that set up the document class, contain the preambles, and
 %   input reference fragment files. 
-% \end{compactenum}
+% \end{enumerate}
 %   
 % These correspond to the \sTeX documents, but can reuse and share \sTeX fragments and
 % modules. Figure~\ref{fig:reuse} shows a situation, where we have two courses given over
@@ -574,7 +575,7 @@
 % Mathematical Documents -- documents that are made context-aware and interactive by
 % semantic annotations. \sTeX is one of the main input formats for informal active
 % documents. MathHub supports \sTeX documents in three ways:
-% \begin{compactenum}
+% \begin{enumerate}
 % \item MathHub offers free/open hosting in document repositories for (mathematical) \sTeX
 %   document collections.
 % \item the backend system supports the large-scale change- and error-management for \sTeX
@@ -581,7 +582,7 @@
 %   documents in the ``little modules'' paradigm.
 % \item the front-end displays interactive (HTML5) documents generated from the \sTeX
 %   sources (via \omdoc).
-% \end{compactenum}
+% \end{enumerate}
 % The MathHub system is probably the best way of developing and hosting larger \sTeX
 % document collections. It offers two authoring workflows an online authoring workflow via
 % a direct web interface~\cite{MathHub:oa:on} or casual users and an offline authoring
@@ -595,7 +596,7 @@
 % then commits for inclusion to MathHub. The MathHub build system can be used locally for
 % efficient development via the |localmh| system~\cite{lmh:github:on}. In a nutshell --
 % see~\cite{MathHub:law:on} for details --
-% \begin{compactenum}
+% \begin{enumerate}
 % \item |localmh| is installed in a docker container that supplies the build system and
 %   provides the |lmh| command suite.
 % \item |lmh pdf| formats \sTeX modules to PDF -- building all dependencies, e.g. module
@@ -605,7 +606,7 @@
 %   \omdoc versions.
 % \item |lmh| \meta{gitsc} distributes the git subcommand \meta{gitsc} over multiple
 %   repositories.
-% \end{compactenum}
+% \end{enumerate}
 % Various other |lmh| subcommands help with large-scale editing problems like renaming or
 % moving modules, translations in multilingual settings, etc.
 % 
@@ -634,10 +635,10 @@
 % Then we make sure that the necessary packages are loaded (in the right versions).
 %    \begin{macrocode}
 \RequirePackage{stex-logo}
+\RequirePackage{omdoc}
 \RequirePackage{statements}
 \RequirePackage{structview}
 \RequirePackage{sproof}
-\RequirePackage{omdoc}
 \RequirePackage{cmath}
 \RequirePackage{dcm}
 %</package>

Modified: trunk/Master/texmf-dist/source/latex/stex/structview/structview.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/structview/structview.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/structview/structview.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,10 +10,11 @@
 %  
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{structview}[2016/04/07 v0.9 Structures and Views]
+%<package>\ProvidesPackage{structview}[2019/03/20 v0.9 Structures and Views]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{stex-logo,structview}
 \usepackage{url,array,float,textcomp}
 \usepackage[show]{ed}
@@ -27,12 +28,19 @@
 \usepackage{ctangit}
 \usepackage{xspace}
 \usepackage{hyperref}
+\usepackage{tikz}
+\usetikzlibrary{mmt}
 \makeindex
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{structview.dtx}\end{document} 
+\def\githubissue#1{\cite{sTeX:github:on},\hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\def\gray#1{\textcolor{gray}{#1}}
+\def\map#1#2{#1\mapsto #2}
+\begin{document}
+\RecordChanges
+\DocInput{structview.dtx}
+\end{document} 
 %</driver>
 % \fi
 % 
@@ -39,9 +47,9 @@
 % \CheckSum{926}
 %
 % \changes{v0.9}{2015/11/05}{Moved out of the \texttt{modules} package}
+% \changes{v0.9}{2016/06/11}{Deprecated \texttt{viewsketch}}
 % 
 % \GetFileInfo{modules.sty}
-% 
 % \MakeShortVerb{\|}
 %\def\scsys#1{{{\sc #1}}\index{#1@{\sc #1}}\xspace}
 % \def\xml{\scsys{Xml}}
@@ -57,11 +65,13 @@
 % \def\atwin#1#2#3{\index{#1!#2!#3}\index{#3!#2 (#1)}}
 % \def\atwintoo#1#2#3{{#1 #2 #3}\atwin{#1}{#2}{#3}}
 % \def\cT{\mathcal{T}}\def\cD{\mathcal{D}}
+% \def\cn#1{\mathsf{#1}}
 % \title{{\texttt{structview.sty}}: Structures and Views in {\stex}\thanks{Version {\fileversion} (last revised
 %        {\filedate})}}
 %    \author{Michael Kohlhase\\
-%            Jacobs University, Bremen\\
-%            \url{http://kwarc.info/kohlhase}}
+%    FAU Erlangen-N\"urnberg\\
+%    FAU Erlangen-N\"urnberg\\
+%    \url{http://kwarc.info/kohlhase}}
 % \maketitle
 %
 % \begin{abstract}
@@ -74,10 +84,62 @@
 %   relations between modules/theories.
 % \end{abstract}
 %
-% \newpage\setcounter{tocdepth}{2}\tableofcontents\newpage
+% \setcounter{tocdepth}{2}\tableofcontents\newpage
 %
 % \section{Introduction}\label{sec:intro}
-% \ednote{What are structures and views?}
+% 
+% Structures and views constitute ways of defining and relating theories in a theory graph
+% that considerably extend the ``object-oriented inheritance'' constituted by the imports
+% relation given by the \sTeX |module| package.
+% 
+% Structures are like imports, only that they allow to define new theories via inheritance
+% with renaming.  Views relate pre-existing theories and model conceptual refinements,
+% framing, and implementation relations, again via a mapping between the languages defined
+% by the source and target theories; we call these mappings \textbf{theory morphisms}.
+% 
+% For details about theory morphisms we refer to~\cite{RabKoh:WSMSML13}, but hope to make
+% the underlying concepts clear with examples.
+%
+%\begin{figure}[ht]\centering
+% \begin{tikzpicture}[scale=.9]\footnotesize
+% \node[thy] (Mon) at (0,1.2) {$\mmtthy{monoid}{\gray{\cn{op},\;\cn{unit}}}{}$};
+% \node[thy] (CGr) at (0,3) {$\mmtthy{cgp}{\gray{\cn{mon},\;\cn{inv}}}{}$};
+% \node[thy] (Ring) at (-3.5,3) {$\mmtthy{ring}{\gray{\cn{add}},\;\gray{\cn{mul}}}{}$};
+% \draw[struct](Mon) -- node[left,near end]{$\cn{cgp}?\cn{mon}$} (CGr);
+% \draw[struct](CGr) -- node[below]{$\cn{ring}?\cn{add}$}(Ring);
+% \draw[struct](Mon) -- node[left]{$\cn{ring}?\cn{mul}$} (Ring);
+% \node[thy] (Int) at (3,3) {$\mmtthy{integers}{\gray{+,0,-,\cdot,1}}{}$};
+% \node[draw] (v2) at (1.5,4.8) {
+%  $\begin{array}{l}
+%    v_2\colon \\
+%    \gray{\left\{\begin{array}{c}
+%                   \map{\cn{mon}/\cn{op}}{+} \\
+%                   \map{\cn{mon}/\cn{unit}}{0}
+%                 \end{array}
+%     \right\}}
+%     \;\mathrm{or}\; \gray{\map{\cn{mon}}{v_1}} \\
+%    \gray{\map{\cn{inv}}{-}}
+%   \end{array}$};
+% \node[draw] at (2.5,1.4) {
+%   $\begin{array}{l}
+%     v_1\colon\\
+%     \gray{\map{\cn{op}}{+}} \\
+%     \gray{\map{\cn{unit}}{0}}
+%    \end{array}$};
+% \draw[view](Mon) -- (Int);
+% \draw[view](CGr) -- node[below]{$v_2$} (Int);
+% \draw[struct] (-4,4.5) -- +(1,0);
+% \draw[view] (-4,5) -- +(1,0);
+% \node[right] at (-3,4.5) {import};
+% \node[right] at (-3,5) {view};
+% \draw[view] (Ring) to[out=17,in=163] node[above,very near start] {$v_3$} (Int);
+% \draw[view] (Mon) to[loop left] node[left,draw,solid,outer sep=3pt,thin]{$v_4\colon\map{x\,\cn{op}\,y}{y\,\cn{op}\,x}$}(Mon);
+% \end{tikzpicture}
+% \caption{A Theory Graph with Structures and Views}\label{fig:structview}
+% \end{figure}
+% \ednote{explain the contribution of structures and views to theory graphs and
+% synchronize with Figure~\ref{fig:ring}.}
+% 
 % \section{The User Interface}
 %
 % The main contributions of the |modules| package are the |module| environment, which
@@ -86,73 +148,68 @@
 % 
 % \subsection{Package Options}\label{sec:options}
 %
-% The |modules| package takes two options: If we set
-% \DescribeMacro{showmods}|showmods|\ednote{This mechanism does not work yet, since we
-% cannot disable it when importing modules and that leads to unwanted boxes. What we need
-% to do instead is to tweak the sms utility to use an internal version that never shows
-% anything during sms reading.}, then the views (see Section~\ref{sec:user:views}) are
-% shown. If we set the \DescribeMacro{qualifiedimports}|qualifiedimports| option, then
-% qualified imports are enabled. Qualified imports give more flexibility in module
-% inheritance, but consume more internal memory. As qualified imports are not fully
-% implemented at the moment, they are turned off by default see
-% Limitation~\ref{sec:limitations:qualified-imports}. The option
-% \DescribeMacro{noauxreq}|noauxreq| prohibits the registration of |\@requiremodules|
-% commands in the |aux| file. They are necessary for preloading the module signatures so
-% that entries in the table of contents can have semantic macros; but as they sometimes
-% cause trouble the option allows to turn off preloading.
+% The \DescribeMacro{mh}|mh| option turns on MathHub support.
 % 
-% If the \DescribeMacro{showmeta}|showmeta| is set, then the metadata keys are shown
-% (see~\cite{Kohlhase:metakeys:ctan} for details and customization options).
+% \subsection{Theory Morphisms}\label{sec:user:assignments}
 % 
-% \subsection{Structures}\label{sec:user:structures}
+% A theory morphism is a mapping between the languages of its source and target
+% theory. This can be described mathematically using all the structures in the \sTeX
+% distribution. However, in many situations, the language transformation of a morphism can
+% be given in form of \textbf{assignments} that map symbols of the source theory to
+% expressions of the target theory.
 % 
-% The |\importmodule| macro has a variant
-% \DescribeMacro{importmodulevia}|\importmodulevia| that allows the specification of a
-% theory morphism to be applied.  |\importmodulevia{|\meta{thyid}|}{|\meta{assignments}|}|
-% specifies the ``source theory'' via its identifier \meta{thyid} and the morphism by
-% \meta{assignments}. There are four kinds:\ednote{MK: this needs to be consolidated and
-% researched better.}
-% \begin{compactdesc}
+% There are three kinds assignments:\ednote{MK: we need better macros here.}
+% \begin{description}
 % \item[symbol assignments] via
-%   \DescribeMacro{\vassign}|\vassign{|\meta{sym}|}{|\meta{exp}|}|, which defines the
-%   symbol \meta{sym} introduced in the current theory by an expression \meta{exp} in the
-%   source theory.
+%   \DescribeMacro{\vassign}|\vassign{|\meta{sym}|}{|\meta{exp}|}|, which maps a symbol
+%   \meta{sym} from source theory an expression \meta{exp} in the target theory.
 % \item[function assignments] via
 %   \DescribeMacro{\fassign}|\fassign{|\meta{bvars}|}{|\meta{pat}|}{|\meta{exp}|}|, is a
-%   variant which defines a function symbol \meta{sym} introduced in the current theory by
-%   mapping a pattern expression \meta{pat} (\meta{sym} applied to \meta{bvars}) to an
-%   expression \meta{exp} in the source theory on bound variables \meta{bvars}.
+%   variant which maps a function symbol \meta{sym} by mapping a pattern expression
+%   \meta{pat} (\meta{sym} applied to \meta{bvars}) to an expression \meta{exp} in the
+%   target theory on bound variables \meta{bvars}.
 % \item[term assignments] via
-%   \DescribeMacro{\tassign}|\tassign[|\meta{source-cd}|]{|\meta{tname}|}{|\meta{source-tname}|}|,
-%   which assigns to the term with name \meta{tname} in the current theory a term with
-%   name \meta{source-tname} in the theory \meta{source-cd} whose default value is the
-%   source theory.
-% \item[term text assignments] via
-%   \DescribeMacro{\ttassign}|\tassign{|\meta{tname}|}{|\meta{text}|}|, which defines a
-%   term with name \meta{tname} in the current theory via a definitional text.
-% \end{compactdesc}
+%   \DescribeMacro{\tassign}|\tassign{|\meta{sym}|}{|\meta{tname}|}|, another special
+%   case, where the value is the symbol with name \meta{tname} in the target theory.
+% \end{description}
+% Figure~\ref{fig:ring} shows a concrete example\ednote{adapt when we fully understand
+% this, and the implementation works.}
 % 
+% The assignments above can be seen as abbreviations for a simple, formal definitions,
+% which define a symbol of the source theory by an expression in the target theory.
+% 
+% \subsection{Structures}\label{sec:user:structures}
+% 
+% Structures are specified by the \DescribeEnv{structure}|sstructure|\footnote{The old
+% |importmodulevia| environment is now deprecated.} environment:
+% \begin{center}
+%   |\begin{sstructure}[|\meta{keys}|]{|\meta{name}|}{|\meta{sthy}|}|\meta{morph}|\end{sstructure}|
+% \end{center}
+% gives the structure the name \meta{name}, specifies the ``source theory'' via its
+% identifier \meta{sthy}, and the morphism \meta{morph}. The |structure| environment takes
+% the same keys as the |\importmodule| macro, which it generalizes. The morphism
+% \meta{morph} in the body of the |structure| environment specifies the morphism
+% (see~\ref{sec:user:assignments} above). In a structure, we take the target theory to be
+% the current theory.
+%
 %\begin{exfig}
 % \begin{verbatim}
 % \begin{module}[id=ring]
-% \begin{importmodulevia}{monoid}
-%   \vassign{rbase}\magbase
-%   \fassign{a,b}{\rtimes{A}B}{\magmaop{a}b}
-%   \vassign{rone}\monunit
-% \end{importmodulevia}
-% \symdef{rbase}{G}
-% \symdef[name=rtimes]{rtimesOp}{\cdot}
-% \symdef{rtimes}[2]{\infix\rtimesOp{#1}{#2}}
+% \symdef{rbase}{R}
+% \symdef{rtimes}[2]{\infix\cdot{#1}{#2}}
 % \symdef{rone}{1}
-% \begin{importmodulevia}{cgroup}
-%   \vassign{rplus}\magmaop
-%   \vassign{rzero}\monunit
-%   \vassign{rinvOp}\cginvOp
-% \end{importmodulevia}
-% \symdef[name=rplus]{rplusOp}{+}
-% \symdef{rplus}[2]{\infix\rplusOp{#1}{#2}}
-% \symdef[name=rminus]{rminusOp}{-}
-% \symdef{rminus}[1]{\infix\rminusOp{#1}{#2}}
+% \begin{sstructure}{mul}{monoid}
+%   \tassign{magbase}{rbase}
+%   \fassign{a,b}{\magmaop{a}b}{\rtimes{a}b}
+%   \tassign{monunit}{rone}
+% \end{sstructure}
+% \symdef{rplus}[2]{\infix+{#1}{#2}}
+% \symdef{rminus}[1]{\infix-{#1}{#2}}
+% \begin{sstructure}{add}{cgroup}
+%   \fassign{a,b}{\magmaop{a}b}{\rplus{a}b}
+%   \tassign{monunit}{rzero}
+%   \tassign{cginvOp}{\rminus}
+% \end{sstructure}
 % ...
 % \end{module}
 % \end{verbatim}
@@ -162,13 +219,35 @@
 % \subsection{Views}\label{sec:user:views}
 % 
 % A view is a mapping between modules, such that all model assumptions (axioms) of the
-% source module are satisfied in the target module. \ednote{Document and make Examples}
+% source module are satisfied in the target module. For marking up views the |structview|
+% package supplies the \DescribeEnv{view}|view| environment; see Figure~\ref{fig:view} for
+% the \stex markup of view $v_1$ from Figure~\ref{fig:structview}. The |view| environment
+% takes one optional key/value argument followed by two mandatory ones: the names of the
+% source and target modules. The |view| environment takes the following keys: |id| for a
+% name, |title| and |display| for visual presentation, |loadfrom|, |loadto|, and
+% |ext|\ednote{MK: we probably need toext and fromext here, but this never came up yet.}
+% for specifying the source files that supply the source and target modules, |creators|,
+% |contributors|, |srccite| for document metadata, and |type|\ednote{????}.
 %
+%\begin{exfig}
+% \begin{verbatim}
+% \begin{view}{monoid}{integers}
+%   \vassign{magbase}{base}
+%   \fassign{a,b}{\magmaop{a}b}{\inttimes{a,b}}
+%   \tassign{monunit}{\intzero}
+%   \begin{assertion}
+%     The Integers with addition form a monoid in the obvious way.
+%   \end{assertion}
+% \end{view}
+% \end{verbatim}
+% \caption{A view from monoids to integers}\label{fig:view}
+% \end{exfig}
+%
 % \section{Limitations \& Extensions}\label{sec:limitations}
 % 
 % In this section we will discuss limitations and possible extensions of the |modules|
 % package. Any contributions and extension ideas are welcome; please discuss ideas,
-% requests, fixes, etc on the {\sTeX} TRAC~\cite{sTeX:online}.
+% requests, fixes, etc on the {\sTeX} TRAC~\cite{sTeX:github:on}.
 % 
 % \section{The Implementation}\label{sec:impl} 
 %
@@ -194,28 +273,41 @@
 \RequirePackage{modules}
 %    \end{macrocode}
 %
+% \subsection{Theory Morphisms by Assignments}\label{sec:impl:assignments}
+% 
+% \begin{environment}{\*assign}
+%   \ednote{probably get rid of the optional argument}
+%    \begin{macrocode}
+\newrobustcmd\vassign[3][]{\ifmod at show\ensuremath{#2\mapsto #3}, \fi}%
+\newrobustcmd\fassign[4][]{\ifmod at show \ensuremath{#3(#2)\mapsto #4}, \fi}%
+\newrobustcmd\tassign[3][]{\ifmod at show \ensuremath{#2\mapsto} #3, \fi}%
+%    \end{macrocode}
+% \end{environment}
+% 
 % \subsection{Structures}\label{sec:impl:structures}
 % 
-% \begin{macro}{\importmodulevia} 
-%   The |importmodulevia| environment just calls |\importmodule|, but to get around the
+% \begin{environment}{sstructure} 
+%   The |structure| environment just calls |\importmodule|, but to get around the
 %   group, we first define a local macro |\@@doit|, which does that and can be called with
-%   an |\aftergroup| to escape the environment grouping introduced by |importmodulevia|.
+%   an |\aftergroup| to escape the environment grouping introduced by |structure|.
 %    \begin{macrocode}
-\newenvironment{importmodulevia}[2][]{%
-  \gdef\@@doit{\importmodule[#1]{#2}}%
-  \ifmod at show\par\noindent importing module #2 via \@@doit\fi%
+\newenvironment{sstructure}[3][]{%
+  \gdef\@@doit{\importmodule[#1]{#3}}%
+  \ifmod at show\par\noindent importing module #3 via \@@doit\fi%
 }{%
   \aftergroup\@@doit\ifmod at show end import\fi%
 }%
 %    \end{macrocode}
-% \end{macro}
-%
-% \begin{environment}{\*assign}
+% \end{environment}
+% 
+% \begin{environment}{importmodulevia}
+%   This is now deprecated, we give an error, but punt to |structure|.
 %    \begin{macrocode}
-\newrobustcmd\vassign[3][]{\ifmod at show\ensuremath{#2\mapsto #3}, \fi}%
-\newrobustcmd\tassign[3][]{\ifmod at show #2\ensuremath{\mapsto} #3, \fi}%
-\newrobustcmd\fassign[4][]{\ifmod at show \ensuremath{#3\mapsto #4}, \fi}%
-\newrobustcmd\ttassign[3][]{\ifmod at show #2\ensuremath{\mapsto} ``#3'', \fi}%
+\newenvironment{importmodulevia}[2][]%
+{\PackageError{structview}%
+  {The {importmodulevia} environment is deprecated}{use the {sstructure} instead!}%
+  \begin{sstructure}[#1]{missing}{#2}}
+{\end{sstructure}}
 %    \end{macrocode}
 % \end{environment}
 % 
@@ -226,8 +318,8 @@
 \srefaddidkey{view}
 \addmetakey*{view}{title}
 \addmetakey{view}{display}
-\addmetakey{view}{from}
-\addmetakey{view}{to}
+\addmetakey{view}{loadfrom}
+\addmetakey{view}{loadto}
 \addmetakey{view}{creators}
 \addmetakey{view}{contributors}
 \addmetakey{view}{srccite}
@@ -238,7 +330,7 @@
 % \begin{macro}{\view at heading}
 %   Then we make a convenience macro for the view heading. This can be customized. 
 %    \begin{macrocode} 
-\newcounter{view}[section]
+\ifdef{\thesection}{\newcounter{view}[section]}{\newcounter{view}}
 \newrobustcmd\view at heading[4]{%
   \if at importing%
   \else%
@@ -267,7 +359,7 @@
 %   module signatures) for module bookkeeping and adds presentation (a heading and a box)
 %   if the |showmods| option is set.
 %    \begin{macrocode}
-\newenvironment{view}[3][]{%
+\newenvironment{view}[3][]{% keys, from, to
   \metasetkeys{view}{#1}%
   \sref at target%
   \begin{@view}{#2}{#3}%
@@ -284,24 +376,20 @@
 %   The |@view| does the actual bookkeeping at the module level.
 %    \begin{macrocode}
 \newenvironment{@view}[2]{%from, to
-  \@importmodule[\view at from]{#1}{\view at ext}%
-  \@importmodule[\view at to]{#2}{\view at ext}%
+  \@importmodule[\view at loadfrom]{#1}{\view at ext}%
+  \@importmodule[\view at loadto]{#2}{\view at ext}%
 }{}%
 %    \end{macrocode}
 % \end{environment}
 % 
 % \begin{environment}{viewsketch}
-%   The |viewsketch| environment behaves like |view|, but only has text contents.
+%   The |viewsketch| environment is deprecated, we give an error
 %    \begin{macrocode}
-\newenvironment{viewsketch}[3][]{%
-  \metasetkeys{view}{#1}%
-  \sref at target%
-  \begin{@view}{#2}{#3}%
-  \view at heading{#2}{#3}{\view at display}{\view at title}%
-}{%
-  \end{@view}%
-}%
-\ifmod at show\surroundwithmdframed{viewsketch}\fi%
+\newenvironment{viewsketch}[3][]%
+{\PackageError{structview}%
+  {The {viewsketch} environment is deprecated}{use the {view} instead!}%
+  \begin{view}[#1]{#2}{#3}}
+{\end{view}}
 %    \end{macrocode}
 % \end{environment}
 %
@@ -317,6 +405,7 @@
 %</package>
 %    \end{macrocode}
 % \end{macro}
+%
 % \Finale
 \endinput
 %%% Local Variables: 
@@ -323,3 +412,15 @@
 %%% mode: doctex
 %%% TeX-master: t
 %%% End: 
+
+%  LocalWords:  iffalse NeedsTeXFormat structview.dtx texttt scsys sc sc xspace mathml cn
+%  LocalWords:  omdoc latexml cmathml activemath twintoo atwin atwintoo mathcal mathcal
+%  LocalWords:  structview.sty stex maketitle newpage setcounter tocdepth tableofcontents
+%  LocalWords:  newpage symdef importmodulevia thyid ednote compactdesc vassign vassign
+%  LocalWords:  sym exp fassign fassign bvars tassign tassign tname source-tname exfig
+%  LocalWords:  monoids impl behavior sref newif xcomment initialize structview-mh gdef
+%  LocalWords:  aftergroup newenvironment ifmod at show noindent newrobustcmd ensuremath ifx
+%  LocalWords:  mapsto srefaddidkey addmetakey srccite customized newcounter stepcounter
+%  LocalWords:  textbf thesection theview textsf textsf ignorespaces metasetkeys doctex
+%  LocalWords:  surroundwithmdframed mathsf RabKoh centering tikzpicture mmtthy CGr cgp
+%  LocalWords:  inv cdot mathrm synchronize sstructure sthy loadfrom loadto toext fromext

Modified: trunk/Master/texmf-dist/source/latex/stex/tikzinput/tikzinput.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/tikzinput/tikzinput.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/tikzinput/tikzinput.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,10 +10,11 @@
 %   
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{tikzinput}[2016/04/07 v1.0 Selective input of TIKZ pictures]
+%<package>\ProvidesPackage{tikzinput}[2019/03/20 v1.0 Selective input of TIKZ pictures]
 %
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{url,array,float}
 \usepackage{tikzinput,omdoc}
 \usepackage[show]{ed}
@@ -29,8 +30,11 @@
 \floatstyle{boxed}
 \newfloat{exfig}{thp}{lop}
 \floatname{exfig}{Example}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{tikzinput.dtx}\end{document}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\begin{document}
+\RecordChanges
+\DocInput{tikzinput.dtx}
+\end{document}
 %</driver>
 % \fi
 % 
@@ -47,7 +51,7 @@
 % \title{\texttt{tikzinput}: Selective Input of TIKZ Pictures\thanks{Version {\fileversion} (last revised
 %        {\filedate})}}
 %    \author{Michael Kohlhase\\
-%            Jacobs University, Bremen\\
+%            FAU Erlangen-N\"urnberg\\
 %            \url{http://kwarc.info/kohlhase}}
 % \maketitle
 %
@@ -125,8 +129,8 @@
 % 
 % Concretely, if the |image| option is not set for the |tikzinput| package, then
 % |\tikzinput[|\meta{opt}|]{|\meta{file}|}| disregards the optional argument \meta{opt}
-% and inputs \meta{file}|.tex| via |\input|. If it is,
-% |\tikzinput[|\meta{opt}|]{|\meta{file}|}| expands to
+% and inputs \meta{file}|.tex| via |\input| and resizes it to as specified in the |width|
+% and |height| keys. If it is, |\tikzinput[|\meta{opt}|]{|\meta{file}|}| expands to
 % |\includegraphics[|\meta{opt}|]{|\meta{file}|}|.
 % 
 % \begin{omgroup}{Limitations}\label{sec:limitations}
@@ -134,9 +138,10 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
-% \item none reported yet
-% \end{compactenum}
+% \begin{enumerate}
+% \item We only listen to the |width| and |height| keys in the tikz case, the others are
+%   disregarded. 
+% \end{enumerate}
 % \end{omgroup}
 % 
 % \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography}\newpage
@@ -176,12 +181,20 @@
 % \begin{omgroup}{Inputting Standalone TIKZ Pictures}
 %
 % \begin{macro}{\tikzinput}
-%   Depending on the |image| option, we do the necessary things.  
+%   Depending on the |image| option, we do the necessary things: either we default to the
+%   image, or we input the tikz file and resize it according to the |width| and |height|
+%   keys present. 
 %    \begin{macrocode}  
 \iftikzinput at image
 \newcommand\tikzinput[2][]{\includegraphics[#1]{#2}}
 \else
-\newcommand\tikzinput[2][]{\input{#2}}
+\newcommand\tikzinput[2][]{\setkeys{Gin}{#1}%
+\ifx\Gin at ewidth\Gin at exclamation
+\ifx\Gin at eheight\Gin at exclamation\input{#2}\else\resizebox{!}{\Gin at eheight}{\input{#2}}\fi 
+\else
+\ifx\Gin at eheight\Gin at exclamation\resizebox{\Gin at ewidth}{!}{\input{#2}}
+\else\resizebox{\Gin at ewidth}{\Gin at eheight}{\input{#2}}\fi
+\fi}
 \fi
 %    \end{macrocode}
 % \end{macro}
@@ -189,7 +202,7 @@
 % \begin{macro}{\*tikzinput}
 %   The variants we define in terms of |\tikzinput|.
 %    \begin{macrocode}
-\newcommand\ctikzinput[2][]{\begin{center}\tikzinput{#2}\end{center}}
+\newcommand\ctikzinput[2][]{\begin{center}\tikzinput[#1]{#2}\end{center}}
 %</package>
 %    \end{macrocode}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/stex/workaddress/workaddress.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/stex/workaddress/workaddress.dtx	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/source/latex/stex/workaddress/workaddress.dtx	2019-03-20 22:31:24 UTC (rev 50489)
@@ -10,10 +10,11 @@
 % \iffalse
 %<*package>
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{workaddress}[2016/04/07 v0.4 WorkAddress]
+\ProvidesPackage{workaddress}[2019/03/20 v0.5 WorkAddress]
 %</package>
 %<*driver>
 \documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
 \usepackage{workaddress,sref,url,array,float}
 \usepackage[show]{ed}
 \usepackage[hyperref=auto,style=alphabetic]{biblatex}
@@ -43,8 +44,11 @@
                {Safe and Secure Cognitive Systems}
 \WAinstitution[id=dfki,url=http://dfki.de,acronym=DFKI,shortname=DFKI]
                {German Research Center for Artificial Intelligence}
-\def\tracissue#1{\cite{sTeX:online}, \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}}
-\begin{document}\DocInput{workaddress.dtx}\end{document}
+\def\githubissue#1{\cite{sTeX:github:on}, \hyperlink{https://github.com/KWARC/sTeX/issues/#1}{issue #1}}
+\begin{document}
+\RecordChanges
+\DocInput{workaddress.dtx}
+\end{document}
 %</driver>
 % \fi
 %
@@ -52,6 +56,7 @@
 %
 % \changes{v0.4}{2011/11/04}{Extracting from dcm.sty}
 % \changes{v0.4}{2012/01/18}{new functionality for logos}
+% \changes{v0.5}{2016/07/06}{giving \texttt{\textbackslash wp at ref} a first argument for errors}
 % 
 % \GetFileInfo{workaddress.sty}
 % 
@@ -180,9 +185,9 @@
 % In this section we document known limitations. If you want to help alleviate them,
 % please feel free to contact the package author. Some of them are currently discussed in
 % the \sTeX GitHub repository~\cite{sTeX:github:on}. 
-% \begin{compactenum}
+% \begin{enumerate}
 % \item none reported yet
-% \end{compactenum}
+% \end{enumerate}
 % 
 % \StopEventually{\printbibliography}
 % 
@@ -236,29 +241,31 @@
 %    \end{macrocode}
 % \end{macro}
 % 
-% 
-% \begin{macro}{\wa at ref@test}
-%   This macro tests whether the information specified is defined, and gives an error
-%   message else.
-%    \begin{macrocode}
-\def\wa at ref@test#1#2#3{%
-  \@ifundefined{wa@#1@#2@#3}{%
-    \PackageError{workaddress}{reference to undefined #3 of #1 #2}%
-    {you must define a #1 with #2=#3\MessageBreak% 
-     via the macro \protect\WA#1, before you can use it!}
-  }{}%
-}%
-%    \end{macrocode}
-% \end{macro}
-%
-% With this, referencing is simple
-%
 % \begin{macro}{\wa at ref}
+%   This macro looks up the information specified in the three last arguments. The first
+%   argument determines the behavior if that information is undefined: |\wa at ref0| fails
+%   silently (no output, no message), |\waref1| raises a warning but outputs nothing, and
+%   |\wa at ref2{|\meta{a}|}{|\meta{b}|}{|\meta{c}|}| raises a warning and outputs
+%   |?|\meta{a}|?|\meta{b}|?|\meta{b}|?|, Finally |\wa at ref3| gives an error and aborts.
 %    \begin{macrocode}
-\def\wa at ref#1#2#3{%
-  \wa at ref@test{#1}{#2}{#3}%
-  \csname wa@#1@#2@#3\endcsname%
-}%
+\newcommand\wa at ref[4]{%
+  \@ifundefined{wa@#2@#3@#4}{%
+    \ifcase#1 {}\or%
+    \PackageWarning{workaddress}{reference to undefined #4 of #2 #3\MessageBreak%
+      you must define a #2 with #3=#4\MessageBreak% 
+      via the macro \protect\WA#2, before you can use it!}%
+    \or
+    \PackageWarning{workaddress}{reference to undefined #4 of #2 #3\MessageBreak%
+      you must define a #2 with #3=#4\MessageBreak% 
+      via the macro \protect\WA#2, before you can use it!}%
+      ?#2?#3?#4?
+    \or
+    \PackageError{workaddress}{reference to undefined #4 of #2 #3}%
+    {you must define a #2 with #3=#4\MessageBreak% 
+     via the macro \protect\WA#2, before you can use it!}
+    \else\PackageError{workaddress}{\protect\wa at ref#1 not defined}{}
+   \fi
+  }{\csname wa@#2@#3@#4\endcsname}}%
 %    \end{macrocode}
 % \end{macro}
 % 
@@ -272,7 +279,7 @@
 \newcommand\WAperson[2][]{%
   \metasetkeys{wa at person}{#1}%
   \ifx\wa at person@id\@empty%
-    \@latex at warning{key 'id' undefined in WAperson}%
+    \PackageWarning{workaddress}{key 'id' undefined in WAperson}%
   \else%
     \wa at def{person}\wa at person@id{id}{\wa at person@id}% redundant, but useful for checking
     \wa at def{person}\wa at person@id{name}{#2}
@@ -334,7 +341,7 @@
 \newcommand\WAinstitution[2][]{%
   \metasetkeys{wa at institution}{#1}%
   \ifx\wa at institution@id\@empty%
-    \@latex at warning{key 'id' undefined in WAinstitution}%
+    \PackageWarning{workaddress}{key 'id' undefined in WAinstitution}%
   \else%
     \wa at def{institution}\wa at institution@id{id}{\wa at institution@id}% redundant, but useful for checking
     \wa at def{institution}\wa at institution@id{name}{#2}
@@ -382,16 +389,16 @@
    \def\@depts{}%
    \def\@urls{}%
    \@for\@I:=#2\do{%
-     \xdef\@authors{\@authors&\wa at ref{person}\@I{name}}
-     \xdef\@@dept{\wa at ref{person}\@I{department}}
+     \xdef\@authors{\@authors&\wa at ref2{person}\@I{name}}
+     \xdef\@@dept{\wa at ref1{person}\@I{department}}
      \xdef\@shortname{\csname wa at institution@\@@dept @shortname\endcsname}
-     \xdef\@dept{\ifx\@shortname\@empty\wa at ref{institution}\@@dept{name}\else\@shortname\fi}
+     \xdef\@dept{\ifx\@shortname\@empty\wa at ref0{institution}\@@dept{name}\else\@shortname\fi}
      \xdef\@depts{\@depts&\@dept}
-     \xdef\@@aff{\wa at ref{person}\@I{affiliation}}
+     \xdef\@@aff{\wa at ref0{person}\@I{affiliation}}
      \xdef\@shortname{\csname wa at institution@\@@aff @shortname\endcsname}
-     \xdef\@aff{\ifx\@shortname\@empty\wa at ref{institution}\@@aff{name}\else\@shortname\fi}
+     \xdef\@aff{\ifx\@shortname\@empty\wa at ref0{institution}\@@aff{name}\else\@shortname\fi}
      \xdef\@affs{\@affs&\@aff}
-     \xdef\@urls{\@urls&\wa at ref{person}\@I{url}}
+     \xdef\@urls{\@urls&\wa at ref0{person}\@I{url}}
    }%
    \message{\theauthors authors: \@authors}%
   }%
@@ -407,13 +414,13 @@
 %
 % \begin{macro}{\wapname}
 %    \begin{macrocode}
-\newcommand\wapname[1]{\wa at ref{person}{#1}{name}}
+\newcommand\wapname[1]{\wa at ref3{person}{#1}{name}}
 %    \end{macrocode}
 % \end{macro}
 %
 % \begin{macro}{\waptname}
 %    \begin{macrocode}
-\newcommand\waptname[1]{\wa at ref{person}{#1}{personaltitle} \wa at ref{person}{#1}{name}}
+\newcommand\waptname[1]{\wa at ref3{person}{#1}{personaltitle} \wa at ref3{person}{#1}{name}}
 %    \end{macrocode}
 % \end{macro}
 % 
@@ -420,8 +427,8 @@
 % \begin{macro}{\wa at institution@logo}
 %    \begin{macrocode}
 \newcommand\wa at institution@logo[2][]{%
-  \IfFileExists{\wa at ref{institution}{#2}{logo}}{%
-    \includegraphics{\wa at ref{institution}{#2}{logo}}%
+  \IfFileExists{\wa at ref2{institution}{#2}{logo}}{%
+    \includegraphics{\wa at ref2{institution}{#2}{logo}}%
   }{%
     \fbox{#2 logo}\message{still need logo for #2}%
   }%

Modified: trunk/Master/texmf-dist/tex/latex/stex/cmath/cmath.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/cmath/cmath.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/cmath/cmath.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% cmath.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{cmath}[2016/04/06 v0.1 inline content math]
+\ProvidesPackage{cmath}[2019/03/20 v0.1 inline content math]
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{presentation}}
 \ProcessOptions
 \RequirePackage{presentation}

Modified: trunk/Master/texmf-dist/tex/latex/stex/dcm/dcm.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/dcm/dcm.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/dcm/dcm.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% dcm.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{dcm}[2016/04/06 v0.3 Dublin Core Metadata]
+\ProvidesPackage{dcm}[2019/03/20 v0.3 Dublin Core Metadata]
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{rdfmeta}
                            \PassOptionsToPackage{\CurrentOption}{workaddress}}
 \ProcessOptions
@@ -18,9 +18,9 @@
 {\@ifundefined{dcm@\@style @block}%
 {\message{style {\@style} not defined}}%
 {\csname dcm@\@style @block\endcsname}}
-\def\DCMcreators#1{\@for\@I:=#1\do{\wa at ref@test{person}\@I{id}}
+\def\DCMcreators#1{\@for\@I:=#1\do{\wa at ref1{person}\@I{id}}
 \gdef\dcm at creators{#1}}
-\def\DCMcontributors#1{\@for\@I:=#1\do{\wa at ref@test{person}\@I{id}}%
+\def\DCMcontributors#1{\@for\@I:=#1\do{\wa at ref1{person}\@I{id}}%
 \def\dcm at contributors{#1}}
 \def\DCMtitle#1{\def\dcm at title{#1}\providecommand{\dcm at shorttitle}{#1}}
 \def\dcm at subtitle{}
@@ -82,7 +82,6 @@
 \def\dcm at subsection@heading{Subsection}
 \def\dcm at subsubsection@heading{Subsubsection}
 \def\dcm at paragraph@heading{Paragraph}
-\def\omdoc{OMDoc}
 \endinput
 %%
 %% End of file `dcm.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.cls	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.cls	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% hwexam.dtx  (with options: `cls')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesClass{hwexam}[2016/04/06 v1.1 assignment and exam documents]
+\ProvidesClass{hwexam}[2019/03/20 v1.1 assignment and exam documents]
 \DeclareOption*{
   \PassOptionsToClass{\CurrentOption}{omdoc}
   \PassOptionsToPackage{\CurrentOption}{stex}

Modified: trunk/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% hwexam.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{hwexam}[2016/04/06 v1.1 homework assignments and exams]
+\ProvidesPackage{hwexam}[2019/03/20 v1.1 homework assignments and exams]
 \newif\if at hwexam@mh@\@hwexam at mh@false
 \DeclareOption{mh}{\@hwexam at mh@true}
 \newif\iftest\testfalse
@@ -20,9 +20,18 @@
 \if at hwexam@mh@\RequirePackage{hwexam-mh}\fi
 \RequirePackage{problem}
 \AfterBabelLanguage{ngerman}{\input{hwexam-ngerman.ldf}}
+\AfterBabelLanguage{arabic}{\input{hwexam-arabic.ldf}}
 \newcommand\hwexam at assignment@kw{Assignment}
 \newcommand\hwexam at given@kw{Given}
 \newcommand\hwexam at due@kw{Due}
+\newcommand\hwexam at testemptypage@kw{This page was intentionally left blank for extra
+  space}%
+\newcommand\correction at probs@kw{prob.}%
+\newcommand\correction at pts@kw{total}%
+\newcommand\correction at reached@kw{reached}%
+\newcommand\correction at sum@kw{Sum}%
+\newcommand\correction at grade@kw{grade}%
+\newcommand\correction at forgrading@kw{To be used for grading, do not write here}
 \newcounter{assignment}
 \numberproblemsin{assignment}
 \renewcommand\prob at label[1]{\arabic{assignment}.#1}
@@ -147,7 +156,7 @@
 {\noindent\large{}Name: \hfill Matriculation Number:\hspace*{2cm}\strut\\[1ex]
 \begin{center}\Large\textbf{\@title}\\[1ex]\large\@date\\[3ex]\end{center}
 {\textbf{You have
-\ifx\test at heading@duration\@empty\testheading at min minutes\else\testheading at duration\fi
+\ifx\testheading at duration\@empty\testheading at min minutes\else\testheading at duration\fi
 (sharp) for the test}};\\ Write the solutions to the sheet.}\par\noindent
 
 \newcount\check at time\check at time=\testheading at min
@@ -168,8 +177,7 @@
 {\newpage}
 \newcommand\testspace[1]{\iftest\vspace*{#1}\fi}
 \newcommand\testnewpage{\iftest\newpage\fi}
-\newcommand\testemptypage[1][]{\iftest\begin{center}This page was intentionally left
-    blank for extra space\end{center}\vfill\eject\else\fi}
+\newcommand\testemptypage[1][]{\iftest\begin{center}\hwexam at testemptypage@kw\end{center}\vfill\eject\else\fi}
 \renewcommand\@problem[3]{\stepcounter{assignment at probs}
 \def\@@pts{#2}\ifx\@@pts\@empty\else\addtocounter{assignment at totalpts}{#2}\fi
 \def\@@min{#3}\ifx\@@min\@empty\else\addtocounter{assignment at totalmin}{#3}\fi
@@ -179,17 +187,19 @@
 \newcounter{assignment at probs}
 \newcounter{assignment at totalpts}
 \newcounter{assignment at totalmin}
-\newcommand\correction at probs{prob.}%
-\newcommand\correction at pts{total}%
-\newcommand\correction at reached{reached}%
+\def\correction at probs{\correction at probs@kw}%
+\def\correction at pts{\correction at pts@kw}%
+\def\correction at reached{\correction at reached@kw}%
+\def\after at correction@table{}%
 \stepcounter{assignment at probs}
 \newcommand\correction at table{\begin{tabular}{|l|*{\theassignment at probs}{c|}|l|}\hline%
 &\multicolumn{\theassignment at probs}{c||}%|
-{\footnotesize To be used for grading, do not write here} &\\\hline
-\correction at probs & Sum & grade\\\hline
+{\footnotesize\correction at forgrading@kw} &\\\hline
+\correction at probs & \correction at sum@kw & \correction at grade@kw\\\hline
 \correction at pts &\theassignment at totalpts & \\\hline
 \correction at reached & & \\[.7cm]\hline
-\end{tabular}}
+\end{tabular}
+\ifx\after at correction@table\@empty\else\strut\par\noindent\after at correction@table\fi}
 \endinput
 %%
 %% End of file `hwexam.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/stex/metakeys/metakeys.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/metakeys/metakeys.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/metakeys/metakeys.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% metakeys.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{metakeys}[2016/04/06 v0.9 Framework for Metadata Keys]
+\ProvidesPackage{metakeys}[2019/03/20 v0.9 Framework for Metadata Keys]
 \newif\ifmetakeys at showmeta\metakeys at showmetafalse
 \DeclareOption{showmeta}{\metakeys at showmetatrue}
 \DeclareOption*{}

Modified: trunk/Master/texmf-dist/tex/latex/stex/mikoslides/beamerthemeJacobs.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/mikoslides/beamerthemeJacobs.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/mikoslides/beamerthemeJacobs.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -5,9 +5,7 @@
 \ProvidesPackage{beamerthemeJacobs}
 \typeout{Beamer KWARC theme}
 \author[Kohlhase]{Michael Kohlhase}
-\institute{\texttt{http://kwarc.info/kohlhase}\\
-  Computer Science\\
-  Jacobs University Bremen, Germany}
+\institute{Computer Science, Jacobs University Bremen, Germany\\\url{http://kwarc.info}}
 
 \mode
 <presentation>
@@ -60,7 +58,7 @@
 \setlength\leftmargini{1em}
 \setlength\leftmarginii{1em}
 \setlength\leftmarginiii{1em}
-\newcommand{\vstretch}[1]{\vspace*{\stretch{#1}}}
+\providecommand{\vstretch}[1]{\vspace*{\stretch{#1}}}
 \beamer at descriptionwidth=1cm
 
 

Deleted: trunk/Master/texmf-dist/tex/latex/stex/mikoslides/mikoaffiliation.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/mikoslides/mikoaffiliation.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/mikoslides/mikoaffiliation.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -1,54 +0,0 @@
-\RequirePackage[ngerman,USenglish]{babel}
-
-\newcommand{\mikoand}[1]% joint work with 
-{{\large\sc Michael Kohlhase}\\{\normalsize\green{joint work with #1}}\\[1ex]\mikoaffiliation}
-
-\newcommand{\miko}
-{{\large\sc Michael Kohlhase}\\[1ex]
-\JacobsAffiliation}
-
-\newcommand{\mikoJacobsDFKI}{\mikoJacobsDfki}
-\newcommand{\mikoJacobsDfki}
-{{\large\sc Michael Kohlhase}\\[1ex]
-\JacobsDfkiAffiliation}
-
-\newcommand{\JacobsAffiliation}
-{{\begin{small}
-      Computer Science\\
-      School of Engineering \&  Science \\  
-      Jacobs University Bremen, Germany \\
-  \end{small}}
-{\color{black}\normalsize\url{http://kwarc.info/kohlhase}}} 
-
-\newcommand{\mikoboth}
-{\begin{creator}
-{\large\sc Michael Kohlhase}\\[1ex]
-{\small\begin{tabular}{c@{\qquad}c}
-School of Engineering \& Science & School of Computer Science \\  
-Jacobs University Bremen & Carnegie Mellon yUniversity 
-\end{tabular}}
-{\color{black}\normalsize\url{http://kwarc.info/kohlhase}} 
-\end{creator}}
-
-\newcommand{\JacobsDfkiAffiliation}
-{\begin{small}
-\begin{tabular}{c@{\qquad}c}
-Computer Science
-&\iflanguage{german}{Sichere Kognitive Systeme}{Safe and Secure Cognitive Systems} \\  
-%School of Engineering \& Science 
-%& DFKI Bremen\\
-Jacobs University, Bremen  
-&\iflanguage{german}{Deutsches Forschungszentrum f\"ur KI}{German Research Center for AI}\\ 
-\end{tabular}
-\end{small}
-{\color{black}\normalsize\url{http://kwarc.info/kohlhase}}} 
-
-\newcommand{\mikocmu}
-{\begin{creator}
-{\large\sc Michael Kohlhase}\\[1ex]
-{\small\begin{tabular}{c}
-School of Computer Science \\
-Carnegie Mellon University \\
-\end{tabular}}\\
-{\color{black}\normalsize\url{http://kwarc.info/kohlhase}}    
-\end{center}}

Modified: trunk/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,29 +7,28 @@
 %% mikoslides.dtx  (with options: `cls')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesClass{mikoslides}[2016/04/06 v1.1 Jacobs slides Class]
-\newif\ifnotes\notesfalse
-\DeclareOption{notes}{\notestrue\PassOptionsToPackage{\CurrentOption}{mikoslides}}
-\DeclareOption{slides}{\notesfalse\PassOptionsToPackage{\CurrentOption}{mikoslides}}
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{omdoc}
-                           \PassOptionsToClass{\CurrentOption}{beamer}
-                           \PassOptionsToPackage{\CurrentOption}{mikoslides}}
-\ProcessOptions
-\ifnotes
+\ProvidesClass{mikoslides}[2019/03/20 v1.2 MiKo slides Class]
+\RequirePackage{kvoptions}
+\RequirePackage{etoolbox}
+\SetupKeyvalOptions{family=mks at cls,prefix=mks at cls@}
+\DeclareStringOption[article]{class}
+\AddToKeyvalOption*{class}{\PassOptionsToClass{class=\mks at cls@class}{omdoc}
+  \ifdefstring{\mks at cls@class}{book}{\PassOptionsToPackage{topsect=part}{mikoslides}}{}
+  \ifdefstring{\mks at cls@class}{report}{\PassOptionsToPackage{topsect=part}{mikoslides}}}{}
+\DeclareBoolOption{notes}
+\DeclareComplementaryOption{slides}{notes}
+\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{omdoc}
+  \PassOptionsToClass{\CurrentOption}{beamer}
+  \PassOptionsToPackage{\CurrentOption}{mikoslides}}
+\ProcessKeyvalOptions{mks at cls}
+\ifmks at cls@notes
   \LoadClass{omdoc}
-  \RequirePackage{a4wide}
-  \RequirePackage{marginnote}
-  \RequirePackage{mdframed}
-  \RequirePackage[notheorems,noamsthm,noxcolor]{beamerarticle}
-  \RequirePackage[bookmarks,bookmarksopen,bookmarksnumbered,breaklinks,
-      linkcolor=black,citecolor=black,urlcolor=cyan,filecolor=cyan,colorlinks]{hyperref}
 \else
-  \LoadClass[notheorems,noamsthm,10pt]{beamer}
+  \LoadClass[10pt,notheorems]{beamer}
   \newcounter{Item}
   \newcounter{paragraph}
   \newcounter{subparagraph}
   \newcounter{Hfootnote}
-  \usetheme{Jacobs}
 \fi
 \RequirePackage{mikoslides}
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,46 +7,63 @@
 %% mikoslides.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{mikoslides}[2016/04/06 v1.1 Jacobs slides Package]
-\newif\if at mikoslides@mh@\@mikoslides at mh@false
-\DeclareOption{mh}{\@mikoslides at mh@true
-  \PassOptionsToPackage{\CurrentOption}{stex}
-  \PassOptionsToPackage{\CurrentOption}{smglom}
-  \PassOptionsToPackage{\CurrentOption}{tikzinput}}
-\newif\ifnotes\notesfalse
-\DeclareOption{notes}{\notestrue}
-\DeclareOption{slides}{\notesfalse}
-\newif\ifsectocframes\sectocframesfalse
-\DeclareOption{sectocframes}{\sectocframestrue}
-\newif\ifframeimages\frameimagesfalse
-\DeclareOption{frameimages}{\frameimagestrue}
-\newif\if at part\@partfalse
-\DeclareOption{report}{\@parttrue\PassOptionsToPackage{\CurrentOption}{omdoc}}
-\DeclareOption{book}{\@parttrue\PassOptionsToPackage{\CurrentOption}{omdoc}}
-\newif\ifproblems\problemstrue
-\DeclareOption{noproblems}{\problemsfalse}
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{stex}
+\ProvidesPackage{mikoslides}[2019/03/20 v1.2 MiKo slides Package]
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=mks at sty,prefix=mks at sty@}
+\DeclareStringOption[section]{topsect}
+\DeclareBoolOption{mh}
+\AddToKeyvalOption*{mh}{
+  \PassOptionsToPackage{mh}{stex}
+  \PassOptionsToPackage{mh}{smglom}
+  \PassOptionsToPackage{mh}{tikzinput}}
+\newif\ifnotes\notestrue
+\DeclareBoolOption{notes}
+\AddToKeyvalOption*{notes}{\notestrue\PassOptionsToPackage{notes}{statements}}
+\DeclareComplementaryOption{slides}{notes}
+\AddToKeyvalOption*{slides}{\notesfalse\PassOptionsToPackage{nontheorem}{statements}}
+\DeclareBoolOption{sectocframes}
+\AddToKeyvalOption*{sectocframes}{\PassOptionsToPackage{msection}{statements}}
+\DeclareBoolOption{frameimages}
+\DeclareBoolOption{noproblems}
+\DeclareDefaultOption{\PassOptionsToPackage{\CurrentOption}{stex}
                            \PassOptionsToPackage{\CurrentOption}{smglom}
                            \PassOptionsToPackage{\CurrentOption}{tikzinput}}
-\ProcessOptions
-\if at mikoslides@mh@\RequirePackage{mikoslides-mh}\fi
-\RequirePackage{stex}
-\RequirePackage{smglom}
-\RequirePackage{tikzinput}
+\ProcessKeyvalOptions{mks at sty}
+\ifmks at sty@notes
+\RequirePackage{a4wide}
+\RequirePackage{marginnote}
+\RequirePackage{xcolor}
+\RequirePackage{mdframed}
+\RequirePackage[noxcolor,noamsthm]{beamerarticle}
+\fi
+\ifmks at sty@mh\RequirePackage{mikoslides-mh}\fi
+\RequirePackage{etoolbox}
 \RequirePackage{amssymb}
 \RequirePackage{amsmath}
 \RequirePackage{comment}
 \RequirePackage{textcomp}
 \RequirePackage{url}
+\RequirePackage{graphicx}
+\RequirePackage{stex-logo}
+\RequirePackage{pgf}
+\ifmks at sty@notes
+\RequirePackage[bookmarks,bookmarksopen,bookmarksnumbered,breaklinks,
+linkcolor=black,citecolor=black,urlcolor=cyan,filecolor=cyan,colorlinks]{hyperref}
+\fi
+\RequirePackage{metakeys}
+\ifmks at sty@notes
+\renewcommand\usetheme[2][]{\usepackage[#1]{beamernotestheme#2}}
+\fi
 \newcounter{slide}
 \newlength{\slidewidth}\setlength{\slidewidth}{12.8cm}
 \newlength{\slideheight}\setlength{\slideheight}{9cm}
-\ifnotes%
+\ifmks at sty@notes%
   \renewenvironment{note}{\ignorespaces}{}%
 \else%
   \excludecomment{note}%
 \fi%
-\ifnotes
+\newcommand\ninputref[2][]{\ifmks at sty@notes\inputref[#1]{#2}\fi}
+\ifmks at sty@notes
   \newlength{\slideframewidth}
   \setlength{\slideframewidth}{1.5pt}
   \addmetakey{frame}{label}
@@ -55,6 +72,7 @@
   \addmetakey[yes]{frame}{fragile}
   \addmetakey[yes]{frame}{shrink}
   \addmetakey[yes]{frame}{squeeze}
+  \addmetakey[yes]{frame}{t}
   \renewenvironment{frame}[1][]{%
     \metasetkeys{frame}{#1}%
     \stepcounter{slide}%
@@ -93,30 +111,29 @@
 \fi %ifnotes
 \newrobustcmd\frameimage[2][]{%
   \stepcounter{slide}%
-  \ifframeimages%
+  \ifmks at sty@frameimages%
     \def\Gin at ewidth{}\setkeys{Gin}{#1}%
-    \ifnotes%
-    \else%
-      \vfill%
-    \fi%
+    \ifmks at sty@notes\else\vfill\fi%
     \ifx\Gin at ewidth\@empty%
       \mycgraphics[width=\slidewidth,#1]{#2}\else\mycgraphics[#1]{#2}%
     \fi%
     \par\strut\hfill{\footnotesize Slide \arabic{slide}}%
-    \ifnotes%
-    \else%
-      \vfill%
-    \fi%
+    \ifmks at sty@notes\else\vfill\fi%
   \fi%
 }% ifframeimages
+\ifmks at sty@notes\newcommand\pause{}\fi
+\ifmks at sty@notes\newenvironment{nomtext}[1][]{\begin{omtext}[#1]}{\end{omtext}}%
+\else\excludecomment{nomtext}\fi%
+\ifmks at sty@notes\newenvironment{nomgroup}[2][]{\begin{omgroup}[#1]{#2}}{\end{omgroup}}%
+\else\excludecomment{nomgroup}\fi%
 \newlength{\slidelogoheight}
-\ifnotes%
+\ifmks at sty@notes%
   \setlength{\slidelogoheight}{.4cm}%
 \else%
   \setlength{\slidelogoheight}{1cm}%
 \fi%
 \newsavebox{\slidelogo}%
-\sbox{\slidelogo}{\includegraphics[height=\slidelogoheight]{jacobs-logo}}%
+\sbox{\slidelogo}{\sTeX}%
 \newrobustcmd{\setslidelogo}[1]{%
   \sbox{\slidelogo}{\includegraphics[height=\slidelogoheight]{#1}}%
 }%
@@ -143,11 +160,11 @@
     \def\licensing{{\usebox{\cclogo}}}%
   \else%
     \def\licensing{%
-  \ifcchref%
-    \href{#1}{\usebox{\cclogo}}%
-  \else%
-    {\usebox{\cclogo}}%
-  \fi%
+      \ifcchref%
+      \href{#1}{\usebox{\cclogo}}%
+      \else%
+      {\usebox{\cclogo}}%
+      \fi%
     }%
   \fi%
 }%
@@ -157,20 +174,21 @@
     {\licensing\hfill\copyrightnotice\hfill\arabic{slide}\hfill\usebox{\slidelogo}}%
   }%
 }%
+\sffamily
 \AtBeginDocument{%
-  \definecolor{green}{rgb}{0,.5,0}%
-  \definecolor{purple}{cmyk}{.3,1,0,.17}%
+\definecolor{green}{rgb}{0,.5,0}%
+\definecolor{purple}{cmyk}{.3,1,0,.17}%
 }%
 \def\defemph#1{{\textcolor{magenta}{#1}}}
 \def\notemph#1{{\textcolor{magenta}{#1}}}
 \def\stDMemph#1{{\textcolor{blue}{#1}}}
 \def\@@lec#1{(\textcolor{green}{#1})}
-\pgfdeclareimage[width=.9em]{miko at small@dbend}{dangerous-bend}
+\pgfdeclareimage[width=.8em]{miko at small@dbend}{dangerous-bend}
 \def\smalltextwarning{%
   \pgfuseimage{miko at small@dbend}%
   \xspace%
 }%
-\pgfdeclareimage[width=1.5em]{miko at dbend}{dangerous-bend}
+\pgfdeclareimage[width=1.2em]{miko at dbend}{dangerous-bend}
 \newrobustcmd\textwarning{%
   \raisebox{-.05cm}{\pgfuseimage{miko at dbend}}%
   \xspace%
@@ -186,45 +204,76 @@
 \newrobustcmd\putat[2]{%
   \begin{picture}(0,0)\put(#1){#2}\end{picture}%
 }%
-\ifsectocframes%
-  \if at part%
-    \newcounter{mpart}%
-    \newcounter{mchapter}%
-    \newcounter{msection}[mchapter]%
-  \else%
-    \newcounter{msection}%
-  \fi%
-  \newcounter{msubsection}[msection]%
-  \newcounter{msubsubsection}[msubsection]%
-  \newcounter{msubsubsubsection}[msubsubsection]%
+\ifmks at sty@sectocframes%
+\ifdefstring\mks at sty@topsect{part}{%
+  \newcounter{mpart}\newcounter{mchapter}\newcounter{msection}[mchapter]}
+{\ifdefstring\mks at sty@topsect{chapter}{%
+    \newcounter{mchapter}\newcounter{msection}[mchapter]}
+  {\newcounter{msection}}}
+\newcounter{msubsection}[msection]%
+\newcounter{msubsubsection}[msubsection]%
+\newcounter{msubsubsubsection}[msubsubsection]%
 \fi% ifsectocframes
-\ifnotes\else% only in slides
-  \renewenvironment{omgroup}[2][]{%
-    \metasetkeys{omgroup}{#1}\sref at target%
-    \advance\section at level by 1%
-    \ifsectocframes%
-    \begin{frame}%
-    \vfill\Large\centering%
-    \red{%
-     \ifcase\section at level\or%
-        \stepcounter{mpart}Part \Roman{mpart}\or%
-        \stepcounter{mchapter}Chapter \arabic{mchapter}\or
-        \stepcounter{msection}\if at part\arabic{mchapter}.\fi\arabic{msection}\or
-        \stepcounter{msubsection}\if at part\arabic{mchapter}.\fi\arabic{msection}.\arabic{msubsection}\or
-        \stepcounter{msubsubsection}\if at part\arabic{mchapter}.\fi\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}.\or
-        \stepcounter{msubsubsubsection}\if at part\arabic{mchapter}.\fi\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}.\arabic{msubsubsubsection}%
-      \fi% end ifcase
-      \quad #2%
-    }%
-    \vfill%
-    \end{frame}%
-    \fi %ifsectocframes
-  }
-  {\advance\section at level by -1}%
-\fi% ifnotes
+\RequirePackage{stex}
+\RequirePackage{smglom}
+\RequirePackage{tikzinput}
+\section at level=2
+\ifdefstring{\mks at sty@topsect}{part}{\section at level=0}{}
+\ifdefstring{\mks at sty@topsect}{chapter}{\section at level=1}{}
+\ifmks at sty@notes\else% only in slides
+\def\part at prefix{\ifdefstring\mks at sty@topsect{part}{\arabic{mchapter}.}{}}
+\renewenvironment{omgroup}[2][]{%
+  \metasetkeys{omgroup}{#1}\sref at target%
+  \advance\section at level by 1%
+  \ifmks at sty@sectocframes%
+  \stepcounter{slide}
+  \begin{frame}[noframenumbering]%
+  \vfill\Large\centering%
+  \red{%
+    \ifcase\section at level\or
+    \stepcounter{mpart}
+    \def\@@label{Part \Roman{mpart}}
+    \def\currentsectionlevel{part}
+    \or%
+    \stepcounter{mchapter}
+    \def\@@label{Chapter \arabic{mchapter}}
+    \def\currentsectionlevel{chapter}
+    \or
+    \stepcounter{msection}
+    \def\@@label{\part at prefix\arabic{msection}}
+    \def\currentsectionlevel{section}
+    \or
+    \stepcounter{msubsection}
+    \def\@@label{\part at prefix\arabic{msection}.\arabic{msubsection}}
+    \def\currentsectionlevel{subsection}
+    \or
+    \stepcounter{msubsubsection}
+    \def\@@label{\part at prefix\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}}
+    \def\currentsectionlevel{subsubsection}
+    \or
+    \stepcounter{msubsubsubsection}
+    \def\@@label{\part at prefix\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}.\arabic{msubsubsubsection}}
+    \def\currentsectionlevel{subsubsubsection}
+    \fi% end ifcase
+    \@@label\sref at label@id\@@label
+    \quad #2%
+  }%
+  \vfill%
+  \end{frame}%
+  \fi %ifmks at sty@sectocframes
+}
+{\advance\section at level by -1}%
+\fi% ifmks at sty@notes
+\def\inserttheorembodyfont{\normalfont}
+\defbeamertemplate{theorem begin}{miko}
+{\inserttheoremheadfont\inserttheoremname\inserttheoremnumber
+  \ifx\inserttheoremaddition\@empty\else\ (\inserttheoremaddition)\fi%
+  \inserttheorempunctuation\inserttheorembodyfont\xspace}
+\defbeamertemplate{theorem end}{miko}{}
+\setbeamertemplate{theorems}[miko]
 \expandafter\def\csname Parent2\endcsname{}
-\ifnotes%
-  \renewenvironment{columns}{%
+\ifmks at sty@notes%
+  \renewenvironment{columns}[1][]{%
     \par\noindent%
     \begin{minipage}%
     \slidewidth\centering\leavevmode%
@@ -232,13 +281,13 @@
     \end{minipage}\par\noindent%
   }%
   \newsavebox\columnbox%
-  \renewenvironment{column}[1]{%
-    \begin{lrbox}{\columnbox}\begin{minipage}{#1}%
+  \renewenvironment<>{column}[2][]{%
+    \begin{lrbox}{\columnbox}\begin{minipage}{#2}%
   }{%
     \end{minipage}\end{lrbox}\usebox\columnbox%
   }%
-\fi%
-\ifproblems%
+\fi% ifnotes
+\ifmks at sty@noproblems%
   \newenvironment{problems}{}{}%
 \else%
   \excludecomment{problems}%

Modified: trunk/Master/texmf-dist/tex/latex/stex/modules/modules.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/modules/modules.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/modules/modules.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% modules.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{modules}[2016/04/06 v1.4 Semantic Markup]
+\ProvidesPackage{modules}[2019/03/20 v1.4 Semantic Markup]
 \newif\if at modules@mh@\@modules at mh@false
 \DeclareOption{mh}{\@modules at mh@true}
 \newif\ifmod at show\mod at showfalse
@@ -16,6 +16,8 @@
 \DeclareOption{noauxreq}{\aux at reqfalse}
 \newif\ifmod at qualified\mod at qualifiedfalse
 \DeclareOption{qualifiedimports}{\mod at qualifiedtrue}
+\newif\if at trwarn\@trwarnfalse
+\DeclareOption{trwarn}{\@trwarntrue}
 \newif\if at mmt\@mmtfalse
 \DeclareOption{mmt}{\@mmttrue}
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}}
@@ -32,6 +34,8 @@
 \addmetakey*{module}{creators}
 \addmetakey*{module}{contributors}
 \addmetakey*{module}{srccite}
+\addmetakey*{module}{align}[WithTheModuleOfTheSameName]
+\addmetakey*{module}{noalign}[true]
 \define at key{module}{id}{%
   \edef\this at module{%
     \expandafter\noexpand\csname module at defs@#1\endcsname%
@@ -45,7 +49,7 @@
   \fi%
   \def\mod at id{#1}%
 }%
-\newcounter{module}[section]%
+\ifdef{\thesection}{\newcounter{module}[section]}{\newcounter{module}}%
 \newrobustcmd\module at heading{%
   \stepcounter{module}%
   \ifmod at show%
@@ -73,12 +77,9 @@
   \ifcsundef{module@#1 at activated}{\csname module at defs@#1\endcsname}{}%
   \@namedef{module@#1 at activated}{true}%
 }%
-\def\export at defs#1{%
-\@ifundefined{mod at id}{}{%
+\def\export at defs#1{\@ifundefined{mod at id}{}{%
 \expandafter\expandafter\expandafter\g at addto@macro%
-                \expandafter\this at module\expandafter{\activate at defs{#1}}%
-}%
-}%
+\expandafter\this at module\expandafter{\activate at defs{#1}}}}%
 \newif\if at importing\@importingfalse
 \newcommand\update at used@modules[1]{%
   \ifx\used at modules\@empty%
@@ -111,11 +112,11 @@
         \relax% do nothing, it has already been loaded, else signal an error
   }{%
         \PackageError{modules}
-        {{Module Name Clash\MessageBreak
+        {Module Name Clash\MessageBreak
         A module with name #2 was already loaded under the path "\@path"\MessageBreak
         The imported path "\@load" is probably a different module with the\MessageBreak
         same name; this is dangerous -- not importing}%
-        {Check whether the Module name is correct}}%
+        {Check whether the Module name is correct}%
       }%
     }%
   \fi}%
@@ -147,6 +148,10 @@
 \newif\if at symdeflocal%
 \srefaddidkey{symdef}%
 \define at key{symdef}{local}[true]{\@symdeflocaltrue}%
+\define at key{symdef}{noverb}[all]{}%
+\define at key{symdef}{align}[WithTheSymbolOfTheSameName]{}%
+\define at key{symdef}{specializes}{}%
+\addmetakey*{symdef}{noalign}[true]
 \define at key{symdef}{primary}[true]{}%
 \define at key{symdef}{assocarg}{}%
 \define at key{symdef}{bvars}{}%
@@ -156,12 +161,8 @@
 \addmetakey*{symdef}{description}%
 \addmetakey{symdef}{subject}%
 \addmetakey*{symdef}{display}%
-\def\symdef{%
-  \@ifnextchar[{\@symdef}{\@symdef[]}%
-}%
-\def\@symdef[#1]#2{%
-  \@ifnextchar[{\@@symdef[#1]{#2}}{\@@symdef[#1]{#2}[0]}%
-}%
+\def\symdef{\@ifnextchar[{\@symdef}{\@symdef[]}}%
+\def\@symdef[#1]#2{\@ifnextchar[{\@@symdef[#1]{#2}}{\@@symdef[#1]{#2}[0]}}%
 \def\@mod at nc#1{\mod at newcommand{#1}[1]}%
 \def\ignorespacesandpars{%
   \begingroup
@@ -295,19 +296,25 @@
 }%
 \def\@capitalize#1{\uppercase{#1}}%
 \newrobustcmd\capitalize[1]{\expandafter\@capitalize #1}%
-\def\mod at termref#1#2#3{%
-  \def\@test{#3}%
+\newcommand\mod at component[1]{}
+\newcommand\mod at termref[3]{\def\@test{#3}%
   \@ifundefined{module at defs@#1}{%
     \protect\G at refundefinedtrue%
-    \@latex at warning{\protect\termref with unidentified cd "#1": the cd key must reference an active module}%
-    \def\@label{sref@#2 at target}%
-  }%
-  {\def\@label{sref@#2@#1 at target}}%
-  \@ifundefined{module@#1 at path}% local reference
-    {\sref at hlink@ifh{\@label}{\ifx\@test\@empty #2\else #3\fi}}%
-    {\def\@uri{\csname module@#1 at path\endcsname.pdf\#\@label}%
-    \sref at href@ifh{\@uri}{\ifx\@test\@empty #2\else #3\fi}}%
+    \if at trwarn
+      \PackageWarning{modules}{`\protect\termref' with unidentified cd "#1":\MessageBreak
+        the cd key must reference an active module}%
+    \else
+      \PackageError{modules}{`\protect\termref' with unidentified cd "#1"}
+      {the cd key must reference an active module}%
+    \fi}%
+  {\def\@label{sref@#2@#1\mod at component{#1}@target}%
+    \@ifundefined{module@#1 at path}% local reference
+    {\sref at hlink@ifh{\@label}{\ifx\@test\@empty #2\else #3\fi}%
+    }%
+    {\def\@uri{\csname module@#1 at path\endcsname\mod at component{#1}.pdf\#\@label}%
+      \sref at href@ifh{\@uri}{\ifx\@test\@empty #2\else #3\fi}%
 }%
+  }}%
 \def\CurrentDir{}%
 \newrobustcmd{\@rinput}[2]{%
   \@cpath{\CurrentDir#1}%
@@ -342,7 +349,7 @@
 \def\requirepackage#1#2{\makeatletter\input{#1.sty}\makeatother}%
 \newrobustcmd\sinput[1]{%
   \PackageError{modules}%
-  {The \protect\sinput macro is deprecated}{use the \protect\input instead!}%
+  {The `\protect\sinput' macro is deprecated}{use the \protect\input instead!}%
 }%
 \newrobustcmd\sinputref[1]{%
   \PackageError{modules}%

Modified: trunk/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,44 +7,48 @@
 %% omdoc.dtx  (with options: `cls')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesClass{omdoc}[2016/04/07 v1.2 OMDoc Documents]
-\def\omdoc at class{article}
-\DeclareOption{report}{\def\omdoc at class{report}%
-  \PassOptionsToPackage{\CurrentOption}{omdoc}
-  \PassOptionsToPackage{\CurrentOption}{stex}}
-\newif\ifclass at book\class at bookfalse
-\DeclareOption{book}{\def\omdoc at class{book}\class at booktrue%
-  \PassOptionsToPackage{\CurrentOption}{omdoc}
-  \PassOptionsToPackage{\CurrentOption}{stex}}
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\omdoc at class}
-                           \PassOptionsToPackage{\CurrentOption}{omdoc}
-                           \PassOptionsToPackage{\CurrentOption}{stex}}
-\ProcessOptions
-\LoadClass{\omdoc at class}
+\ProvidesClass{omdoc}[2019/03/20 v1.3 OMDoc Documents]
 \RequirePackage{etoolbox}
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=omdoc at cls,prefix=omdoc at cls@}
+\DeclareStringOption[article]{class}
+\AddToKeyvalOption*{class}{\PassOptionsToPackage{class=\omdoc at cls@class}{omdoc}}
+\DeclareVoidOption{report}{\def\omdoc at cls@class{report}%
+\ClassWarning{omdoc}{the option 'report' is deprecated, use 'class=report', instead}}
+\DeclareVoidOption{book}{\def\omdoc at cls@class{book}%
+\ClassWarning{omdoc}{the option 'part' is deprecated, use 'class=book', instead}}
+\DeclareVoidOption{bookpart}{\def\omdoc at cls@class{book}%
+\PassOptionsToPackage{topsect=chapter}{omdoc}%
+\ClassWarning{omdoc}{the option 'bookpart' is deprecated, use 'class=book,topsect=chapter', instead}}
+\def\@omdoc at cls@docopt{}
+\DeclareDefaultOption{%
+\ifx\@omdoc at cls@docopt\@empty%
+\xdef\@omdoc at cls@docopt{\CurrentOption}%
+\else\xappto\@omdoc at cls@docopt{,\CurrentOption}%
+\fi}%
+\PassOptionsToPackage{\CurrentOption}{omdoc}
+\PassOptionsToPackage{\CurrentOption}{stex}
+\ProcessKeyvalOptions{omdoc at cls}
+\LoadClass[\@omdoc at cls@docopt]{\omdoc at cls@class}
 \RequirePackage{omdoc}
 \RequirePackage{stex}
 \srefaddidkey{document}
 \newcommand\documentkeys[1]{\metasetkeys{document}{#1}}
 \let\orig at document=\document
-\srefaddidkey{document}
 \renewcommand{\document}[1][]{\metasetkeys{document}{#1}\orig at document}
-\ifclass at book
-\renewenvironment{frontmatter}
-{\@frontmattertrue\cleardoublepage\@mainmatterfalse\pagenumbering{roman}}
-{\@frontmatterfalse\setcounter{page}{1}\pagenumbering{arabic}}
-\else
+\ifcsdef{frontmatter}% to redefine if necessary
+  {\cslet{orig at frontmatter}{\frontmatter}\cslet{frontmatter}{\relax}}
+  {\cslet{orig at frontmatter}{\clearpage\@mainmatterfalse\pagenumbering{roman}}}
+\ifcsdef{backmatter}% to redefine if necessary
+  {\cslet{orig at backmatter}{\backmatter}\cslet{backmatter}{\relax}}
+  {\cslet{orig at backmatter}{\clearpage\@mainmatterfalse\pagenumbering{roman}}}
 \newenvironment{frontmatter}
-{\@frontmattertrue\pagenumbering{roman}}
-{\@frontmatterfalse\setcounter{page}{1}\pagenumbering{arabic}}
-\fi
-\ifclass at book
-\renewenvironment{backmatter}
-{\cleardoublepage\@mainmatterfalse\@backmattertrue}
-{\@backmatterfalse}
-\else
-\newenvironment{backmatter}{\@backmattertrue}{\@backmatterfalse}
-\fi
+{\orig at frontmatter}
+{\ifcsdef{mainmatter}{}{\clearpage\@mainmattertrue\pagenumbering{arabic}}}
+\newenvironment{backmatter}
+{\orig at backmatter}
+{\ifcsdef{mainmatter}{}{\clearpage\@mainmattertrue\pagenumbering{arabic}}}
+\pagenumbering{arabic}
 \endinput
 %%
 %% End of file `omdoc.cls'.

Modified: trunk/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,18 +7,26 @@
 %% omdoc.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{omdoc}[2016/04/07 v1.2 OMDoc document Structure]
-\newif\ifshow at ignores\show at ignoresfalse
-\DeclareOption{showignores}{\show at ignorestrue}
-\newcount\section at level\section at level=2
-\DeclareOption{report}{\section at level=0}
-\DeclareOption{book}{\section at level=0}
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}}
-\ProcessOptions
+\ProvidesPackage{omdoc}[2019/03/20 v1.3 OMDoc document Structure]
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=omdoc at sty,prefix=omdoc at sty@}
+\DeclareBoolOption{mh}
+\DeclareStringOption[article]{class}
+\DeclareBoolOption{showignores}
+\DeclareStringOption[section]{topsect}
+\newcount\section at level
+\DeclareDefaultOption{\PassOptionsToPackage{\CurrentOption}{sref}}
+\ProcessKeyvalOptions{omdoc at sty}
+\ifomdoc at sty@mh\RequirePackage{omdoc-mh}\fi
 \RequirePackage{sref}
 \RequirePackage{xspace}
 \RequirePackage{comment}
 \RequirePackage{pathsuris}
+\section at level=2
+\ifdefstring{\omdoc at sty@class}{book}{\section at level=0}{}
+\ifdefstring{\omdoc at sty@class}{report}{\section at level=0}{}
+\ifdefstring{\omdoc at sty@topsect}{part}{\section at level=0}{}
+\ifdefstring{\omdoc at sty@topsect}{chapter}{\section at level=1}{}
 \def\current at section@level{document}%
 \newcommand\currentsectionlevel{\lowercase\expandafter{\current at section@level}\xspace}%
 \newcommand\Currentsectionlevel{\expandafter\MakeUppercase\current at section@level\xspace}%
@@ -30,11 +38,15 @@
 \ifx\hyper at anchor\@undefined\else\phantomsection\fi%
 \addcontentsline{toc}{#1}{#2}\@nameuse{#1}*{#2}}
 \newcommand\omgroup at num[2]{%
-\sref at label@id{\omdoc at sect@name~\@nameuse{the#1}}%
-\ifx\omgroup at short\@empty\@nameuse{#1}{#2}%
-\else\@ifundefined{rdfmeta at sectioning}{\@nameuse{#1}[\omgroup at short]{#2}}%
-{\@nameuse{rdfmeta@#1 at old}[\omgroup at short]{#2}}%
-\fi}
+\edef\@@ID{\sref at id}
+\ifx\omgroup at short\@empty% no short title
+\@nameuse{#1}{#2}%
+\else% we have a short title
+\@ifundefined{rdfmeta at sectioning}%
+  {\@nameuse{#1}[\omgroup at short]{#2}}%
+  {\@nameuse{rdfmeta@#1 at old}[\omgroup at short]{#2}}%
+\fi%
+\sref at label@id at arg{\omdoc at sect@name~\@nameuse{the#1}}\@@ID}
 \def\@true{true}
 \def\@false{false}
 \srefaddidkey{omgroup}
@@ -47,8 +59,7 @@
 \addmetakey*{omgroup}{display}
 \addmetakey[false]{omgroup}{loadmodules}[true]
 \newif\if@@num\@@numtrue
-\newif\if at frontmatter\@frontmatterfalse
-\newif\if at backmatter\@backmatterfalse
+\newif\if at mainmatter\@mainmattertrue
 \newcommand\at at begin@omgroup[3][]{}
 \addmetakey{omdoc at sect}{name}
 \addmetakey[false]{omdoc at sect}{clear}[true]
@@ -59,24 +70,29 @@
 \if@@num% numbering not overridden by frontmatter, etc.
 \ifx\omdoc at sect@num\@true\omgroup at num{#2}{#3}\else\omgroup at nonum{#2}{#3}\fi%
 \def\current at section@level{\omdoc at sect@name}%
-\else\omgroup at nonum{#2}{#3}\fi}
-\newcommand\omgroup at redefine@addtocontents[1]{\edef\@@import{#1}%
-\@for\@I:=\@@import\do{\edef\@path{\csname module@\@I  @path\endcsname}%
-\@ifundefined{tf at toc}\relax{\protected at write\tf at toc{}{\string\@requiremodules{\@path}{sms}}}}
+\else\omgroup at nonum{#2}{#3}%
+\fi}% if@@num
+\newcommand\omgroup at redefine@addtocontents[1]{%
+\edef\@@import{#1}%
+\@for\@I:=\@@import\do{%
+\edef\@path{\csname module@\@I  @path\endcsname}%
+\@ifundefined{tf at toc}\relax%
+     {\protected at write\tf at toc{}{\string\@requiremodules{\@path}{sms}}}}
 \ifx\hyper at anchor\@undefined% hyperref.sty loaded?
 \def\addcontentsline##1##2##3{%
 \addtocontents{##1}{\protect\contentsline{##2}{\string\withusedmodules{#1}{##3}}{\thepage}}}
-\else\def\addcontentsline##1##2##3{%
+\else% hyperref.sty not loaded
+\def\addcontentsline##1##2##3{%
 \addtocontents{##1}{\protect\contentsline{##2}{\string\withusedmodules{#1}{##3}}{\thepage}{\@currentHref}}}%
 \fi}% hypreref.sty loaded?
 \newenvironment{omgroup}[2][]% keys, title
 {\metasetkeys{omgroup}{#1}\sref at target%
 \ifx\omgroup at display\st at flow\@@numfalse\fi
-\if at frontmatter\@@numfalse\fi
+\if at mainmatter\else\@@numfalse\fi
 \ifx\omgroup at loadmodules\@true%
 \omgroup at redefine@addtocontents{\@ifundefined{mod at id}\used at modules%
 {\@ifundefined{module@\mod at id @path}{\used at modules}\mod at id}}\fi%
-\advance\section at level by 1
+\advance\section at level by 1\relax%
 \ifcase\section at level%
 \or\omdoc at sectioning[name=Part,clear,num]{part}{#2}%
 \or\omdoc at sectioning[name=Chapter,clear,num]{chapter}{#2}%
@@ -89,7 +105,7 @@
 \at at begin@omgroup[#1]\section at level{#2}}% for customization
 {\advance\section at level by -1}
 \providecommand\printindex{\IfFileExists{\jobname.ind}{\input{\jobname.ind}}{}}
-\ifshow at ignores
+\ifomdoc at sty@showignores
 \addmetakey{ignore}{type}
 \addmetakey{ignore}{comment}
 \newenvironment{ignore}[1][]
@@ -99,7 +115,6 @@
 \providecommand{\lxDocumentID}[1]{}%
 \def\LXMID#1#2{\expandafter\gdef\csname xmarg#1\endcsname{#2}\csname xmarg#1\endcsname}
 \def\LXMRef#1{\csname xmarg#1\endcsname}
-
 \long\def\STRlabel#1#2{\STRlabeldef{#1}{#2}{#2}}
 \newcommand\STRcopy[2][]{\expandafter\ifx\csname STR@#2\endcsname\relax
 \message{STR warning: reference #2 undefined!}
@@ -106,6 +121,9 @@
 \else\csname STR@#2\endcsname\fi}
 \newcommand\STRsemantics[3][]{#2\def\@test{#1}\ifx\@test\@empty\STRlabeldef{#1}{#2}\fi}
 \def\STRlabeldef#1{\expandafter\gdef\csname STR@#1\endcsname}
+\newcommand\setSGvar[1]{\@namedef{sTeX at Gvar@#1}}
+\newcommand\useSGvar[1]{\@nameuse{sTeX at Gvar@#1}}
+\newcommand\ifSGvar[3]{\def\@test{#2}\expandafter\ifx\csname sTeX at Gvar@#1\endcsname\@test #3\fi}
 \def\black#1{\textcolor{black}{#1}}
 \def\gray#1{\textcolor{gray}{#1}}
 \def\blue#1{\textcolor{blue}{#1}}

Modified: trunk/Master/texmf-dist/tex/latex/stex/omtext/omtext.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/omtext/omtext.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/omtext/omtext.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% omtext.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{omtext}[2016/04/06 v1.1 OMDoc Text Fragments]
+\ProvidesPackage{omtext}[2019/03/20 v1.1 OMDoc Text Fragments]
 \newif\if at omtext@mh@\@omtext at mh@false
 \DeclareOption{mh}{\@omtext at mh@true
 \PassOptionsToPackage{\CurrentOption}{modules}}
@@ -71,19 +71,21 @@
 \def\@@sinlinequote#1#2{\@sinlinequote{#2}~#1}
 \newcommand\sinlinequote[2][]
 {\def\@opt{#1}\ifx\@opt\@empty\@sinlinequote{#2}\else\@@sinlinequote\@opt{#2}\fi}
-\newcommand\vdec[1]{#1}
-\newcommand\vids[2][]{#2}
+\newcommand\vdec[2][]{#2}
 \newcommand\vrest[2][]{#2}
+\newcommand\vcond[2][]{#2}
+\newcommand\strucdec[2][]{#2}
+\newcommand\impdec[2][]{#2}
 \def\begin at sblockquote{\begin{quote}\sl}
 \def\end at sblockquote{\end{quote}}
 \def\begin@@sblockquote#1{\begin at sblockquote}
-\def\end@@sblockquote#1{\def\@@lec##1{{\rm ##1}}\@lec{#1}\end at sblockquote}
+\def\end@@sblockquote#1{\def\@@lec##1{\textrm{##1}}\@lec{#1}\end at sblockquote}
 \newenvironment{sblockquote}[1][]
   {\def\@opt{#1}\ifx\@opt\@empty\begin at sblockquote\else\begin@@sblockquote\@opt\fi}
   {\ifx\@opt\@empty\end at sblockquote\else\end@@sblockquote\@opt\fi}
 \newenvironment{sboxquote}[1][]
 {\def\@@src{#1}\begin{mdframed}[leftmargin=.5cm,rightmargin=.5cm]}
-{\@lec{\rm\@@src}\end{mdframed}}
+{\@lec{\textrm\@@src}\end{mdframed}}
 \providecommand{\@@lec}[1]{(#1)}
 \def\@lec#1{\strut\hfil\strut\null\nobreak\hfill\@@lec{#1}}
 \def\lec#1{\@lec{#1}\par}
@@ -123,24 +125,69 @@
 \string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#2}!%
 \string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#3}!%
 \string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#4}%
-\else #2!#3\fi% loadmodules
+\else #2!#3!#4\fi% loadmodules
 }{\thepage}}%
 \endgroup\@esphack\fi}%ifindex
-\newcommand\indexalt[3][]{{#2}\omdoc at indexi[#1]{#3}}               % word in text and index
-\newcommand\indextoo[2][]{{#2}\omdoc at indexi[#1]{#2}}               % word in text and index
-\newcommand\@twin[3][]{\omdoc at indexii[#1]{#2}{#3}\omdoc at indexii[#1]{#3}{#2}}
-\newcommand\twinalt[4][]{#2\@twin[#1]{#3}{#4}}
-\newcommand\twintoo[3][]{{#2 #3}\@twin[#1]{#2}{#3}} % and use the word compound too
-\newcommand\@atwin[4][]{\omdoc at indexiii[#1]{#2}{#3}{#4}\omdoc at indexii[#1]{#3}{#2 (#4)}}
-\newcommand\atwinalt[5][]{#2\@atwin[#1]{#3}{#4}{#4}}
-\newcommand\atwintoo[4][]{{#2 #3 #4}\@atwin[#1]{#2}{#3}{#4}}         % and use it too
-\newcommand\hateq{\ensuremath{\hat=}\xspace}
-\newcommand\hatequiv{\ensuremath{\hat\equiv}\xspace}
+\newcommand\omdoc at indexiv[5][]{\ifindex%
+\metasetkeys{omdoc at index}{#1}%
+\@bsphack\begingroup\@sanitize%
+\protected at write\@indexfile{}{\string\indexentry%
+{\ifx\omdoc at index@at\@empty\else\omdoc at index@at @\fi%
+\ifx\omdoc at index@loadmodules\@true%
+\string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#2}!%
+\string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#3}!%
+\string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#4}%
+\string\withusedmodules{\@ifundefined{mod at id}\used at modules\mod at id}{#5}%
+\else #2!#3!#4!#5\fi% loadmodules
+}{\thepage}}%
+\endgroup\@esphack\fi}%ifindex
+\newcommand\aindi[3][]{{#2}\omdoc at indexi[#1]{#3}}
+\newcommand\indi[2][]{{#2}\omdoc at indexi[#1]{#2}}
+\newcommand\indis[2][]{{#2}\omdoc at indexi[#1]{#2s}}
+\newcommand\Indi[2][]{{\captitalize{#2}}\omdoc at indexi[#1]{#2}}
+\newcommand\Indis[2][]{{\capitalize{#2}}\omdoc at indexi[#1]{#2s}}
+
+\newcommand\@indii[3][]{\omdoc at indexii[#1]{#2}{#3}\omdoc at indexii[#1]{#3}{#2}}
+\newcommand\aindii[4][]{#2\@indii[#1]{#3}{#4}}
+\newcommand\indii[3][]{{#2 #3}\@indii[#1]{#2}{#3}}
+\newcommand\indiis[3][]{{#2 #3s}\@indii[#1]{#2}{#3}}
+\newcommand\Indii[3][]{{\captitalize{#2 #3}}\@indii[#1]{#2}{#3}}
+\newcommand\Indiis[3][]{{\capitalize{#2 #3}}\@indii[#1]{#2}{#3}}
+
+\newcommand\@indiii[4][]{\omdoc at indexiii[#1]{#2}{#3}{#4}\omdoc at indexii[#1]{#3}{#2 (#4)}}
+\newcommand\aindiii[5][]{{#2}\@indiii[#1]{#3}{#4}{#5}}
+\newcommand\indiii[4][]{{#2 #3 #4}\@indiii[#1]{#2}{#3}{#4}}
+\newcommand\indiiis[4][]{{#2 #3 #4s}\@indiii[#1]{#2}{#3}{#4}}
+\newcommand\Indiii[4][]{\captitalize{#2 #3 #4}\@indiii[#1]{#2}{#3}{#4}}
+\newcommand\Indiiis[4][]{\capitalize{#2 #3 #4s}\@indiii[#1]{#2}{#3}{#4}}
+
+\newcommand\@indiv[5][]{\omdoc at indexiv[#1]{#2}{#3}{#4}{#5}}
+\newcommand\aindiv[6][]{#2\@indiv[#1]{#3}{#4}{#5}{#6}}
+\newcommand\indiv[5][]{{#2 #3 #4 #5}\@indiv[#1]{#2}{#3}{#4}{#5}}
+\newcommand\indivs[5][]{{#2 #3 #4 #5s}\@indiv[#1]{#2}{#3}{#4}{#5}}
+\newcommand\Indiv[5][]{\capitalize{#2 #3 #4 #5s}\@indiv[#1]{#2}{#3}{#4}{#5}}
+\newcommand\Indivs[5][]{\capitalize{#2 #3 #4 #5s}\@indiv[#1]{#2}{#3}{#4}{#5}}
+\newcommand\hateq{\ensuremath{\widehat=}\xspace}
+\newcommand\hatequiv{\ensuremath{\widehat\equiv}\xspace}
 \@ifundefined{ergo}%
 {\newcommand\ergo{\ensuremath{\leadsto}\xspace}}%
 {\renewcommand\ergo{\ensuremath{\leadsto}\xspace}}%
 \newcommand{\reflect at squig}[2]{\reflectbox{$\m at th#1\rightsquigarrow$}}%
 \newcommand\ogre{\ensuremath{\mathrel{\mathpalette\reflect at squig\relax}}\xspace}%
+\newcommand\notergo{\ensuremath{\not\leadsto}}
+\newcommand\notogre{\ensuremath{\not\mathrel{\mathpalette\reflect at squig\relax}}\xspace}%
+\newcommand\indextoo[2][]{\indi[#1]{#2}%
+\PackageWarning{omtext}{\protect\indextoo\space is deprecated, use \protect\indi\space instead}}
+\newcommand\indexalt[2][]{\aindi[#1]{#2}%
+\PackageWarning{omtext}{\protect\indextoo\space is deprecated, use \protect\aindi\space instead}}
+\newcommand\twintoo[3][]{\indii[#1]{#2}{#3}%
+\PackageWarning{omtext}{\protect\twintoo\space is deprecated, use \protect\indii\space instead}}
+\newcommand\twinalt[3][]{\aindii[#1]{#2}{#3}%
+\PackageWarning{omtext}{\protect\twinalt\space is deprecated, use \protect\aindii\space instead}}
+\newcommand\atwintoo[4][]{\indiii[#1]{#2}{#3}{#4}%
+\PackageWarning{omtext}{\protect\atwintoo\space is deprecated, use \protect\indiii\space instead}}
+\newcommand\atwinalt[4][]{\aindii[#1]{#2}{#3}{#4}%
+\PackageWarning{omtext}{\protect\atwinalt\space is deprecated, use \protect\aindiii\space instead}}
 \endinput
 %%
 %% End of file `omtext.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/stex/presentation/presentation.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/presentation/presentation.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/presentation/presentation.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% presentation.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{presentation}[2016/04/06 v1.0 presentation for semantic macros]
+\ProvidesPackage{presentation}[2019/03/20 v1.0 presentation for semantic macros]
 \DeclareOption*{}
 \ProcessOptions
 \RequirePackage{keyval}[1997/11/10]

Modified: trunk/Master/texmf-dist/tex/latex/stex/problem/problem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/problem/problem.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/problem/problem.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% problem.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{problem}[2016/04/06 v1.2 Semantic Markup for Problems]
+\ProvidesPackage{problem}[2019/03/20 v1.3 Semantic Markup for Problems]
 \newif\if at problem@mh@\@problem at mh@false
 \DeclareOption{mh}{\@problem at mh@true}
 \newif\ifexnotes\exnotesfalse
@@ -30,6 +30,7 @@
 \RequirePackage{mdframed}
 \RequirePackage[base]{babel}
 \AfterBabelLanguage{ngerman}{\input{problem-ngerman.ldf}}
+\AfterBabelLanguage{arabic}{\input{problem-arabic.ldf}}
 \def\prob at problem@kw{Problem}
 \def\prob at solution@kw{Solution}
 \srefaddidkey[prefix=prob.]{problem}
@@ -40,7 +41,8 @@
 \newcounter{problem}
 \newcommand\numberproblemsin[1]{\@addtoreset{problem}{#1}}
 \newcommand\prob at label[1]{#1}
-\def\prob at number{\ifx\inclprob at refnum\@empty%
+\newcommand\prob at number{%
+\ifx\inclprob at refnum\@empty% if there is no outside refnumb
 \ifx\problem at refnum\@empty\prob at label\theproblem%
 \else\prob at label\problem at refnum\fi%
 \else\prob at label\inclprob at refnum\fi}
@@ -54,7 +56,7 @@
 \@in at omtexttrue% we are in a statement (for inline definitions)
 \stepcounter{problem}\record at problem%
 \def\current at section@level{\prob at problem@kw}%
-\par\noindent\textbf\prob at heading\show at pts\show at min\rm\noindent\ignorespaces}
+\par\noindent\textbf\prob at heading\show at pts\show at min\rmfamily\noindent\ignorespaces}
 {\smallskip}
 \ifboxed\surroundwithmdframed{problem}\fi
 \def\record at problem{\protected at write\@auxout{}%
@@ -96,6 +98,23 @@
 \excludecomment{hint}
 \excludecomment{exhint}
 \fi%ifhints
+\newenvironment{mcb}
+{\begin{enumerate}}
+{\end{enumerate}}
+\srefaddidkey{mcc}
+\addmetakey{mcc}{feedback}
+\addmetakey[T]{mcc}{T}
+\addmetakey[F]{mcc}{F}
+\addmetakey[Yes]{mcc}{Ttext}
+\addmetakey[No]{mcc}{Ftext}
+\newcommand\mcc[2][]{%
+\metasetkeys{mcc}{#1}%
+\item #2%
+\ifsolutions\\%
+\ifcsstring{mcc at T}{T}{}{\mcc at Ttext}%
+\ifcsstring{mcc at F}{F}{}{\mcc at Ftext}%
+\ifx\mcc at feedback\@empty!\else, \mcc at feedback\fi%
+\fi} %solutions
 \addmetakey{inclprob}{pts}
 \addmetakey{inclprob}{min}
 \addmetakey*{inclprob}{title}

Modified: trunk/Master/texmf-dist/tex/latex/stex/rfdmeta/rdfmeta.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/rfdmeta/rdfmeta.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/rfdmeta/rdfmeta.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% rdfmeta.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{rdfmeta}[2016/04/06 v0.2 Metadata key upgrades]
+\ProvidesPackage{rdfmeta}[2019/03/20 v0.2 Metadata key upgrades]
 \newif\if at rdfmeta@sectioning\@rdfmeta at sectioningfalse
 \DeclareOption{sectioning}{\@rdfmeta at sectioningtrue}
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}

Modified: trunk/Master/texmf-dist/tex/latex/stex/smglom/smglom.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/smglom/smglom.cls	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/smglom/smglom.cls	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% smglom.dtx  (with options: `cls')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesClass{smglom}[2016/04/06 v0.1 Semantic Multilingual Glossary for Math]
+\ProvidesClass{smglom}[2019/03/20 v0.1 Semantic Multilingual Glossary for Math]
 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{omdoc}
                            \PassOptionsToPackage{\CurrentOption}{stex}
                            \PassOptionsToPackage{\CurrentOption}{smglom}}

Modified: trunk/Master/texmf-dist/tex/latex/stex/smultiling/smultiling.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/smultiling/smultiling.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/smultiling/smultiling.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% smultiling.dtx  (with options: `sty')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{smultiling}[2016/04/06 v0.1 Multilingual Support for sTeX]
+\ProvidesPackage{smultiling}[2019/03/20 v0.2 Multilingual Support for sTeX]
 \newif\if at smultiling@mh@\@smultiling at mh@false
 \DeclareOption{mh}{\@smultiling at mh@true}
 \newif\if at langfiles\@langfilesfalse
@@ -17,22 +17,46 @@
 \if at smultiling@mh@\RequirePackage{smultiling-mh}\fi
 \RequirePackage{etoolbox}
 \RequirePackage{structview}
-\newenvironment{modsig}[2][]{%
-\def\@test{#1}\ifx\@test\@empty\begin{module}[id=#2]\else\begin{module}[id=#2,#1]\fi\ignorespacesandpars}
+\newenvironment{modsig}[2][]{\def\@test{#1}%
+\ifx\@test\@empty\begin{module}[id=#2]\else\begin{module}[id=#2,#1]\fi%
+\expandafter\gdef\csname mod@#2 at multiling\endcsname{true}%
+\ignorespacesandpars}
 {\end{module}\ignorespacesandparsafterend}
+\renewcommand\mod at component[1]{%
+\expandafter\ifx\csname mod@#1 at multiling\endcsname\@true%
+\@ifundefined{smultiling at language}{}
+{.\smultiling at language}%
+\fi}
+\newcommand\sTeXlanguage[1]{\def\smultiling at language{#1}}
+\sTeXlanguage{en}
 \newenvironment{viewsig}[4][]{\def\@test{#1}\ifx\@test\@empty%
   \begin{view}[id=#2,ext=tex]{#3}{#4}\else\begin{view}[id=#2,#1,ext=tex]{#3}{#4}\fi%
   \ignorespacesandpars}
   {\end{view}\ignorespacesandparsafterend}
+\define at key{symi}{noverb}[all]{}%
+\define at key{symi}{align}[WithTheSymbolOfTheSameName]{}%
+\define at key{symi}{specializes}{}%
+\define at key{symi}{noalign}[true]{}%
 \newcommand\symi{\@ifstar\@symi at star\@symi}
-\newcommand\@symi[1]{\if at importing\else Symbol: \textsf{#1}\fi\ignorespacesandpars}
-\newcommand\@symi at star[1]{\if at importing\else Primary Symbol: \textsf{#1}\fi\ignorespacesandpars}
+\newcommand\@symi[2][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Symbol: \textsf{#2}\fi\ignorespacesandpars}
+\newcommand\@symi at star[2][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Primary Symbol: \textsf{#2}\fi\ignorespacesandpars}
 \newcommand\symii{\@ifstar\@symii at star\@symii}
-\newcommand\@symii[2]{\if at importing\else Symbol: \textsf{#1-#2}\fi\ignorespacesandpars}
-\newcommand\@symii at star[2]{\if at importing\else Primary Symbol: \textsf{#1-#2}\fi\ignorespacesandpars}
+\newcommand\@symii[3][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Symbol: \textsf{#2-#3}\fi\ignorespacesandpars}
+\newcommand\@symii at star[3][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Primary Symbol: \textsf{#2-#3}\fi\ignorespacesandpars}
 \newcommand\symiii{\@ifstar\@symiii at star\@symiii}
-\newcommand\@symiii[3]{\if at importing\else Symbol: \textsf{#1-#2-#3}\fi\ignorespacesandpars}
-\newcommand\@symiii at star[3]{\if at importing\else Primary Symbol: \textsf{#1-#2-#3}\fi\ignorespacesandpars}
+\newcommand\@symiii[4][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Symbol: \textsf{#2-#3-#4}\fi\ignorespacesandpars}
+\newcommand\@symiii at star[4][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Primary Symbol: \textsf{#2-#3-#4}\fi\ignorespacesandpars}
+\newcommand\symiv{\@ifstar\@symiv at star\@symiv}
+\newcommand\@symiv[5][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Symbol: \textsf{#2-#3-#4-#5}\fi\ignorespacesandpars}
+\newcommand\@symiv at star[5][]{\metasetkeys{symi}{#1}%
+  \if at importing\else\par\noindent Primary Symbol: \textsf{#2-#3-#4-#5}\fi\ignorespacesandpars}
 \addmetakey{modnl}{load}
 \addmetakey*{modnl}{title}
 \addmetakey*{modnl}{creators}
@@ -41,6 +65,7 @@
 \addmetakey{modnl}{primary}[yes]
 \newenvironment{modnl}[3][]{\metasetkeys{modnl}{#1}%
   \def\@test{#1}\ifx\@test\@empty\begin{module}[id=#2.#3]\else\begin{module}[id=#2.#3,#1]\fi%
+  \def\smultiling at language{#3}%
   \if at langfiles\importmodule[load=#2,ext=tex]{#2}\else
   \ifx\modnl at load\@empty\importmodule{#2}\else\importmodule[ext=tex,load=\modnl at load]{#2}\fi%
   \fi%
@@ -47,18 +72,41 @@
   \ignorespacesandpars}
 {\end{module}\ignorespacesandparsafterend}
 \newenvironment{viewnl}[5][]{\def\@test{#1}\ifx\@test\@empty%
-  \begin{viewsketch}[id=#2.#3,ext=tex]{#4}{#5}\else%
-  \begin{viewsketch}[id=#2.#3,#1,ext=tex]{#4}{#5}\fi%
+  \begin{view}[id=#2.#3,ext=tex]{#4}{#5}\else%
+  \begin{view}[id=#2.#3,#1,ext=tex]{#4}{#5}\fi%
   \ignorespacesandpars}
-  {\end{viewsketch}\ignorespacesandparsafterend}
+  {\end{view}\ignorespacesandparsafterend}
 \def\@instring#1#2{TT\fi\begingroup\edef\x{\endgroup\noexpand\in@{#1}{#2}}\x\ifin@}
-\newcommand\mtrefi[2][]{\if\@instring{?}{#1}\@mtref #1\relax{#2}\else\termref[cd=#1]{#2}\fi}
-\def\@mtref#1?#2\relax{\termref[cd=#1,name=#2]}
+\def\@mtref#1?#2\relax{\@@mtref{#1}{#2}}
+\newcommand\@@mtref[3]{\def\@@cd{#1}\def\@@name{#2}%
+\ifx\@@cd\@empty%
+\ifx\@@name\@empty\termref[]{#3}\else\termref[name=\@@name]{#3}\fi%
+\else%
+\ifx\@@name\@empty\termref[cd=\@@cd]{#3}\else\termref[cd=\@@cd,name=\@@name]{#3}\fi%
+\fi}
+\newcommand\mtref[2][]{\if\@instring{?}{#1}\@mtref #1\relax{#2}\else\termref[cd=#1]{#2}\fi}
+\newcommand\mtrefi[2][]{\if\@instring{?}{#1}\@mtref #1\relax{#2}%
+\else\termref[cd=#1]{#2}\fi}
 \newcommand\mtrefis[2][]{\mtrefi[#1]{#2s}}
+\newcommand\Mtrefi[2][]{\if\@instring{?}{#1}\@mtref #1\relax{\capitalize{#2}}%
+\else\termref[cd=#1]{\capitalize{#2}}\fi}
+\newcommand\Mtrefis[2][]{\Mtrefi[#1]{#2s}}
 \newcommand\mtrefii[3][]{\mtrefi[#1]{#2 #3}}
 \newcommand\mtrefiis[3][]{\mtrefi[#1]{#2 #3s}}
+\newcommand\Mtrefii[3][]{\Mtrefi[#1]{#2 #3a}}
+\newcommand\Mtrefiis[3][]{\Mtrefi[#1]{#2 #3s}}
 \newcommand\mtrefiii[4][]{\mtrefi[#1]{#2 #3 #4}}
+\newcommand\Mtrefiiis[4][]{\Mtrefi[#1]{#2 #3 #4s}}
+\newcommand\Mtrefiii[4][]{\Mtrefi[#1]{#2 #3 #4}}
 \newcommand\mtrefiiis[4][]{\mtrefi[#1]{#2 #3 #4s}}
+\newcommand\mtrefiv[5][]{\mtrefi[#1]{#2 #3 #4 #5}}
+\newcommand\mtrefivs[5][]{\mtrefi[#1]{#2 #3 #4 #5s}}
+\newcommand\Mtrefiv[5][]{\Mtrefi[#1]{#2 #3 #4 #5}}
+\newcommand\Mtrefivs[5][]{\Mtrefi[#1]{#2 #3 #4 #5s}}
+\addmetakey{symi}{gfc}
+\addmetakey{symdef}{gfc}%
+\addmetakey{definiendum}{gfa}
+\addmetakey{definiendum}{gfl}
 \newcommand\ttl[1]{\red{TTL: #1}}
 \endinput
 %%

Modified: trunk/Master/texmf-dist/tex/latex/stex/sproof/sproof.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/sproof/sproof.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/sproof/sproof.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% sproof.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{sproof}[2016/04/06 v1.1 Semantic Markup for Proofs]
+\ProvidesPackage{sproof}[2019/03/20 v1.1 Semantic Markup for Proofs]
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}}
 \ProcessOptions
 \RequirePackage{sref}
@@ -70,6 +70,7 @@
 \def\spf at proof@kw{Proof}
 \def\spf at step@kw{Step}
 \AfterBabelLanguage{ngerman}{\input{sproof-ngerman.ldf}}
+\AfterBabelLanguage{arabic}{\input{sproof-arabic.ldf}}
 \newrobustcmd\spfsketch[2][]{%
   \metasetkeys{spf}{#1}%
   \sref at target%
@@ -118,7 +119,7 @@
   \else%
     \item[\the at pst@label]%
   \fi%
-  \ifx\spf at title\@empty\else{(\stDMemph{\spf at title})}\fi%
+  \ifx\spf at title\@empty\else{(\stDMemph{\spf at title}) }\fi%
   \sref at label@id{\pst at label}\ignorespaces%
 }{%
   \next at pst@label\@in at omtextfalse\ignorespaces%

Modified: trunk/Master/texmf-dist/tex/latex/stex/sref/sref.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/sref/sref.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/sref/sref.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% sref.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{sref}[2016/04/06 v1.2 Semantic Cross-References]
+\ProvidesPackage{sref}[2019/03/20 v1.2 Semantic Cross-References]
 \newif\ifextrefs\extrefsfalse
 \DeclareOption{extrefs}{\extrefstrue}
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{metakeys}}
@@ -129,12 +129,20 @@
     \sref at label{#1}{\sref at id}%
   \fi%
 }%
+\newcommand\sref at label@id at arg[2]{%
+  \def\@@id{#2}
+  \ifx\@@id\@empty%
+    \relax%
+  \else%
+    \sref at label{#1}{\@@id}%
+  \fi%
+}%
 \newcommand\sref at hlink[5][]{%
   \edef\@linktext{#1}%
   \edef\@fallback{#3}%
   \ifcsundef{sref@#2 at label}{%
     \ifx\@fallback\@empty% warn about undefined links and show a substitute
-      \protect\G at refundefinedtrue\@latex at warning{reference #2 undefined}%
+      \protect\G at refundefinedtrue\PackageWarning{sref}{reference #2 undefined}%
       \ifx\@linktext\@empty%
         ?#2?%
       \else%
@@ -141,7 +149,7 @@
         \@linktext%
       \fi%
     \else%
-      \protect\G at refundefinedtrue\@latex at warning{using fallback for undefined reference #2}%
+      \protect\G at refundefinedtrue\PackageWarning{sref}{using fallback for undefined reference #2}%
       \@fallback%
     \fi
   }{%
@@ -156,7 +164,7 @@
 \newcommand\sref at page@label[1]{p.~{#1}}
 \newcommand\sref at pageref[1]{%
   \ifcsundef{sref@#1 at page}{%
-    \protect\G at refundefinedtrue\@latex at warning{reference #1 undefined}\sref at page@label{??}%
+    \protect\G at refundefinedtrue\PackageWarning{sref}{reference #1 undefined}\sref at page@label{??}%
   }{%
     \sref at hlink@ifh{sref@#1 at target}{\sref at page@label{\@nameuse{sref@#1 at page}}}%
   }%
@@ -164,10 +172,10 @@
 \newcommand\sref at href[3][]{%
   \edef\@linktext{#1}%
   \ifcsundef{sref@#2 at label}{%
-    \protect\G at refundefinedtrue\@latex at warning{reference #2 undefined}??%
+    \protect\G at refundefinedtrue\PackageWarning{sref}{reference #2 undefined}??%
   }{%
     \ifcsundef{sref@#3 at URI}{%
-      \protect\G at refundefinedtrue\@latex at warning{external refs of type  #3 undefined}??%
+      \protect\G at refundefinedtrue\PackageWarning{sref}{external refs of type  #3 undefined}??%
     }{%
       \edef\@uri{\@nameuse{sref@#3 at URI}.pdf\#sref@#2 at target}%
       \edef\@label{\ifx\@linktext\@empty\@nameuse{sref@#2 at label}\else\@linktext\fi}%
@@ -231,7 +239,7 @@
   \end{eqnarray*}%
 }%
 \newcommand\withcite[2]{#2~\cite{#1}}%
-\newenvironment{withcitation}[1]{\def\citeit{\cite{#1}}}{}%
+\newenvironment{withcitation}[1]{\def\citeit{\cite{#1}\xspace}}{}%
 \endinput
 %%
 %% End of file `sref.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/stex/statements/statements.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/statements/statements.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/statements/statements.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,18 +7,29 @@
 %% statements.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{statements}[2016/04/06 v1.2 Semantic Markup for Statements]
+\ProvidesPackage{statements}[2019/03/20 v1.4 Semantic Markup for Statements]
 \newif\ifdef at index\def at indexfalse
 \DeclareOption{defindex}{\def at indextrue}
+\newif\if at nthm\@nthmtrue
+\DeclareOption{nontheorem}{\@nthmfalse}
+\newif\if at msection\@msectionfalse
+\DeclareOption{msection}{\@msectiontrue}
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{omtext}}
 \ProcessOptions
 \RequirePackage{omtext}
 \RequirePackage[base]{babel}
+\ifcsdef{proof}{\cslet{proof}{\relax}\cslet{endproof}{\relax}}{}% to redefine if necessary
+\if at nthm
 \RequirePackage[hyperref]{ntheorem}
 \theoremstyle{plain}
+\else
+\RequirePackage{amsthm}
+\fi
 \AfterBabelLanguage{ngerman}{\input{statements-ngerman.ldf}}
+\AfterBabelLanguage{arabic}{\input{statements-arabic.ldf}}
 \providecommand\STpresent[1]{#1}
 \def\define at statement@env#1{%
+\ifcsdef{#1}{\cslet{#1}{\relax}\cslet{end#1}{\relax}}{}% to redefine if necessary
 \newenvironment{#1}[1][]{\metasetkeys{omtext}{##1}\sref at target%
 \@in at omtexttrue%
 \ifx\omtext at display\st at flow\else%
@@ -26,20 +37,24 @@
 \ifx\sref at id\@empty\else\label{#1.\sref at id}\fi
 \csname st@#1 at initialize\endcsname\fi% display
 \ifx\sref at id\@empty\sref at label@id{here}\else%
-\sref at label@id{\STpresent{\csname ST#1EnvKeyword\endcsname}~\@currentlabel}\fi%
-\ignorespaces}
+\sref at label@id{\STpresent{\csname st@#1 at kw\endcsname}~\@currentlabel}\fi%
+\strut\ignorespaces}
 {\csname st@#1 at terminate\endcsname\ifx\omtext at display\st at flow\else\end{ST#1Env}\fi%
 \omtext at post@skip\@in at omtextfalse}}
 \newenvironment{assertion}[1][]{\metasetkeys{omtext}{#1}\sref at target%
 \@in at omtexttrue%
-\ifx\omtext at display\st at flow\itshape\noindent\ignorespaces%
+\ifx\omtext at display\st at flow
+  \itshape\noindent\ignorespaces%
 \else% display!=flow
-\ifx\omtext at title\@empty\begin{ST\omtext at type AssEnv}%
-\else\begin{ST\omtext at type AssEnv}[\omtext at title]\fi\fi%
-\ifx\omtext at type\@empty\sref at label@id{here}\else%
-\sref at label@id{\STpresent{\csname ST\omtext at type AssEnvKeyword\endcsname}~\@currentlabel}
-\fi}%display=flow
-{\ifx\omtext at display\st at flow\else\end{ST\omtext at type AssEnv}\@in at omtextfalse\fi}
+  \xdef\@@@type{\omtext at type}% to keep it safe from \inlinedef
+  \ifx\omtext at title\@empty\begin{ST\@@@type AssEnv}%
+  \else\begin{ST\@@@type AssEnv}[\omtext at title]%
+  \fi%
+\fi %display=flow
+\ifx\omtext at type\@empty\else%
+\sref at label@id{\STpresent{\csname st@\@@@type @kw\endcsname}~\@currentlabel}
+\fi}
+{\ifx\omtext at display\st at flow\else\end{ST\@@@type AssEnv}\@in at omtextfalse\fi}
 \def\st at theorem@kw{Theorem}
 \def\st at lemma@kw{Lemma}
 \def\st at proposition@kw{Proposition}
@@ -52,9 +67,19 @@
 \def\st at rule@kw{Rule}
 \def\st at observation@kw{Observation}
 \def\st at remark@kw{Remark}
+\if at nthm
 \theorembodyfont{\itshape}
 \theoremheaderfont{\normalfont\bfseries}
-\newtheorem{STtheoremAssEnv}{\st at theorem@kw}[section]
+\else
+\theoremstyle{plain}
+\fi
+\if at msection
+\newtheorem{STtheoremAssEnv}{\st at theorem@kw}[msection]
+\else
+\ifdef{\thesection}
+{\newtheorem{STtheoremAssEnv}{\st at theorem@kw}[section]}
+{\newtheorem{STtheoremAssEnv}{\st at theorem@kw}}
+\fi
 \newtheorem{STlemmaAssEnv}[STtheoremAssEnv]{\st at lemma@kw}
 \newtheorem{STpropositionAssEnv}[STtheoremAssEnv]{\st at proposition@kw}
 \newtheorem{STcorollaryAssEnv}[STtheoremAssEnv]{\st at corollary@kw}
@@ -64,18 +89,16 @@
 \newtheorem{STobligationAssEnv}[STtheoremAssEnv]{\st at obligation@kw}
 \newtheorem{STassumptionAssEnv}[STtheoremAssEnv]{\st at assumption@kw}
 \newtheorem{STobservationAssEnv}[STtheoremAssEnv]{\st at observation@kw}
-\theorembodyfont{\rm}
+\if at nthm\theorembodyfont{\rmfamily}\else\theoremstyle{definition}\fi
 \newtheorem{STremarkAssEnv}[STtheoremAssEnv]{\st at remark@kw}
 \newtheorem{STruleAssEnv}[STtheoremAssEnv]{\st at rule@kw}
 \def\st at example@initialize{}\def\st at example@terminate{}
 \define at statement@env{example}
 \def\st at example@kw{Example}
-\theorembodyfont{\upshape}
 \newtheorem{STexampleEnv}[STtheoremAssEnv]{\st at example@kw}
 \def\st at axiom@initialize{}\def\st at axiom@terminate{}
 \define at statement@env{axiom}
 \def\st at axiom@kw{Axiom}
-\theorembodyfont{\upshape}
 \newtheorem{STaxiomEnv}[STtheoremAssEnv]{\st at axiom@kw}
 \srefaddidkey{symboldec}
 \addmetakey{symboldec}{functions}
@@ -95,7 +118,6 @@
 \noindent\type at type \ifx\symtype@\@empty\else (\symtype at system)\fi #2: $#3$}
 \newcommand\inlinetypedec[3][]{\metasetkeys{symtype}{#1}\sref at target{\def\thedectype{#2}#3}}
 \def\st at typedec@kw{Type Declaration}
-\theorembodyfont{\upshape}
 \newtheorem{STtypedecEnv}[STtheoremAssEnv]{\st at typedec@kw}
 \newenvironment{typedec}[2][]{\metasetkeys{omtext}{#1}\sref at target%
 \def\thedectype{#2}%
@@ -103,19 +125,19 @@
 \ifx\omtext at title\@empty\begin{STtypedecEnv}\else\begin{STtypedecEnv}[\omtext at title]\fi%
 \ifx\sref at id\@empty\else\label{typedec.\sref at id}\fi
 \ifx\sref at id\@empty\sref at label@id{here}\else%
-\sref at label@id{\STpresent{\csname STtypedecEnvKeyword\endcsname}~\@currentlabel}\fi%
+\sref at label@id{\STpresent{\csname st at typedec@kw\endcsname}~\@currentlabel}\fi%
 \ignorespaces}
 {\ifx\omtext at display\st at flow\else\end{STtypedecEnv}\fi\omtext at post@skip}
 \newif\ifst at indef\st at indeffalse
+\ifcsdef{definition}{\cslet{definition}{\relax}\cslet{enddefinition}{\relax}}{}% to redefine if necessary
 \newenvironment{definition}[1][]{\metasetkeys{omtext}{#1}\sref at target\st at indeftrue%
 \ifx\omtext at display\st at flow\else%
 \ifx\omtext at title\@empty\begin{STdefinitionEnv}\else\begin{STdefinitionEnv}[\omtext at title]\fi\fi%
 \ifx\sref at id\@empty\sref at label@id{here}\else%
-\sref at label@id{\STpresent{\csname STdefinitionEnvKeyword\endcsname}~\@currentlabel}\fi%
+\sref at label@id{\STpresent{\csname st at definition@kw\endcsname}~\@currentlabel}\fi%
 \ignorespaces}
 {\ifx\omtext at display\st at flow\else\end{STdefinitionEnv}\fi}
 \def\st at definition@kw{Definition}
-\theorembodyfont{\upshape}
 \newtheorem{STdefinitionEnv}[STtheoremAssEnv]{\st at definition@kw}
 \def\notemph#1{#1}
 \def\st at notation@terminate{}
@@ -122,14 +144,13 @@
 \def\st at notation@initialize{}
 \define at statement@env{notation}
 \def\st at notation@kw{Notation}
-\theorembodyfont{\upshape}
 \newtheorem{STnotationEnv}[STtheoremAssEnv]{\st at notation@kw}
-\newcommand\st at def@target[3]{\def\@symname{#1}\def\@verbname{#2}%
+\newcommand\st at def@target[3]{\edef\@symname{#1}\def\@verbname{#2}%
 \ifst at indef% if we are in a definition or such
 \@ifundefined{mod at id}% if we are not in a module
 {\PackageWarning{statements}{definiendum in unidentified module\MessageBreak
-\protect\definiendum, \protect\defi,
-\protect\defii, \protect\defiii\MessageBreak
+\protect\definiendum, \protect\defi*,
+\protect\Defi*, \protect\defi*s, \protect\Defi*s\MessageBreak
 can only be referenced when called in a module with id key}}%
 {% now we are in a module
 \edef\@@cd{\ifx\omtext at theory\@empty\mod at id\else\omtext at theory\fi}%
@@ -139,53 +160,99 @@
 {#3}}%
 \expandafter\gdef\csname sref@\@@name @\@@cd @defined\endcsname{yes}%
 \ifmetakeys at showmeta\metakeys at show@keys{\@@cd}{name:\@@name}\fi}%
-\else% st at indef
+\else% st at indef: we are not in a definition or such
 \PackageError{statements}%
 {definiendum outside definition context\MessageBreak
 \protect\definiendum, \protect\defi,
-\protect\defii, \protect\defiii\MessageBreak
-do not make sense semantically outside a definition.\MessageBreak
-Consider wrapping the defining phrase in a \protect\inlinedef}%
+\protect\Defi, \protect\defi*s, \protect\Defi*s\MessageBreak
+do not make sense semantically outside a definition.}
+{Consider wrapping the defining phrase in a \protect\inlinedef}%
 \fi}% st at indef
 \newcommand\@termdef[2][]{\def\@test{#1}%
 \@ifundefined{mod at id}{}{\ifx\@test\@empty\def\@@name{#2}\else\def\@@name{#1}\fi%
 \termdef{\mod at id @\@@name}{#2}}}
-\newcommand\definiendum[2][]{\st at def@target{#1}{#2}{#2}}
+\addmetakey{definiendum}{name}
+\addmetakey{definiendum}{lemma}
+\newcommand\definiendum[2][]{\setkeys{definiendum}{#1}%
+\st at def@target{\definiendum at name}{\definiendum at name}{#2}}
 \newcommand\notatiendum[2][]{\notemph{#2}}
-\newcommand\defi[2][]{\st at def@target{#1}{#2}{#2}\def\@phrase{#2}\@defi}
 \newcommand\@defi[1][]{\ifdef at index\omdoc at indexi[#1]{\@phrase}\fi\xspace}
-\newcommand\defis[2][]{\st at def@target{#1}{#2}{#2s}\def\@phrase{#2}\@defi}
-\newcommand\adefi[3][]{\def\@name{#1}\def\@verb{#3}%
-\st at def@target{#1}{#3}{#2}\@adefi}
+\newcommand\defi[2][]{\metasetkeys{definiendum}{#1}%
+\st at def@target{\definiendum at name}{#2}{#2}\def\@phrase{#2}\@defi}
+\newcommand\defis[2][]{\metasetkeys{definiendum}{#1}%
+\st at def@target{\definiendum at name}{#2}{#2s}\def\@phrase{#2}\@defi}
+\newcommand\Defi[2][]{\metasetkeys{definiendum}{#1}%
+\st at def@target{\definiendum at name}{#2}{\capitalize{#2}}\def\@phrase{#2}\@defi}
+\newcommand\Defis[2][]{\metasetkeys{definiendum}{#1}%
+\st at def@target{\definiendum at name}{#2}{\capitalize{#2s}}\def\@phrase{#2}\@defi}
+\newcommand\adefi[3][]{\metasetkeys{definiendum}{#1}\def\@verb{#3}%
+\st at def@target{\definiendum at name}{#3}{#2}\@adefi}
 \newcommand\@adefi[1][]{%
 \ifdef at index%
-\ifx\@name\@empty\omdoc at indexi[#1]{\@verb}%
-\else\omdoc at indexi[at=\@name,#1]{\@verb}\fi%
+\ifx\definiendum at name\@empty\omdoc at indexi[#1]{\@verb}%
+\else\omdoc at indexi[at=\definiendum at name,#1]{\@verb}\fi%
 \fi\xspace}
-\newcommand\@defii[1][]{\ifdef at index\@twin[#1]{\@pone}{\@ptwo}\fi\xspace}
-\newcommand\defii[3][]{\def\@pone{#2}\def\@ptwo{#3}%
-\st at def@target{#1}{#2-#3}{#2 #3}\@defii}
-\newcommand\defiis[3][]{\def\@pone{#2}\def\@ptwo{#3}%
-\st at def@target{#1}{#2-#3}{#2 #3s}\@defii}
-\newcommand\adefii[4][]{\def\@name{#1}\def\@pone{#3}\def\@ptwo{#4}%
-\st at def@target{#1}{#3-#4}{#2}\@adefii}
+\newcommand\@defii[1][]{\ifdef at index\omdoc at indexii[#1]{\@pone}{\@ptwo}\fi\xspace}
+\newcommand\defii[3][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}%
+\st at def@target{\definiendum at name}{#2-#3}{#2 #3}\@defii}
+\newcommand\defiis[3][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}%
+\st at def@target{\definiendum at name}{#2-#3}{#2 #3s}\@defii}
+\newcommand\Defii[3][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}%
+\st at def@target{\definiendum at name}{#2-#3}{\capitalize{#2 #3}}\@defii}
+\newcommand\Defiis[3][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}%
+\st at def@target{\definiendum at name}{#2-#3}{\capitalize{#2 #3s}}\@defii}
+\newcommand\adefii[4][]{\metasetkeys{definiendum}{#1}\def\@pone{#3}\def\@ptwo{#4}%
+\st at def@target{\definiendum at name}{#3-#4}{#2}\@adefii}
 \newcommand\@adefii[1][]{%
 \ifdef at index%
-\ifx\@name\@empty\@twin[#1]{\@pone}{\@ptwo}%
-\else\@twin[at=\@name,#1]{\@pone}{\@ptwo}\fi%
+\ifx\definiendum at name\@empty\omdoc at indexii[#1]{\@pone}{\@ptwo}%
+\else\omdoc at indexii[at=\definiendum at name,#1]{\@pone}{\@ptwo}\fi%
 \fi\xspace}
-\newcommand\defiii[4][]{\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}%
-\st at def@target{#1}{#2-#3-#4}{#2 #3 #4}\@defiii}
-\newcommand\@defiii[1][]{\ifdef at index\@atwin[#1]{\@pone}{\@ptwo}{\@pthree}\fi\xspace}
-\newcommand\defiiis[4][]{\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}%
-\st at def@target{#1}{#2-#3-#4}{#2 #3 #4s}\@defiii}
-\newcommand\adefiii[5][]{\def\@name{#1}\def\@pone{#3}\def\@ptwo{#4}\def\@pthree{#3}%
-\st at def@target{#1}{#3-#4-#5}{#2}\@adefiii}
+\newcommand\@defiii[1][]{\ifdef at index\omdoc at indexiii[#1]{\@pone}{\@ptwo}{\@pthree}\fi\xspace}
+\newcommand\defiii[4][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}%
+\st at def@target{\definiendum at name}{#2-#3-#4}{#2 #3 #4}\@defiii}
+\newcommand\defiiis[4][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}%
+\st at def@target{\definiendum at name}{#2-#3-#4}{#2 #3 #4s}\@defiii}
+\newcommand\Defiii[4][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}%
+\st at def@target{\definiendum at name}{#2-#3-#4}{\capitalize{#2 #3 #4}}\@defiii}
+\newcommand\Defiiis[4][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}%
+\st at def@target{\definiendum at name}{#2-#3-#4}{\capitalize{#2 #3 #4s}}\@defiii}
+\newcommand\adefiii[5][]{\metasetkeys{definiendum}{#1}\def\@pone{#3}\def\@ptwo{#4}\def\@pthree{#5}%
+\st at def@target{\definiendum at name}{#3-#4-#5}{#2}\@adefiii}
 \newcommand\@adefiii[1][]{%
 \ifdef at index%
-\ifx\@name\@empty\@atwin[#1]{\@pone}{\@ptwo}{\@pthree}%
-\else\@atwin[at=\@name,#1]{\@pone}{\@ptwo}{\@pthree}\fi%
+\ifx\definiendum at name\@empty\omdoc at indexiii[#1]{\@pone}{\@ptwo}{\@pthree}%
+\else\omdoc at indexiii[at=\definiendum at name,#1]{\@pone}{\@ptwo}{\@pthree}\fi%
 \fi\xspace}
+\newcommand\@defiv[1][]{\ifdef at index\omdoc at indexiv[#1]{\@pone}{\@ptwo}{\@pthree}{\@ptfour}\fi\xspace}
+\newcommand\defiv[5][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}\def\@ptfour{#5}%
+\st at def@target{\definiendum at name}{#2-#3-#4-#5}{#2 #3 #4 #5}\@defiv}
+\newcommand\defivs[5][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}\def\@ptfour{#5}%
+\st at def@target{\definiendum at name}{#2-#3-#4-#5}{#2 #3 #4 #5s}\@defiv}
+\newcommand\Defiv[5][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}\def\@ptfour{#5}%
+\st at def@target{\definiendum at name}{#2-#3-#4-#5}{\capitalize{#2 #3 #4 #5}}\@defiv}
+\newcommand\Defivs[5][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}\def\@ptfour{#5}%
+\st at def@target{\definiendum at name}{#2-#3-#4-#5}{\capitalize{#2 #3 #4 #5s}}\@defiv}
+\newcommand\adefiv[6][]{\metasetkeys{definiendum}{#1}%
+\def\@pone{#3}\def\@ptwo{#4}\def\@pthree{#5}\def\@ptfour{#6}%
+\st at def@target{\definiendum at name}{#3-#4-#5-#6}{#2}\@adefiv}
+\newcommand\@adefiv[1][]{%
+\ifdef at index%
+\ifx\definiendum at name\@empty\@indiv[#1]{\@pone}{\@ptwo}{\@pthree}{\@ptfour}%
+\else\@indiv[at=\definiendum at name,#1]{\@pone}{\@ptwo}{\@pthree}{\@ptfour}\fi%
+\fi\xspace}
 \newcommand\inlineex[2][]{\metasetkeys{omtext}{#1}%
 \sref at target\sref at label@id{here}#2}
 \newcommand\inlineass[2][]{\metasetkeys{omtext}{#1}%
@@ -202,25 +269,37 @@
 \addmetakey*{termref}{name}
 \addmetakey*{termref}{role}
 \newcommand\termref[2][]{\metasetkeys{termref}{#1}%
-  \ifx\termref at cd\@empty\def\termref at cd{\mod at id}\fi%
-  \ifx\termref at name\@empty\def\termref at name{#2}\fi%
-  \@ifundefined{sref@\termref at name @\termref at cd @defined}
-  {\ifx\termref at cdbase\@empty% external reference
-    \mod at termref\termref at cd\termref at name{#2}%
-    \else\sref at href@ifh\termref at cdbase{#2}%
-    \fi}%
-  {\sref at hlink@ifh{sref@\termref at name @\termref at cd @target}{#2}}%
-}
+\ifx\termref at cd\@empty\def\termref at cd{\mod at id}\fi%
+\ifx\termref at name\@empty\def\termref at name{#2}\fi%
+\@ifundefined{sref@\termref at name @\termref at cd @defined}%
+{\ifx\termref at cdbase\@empty% external reference
+\mod at termref\termref at cd\termref at name{#2}%
+\else\sref at href@ifh\termref at cdbase{#2}%
+\fi}%
+{\def\@label{sref@\termref at name @\termref at cd @target}%
+\sref at hlink@ifh\@label{#2}%\footnote{termref: internal reference to \@label}
+}}
 \newcommand\atrefi[3][]{\def\@test{#1}%
 \ifx\@test\@empty\termref[name=#3]{#2}\else\termref[cd=#1,name=#3]{#2}\fi}
 \newcommand\atrefii[4][]{\atrefi[#1]{#2}{#3-#4}}
 \newcommand\atrefiii[5][]{\atrefi[#1]{#2}{#3-#4-#5}}
+\newcommand\atrefiv[6][]{\atrefi[#1]{#2}{#3-#4-#5-#6}}
 \newcommand\trefi[2][]{\atrefi[#1]{#2}{#2}}
 \newcommand\trefii[3][]{\atrefi[#1]{#2 #3}{#2-#3}}
 \newcommand\trefiii[4][]{\atrefi[#1]{#2 #3 #4}{#2-#3-#4}}
+\newcommand\trefiv[5][]{\atrefi[#1]{#2 #3 #4 #5}{#2-#3-#4-#5}}
 \newcommand\trefis[2][]{\atrefi[#1]{#2s}{#2}}
 \newcommand\trefiis[3][]{\atrefi[#1]{#2 #3s}{#2-#3}}
 \newcommand\trefiiis[4][]{\atrefi[#1]{#2 #3 #4s}{#2-#3-#4}}
+\newcommand\trefivs[5][]{\atrefi[#1]{#2 #3 #4 #5s}{#2-#3-#4-#5}}
+\newcommand\Trefi[2][]{\atrefi[#1]{\capitalize{#2}}{#2}}
+\newcommand\Trefii[3][]{\atrefi[#1]{\capitalize{#2 #3}}{#2-#3}}
+\newcommand\Trefiii[4][]{\atrefi[#1]{\capitalize{#2 #3 #4}}{#2-#3-#4}}
+\newcommand\Trefiv[5][]{\atrefi[#1]{\capitalize{#2 #3 #4 #5}}{#2-#3-#4-#5}}
+\newcommand\Trefis[2][]{\atrefi[#1]{\capitalize{#2s}}{#2}}
+\newcommand\Trefiis[3][]{\atrefi[#1]{\capitalize{#2 #3s}}{#2-#3}}
+\newcommand\Trefiiis[4][]{\atrefi[#1]{\capitalize{#2 #3 #4s}}{#2-#3-#4}}
+\newcommand\Trefivs[5][]{\atrefi[#1]{\capitalize{#2 #3 #4 #5s}}{#2-#3-#4-#5}}
 \providecommand{\termemph}[1]{#1}
 \providecommand{\defemph}[1]{{\textbf{#1}}}
 \providecommand{\stDMemph}[1]{{\textbf{#1}}}

Modified: trunk/Master/texmf-dist/tex/latex/stex/stex/stex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/stex/stex.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/stex/stex.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% stex.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{stex}[2016/04/07 v1.0 Semantic Markup]
+\ProvidesPackage{stex}[2019/03/20 v1.0 Semantic Markup]
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{statements}
   \PassOptionsToPackage{\CurrentOption}{structview}
   \PassOptionsToPackage{\CurrentOption}{sproofs}
@@ -16,10 +16,10 @@
   \PassOptionsToPackage{\CurrentOption}{dcm}}
 \ProcessOptions
 \RequirePackage{stex-logo}
+\RequirePackage{omdoc}
 \RequirePackage{statements}
 \RequirePackage{structview}
 \RequirePackage{sproof}
-\RequirePackage{omdoc}
 \RequirePackage{cmath}
 \RequirePackage{dcm}
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/stex/structview/structview.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/structview/structview.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/structview/structview.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% structview.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{structview}[2016/04/06 v0.9 Structures and Views]
+\ProvidesPackage{structview}[2019/03/20 v0.9 Structures and Views]
 \newif\if at structview@mh@\@structview at mh@false
 \DeclareOption{mh}{\@structview at mh@true
 \PassOptionsToPackage{\CurrentOption}{modules}}
@@ -15,27 +15,31 @@
 \ProcessOptions
 \if at structview@mh@\RequirePackage{structview-mh}\fi
 \RequirePackage{modules}
-\newenvironment{importmodulevia}[2][]{%
-  \gdef\@@doit{\importmodule[#1]{#2}}%
-  \ifmod at show\par\noindent importing module #2 via \@@doit\fi%
+\newrobustcmd\vassign[3][]{\ifmod at show\ensuremath{#2\mapsto #3}, \fi}%
+\newrobustcmd\fassign[4][]{\ifmod at show \ensuremath{#3(#2)\mapsto #4}, \fi}%
+\newrobustcmd\tassign[3][]{\ifmod at show \ensuremath{#2\mapsto} #3, \fi}%
+\newenvironment{sstructure}[3][]{%
+  \gdef\@@doit{\importmodule[#1]{#3}}%
+  \ifmod at show\par\noindent importing module #3 via \@@doit\fi%
 }{%
   \aftergroup\@@doit\ifmod at show end import\fi%
 }%
-\newrobustcmd\vassign[3][]{\ifmod at show\ensuremath{#2\mapsto #3}, \fi}%
-\newrobustcmd\tassign[3][]{\ifmod at show #2\ensuremath{\mapsto} #3, \fi}%
-\newrobustcmd\fassign[4][]{\ifmod at show \ensuremath{#3\mapsto #4}, \fi}%
-\newrobustcmd\ttassign[3][]{\ifmod at show #2\ensuremath{\mapsto} ``#3'', \fi}%
+\newenvironment{importmodulevia}[2][]%
+{\PackageError{structview}%
+  {The {importmodulevia} environment is deprecated}{use the {sstructure} instead!}%
+  \begin{sstructure}[#1]{missing}{#2}}
+{\end{sstructure}}
 \srefaddidkey{view}
 \addmetakey*{view}{title}
 \addmetakey{view}{display}
-\addmetakey{view}{from}
-\addmetakey{view}{to}
+\addmetakey{view}{loadfrom}
+\addmetakey{view}{loadto}
 \addmetakey{view}{creators}
 \addmetakey{view}{contributors}
 \addmetakey{view}{srccite}
 \addmetakey{view}{type}
 \addmetakey[sms]{view}{ext}
-\newcounter{view}[section]
+\ifdef{\thesection}{\newcounter{view}[section]}{\newcounter{view}}
 \newrobustcmd\view at heading[4]{%
   \if at importing%
   \else%
@@ -56,7 +60,7 @@
       \ignorespaces%
   \fi%
 }%ifmod at show
-\newenvironment{view}[3][]{%
+\newenvironment{view}[3][]{% keys, from, to
   \metasetkeys{view}{#1}%
   \sref at target%
   \begin{@view}{#2}{#3}%
@@ -67,18 +71,14 @@
 }%
 \ifmod at show\surroundwithmdframed{view}\fi%
 \newenvironment{@view}[2]{%from, to
-  \@importmodule[\view at from]{#1}{\view at ext}%
-  \@importmodule[\view at to]{#2}{\view at ext}%
+  \@importmodule[\view at loadfrom]{#1}{\view at ext}%
+  \@importmodule[\view at loadto]{#2}{\view at ext}%
 }{}%
-\newenvironment{viewsketch}[3][]{%
-  \metasetkeys{view}{#1}%
-  \sref at target%
-  \begin{@view}{#2}{#3}%
-  \view at heading{#2}{#3}{\view at display}{\view at title}%
-}{%
-  \end{@view}%
-}%
-\ifmod at show\surroundwithmdframed{viewsketch}\fi%
+\newenvironment{viewsketch}[3][]%
+{\PackageError{structview}%
+  {The {viewsketch} environment is deprecated}{use the {view} instead!}%
+  \begin{view}[#1]{#2}{#3}}
+{\end{view}}
 \newrobustcmd\obligation[3][]{%
   \if at importing%
   \else Axiom #2 is proven by \sref{#3}%

Modified: trunk/Master/texmf-dist/tex/latex/stex/tikzinput/tikzinput.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/tikzinput/tikzinput.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/tikzinput/tikzinput.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% tikzinput.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{tikzinput}[2016/04/06 v1.0 Selective input of TIKZ pictures]
+\ProvidesPackage{tikzinput}[2019/03/20 v1.0 Selective input of TIKZ pictures]
 \newif\if at tikzinput@mh@\@tikzinput at mh@false
 \DeclareOption{mh}{\@tikzinput at mh@true}
 \newif\iftikzinput at image\tikzinput at imagefalse
@@ -25,9 +25,15 @@
 \iftikzinput at image
 \newcommand\tikzinput[2][]{\includegraphics[#1]{#2}}
 \else
-\newcommand\tikzinput[2][]{\input{#2}}
+\newcommand\tikzinput[2][]{\setkeys{Gin}{#1}%
+\ifx\Gin at ewidth\Gin at exclamation
+\ifx\Gin at eheight\Gin at exclamation\input{#2}\else\resizebox{!}{\Gin at eheight}{\input{#2}}\fi
+\else
+\ifx\Gin at eheight\Gin at exclamation\resizebox{\Gin at ewidth}{!}{\input{#2}}
+\else\resizebox{\Gin at ewidth}{\Gin at eheight}{\input{#2}}\fi
+\fi}
 \fi
-\newcommand\ctikzinput[2][]{\begin{center}\tikzinput{#2}\end{center}}
+\newcommand\ctikzinput[2][]{\begin{center}\tikzinput[#1]{#2}\end{center}}
 
 \endinput
 %%

Modified: trunk/Master/texmf-dist/tex/latex/stex/workaddress/workaddress.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/stex/workaddress/workaddress.sty	2019-03-20 22:30:53 UTC (rev 50488)
+++ trunk/Master/texmf-dist/tex/latex/stex/workaddress/workaddress.sty	2019-03-20 22:31:24 UTC (rev 50489)
@@ -7,7 +7,7 @@
 %% workaddress.dtx  (with options: `package')
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{workaddress}[2016/04/06 v0.4 WorkAddress]
+\ProvidesPackage{workaddress}[2019/03/20 v0.5 WorkAddress]
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}}
 \ProcessOptions
 \RequirePackage{sref}
@@ -28,22 +28,29 @@
 \addmetakey*{wa at person}{worktelfax}
 \addmetakey*{wa at person}{privtelfax}
 \def\wa at def#1#2#3#4{\expandafter\xdef\csname wa@#1@#2@#3\endcsname{#4}}
-\def\wa at ref@test#1#2#3{%
-  \@ifundefined{wa@#1@#2@#3}{%
-    \PackageError{workaddress}{reference to undefined #3 of #1 #2}%
-    {you must define a #1 with #2=#3\MessageBreak%
-     via the macro \protect\WA#1, before you can use it!}
-  }{}%
-}%
-\def\wa at ref#1#2#3{%
-  \wa at ref@test{#1}{#2}{#3}%
-  \csname wa@#1@#2@#3\endcsname%
-}%
+\newcommand\wa at ref[4]{%
+  \@ifundefined{wa@#2@#3@#4}{%
+    \ifcase#1 {}\or%
+    \PackageWarning{workaddress}{reference to undefined #4 of #2 #3\MessageBreak%
+      you must define a #2 with #3=#4\MessageBreak%
+      via the macro \protect\WA#2, before you can use it!}%
+    \or
+    \PackageWarning{workaddress}{reference to undefined #4 of #2 #3\MessageBreak%
+      you must define a #2 with #3=#4\MessageBreak%
+      via the macro \protect\WA#2, before you can use it!}%
+      ?#2?#3?#4?
+    \or
+    \PackageError{workaddress}{reference to undefined #4 of #2 #3}%
+    {you must define a #2 with #3=#4\MessageBreak%
+     via the macro \protect\WA#2, before you can use it!}
+    \else\PackageError{workaddress}{\protect\wa at ref#1 not defined}{}
+   \fi
+  }{\csname wa@#2@#3@#4\endcsname}}%
 \let\wa at persons=\relax
 \newcommand\WAperson[2][]{%
   \metasetkeys{wa at person}{#1}%
   \ifx\wa at person@id\@empty%
-    \@latex at warning{key 'id' undefined in WAperson}%
+    \PackageWarning{workaddress}{key 'id' undefined in WAperson}%
   \else%
     \wa at def{person}\wa at person@id{id}{\wa at person@id}% redundant, but useful for checking
     \wa at def{person}\wa at person@id{name}{#2}
@@ -90,7 +97,7 @@
 \newcommand\WAinstitution[2][]{%
   \metasetkeys{wa at institution}{#1}%
   \ifx\wa at institution@id\@empty%
-    \@latex at warning{key 'id' undefined in WAinstitution}%
+    \PackageWarning{workaddress}{key 'id' undefined in WAinstitution}%
   \else%
     \wa at def{institution}\wa at institution@id{id}{\wa at institution@id}% redundant, but useful for checking
     \wa at def{institution}\wa at institution@id{name}{#2}
@@ -129,16 +136,16 @@
    \def\@depts{}%
    \def\@urls{}%
    \@for\@I:=#2\do{%
-     \xdef\@authors{\@authors&\wa at ref{person}\@I{name}}
-     \xdef\@@dept{\wa at ref{person}\@I{department}}
+     \xdef\@authors{\@authors&\wa at ref2{person}\@I{name}}
+     \xdef\@@dept{\wa at ref1{person}\@I{department}}
      \xdef\@shortname{\csname wa at institution@\@@dept @shortname\endcsname}
-     \xdef\@dept{\ifx\@shortname\@empty\wa at ref{institution}\@@dept{name}\else\@shortname\fi}
+     \xdef\@dept{\ifx\@shortname\@empty\wa at ref0{institution}\@@dept{name}\else\@shortname\fi}
      \xdef\@depts{\@depts&\@dept}
-     \xdef\@@aff{\wa at ref{person}\@I{affiliation}}
+     \xdef\@@aff{\wa at ref0{person}\@I{affiliation}}
      \xdef\@shortname{\csname wa at institution@\@@aff @shortname\endcsname}
-     \xdef\@aff{\ifx\@shortname\@empty\wa at ref{institution}\@@aff{name}\else\@shortname\fi}
+     \xdef\@aff{\ifx\@shortname\@empty\wa at ref0{institution}\@@aff{name}\else\@shortname\fi}
      \xdef\@affs{\@affs&\@aff}
-     \xdef\@urls{\@urls&\wa at ref{person}\@I{url}}
+     \xdef\@urls{\@urls&\wa at ref0{person}\@I{url}}
    }%
    \message{\theauthors authors: \@authors}%
   }%
@@ -149,11 +156,11 @@
     \ifx\WAauthorblock at url\@true\@urls\\\fi
   \end{tabular}
 }%
-\newcommand\wapname[1]{\wa at ref{person}{#1}{name}}
-\newcommand\waptname[1]{\wa at ref{person}{#1}{personaltitle} \wa at ref{person}{#1}{name}}
+\newcommand\wapname[1]{\wa at ref3{person}{#1}{name}}
+\newcommand\waptname[1]{\wa at ref3{person}{#1}{personaltitle} \wa at ref3{person}{#1}{name}}
 \newcommand\wa at institution@logo[2][]{%
-  \IfFileExists{\wa at ref{institution}{#2}{logo}}{%
-    \includegraphics{\wa at ref{institution}{#2}{logo}}%
+  \IfFileExists{\wa at ref2{institution}{#2}{logo}}{%
+    \includegraphics{\wa at ref2{institution}{#2}{logo}}%
   }{%
     \fbox{#2 logo}\message{still need logo for #2}%
   }%



More information about the tex-live-commits mailing list