diff options
86 files changed, 3206 insertions, 1466 deletions
diff --git a/Master/texmf-dist/doc/latex/stex/cmath/cmath.pdf b/Master/texmf-dist/doc/latex/stex/cmath/cmath.pdf Binary files differindex ae6bd9ebd6e..d5ceb08c58a 100644 --- a/Master/texmf-dist/doc/latex/stex/cmath/cmath.pdf +++ b/Master/texmf-dist/doc/latex/stex/cmath/cmath.pdf diff --git a/Master/texmf-dist/doc/latex/stex/dcm/dcm.pdf b/Master/texmf-dist/doc/latex/stex/dcm/dcm.pdf Binary files differindex cee8e71194b..4b9b3f737cb 100644 --- a/Master/texmf-dist/doc/latex/stex/dcm/dcm.pdf +++ b/Master/texmf-dist/doc/latex/stex/dcm/dcm.pdf diff --git a/Master/texmf-dist/doc/latex/stex/example/background/Makefile b/Master/texmf-dist/doc/latex/stex/example/background/Makefile index 505b02c9e14..67b4dc3d185 100644 --- a/Master/texmf-dist/doc/latex/stex/example/background/Makefile +++ b/Master/texmf-dist/doc/latex/stex/example/background/Makefile @@ -2,6 +2,7 @@ STEXDIR = ../.. TARGET = all.tex BUTFILES = pre.tex post.tex MODSLIBDIR = . +BIBINPUTS = $(PREFIX)/lib/bib: include $(STEXDIR)/lib/make/Makefile.vars all: pdf mpdf diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.pdf b/Master/texmf-dist/doc/latex/stex/example/background/all.pdf Binary files differindex cb697217173..debf1356632 100644 --- a/Master/texmf-dist/doc/latex/stex/example/background/all.pdf +++ b/Master/texmf-dist/doc/latex/stex/example/background/all.pdf diff --git a/Master/texmf-dist/doc/latex/stex/example/background/functions.pdf b/Master/texmf-dist/doc/latex/stex/example/background/functions.pdf Binary files differindex 3a3765f9904..50567084b3c 100644 --- a/Master/texmf-dist/doc/latex/stex/example/background/functions.pdf +++ b/Master/texmf-dist/doc/latex/stex/example/background/functions.pdf diff --git a/Master/texmf-dist/doc/latex/stex/example/background/reals.pdf b/Master/texmf-dist/doc/latex/stex/example/background/reals.pdf Binary files differindex 3d86cf28b07..4201a59ce14 100644 --- a/Master/texmf-dist/doc/latex/stex/example/background/reals.pdf +++ b/Master/texmf-dist/doc/latex/stex/example/background/reals.pdf diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/Makefile b/Master/texmf-dist/doc/latex/stex/example/paper/Makefile index 3d1a8d0e136..de8ce0872d8 100644 --- a/Master/texmf-dist/doc/latex/stex/example/paper/Makefile +++ b/Master/texmf-dist/doc/latex/stex/example/paper/Makefile @@ -1,6 +1,7 @@ STEXDIR = ../.. TARGET = paper.tex MODSLIBDIR = ../background +BIBINPUTS = $(PREFIX)/lib/bib: include $(STEXDIR)/lib/make/Makefile.vars all: pdf mpdf diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/continuous.pdf b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.pdf Binary files differindex 7231d2b1fd9..7d97a99a0ba 100644 --- a/Master/texmf-dist/doc/latex/stex/example/paper/continuous.pdf +++ b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.pdf diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.pdf b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.pdf Binary files differindex 884d41ac3bc..06c3f5b9459 100644 --- a/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.pdf +++ b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.pdf diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/intro.pdf b/Master/texmf-dist/doc/latex/stex/example/paper/intro.pdf Binary files differindex 244a57a49c4..d3a5eaba7cb 100644 --- a/Master/texmf-dist/doc/latex/stex/example/paper/intro.pdf +++ b/Master/texmf-dist/doc/latex/stex/example/paper/intro.pdf diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.pdf b/Master/texmf-dist/doc/latex/stex/example/paper/paper.pdf Binary files differdeleted file mode 100644 index ba4ddd3f95f..00000000000 --- a/Master/texmf-dist/doc/latex/stex/example/paper/paper.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/stex/hwexam/hwexam.pdf b/Master/texmf-dist/doc/latex/stex/hwexam/hwexam.pdf Binary files differindex 6005629a595..22148735ae6 100644 --- a/Master/texmf-dist/doc/latex/stex/hwexam/hwexam.pdf +++ b/Master/texmf-dist/doc/latex/stex/hwexam/hwexam.pdf diff --git a/Master/texmf-dist/doc/latex/stex/metakeys/metakeys.pdf b/Master/texmf-dist/doc/latex/stex/metakeys/metakeys.pdf Binary files differindex ecf818c1772..ddf654d9393 100644 --- a/Master/texmf-dist/doc/latex/stex/metakeys/metakeys.pdf +++ b/Master/texmf-dist/doc/latex/stex/metakeys/metakeys.pdf diff --git a/Master/texmf-dist/doc/latex/stex/mikoslides/mikoslides.pdf b/Master/texmf-dist/doc/latex/stex/mikoslides/mikoslides.pdf Binary files differindex 15d5b999f2c..79660957ba2 100644 --- a/Master/texmf-dist/doc/latex/stex/mikoslides/mikoslides.pdf +++ b/Master/texmf-dist/doc/latex/stex/mikoslides/mikoslides.pdf diff --git a/Master/texmf-dist/doc/latex/stex/modules/modules.pdf b/Master/texmf-dist/doc/latex/stex/modules/modules.pdf Binary files differindex 37ce6e2cb5f..d30504f08ec 100644 --- a/Master/texmf-dist/doc/latex/stex/modules/modules.pdf +++ b/Master/texmf-dist/doc/latex/stex/modules/modules.pdf diff --git a/Master/texmf-dist/doc/latex/stex/omdoc/omdoc.pdf b/Master/texmf-dist/doc/latex/stex/omdoc/omdoc.pdf Binary files differindex 6659aa1cc6f..d36cc256ba4 100644 --- a/Master/texmf-dist/doc/latex/stex/omdoc/omdoc.pdf +++ b/Master/texmf-dist/doc/latex/stex/omdoc/omdoc.pdf diff --git a/Master/texmf-dist/doc/latex/stex/omtext/omtext.pdf b/Master/texmf-dist/doc/latex/stex/omtext/omtext.pdf Binary files differindex fdf53747d93..8b7bf843cc0 100644 --- a/Master/texmf-dist/doc/latex/stex/omtext/omtext.pdf +++ b/Master/texmf-dist/doc/latex/stex/omtext/omtext.pdf diff --git a/Master/texmf-dist/doc/latex/stex/presentation/presentation.pdf b/Master/texmf-dist/doc/latex/stex/presentation/presentation.pdf Binary files differindex 7fe61e1604c..e74eefda898 100644 --- a/Master/texmf-dist/doc/latex/stex/presentation/presentation.pdf +++ b/Master/texmf-dist/doc/latex/stex/presentation/presentation.pdf diff --git a/Master/texmf-dist/doc/latex/stex/problem/problem.pdf b/Master/texmf-dist/doc/latex/stex/problem/problem.pdf Binary files differindex 2b17db087e7..0a01800f163 100644 --- a/Master/texmf-dist/doc/latex/stex/problem/problem.pdf +++ b/Master/texmf-dist/doc/latex/stex/problem/problem.pdf diff --git a/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.pdf b/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.pdf Binary files differindex 648d6bdfaff..429ce535e4f 100644 --- a/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.pdf +++ b/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.pdf diff --git a/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.tex b/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.tex index 5e4582833af..85fa8b7f382 100644 --- a/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.tex +++ b/Master/texmf-dist/doc/latex/stex/rfdmeta/certification.tex @@ -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: diff --git a/Master/texmf-dist/doc/latex/stex/rfdmeta/rdfmeta.pdf b/Master/texmf-dist/doc/latex/stex/rfdmeta/rdfmeta.pdf Binary files differindex 87f02bc72b9..7f5c0907f65 100644 --- a/Master/texmf-dist/doc/latex/stex/rfdmeta/rdfmeta.pdf +++ b/Master/texmf-dist/doc/latex/stex/rfdmeta/rdfmeta.pdf diff --git a/Master/texmf-dist/doc/latex/stex/smglom/smglom.pdf b/Master/texmf-dist/doc/latex/stex/smglom/smglom.pdf Binary files differindex bb25db5f956..948f4df7111 100644 --- a/Master/texmf-dist/doc/latex/stex/smglom/smglom.pdf +++ b/Master/texmf-dist/doc/latex/stex/smglom/smglom.pdf diff --git a/Master/texmf-dist/doc/latex/stex/smultiling/smultiling.pdf b/Master/texmf-dist/doc/latex/stex/smultiling/smultiling.pdf Binary files differindex bf2aee73d8d..ea30faadc37 100644 --- a/Master/texmf-dist/doc/latex/stex/smultiling/smultiling.pdf +++ b/Master/texmf-dist/doc/latex/stex/smultiling/smultiling.pdf diff --git a/Master/texmf-dist/doc/latex/stex/sproof/sproof.pdf b/Master/texmf-dist/doc/latex/stex/sproof/sproof.pdf Binary files differindex 0e0da5067d4..9478c6f254f 100644 --- a/Master/texmf-dist/doc/latex/stex/sproof/sproof.pdf +++ b/Master/texmf-dist/doc/latex/stex/sproof/sproof.pdf diff --git a/Master/texmf-dist/doc/latex/stex/sref/book.pdf b/Master/texmf-dist/doc/latex/stex/sref/book.pdf Binary files differindex 3231842c19b..3c65f6e9f08 100644 --- a/Master/texmf-dist/doc/latex/stex/sref/book.pdf +++ b/Master/texmf-dist/doc/latex/stex/sref/book.pdf diff --git a/Master/texmf-dist/doc/latex/stex/sref/idc.pdf b/Master/texmf-dist/doc/latex/stex/sref/idc.pdf Binary files differindex 879a213144d..3759d8c92f5 100644 --- a/Master/texmf-dist/doc/latex/stex/sref/idc.pdf +++ b/Master/texmf-dist/doc/latex/stex/sref/idc.pdf diff --git a/Master/texmf-dist/doc/latex/stex/sref/scr.pdf b/Master/texmf-dist/doc/latex/stex/sref/scr.pdf Binary files differindex 989654e4bc2..5deae5865ba 100644 --- a/Master/texmf-dist/doc/latex/stex/sref/scr.pdf +++ b/Master/texmf-dist/doc/latex/stex/sref/scr.pdf diff --git a/Master/texmf-dist/doc/latex/stex/sref/sref.pdf b/Master/texmf-dist/doc/latex/stex/sref/sref.pdf Binary files differindex 8fb8e5d8da2..d78872018e3 100644 --- a/Master/texmf-dist/doc/latex/stex/sref/sref.pdf +++ b/Master/texmf-dist/doc/latex/stex/sref/sref.pdf diff --git a/Master/texmf-dist/doc/latex/stex/statements/statements.pdf b/Master/texmf-dist/doc/latex/stex/statements/statements.pdf Binary files differindex cb62de6f889..bdc3fb98518 100644 --- a/Master/texmf-dist/doc/latex/stex/statements/statements.pdf +++ b/Master/texmf-dist/doc/latex/stex/statements/statements.pdf diff --git a/Master/texmf-dist/doc/latex/stex/stex/stex.pdf b/Master/texmf-dist/doc/latex/stex/stex/stex.pdf Binary files differindex 4ad877709a3..5dc9e725865 100644 --- a/Master/texmf-dist/doc/latex/stex/stex/stex.pdf +++ b/Master/texmf-dist/doc/latex/stex/stex/stex.pdf diff --git a/Master/texmf-dist/doc/latex/stex/structview/structview.pdf b/Master/texmf-dist/doc/latex/stex/structview/structview.pdf Binary files differindex 328f088e16f..59cf5cd8c95 100644 --- a/Master/texmf-dist/doc/latex/stex/structview/structview.pdf +++ b/Master/texmf-dist/doc/latex/stex/structview/structview.pdf diff --git a/Master/texmf-dist/doc/latex/stex/tikzinput/tikzinput.pdf b/Master/texmf-dist/doc/latex/stex/tikzinput/tikzinput.pdf Binary files differindex 28a3a3b5524..9fc656381db 100644 --- a/Master/texmf-dist/doc/latex/stex/tikzinput/tikzinput.pdf +++ b/Master/texmf-dist/doc/latex/stex/tikzinput/tikzinput.pdf diff --git a/Master/texmf-dist/doc/latex/stex/workaddress/workaddress.pdf b/Master/texmf-dist/doc/latex/stex/workaddress/workaddress.pdf Binary files differindex bbedb575632..3a8d073de31 100644 --- a/Master/texmf-dist/doc/latex/stex/workaddress/workaddress.pdf +++ b/Master/texmf-dist/doc/latex/stex/workaddress/workaddress.pdf diff --git a/Master/texmf-dist/source/latex/stex/cmath/cmath.dtx b/Master/texmf-dist/source/latex/stex/cmath/cmath.dtx index 868110a2b14..109d658e46b 100644 --- a/Master/texmf-dist/source/latex/stex/cmath/cmath.dtx +++ b/Master/texmf-dist/source/latex/stex/cmath/cmath.dtx @@ -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} % diff --git a/Master/texmf-dist/source/latex/stex/dcm/dcm.dtx b/Master/texmf-dist/source/latex/stex/dcm/dcm.dtx index a5b54b1b3a1..0d8e32cc20c 100644 --- a/Master/texmf-dist/source/latex/stex/dcm/dcm.dtx +++ b/Master/texmf-dist/source/latex/stex/dcm/dcm.dtx @@ -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 @@ Systems,acronym=SKS] {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 @@ Systems,acronym=SKS] % 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 @@ Systems,acronym=SKS] % \begin{macro}{\DCMcreators} % the |\DCMcreators| macro checks whether all ids are defined. % \begin{macrocode} -\def\DCMcreators#1{\@for\@I:=#1\do{\wa@ref@test{person}\@I{id}} +\def\DCMcreators#1{\@for\@I:=#1\do{\wa@ref1{person}\@I{id}} \gdef\dcm@creators{#1}} % \end{macrocode} % \end{macro} @@ -273,7 +277,7 @@ Systems,acronym=SKS] % \begin{macro}{\DCMcontributors} % the |\DCMcontributors| macro also checks whether all ids are defined. % \begin{macrocode} -\def\DCMcontributors#1{\@for\@I:=#1\do{\wa@ref@test{person}\@I{id}}% +\def\DCMcontributors#1{\@for\@I:=#1\do{\wa@ref1{person}\@I{id}}% \def\dcm@contributors{#1}} % \end{macrocode} % \end{macro} @@ -456,7 +460,6 @@ T\ifnum\count1>9\else0\fi\the\count1:\ifnum\count3>9\else0\fi\the\count3:00Z} \def\dcm@subsection@heading{Subsection} \def\dcm@subsubsection@heading{Subsubsection} \def\dcm@paragraph@heading{Paragraph} -\def\omdoc{OMDoc} %</package> % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/stex/hwexam/hwexam.dtx b/Master/texmf-dist/source/latex/stex/hwexam/hwexam.dtx index 4a53b2b1c94..e1ef472a24a 100644 --- a/Master/texmf-dist/source/latex/stex/hwexam/hwexam.dtx +++ b/Master/texmf-dist/source/latex/stex/hwexam/hwexam.dtx @@ -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@assignment@kw{Assignment} \newcommand\hwexam@given@kw{Given} \newcommand\hwexam@due@kw{Due} +\newcommand\hwexam@testemptypage@kw{This page was intentionally left blank for extra + space}% +\newcommand\correction@probs@kw{prob.}% +\newcommand\correction@pts@kw{total}% +\newcommand\correction@reached@kw{reached}% +\newcommand\correction@sum@kw{Sum}% +\newcommand\correction@grade@kw{grade}% +\newcommand\correction@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@heading@duration\@empty\testheading@min minutes\else\testheading@duration\fi +\ifx\testheading@duration\@empty\testheading@min minutes\else\testheading@duration\fi (sharp) for the test}};\\ Write the solutions to the sheet.}\par\noindent \newcount\check@time\check@time=\testheading@min @@ -488,14 +501,13 @@ bonus points. \vfill % % \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@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@probs} \def\@@pts{#2}\ifx\@@pts\@empty\else\addtocounter{assignment@totalpts}{#2}\fi @@ -512,17 +524,19 @@ bonus points. \vfill \newcounter{assignment@probs} \newcounter{assignment@totalpts} \newcounter{assignment@totalmin} -\newcommand\correction@probs{prob.}% -\newcommand\correction@pts{total}% -\newcommand\correction@reached{reached}% +\def\correction@probs{\correction@probs@kw}% +\def\correction@pts{\correction@pts@kw}% +\def\correction@reached{\correction@reached@kw}% +\def\after@correction@table{}% \stepcounter{assignment@probs} \newcommand\correction@table{\begin{tabular}{|l|*{\theassignment@probs}{c|}|l|}\hline% &\multicolumn{\theassignment@probs}{c||}%| -{\footnotesize To be used for grading, do not write here} &\\\hline -\correction@probs & Sum & grade\\\hline +{\footnotesize\correction@forgrading@kw} &\\\hline +\correction@probs & \correction@sum@kw & \correction@grade@kw\\\hline \correction@pts &\theassignment@totalpts & \\\hline \correction@reached & & \\[.7cm]\hline -\end{tabular}} +\end{tabular} +\ifx\after@correction@table\@empty\else\strut\par\noindent\after@correction@table\fi} %</package> % \end{macrocode} % \end{macro} diff --git a/Master/texmf-dist/source/latex/stex/lib/bib/extcrossrefs.bib b/Master/texmf-dist/source/latex/stex/lib/bib/extcrossrefs.bib index 99cb06ca267..601151b37bd 100644 --- a/Master/texmf-dist/source/latex/stex/lib/bib/extcrossrefs.bib +++ b/Master/texmf-dist/source/latex/stex/lib/bib/extcrossrefs.bib @@ -1,5 +1,20 @@ @STRING{ecmessage = "READ the README please!!!!!!!!!!!!!!"} +@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} + +@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 @@ and Linking of Structured Knowledge ({CK})}, 9\textsuperscript{th} International Conference, LPAR 2002}, key = {LPAR2002}} + +@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 @@ and Linking of Structured Knowledge ({CK})}, publisher = {Springer Verlag}, booktitle = {Mathematical Knowledge Management (MKM)}} +@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 @@ and Linking of Structured Knowledge ({CK})}, year = 2009, month = sep,} +@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 @@ Lutz Schr{\"o}der and Shi Hui and Mattias Werner}, title = {Wikipedia, the free encyclopedia}, howpublished = {\url{http://www.wikipedia.org}}, editor = {{Wikimedia Foundation}}, - year = {2001--2007}, key = {Wikipedia}, url = {http://www.wikipedia.org}} diff --git a/Master/texmf-dist/source/latex/stex/lib/bib/extpubs.bib b/Master/texmf-dist/source/latex/stex/lib/bib/extpubs.bib index 2e03a51bebe..c966ee6ed56 100644 --- a/Master/texmf-dist/source/latex/stex/lib/bib/extpubs.bib +++ b/Master/texmf-dist/source/latex/stex/lib/bib/extpubs.bib @@ -2,6 +2,157 @@ @STRING{JWS = {Web Semantics: Science, Services and Agents on the World Wide Web}} + +@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}} + +@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"} + +@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}} + +@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}} + +@online{EPUB-contentdocs:on,crossref={EPUB.-contentdocs:base}, + urldate = {2016-03-29}} +@misc{EPUB-contentdocs:URL,crossref={EPUB-contentdocs:base}, + howpublished = {\url{http://www.idpf.org/epub/301/spec/epub-contentdocs.html}}} +@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)}} + +@online{EPUB-publications:on,crossref={EPUB-publications:base}, + urldate = {2016-03-29}} +@misc{EPUB-publications:URL,crossref={EPUB-publications:base}, + howpublished = {\url{http://www.idpf.org/epub/301/spec/epub-publications.html}}} +@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}} + +@online{OCF:on,crossref={OCF:base}, + urldate = {2016-03-29}} +@misc{OCF:URL,crossref={OCF:base}, + howpublished = {\url{http://www.idpf.org/epub/301/spec/epub-ocf.html}}} +@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}} + +@online{EPUB-mediaoverlays:on,crossref={EPUB-mediaoverlays:base}, + urldate = {2016-03-29}} +@misc{EPUB-mediaoverlays:URL,crossref={EPUB-mediaoverlays:base}, + howpublished = {\url{http://www.idpf.org/epub/301/spec/epub-mediaoverlays.html}}} +@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}} + +@online{opendefinition.org, + url = {http://opendefinition.org}, + label = {OD}, + title = {The Open Definition}, + urldate = {2016-01-11}} + +@misc{Gutenberg:url,crossref={Gutenberg:base}, + key = {GO}, + howpublished = {Project page at \url{https://www.gutenberg.org}}, + note = {accessed 1. 3. 2016}} +@online{Gutenberg:online,crossref={Gutenberg:base}, + urldate = {2016-03-01}, + label={GO}} +@misc{Gutenberg:base, + title = {Project Gutenberg}, + url = {https://www.gutenberg.org}} + + +@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}} + +@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}} + +@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}} + +@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} +} + +@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}} + +@misc{python-regexp:URL,crossref={python-regexp:base}, +key = {RE}, +howpublished = {online manual at \url{https://docs.python.org/2/library/re.html}}} +@online{python-regexp:on,crossref={python-regexp:base}, +label = {RE}, +urldate = {2015-09-20}} +@misc{python-regexp:base, +url = {https://docs.python.org/2/library/re.html}, +title = {\texttt{re} -- Regular expression operations}} + +@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 @@ urldate = {2014-03-14}} 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 @@ for {DAISY} 3, officially, the {ANSI}/{NISO} {Z39.86} Specifications for the {Di date = {2011-10-11}, url = {http://idpf.org/epub/30/spec/epub30-overview.html}} +@online{IDPF:on,crossref={IDPF:base}, + label = {IDPF}, + urldate = {2016-03-29}} +@misc{IDPF:URL,crossref={IDPF:base}, + key = {IDPF}, + howpublished = {\url{http://www.idpf.org}}} +@misc{IDPF:base, + title = {International Digital Publishing Forum (IDPF)}, + url = {http://idpf.org}, + urldate = {2016-03-27}} + +@online{epubvalidator:on,crossref={epubvalidator:base}, + label = {EV}, + urldate = {2016-03-29}} +@misc{epubvalidator:URL,crossref={epubvalidator:base}, + key = {EV}, + howpublished = {\url{http://validator.idpf.org/}}} +@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 @@ url = "http://www.sciencedirect.com/science/article/pii/S1071581907000468", } @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 @@ author = "Tjark Weber"} 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 @@ LANGUAGE = {English}} @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 @@ LANGUAGE = {English}} 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 @@ lastchecked = {May, 2008}} @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 @@ lastchecked = {May, 2008}} keywords = {lamapunbibs}, crossref = {MKM07}} +@online{manifold-atlas:on, + label = {MAP}, + title = {Manifold Atlas}, + url = {http://www.map.mpim-bonn.mpg.de/Main_Page}, + urldate = {2016-03-20}} + +@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}} + +@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 @@ lastchecked = {May, 2008}} @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 @@ crossref = {wikipedia}} 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 @@ YEAR = 1989} author = {Blachman, Nancy}, address = {Wiesbaden}} -@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 @@ YEAR = 1989} number = {854}, month = jun} -@BOOK{Bourbaki:a68, +@BOOK{Bourbaki:tos68, title = {Theory of Sets}, publisher = {Springer Verlag}, year = {1968}, @@ -17040,6 +17227,13 @@ YEAR = 1989} author = {Nicolas Bourbaki}, series = {Elements of Mathematics}} +@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 @@ YEAR = 1989} title = {On a Solution of the Mutilated Checkerboard Problem using the Theorema Set Theory Prover}, pages = {28--47}, crossref = {CALCULEMUS01}} -@Misc{URL:creativecommonsMetadata, - key = {Creative Commons Metadata}, + + +@Misc{URL:creativecommonsWorldwide,crossref={creativecommonsWorldwide:base}, + key = {Creative Commons Worldwide}, + howpublished = {\webpageat\url{http://creativecommons.org/worldwide}}} +@online{creativecommonsWorldwide:on,crossref={creativecommonsWorldwide:base}, + label = {CCW}, + urldate = {2014-11-02}} +@Misc{creativecommonsWorldwide:base, + title = {{Creative Commons Worldwide}}, + url = {http://creativecommons.org/worldwide}} + +@Misc{URL:creativecommonsMetadata,crossref={creativecommonsMetadata:base}, + key = {Creative Commons Worldwide}, + howpublished = {\webpageat\url{http://creativecommons.org/worldwide}}} +@online{creativecommonsMetadata:on,crossref={creativecommonsMetadata:base}, + label = {CCM}, + urldate = {2014-11-02}} +@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 @@ urldate = {2015-04-25}} address = {San Francisco, CA, USA}, isbn = {0-934613-31-1}} +@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 @@ howpublished = {online at \url{http://nvie.com/posts/a-successful-git-branching- @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 @@ howpublished = {online at \url{http://nvie.com/posts/a-successful-git-branching- 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 @@ pages= {325--329}} @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 @@ crossref={Heijenoort67}, venue = {Hiroshima, Japan}, eventdate = {2004}} +@online{MetaMath:on, + label = {MeMa}, + title = {Metamath Home page}, + url = {http://us.metamath.org}} + +@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 @@ crossref={Heijenoort67}, author = {Marilyn Walker and Aravind Joshi and Ellen Prince}, address = {Oxford, England}} -@BOOK{WalMue:dtdg99o, +@BOOK{WalMue:dtdg99, title = {DocBook: The Definitive Guide}, publisher = {O'Reilly}, year = {1999}, @@ -31979,10 +32210,14 @@ title = {Web Map}} url = {http://www.faqs.org/rfcs/rfc2046.html}, year = 1996} -@Misc{IANA:TLD, +@Misc{IANA:TLD,crossref={TLD:base}, key = {IANA TLD}, + howpublished = {\url{http://www.iana.org/cctld/cctld-whois.htm}}} +@online{TLD:on,crossref={TLD:base}, + label = {TLD}, + urlcate = {2014-11-02}} +@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 = {Web Map}} title = {{\textsc{OpenMath}} Content Dictionaries}, url = {http://www.openmath.org/cd/}} -@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 @@ Reference}, month = oct, url = {http://www.w3.org/TR/2008/NOTE-xhtml-rdfa-primer-20081014/}} -@TECHREPORT{w3c:rdfa-core,crossref={w3c:REC-rdfa-core-20120607}} +@TECHREPORT{w3c:rdfa-core,crossref={w3c:REC-rdfa-core-20150317}} +@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 @@ howpublished = {available at \url{http://www.relaxng.org/}}} @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 @@ howpublished = {available at \url{http://www.relaxng.org/}}} 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,14 +33725,14 @@ address = {Chiang Mai}, 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, 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 @@ address = {Chiang Mai}, 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 @@ provided by Thomson Reuters}, @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 @@ author = "Deepak Kapur" pubs = {projects/krextor}, } +@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}} + +@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}, diff --git a/Master/texmf-dist/source/latex/stex/lib/bib/kwarccrossrefs.bib b/Master/texmf-dist/source/latex/stex/lib/bib/kwarccrossrefs.bib index cbc2050f8a4..f68a4afc7aa 100644 --- a/Master/texmf-dist/source/latex/stex/lib/bib/kwarccrossrefs.bib +++ b/Master/texmf-dist/source/latex/stex/lib/bib/kwarccrossrefs.bib @@ -1,5 +1,9 @@ @STRING{krcmessage = "READ the README please!!!!!!!!!!!!!!"} +@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}, diff --git a/Master/texmf-dist/source/latex/stex/lib/bib/kwarcpubs.bib b/Master/texmf-dist/source/latex/stex/lib/bib/kwarcpubs.bib index fdf82508c6f..4983077ff4f 100644 --- a/Master/texmf-dist/source/latex/stex/lib/bib/kwarcpubs.bib +++ b/Master/texmf-dist/source/latex/stex/lib/bib/kwarcpubs.bib @@ -1,5 +1,86 @@ @string{kpmessage = "READ the README please!!!!!!!!!!!!!!"} -@STRING{stexyear = 2015} +@STRING{stexyear = 2016} + +@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}} + + +@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}} + +@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}} + +@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}} + +@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}} + + +@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}} + +@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}} + +@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}} + +@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}} + +@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}} + +@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}, @@ -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,15 +142,14 @@ 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 @@ -118,6 +200,8 @@ urldate={2015-04-23}} crossref = {CICM-WS-WiP2014}, pubs = {mkohlhase}} + +@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,10 +221,15 @@ urldate={2015-04-23}} @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}} + +@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, @@ -168,7 +257,7 @@ urldate={2015-04-23}} 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 @@ crossref = {CICM-WS-WiP2013}, @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 @@ crossref = {CICM-WS-WiP2013}, 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 @@ crossref = {CICM-WS-WiP2013}, @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 @@ Digital Math Libraries want to be Semantic --- Position paper for WDML 2012}, url = {http://ntcir-math.nii.ac.jp/}, urldate = {2012-05-18}} -@online{NTCIR11-Math2:on,crossref={NTCIR-Math:on}} -@online{NTCIR-Math:on, +@online{NTCIR11-Math2:on, label={NTM}, title = {{NTCIR}-11 Task: Math2}, url = {http://ntcir-math.nii.ac.jp/}, urldate = {2014-02-18}} +@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}} -@unpublished{KohRab:qrtpflmk15, - title = {QED Reloaded: Towards a Pluralistic Formal Library of Mathematical Knowledge}, +@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 @@ Digital Math Libraries want to be Semantic --- Position paper for WDML 2012}, 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 @@ Digital Math Libraries want to be Semantic --- Position paper for WDML 2012}, 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} +@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,14 +986,14 @@ Digital Math Libraries want to be Semantic --- Position paper for WDML 2012}, 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, 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,14 +1007,14 @@ Digital Math Libraries want to be Semantic --- Position paper for WDML 2012}, 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, 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 @@ Digital Math Libraries want to be Semantic --- Position paper for WDML 2012}, 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 @@ Rudnicki and Josef Urban}, @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 @@ url = {http://www.balisage.net/Proceedings/vol7/print/Hennum01/BalisageVol7-Henn 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 @@ pubs={mkohlhase,frabe,cmueller,projects/omdoc}} @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 @@ pubs={mkohlhase,frabe,cmueller,projects/omdoc}} @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 @@ pubs={mkohlhase,frabe,cmueller,projects/omdoc}} @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 @@ pubs={mkohlhase,frabe,cmueller,projects/omdoc}} urldate = {2015-05-15}} @misc{sTeX:github:base, title = {{KWARC/sTeX}}, - url = {https://svn.kwarc.info/repos/stex}} + url = {https://github.com/KWARC/sTeX}} + +@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}} +@online{lmh:github:on,crossref={lmh:github:base}, + label = {lmh}, + urldate = {2015-05-15}} +@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}} +@MISC{URL:LaTeXMLsTeX:github, + key = {L2O}, + howpublished = {GitHub repository at \url{https://github.com/KWARC/LaTeXML-Plugin-sTeX}}} +@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,14 +3602,14 @@ pubs = {mkohlhase,projects/omdoc}} 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}} @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 @@ pubs = {mkohlhase}} crossref = {UITP98}, pubs = {mkohlhase}} +@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 @@ pubs = {akohlhase}} 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}} +@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 @@ pubs = {mkohlhase}} 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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} type = {Self-documenting {\LaTeX} package}, year = stexyear} +@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}} +@techreport{Kohlhase:cmath:svn,crossref={Kohlhase:cmath:base}, + url = {https://github.com/KWARC/sTeX/raw/master/sty/cmath/cmath.pdf}} +@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 @@ pubs = {mkohlhase}} year = stexyear, url = {https://github.com/KWARC/sTeX/raw/master/sty/sproof/sproof.pdf}} +@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}} +@techreport{Kohlhase:mikoslides:svn,crossref={Kohlhase:mikoslides:base}, + url = {https://github.com/KWARC/sTeX/raw/master/sty/mikoslides/mikoslides.pdf}} +@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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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,23 +5772,23 @@ pubs = {mkohlhase}} year = stexyear} -@techreport{Kohlhase:assignment:ctan,crossref={Kohlhase:assignment:base}, +@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}} -@misc{Kohlhase:assignment*,crossref={Kohlhase:assignment:base}, - url = {https://github.com/KWARC/sTeX/raw/master/sty/assignment/assignment.pdf}} -@techreport{Kohlhase:assignment:base, +@misc{Kohlhase:hwexam*,crossref={Kohlhase:hwexam:base}, + url = {https://github.com/KWARC/sTeX/raw/master/sty/hwexam/hwexam.pdf}} +@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} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ pubs = {mkohlhase}} @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 @@ crossref = {OpenMathUIWiP2012}, url = {http://arxiv.org/abs/1404.6548}, pubs = {dginev}} +@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 @@ Sandro Wartzack}, urldate = {2014-04-21}, url = {http://mathhub.info/mh/glossary}} -@online{SMGloM:on, +@misc{SMGloM:URL,crossref={SMGloM:base},key={SMG}, + howpublished = {\url{http://smglom.mathhub.info}}, + note = {System home page seen 2014-04-21}} +@online{SMGloM:on,crossref={SMGloM:base}, label = {SMG}, + urldate = {2014-04-21}} +@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 @@ Sandro Wartzack}, pubs = {akohlhase}, note = {submitted to Mensch und Computer 2014}} -@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 @@ Sandro Wartzack}, crossref = {FGWM13}, pubs = {akohlhase,atoader, projects/sissi}} +@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 @@ Sandro Wartzack}, pubs = "projects/mathsearch, projects/sissi" } +@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}} + diff --git a/Master/texmf-dist/source/latex/stex/lib/make/Makefile.in b/Master/texmf-dist/source/latex/stex/lib/make/Makefile.in index c22fde38525..e3d989874c8 100644 --- a/Master/texmf-dist/source/latex/stex/lib/make/Makefile.in +++ b/Master/texmf-dist/source/latex/stex/lib/make/Makefile.in @@ -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 diff --git a/Master/texmf-dist/source/latex/stex/lib/make/Makefile.latex.in b/Master/texmf-dist/source/latex/stex/lib/make/Makefile.latex.in index 00d110343f5..282beb40d8a 100644 --- a/Master/texmf-dist/source/latex/stex/lib/make/Makefile.latex.in +++ b/Master/texmf-dist/source/latex/stex/lib/make/Makefile.latex.in @@ -17,8 +17,10 @@ $(TARGET.pdf) $(LTARGET.pdf): %.pdf: %.tex $(MODS) $(TARGET.parts) $(IMG) @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 diff --git a/Master/texmf-dist/source/latex/stex/lib/make/Makefile.vars b/Master/texmf-dist/source/latex/stex/lib/make/Makefile.vars index 3b9ae7eb4fd..55172aeb3e9 100644 --- a/Master/texmf-dist/source/latex/stex/lib/make/Makefile.vars +++ b/Master/texmf-dist/source/latex/stex/lib/make/Makefile.vars @@ -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 diff --git a/Master/texmf-dist/source/latex/stex/metakeys/metakeys.dtx b/Master/texmf-dist/source/latex/stex/metakeys/metakeys.dtx index 14a6705c67e..84ced73e5f6 100644 --- a/Master/texmf-dist/source/latex/stex/metakeys/metakeys.dtx +++ b/Master/texmf-dist/source/latex/stex/metakeys/metakeys.dtx @@ -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} % diff --git a/Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx b/Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx index 7d8d226146c..1fc76db644a 100644 --- a/Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx +++ b/Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx @@ -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@cls,prefix=mks@cls@} +\DeclareStringOption[article]{class} +\AddToKeyvalOption*{class}{\PassOptionsToClass{class=\mks@cls@class}{omdoc} + \ifdefstring{\mks@cls@class}{book}{\PassOptionsToPackage{topsect=part}{mikoslides}}{} + \ifdefstring{\mks@cls@class}{report}{\PassOptionsToPackage{topsect=part}{mikoslides}}}{} +\DeclareBoolOption{notes} +\DeclareComplementaryOption{slides}{notes} +\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{omdoc} + \PassOptionsToClass{\CurrentOption}{beamer} + \PassOptionsToPackage{\CurrentOption}{mikoslides}} +\ProcessKeyvalOptions{mks@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@mikoslides@mh@\@mikoslides@mh@false -\DeclareOption{mh}{\@mikoslides@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@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@sty,prefix=mks@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@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@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@mikoslides@mh@\RequirePackage{mikoslides-mh}\fi -\RequirePackage{stex} -\RequirePackage{smglom} -\RequirePackage{tikzinput} +\ifmks@sty@notes +\RequirePackage{a4wide} +\RequirePackage{marginnote} +\RequirePackage{xcolor} +\RequirePackage{mdframed} +\RequirePackage[noxcolor,noamsthm]{beamerarticle} +\fi +\ifmks@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@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@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@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@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@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@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@level{outer}% \def\itemize@outer{outer}% @@ -395,40 +448,55 @@ % \begin{macrocode} \newrobustcmd\frameimage[2][]{% \stepcounter{slide}% - \ifframeimages% + \ifmks@sty@frameimages% \def\Gin@ewidth{}\setkeys{Gin}{#1}% - \ifnotes% - \else% - \vfill% - \fi% + \ifmks@sty@notes\else\vfill\fi% \ifx\Gin@ewidth\@empty% \mycgraphics[width=\slidewidth,#1]{#2}\else\mycgraphics[#1]{#2}% \fi% \par\strut\hfill{\footnotesize Slide \arabic{slide}}% - \ifnotes% - \else% - \vfill% - \fi% + \ifmks@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@sty@notes\newcommand\pause{}\fi +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{nomtext} +% \begin{macrocode} +\ifmks@sty@notes\newenvironment{nomtext}[1][]{\begin{omtext}[#1]}{\end{omtext}}% +\else\excludecomment{nomtext}\fi% +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{nomgroup} +% \begin{macrocode} +\ifmks@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@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@small@dbend}{dangerous-bend} +\pgfdeclareimage[width=.8em]{miko@small@dbend}{dangerous-bend} \def\smalltextwarning{% \pgfuseimage{miko@small@dbend}% \xspace% }% -\pgfdeclareimage[width=1.5em]{miko@dbend}{dangerous-bend} +\pgfdeclareimage[width=1.2em]{miko@dbend}{dangerous-bend} \newrobustcmd\textwarning{% \raisebox{-.05cm}{\pgfuseimage{miko@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@part% - \newcounter{mpart}% - \newcounter{mchapter}% - \newcounter{msection}[mchapter]% - \else% - \newcounter{msection}% - \fi% - \newcounter{msubsection}[msection]% - \newcounter{msubsubsection}[msubsection]% - \newcounter{msubsubsubsection}[msubsubsection]% -\fi% ifsectocframes -% \end{macrocode} -% and then -% \begin{macrocode} -\ifnotes\else% only in slides - \renewenvironment{omgroup}[2][]{% - \metasetkeys{omgroup}{#1}\sref@target% - \advance\section@level by 1% - \ifsectocframes% - \begin{frame}% - \vfill\Large\centering% - \red{% - \ifcase\section@level\or% - \stepcounter{mpart}Part \Roman{mpart}\or% - \stepcounter{mchapter}Chapter \arabic{mchapter}\or - \stepcounter{msection}\if@part\arabic{mchapter}.\fi\arabic{msection}\or - \stepcounter{msubsection}\if@part\arabic{mchapter}.\fi\arabic{msection}.\arabic{msubsection}\or - \stepcounter{msubsubsection}\if@part\arabic{mchapter}.\fi\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}.\or - \stepcounter{msubsubsubsection}\if@part\arabic{mchapter}.\fi\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}.\arabic{msubsubsubsection}% - \fi% end ifcase - \quad #2% - }% - \vfill% - \end{frame}% - \fi %ifsectocframes - } - {\advance\section@level by -1}% -\fi% ifnotes +\ifmks@sty@sectocframes% +\ifdefstring\mks@sty@topsect{part}{% + \newcounter{mpart}\newcounter{mchapter}\newcounter{msection}[mchapter]} +{\ifdefstring\mks@sty@topsect{chapter}{% + \newcounter{mchapter}\newcounter{msection}[mchapter]} + {\newcounter{msection}}} +\newcounter{msubsection}[msection]% +\newcounter{msubsubsection}[msubsection]% +\newcounter{msubsubsubsection}[msubsubsection]% +\fi% ifsectocframes +% \end{macrocode} +% +% Now that we have defined the counters, we can load the \sTeX-specific packages (in +% particular |statements| that needs these counters). +% +% \begin{macrocode} +\RequirePackage{stex} +\RequirePackage{smglom} +\RequirePackage{tikzinput} +% \end{macrocode} +% +% Finally, we set the \DescribeMacro{\section@level}|\section@level| macro that governs +% sectioning. +% +% \begin{macrocode} +\section@level=2 +\ifdefstring{\mks@sty@topsect}{part}{\section@level=0}{} +\ifdefstring{\mks@sty@topsect}{chapter}{\section@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@num and omgroup@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@sty@notes\else% only in slides +\def\part@prefix{\ifdefstring\mks@sty@topsect{part}{\arabic{mchapter}.}{}} +\renewenvironment{omgroup}[2][]{% + \metasetkeys{omgroup}{#1}\sref@target% + \advance\section@level by 1% + \ifmks@sty@sectocframes% + \stepcounter{slide} + \begin{frame}[noframenumbering]% + \vfill\Large\centering% + \red{% + \ifcase\section@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@prefix\arabic{msection}} + \def\currentsectionlevel{section} + \or + \stepcounter{msubsection} + \def\@@label{\part@prefix\arabic{msection}.\arabic{msubsection}} + \def\currentsectionlevel{subsection} + \or + \stepcounter{msubsubsection} + \def\@@label{\part@prefix\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}} + \def\currentsectionlevel{subsubsection} + \or + \stepcounter{msubsubsubsection} + \def\@@label{\part@prefix\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}.\arabic{msubsubsubsection}} + \def\currentsectionlevel{subsubsubsection} + \fi% end ifcase + \@@label\sref@label@id\@@label + \quad #2% + }% + \vfill% + \end{frame}% + \fi %ifmks@sty@sectocframes +} +{\advance\section@level by -1}% +\fi% ifmks@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@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% -% \end{macrocode} -% Now, some things that are imported from the |pgf| and |beamer| packages: -% \begin{macrocode} +\fi% ifnotes % \end{macrocode} -% % % \begin{macrocode} -\ifproblems% +\ifmks@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 diff --git a/Master/texmf-dist/source/latex/stex/modules/modules.dtx b/Master/texmf-dist/source/latex/stex/modules/modules.dtx index b65107d2aa6..e3f9787873f 100644 --- a/Master/texmf-dist/source/latex/stex/modules/modules.dtx +++ b/Master/texmf-dist/source/latex/stex/modules/modules.dtx @@ -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@reqfalse} \newif\ifmod@qualified\mod@qualifiedfalse \DeclareOption{qualifiedimports}{\mod@qualifiedtrue} -\newif\if@mmt\@mmtfalse +\newif\if@trwarn\@trwarnfalse +\DeclareOption{trwarn}{\@trwarntrue} +\newif\if@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@modules@mh@\RequirePackage{modules-mh}\fi +\if@modules@mh@\RequirePackage{modules-mh}\fi \if@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@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@heading{% \stepcounter{module}% \ifmod@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@module|, then |\active@defs|, then |\g@addto@macro|. % \begin{macrocode} -\def\export@defs#1{% - \@ifundefined{mod@id}{}{% - \expandafter\expandafter\expandafter\g@addto@macro% - \expandafter\this@module\expandafter{\activate@defs{#1}}% - }% -}% +\def\export@defs#1{\@ifundefined{mod@id}{}{% +\expandafter\expandafter\expandafter\g@addto@macro% +\expandafter\this@module\expandafter{\activate@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@symdeflocal% \srefaddidkey{symdef}% \define@key{symdef}{local}[true]{\@symdeflocaltrue}% +\define@key{symdef}{noverb}[all]{}% +\define@key{symdef}{align}[WithTheSymbolOfTheSameName]{}% +\define@key{symdef}{specializes}{}% +\addmetakey*{symdef}{noalign}[true] \define@key{symdef}{primary}[true]{}% \define@key{symdef}{assocarg}{}% \define@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@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@component[1]{} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\mod@termref} % |\mod@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@termref#1#2#3{% - \def\@test{#3}% +\newcommand\mod@termref[3]{\def\@test{#3}% \@ifundefined{module@defs@#1}{% \protect\G@refundefinedtrue% - \@latex@warning{\protect\termref with unidentified cd "#1": the cd key must reference an active module}% - \def\@label{sref@#2@target}% - }% - {\def\@label{sref@#2@#1@target}}% - \@ifundefined{module@#1@path}% local reference - {\sref@hlink@ifh{\@label}{\ifx\@test\@empty #2\else #3\fi}}% - {\def\@uri{\csname module@#1@path\endcsname.pdf\#\@label}% - \sref@href@ifh{\@uri}{\ifx\@test\@empty #2\else #3\fi}}% + \if@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@component{#1}@target}% + \@ifundefined{module@#1@path}% local reference + {\sref@hlink@ifh{\@label}{\ifx\@test\@empty #2\else #3\fi}% +% \footnote{sTeX mod@termref: local reference to\\ \@label} + }% + {\def\@uri{\csname module@#1@path\endcsname\mod@component{#1}.pdf\#\@label}% + \sref@href@ifh{\@uri}{\ifx\@test\@empty #2\else #3\fi}% +% \footnote{sTeX mod@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@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: diff --git a/Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx b/Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx index 57bbdf2e3a5..5cc680fc252 100644 --- a/Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx +++ b/Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx @@ -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,38 +299,51 @@ % 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@class}|\omdoc@class| macro and pass on the macro to |omdoc.sty| -% for further processing. The |book| option also sets the \DescribeMacro{\ifclass@book} -% conditional to true for the frontmatter handling later. +% \DescribeMacro{\omdoc@cls@class}|\omdoc@cls@class| macro and pass on the macro to |omdoc.sty| +% for further processing. % % \begin{macrocode} %<*cls> -\def\omdoc@class{article} -\DeclareOption{report}{\def\omdoc@class{report}% - \PassOptionsToPackage{\CurrentOption}{omdoc} - \PassOptionsToPackage{\CurrentOption}{stex}} -\newif\ifclass@book\class@bookfalse -\DeclareOption{book}{\def\omdoc@class{book}\class@booktrue% - \PassOptionsToPackage{\CurrentOption}{omdoc} - \PassOptionsToPackage{\CurrentOption}{stex}} +\RequirePackage{etoolbox} +\RequirePackage{kvoptions} +\SetupKeyvalOptions{family=omdoc@cls,prefix=omdoc@cls@} +\DeclareStringOption[article]{class} +\AddToKeyvalOption*{class}{\PassOptionsToPackage{class=\omdoc@cls@class}{omdoc}} +% \end{macrocode} +% +% the following options are deprecated. +% +% \begin{macrocode} +\DeclareVoidOption{report}{\def\omdoc@cls@class{report}% +\ClassWarning{omdoc}{the option 'report' is deprecated, use 'class=report', instead}} +\DeclareVoidOption{book}{\def\omdoc@cls@class{book}% +\ClassWarning{omdoc}{the option 'part' is deprecated, use 'class=book', instead}} +\DeclareVoidOption{bookpart}{\def\omdoc@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@class} - \PassOptionsToPackage{\CurrentOption}{omdoc} - \PassOptionsToPackage{\CurrentOption}{stex}} -\ProcessOptions +\def\@omdoc@cls@docopt{} +\DeclareDefaultOption{% +\ifx\@omdoc@cls@docopt\@empty% +\xdef\@omdoc@cls@docopt{\CurrentOption}% +\else\xappto\@omdoc@cls@docopt{,\CurrentOption}% +\fi}% +\PassOptionsToPackage{\CurrentOption}{omdoc} +\PassOptionsToPackage{\CurrentOption}{stex} +\ProcessKeyvalOptions{omdoc@cls} % \end{macrocode} % % We load |article.cls|, and the desired packages. For the {\latexml} bindings, we make % sure the right packages are loaded. % % \begin{macrocode} -\LoadClass{\omdoc@class} -\RequirePackage{etoolbox} +\LoadClass[\@omdoc@cls@docopt]{\omdoc@cls@class} \RequirePackage{omdoc} \RequirePackage{stex} % \end{macrocode} @@ -319,7 +361,6 @@ \srefaddidkey{document} \newcommand\documentkeys[1]{\metasetkeys{document}{#1}} \let\orig@document=\document -\srefaddidkey{document} \renewcommand{\document}[1][]{\metasetkeys{document}{#1}\orig@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@level}|\section@level| macro later. +% (otherwise they stay false). % % \begin{macrocode} %<*package> -\newif\ifshow@ignores\show@ignoresfalse -\DeclareOption{showignores}{\show@ignorestrue} -\newcount\section@level\section@level=2 -\DeclareOption{report}{\section@level=0} -\DeclareOption{book}{\section@level=0} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}} -\ProcessOptions +\RequirePackage{kvoptions} +\SetupKeyvalOptions{family=omdoc@sty,prefix=omdoc@sty@} +\DeclareBoolOption{mh} +\DeclareStringOption[article]{class} +\DeclareBoolOption{showignores} +\DeclareStringOption[section]{topsect} +\newcount\section@level +\DeclareDefaultOption{\PassOptionsToPackage{\CurrentOption}{sref}} +\ProcessKeyvalOptions{omdoc@sty} % \end{macrocode} % % Then we need to set up the packages by requiring the |sref| package to be loaded. % % \begin{macrocode} +\ifomdoc@sty@mh\RequirePackage{omdoc-mh}\fi \RequirePackage{sref} \RequirePackage{xspace} \RequirePackage{comment} \RequirePackage{pathsuris} % \end{macrocode} +% +% Finally, we set the \DescribeMacro{\section@level}|\section@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@level=2 +\ifdefstring{\omdoc@sty@class}{book}{\section@level=0}{} +\ifdefstring{\omdoc@sty@class}{report}{\section@level=0}{} +\ifdefstring{\omdoc@sty@topsect}{part}{\section@level=0}{} +\ifdefstring{\omdoc@sty@topsect}{chapter}{\section@level=1}{} +% \end{macrocode} +% % \end{omgroup} % % \begin{omgroup}[id=sec:impl:struct]{Document Structure} @@ -400,14 +456,19 @@ % convenience macro: |\omgroup@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@label@id| to enable crossreferencing. % \begin{macrocode} \newcommand\omgroup@num[2]{% -\sref@label@id{\omdoc@sect@name~\@nameuse{the#1}}% -\ifx\omgroup@short\@empty\@nameuse{#1}{#2}% -\else\@ifundefined{rdfmeta@sectioning}{\@nameuse{#1}[\omgroup@short]{#2}}% -{\@nameuse{rdfmeta@#1@old}[\omgroup@short]{#2}}% -\fi} +\edef\@@ID{\sref@id} +\ifx\omgroup@short\@empty% no short title +\@nameuse{#1}{#2}% +\else% we have a short title +\@ifundefined{rdfmeta@sectioning}% + {\@nameuse{#1}[\omgroup@short]{#2}}% + {\@nameuse{rdfmeta@#1@old}[\omgroup@short]{#2}}% +\fi% +\sref@label@id@arg{\omdoc@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@frontmatter\@frontmatterfalse -\newif\if@backmatter\@backmatterfalse +\newif\if@mainmatter\@mainmattertrue \newcommand\at@begin@omgroup[3][]{} % \end{macrocode} % @@ -448,20 +508,25 @@ \if@@num% numbering not overridden by frontmatter, etc. \ifx\omdoc@sect@num\@true\omgroup@num{#2}{#3}\else\omgroup@nonum{#2}{#3}\fi% \def\current@section@level{\omdoc@sect@name}% -\else\omgroup@nonum{#2}{#3}\fi} +\else\omgroup@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 % extension sms is hard-coded here, but should not be. This will not work in multilingual % settings.} % \begin{macrocode} -\newcommand\omgroup@redefine@addtocontents[1]{\edef\@@import{#1}% -\@for\@I:=\@@import\do{\edef\@path{\csname module@\@I @path\endcsname}% -\@ifundefined{tf@toc}\relax{\protected@write\tf@toc{}{\string\@requiremodules{\@path}{sms}}}} +\newcommand\omgroup@redefine@addtocontents[1]{% +\edef\@@import{#1}% +\@for\@I:=\@@import\do{% +\edef\@path{\csname module@\@I @path\endcsname}% +\@ifundefined{tf@toc}\relax% + {\protected@write\tf@toc{}{\string\@requiremodules{\@path}{sms}}}} \ifx\hyper@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@target% \ifx\omgroup@display\st@flow\@@numfalse\fi -\if@frontmatter\@@numfalse\fi +\if@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@level|. % \begin{macrocode} -\advance\section@level by 1 +\advance\section@level by 1\relax% \ifcase\section@level% \or\omdoc@sectioning[name=Part,clear,num]{part}{#2}% \or\omdoc@sectioning[name=Chapter,clear,num]{chapter}{#2}% @@ -515,34 +580,44 @@ % \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@book -\renewenvironment{frontmatter} -{\@frontmattertrue\cleardoublepage\@mainmatterfalse\pagenumbering{roman}} -{\@frontmatterfalse\setcounter{page}{1}\pagenumbering{arabic}} -\else +\ifcsdef{frontmatter}% to redefine if necessary + {\cslet{orig@frontmatter}{\frontmatter}\cslet{frontmatter}{\relax}} + {\cslet{orig@frontmatter}{\clearpage\@mainmatterfalse\pagenumbering{roman}}} +\ifcsdef{backmatter}% to redefine if necessary + {\cslet{orig@backmatter}{\backmatter}\cslet{backmatter}{\relax}} + {\cslet{orig@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@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. -% \begin{macrocode} -\ifclass@book -\renewenvironment{backmatter} -{\cleardoublepage\@mainmatterfalse\@backmattertrue} -{\@backmatterfalse} -\else -\newenvironment{backmatter}{\@backmattertrue}{\@backmatterfalse} -\fi -%</cls> +% some classes (e.g. |book.cls|) already have a |\backmatter| macro. We use that +% (possibly defining it). +% \begin{macrocode} +\newenvironment{backmatter} +{\orig@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@ignores +\ifomdoc@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@Gvar@#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\useSGvar} +% use a global variable +% \begin{macrocode} +\newcommand\useSGvar[1]{\@nameuse{sTeX@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@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@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@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@Gvar kvoptions omdoc@cls,prefix book,topsect xappto omdoc@sty,prefix +% LocalWords: ifdefstring ifcsdef cslet diff --git a/Master/texmf-dist/source/latex/stex/omtext/omtext.dtx b/Master/texmf-dist/source/latex/stex/omtext/omtext.dtx index 15fef2612a2..c5cc4c0c20a 100644 --- a/Master/texmf-dist/source/latex/stex/omtext/omtext.dtx +++ b/Master/texmf-dist/source/latex/stex/omtext/omtext.dtx @@ -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. -% -% All index macros take an optional first argument that is used for ordering the -% respective entries in the index. +% 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 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@sblockquote{\begin{quote}\sl} \def\end@sblockquote{\end{quote}} \def\begin@@sblockquote#1{\begin@sblockquote} -\def\end@@sblockquote#1{\def\@@lec##1{{\rm ##1}}\@lec{#1}\end@sblockquote} +\def\end@@sblockquote#1{\def\@@lec##1{\textrm{##1}}\@lec{#1}\end@sblockquote} \newenvironment{sblockquote}[1][] {\def\@opt{#1}\ifx\@opt\@empty\begin@sblockquote\else\begin@@sblockquote\@opt\fi} {\ifx\@opt\@empty\end@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@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,7 +561,20 @@ \string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#2}!% \string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#3}!% \string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#4}% -\else #2!#3\fi% loadmodules +\else #2!#3!#4\fi% loadmodules +}{\thepage}}% +\endgroup\@esphack\fi}%ifindex +\newcommand\omdoc@indexiv[5][]{\ifindex% +\metasetkeys{omdoc@index}{#1}% +\@bsphack\begingroup\@sanitize% +\protected@write\@indexfile{}{\string\indexentry% +{\ifx\omdoc@index@at\@empty\else\omdoc@index@at @\fi% +\ifx\omdoc@index@loadmodules\@true% +\string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#2}!% +\string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#3}!% +\string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#4}% +\string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#5}% +\else #2!#3!#4!#5\fi% loadmodules }{\thepage}}% \endgroup\@esphack\fi}%ifindex % \end{macrocode} @@ -521,57 +582,34 @@ % % Now, we make two interface macros that make use of this: % -% \begin{macro}{\indexalt} -% \begin{macrocode} -\newcommand\indexalt[3][]{{#2}\omdoc@indexi[#1]{#3}} % word in text and index -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\indextoo} -% \begin{macrocode} -\newcommand\indextoo[2][]{{#2}\omdoc@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@indexii[#1]{#2}{#3}\omdoc@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{macro}{\*indi*} % \begin{macrocode} -\newcommand\@atwin[4][]{\omdoc@indexiii[#1]{#2}{#3}{#4}\omdoc@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 +\newcommand\aindi[3][]{{#2}\omdoc@indexi[#1]{#3}} +\newcommand\indi[2][]{{#2}\omdoc@indexi[#1]{#2}} +\newcommand\indis[2][]{{#2}\omdoc@indexi[#1]{#2s}} +\newcommand\Indi[2][]{{\captitalize{#2}}\omdoc@indexi[#1]{#2}} +\newcommand\Indis[2][]{{\capitalize{#2}}\omdoc@indexi[#1]{#2s}} + +\newcommand\@indii[3][]{\omdoc@indexii[#1]{#2}{#3}\omdoc@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@indexiii[#1]{#2}{#3}{#4}\omdoc@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@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} % \end{omgroup} @@ -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@squig}[2]{\reflectbox{$\m@th#1\rightsquigarrow$}}% \newcommand\ogre{\ensuremath{\mathrel{\mathpalette\reflect@squig\relax}}\xspace}% -%</package> +\newcommand\notergo{\ensuremath{\not\leadsto}} +\newcommand\notogre{\ensuremath{\not\mathrel{\mathpalette\reflect@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 diff --git a/Master/texmf-dist/source/latex/stex/presentation/presentation.dtx b/Master/texmf-dist/source/latex/stex/presentation/presentation.dtx index 97322a227d4..bc32a499ffa 100644 --- a/Master/texmf-dist/source/latex/stex/presentation/presentation.dtx +++ b/Master/texmf-dist/source/latex/stex/presentation/presentation.dtx @@ -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 @@ been set by \protect\setegroup before, e.g. by \protect\setegroup{an}{0}.}}% % \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@mrow#1\endx@mrow,} \def\x@mrow#1,{\x@mrow} @@ -1040,3 +1047,9 @@ been set by \protect\setegroup before, e.g. by \protect\setegroup{an}{0}.}}% % 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: diff --git a/Master/texmf-dist/source/latex/stex/problem/problem.dtx b/Master/texmf-dist/source/latex/stex/problem/problem.dtx index 546ca44273f..d46c7d028dc 100644 --- a/Master/texmf-dist/source/latex/stex/problem/problem.dtx +++ b/Master/texmf-dist/source/latex/stex/problem/problem.dtx @@ -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,14 +161,61 @@ % 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, % \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@problem@kw{Problem} \def\prob@solution@kw{Solution} % \end{macrocode} @@ -277,7 +330,8 @@ % \begin{macro}{\prob@number} % We consolidate the problem number into a reusable internal macro % \begin{macrocode} -\def\prob@number{\ifx\inclprob@refnum\@empty% +\newcommand\prob@number{% +\ifx\inclprob@refnum\@empty% if there is no outside refnumb \ifx\problem@refnum\@empty\prob@label\theproblem% \else\prob@label\problem@refnum\fi% \else\prob@label\inclprob@refnum\fi} @@ -317,7 +371,7 @@ \@in@omtexttrue% we are in a statement (for inline definitions) \stepcounter{problem}\record@problem% \def\current@section@level{\prob@problem@kw}% -\par\noindent\textbf\prob@heading\show@pts\show@min\rm\noindent\ignorespaces} +\par\noindent\textbf\prob@heading\show@pts\show@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@T}{T}{}{\mcc@Ttext}% +\ifcsstring{mcc@F}{F}{}{\mcc@Ftext}% +\ifx\mcc@feedback\@empty!\else, \mcc@feedback\fi% +\fi} %solutions +% \end{macrocode} +% \end{macro} +% % \subsection{Including Problems}\label{sec:impl:includeproblem} % % \begin{macro}{\includeproblem} diff --git a/Master/texmf-dist/source/latex/stex/rfdmeta/rdfmeta.dtx b/Master/texmf-dist/source/latex/stex/rfdmeta/rdfmeta.dtx index be6a8f25f3a..c2425516fe8 100644 --- a/Master/texmf-dist/source/latex/stex/rfdmeta/rdfmeta.dtx +++ b/Master/texmf-dist/source/latex/stex/rfdmeta/rdfmeta.dtx @@ -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@person & DCMPerson & dcm.sty\\\hline % dcm@institution & DCMInstitution & dcm.sty\\\hline % dcm@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@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} % diff --git a/Master/texmf-dist/source/latex/stex/smglom/smglom.dtx b/Master/texmf-dist/source/latex/stex/smglom/smglom.dtx index 6f01a92ae46..4063a66d03e 100644 --- a/Master/texmf-dist/source/latex/stex/smglom/smglom.dtx +++ b/Master/texmf-dist/source/latex/stex/smglom/smglom.dtx @@ -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,6 +77,50 @@ % 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 @@ -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@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@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@show\par\noindent structure import "#2" from module #3 \@@doit\fi% + \ignorespacesandpars} +{\aftergroup\@@doit\ifmod@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@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@currentrepos mh@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@show noindent aftergroup ignorespacesandparsafterend impl:relations +% LocalWords: impl:alignments newcommand begingroup catcode`_ gviewsig mhviewsig +% LocalWords: 3,topath gviewnl mhviewnl 4,topath gincludeview addmetakey diff --git a/Master/texmf-dist/source/latex/stex/smultiling/smultiling.dtx b/Master/texmf-dist/source/latex/stex/smultiling/smultiling.dtx index a8dfed285b5..8bf96302fc0 100644 --- a/Master/texmf-dist/source/latex/stex/smultiling/smultiling.dtx +++ b/Master/texmf-dist/source/latex/stex/smultiling/smultiling.dtx @@ -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,18 +29,23 @@ \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 % %\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,48 +181,61 @@ % 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 % 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,18 +244,37 @@ % {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,41 +293,52 @@ % \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}} % \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@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@multiling\endcsname{true}% +\ignorespacesandpars} {\end{module}\ignorespacesandparsafterend} % \end{macrocode} % \end{environment} % +% \begin{macro}{\mod@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@component[1]{% +\expandafter\ifx\csname mod@#1@multiling\endcsname\@true% +\@ifundefined{smultiling@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@language}% +\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sTeXlanguage} +% This macro sets the internal flag |\smultiling@language|, we set the default to |en|, +% since otherwise hyper-references on term references do not work. +% \begin{macrocode} +\newcommand\sTeXlanguage[1]{\def\smultiling@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@key{symi}{noverb}[all]{}% +\define@key{symi}{align}[WithTheSymbolOfTheSameName]{}% +\define@key{symi}{specializes}{}% +\define@key{symi}{noalign}[true]{}% \newcommand\symi{\@ifstar\@symi@star\@symi} -\newcommand\@symi[1]{\if@importing\else Symbol: \textsf{#1}\fi\ignorespacesandpars} -\newcommand\@symi@star[1]{\if@importing\else Primary Symbol: \textsf{#1}\fi\ignorespacesandpars} +\newcommand\@symi[2][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Symbol: \textsf{#2}\fi\ignorespacesandpars} +\newcommand\@symi@star[2][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Primary Symbol: \textsf{#2}\fi\ignorespacesandpars} \newcommand\symii{\@ifstar\@symii@star\@symii} -\newcommand\@symii[2]{\if@importing\else Symbol: \textsf{#1-#2}\fi\ignorespacesandpars} -\newcommand\@symii@star[2]{\if@importing\else Primary Symbol: \textsf{#1-#2}\fi\ignorespacesandpars} +\newcommand\@symii[3][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Symbol: \textsf{#2-#3}\fi\ignorespacesandpars} +\newcommand\@symii@star[3][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Primary Symbol: \textsf{#2-#3}\fi\ignorespacesandpars} \newcommand\symiii{\@ifstar\@symiii@star\@symiii} -\newcommand\@symiii[3]{\if@importing\else Symbol: \textsf{#1-#2-#3}\fi\ignorespacesandpars} -\newcommand\@symiii@star[3]{\if@importing\else Primary Symbol: \textsf{#1-#2-#3}\fi\ignorespacesandpars} +\newcommand\@symiii[4][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Symbol: \textsf{#2-#3-#4}\fi\ignorespacesandpars} +\newcommand\@symiii@star[4][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Primary Symbol: \textsf{#2-#3-#4}\fi\ignorespacesandpars} +\newcommand\symiv{\@ifstar\@symiv@star\@symiv} +\newcommand\@symiv[5][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Symbol: \textsf{#2-#3-#4-#5}\fi\ignorespacesandpars} +\newcommand\@symiv@star[5][]{\metasetkeys{symi}{#1}% + \if@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@language{#3}% \if@langfiles\importmodule[load=#2,ext=tex]{#2}\else \ifx\modnl@load\@empty\importmodule{#2}\else\importmodule[ext=tex,load=\modnl@load]{#2}\fi% \fi% @@ -384,36 +483,78 @@ % \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@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@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} % % \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 % |?|. % \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} @@ -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@language diff --git a/Master/texmf-dist/source/latex/stex/sproof/sproof.dtx b/Master/texmf-dist/source/latex/stex/sproof/sproof.dtx index 8224760461f..16f52260205 100644 --- a/Master/texmf-dist/source/latex/stex/sproof/sproof.dtx +++ b/Master/texmf-dist/source/latex/stex/sproof/sproof.dtx @@ -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,17 +351,17 @@ % 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 % imagine redefining an internal environment |spf@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@pst@label]% \fi% - \ifx\spf@title\@empty\else{(\stDMemph{\spf@title})}\fi% + \ifx\spf@title\@empty\else{(\stDMemph{\spf@title}) }\fi% \sref@label@id{\pst@label}\ignorespaces% }{% \next@pst@label\@in@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}% diff --git a/Master/texmf-dist/source/latex/stex/sref/sref.dtx b/Master/texmf-dist/source/latex/stex/sref/sref.dtx index e21e5beb2ca..6c3db26266e 100644 --- a/Master/texmf-dist/source/latex/stex/sref/sref.dtx +++ b/Master/texmf-dist/source/latex/stex/sref/sref.dtx @@ -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@label@id@arg} +% The |\sref@label@id@arg| writes a label definition for the second argument if it is +% defined. +% \begin{macrocode} +\newcommand\sref@label@id@arg[2]{% + \def\@@id{#2} + \ifx\@@id\@empty% + \relax% + \else% + \sref@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,14 +640,14 @@ \edef\@fallback{#3}% \ifcsundef{sref@#2@label}{% \ifx\@fallback\@empty% warn about undefined links and show a substitute - \protect\G@refundefinedtrue\@latex@warning{reference #2 undefined}% + \protect\G@refundefinedtrue\PackageWarning{sref}{reference #2 undefined}% \ifx\@linktext\@empty% ?#2?% \else% \@linktext% \fi% \else% - \protect\G@refundefinedtrue\@latex@warning{using fallback for undefined reference #2}% + \protect\G@refundefinedtrue\PackageWarning{sref}{using fallback for undefined reference #2}% \@fallback% \fi }{% @@ -656,7 +675,7 @@ % \begin{macrocode} \newcommand\sref@pageref[1]{% \ifcsundef{sref@#1@page}{% - \protect\G@refundefinedtrue\@latex@warning{reference #1 undefined}\sref@page@label{??}% + \protect\G@refundefinedtrue\PackageWarning{sref}{reference #1 undefined}\sref@page@label{??}% }{% \sref@hlink@ifh{sref@#1@target}{\sref@page@label{\@nameuse{sref@#1@page}}}% }% @@ -671,10 +690,10 @@ \newcommand\sref@href[3][]{% \edef\@linktext{#1}% \ifcsundef{sref@#2@label}{% - \protect\G@refundefinedtrue\@latex@warning{reference #2 undefined}??% + \protect\G@refundefinedtrue\PackageWarning{sref}{reference #2 undefined}??% }{% \ifcsundef{sref@#3@URI}{% - \protect\G@refundefinedtrue\@latex@warning{external refs of type #3 undefined}??% + \protect\G@refundefinedtrue\PackageWarning{sref}{external refs of type #3 undefined}??% }{% \edef\@uri{\@nameuse{sref@#3@URI}.pdf\#sref@#2@target}% \edef\@label{\ifx\@linktext\@empty\@nameuse{sref@#2@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} diff --git a/Master/texmf-dist/source/latex/stex/statements/statements.dtx b/Master/texmf-dist/source/latex/stex/statements/statements.dtx index 77966fa356c..3d839be5fbf 100644 --- a/Master/texmf-dist/source/latex/stex/statements/statements.dtx +++ b/Master/texmf-dist/source/latex/stex/statements/statements.dtx @@ -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,58 +366,76 @@ % 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} % \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@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,25 +635,34 @@ % % 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@index\def@indexfalse +\newif\ifdef@index\def@indexfalse \DeclareOption{defindex}{\def@indextrue} +\newif\if@nthm\@nthmtrue +\DeclareOption{nontheorem}{\@nthmfalse} +\newif\if@msection\@msectionfalse +\DeclareOption{msection}{\@msectiontrue} \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{omtext}} \ProcessOptions % \end{macrocode} % % 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@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@statement@env#1{% +\ifcsdef{#1}{\cslet{#1}{\relax}\cslet{end#1}{\relax}}{}% to redefine if necessary \newenvironment{#1}[1][]{\metasetkeys{omtext}{##1}\sref@target% \@in@omtexttrue% \ifx\omtext@display\st@flow\else% @@ -668,8 +709,8 @@ \ifx\sref@id\@empty\else\label{#1.\sref@id}\fi \csname st@#1@initialize\endcsname\fi% display \ifx\sref@id\@empty\sref@label@id{here}\else% -\sref@label@id{\STpresent{\csname ST#1EnvKeyword\endcsname}~\@currentlabel}\fi% -\ignorespaces} +\sref@label@id{\STpresent{\csname st@#1@kw\endcsname}~\@currentlabel}\fi% +\strut\ignorespaces} {\csname st@#1@terminate\endcsname\ifx\omtext@display\st@flow\else\end{ST#1Env}\fi% \omtext@post@skip\@in@omtextfalse}} % \end{macrocode} @@ -679,14 +720,18 @@ % \begin{macrocode} \newenvironment{assertion}[1][]{\metasetkeys{omtext}{#1}\sref@target% \@in@omtexttrue% -\ifx\omtext@display\st@flow\itshape\noindent\ignorespaces% +\ifx\omtext@display\st@flow + \itshape\noindent\ignorespaces% \else% display!=flow -\ifx\omtext@title\@empty\begin{ST\omtext@type AssEnv}% -\else\begin{ST\omtext@type AssEnv}[\omtext@title]\fi\fi% -\ifx\omtext@type\@empty\sref@label@id{here}\else% -\sref@label@id{\STpresent{\csname ST\omtext@type AssEnvKeyword\endcsname}~\@currentlabel} -\fi}%display=flow -{\ifx\omtext@display\st@flow\else\end{ST\omtext@type AssEnv}\@in@omtextfalse\fi} + \xdef\@@@type{\omtext@type}% to keep it safe from \inlinedef + \ifx\omtext@title\@empty\begin{ST\@@@type AssEnv}% + \else\begin{ST\@@@type AssEnv}[\omtext@title]% + \fi% +\fi %display=flow +\ifx\omtext@type\@empty\else% +\sref@label@id{\STpresent{\csname st@\@@@type @kw\endcsname}~\@currentlabel} +\fi} +{\ifx\omtext@display\st@flow\else\end{ST\@@@type AssEnv}\@in@omtextfalse\fi} % \end{macrocode} % \end{environment} % @@ -710,14 +755,25 @@ % \end{macro} % Then we configure the presentation of the theorem environments % \begin{macrocode} +\if@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@theorem@kw}[section] +\if@msection +\newtheorem{STtheoremAssEnv}{\st@theorem@kw}[msection] +\else +\ifdef{\thesection} +{\newtheorem{STtheoremAssEnv}{\st@theorem@kw}[section]} +{\newtheorem{STtheoremAssEnv}{\st@theorem@kw}} +\fi \newtheorem{STlemmaAssEnv}[STtheoremAssEnv]{\st@lemma@kw} \newtheorem{STpropositionAssEnv}[STtheoremAssEnv]{\st@proposition@kw} \newtheorem{STcorollaryAssEnv}[STtheoremAssEnv]{\st@corollary@kw} @@ -727,20 +783,17 @@ \newtheorem{STobligationAssEnv}[STtheoremAssEnv]{\st@obligation@kw} \newtheorem{STassumptionAssEnv}[STtheoremAssEnv]{\st@assumption@kw} \newtheorem{STobservationAssEnv}[STtheoremAssEnv]{\st@observation@kw} -\theorembodyfont{\rm} +\if@nthm\theorembodyfont{\rmfamily}\else\theoremstyle{definition}\fi \newtheorem{STremarkAssEnv}[STtheoremAssEnv]{\st@remark@kw} \newtheorem{STruleAssEnv}[STtheoremAssEnv]{\st@rule@kw} % \end{macrocode} % \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@example@initialize{}\def\st@example@terminate{} \define@statement@env{example} \def\st@example@kw{Example} -\theorembodyfont{\upshape} \newtheorem{STexampleEnv}[STtheoremAssEnv]{\st@example@kw} % \end{macrocode} % \end{environment} @@ -750,7 +803,6 @@ \def\st@axiom@initialize{}\def\st@axiom@terminate{} \define@statement@env{axiom} \def\st@axiom@kw{Axiom} -\theorembodyfont{\upshape} \newtheorem{STaxiomEnv}[STtheoremAssEnv]{\st@axiom@kw} % \end{macrocode} % \end{environment} @@ -794,7 +846,6 @@ % We first define a theorem environment % \begin{macrocode} \def\st@typedec@kw{Type Declaration} -\theorembodyfont{\upshape} \newtheorem{STtypedecEnv}[STtheoremAssEnv]{\st@typedec@kw} % \end{macrocode} % and then the environment itself. @@ -805,7 +856,7 @@ \ifx\omtext@title\@empty\begin{STtypedecEnv}\else\begin{STtypedecEnv}[\omtext@title]\fi% \ifx\sref@id\@empty\else\label{typedec.\sref@id}\fi \ifx\sref@id\@empty\sref@label@id{here}\else% -\sref@label@id{\STpresent{\csname STtypedecEnvKeyword\endcsname}~\@currentlabel}\fi% +\sref@label@id{\STpresent{\csname st@typedec@kw\endcsname}~\@currentlabel}\fi% \ignorespaces} {\ifx\omtext@display\st@flow\else\end{STtypedecEnv}\fi\omtext@post@skip} % \end{macrocode} @@ -816,15 +867,15 @@ % the |\st@indef| switch to suppress warnings from |\st@def@target|. % \begin{macrocode} \newif\ifst@indef\st@indeffalse +\ifcsdef{definition}{\cslet{definition}{\relax}\cslet{enddefinition}{\relax}}{}% to redefine if necessary \newenvironment{definition}[1][]{\metasetkeys{omtext}{#1}\sref@target\st@indeftrue% \ifx\omtext@display\st@flow\else% \ifx\omtext@title\@empty\begin{STdefinitionEnv}\else\begin{STdefinitionEnv}[\omtext@title]\fi\fi% \ifx\sref@id\@empty\sref@label@id{here}\else% -\sref@label@id{\STpresent{\csname STdefinitionEnvKeyword\endcsname}~\@currentlabel}\fi% +\sref@label@id{\STpresent{\csname st@definition@kw\endcsname}~\@currentlabel}\fi% \ignorespaces} {\ifx\omtext@display\st@flow\else\end{STdefinitionEnv}\fi} \def\st@definition@kw{Definition} -\theorembodyfont{\upshape} \newtheorem{STdefinitionEnv}[STtheoremAssEnv]{\st@definition@kw} % \end{macrocode} % \end{environment} @@ -838,27 +889,26 @@ \def\st@notation@initialize{} \define@statement@env{notation} \def\st@notation@kw{Notation} -\theorembodyfont{\upshape} \newtheorem{STnotationEnv}[STtheoremAssEnv]{\st@notation@kw} % \end{macrocode} % \end{environment} % % \begin{macro}{\st@def@target} % the next macro is a variant of the |\sref@target| macro provided by the |sref| package -% specialized for the use in the |\definiendum|, |\defi|, |\defii|, and |\defiii| -% macros. |\st@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@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@def@target[3]{\def\@symname{#1}\def\@verbname{#2}% +\newcommand\st@def@target[3]{\edef\@symname{#1}\def\@verbname{#2}% \ifst@indef% if we are in a definition or such \@ifundefined{mod@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@theory\@empty\mod@id\else\omtext@theory\fi}% @@ -866,15 +916,16 @@ can only be referenced when called in a module with id key}}% \defemph{\@ifundefined{sref@\@@name @\@@cd @defined}% {\expandafter\sref@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@showmeta\metakeys@show@keys{\@@cd}{name:\@@name}\fi}% -\else% st@indef +\else% st@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@indef % \end{macrocode} % \end{macro} @@ -897,8 +948,10 @@ Consider wrapping the defining phrase in a \protect\inlinedef}% % % \begin{macro}{\definiendum} % \begin{macrocode} -%\newcommand\definiendum[2][]{\st@def@target{#1}{#2}\@termdef[#1]{#2}{#2}} -\newcommand\definiendum[2][]{\st@def@target{#1}{#2}{#2}} +\addmetakey{definiendum}{name} +\addmetakey{definiendum}{lemma} +\newcommand\definiendum[2][]{\setkeys{definiendum}{#1}% +\st@def@target{\definiendum@name}{\definiendum@name}{#2}} % \end{macrocode} % \end{macro} % @@ -910,7 +963,7 @@ Consider wrapping the defining phrase in a \protect\inlinedef}% % \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 @@ Consider wrapping the defining phrase in a \protect\inlinedef}% % 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@def@target{#1}{#2}{#2}\def\@phrase{#2}\@defi} \newcommand\@defi[1][]{\ifdef@index\omdoc@indexi[#1]{\@phrase}\fi\xspace} -\newcommand\defis[2][]{\st@def@target{#1}{#2}{#2s}\def\@phrase{#2}\@defi} +\newcommand\defi[2][]{\metasetkeys{definiendum}{#1}% +\st@def@target{\definiendum@name}{#2}{#2}\def\@phrase{#2}\@defi} +\newcommand\defis[2][]{\metasetkeys{definiendum}{#1}% +\st@def@target{\definiendum@name}{#2}{#2s}\def\@phrase{#2}\@defi} +\newcommand\Defi[2][]{\metasetkeys{definiendum}{#1}% +\st@def@target{\definiendum@name}{#2}{\capitalize{#2}}\def\@phrase{#2}\@defi} +\newcommand\Defis[2][]{\metasetkeys{definiendum}{#1}% +\st@def@target{\definiendum@name}{#2}{\capitalize{#2s}}\def\@phrase{#2}\@defi} % \end{macrocode} % \end{macro} % @@ -928,35 +987,43 @@ Consider wrapping the defining phrase in a \protect\inlinedef}% % 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@def@target{#1}{#3}{#2}\@adefi} +\newcommand\adefi[3][]{\metasetkeys{definiendum}{#1}\def\@verb{#3}% +\st@def@target{\definiendum@name}{#3}{#2}\@adefi} \newcommand\@adefi[1][]{% \ifdef@index% -\ifx\@name\@empty\omdoc@indexi[#1]{\@verb}% -\else\omdoc@indexi[at=\@name,#1]{\@verb}\fi% +\ifx\definiendum@name\@empty\omdoc@indexi[#1]{\@verb}% +\else\omdoc@indexi[at=\definiendum@name,#1]{\@verb}\fi% \fi\xspace} % \end{macrocode} % \end{macro} % % \begin{macro}{\defii} % \begin{macrocode} -\newcommand\@defii[1][]{\ifdef@index\@twin[#1]{\@pone}{\@ptwo}\fi\xspace} -\newcommand\defii[3][]{\def\@pone{#2}\def\@ptwo{#3}% -\st@def@target{#1}{#2-#3}{#2 #3}\@defii} -\newcommand\defiis[3][]{\def\@pone{#2}\def\@ptwo{#3}% -\st@def@target{#1}{#2-#3}{#2 #3s}\@defii} +\newcommand\@defii[1][]{\ifdef@index\omdoc@indexii[#1]{\@pone}{\@ptwo}\fi\xspace} +\newcommand\defii[3][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}% +\st@def@target{\definiendum@name}{#2-#3}{#2 #3}\@defii} +\newcommand\defiis[3][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}% +\st@def@target{\definiendum@name}{#2-#3}{#2 #3s}\@defii} +\newcommand\Defii[3][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}% +\st@def@target{\definiendum@name}{#2-#3}{\capitalize{#2 #3}}\@defii} +\newcommand\Defiis[3][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}% +\st@def@target{\definiendum@name}{#2-#3}{\capitalize{#2 #3s}}\@defii} % \end{macrocode} % \end{macro} % % \begin{macro}{\adefii} % analogous to |\adefi| % \begin{macrocode} -\newcommand\adefii[4][]{\def\@name{#1}\def\@pone{#3}\def\@ptwo{#4}% -\st@def@target{#1}{#3-#4}{#2}\@adefii} +\newcommand\adefii[4][]{\metasetkeys{definiendum}{#1}\def\@pone{#3}\def\@ptwo{#4}% +\st@def@target{\definiendum@name}{#3-#4}{#2}\@adefii} \newcommand\@adefii[1][]{% \ifdef@index% -\ifx\@name\@empty\@twin[#1]{\@pone}{\@ptwo}% -\else\@twin[at=\@name,#1]{\@pone}{\@ptwo}\fi% +\ifx\definiendum@name\@empty\omdoc@indexii[#1]{\@pone}{\@ptwo}% +\else\omdoc@indexii[at=\definiendum@name,#1]{\@pone}{\@ptwo}\fi% \fi\xspace} % \end{macrocode} % \end{macro} @@ -964,22 +1031,62 @@ Consider wrapping the defining phrase in a \protect\inlinedef}% % \begin{macro}{\defiii} % similar to |\defii| % \begin{macrocode} -\newcommand\defiii[4][]{\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}% -\st@def@target{#1}{#2-#3-#4}{#2 #3 #4}\@defiii} -\newcommand\@defiii[1][]{\ifdef@index\@atwin[#1]{\@pone}{\@ptwo}{\@pthree}\fi\xspace} -\newcommand\defiiis[4][]{\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}% -\st@def@target{#1}{#2-#3-#4}{#2 #3 #4s}\@defiii} +\newcommand\@defiii[1][]{\ifdef@index\omdoc@indexiii[#1]{\@pone}{\@ptwo}{\@pthree}\fi\xspace} +\newcommand\defiii[4][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}% +\st@def@target{\definiendum@name}{#2-#3-#4}{#2 #3 #4}\@defiii} +\newcommand\defiiis[4][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}% +\st@def@target{\definiendum@name}{#2-#3-#4}{#2 #3 #4s}\@defiii} +\newcommand\Defiii[4][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}% +\st@def@target{\definiendum@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@def@target{\definiendum@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@def@target{#1}{#3-#4-#5}{#2}\@adefiii} +\newcommand\adefiii[5][]{\metasetkeys{definiendum}{#1}\def\@pone{#3}\def\@ptwo{#4}\def\@pthree{#5}% +\st@def@target{\definiendum@name}{#3-#4-#5}{#2}\@adefiii} \newcommand\@adefiii[1][]{% \ifdef@index% -\ifx\@name\@empty\@atwin[#1]{\@pone}{\@ptwo}{\@pthree}% -\else\@atwin[at=\@name,#1]{\@pone}{\@ptwo}{\@pthree}\fi% +\ifx\definiendum@name\@empty\omdoc@indexiii[#1]{\@pone}{\@ptwo}{\@pthree}% +\else\omdoc@indexiii[at=\definiendum@name,#1]{\@pone}{\@ptwo}{\@pthree}\fi% +\fi\xspace} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\defiv} +% similar to |\defiii| +% \begin{macrocode} +\newcommand\@defiv[1][]{\ifdef@index\omdoc@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@def@target{\definiendum@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@def@target{\definiendum@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@def@target{\definiendum@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@def@target{\definiendum@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@def@target{\definiendum@name}{#3-#4-#5-#6}{#2}\@adefiv} +\newcommand\@adefiv[1][]{% +\ifdef@index% +\ifx\definiendum@name\@empty\@indiv[#1]{\@pone}{\@ptwo}{\@pthree}{\@ptfour}% +\else\@indiv[at=\definiendum@name,#1]{\@pone}{\@ptwo}{\@pthree}{\@ptfour}\fi% \fi\xspace} % \end{macrocode} % \end{macro} @@ -1003,7 +1110,7 @@ Consider wrapping the defining phrase in a \protect\inlinedef}% \newcommand\inlinedef[2][]{\metasetkeys{omtext}{#1}% \if@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@target\sref@label@id{here}\st@indeftrue #2} @@ -1025,15 +1132,16 @@ whatever is suitable semantically}\fi% \addmetakey*{termref}{name} \addmetakey*{termref}{role} \newcommand\termref[2][]{\metasetkeys{termref}{#1}% - \ifx\termref@cd\@empty\def\termref@cd{\mod@id}\fi% - \ifx\termref@name\@empty\def\termref@name{#2}\fi% - \@ifundefined{sref@\termref@name @\termref@cd @defined} - {\ifx\termref@cdbase\@empty% external reference - \mod@termref\termref@cd\termref@name{#2}% - \else\sref@href@ifh\termref@cdbase{#2}% - \fi}% - {\sref@hlink@ifh{sref@\termref@name @\termref@cd @target}{#2}}% -} +\ifx\termref@cd\@empty\def\termref@cd{\mod@id}\fi% +\ifx\termref@name\@empty\def\termref@name{#2}\fi% +\@ifundefined{sref@\termref@name @\termref@cd @defined}% +{\ifx\termref@cdbase\@empty% external reference +\mod@termref\termref@cd\termref@name{#2}% +\else\sref@href@ifh\termref@cdbase{#2}% +\fi}% +{\def\@label{sref@\termref@name @\termref@cd @target}% +\sref@hlink@ifh\@label{#2}%\footnote{termref: internal reference to \@label} +}} % \end{macrocode} % \end{macro} % @@ -1043,6 +1151,7 @@ whatever is suitable semantically}\fi% \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,9 +1160,24 @@ whatever is suitable semantically}\fi% \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} % @@ -1125,49 +1249,56 @@ whatever is suitable semantically}\fi% % \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 % 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@flow % 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@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: diff --git a/Master/texmf-dist/source/latex/stex/stex/stex.dtx b/Master/texmf-dist/source/latex/stex/stex/stex.dtx index 5fa948d9203..bec4f38373c 100644 --- a/Master/texmf-dist/source/latex/stex/stex/stex.dtx +++ b/Master/texmf-dist/source/latex/stex/stex/stex.dtx @@ -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,19 +125,19 @@ % 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. % \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,14 +575,14 @@ % 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 % 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> diff --git a/Master/texmf-dist/source/latex/stex/structview/structview.dtx b/Master/texmf-dist/source/latex/stex/structview/structview.dtx index d16ad8b9b0f..c87f5924648 100644 --- a/Master/texmf-dist/source/latex/stex/structview/structview.dtx +++ b/Master/texmf-dist/source/latex/stex/structview/structview.dtx @@ -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,21 +28,28 @@ \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 % % \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@show\ensuremath{#2\mapsto #3}, \fi}% +\newrobustcmd\fassign[4][]{\ifmod@show \ensuremath{#3(#2)\mapsto #4}, \fi}% +\newrobustcmd\tassign[3][]{\ifmod@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@show\par\noindent importing module #2 via \@@doit\fi% +\newenvironment{sstructure}[3][]{% + \gdef\@@doit{\importmodule[#1]{#3}}% + \ifmod@show\par\noindent importing module #3 via \@@doit\fi% }{% \aftergroup\@@doit\ifmod@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@show\ensuremath{#2\mapsto #3}, \fi}% -\newrobustcmd\tassign[3][]{\ifmod@show #2\ensuremath{\mapsto} #3, \fi}% -\newrobustcmd\fassign[4][]{\ifmod@show \ensuremath{#3\mapsto #4}, \fi}% -\newrobustcmd\ttassign[3][]{\ifmod@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@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@heading[4]{% \if@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@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@from]{#1}{\view@ext}% - \@importmodule[\view@to]{#2}{\view@ext}% + \@importmodule[\view@loadfrom]{#1}{\view@ext}% + \@importmodule[\view@loadto]{#2}{\view@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@target% - \begin{@view}{#2}{#3}% - \view@heading{#2}{#3}{\view@display}{\view@title}% -}{% - \end{@view}% -}% -\ifmod@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,9 +405,22 @@ %</package> % \end{macrocode} % \end{macro} +% % \Finale \endinput %%% Local Variables: %%% 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@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 diff --git a/Master/texmf-dist/source/latex/stex/tikzinput/tikzinput.dtx b/Master/texmf-dist/source/latex/stex/tikzinput/tikzinput.dtx index 73b26eac8c3..278f82fa093 100644 --- a/Master/texmf-dist/source/latex/stex/tikzinput/tikzinput.dtx +++ b/Master/texmf-dist/source/latex/stex/tikzinput/tikzinput.dtx @@ -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@image \newcommand\tikzinput[2][]{\includegraphics[#1]{#2}} \else -\newcommand\tikzinput[2][]{\input{#2}} +\newcommand\tikzinput[2][]{\setkeys{Gin}{#1}% +\ifx\Gin@ewidth\Gin@exclamation +\ifx\Gin@eheight\Gin@exclamation\input{#2}\else\resizebox{!}{\Gin@eheight}{\input{#2}}\fi +\else +\ifx\Gin@eheight\Gin@exclamation\resizebox{\Gin@ewidth}{!}{\input{#2}} +\else\resizebox{\Gin@ewidth}{\Gin@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} diff --git a/Master/texmf-dist/source/latex/stex/workaddress/workaddress.dtx b/Master/texmf-dist/source/latex/stex/workaddress/workaddress.dtx index d3fa2fb6b37..e3cb1f717e2 100644 --- a/Master/texmf-dist/source/latex/stex/workaddress/workaddress.dtx +++ b/Master/texmf-dist/source/latex/stex/workaddress/workaddress.dtx @@ -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@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@ref@test} -% This macro tests whether the information specified is defined, and gives an error -% message else. -% \begin{macrocode} -\def\wa@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@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@ref0| fails +% silently (no output, no message), |\waref1| raises a warning but outputs nothing, and +% |\wa@ref2{|\meta{a}|}{|\meta{b}|}{|\meta{c}|}| raises a warning and outputs +% |?|\meta{a}|?|\meta{b}|?|\meta{b}|?|, Finally |\wa@ref3| gives an error and aborts. % \begin{macrocode} -\def\wa@ref#1#2#3{% - \wa@ref@test{#1}{#2}{#3}% - \csname wa@#1@#2@#3\endcsname% -}% +\newcommand\wa@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@ref#1 not defined}{} + \fi + }{\csname wa@#2@#3@#4\endcsname}}% % \end{macrocode} % \end{macro} % @@ -272,7 +279,7 @@ \newcommand\WAperson[2][]{% \metasetkeys{wa@person}{#1}% \ifx\wa@person@id\@empty% - \@latex@warning{key 'id' undefined in WAperson}% + \PackageWarning{workaddress}{key 'id' undefined in WAperson}% \else% \wa@def{person}\wa@person@id{id}{\wa@person@id}% redundant, but useful for checking \wa@def{person}\wa@person@id{name}{#2} @@ -334,7 +341,7 @@ \newcommand\WAinstitution[2][]{% \metasetkeys{wa@institution}{#1}% \ifx\wa@institution@id\@empty% - \@latex@warning{key 'id' undefined in WAinstitution}% + \PackageWarning{workaddress}{key 'id' undefined in WAinstitution}% \else% \wa@def{institution}\wa@institution@id{id}{\wa@institution@id}% redundant, but useful for checking \wa@def{institution}\wa@institution@id{name}{#2} @@ -382,16 +389,16 @@ \def\@depts{}% \def\@urls{}% \@for\@I:=#2\do{% - \xdef\@authors{\@authors&\wa@ref{person}\@I{name}} - \xdef\@@dept{\wa@ref{person}\@I{department}} + \xdef\@authors{\@authors&\wa@ref2{person}\@I{name}} + \xdef\@@dept{\wa@ref1{person}\@I{department}} \xdef\@shortname{\csname wa@institution@\@@dept @shortname\endcsname} - \xdef\@dept{\ifx\@shortname\@empty\wa@ref{institution}\@@dept{name}\else\@shortname\fi} + \xdef\@dept{\ifx\@shortname\@empty\wa@ref0{institution}\@@dept{name}\else\@shortname\fi} \xdef\@depts{\@depts&\@dept} - \xdef\@@aff{\wa@ref{person}\@I{affiliation}} + \xdef\@@aff{\wa@ref0{person}\@I{affiliation}} \xdef\@shortname{\csname wa@institution@\@@aff @shortname\endcsname} - \xdef\@aff{\ifx\@shortname\@empty\wa@ref{institution}\@@aff{name}\else\@shortname\fi} + \xdef\@aff{\ifx\@shortname\@empty\wa@ref0{institution}\@@aff{name}\else\@shortname\fi} \xdef\@affs{\@affs&\@aff} - \xdef\@urls{\@urls&\wa@ref{person}\@I{url}} + \xdef\@urls{\@urls&\wa@ref0{person}\@I{url}} }% \message{\theauthors authors: \@authors}% }% @@ -407,21 +414,21 @@ % % \begin{macro}{\wapname} % \begin{macrocode} -\newcommand\wapname[1]{\wa@ref{person}{#1}{name}} +\newcommand\wapname[1]{\wa@ref3{person}{#1}{name}} % \end{macrocode} % \end{macro} % % \begin{macro}{\waptname} % \begin{macrocode} -\newcommand\waptname[1]{\wa@ref{person}{#1}{personaltitle} \wa@ref{person}{#1}{name}} +\newcommand\waptname[1]{\wa@ref3{person}{#1}{personaltitle} \wa@ref3{person}{#1}{name}} % \end{macrocode} % \end{macro} % % \begin{macro}{\wa@institution@logo} % \begin{macrocode} \newcommand\wa@institution@logo[2][]{% - \IfFileExists{\wa@ref{institution}{#2}{logo}}{% - \includegraphics{\wa@ref{institution}{#2}{logo}}% + \IfFileExists{\wa@ref2{institution}{#2}{logo}}{% + \includegraphics{\wa@ref2{institution}{#2}{logo}}% }{% \fbox{#2 logo}\message{still need logo for #2}% }% diff --git a/Master/texmf-dist/tex/latex/stex/cmath/cmath.sty b/Master/texmf-dist/tex/latex/stex/cmath/cmath.sty index 86e08c6ad77..b34e72973b0 100644 --- a/Master/texmf-dist/tex/latex/stex/cmath/cmath.sty +++ b/Master/texmf-dist/tex/latex/stex/cmath/cmath.sty @@ -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} diff --git a/Master/texmf-dist/tex/latex/stex/dcm/dcm.sty b/Master/texmf-dist/tex/latex/stex/dcm/dcm.sty index 5b5cfb013d1..64343862c27 100644 --- a/Master/texmf-dist/tex/latex/stex/dcm/dcm.sty +++ b/Master/texmf-dist/tex/latex/stex/dcm/dcm.sty @@ -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@ref@test{person}\@I{id}} +\def\DCMcreators#1{\@for\@I:=#1\do{\wa@ref1{person}\@I{id}} \gdef\dcm@creators{#1}} -\def\DCMcontributors#1{\@for\@I:=#1\do{\wa@ref@test{person}\@I{id}}% +\def\DCMcontributors#1{\@for\@I:=#1\do{\wa@ref1{person}\@I{id}}% \def\dcm@contributors{#1}} \def\DCMtitle#1{\def\dcm@title{#1}\providecommand{\dcm@shorttitle}{#1}} \def\dcm@subtitle{} @@ -82,7 +82,6 @@ T\ifnum\count1>9\else0\fi\the\count1:\ifnum\count3>9\else0\fi\the\count3:00Z} \def\dcm@subsection@heading{Subsection} \def\dcm@subsubsection@heading{Subsubsection} \def\dcm@paragraph@heading{Paragraph} -\def\omdoc{OMDoc} \endinput %% %% End of file `dcm.sty'. diff --git a/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.cls b/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.cls index 44aa7616d1b..d436118c072 100644 --- a/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.cls +++ b/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.cls @@ -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} diff --git a/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.sty b/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.sty index 2d2d29157a6..5c0e175cf0a 100644 --- a/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.sty +++ b/Master/texmf-dist/tex/latex/stex/hwexam/hwexam.sty @@ -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@hwexam@mh@\@hwexam@mh@false \DeclareOption{mh}{\@hwexam@mh@true} \newif\iftest\testfalse @@ -20,9 +20,18 @@ \if@hwexam@mh@\RequirePackage{hwexam-mh}\fi \RequirePackage{problem} \AfterBabelLanguage{ngerman}{\input{hwexam-ngerman.ldf}} +\AfterBabelLanguage{arabic}{\input{hwexam-arabic.ldf}} \newcommand\hwexam@assignment@kw{Assignment} \newcommand\hwexam@given@kw{Given} \newcommand\hwexam@due@kw{Due} +\newcommand\hwexam@testemptypage@kw{This page was intentionally left blank for extra + space}% +\newcommand\correction@probs@kw{prob.}% +\newcommand\correction@pts@kw{total}% +\newcommand\correction@reached@kw{reached}% +\newcommand\correction@sum@kw{Sum}% +\newcommand\correction@grade@kw{grade}% +\newcommand\correction@forgrading@kw{To be used for grading, do not write here} \newcounter{assignment} \numberproblemsin{assignment} \renewcommand\prob@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@heading@duration\@empty\testheading@min minutes\else\testheading@duration\fi +\ifx\testheading@duration\@empty\testheading@min minutes\else\testheading@duration\fi (sharp) for the test}};\\ Write the solutions to the sheet.}\par\noindent \newcount\check@time\check@time=\testheading@min @@ -168,8 +177,7 @@ bonus points. \vfill {\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@testemptypage@kw\end{center}\vfill\eject\else\fi} \renewcommand\@problem[3]{\stepcounter{assignment@probs} \def\@@pts{#2}\ifx\@@pts\@empty\else\addtocounter{assignment@totalpts}{#2}\fi \def\@@min{#3}\ifx\@@min\@empty\else\addtocounter{assignment@totalmin}{#3}\fi @@ -179,17 +187,19 @@ bonus points. \vfill \newcounter{assignment@probs} \newcounter{assignment@totalpts} \newcounter{assignment@totalmin} -\newcommand\correction@probs{prob.}% -\newcommand\correction@pts{total}% -\newcommand\correction@reached{reached}% +\def\correction@probs{\correction@probs@kw}% +\def\correction@pts{\correction@pts@kw}% +\def\correction@reached{\correction@reached@kw}% +\def\after@correction@table{}% \stepcounter{assignment@probs} \newcommand\correction@table{\begin{tabular}{|l|*{\theassignment@probs}{c|}|l|}\hline% &\multicolumn{\theassignment@probs}{c||}%| -{\footnotesize To be used for grading, do not write here} &\\\hline -\correction@probs & Sum & grade\\\hline +{\footnotesize\correction@forgrading@kw} &\\\hline +\correction@probs & \correction@sum@kw & \correction@grade@kw\\\hline \correction@pts &\theassignment@totalpts & \\\hline \correction@reached & & \\[.7cm]\hline -\end{tabular}} +\end{tabular} +\ifx\after@correction@table\@empty\else\strut\par\noindent\after@correction@table\fi} \endinput %% %% End of file `hwexam.sty'. diff --git a/Master/texmf-dist/tex/latex/stex/metakeys/metakeys.sty b/Master/texmf-dist/tex/latex/stex/metakeys/metakeys.sty index 6e5f99abb5c..ac2304e9f0e 100644 --- a/Master/texmf-dist/tex/latex/stex/metakeys/metakeys.sty +++ b/Master/texmf-dist/tex/latex/stex/metakeys/metakeys.sty @@ -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@showmeta\metakeys@showmetafalse \DeclareOption{showmeta}{\metakeys@showmetatrue} \DeclareOption*{} diff --git a/Master/texmf-dist/tex/latex/stex/mikoslides/beamerthemeJacobs.sty b/Master/texmf-dist/tex/latex/stex/mikoslides/beamerthemeJacobs.sty index ac3fdde35c4..2581f00c04c 100644 --- a/Master/texmf-dist/tex/latex/stex/mikoslides/beamerthemeJacobs.sty +++ b/Master/texmf-dist/tex/latex/stex/mikoslides/beamerthemeJacobs.sty @@ -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@descriptionwidth=1cm diff --git a/Master/texmf-dist/tex/latex/stex/mikoslides/mikoaffiliation.sty b/Master/texmf-dist/tex/latex/stex/mikoslides/mikoaffiliation.sty deleted file mode 100644 index 3004b99b7ba..00000000000 --- a/Master/texmf-dist/tex/latex/stex/mikoslides/mikoaffiliation.sty +++ /dev/null @@ -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}} diff --git a/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls b/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls index e678b2e8cef..fab70a55370 100644 --- a/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls +++ b/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls @@ -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@cls,prefix=mks@cls@} +\DeclareStringOption[article]{class} +\AddToKeyvalOption*{class}{\PassOptionsToClass{class=\mks@cls@class}{omdoc} + \ifdefstring{\mks@cls@class}{book}{\PassOptionsToPackage{topsect=part}{mikoslides}}{} + \ifdefstring{\mks@cls@class}{report}{\PassOptionsToPackage{topsect=part}{mikoslides}}}{} +\DeclareBoolOption{notes} +\DeclareComplementaryOption{slides}{notes} +\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{omdoc} + \PassOptionsToClass{\CurrentOption}{beamer} + \PassOptionsToPackage{\CurrentOption}{mikoslides}} +\ProcessKeyvalOptions{mks@cls} +\ifmks@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 diff --git a/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.sty b/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.sty index 75d40a942ee..cd19d98152b 100644 --- a/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.sty +++ b/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.sty @@ -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@mikoslides@mh@\@mikoslides@mh@false -\DeclareOption{mh}{\@mikoslides@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@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@sty,prefix=mks@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@mikoslides@mh@\RequirePackage{mikoslides-mh}\fi -\RequirePackage{stex} -\RequirePackage{smglom} -\RequirePackage{tikzinput} +\ProcessKeyvalOptions{mks@sty} +\ifmks@sty@notes +\RequirePackage{a4wide} +\RequirePackage{marginnote} +\RequirePackage{xcolor} +\RequirePackage{mdframed} +\RequirePackage[noxcolor,noamsthm]{beamerarticle} +\fi +\ifmks@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@sty@notes +\RequirePackage[bookmarks,bookmarksopen,bookmarksnumbered,breaklinks, +linkcolor=black,citecolor=black,urlcolor=cyan,filecolor=cyan,colorlinks]{hyperref} +\fi +\RequirePackage{metakeys} +\ifmks@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@sty@notes% \renewenvironment{note}{\ignorespaces}{}% \else% \excludecomment{note}% \fi% -\ifnotes +\newcommand\ninputref[2][]{\ifmks@sty@notes\inputref[#1]{#2}\fi} +\ifmks@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@sty@frameimages% \def\Gin@ewidth{}\setkeys{Gin}{#1}% - \ifnotes% - \else% - \vfill% - \fi% + \ifmks@sty@notes\else\vfill\fi% \ifx\Gin@ewidth\@empty% \mycgraphics[width=\slidewidth,#1]{#2}\else\mycgraphics[#1]{#2}% \fi% \par\strut\hfill{\footnotesize Slide \arabic{slide}}% - \ifnotes% - \else% - \vfill% - \fi% + \ifmks@sty@notes\else\vfill\fi% \fi% }% ifframeimages +\ifmks@sty@notes\newcommand\pause{}\fi +\ifmks@sty@notes\newenvironment{nomtext}[1][]{\begin{omtext}[#1]}{\end{omtext}}% +\else\excludecomment{nomtext}\fi% +\ifmks@sty@notes\newenvironment{nomgroup}[2][]{\begin{omgroup}[#1]{#2}}{\end{omgroup}}% +\else\excludecomment{nomgroup}\fi% \newlength{\slidelogoheight} -\ifnotes% +\ifmks@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@small@dbend}{dangerous-bend} +\pgfdeclareimage[width=.8em]{miko@small@dbend}{dangerous-bend} \def\smalltextwarning{% \pgfuseimage{miko@small@dbend}% \xspace% }% -\pgfdeclareimage[width=1.5em]{miko@dbend}{dangerous-bend} +\pgfdeclareimage[width=1.2em]{miko@dbend}{dangerous-bend} \newrobustcmd\textwarning{% \raisebox{-.05cm}{\pgfuseimage{miko@dbend}}% \xspace% @@ -186,45 +204,76 @@ \newrobustcmd\putat[2]{% \begin{picture}(0,0)\put(#1){#2}\end{picture}% }% -\ifsectocframes% - \if@part% - \newcounter{mpart}% - \newcounter{mchapter}% - \newcounter{msection}[mchapter]% - \else% - \newcounter{msection}% - \fi% - \newcounter{msubsection}[msection]% - \newcounter{msubsubsection}[msubsection]% - \newcounter{msubsubsubsection}[msubsubsection]% +\ifmks@sty@sectocframes% +\ifdefstring\mks@sty@topsect{part}{% + \newcounter{mpart}\newcounter{mchapter}\newcounter{msection}[mchapter]} +{\ifdefstring\mks@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@target% - \advance\section@level by 1% - \ifsectocframes% - \begin{frame}% - \vfill\Large\centering% - \red{% - \ifcase\section@level\or% - \stepcounter{mpart}Part \Roman{mpart}\or% - \stepcounter{mchapter}Chapter \arabic{mchapter}\or - \stepcounter{msection}\if@part\arabic{mchapter}.\fi\arabic{msection}\or - \stepcounter{msubsection}\if@part\arabic{mchapter}.\fi\arabic{msection}.\arabic{msubsection}\or - \stepcounter{msubsubsection}\if@part\arabic{mchapter}.\fi\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}.\or - \stepcounter{msubsubsubsection}\if@part\arabic{mchapter}.\fi\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}.\arabic{msubsubsubsection}% - \fi% end ifcase - \quad #2% - }% - \vfill% - \end{frame}% - \fi %ifsectocframes - } - {\advance\section@level by -1}% -\fi% ifnotes +\RequirePackage{stex} +\RequirePackage{smglom} +\RequirePackage{tikzinput} +\section@level=2 +\ifdefstring{\mks@sty@topsect}{part}{\section@level=0}{} +\ifdefstring{\mks@sty@topsect}{chapter}{\section@level=1}{} +\ifmks@sty@notes\else% only in slides +\def\part@prefix{\ifdefstring\mks@sty@topsect{part}{\arabic{mchapter}.}{}} +\renewenvironment{omgroup}[2][]{% + \metasetkeys{omgroup}{#1}\sref@target% + \advance\section@level by 1% + \ifmks@sty@sectocframes% + \stepcounter{slide} + \begin{frame}[noframenumbering]% + \vfill\Large\centering% + \red{% + \ifcase\section@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@prefix\arabic{msection}} + \def\currentsectionlevel{section} + \or + \stepcounter{msubsection} + \def\@@label{\part@prefix\arabic{msection}.\arabic{msubsection}} + \def\currentsectionlevel{subsection} + \or + \stepcounter{msubsubsection} + \def\@@label{\part@prefix\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}} + \def\currentsectionlevel{subsubsection} + \or + \stepcounter{msubsubsubsection} + \def\@@label{\part@prefix\arabic{msection}.\arabic{msubsection}.\arabic{msubsubsection}.\arabic{msubsubsubsection}} + \def\currentsectionlevel{subsubsubsection} + \fi% end ifcase + \@@label\sref@label@id\@@label + \quad #2% + }% + \vfill% + \end{frame}% + \fi %ifmks@sty@sectocframes +} +{\advance\section@level by -1}% +\fi% ifmks@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@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@sty@noproblems% \newenvironment{problems}{}{}% \else% \excludecomment{problems}% diff --git a/Master/texmf-dist/tex/latex/stex/modules/modules.sty b/Master/texmf-dist/tex/latex/stex/modules/modules.sty index 25310cc8cfe..e2b6f5a4467 100644 --- a/Master/texmf-dist/tex/latex/stex/modules/modules.sty +++ b/Master/texmf-dist/tex/latex/stex/modules/modules.sty @@ -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@modules@mh@\@modules@mh@false \DeclareOption{mh}{\@modules@mh@true} \newif\ifmod@show\mod@showfalse @@ -16,6 +16,8 @@ \DeclareOption{noauxreq}{\aux@reqfalse} \newif\ifmod@qualified\mod@qualifiedfalse \DeclareOption{qualifiedimports}{\mod@qualifiedtrue} +\newif\if@trwarn\@trwarnfalse +\DeclareOption{trwarn}{\@trwarntrue} \newif\if@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@key{module}{id}{% \edef\this@module{% \expandafter\noexpand\csname module@defs@#1\endcsname% @@ -45,7 +49,7 @@ \fi% \def\mod@id{#1}% }% -\newcounter{module}[section]% +\ifdef{\thesection}{\newcounter{module}[section]}{\newcounter{module}}% \newrobustcmd\module@heading{% \stepcounter{module}% \ifmod@show% @@ -73,12 +77,9 @@ \ifcsundef{module@#1@activated}{\csname module@defs@#1\endcsname}{}% \@namedef{module@#1@activated}{true}% }% -\def\export@defs#1{% -\@ifundefined{mod@id}{}{% +\def\export@defs#1{\@ifundefined{mod@id}{}{% \expandafter\expandafter\expandafter\g@addto@macro% - \expandafter\this@module\expandafter{\activate@defs{#1}}% -}% -}% +\expandafter\this@module\expandafter{\activate@defs{#1}}}}% \newif\if@importing\@importingfalse \newcommand\update@used@modules[1]{% \ifx\used@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@symdeflocal% \srefaddidkey{symdef}% \define@key{symdef}{local}[true]{\@symdeflocaltrue}% +\define@key{symdef}{noverb}[all]{}% +\define@key{symdef}{align}[WithTheSymbolOfTheSameName]{}% +\define@key{symdef}{specializes}{}% +\addmetakey*{symdef}{noalign}[true] \define@key{symdef}{primary}[true]{}% \define@key{symdef}{assocarg}{}% \define@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@nc#1{\mod@newcommand{#1}[1]}% \def\ignorespacesandpars{% \begingroup @@ -295,19 +296,25 @@ }% \def\@capitalize#1{\uppercase{#1}}% \newrobustcmd\capitalize[1]{\expandafter\@capitalize #1}% -\def\mod@termref#1#2#3{% - \def\@test{#3}% +\newcommand\mod@component[1]{} +\newcommand\mod@termref[3]{\def\@test{#3}% \@ifundefined{module@defs@#1}{% \protect\G@refundefinedtrue% - \@latex@warning{\protect\termref with unidentified cd "#1": the cd key must reference an active module}% - \def\@label{sref@#2@target}% - }% - {\def\@label{sref@#2@#1@target}}% - \@ifundefined{module@#1@path}% local reference - {\sref@hlink@ifh{\@label}{\ifx\@test\@empty #2\else #3\fi}}% - {\def\@uri{\csname module@#1@path\endcsname.pdf\#\@label}% - \sref@href@ifh{\@uri}{\ifx\@test\@empty #2\else #3\fi}}% + \if@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@component{#1}@target}% + \@ifundefined{module@#1@path}% local reference + {\sref@hlink@ifh{\@label}{\ifx\@test\@empty #2\else #3\fi}% + }% + {\def\@uri{\csname module@#1@path\endcsname\mod@component{#1}.pdf\#\@label}% + \sref@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}% diff --git a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls index 76455b2bb4f..0b339f1841e 100644 --- a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls +++ b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls @@ -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@class{article} -\DeclareOption{report}{\def\omdoc@class{report}% - \PassOptionsToPackage{\CurrentOption}{omdoc} - \PassOptionsToPackage{\CurrentOption}{stex}} -\newif\ifclass@book\class@bookfalse -\DeclareOption{book}{\def\omdoc@class{book}\class@booktrue% - \PassOptionsToPackage{\CurrentOption}{omdoc} - \PassOptionsToPackage{\CurrentOption}{stex}} -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\omdoc@class} - \PassOptionsToPackage{\CurrentOption}{omdoc} - \PassOptionsToPackage{\CurrentOption}{stex}} -\ProcessOptions -\LoadClass{\omdoc@class} +\ProvidesClass{omdoc}[2019/03/20 v1.3 OMDoc Documents] \RequirePackage{etoolbox} +\RequirePackage{kvoptions} +\SetupKeyvalOptions{family=omdoc@cls,prefix=omdoc@cls@} +\DeclareStringOption[article]{class} +\AddToKeyvalOption*{class}{\PassOptionsToPackage{class=\omdoc@cls@class}{omdoc}} +\DeclareVoidOption{report}{\def\omdoc@cls@class{report}% +\ClassWarning{omdoc}{the option 'report' is deprecated, use 'class=report', instead}} +\DeclareVoidOption{book}{\def\omdoc@cls@class{book}% +\ClassWarning{omdoc}{the option 'part' is deprecated, use 'class=book', instead}} +\DeclareVoidOption{bookpart}{\def\omdoc@cls@class{book}% +\PassOptionsToPackage{topsect=chapter}{omdoc}% +\ClassWarning{omdoc}{the option 'bookpart' is deprecated, use 'class=book,topsect=chapter', instead}} +\def\@omdoc@cls@docopt{} +\DeclareDefaultOption{% +\ifx\@omdoc@cls@docopt\@empty% +\xdef\@omdoc@cls@docopt{\CurrentOption}% +\else\xappto\@omdoc@cls@docopt{,\CurrentOption}% +\fi}% +\PassOptionsToPackage{\CurrentOption}{omdoc} +\PassOptionsToPackage{\CurrentOption}{stex} +\ProcessKeyvalOptions{omdoc@cls} +\LoadClass[\@omdoc@cls@docopt]{\omdoc@cls@class} \RequirePackage{omdoc} \RequirePackage{stex} \srefaddidkey{document} \newcommand\documentkeys[1]{\metasetkeys{document}{#1}} \let\orig@document=\document -\srefaddidkey{document} \renewcommand{\document}[1][]{\metasetkeys{document}{#1}\orig@document} -\ifclass@book -\renewenvironment{frontmatter} -{\@frontmattertrue\cleardoublepage\@mainmatterfalse\pagenumbering{roman}} -{\@frontmatterfalse\setcounter{page}{1}\pagenumbering{arabic}} -\else +\ifcsdef{frontmatter}% to redefine if necessary + {\cslet{orig@frontmatter}{\frontmatter}\cslet{frontmatter}{\relax}} + {\cslet{orig@frontmatter}{\clearpage\@mainmatterfalse\pagenumbering{roman}}} +\ifcsdef{backmatter}% to redefine if necessary + {\cslet{orig@backmatter}{\backmatter}\cslet{backmatter}{\relax}} + {\cslet{orig@backmatter}{\clearpage\@mainmatterfalse\pagenumbering{roman}}} \newenvironment{frontmatter} -{\@frontmattertrue\pagenumbering{roman}} -{\@frontmatterfalse\setcounter{page}{1}\pagenumbering{arabic}} -\fi -\ifclass@book -\renewenvironment{backmatter} -{\cleardoublepage\@mainmatterfalse\@backmattertrue} -{\@backmatterfalse} -\else -\newenvironment{backmatter}{\@backmattertrue}{\@backmatterfalse} -\fi +{\orig@frontmatter} +{\ifcsdef{mainmatter}{}{\clearpage\@mainmattertrue\pagenumbering{arabic}}} +\newenvironment{backmatter} +{\orig@backmatter} +{\ifcsdef{mainmatter}{}{\clearpage\@mainmattertrue\pagenumbering{arabic}}} +\pagenumbering{arabic} \endinput %% %% End of file `omdoc.cls'. diff --git a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty index 8cde99fa719..ae8ac708578 100644 --- a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty +++ b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty @@ -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@ignores\show@ignoresfalse -\DeclareOption{showignores}{\show@ignorestrue} -\newcount\section@level\section@level=2 -\DeclareOption{report}{\section@level=0} -\DeclareOption{book}{\section@level=0} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}} -\ProcessOptions +\ProvidesPackage{omdoc}[2019/03/20 v1.3 OMDoc document Structure] +\RequirePackage{kvoptions} +\SetupKeyvalOptions{family=omdoc@sty,prefix=omdoc@sty@} +\DeclareBoolOption{mh} +\DeclareStringOption[article]{class} +\DeclareBoolOption{showignores} +\DeclareStringOption[section]{topsect} +\newcount\section@level +\DeclareDefaultOption{\PassOptionsToPackage{\CurrentOption}{sref}} +\ProcessKeyvalOptions{omdoc@sty} +\ifomdoc@sty@mh\RequirePackage{omdoc-mh}\fi \RequirePackage{sref} \RequirePackage{xspace} \RequirePackage{comment} \RequirePackage{pathsuris} +\section@level=2 +\ifdefstring{\omdoc@sty@class}{book}{\section@level=0}{} +\ifdefstring{\omdoc@sty@class}{report}{\section@level=0}{} +\ifdefstring{\omdoc@sty@topsect}{part}{\section@level=0}{} +\ifdefstring{\omdoc@sty@topsect}{chapter}{\section@level=1}{} \def\current@section@level{document}% \newcommand\currentsectionlevel{\lowercase\expandafter{\current@section@level}\xspace}% \newcommand\Currentsectionlevel{\expandafter\MakeUppercase\current@section@level\xspace}% @@ -30,11 +38,15 @@ \ifx\hyper@anchor\@undefined\else\phantomsection\fi% \addcontentsline{toc}{#1}{#2}\@nameuse{#1}*{#2}} \newcommand\omgroup@num[2]{% -\sref@label@id{\omdoc@sect@name~\@nameuse{the#1}}% -\ifx\omgroup@short\@empty\@nameuse{#1}{#2}% -\else\@ifundefined{rdfmeta@sectioning}{\@nameuse{#1}[\omgroup@short]{#2}}% -{\@nameuse{rdfmeta@#1@old}[\omgroup@short]{#2}}% -\fi} +\edef\@@ID{\sref@id} +\ifx\omgroup@short\@empty% no short title +\@nameuse{#1}{#2}% +\else% we have a short title +\@ifundefined{rdfmeta@sectioning}% + {\@nameuse{#1}[\omgroup@short]{#2}}% + {\@nameuse{rdfmeta@#1@old}[\omgroup@short]{#2}}% +\fi% +\sref@label@id@arg{\omdoc@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@frontmatter\@frontmatterfalse -\newif\if@backmatter\@backmatterfalse +\newif\if@mainmatter\@mainmattertrue \newcommand\at@begin@omgroup[3][]{} \addmetakey{omdoc@sect}{name} \addmetakey[false]{omdoc@sect}{clear}[true] @@ -59,24 +70,29 @@ \if@@num% numbering not overridden by frontmatter, etc. \ifx\omdoc@sect@num\@true\omgroup@num{#2}{#3}\else\omgroup@nonum{#2}{#3}\fi% \def\current@section@level{\omdoc@sect@name}% -\else\omgroup@nonum{#2}{#3}\fi} -\newcommand\omgroup@redefine@addtocontents[1]{\edef\@@import{#1}% -\@for\@I:=\@@import\do{\edef\@path{\csname module@\@I @path\endcsname}% -\@ifundefined{tf@toc}\relax{\protected@write\tf@toc{}{\string\@requiremodules{\@path}{sms}}}} +\else\omgroup@nonum{#2}{#3}% +\fi}% if@@num +\newcommand\omgroup@redefine@addtocontents[1]{% +\edef\@@import{#1}% +\@for\@I:=\@@import\do{% +\edef\@path{\csname module@\@I @path\endcsname}% +\@ifundefined{tf@toc}\relax% + {\protected@write\tf@toc{}{\string\@requiremodules{\@path}{sms}}}} \ifx\hyper@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@target% \ifx\omgroup@display\st@flow\@@numfalse\fi -\if@frontmatter\@@numfalse\fi +\if@mainmatter\else\@@numfalse\fi \ifx\omgroup@loadmodules\@true% \omgroup@redefine@addtocontents{\@ifundefined{mod@id}\used@modules% {\@ifundefined{module@\mod@id @path}{\used@modules}\mod@id}}\fi% -\advance\section@level by 1 +\advance\section@level by 1\relax% \ifcase\section@level% \or\omdoc@sectioning[name=Part,clear,num]{part}{#2}% \or\omdoc@sectioning[name=Chapter,clear,num]{chapter}{#2}% @@ -89,7 +105,7 @@ \at@begin@omgroup[#1]\section@level{#2}}% for customization {\advance\section@level by -1} \providecommand\printindex{\IfFileExists{\jobname.ind}{\input{\jobname.ind}}{}} -\ifshow@ignores +\ifomdoc@sty@showignores \addmetakey{ignore}{type} \addmetakey{ignore}{comment} \newenvironment{ignore}[1][] @@ -99,13 +115,15 @@ \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!} \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@Gvar@#1}} +\newcommand\useSGvar[1]{\@nameuse{sTeX@Gvar@#1}} +\newcommand\ifSGvar[3]{\def\@test{#2}\expandafter\ifx\csname sTeX@Gvar@#1\endcsname\@test #3\fi} \def\black#1{\textcolor{black}{#1}} \def\gray#1{\textcolor{gray}{#1}} \def\blue#1{\textcolor{blue}{#1}} diff --git a/Master/texmf-dist/tex/latex/stex/omtext/omtext.sty b/Master/texmf-dist/tex/latex/stex/omtext/omtext.sty index 1215638aeb9..3e9fa337484 100644 --- a/Master/texmf-dist/tex/latex/stex/omtext/omtext.sty +++ b/Master/texmf-dist/tex/latex/stex/omtext/omtext.sty @@ -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@omtext@mh@\@omtext@mh@false \DeclareOption{mh}{\@omtext@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@sblockquote{\begin{quote}\sl} \def\end@sblockquote{\end{quote}} \def\begin@@sblockquote#1{\begin@sblockquote} -\def\end@@sblockquote#1{\def\@@lec##1{{\rm ##1}}\@lec{#1}\end@sblockquote} +\def\end@@sblockquote#1{\def\@@lec##1{\textrm{##1}}\@lec{#1}\end@sblockquote} \newenvironment{sblockquote}[1][] {\def\@opt{#1}\ifx\@opt\@empty\begin@sblockquote\else\begin@@sblockquote\@opt\fi} {\ifx\@opt\@empty\end@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@id}\used@modules\mod@id}{#2}!% \string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#3}!% \string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#4}% -\else #2!#3\fi% loadmodules +\else #2!#3!#4\fi% loadmodules +}{\thepage}}% +\endgroup\@esphack\fi}%ifindex +\newcommand\omdoc@indexiv[5][]{\ifindex% +\metasetkeys{omdoc@index}{#1}% +\@bsphack\begingroup\@sanitize% +\protected@write\@indexfile{}{\string\indexentry% +{\ifx\omdoc@index@at\@empty\else\omdoc@index@at @\fi% +\ifx\omdoc@index@loadmodules\@true% +\string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#2}!% +\string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#3}!% +\string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#4}% +\string\withusedmodules{\@ifundefined{mod@id}\used@modules\mod@id}{#5}% +\else #2!#3!#4!#5\fi% loadmodules }{\thepage}}% \endgroup\@esphack\fi}%ifindex -\newcommand\indexalt[3][]{{#2}\omdoc@indexi[#1]{#3}} % word in text and index -\newcommand\indextoo[2][]{{#2}\omdoc@indexi[#1]{#2}} % word in text and index -\newcommand\@twin[3][]{\omdoc@indexii[#1]{#2}{#3}\omdoc@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@indexiii[#1]{#2}{#3}{#4}\omdoc@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\aindi[3][]{{#2}\omdoc@indexi[#1]{#3}} +\newcommand\indi[2][]{{#2}\omdoc@indexi[#1]{#2}} +\newcommand\indis[2][]{{#2}\omdoc@indexi[#1]{#2s}} +\newcommand\Indi[2][]{{\captitalize{#2}}\omdoc@indexi[#1]{#2}} +\newcommand\Indis[2][]{{\capitalize{#2}}\omdoc@indexi[#1]{#2s}} + +\newcommand\@indii[3][]{\omdoc@indexii[#1]{#2}{#3}\omdoc@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@indexiii[#1]{#2}{#3}{#4}\omdoc@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@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@squig}[2]{\reflectbox{$\m@th#1\rightsquigarrow$}}% \newcommand\ogre{\ensuremath{\mathrel{\mathpalette\reflect@squig\relax}}\xspace}% +\newcommand\notergo{\ensuremath{\not\leadsto}} +\newcommand\notogre{\ensuremath{\not\mathrel{\mathpalette\reflect@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'. diff --git a/Master/texmf-dist/tex/latex/stex/presentation/presentation.sty b/Master/texmf-dist/tex/latex/stex/presentation/presentation.sty index 3692af31642..a657281b8b7 100644 --- a/Master/texmf-dist/tex/latex/stex/presentation/presentation.sty +++ b/Master/texmf-dist/tex/latex/stex/presentation/presentation.sty @@ -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] diff --git a/Master/texmf-dist/tex/latex/stex/problem/problem.sty b/Master/texmf-dist/tex/latex/stex/problem/problem.sty index 46319929165..ff617ee26d7 100644 --- a/Master/texmf-dist/tex/latex/stex/problem/problem.sty +++ b/Master/texmf-dist/tex/latex/stex/problem/problem.sty @@ -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@problem@mh@\@problem@mh@false \DeclareOption{mh}{\@problem@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@problem@kw{Problem} \def\prob@solution@kw{Solution} \srefaddidkey[prefix=prob.]{problem} @@ -40,7 +41,8 @@ \newcounter{problem} \newcommand\numberproblemsin[1]{\@addtoreset{problem}{#1}} \newcommand\prob@label[1]{#1} -\def\prob@number{\ifx\inclprob@refnum\@empty% +\newcommand\prob@number{% +\ifx\inclprob@refnum\@empty% if there is no outside refnumb \ifx\problem@refnum\@empty\prob@label\theproblem% \else\prob@label\problem@refnum\fi% \else\prob@label\inclprob@refnum\fi} @@ -54,7 +56,7 @@ \@in@omtexttrue% we are in a statement (for inline definitions) \stepcounter{problem}\record@problem% \def\current@section@level{\prob@problem@kw}% -\par\noindent\textbf\prob@heading\show@pts\show@min\rm\noindent\ignorespaces} +\par\noindent\textbf\prob@heading\show@pts\show@min\rmfamily\noindent\ignorespaces} {\smallskip} \ifboxed\surroundwithmdframed{problem}\fi \def\record@problem{\protected@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@T}{T}{}{\mcc@Ttext}% +\ifcsstring{mcc@F}{F}{}{\mcc@Ftext}% +\ifx\mcc@feedback\@empty!\else, \mcc@feedback\fi% +\fi} %solutions \addmetakey{inclprob}{pts} \addmetakey{inclprob}{min} \addmetakey*{inclprob}{title} diff --git a/Master/texmf-dist/tex/latex/stex/rfdmeta/rdfmeta.sty b/Master/texmf-dist/tex/latex/stex/rfdmeta/rdfmeta.sty index 74cd27e8a25..594b2a763a7 100644 --- a/Master/texmf-dist/tex/latex/stex/rfdmeta/rdfmeta.sty +++ b/Master/texmf-dist/tex/latex/stex/rfdmeta/rdfmeta.sty @@ -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@rdfmeta@sectioning\@rdfmeta@sectioningfalse \DeclareOption{sectioning}{\@rdfmeta@sectioningtrue} \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref} diff --git a/Master/texmf-dist/tex/latex/stex/smglom/smglom.cls b/Master/texmf-dist/tex/latex/stex/smglom/smglom.cls index 36007f92619..82a69eb0212 100644 --- a/Master/texmf-dist/tex/latex/stex/smglom/smglom.cls +++ b/Master/texmf-dist/tex/latex/stex/smglom/smglom.cls @@ -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}} diff --git a/Master/texmf-dist/tex/latex/stex/smultiling/smultiling.sty b/Master/texmf-dist/tex/latex/stex/smultiling/smultiling.sty index 582fe5dbd4d..1db482dc0b6 100644 --- a/Master/texmf-dist/tex/latex/stex/smultiling/smultiling.sty +++ b/Master/texmf-dist/tex/latex/stex/smultiling/smultiling.sty @@ -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@smultiling@mh@\@smultiling@mh@false \DeclareOption{mh}{\@smultiling@mh@true} \newif\if@langfiles\@langfilesfalse @@ -17,22 +17,46 @@ \if@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@multiling\endcsname{true}% +\ignorespacesandpars} {\end{module}\ignorespacesandparsafterend} +\renewcommand\mod@component[1]{% +\expandafter\ifx\csname mod@#1@multiling\endcsname\@true% +\@ifundefined{smultiling@language}{} +{.\smultiling@language}% +\fi} +\newcommand\sTeXlanguage[1]{\def\smultiling@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@key{symi}{noverb}[all]{}% +\define@key{symi}{align}[WithTheSymbolOfTheSameName]{}% +\define@key{symi}{specializes}{}% +\define@key{symi}{noalign}[true]{}% \newcommand\symi{\@ifstar\@symi@star\@symi} -\newcommand\@symi[1]{\if@importing\else Symbol: \textsf{#1}\fi\ignorespacesandpars} -\newcommand\@symi@star[1]{\if@importing\else Primary Symbol: \textsf{#1}\fi\ignorespacesandpars} +\newcommand\@symi[2][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Symbol: \textsf{#2}\fi\ignorespacesandpars} +\newcommand\@symi@star[2][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Primary Symbol: \textsf{#2}\fi\ignorespacesandpars} \newcommand\symii{\@ifstar\@symii@star\@symii} -\newcommand\@symii[2]{\if@importing\else Symbol: \textsf{#1-#2}\fi\ignorespacesandpars} -\newcommand\@symii@star[2]{\if@importing\else Primary Symbol: \textsf{#1-#2}\fi\ignorespacesandpars} +\newcommand\@symii[3][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Symbol: \textsf{#2-#3}\fi\ignorespacesandpars} +\newcommand\@symii@star[3][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Primary Symbol: \textsf{#2-#3}\fi\ignorespacesandpars} \newcommand\symiii{\@ifstar\@symiii@star\@symiii} -\newcommand\@symiii[3]{\if@importing\else Symbol: \textsf{#1-#2-#3}\fi\ignorespacesandpars} -\newcommand\@symiii@star[3]{\if@importing\else Primary Symbol: \textsf{#1-#2-#3}\fi\ignorespacesandpars} +\newcommand\@symiii[4][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Symbol: \textsf{#2-#3-#4}\fi\ignorespacesandpars} +\newcommand\@symiii@star[4][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Primary Symbol: \textsf{#2-#3-#4}\fi\ignorespacesandpars} +\newcommand\symiv{\@ifstar\@symiv@star\@symiv} +\newcommand\@symiv[5][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Symbol: \textsf{#2-#3-#4-#5}\fi\ignorespacesandpars} +\newcommand\@symiv@star[5][]{\metasetkeys{symi}{#1}% + \if@importing\else\par\noindent Primary Symbol: \textsf{#2-#3-#4-#5}\fi\ignorespacesandpars} \addmetakey{modnl}{load} \addmetakey*{modnl}{title} \addmetakey*{modnl}{creators} @@ -41,24 +65,48 @@ \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@language{#3}% \if@langfiles\importmodule[load=#2,ext=tex]{#2}\else \ifx\modnl@load\@empty\importmodule{#2}\else\importmodule[ext=tex,load=\modnl@load]{#2}\fi% \fi% \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 %% diff --git a/Master/texmf-dist/tex/latex/stex/sproof/sproof.sty b/Master/texmf-dist/tex/latex/stex/sproof/sproof.sty index 58bdc22d022..b780babe962 100644 --- a/Master/texmf-dist/tex/latex/stex/sproof/sproof.sty +++ b/Master/texmf-dist/tex/latex/stex/sproof/sproof.sty @@ -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@proof@kw{Proof} \def\spf@step@kw{Step} \AfterBabelLanguage{ngerman}{\input{sproof-ngerman.ldf}} +\AfterBabelLanguage{arabic}{\input{sproof-arabic.ldf}} \newrobustcmd\spfsketch[2][]{% \metasetkeys{spf}{#1}% \sref@target% @@ -118,7 +119,7 @@ \else% \item[\the@pst@label]% \fi% - \ifx\spf@title\@empty\else{(\stDMemph{\spf@title})}\fi% + \ifx\spf@title\@empty\else{(\stDMemph{\spf@title}) }\fi% \sref@label@id{\pst@label}\ignorespaces% }{% \next@pst@label\@in@omtextfalse\ignorespaces% diff --git a/Master/texmf-dist/tex/latex/stex/sref/sref.sty b/Master/texmf-dist/tex/latex/stex/sref/sref.sty index ca35ac7dd99..66a4821b64c 100644 --- a/Master/texmf-dist/tex/latex/stex/sref/sref.sty +++ b/Master/texmf-dist/tex/latex/stex/sref/sref.sty @@ -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,19 +129,27 @@ \sref@label{#1}{\sref@id}% \fi% }% +\newcommand\sref@label@id@arg[2]{% + \def\@@id{#2} + \ifx\@@id\@empty% + \relax% + \else% + \sref@label{#1}{\@@id}% + \fi% +}% \newcommand\sref@hlink[5][]{% \edef\@linktext{#1}% \edef\@fallback{#3}% \ifcsundef{sref@#2@label}{% \ifx\@fallback\@empty% warn about undefined links and show a substitute - \protect\G@refundefinedtrue\@latex@warning{reference #2 undefined}% + \protect\G@refundefinedtrue\PackageWarning{sref}{reference #2 undefined}% \ifx\@linktext\@empty% ?#2?% \else% \@linktext% \fi% \else% - \protect\G@refundefinedtrue\@latex@warning{using fallback for undefined reference #2}% + \protect\G@refundefinedtrue\PackageWarning{sref}{using fallback for undefined reference #2}% \@fallback% \fi }{% @@ -156,7 +164,7 @@ \newcommand\sref@page@label[1]{p.~{#1}} \newcommand\sref@pageref[1]{% \ifcsundef{sref@#1@page}{% - \protect\G@refundefinedtrue\@latex@warning{reference #1 undefined}\sref@page@label{??}% + \protect\G@refundefinedtrue\PackageWarning{sref}{reference #1 undefined}\sref@page@label{??}% }{% \sref@hlink@ifh{sref@#1@target}{\sref@page@label{\@nameuse{sref@#1@page}}}% }% @@ -164,10 +172,10 @@ \newcommand\sref@href[3][]{% \edef\@linktext{#1}% \ifcsundef{sref@#2@label}{% - \protect\G@refundefinedtrue\@latex@warning{reference #2 undefined}??% + \protect\G@refundefinedtrue\PackageWarning{sref}{reference #2 undefined}??% }{% \ifcsundef{sref@#3@URI}{% - \protect\G@refundefinedtrue\@latex@warning{external refs of type #3 undefined}??% + \protect\G@refundefinedtrue\PackageWarning{sref}{external refs of type #3 undefined}??% }{% \edef\@uri{\@nameuse{sref@#3@URI}.pdf\#sref@#2@target}% \edef\@label{\ifx\@linktext\@empty\@nameuse{sref@#2@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'. diff --git a/Master/texmf-dist/tex/latex/stex/statements/statements.sty b/Master/texmf-dist/tex/latex/stex/statements/statements.sty index d3c0e44382a..c62654e24b9 100644 --- a/Master/texmf-dist/tex/latex/stex/statements/statements.sty +++ b/Master/texmf-dist/tex/latex/stex/statements/statements.sty @@ -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@index\def@indexfalse \DeclareOption{defindex}{\def@indextrue} +\newif\if@nthm\@nthmtrue +\DeclareOption{nontheorem}{\@nthmfalse} +\newif\if@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@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@statement@env#1{% +\ifcsdef{#1}{\cslet{#1}{\relax}\cslet{end#1}{\relax}}{}% to redefine if necessary \newenvironment{#1}[1][]{\metasetkeys{omtext}{##1}\sref@target% \@in@omtexttrue% \ifx\omtext@display\st@flow\else% @@ -26,20 +37,24 @@ \ifx\sref@id\@empty\else\label{#1.\sref@id}\fi \csname st@#1@initialize\endcsname\fi% display \ifx\sref@id\@empty\sref@label@id{here}\else% -\sref@label@id{\STpresent{\csname ST#1EnvKeyword\endcsname}~\@currentlabel}\fi% -\ignorespaces} +\sref@label@id{\STpresent{\csname st@#1@kw\endcsname}~\@currentlabel}\fi% +\strut\ignorespaces} {\csname st@#1@terminate\endcsname\ifx\omtext@display\st@flow\else\end{ST#1Env}\fi% \omtext@post@skip\@in@omtextfalse}} \newenvironment{assertion}[1][]{\metasetkeys{omtext}{#1}\sref@target% \@in@omtexttrue% -\ifx\omtext@display\st@flow\itshape\noindent\ignorespaces% +\ifx\omtext@display\st@flow + \itshape\noindent\ignorespaces% \else% display!=flow -\ifx\omtext@title\@empty\begin{ST\omtext@type AssEnv}% -\else\begin{ST\omtext@type AssEnv}[\omtext@title]\fi\fi% -\ifx\omtext@type\@empty\sref@label@id{here}\else% -\sref@label@id{\STpresent{\csname ST\omtext@type AssEnvKeyword\endcsname}~\@currentlabel} -\fi}%display=flow -{\ifx\omtext@display\st@flow\else\end{ST\omtext@type AssEnv}\@in@omtextfalse\fi} + \xdef\@@@type{\omtext@type}% to keep it safe from \inlinedef + \ifx\omtext@title\@empty\begin{ST\@@@type AssEnv}% + \else\begin{ST\@@@type AssEnv}[\omtext@title]% + \fi% +\fi %display=flow +\ifx\omtext@type\@empty\else% +\sref@label@id{\STpresent{\csname st@\@@@type @kw\endcsname}~\@currentlabel} +\fi} +{\ifx\omtext@display\st@flow\else\end{ST\@@@type AssEnv}\@in@omtextfalse\fi} \def\st@theorem@kw{Theorem} \def\st@lemma@kw{Lemma} \def\st@proposition@kw{Proposition} @@ -52,9 +67,19 @@ \def\st@rule@kw{Rule} \def\st@observation@kw{Observation} \def\st@remark@kw{Remark} +\if@nthm \theorembodyfont{\itshape} \theoremheaderfont{\normalfont\bfseries} -\newtheorem{STtheoremAssEnv}{\st@theorem@kw}[section] +\else +\theoremstyle{plain} +\fi +\if@msection +\newtheorem{STtheoremAssEnv}{\st@theorem@kw}[msection] +\else +\ifdef{\thesection} +{\newtheorem{STtheoremAssEnv}{\st@theorem@kw}[section]} +{\newtheorem{STtheoremAssEnv}{\st@theorem@kw}} +\fi \newtheorem{STlemmaAssEnv}[STtheoremAssEnv]{\st@lemma@kw} \newtheorem{STpropositionAssEnv}[STtheoremAssEnv]{\st@proposition@kw} \newtheorem{STcorollaryAssEnv}[STtheoremAssEnv]{\st@corollary@kw} @@ -64,18 +89,16 @@ \newtheorem{STobligationAssEnv}[STtheoremAssEnv]{\st@obligation@kw} \newtheorem{STassumptionAssEnv}[STtheoremAssEnv]{\st@assumption@kw} \newtheorem{STobservationAssEnv}[STtheoremAssEnv]{\st@observation@kw} -\theorembodyfont{\rm} +\if@nthm\theorembodyfont{\rmfamily}\else\theoremstyle{definition}\fi \newtheorem{STremarkAssEnv}[STtheoremAssEnv]{\st@remark@kw} \newtheorem{STruleAssEnv}[STtheoremAssEnv]{\st@rule@kw} \def\st@example@initialize{}\def\st@example@terminate{} \define@statement@env{example} \def\st@example@kw{Example} -\theorembodyfont{\upshape} \newtheorem{STexampleEnv}[STtheoremAssEnv]{\st@example@kw} \def\st@axiom@initialize{}\def\st@axiom@terminate{} \define@statement@env{axiom} \def\st@axiom@kw{Axiom} -\theorembodyfont{\upshape} \newtheorem{STaxiomEnv}[STtheoremAssEnv]{\st@axiom@kw} \srefaddidkey{symboldec} \addmetakey{symboldec}{functions} @@ -95,7 +118,6 @@ \noindent\type@type \ifx\symtype@\@empty\else (\symtype@system)\fi #2: $#3$} \newcommand\inlinetypedec[3][]{\metasetkeys{symtype}{#1}\sref@target{\def\thedectype{#2}#3}} \def\st@typedec@kw{Type Declaration} -\theorembodyfont{\upshape} \newtheorem{STtypedecEnv}[STtheoremAssEnv]{\st@typedec@kw} \newenvironment{typedec}[2][]{\metasetkeys{omtext}{#1}\sref@target% \def\thedectype{#2}% @@ -103,33 +125,32 @@ \ifx\omtext@title\@empty\begin{STtypedecEnv}\else\begin{STtypedecEnv}[\omtext@title]\fi% \ifx\sref@id\@empty\else\label{typedec.\sref@id}\fi \ifx\sref@id\@empty\sref@label@id{here}\else% -\sref@label@id{\STpresent{\csname STtypedecEnvKeyword\endcsname}~\@currentlabel}\fi% +\sref@label@id{\STpresent{\csname st@typedec@kw\endcsname}~\@currentlabel}\fi% \ignorespaces} {\ifx\omtext@display\st@flow\else\end{STtypedecEnv}\fi\omtext@post@skip} \newif\ifst@indef\st@indeffalse +\ifcsdef{definition}{\cslet{definition}{\relax}\cslet{enddefinition}{\relax}}{}% to redefine if necessary \newenvironment{definition}[1][]{\metasetkeys{omtext}{#1}\sref@target\st@indeftrue% \ifx\omtext@display\st@flow\else% \ifx\omtext@title\@empty\begin{STdefinitionEnv}\else\begin{STdefinitionEnv}[\omtext@title]\fi\fi% \ifx\sref@id\@empty\sref@label@id{here}\else% -\sref@label@id{\STpresent{\csname STdefinitionEnvKeyword\endcsname}~\@currentlabel}\fi% +\sref@label@id{\STpresent{\csname st@definition@kw\endcsname}~\@currentlabel}\fi% \ignorespaces} {\ifx\omtext@display\st@flow\else\end{STdefinitionEnv}\fi} \def\st@definition@kw{Definition} -\theorembodyfont{\upshape} \newtheorem{STdefinitionEnv}[STtheoremAssEnv]{\st@definition@kw} \def\notemph#1{#1} \def\st@notation@terminate{} \def\st@notation@initialize{} \define@statement@env{notation} \def\st@notation@kw{Notation} -\theorembodyfont{\upshape} \newtheorem{STnotationEnv}[STtheoremAssEnv]{\st@notation@kw} -\newcommand\st@def@target[3]{\def\@symname{#1}\def\@verbname{#2}% +\newcommand\st@def@target[3]{\edef\@symname{#1}\def\@verbname{#2}% \ifst@indef% if we are in a definition or such \@ifundefined{mod@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@theory\@empty\mod@id\else\omtext@theory\fi}% @@ -139,52 +160,98 @@ can only be referenced when called in a module with id key}}% {#3}}% \expandafter\gdef\csname sref@\@@name @\@@cd @defined\endcsname{yes}% \ifmetakeys@showmeta\metakeys@show@keys{\@@cd}{name:\@@name}\fi}% -\else% st@indef +\else% st@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@indef \newcommand\@termdef[2][]{\def\@test{#1}% \@ifundefined{mod@id}{}{\ifx\@test\@empty\def\@@name{#2}\else\def\@@name{#1}\fi% \termdef{\mod@id @\@@name}{#2}}} -\newcommand\definiendum[2][]{\st@def@target{#1}{#2}{#2}} +\addmetakey{definiendum}{name} +\addmetakey{definiendum}{lemma} +\newcommand\definiendum[2][]{\setkeys{definiendum}{#1}% +\st@def@target{\definiendum@name}{\definiendum@name}{#2}} \newcommand\notatiendum[2][]{\notemph{#2}} -\newcommand\defi[2][]{\st@def@target{#1}{#2}{#2}\def\@phrase{#2}\@defi} \newcommand\@defi[1][]{\ifdef@index\omdoc@indexi[#1]{\@phrase}\fi\xspace} -\newcommand\defis[2][]{\st@def@target{#1}{#2}{#2s}\def\@phrase{#2}\@defi} -\newcommand\adefi[3][]{\def\@name{#1}\def\@verb{#3}% -\st@def@target{#1}{#3}{#2}\@adefi} +\newcommand\defi[2][]{\metasetkeys{definiendum}{#1}% +\st@def@target{\definiendum@name}{#2}{#2}\def\@phrase{#2}\@defi} +\newcommand\defis[2][]{\metasetkeys{definiendum}{#1}% +\st@def@target{\definiendum@name}{#2}{#2s}\def\@phrase{#2}\@defi} +\newcommand\Defi[2][]{\metasetkeys{definiendum}{#1}% +\st@def@target{\definiendum@name}{#2}{\capitalize{#2}}\def\@phrase{#2}\@defi} +\newcommand\Defis[2][]{\metasetkeys{definiendum}{#1}% +\st@def@target{\definiendum@name}{#2}{\capitalize{#2s}}\def\@phrase{#2}\@defi} +\newcommand\adefi[3][]{\metasetkeys{definiendum}{#1}\def\@verb{#3}% +\st@def@target{\definiendum@name}{#3}{#2}\@adefi} \newcommand\@adefi[1][]{% \ifdef@index% -\ifx\@name\@empty\omdoc@indexi[#1]{\@verb}% -\else\omdoc@indexi[at=\@name,#1]{\@verb}\fi% +\ifx\definiendum@name\@empty\omdoc@indexi[#1]{\@verb}% +\else\omdoc@indexi[at=\definiendum@name,#1]{\@verb}\fi% \fi\xspace} -\newcommand\@defii[1][]{\ifdef@index\@twin[#1]{\@pone}{\@ptwo}\fi\xspace} -\newcommand\defii[3][]{\def\@pone{#2}\def\@ptwo{#3}% -\st@def@target{#1}{#2-#3}{#2 #3}\@defii} -\newcommand\defiis[3][]{\def\@pone{#2}\def\@ptwo{#3}% -\st@def@target{#1}{#2-#3}{#2 #3s}\@defii} -\newcommand\adefii[4][]{\def\@name{#1}\def\@pone{#3}\def\@ptwo{#4}% -\st@def@target{#1}{#3-#4}{#2}\@adefii} +\newcommand\@defii[1][]{\ifdef@index\omdoc@indexii[#1]{\@pone}{\@ptwo}\fi\xspace} +\newcommand\defii[3][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}% +\st@def@target{\definiendum@name}{#2-#3}{#2 #3}\@defii} +\newcommand\defiis[3][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}% +\st@def@target{\definiendum@name}{#2-#3}{#2 #3s}\@defii} +\newcommand\Defii[3][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}% +\st@def@target{\definiendum@name}{#2-#3}{\capitalize{#2 #3}}\@defii} +\newcommand\Defiis[3][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}% +\st@def@target{\definiendum@name}{#2-#3}{\capitalize{#2 #3s}}\@defii} +\newcommand\adefii[4][]{\metasetkeys{definiendum}{#1}\def\@pone{#3}\def\@ptwo{#4}% +\st@def@target{\definiendum@name}{#3-#4}{#2}\@adefii} \newcommand\@adefii[1][]{% \ifdef@index% -\ifx\@name\@empty\@twin[#1]{\@pone}{\@ptwo}% -\else\@twin[at=\@name,#1]{\@pone}{\@ptwo}\fi% +\ifx\definiendum@name\@empty\omdoc@indexii[#1]{\@pone}{\@ptwo}% +\else\omdoc@indexii[at=\definiendum@name,#1]{\@pone}{\@ptwo}\fi% \fi\xspace} -\newcommand\defiii[4][]{\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}% -\st@def@target{#1}{#2-#3-#4}{#2 #3 #4}\@defiii} -\newcommand\@defiii[1][]{\ifdef@index\@atwin[#1]{\@pone}{\@ptwo}{\@pthree}\fi\xspace} -\newcommand\defiiis[4][]{\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}% -\st@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@def@target{#1}{#3-#4-#5}{#2}\@adefiii} +\newcommand\@defiii[1][]{\ifdef@index\omdoc@indexiii[#1]{\@pone}{\@ptwo}{\@pthree}\fi\xspace} +\newcommand\defiii[4][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}% +\st@def@target{\definiendum@name}{#2-#3-#4}{#2 #3 #4}\@defiii} +\newcommand\defiiis[4][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}% +\st@def@target{\definiendum@name}{#2-#3-#4}{#2 #3 #4s}\@defiii} +\newcommand\Defiii[4][]{\metasetkeys{definiendum}{#1}% +\def\@pone{#2}\def\@ptwo{#3}\def\@pthree{#4}% +\st@def@target{\definiendum@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@def@target{\definiendum@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@def@target{\definiendum@name}{#3-#4-#5}{#2}\@adefiii} \newcommand\@adefiii[1][]{% \ifdef@index% -\ifx\@name\@empty\@atwin[#1]{\@pone}{\@ptwo}{\@pthree}% -\else\@atwin[at=\@name,#1]{\@pone}{\@ptwo}{\@pthree}\fi% +\ifx\definiendum@name\@empty\omdoc@indexiii[#1]{\@pone}{\@ptwo}{\@pthree}% +\else\omdoc@indexiii[at=\definiendum@name,#1]{\@pone}{\@ptwo}{\@pthree}\fi% +\fi\xspace} +\newcommand\@defiv[1][]{\ifdef@index\omdoc@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@def@target{\definiendum@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@def@target{\definiendum@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@def@target{\definiendum@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@def@target{\definiendum@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@def@target{\definiendum@name}{#3-#4-#5-#6}{#2}\@adefiv} +\newcommand\@adefiv[1][]{% +\ifdef@index% +\ifx\definiendum@name\@empty\@indiv[#1]{\@pone}{\@ptwo}{\@pthree}{\@ptfour}% +\else\@indiv[at=\definiendum@name,#1]{\@pone}{\@ptwo}{\@pthree}{\@ptfour}\fi% \fi\xspace} \newcommand\inlineex[2][]{\metasetkeys{omtext}{#1}% \sref@target\sref@label@id{here}#2} @@ -202,25 +269,37 @@ whatever is suitable semantically}\fi% \addmetakey*{termref}{name} \addmetakey*{termref}{role} \newcommand\termref[2][]{\metasetkeys{termref}{#1}% - \ifx\termref@cd\@empty\def\termref@cd{\mod@id}\fi% - \ifx\termref@name\@empty\def\termref@name{#2}\fi% - \@ifundefined{sref@\termref@name @\termref@cd @defined} - {\ifx\termref@cdbase\@empty% external reference - \mod@termref\termref@cd\termref@name{#2}% - \else\sref@href@ifh\termref@cdbase{#2}% - \fi}% - {\sref@hlink@ifh{sref@\termref@name @\termref@cd @target}{#2}}% -} +\ifx\termref@cd\@empty\def\termref@cd{\mod@id}\fi% +\ifx\termref@name\@empty\def\termref@name{#2}\fi% +\@ifundefined{sref@\termref@name @\termref@cd @defined}% +{\ifx\termref@cdbase\@empty% external reference +\mod@termref\termref@cd\termref@name{#2}% +\else\sref@href@ifh\termref@cdbase{#2}% +\fi}% +{\def\@label{sref@\termref@name @\termref@cd @target}% +\sref@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}}} diff --git a/Master/texmf-dist/tex/latex/stex/stex/stex.sty b/Master/texmf-dist/tex/latex/stex/stex/stex.sty index 8b4444e4665..bfe038a120d 100644 --- a/Master/texmf-dist/tex/latex/stex/stex/stex.sty +++ b/Master/texmf-dist/tex/latex/stex/stex/stex.sty @@ -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 diff --git a/Master/texmf-dist/tex/latex/stex/structview/structview.sty b/Master/texmf-dist/tex/latex/stex/structview/structview.sty index d76c3d13599..a233ce55c13 100644 --- a/Master/texmf-dist/tex/latex/stex/structview/structview.sty +++ b/Master/texmf-dist/tex/latex/stex/structview/structview.sty @@ -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@structview@mh@\@structview@mh@false \DeclareOption{mh}{\@structview@mh@true \PassOptionsToPackage{\CurrentOption}{modules}} @@ -15,27 +15,31 @@ \ProcessOptions \if@structview@mh@\RequirePackage{structview-mh}\fi \RequirePackage{modules} -\newenvironment{importmodulevia}[2][]{% - \gdef\@@doit{\importmodule[#1]{#2}}% - \ifmod@show\par\noindent importing module #2 via \@@doit\fi% +\newrobustcmd\vassign[3][]{\ifmod@show\ensuremath{#2\mapsto #3}, \fi}% +\newrobustcmd\fassign[4][]{\ifmod@show \ensuremath{#3(#2)\mapsto #4}, \fi}% +\newrobustcmd\tassign[3][]{\ifmod@show \ensuremath{#2\mapsto} #3, \fi}% +\newenvironment{sstructure}[3][]{% + \gdef\@@doit{\importmodule[#1]{#3}}% + \ifmod@show\par\noindent importing module #3 via \@@doit\fi% }{% \aftergroup\@@doit\ifmod@show end import\fi% }% -\newrobustcmd\vassign[3][]{\ifmod@show\ensuremath{#2\mapsto #3}, \fi}% -\newrobustcmd\tassign[3][]{\ifmod@show #2\ensuremath{\mapsto} #3, \fi}% -\newrobustcmd\fassign[4][]{\ifmod@show \ensuremath{#3\mapsto #4}, \fi}% -\newrobustcmd\ttassign[3][]{\ifmod@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@heading[4]{% \if@importing% \else% @@ -56,7 +60,7 @@ \ignorespaces% \fi% }%ifmod@show -\newenvironment{view}[3][]{% +\newenvironment{view}[3][]{% keys, from, to \metasetkeys{view}{#1}% \sref@target% \begin{@view}{#2}{#3}% @@ -67,18 +71,14 @@ }% \ifmod@show\surroundwithmdframed{view}\fi% \newenvironment{@view}[2]{%from, to - \@importmodule[\view@from]{#1}{\view@ext}% - \@importmodule[\view@to]{#2}{\view@ext}% + \@importmodule[\view@loadfrom]{#1}{\view@ext}% + \@importmodule[\view@loadto]{#2}{\view@ext}% }{}% -\newenvironment{viewsketch}[3][]{% - \metasetkeys{view}{#1}% - \sref@target% - \begin{@view}{#2}{#3}% - \view@heading{#2}{#3}{\view@display}{\view@title}% -}{% - \end{@view}% -}% -\ifmod@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@importing% \else Axiom #2 is proven by \sref{#3}% diff --git a/Master/texmf-dist/tex/latex/stex/tikzinput/tikzinput.sty b/Master/texmf-dist/tex/latex/stex/tikzinput/tikzinput.sty index bc62a9e91f0..616f00e0cb1 100644 --- a/Master/texmf-dist/tex/latex/stex/tikzinput/tikzinput.sty +++ b/Master/texmf-dist/tex/latex/stex/tikzinput/tikzinput.sty @@ -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@tikzinput@mh@\@tikzinput@mh@false \DeclareOption{mh}{\@tikzinput@mh@true} \newif\iftikzinput@image\tikzinput@imagefalse @@ -25,9 +25,15 @@ \iftikzinput@image \newcommand\tikzinput[2][]{\includegraphics[#1]{#2}} \else -\newcommand\tikzinput[2][]{\input{#2}} +\newcommand\tikzinput[2][]{\setkeys{Gin}{#1}% +\ifx\Gin@ewidth\Gin@exclamation +\ifx\Gin@eheight\Gin@exclamation\input{#2}\else\resizebox{!}{\Gin@eheight}{\input{#2}}\fi +\else +\ifx\Gin@eheight\Gin@exclamation\resizebox{\Gin@ewidth}{!}{\input{#2}} +\else\resizebox{\Gin@ewidth}{\Gin@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 %% diff --git a/Master/texmf-dist/tex/latex/stex/workaddress/workaddress.sty b/Master/texmf-dist/tex/latex/stex/workaddress/workaddress.sty index ef90ccbb509..597a36553b9 100644 --- a/Master/texmf-dist/tex/latex/stex/workaddress/workaddress.sty +++ b/Master/texmf-dist/tex/latex/stex/workaddress/workaddress.sty @@ -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@person}{worktelfax} \addmetakey*{wa@person}{privtelfax} \def\wa@def#1#2#3#4{\expandafter\xdef\csname wa@#1@#2@#3\endcsname{#4}} -\def\wa@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@ref#1#2#3{% - \wa@ref@test{#1}{#2}{#3}% - \csname wa@#1@#2@#3\endcsname% -}% +\newcommand\wa@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@ref#1 not defined}{} + \fi + }{\csname wa@#2@#3@#4\endcsname}}% \let\wa@persons=\relax \newcommand\WAperson[2][]{% \metasetkeys{wa@person}{#1}% \ifx\wa@person@id\@empty% - \@latex@warning{key 'id' undefined in WAperson}% + \PackageWarning{workaddress}{key 'id' undefined in WAperson}% \else% \wa@def{person}\wa@person@id{id}{\wa@person@id}% redundant, but useful for checking \wa@def{person}\wa@person@id{name}{#2} @@ -90,7 +97,7 @@ \newcommand\WAinstitution[2][]{% \metasetkeys{wa@institution}{#1}% \ifx\wa@institution@id\@empty% - \@latex@warning{key 'id' undefined in WAinstitution}% + \PackageWarning{workaddress}{key 'id' undefined in WAinstitution}% \else% \wa@def{institution}\wa@institution@id{id}{\wa@institution@id}% redundant, but useful for checking \wa@def{institution}\wa@institution@id{name}{#2} @@ -129,16 +136,16 @@ \def\@depts{}% \def\@urls{}% \@for\@I:=#2\do{% - \xdef\@authors{\@authors&\wa@ref{person}\@I{name}} - \xdef\@@dept{\wa@ref{person}\@I{department}} + \xdef\@authors{\@authors&\wa@ref2{person}\@I{name}} + \xdef\@@dept{\wa@ref1{person}\@I{department}} \xdef\@shortname{\csname wa@institution@\@@dept @shortname\endcsname} - \xdef\@dept{\ifx\@shortname\@empty\wa@ref{institution}\@@dept{name}\else\@shortname\fi} + \xdef\@dept{\ifx\@shortname\@empty\wa@ref0{institution}\@@dept{name}\else\@shortname\fi} \xdef\@depts{\@depts&\@dept} - \xdef\@@aff{\wa@ref{person}\@I{affiliation}} + \xdef\@@aff{\wa@ref0{person}\@I{affiliation}} \xdef\@shortname{\csname wa@institution@\@@aff @shortname\endcsname} - \xdef\@aff{\ifx\@shortname\@empty\wa@ref{institution}\@@aff{name}\else\@shortname\fi} + \xdef\@aff{\ifx\@shortname\@empty\wa@ref0{institution}\@@aff{name}\else\@shortname\fi} \xdef\@affs{\@affs&\@aff} - \xdef\@urls{\@urls&\wa@ref{person}\@I{url}} + \xdef\@urls{\@urls&\wa@ref0{person}\@I{url}} }% \message{\theauthors authors: \@authors}% }% @@ -149,11 +156,11 @@ \ifx\WAauthorblock@url\@true\@urls\\\fi \end{tabular} }% -\newcommand\wapname[1]{\wa@ref{person}{#1}{name}} -\newcommand\waptname[1]{\wa@ref{person}{#1}{personaltitle} \wa@ref{person}{#1}{name}} +\newcommand\wapname[1]{\wa@ref3{person}{#1}{name}} +\newcommand\waptname[1]{\wa@ref3{person}{#1}{personaltitle} \wa@ref3{person}{#1}{name}} \newcommand\wa@institution@logo[2][]{% - \IfFileExists{\wa@ref{institution}{#2}{logo}}{% - \includegraphics{\wa@ref{institution}{#2}{logo}}% + \IfFileExists{\wa@ref2{institution}{#2}{logo}}{% + \includegraphics{\wa@ref2{institution}{#2}{logo}}% }{% \fbox{#2 logo}\message{still need logo for #2}% }% |