X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fcomponents%2Fbinaries%2Fmatex%2Ftest%2Fmatex.sty;h=4bd7393eac9880abe63df85df516cba55b00ade7;hb=HEAD;hp=b01223fefec60774fc182dabebde22033d01edea;hpb=28e8954fbe2e28f01ae918c8d0e0ef34bd84b48f;p=helm.git diff --git a/matita/components/binaries/matex/test/matex.sty b/matita/components/binaries/matex/test/matex.sty index b01223fef..4bd7393ea 100644 --- a/matita/components/binaries/matex/test/matex.sty +++ b/matita/components/binaries/matex/test/matex.sty @@ -1,33 +1,48 @@ \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{matex}[2016/06/21 MaTeX Package] +\ProvidesPackage{matex}[2017/02/27 MaTeX Package] \RequirePackage{xcolor} \RequirePackage[lcgreekalpha]{stix} \ExecuteOptions{} \ProcessOptions* +\newcommand*\neverindent{\setlength\parindent{0pt}} + \makeatletter -\newcommand*\ma@cast{\mathbin:} -\newcommand*\ma@abbr{\mathrel\eqdef} -\newcommand*\ma@prod{\mathord\Pi} -\newcommand*\ma@arrw{\mathrel\Rightarrow} -\newcommand*\ma@fall{\mathord\forall} -\newcommand*\ma@impl{\mathrel\supset} -\newcommand*\ma@case{\mathrel\questeq} -\newcommand*\ma@caze{\mathrel\mapsto} -\newcommand*\ma@pair{\mathbin\mapsto} +\newcommand*\ma@sort{\mathrm} +\newcommand*\ma@gref{\mathrm} +\newcommand*\ma@lref{\mathrm} +\newcommand*\ma@decl{\mathbf} \definecolor{ma@black}{HTML}{000000} \definecolor{ma@blue}{HTML}{00005F} \definecolor{ma@purple}{HTML}{3F005F} +\definecolor{ma@green}{HTML}{004F00} +\newcommand*\ma@punct{ma@green} \newcommand*\ma@fwd{ma@black} \newcommand*\ma@open{ma@blue} \newcommand*\ma@exit{ma@blue} \newcommand*\ma@prim{ma@purple} \newcommand*\ma@qed{ma@blue} -\newcommand*\neverindent{\setlength\parindent{0pt}} +\newcommand*\ma@constr[1]{{\color{\ma@punct}#1}} +\newcommand*\ma@thop[1]{\mathpunct{#1}\allowbreak} + +\newcommand*\ma@cast{\mathbin\ma@constr{:}} +\newcommand*\ma@abbr{\mathrel\ma@constr{\eqdef}} +\newcommand*\ma@prod{\mathord\ma@constr{\Pi}} +\newcommand*\ma@arrw{\mathrel\ma@constr{\Rightarrow}} +\newcommand*\ma@fall{\mathord\ma@constr{\forall}} +\newcommand*\ma@impl{\mathrel\ma@constr{\supset}} +\newcommand*\ma@case{\mathrel\ma@constr{\questeq}} +\newcommand*\ma@caze{\mathrel\ma@constr{\mapsto}} +\newcommand*\ma@pair{\mathbin\ma@constr{\mapsto}} +\newcommand*\ma@cm{\ma@thop{\ma@constr{,}}} +\newcommand*\ma@or{\mathbin\ma@constr{\vert}} +\newcommand*\ma@op{\mathopen\ma@constr{(}} +\newcommand*\ma@cp{\mathclose\ma@constr{)}\allowbreak} +\newcommand*\ma@qm{\mathord\ma@constr{?}} %\newcommand*\setlabel[1]{\protected@edef\@currentlabel{#1}} %\newcommand*\ObjLabel[1]{\label{obj:#1}\hypertarget{obj:#1}{}} @@ -54,14 +69,18 @@ \newcommand*\ObjIncNode{} \newcommand*\ObjNode{} -\newcommand*\ma@thehead[3]{\ObjIncNode\textbf{#1 \ObjNode(\ma@settarget{#2}{#3})}\neverindent\par} -\newcommand*\ma@theneck[1]{\textsl{#1}\neverindent\par} - -\newenvironment{axiom}[2]{\ma@thehead{Axiom}{#1}{#2}$}{$\par} -\newenvironment{declaration}[2]{\ma@thehead{Declaration}{#1}{#2}$}{$\par} -\newenvironment{definition}[2]{$}{$\par} -\newenvironment{proposition}[2]{\ma@thehead{Proposition}{#1}{#2}$}{$\par} -\newenvironment{proof}[2]{\ma@theneck{Proof}}{\par} +\newcommand*\ma@thehead[4]{\ObjIncNode + \textbf{#1 \ObjNode:} (\ma@settarget{#3}{#4}) \textit{#2:}% + \neverindent\par +} +\newcommand*\ma@theneck[1]{\textit{#1:}\neverindent\par} + +\newenvironment{assumption}[2]{\ma@thehead{Assumption}{has type}{#1}{#2}$}{$\par} +\newenvironment{axiom}[2]{\ma@thehead{Axiom}{states}{#1}{#2}$}{$\par} +\newenvironment{declaration}[2]{\ma@thehead{Definition}{of type}{#1}{#2}$}{$\par} +\newenvironment{definition}[2]{\ma@theneck{is defined as}$}{$.\par} +\newenvironment{proposition}[2]{\ma@thehead{Proposition}{stating}{#1}{#2}$}{$\par} +\newenvironment{proof}[2]{\ma@theneck{is proved by}}{\par} \newenvironment{ma@step}[1]{\color{#1}}{\par} \newcommand*\ma@tmp{} @@ -70,35 +89,30 @@ \ifx\ma@tmp\empty\let\ma@tmp=\ma@last\else #1#2{#5}\let\ma@tmp=\ma@list\fi \ma@tmp{#3}{#2}{#3}{#4}% } -\newcommand*\ma@thop[1]{\mathpunct{#1}\allowbreak} -\newcommand*\ma@cm{\ma@thop{,}} -\newcommand*\ma@or{\mathbin\vert} -\newcommand*\ma@cp{)\allowbreak} -\newcommand*\ma@qm{\mathord{?}} \newcommand*\ma@arg[1]{#1} -\newcommand*\ma@args{(\ma@list\relax\ma@arg\ma@cm\ma@cp} +\newcommand*\ma@args{\ma@op\ma@list\relax\ma@arg\ma@cm\ma@cp} \newcommand*\ma@cases{\ma@list\relax\ma@arg\ma@or\relax} \newcommand*\ma@bind{\ma@thop{}} \newcommand*\ma@skip[1]{} -\newcommand*\PROP{\mathord\mathrm{PROP}} -\newcommand*\CROP[1]{\mathord\mathrm{CROP}} -\newcommand*\TYPE[1]{\mathord\mathrm{TYPE}} -\newcommand*\LREF[2]{\ma@setoptlink{#1}{#2}} -\newcommand*\GREF[2]{\ma@setoptlink{\mathrm{#1}}{#2}} -\newcommand*\ABBR[4]{(\ma@setopttarget{#1}{#2}\ma@abbr #4\ma@cast #3)\ma@bind} -\newcommand*\ABST[3]{(\ma@setopttarget{#1}{#2}\ma@cast #3)\ma@bind} +\newcommand*\PROP{\mathord\ma@sort{PROP}} +\newcommand*\CROP[1]{\mathord\ma@sort{CROP}} +\newcommand*\TYPE[1]{\mathord\ma@sort{TYPE}} +\newcommand*\LREF[2]{\ma@setoptlink{\ma@lref{#1}}{#2}} +\newcommand*\GREF[2]{\ma@setoptlink{\ma@gref{#1}}{#2}} +\newcommand*\ABBR[4]{\ma@op\ma@setopttarget{\ma@lref{#1}}{#2}\ma@abbr #4\ma@cast #3\ma@cp\ma@bind} +\newcommand*\ABST[3]{\ma@op\ma@setopttarget{\ma@lref{#1}}{#2}\ma@cast #3\ma@cp\ma@bind} \newcommand*\PROD[3]{\def\ma@tmp{#2}% \ifx\ma@tmp\empty #3\ma@arrw\else - (\ma@prod\ma@setopttarget{#1}{#2}\ma@cast #3)\ma@bind\fi + \ma@op\ma@prod\ma@setopttarget{\ma@lref{#1}}{#2}\ma@cast #3\ma@cp\ma@bind\fi } \newcommand*\FALL[3]{\def\ma@tmp{#2}% \ifx\ma@tmp\empty #3\ma@impl\else - (\ma@fall\ma@setopttarget{#1}{#2}\ma@cast #3)\ma@bind\fi + \ma@op\ma@fall\ma@setopttarget{\ma@lref{#1}}{#2}\ma@cast #3\ma@cp\ma@bind\fi } \newcommand*\APPL[1]{#1\ma@args} \newcommand*\CASE[3]{#3\ma@case\ma@cases} -\newcommand*\CAZE[3]{#3\ma@caze(\ma@qm\ma@cast #2)\ma@cases} +\newcommand*\CAZE[3]{#3\ma@caze\ma@op\ma@qm\ma@cast #2\ma@cp\ma@cases} \newcommand*\PAIR[2]{#1\ma@pair #2} \newcommand*\ma@term[1]{$#1$} @@ -106,19 +120,19 @@ \newcommand*\ma@comma{, } \newcommand*\ma@stop{.\end{ma@step}} \newcommand*\ma@head[6]{\def\ma@tmp{#5}% - \ifx\ma@tmp\empty\begin{ma@step}{#1}$\mathbf{\ma@setopttarget{#2}{#3}}$% - \else\begin{ma@step}{#4}$\mathbf{\ma@setopttarget{#5}{#6}}$% + \ifx\ma@tmp\empty\begin{ma@step}{#1}$\ma@setopttarget{\ma@decl{#2}}{#3}$% + \else\begin{ma@step}{#4}$\ma@setopttarget{\ma@decl{#5}}{#6}$% \fi } \newcommand*\ma@tail{\ma@list\ma@with\ma@term\ma@comma\ma@stop} \newcommand*\ma@type[1]{\def\ma@tmp{#1}% - \ifx\ma@tmp\empty\mathrm{(omitted)}\else #1\fi + \ifx\ma@tmp\empty\ma@gref{(omitted)}\else #1\fi } \newcommand*\EXIT[1]{\ma@head{\ma@exit}{end}{}{}{}{} of block #1\ma@stop} \newcommand*\OPEN[3]{\ma@head{}{}{}{\ma@open}{#1}{#2} is this block #3\ma@stop} -\newcommand*\PRIM[3]{\ma@head{}{}{}{\ma@prim}{#1}{#2} will have type $\ma@type{#3}$\ma@stop} -\newcommand*\DECL[3]{\ma@head{\ma@qed}{\_QED}{}{\ma@fwd}{#1}{#2} has type $\ma@type{#3}$\par} +\newcommand*\PRIM[3]{\ma@head{}{}{}{\ma@prim}{#1}{#2} will have type: $\ma@type{#3}$\ma@stop} +\newcommand*\DECL[3]{\ma@head{\ma@qed}{\_QED}{}{\ma@fwd}{#1}{#2} has type: $\ma@type{#3}$\par} \newcommand*\BODY[1]{being $#1$\ma@stop} \newcommand*\STEP[1]{by $#1$\ma@tail} \newcommand*\DEST[1]{by cases on $#1$\ma@tail}