texlive[46178] Master/texmf-dist: rec-thy (31dec17)

commits+karl at tug.org commits+karl at tug.org
Sun Dec 31 23:10:53 CET 2017


Revision: 46178
          http://tug.org/svn/texlive?view=revision&revision=46178
Author:   karl
Date:     2017-12-31 23:10:53 +0100 (Sun, 31 Dec 2017)
Log Message:
-----------
rec-thy (31dec17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/rec-thy/README
    trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.pdf
    trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.tex
    trunk/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty

Modified: trunk/Master/texmf-dist/doc/latex/rec-thy/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rec-thy/README	2017-12-31 22:10:30 UTC (rev 46177)
+++ trunk/Master/texmf-dist/doc/latex/rec-thy/README	2017-12-31 22:10:53 UTC (rev 46178)
@@ -23,4 +23,6 @@
 01/01/2011 - v1.2
 06/20/2012 - v1.3
 09/26/2017 - v2.0 - Added support for introducing requirements, the subfunction relation and probably other undocumented features
-10/05/2017 - v2.1 - Fixed way packages are required so rec-thy can be loaded in a flexible order.  Also fixed one or two bugs.
\ No newline at end of file
+10/05/2017 - v2.1 - Fixed way packages are required so rec-thy can be loaded in a flexible order.  Also fixed one or two bugs.
+11/14/2017 - v2.2 - Fixed \Tdeg so it works different on symbols and vars and added \Tdegof and \Tvarof.  Added \subfunneq and \supfunneq.
+12/31/2017 - v2.3 - Added proof cases helper. Also fixed the issue with \ncequiv in XeLaTeX
\ No newline at end of file

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

Modified: trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.tex	2017-12-31 22:10:30 UTC (rev 46177)
+++ trunk/Master/texmf-dist/doc/latex/rec-thy/rec-thy.tex	2017-12-31 22:10:53 UTC (rev 46178)
@@ -5,7 +5,7 @@
 %  Copyright (c) 2010 . All rights reserved.
 %
 
-\documentclass[11pt,oneside]{article}
+\documentclass[leqno,11pt]{amsart}
 \usepackage{amsmath}
 % \RequirePackage{amsmath}
 \usepackage[disallowspaces,fixamsmath]{mathtools}
@@ -12,12 +12,48 @@
 \usepackage{amssymb}
 \usepackage{amsthm}
 % \usepackage{amsfonts}
-\usepackage{rec-thy}
+% \DeclareMathAlphabet{\mathpzc}{OT1}{pzc}{m}{it}
+% \DeclareMathAlphabet{\mathbrush}{T1}{pbsi}{xl}{n}
+\usepackage{mathspec}
+
+\usepackage{unicode-math}
+\unimathsetup{math-style=TeX,bold-style=TeX,nabla=upright,partial=italic}
+\setmathfont{xits-math.otf}
+\setmathfont{xits-math.otf}[range={cal,bfcal},StylisticSet=1]
+
+\usepackage{hyperxmp}
+\usepackage[unicode,psdextra,pdfusetitle]{hyperref}
+\hypersetup{%
+	%pdfauthor={Peter M. Gerdes},
+            pdfsubject={LaTeX Package for Typesetting Computability Theory},
+            pdfkeywords={LaTeX;LaTex Package;Recursion Theory;Computability Theory;Mathematical Logic;r.e. sets; Turing reducibility;arithmetic hierarchy},
+            colorlinks=true,
+            citecolor=blue,
+            urlcolor=blue,
+            linkcolor=magenta,
+            pdfborder={0 0 0},
+            breaklinks=true,
+			pdfdisplaydoctitle=true,
+			pdfcontactaddress={107 Ardsley Drive},
+         	pdfcontactcity={Syracuse, NY},
+         	pdfcontactpostcode={13214},
+         	pdfcontactcountry={United States},
+        	pdfcontactphone={256-333-0128},
+        	pdfcontactemail={gerdes at invariant.org},
+        	pdfcontacturl={http://invariant.org},
+        	pdflang={en},
+        	% pdfauthortitle={Technical Assistant, Level III},
+        	% pdfdate={\today},
+        	pdfcopyright={Copyright (C) \today, Peter M. Gerdes},
+        	baseurl={http://invariant.org}
+}
+\usepackage{cleveref}
+\usepackage{listings}
 \usepackage{multirow}
 \usepackage{booktabs}
 \usepackage{xtab}
-\usepackage{hyperref}
-\usepackage{listings}
+\usepackage{rec-thy}
+\usepackage{metalogo}
 
 
 \newcommand{\tab}{\hspace{1cm}}
@@ -25,7 +61,7 @@
 %
 % Running Headers and footers
 %\usepackage{fancyhdr}
-%\usepackage[parfill]{parskip}
+\usepackage[parfill]{parskip}
 %\usepackage{setspace}
 
 % Multipart figures
@@ -47,7 +83,7 @@
 
 \title{The rec-thy Package}
 \author{Peter M. Gerdes (gerdes at invariant.org)}
-\date{2011-01-01: Version 2.1}
+\date{\today: Version 2.3}
 
 \begin{document}
 
@@ -58,7 +94,7 @@
 
 
 \begin{abstract}
-	The rec-thy package is designed to help mathematicians publishing papers in the area of recursion theory (aka Computability Theory) easily use standard notation.  This includes easy commands to denote Turing reductions, Turing functionals, \ce sets, stagewise computations, forcing and syntactic classes.
+\noindent The rec-thy package is designed to help mathematicians publishing papers in the area of recursion theory (aka Computability Theory) easily use standard notation.  This includes easy commands to denote Turing reductions, Turing functionals, \ce sets, stagewise computations, forcing and syntactic classes.
 \end{abstract}
 
 \section{Introduction}
@@ -468,6 +504,77 @@
 		\bottomrule
 \end{xtabular}
 
+\subsection{Proof Cases}
+
+\begin{proof}
+The pfcases enviornment provides a numbered, referenceable division of a proof segment into cases.
+
+\begin{pfcases}
+\case[\( x = y \)]\label{case:first} %  
+	Lorem ipsum dolor sit amet, consectetur adipiscing elit. In et enim eget nisl luctus venenatis. Pellentesque sed erat sodales, tincidunt quam non, eleifend risus. Fusce aliquam dignissim pharetra. Integer id dui ac libero tincidunt consectetur. Sed laoreet nunc nec semper laoreet. 
+
+	Vestibulum semper eget velit ut lobortis. In vel finibus est. Nullam tellus dolor, pellentesque sed orci sed, ornare pretium diam. Nam vel tincidunt tellus. Nulla at mi nisl. 
+
+\case[\( x = z \land z > q \land z < r \land x + z = r \)] \label{case:second} %
+	Quisque consectetur, felis non congue dictum, mauris mi suscipit sem, vel laoreet justo ipsum in tellus. Suspendisse blandit malesuada velit faucibus pulvinar. 
+
+\begin{pfcases}
+\case[\( x=2 \)] \label{case:second:sub1} % 
+	ipsum dolor sit amet, consectetur adipiscing elit. In et enim eget nisl luctus venenatis. Pellentesque sed erat sodales, tincidunt quam non, eleifend risus. Fusce aliquam dignissim pharetra. Integer id dui ac libero tincidunt consectetur. Sed laoreet nunc nec semper laoreet. 
+\case[\( x = 3 \)] \label{case:second:sub2} % 
+	consectetur adipiscing elit. In et enim eget nisl luctus venenatis. Pellentesque sed erat sodales, tincidunt quam non, eleifend 
+\end{pfcases}
+
+\end{pfcases}
+
+We can now reference the case number \ref{case:second} and cleveref \cref{case:second} as well as case \ref{case:second:sub1} and cleveref \cref{case:second:sub2}.
+
+
+To skip numbering and instead reference with the argument to \verb=\case= use pfcases*
+\begin{pfcases*}
+\case[\( x = y \)]\label{case*:first}  Lorem ipsum dolor sit amet, consectetur adipiscing elit. In et enim eget nisl luctus venenatis. Pellentesque sed erat sodales, tincidunt quam non, eleifend risus. Fusce aliquam dignissim pharetra. Integer id dui ac libero tincidunt consectetur. Sed laoreet nunc nec semper laoreet. 
+
+Vestibulum semper eget velit ut lobortis. In vel finibus est. Nullam tellus dolor, pellentesque sed orci sed, ornare pretium diam. Nam vel tincidunt tellus. Nulla at mi nisl. 
+
+\case[\( x = z \land z > q \land z < r \land x + z = r \)] \label{case*:second} Quisque consectetur, felis non congue dictum, mauris mi suscipit sem, vel laoreet justo ipsum in tellus. Suspendisse blandit malesuada velit faucibus pulvinar. 
+\begin{pfcases*}
+\case[\( x=2 \)] \label{case*:second:sub1} Lorem ipsum dolor sit amet, consectetur adipiscing elit. In et enim eget nisl luctus venenatis. Pellentesque sed erat sodales, tincidunt quam non, eleifend risus. Fusce aliquam dignissim pharetra. Integer id dui ac libero tincidunt consectetur. Sed laoreet nunc nec semper laoreet. 
+\case[\( x = 3 \)] \label{case*:second:sub2}  consectetur adipiscing elit. In et enim eget nisl luctus venenatis. Pellentesque sed erat sodales, tincidunt quam non, eleifend 
+\end{pfcases*}
+\end{pfcases*}
+\end{proof}
+
+Again we can ref case \ref{case*:second} and cleverref that \cref{case*:second}.  Also case \ref{case*:second:sub1} and cleveref \cref{case*:second:sub2}.
+
+If the choice of cleveref labels aren't to your taste please let me know and I will consider changing them.  Also, note that by passing the options \verb!pfcasefont=textit! one can change the font used to typeset Case to italics (or whatever other font command you choose).
+
+\vspace{.5cm}
+
+The above is accomplished with the following code.
+\begin{verbatim}
+\begin{proof}
+\begin{pfcases}
+	\case[\( x = y \)]\label{case:first} ...
+	\case[\( x = z \land z > q \land z < r \land x + z = r \)] \label{case:second} ..
+		\begin{pfcases}
+			\case[\( x=2 \)] \label{case:second:sub1} ..
+			\case[\( x = 3 \)] \label{case:second:sub2}..
+		\end{pfcases}
+\end{pfcases}
+.. \ref{case:second}.. \cref{case:second} ..  \ref{case:second:sub1} .. \cref{case:second:sub2}
+\begin{pfcases*}
+	\case[\( x = y \)]\label{case*:first} ..
+	\case[\( x = z \land z > q \land z < r \land x + z = r \)] \label{case*:second} ..
+		\begin{pfcases*}
+			\case[\( x=2 \)] \label{case*:second:sub1} ..
+			\case[\( x = 3 \)] \label{case*:second:sub2}
+		\end{pfcases*}
+.. \ref{case*:second} .. \cref{case*:second} .. \ref{case*:second:sub1} .. \cref{case*:second:sub2}.
+\end{proof}
+\end{verbatim}
+
+
+
 \subsection{MRref}
 
 Finally to enable the mrref helper macros pass the option \verb=mrref=.\\  These macros normalize the formating of mathscinet references for supported bibliography styles and ensure the MR numbers link to the mathscinet page of the article.  Unless you have a good reason (like journal formatting guidelines) there is no reason not to always pass this option.  Note this option requires the hyperref package.
@@ -476,6 +583,8 @@
 \section{Release Notes}
 
 \begin{itemize}
+	\item[2.3] 12/31/2017 - Added proof cases helper.  Also fixed the issue with \verb=\ncequiv= in \XeLaTeX
+	\item[2.2] 11/14/2017 - Fixed \verb=\Tdeg= so it works different on symbols and vars and added \verb=\Tdegof= and \verb=\Tvarof=.  Added \verb=\subfunneq= and \verb=\supfunneq=.
 	\item[2.1] 10/05/2017 - Fixed way packages are required so rec-thy can be loaded in a flexible order.  Also fixed one or two bugs.
 	\item[2.0] 09/26/2017 - Added support for introducing requirements, the subfunction relation and probably other undocumented features
 	\item[1.3] 06/20/2012 - Added abbreviations for computable infinitary formulas and made a few minor fixes.

Modified: trunk/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty	2017-12-31 22:10:30 UTC (rev 46177)
+++ trunk/Master/texmf-dist/tex/latex/rec-thy/rec-thy.sty	2017-12-31 22:10:53 UTC (rev 46178)
@@ -1,5 +1,5 @@
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{rec-thy}[2017/09/26 v2.1  Provides commands for writing up recursion theory papers]
+\ProvidesPackage{rec-thy}[2017/12/31 v2.3  Provides commands for writing up recursion theory papers]
 \makeatletter
 % \newcommand*{\@curpack}{\@currname} %rec-thy.sty
 \newcommand*{\@packinfo}[1]{\PackageInfo{rec-thy}{#1}}
@@ -81,6 +81,7 @@
 \newif\ifrecthy at nostructresets \recthy at nostructresetsfalse
 \newif\ifrecthy at noreqhelper \recthy at noreqhelperfalse
 \newif\ifrecthy at nosubfun \recthy at nosubfunfalse
+\newif\ifrecthy at nopfcases \recthy at nopfcasesfalse
 \newif\ifrecthy at hyperreqs \recthy at hyperreqstrue
 
 \DeclareOptionX{nohyphenation}{\recthy at nohyphenationtrue}
@@ -104,15 +105,124 @@
 \DeclareOptionX{nostructresets}{\recthy at nostructresetstrue}
 \DeclareOptionX{noreqhelper}{\recthy at noreqhelpertrue}
 \DeclareOptionX{nosubfun}{\recthy at nosubfuntrue}
+\DeclareOptionX{nopfcases}{\recthy at nopfcasestrue}
 \DeclareOptionX{nohyperreqs}{\recthy at hyperreqsfalse}
 
 \DeclareOptionX{degjoin}{\def\Tjoin{\Tdegjoin}}
 
+\let\pmg at casefont=\textsc
+\DeclareOptionX{pfcasefont}[textsc]{\edef\pmg at casefont{\expandafter\noexpand\csname #1 \endcsname}}
+
 \AtEndOfPackage{
+	\ifrecthy at nopfcases
+		\@packinfo{Not loading Proof Cases Helper}
+	\else
+		\@packinfo{Loading Proof Cases Helper.}
+		\RequirePackage{enumitem}
+		\ltx at ifpackageloaded{cleveref}{
+		% \crefname{pfcasesnonumi}{case}{cases} 
+		% \Crefname{pfcasesnonumi}{Case}{Cases}
+		\crefformat{pfcasesnonumi}{#2case~#1#3}
+		\Crefformat{pfcasesnonumi}{#2Case~#1#3}
+		% \crefname{pfcasesnonumii}{case}{cases} 
+		% \Crefname{pfcasesnonumii}{Case}{Cases}
+		\crefformat{pfcasesnonumii}{#2subcase~#1#3}
+		\Crefformat{pfcasesnonumii}{#2Subcase~#1#3}
+		% \crefname{pfcasesnonumiii}{case}{cases} 
+		% \Crefname{pfcasesnonumiii}{Case}{Cases}
+		\crefformat{pfcasesnonumiii}{#2subsubcase~#1#3}
+		\Crefformat{pfcasesnonumiii}{#2Subsubcase~#1#3}
+		% \crefname{pfcasesnumberedi}{case}{cases} 
+		% \Crefname{pfcasesnumberedi}{Case}{Cases}
+		\crefformat{pfcasesnumberedi}{#2case~#1#3}
+		\Crefformat{pfcasesnumberedi}{#2Case~#1#3}
+		% \crefname{pfcasesnumberedii}{case}{cases} 
+		% \Crefname{pfcasesnumberedii}{Case}{Cases}
+		\crefformat{pfcasesnumberedii}{#2case~#1#3}
+		\Crefformat{pfcasesnumberedii}{#2Case~#1#3}
+		% \crefname{pfcasesnumberediii}{case}{cases} 
+		% \Crefname{pfcasesnumberediii}{Case}{Cases}
+		\crefformat{pfcasesnumberediii}{#2case~#1#3}
+		\Crefformat{pfcasesnumberediii}{#2Case~#1#3}
+		}{}
+		\newlist{pfcasesnonum}{enumerate}{3}
+		\setlist[pfcasesnonum]{
+		  label={\pmg at casefont{Case}}\protect\thiscase:~,
+		  align=left,
+		  labelsep=!,
+		  itemindent=-1em,
+		  leftmargin=2em,
+		  labelindent=0pt,
+		  labelwidth=0pt
+		}
+		\setlist[pfcasesnonum,1]{
+			before=\def\pfcasecounter at pmg{pfcasesnonumi},
+		}
+		\setlist[pfcasesnonum,2]{
+			before=\def\pfcasecounter at pmg{pfcasesnonumii},
+		}
+		\setlist[pfcasesnonum,3]{
+			before=\def\pfcasecounter at pmg{pfcasesnonumiii},
+		}
+		\newlist{pfcasesnumbered}{enumerate}{3}
+		\setlist[pfcasesnumbered]{
+		  align=left,
+		  labelsep=!,
+		  itemindent=-1em,
+		  leftmargin=2em,
+		  labelindent=0pt,
+		  labelwidth=0pt
+		}
+		\setlist[pfcasesnumbered,1]{
+			before=\def\pfcasecounter at pmg{pfcasesnumberedi},
+		  label={{\pmg at casefont{Case}}~\arabic*\protect\thiscase:~},
+		  ref={\arabic*},
+		}
+		\setlist[pfcasesnumbered,2]{
+			before=\def\pfcasecounter at pmg{pfcasesnumberedii},
+		  label={{\pmg at casefont{Case}}~\arabic{pfcasesnumberedi}\alph*:\protect\thiscase.~},
+		  ref={\arabic{pfcasesnumberedi}\alph*},
+		}
+		\setlist[pfcasesnumbered,3]{
+			before=\def\pfcasecounter at pmg{pfcasesnumberediii},
+		  label={{\pmg at casefont{Case}}~\arabic{pfcasesnumberedi}\alph{pfcasesnumberedii}.\roman*:\protect\thiscase.~},
+		  ref={\arabic{pfcasesnumberedi}\alph{pfcasesnumberedii}.\roman*},
+		}
+		\newenvironment{pfcases*}{
+				\providecommand{\case}[1][]{%
+		  \if\relax\detokenize{##1}\relax
+		    \def\thiscase{}%
+		  \else
+		    \def\thiscase{~##1}%
+		  \fi
+		  \item  \ltx at ifpackageloaded{cleveref}{%
+		  \cref at constructprefix{pfcases}{\cref at result}%
+		  \protected at xdef\cref at currentlabel{[\pfcasecounter at pmg][][\cref at result]##1}}{}  \protected at edef\@currentlabel{##1}%
+		}
+		\begin{pfcasesnonum}
+		}
+		{\end{pfcasesnonum}}
+
+		\newenvironment{pfcases}{
+				\providecommand{\case}[1][]{%
+		  \if\relax\detokenize{##1}\relax
+		    \def\thiscase{}%
+		  \else
+		    \def\thiscase{~##1}%
+		  \fi
+		  \item \ltx at ifpackageloaded{cleveref}{%
+		   \cref at constructprefix{\pfcasecounter at pmg}{\cref at result}
+		   \protected at xdef\cref at currentlabel{[\pfcasecounter at pmg][][\cref at result] \csname the\pfcasecounter at pmg \endcsname}}{}%
+		}
+		\begin{pfcasesnumbered}}{\end{pfcasesnumbered}}
+	\fi
+}
+
+\AtEndOfPackage{
 \ifrecthy at nosubfun
 	\@packinfo{Not loading subfun defs.}
 \else
-	\@packinfo{Loading subfun defs DOCUMENT ME.}
+	\@packinfo{Loading subfun defs.}
 	%DOCUMENT ME
 	\newcommand*{\subfun}[1][]{\prec\ifthenelse{\isempty{#1}}{_{#1}}{}}
 	\newcommand*{\supfun}[1][]{\succ\ifthenelse{\isempty{#1}}{_{#1}}{}}
@@ -122,6 +232,8 @@
 	\newcommand*{\supfuneq}[1][]{\succeq\ifthenelse{\isempty{#1}}{_{#1}}{}}
 	\newcommand*{\nsubfuneq}[1][]{\npreceq\ifthenelse{\isempty{#1}}{_{#1}}{}}
 	\newcommand*{\nsupfuneq}[1][]{\nsucceq\ifthenelse{\isempty{#1}}{_{#1}}{}}
+	\newcommand*{\subfunneq}[1][]{\precneq\ifthenelse{\isempty{#1}}{_{#1}}{}}
+	\newcommand*{\supfunneq}[1][]{\succneq\ifthenelse{\isempty{#1}}{_{#1}}{}}
 \fi
 }
 
@@ -1167,8 +1279,8 @@
 	}}
 
 
-	\newcommand*{\cequiv}{\mathrel{\backsimeq}}
-	\newcommand*{\ncequiv}{\mathrel{\not\cequiv}}
+	\newcommand*{\cequiv}{\mathrel{\simeq}}
+	\newcommand*{\ncequiv}{\mathrel{\not\simeq}}
 	\newcommand*{\conv}[1][]{\mathpunct{\downarrow}_{#1}}
 	\let\converge=\conv
 	%\newcommand*{\convs}[1]{\ensuremath{\conv_{#1}}}
@@ -1207,8 +1319,21 @@
 
 
 	%%%%%%Turing Degrees
-	\newcommand*{\Tdeg}[1]{\utilde{\mathbf{#1}}}
+	\def\firsttokof at pmg#1{\first at pmg@rdmxs(#1)}
+	\def\first at pmg@rdmxs(#1#2){#1}
 
+	\newcommand*{\Tdegvar}[1]{\mathbf{#1}}
+	\newcommand*{\Tdegof}[1]{\utilde{#1}}
+	\newcommand*{\Tdeg}[1]{\ifthenelse{
+	%\equal{\detokenize{\Tzero}}{\futurelet\next at pmg\discard#1\@nil\expandafter\detokenize{\next at pmg}}
+										\equal{\detokenize{\Tzero}}{\detokenize{#1}} \OR  
+										\equal{\detokenize{\Tzero}}{\detokenize{#1}} \OR 
+										\equal{\detokenize{\zeroj}}{\detokenize{#1}} \OR 
+										\equal{\detokenize{\zerojj}}{\detokenize{#1}} \OR 
+										\equal{\detokenize{\zerojjj}}{\detokenize{#1}} \OR 
+										\equal{\string \zeron }{\expandafter\string \first at pmg@rdmxs(#1)}  
+									   }{\Tdegof{#1}}{\Tdegvar{#1}}}
+
 	\newcommand*{\Tjump}[1]{#1'}
 	\let\jump=\Tjump
 	\newcommand*{\jumpn}[2]{#1^{(#2)}}



More information about the tex-live-commits mailing list