summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-04-01 03:01:15 +0000
committerNorbert Preining <norbert@preining.info>2021-04-01 03:01:15 +0000
commitf78ba658b3ecd56053fe0837a4404d0c6c16a707 (patch)
tree68160ffbc8adda4460c84c98ab764cddbcefdf71 /macros/latex/contrib
parentd7fa794917856c6236da25ad082a9a52f2e73ffc (diff)
CTAN sync 202104010301
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/easybook/doc/easybook-demo.pdfbin262400 -> 262400 bytes
-rw-r--r--macros/latex/contrib/easybook/doc/easybook-demo.tex4
-rw-r--r--macros/latex/contrib/easybook/doc/easybook.pdfbin258854 -> 260036 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx94
-rw-r--r--macros/latex/contrib/knowledge/README.md4
-rw-r--r--macros/latex/contrib/knowledge/knowledge-code.dtx12
-rw-r--r--macros/latex/contrib/knowledge/knowledge.pdfbin733968 -> 734028 bytes
-rw-r--r--macros/latex/contrib/knowledge/knowledge.tex1
-rw-r--r--macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdfbin2577327 -> 2599544 bytes
-rw-r--r--macros/latex/contrib/profcollege/latex/ProfCollege.sty574
-rw-r--r--macros/latex/contrib/rec-thy/README1
-rw-r--r--macros/latex/contrib/rec-thy/rec-thy.pdfbin121041 -> 127739 bytes
-rw-r--r--macros/latex/contrib/rec-thy/rec-thy.sty1560
-rw-r--r--macros/latex/contrib/rec-thy/rec-thy.tex166
-rw-r--r--macros/latex/contrib/tudscr/README.md12
-rw-r--r--macros/latex/contrib/tudscr/doc/LICENSE.md2
-rw-r--r--macros/latex/contrib/tudscr/doc/tudscr.pdfbin1096819 -> 1099181 bytes
-rw-r--r--macros/latex/contrib/tudscr/doc/tudscr_print.pdfbin1081286 -> 1083765 bytes
-rw-r--r--macros/latex/contrib/tudscr/doc/tudscrsource.pdfbin1053122 -> 1055711 bytes
-rw-r--r--macros/latex/contrib/tudscr/doc/tutorials/mathswap.pdfbin121115 -> 121768 bytes
-rw-r--r--macros/latex/contrib/tudscr/doc/tutorials/mathtype.pdfbin138034 -> 138619 bytes
-rw-r--r--macros/latex/contrib/tudscr/doc/tutorials/treatise.pdfbin856613 -> 857680 bytes
-rw-r--r--macros/latex/contrib/tudscr/source/doc/tudscr.tex2
-rw-r--r--macros/latex/contrib/tudscr/source/doc/tutorials/mathswap.tex2
-rw-r--r--macros/latex/contrib/tudscr/source/doc/tutorials/mathtype.tex2
-rw-r--r--macros/latex/contrib/tudscr/source/doc/tutorials/treatise.tex13
-rw-r--r--macros/latex/contrib/tudscr/source/tudscr-comp.dtx8
-rw-r--r--macros/latex/contrib/tudscr/source/tudscr-fonts.dtx20
-rw-r--r--macros/latex/contrib/tudscr/source/tudscr-misc.dtx20
-rw-r--r--macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx8
-rw-r--r--macros/latex/contrib/tudscr/source/tudscr-title.dtx2
-rw-r--r--macros/latex/contrib/tudscr/source/tudscr-version.dtx4
32 files changed, 1596 insertions, 915 deletions
diff --git a/macros/latex/contrib/easybook/doc/easybook-demo.pdf b/macros/latex/contrib/easybook/doc/easybook-demo.pdf
index 23020eff17..3c9dc0400a 100644
--- a/macros/latex/contrib/easybook/doc/easybook-demo.pdf
+++ b/macros/latex/contrib/easybook/doc/easybook-demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/doc/easybook-demo.tex b/macros/latex/contrib/easybook/doc/easybook-demo.tex
index 05e371c34d..ada6feaa91 100644
--- a/macros/latex/contrib/easybook/doc/easybook-demo.tex
+++ b/macros/latex/contrib/easybook/doc/easybook-demo.tex
@@ -44,7 +44,7 @@
thmset =
{
thmbox = true,
- numberwith = chapter,
+ within = chapter,
bodyfont = \normalfont,
headpunct = {.}
},
@@ -99,7 +99,7 @@
\url{https://latexstudio.net} \\
\url{https://gitee.com/texl3/easybook}\thanks{Gitee为项目的主要发布地址。}
}
-\date{2021/03/25\hskip\ccwd\relax v1.24}
+\date{2021/03/31\hskip\ccwd\relax v1.24a}
\frontmatter[roman]
\maketitle
diff --git a/macros/latex/contrib/easybook/doc/easybook.pdf b/macros/latex/contrib/easybook/doc/easybook.pdf
index e14364234e..e288be0575 100644
--- a/macros/latex/contrib/easybook/doc/easybook.pdf
+++ b/macros/latex/contrib/easybook/doc/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index e71b2b46e4..6578c6d5fe 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -73,7 +73,7 @@ The latest version of this license is in
%
% \title{\sffamily easybook书籍文档类}
% \author{瞿毅}
-% \date{2021/03/25\hskip\ccwd\relax v1.24\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/03/31\hskip\ccwd\relax v1.24a\thanks{\url{https://gitee.com/texl3/easybook}}}
% \maketitle
% \begin{abstract}
% \cls{easybook} 是基于 \cls{ctexbook} 书籍文档类创建以极简为风格的模板,可以看作对 \cls{ctexbook} 的进一步包装。虽然\CTeX 文档类提供了较好的中文支持,但想实现个性化功能一般需要在其基础上载入更多宏包来定制。\cls{easybook} 考虑了一些细节并载入一些常用宏包实现一般的排版需求,它适用于排版中英文书籍或笔记,甚至可稍加调整成为学位论文模板。
@@ -118,7 +118,7 @@ The latest version of this license is in
% 标准 \cls{book} 文类与 \cls{ctexbook} 文类的选项同样适用于本文档。除此之外选项分为两类
% \begin{itemize}
% \item 带有 \rexptarget\rexpstar{} 号的选项,需要在引入文档类的时候设定。
-% \item 带有 \exptarget\expstar{} 号的选项,需要通过\CTeX 宏集提供的用户接口命令 \tn{ctexset} 设定。
+% \item 带有 \exptarget\expstar{} 号的选项,需要通过\CTeX 宏集提供的用户接口命令 \tn{ctexset} 或节 \ref{sec:interface options} 中此选项所属模块接口命令设定。
% \end{itemize}
%
% \begin{function}[rEXP,added = 2021-01-05]{draft}
@@ -192,11 +192,23 @@ The latest version of this license is in
% \end{function}
%
% \section{接口选项}
+% \label{sec:interface options}
% \begin{function}[added = 2021-01-05]{\ctexset}
% \begin{syntax}
% \tn{ctexset}\marg{键值列表}
% \end{syntax}
-% \cls{easybook} 扩展了\CTeX 宏集\LaTeX 3风格键值的通用控制命令 \tn{ctexset},接口选项同样用它设置, 原有的键值列表仍然可用。
+% \cls{easybook} 扩展了\CTeX 宏集\LaTeX 3风格键值的通用控制命令 \tn{ctexset},接口选项同样用它设置, 原有的键值列表仍然可用。本文档类目前有九个模块用于完成排版的常规功能,如下表所示,它们也是相关接口的命令名
+% \begin{center}
+% \begin{tabular}{*{5}{c}}
+% \toprule
+% \hyperref[subsec:style]{风格} & \hyperref[subsec:hyperlinks]{超链接} & \hyperref[subsec:other font]{其它字体} & \hyperref[subsec:spacing]{行距} & \hyperref[subsec:reference]{参考文献} \\
+% style & link & elsefont & spread & bibset \\
+% \midrule
+% \hyperref[subsec:theorem of style]{定理样式} & \hyperref[subsec:page margins]{页面边距} & \hyperref[subsec:header and footer]{页眉页脚} & \hyperref[subsec:catalog style]{目录样式} & \\
+% thmset & geoset & hdrset & tocset & \\
+% \bottomrule
+% \end{tabular}
+% \end{center}
% \end{function}
%
% \begin{function}[EXP,added = 2021-01-08]{config}
@@ -208,6 +220,7 @@ The latest version of this license is in
% \end{function}
%
% \subsection{风格}
+% \label{subsec:style}
% \begin{function}[EXP,added = 2021-01-05,updated = 2021-03-18]{color,multoc,withpart,footwith,notomath,rulewidth,uppercase,figure-sep,table-sep,listing-sep,equation-sep,number-sep}
% \begin{syntax}
% color = <(none)|seaside|energy|cyberpunk>
@@ -242,7 +255,7 @@ The latest version of this license is in
% \item[multoc] 开启双栏目录,可与 \opt{onecolumn} 和 \opt{twocolumn} 选项配合出单栏正文、单栏目录,双栏正文、单栏目录,单栏正文、双栏目录和双栏正文、双栏目录四种方式。
% \item[withpart] 使章跟随每一部分编号,默认不跟随。
% \item[footwith] 使脚注跟随编号的计数器,默认跟随章,当开启新的一章时脚注编号从1开始。
-% \item[notomath] 使用 \opt{noto} 风格的数学字体,将会加载 \pkg{newtxmath} 宏包。
+% \item[notomath] 使用 \opt{noto} 风格的数学字体,将会加载 \pkg{newtxmath} 宏包。此选项默认关闭,此时可以使用 \pkg{unicode-math} 等宏包自定义数学字体。
% \item[rulewidth] 调整页眉、定理盒子以及代码框线条的粗细。
% \item[uppercase] 使用 \tn{rightmark} 及 \tn{leftmark} 获取标题内容设置页眉页脚时英文是否大小写。
% \item[figure-sep] 图片标题编号的连接符。
@@ -278,6 +291,7 @@ The latest version of this license is in
% \end{optdesc}
%
% \subsection{行距}
+% \label{subsec:spacing}
% \begin{function}[EXP,added = 2021-01-05,updated = 2021-02-13]{line,table,math,caption,footnote}
% \begin{syntax}
% line = <(1.3)>
@@ -301,6 +315,7 @@ The latest version of this license is in
% \end{optdesc}
%
% \subsection{其它字体}
+% \label{subsec:other font}
% \begin{function}[EXP,added = 2021-01-08,updated = 2021-02-13]{table-cap,figure-cap,listing-cap,footnote,marginpar}
% \begin{syntax}
% table-cap = <\tn{sffamily}\tn{small}>
@@ -323,6 +338,7 @@ The latest version of this license is in
% \end{optdesc}
%
% \subsection{参考文献}
+% \label{subsec:reference}
% \begin{function}[EXP,added = 2021-01-11,updated = 2021-03-15]{backend,bib-style,cite-style,bibfile}
% \begin{syntax}
% backend = <(bibtex)|biblatex>
@@ -358,10 +374,11 @@ The latest version of this license is in
% \end{function}
%
% \subsection{定理样式}
-% \begin{function}[EXP,added = 2021-01-12,updated = 2021-03-13]{thmbox,numberwith,headpunct,bodyfont,notefont,headfont,headindent,spaceabove,spacebelow,spacepost}
+% \label{subsec:theorem of style}
+% \begin{function}[EXP,added = 2021-01-12,updated = 2021-03-13]{thmbox,within,headpunct,bodyfont,notefont,headfont,headindent,spaceabove,spacebelow,spacepost}
% \begin{syntax}
% thmbox = <true|(false)>
-% numberwith = <(chapter)|section|其它环境|空置>
+% within = <(chapter)|section|其它环境|空置>
% headpunct = <(未设置)>
% bodyfont = <(未设置)>
% notefont = <(未设置)>
@@ -377,7 +394,7 @@ The latest version of this license is in
%
% \begin{optdesc}
% \item[thmbox] 开启定理及习题环境的盒子边框,需载入 \pkg{tcolorbox} 宏包才生效。
-% \item[numberwith] 定理编号跟随的计数器,默认跟随章的编号,也可以跟随其它定理环境的编号,当计数器增加时定理编号会从零开始,空置时不跟随其它计数器。
+% \item[within] 定理编号跟随的计数器,默认跟随章的编号,也可以跟随其它定理环境的编号,当计数器增加时定理编号会从零开始,空置时不跟随其它计数器。
% \item[headpunct] 定理标题末尾后的标记,在换行符或第一段内容的间隔之前。
% \item[bodyfont] 定理内容部分的字体。
% \item[notefont] 定理副标题内容的字体。
@@ -423,6 +440,7 @@ The latest version of this license is in
% \end{ctexexam}
%
% \subsection{页面边距}
+% \label{subsec:page margins}
% \begin{function}[EXP,added = 2021-01-13,updated = 2021-03-21]{footnotemargin,footparskip,footparindent,list-labelsep,left,top,hmargin,textwidth,includehead}
% \begin{syntax}
% footnotemargin = <脚注首行缩进|(0.5\tn{ccwd})>
@@ -438,22 +456,20 @@ The latest version of this license is in
% \ding{229} 以上选项路径为 \opt{geoset/...} \\
% \opt{geoset} 会将前4个选项以外的其它选项交给 \pkg{geometry} 宏包接口命令 \tn{geometry} 处理,并且选项的键值列表与之相同,上面的选项仅是一小部分,支持的参数可查阅宏包帮助文档。当在此设置页面大小时,会覆盖 \opt{paper} 选项的设置。
% \begin{ctexexam}
-% \ctexset
+% \geoset
% {
-% geoset =
-% {
-% top = 2.5cm,
-% bottom = 2.5cm,
-% left = 3.2cm,
-% right = 3.2cm,
-% list-labelsep = \hspace{0.5\ccwd}
-% }
+% top = 2.5cm,
+% bottom = 2.5cm,
+% left = 3.2cm,
+% right = 3.2cm,
+% list-labelsep = \hspace{0.5\ccwd}
% }
% \end{ctexexam}
% \changes{v1.21}{2021/01/13}{增加配置页面边距的选项。}
% \end{function}
%
% \subsection{页眉页脚}
+% \label{subsec:header and footer}
% \begin{function}[EXP,added = 2021-01-13,updated = 2021-03-14]{head-foot,chap-mark,sec-mark,headrule,footrule,footnoterule}
% \begin{syntax}
% head-foot = <页眉页脚中的内容>
@@ -478,24 +494,22 @@ The latest version of this license is in
% \end{syntax}
% 命令 \tn{easyhead} 和 \tn{easyfoot} 的含义与 \tn{fancyhead} 和 \tn{fancyfoot} 相同,它们用于 \opt{head-foot} 选项中,设置的是一个名为 \opt{fancy} 的页面风格。\pkg{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中E、O代表偶数、奇数,L、C、R代表左、中、右部分。单面打印时,含有偶数的选项无效。
% \begin{ctexexam}
-% \ctexset
+% \hdrset
% {
-% hdrset =
+% head-foot =
% {
-% head-foot =
-% {
-% \easyhead[ER]{\leftmark}
-% \easyhead[OL]{\rightmark}
-% \easyhead[EL,OR]{\textbf{\thepage}}
-% },
-% sec-mark = {\CTEXthesection\hspace{0.5\ccwd}},
-% headrule = {\hrule width \textwidth height 1pt}
-% }
+% \easyhead[ER]{\leftmark}
+% \easyhead[OL]{\rightmark}
+% \easyhead[EL,OR]{\textbf{\thepage}}
+% },
+% sec-mark = {\CTEXthesection\hspace{0.5\ccwd}},
+% headrule = {\hrule width \textwidth height 1pt}
% }
% \end{ctexexam}
% \end{function}
%
% \subsection{目录样式}
+% \label{subsec:catalog style}
% \begin{function}[EXP,added = 2021-01-13,updated = 2021-01-15]{format,indent,rule}
% \begin{syntax}
% format = <目录标题格式>
@@ -524,16 +538,13 @@ The latest version of this license is in
% \end{syntax}
% \tn{tocrule} 命令生成目录引导线,需要在 \opt{rule} 选项中使用,其中引导线间距需带有长度单位,引导点大小不带单位,为引导点符号正常大小的倍数,引导点一般为英文句号或 \tn{cdot} 中心点符号。页码格式的内容位于页码前面,可以设置页码字体、距离。
% \begin{ctexexam}
-% \ctexset
+% \tocset
% {
-% tocset =
+% chapter =
% {
-% chapter =
-% {
-% format = \addvspace{8pt}\large,
-% indent = 1.5\ccwd,
-% rule = \tocrule[0.6pc](1.1){.}[\zihao{5}]
-% }
+% format = \addvspace{8pt}\large,
+% indent = 1.5\ccwd,
+% rule = \tocrule[0.6pc](1.1){.}[\zihao{5}]
% }
% }
% \end{ctexexam}
@@ -785,7 +796,7 @@ The latest version of this license is in
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/03/25}{1.24}{beta}
+\ProvidesExplClass{easybook}{2021/03/31}{1.24a}{beta}
\cs_generate_variant:Nn \keys_define:nn {nx}
\cs_generate_variant:Nn \int_to_arabic:n {v}
@@ -891,7 +902,10 @@ The latest version of this license is in
geoset,hdrset,tocset
}
\seq_map_inline:Nn \c__options_path_seq
- {\ctex_define:n {#1 .meta:nn = {ctex/#1}{##1}}}
+ {
+ \ctex_define:n {#1 .meta:nn = {ctex/#1}{##1}}
+ \cs_new:cpn {#1}##1{\keys_set:nn {ctex/#1}{##1}}
+ }
\ctex_define:n
{
config .tl_set:N = \g__config_tl,
@@ -1690,6 +1704,8 @@ The latest version of this license is in
thmbox .bool_set:N = \l__thmbox_bool,
thmbox .default:n = true,
thmbox .initial:n = false,
+ within .tl_set:N = \l__thm_numberwith_tl,
+ within .initial:n = chapter,
bodyfont .tl_set:N = \l__thm_bodyfont_tl,
bodyfont .initial:n = {},
notefont .tl_set:N = \l__thm_notefont_tl,
@@ -1700,8 +1716,6 @@ The latest version of this license is in
headpunct .initial:n = {},
spacepost .tl_set:N = \l__thm_spacepost_tl,
spacepost .initial:n = \ccwd,
- numberwith .tl_set:N = \l__thm_numberwith_tl,
- numberwith .initial:n = chapter,
headindent .tl_set:N = \l__thm_headindent_tl,
headindent .initial:n = 0\ccwd,
spaceabove .tl_set:N = \l__thm_spaceabove_tl,
@@ -1721,7 +1735,7 @@ The latest version of this license is in
bodyfont = \l__thm_bodyfont_tl,
headpunct = \l__thm_headpunct_tl,
postheadspace = \l__thm_spacepost_tl,
- numberwithin = \l__thm_numberwith_tl,
+ within = \l__thm_numberwith_tl,
headformat = \NAME\space\NUMBER\NOTE
]{easythm}
\clist_map_inline:nn
diff --git a/macros/latex/contrib/knowledge/README.md b/macros/latex/contrib/knowledge/README.md
index e0aaa063a6..5292d7886d 100644
--- a/macros/latex/contrib/knowledge/README.md
+++ b/macros/latex/contrib/knowledge/README.md
@@ -3,8 +3,8 @@ This directory contains the package
name: knowledge
license: LaTeX Project Public License version 1.2 or above
- version: v1.24
- date: 2020/09/22
+ version: v1.25
+ date: 2021/03/31
author: Thomas Colcombet
mail: thomas.colcombet@irif.fr
web: https://www.irif.fr/~colcombe/knowledge_en.html
diff --git a/macros/latex/contrib/knowledge/knowledge-code.dtx b/macros/latex/contrib/knowledge/knowledge-code.dtx
index 947040dac9..8c5c6aeb43 100644
--- a/macros/latex/contrib/knowledge/knowledge-code.dtx
+++ b/macros/latex/contrib/knowledge/knowledge-code.dtx
@@ -23,7 +23,7 @@
%
% \iffalse
%<head>\usepackage{expl3}
-%<head>\ProvidesExplPackage{knowledge}{2020/09/22}{1.24}{}
+%<head>\ProvidesExplPackage{knowledge}{2021/03/31}{1.25}{}
%<*driver>
\def\knowledgecode{active}
\input{knowledge.tex}
@@ -57,6 +57,7 @@
% \changes{1.22}{2020/03/05}{improvements} %
% \changes{1.23}{2020/04/25}{minor change} %
% \changes{1.24}{2020/09/22}{silent option} %
+% \changes{1.25}{2021/03/31}{bug correction} %
% \GetFileInfo{knowledge.sty} %
% \DoNotIndex{}
%
@@ -76,8 +77,8 @@ This directory contains the package
name: knowledge
license: LaTeX Project Public License version 1.2 or above
- version: v1.24
- date: 2020/09/22
+ version: v1.25
+ date: 2021/03/31
author: Thomas Colcombet
mail: thomas.colcombet@irif.fr
web: https://www.irif.fr/~colcombe/knowledge_en.html
@@ -147,11 +148,6 @@ This directory contains the package
{}
% \end{macrocode}
%
-% When uploading to arXiv, a 2016 version of LaTeX is used and one macro name has changed since this in \kl{expl3}. Let us correct it: it makes it possible to include the latest version of \kl(package){knowledge} as a .sty file:
-% \begin{macrocode}
-\cs_if_exist:NTF\ior_str_get:NN{}
- {\cs_set_eq:NN\ior_str_get:NN\ior_get_str:NN}
-% \end{macrocode}
%
%\AP One defines the code of \csintro{\klparse_ifnextchar:NTF}
% which is a link to \cs{\@ifnextchar},
diff --git a/macros/latex/contrib/knowledge/knowledge.pdf b/macros/latex/contrib/knowledge/knowledge.pdf
index 46e28720fa..4afd478edc 100644
--- a/macros/latex/contrib/knowledge/knowledge.pdf
+++ b/macros/latex/contrib/knowledge/knowledge.pdf
Binary files differ
diff --git a/macros/latex/contrib/knowledge/knowledge.tex b/macros/latex/contrib/knowledge/knowledge.tex
index 7250cc4907..ba4b94a598 100644
--- a/macros/latex/contrib/knowledge/knowledge.tex
+++ b/macros/latex/contrib/knowledge/knowledge.tex
@@ -754,6 +754,7 @@ I have seen Till Tantau who explained me how to test whether a material is displ
\item[2020-04-25] Made the package compatible with 2016 versions of LaTeX. Useful when \texttt{knowledge.sty} is included with and compile in arXiv. V1.23 on CTAN.
\item[2020-05-02] Doc update ("acmart@@package" colors, thanks to Daniela Petri\c san).
\item[2020-09-22] Adding the "silent" option as suggested by Patrick Lambein-Monette. V1.24 on CTAN
+\item[2021-03-31] Correcting a bug caused by a change of semantics in "expl3@@package". V1.25 on CTAN
\end{compactdesc}
\normalsize
%\restoregeometry
diff --git a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
index 5e74a7620b..da2bdc9408 100644
--- a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+++ b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/profcollege/latex/ProfCollege.sty b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
index c706dd53c5..82f4098531 100644
--- a/macros/latex/contrib/profcollege/latex/ProfCollege.sty
+++ b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
@@ -3,7 +3,7 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfCollege}[2021/03/18 v0.96 Aide pour l'utilisation de LaTeX au collège]
+\ProvidesPackage{ProfCollege}[2021/04/01 v0.97 Aide pour l'utilisation de LaTeX au collège]
\RequirePackage{verbatim}
@@ -164,7 +164,7 @@
}
\newcommand\Lignespointilles[1]{%
- \xintFor* ##1 in {\xintSeq {1}{#1}}\do{
+ \xintFor* ##1 in {\xintSeq {1}{#1}}\do{%
\pointilles\par%
}
}
@@ -362,7 +362,12 @@
%%%
% Labyrinthe
%%%
-\setKVdefault[Labyrinthe]{Lignes=6,Colonnes=3,Longueur=4,Hauteur=2,Passages=false,EcartH=1,EcartV=1,CouleurF=gray!50,Texte=\color{black}}
+\setKVdefault[Labyrinthe]{Lignes=6,Colonnes=3,Longueur=4,Hauteur=2,Passages=false,EcartH=1,EcartV=1,CouleurF=gray!50,Texte=\color{black},SensImpose=false}
+
+\tikzset{FDirect/.style={-stealth}}
+\tikzset{FIndirect/.style={stealth-}}
+\tikzset{FBidirect/.style={stealth-stealth}}
+
\newcommand\Labyrinthe[3][]{%
\useKVdefault[Labyrinthe]%
@@ -374,57 +379,128 @@
}{}%
\xdef\LabyLong{\useKV[Labyrinthe]{Longueur}}%
\xdef\LabyHaut{\useKV[Labyrinthe]{Hauteur}}%
- \xdef\TotalLaby{\fpeval{3*\useKV[Labyrinthe]{Colonnes}-2}}%
+ \ifboolKV[Labyrinthe]{SensImpose}{%
+ \xdef\TotalLaby{\fpeval{3*\useKV[Labyrinthe]{Colonnes}+1}}%
+ }{%
+ \xdef\TotalLaby{\fpeval{3*\useKV[Labyrinthe]{Colonnes}-2}}%
+ }%
\xdef\CouleurF{\useKV[Labyrinthe]{CouleurF}}%
\xdef\MotifTexte{\useKV[Labyrinthe]{Texte}}%
\xintifboolexpr{\ListeLabylen=\fpeval{\useKV[Labyrinthe]{Lignes}*\useKV[Labyrinthe]{Colonnes}}}{%
- \begin{tikzpicture}[remember picture]
+ \begin{tikzpicture}[remember picture]%,FDeplacement]
% on dessine les cadres
\foreach \compteurv in {1,...,\useKV[Labyrinthe]{Lignes}}{%
\foreach \compteurh in {1,...,\useKV[Labyrinthe]{Colonnes}}{%
\xdef\ColorFill{\ListeLaby[\fpeval{\useKV[Labyrinthe]{Colonnes}*(\compteurv-1)+\compteurh},2]}%
\node[fill=\ColorFill,draw,minimum height=\LabyHaut*1cm,minimum width=\LabyLong*1cm,name=A-\compteurh-\compteurv] at
- (\fpeval{\LabyLong+\useKV[Labyrinthe]{EcartH}}*\compteurh,-\fpeval{\LabyHaut+\useKV[Labyrinthe]{EcartV}}*\compteurv) {\ListeLaby[\fpeval{\useKV[Labyrinthe]{Colonnes}*(\compteurv-1)+\compteurh},1]};%
+ (\fpeval{\LabyLong+\useKV[Labyrinthe]{EcartH}}*\compteurh,-\fpeval{\LabyHaut+\useKV[Labyrinthe]{EcartV}}*\compteurv) {\ListeLaby[\fpeval{\useKV[Labyrinthe]{Colonnes}*(\compteurv-1)+\compteurh},1]};%\begin{minipage}{\LongLaby}\end{minipage}
}%
}%
+ % fin des cadres
% on dessine les flèches
- \foreach \compteurv in {1,...,\fpeval{\useKV[Labyrinthe]{Lignes}-1}}{%
- \foreach \compteurh in {1,...,\useKV[Labyrinthe]{Colonnes}}{%
- \ifboolKV[Labyrinthe]{Passages}{%
- \xdef\NomNode{\ListeLabySol[1,\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+2*(\compteurh-1)}]}%
- \draw[\CouleurF,line width=1pt,stealth-stealth] (A-\compteurh-\compteurv) -- node[fill=white,midway]{\MotifTexte\NomNode}(A-\compteurh-\fpeval{\compteurv+1});%
- }{%
- \draw[\CouleurF,line width=1pt,stealth-stealth] (A-\compteurh-\compteurv) -- (A-\compteurh-\fpeval{\compteurv+1});%
+ \ifboolKV[Labyrinthe]{SensImpose}{%
+ %verticales
+ \foreach \compteurv in {1,...,\fpeval{\useKV[Labyrinthe]{Lignes}-1}}{%
+ \foreach \compteurh in {1,...,\useKV[Labyrinthe]{Colonnes}}{%
+ \ifboolKV[Labyrinthe]{Passages}{%
+ \xdef\NomNode{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},1]}%
+ \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},2]>0}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},2]=1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},2]=2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}%
+ \draw[\CouleurF,line width=3pt,\NomStyle] (A-\compteurh-\compteurv) -- node[fill=white,midway]{\MotifTexte\NomNode}(A-\compteurh-\fpeval{\compteurv+1});%
+ }{}%
+ }{%
+ \xdef\NomNode{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},1]}%
+ \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},2]>0}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},2]=1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},2]=2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}%
+ \draw[\CouleurF,line width=3pt,\NomStyle] (A-\compteurh-\compteurv) -- (A-\compteurh-\fpeval{\compteurv+1});}{}%
+ }%
}%
- }
- }
- \foreach \compteurv in {1,...,\useKV[Labyrinthe]{Lignes}}{%
- \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{%
- \ifboolKV[Labyrinthe]{Passages}{%
- \xdef\NomNode{\ListeLabySol[1,\fpeval{\TotalLaby*(\compteurv-1)+\compteurh}]}%
- \draw[\CouleurF,line width=1pt,stealth-stealth]
- (A-\compteurh-\compteurv) -- node[fill=white,midway]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\compteurv);
- }{%
- \draw[\CouleurF,line width=1pt,stealth-stealth]
- (A-\compteurh-\compteurv) -- (A-\fpeval{\compteurh+1}-\compteurv);
+ }%
+ % horizontales
+ \foreach \compteurv in {1,...,\useKV[Labyrinthe]{Lignes}}{%
+ \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{%
+ \ifboolKV[Labyrinthe]{Passages}{%
+ \xdef\NomNode{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},1]}%
+ \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},2]>0}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},2]=1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},2]=2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}%
+ \draw[\CouleurF,line width=3pt,\NomStyle]
+ (A-\compteurh-\compteurv) -- node[fill=white,midway,sloped]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\compteurv);}{}
+ }{%
+ \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},2]>0}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},2]=1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},2]=2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}%
+ \draw[\CouleurF,line width=3pt,\NomStyle]
+ (A-\compteurh-\compteurv) -- (A-\fpeval{\compteurh+1}-\compteurv);}{}
+ }%
+ }%
+ }%
+ % diagonales "inverses"
+ \foreach \compteurv in {2,...,\fpeval{\useKV[Labyrinthe]{Lignes}}}{%
+ \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{%
+ \ifboolKV[Labyrinthe]{Passages}{%
+ \xdef\NomNode{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},1]}%
+ \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},2]>0}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},2]=1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},2]=2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}%
+ \draw[\CouleurF,line width=3pt,\NomStyle] (A-\compteurh-\compteurv) -- node[fill=white,near start,sloped]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\fpeval{\compteurv-1});
+ }{}
+ }{%
+ \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},2]>0}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},2]=1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},2]=2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}%
+ \draw[\CouleurF,line width=3pt,\NomStyle] (A-\compteurh-\compteurv) -- (A-\fpeval{\compteurh+1}-\fpeval{\compteurv-1});
+ }{}
+ }%
}%
+ }%
+ % diagonales directes
+ \foreach \compteurv in {1,...,\fpeval{\useKV[Labyrinthe]{Lignes}-1}}{%
+ \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{%
+ \ifboolKV[Labyrinthe]{Passages}{%
+ \xdef\NomNode{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},1]}%
+ \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},2]>0}{%
+ \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},2]=1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},2]=2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}
+ \draw[\CouleurF,line width=3pt,\NomStyle] (A-\compteurh-\compteurv) -- node[fill=white,near start,sloped]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\fpeval{\compteurv+1});
+ }{}%
+ }{%
+ \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},2]>0}{%
+ \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},2]=1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},2]=2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}
+ \draw[\CouleurF,line width=3pt,\NomStyle] (A-\compteurh-\compteurv) -- node[fill=white,near start,sloped]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\fpeval{\compteurv+1});
+ }{}%
+ }%
+ }%
+ }%
+ }{%
+ \foreach \compteurv in {1,...,\fpeval{\useKV[Labyrinthe]{Lignes}-1}}{%
+ \foreach \compteurh in {1,...,\useKV[Labyrinthe]{Colonnes}}{%
+ \ifboolKV[Labyrinthe]{Passages}{%
+ \xdef\NomNode{\ListeLabySol[1,\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+2*(\compteurh-1)}]}%
+ \draw[\CouleurF,line width=3pt,stealth-stealth] (A-\compteurh-\compteurv) -- node[fill=white,midway]{\MotifTexte\NomNode}(A-\compteurh-\fpeval{\compteurv+1});%
+ }{%
+ \draw[\CouleurF,line width=3pt,stealth-stealth] (A-\compteurh-\compteurv) -- (A-\compteurh-\fpeval{\compteurv+1});%
+ }%
+ }%
+ }%
+ \foreach \compteurv in {1,...,\useKV[Labyrinthe]{Lignes}}{%
+ \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{%
+ \ifboolKV[Labyrinthe]{Passages}{%
+ \xdef\NomNode{\ListeLabySol[1,\fpeval{\TotalLaby*(\compteurv-1)+\compteurh}]}%
+ \draw[\CouleurF,line width=3pt,stealth-stealth]
+ (A-\compteurh-\compteurv) -- node[fill=white,midway]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\compteurv);
+ }{%
+ \draw[\CouleurF,line width=3pt,stealth-stealth]
+ (A-\compteurh-\compteurv) -- (A-\fpeval{\compteurh+1}-\compteurv);
+ }%
+ }
}
- }
- \foreach \compteurv in {2,...,\fpeval{\useKV[Labyrinthe]{Lignes}}}{%
- \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{%
- \draw[\CouleurF,line width=1pt,stealth-stealth] (A-\compteurh-\compteurv) -- (A-\fpeval{\compteurh+1}-\fpeval{\compteurv-1});
+ \foreach \compteurv in {2,...,\fpeval{\useKV[Labyrinthe]{Lignes}}}{%
+ \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{%
+ \draw[\CouleurF,line width=3pt,stealth-stealth] (A-\compteurh-\compteurv) -- (A-\fpeval{\compteurh+1}-\fpeval{\compteurv-1});
+ }
}
- }
- \foreach \compteurv in {1,...,\fpeval{\useKV[Labyrinthe]{Lignes}-1}}{%
- \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{%
- \ifboolKV[Labyrinthe]{Passages}{%
- \xdef\NomNode{\ListeLabySol[1,\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+2*(\compteurh-1)+1}]}%
- \draw[\CouleurF,line width=1pt,stealth-stealth] (A-\compteurh-\compteurv) -- node[fill=white,midway]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\fpeval{\compteurv+1});
- }{%
- \draw[\CouleurF,line width=1pt,stealth-stealth] (A-\compteurh-\compteurv) -- (A-\fpeval{\compteurh+1}-\fpeval{\compteurv+1});
- }%
+ \foreach \compteurv in {1,...,\fpeval{\useKV[Labyrinthe]{Lignes}-1}}{%
+ \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{%
+ \ifboolKV[Labyrinthe]{Passages}{%
+ \xdef\NomNode{\ListeLabySol[1,\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+2*(\compteurh-1)+1}]}%
+ \draw[\CouleurF,line width=3pt,stealth-stealth] (A-\compteurh-\compteurv) -- node[fill=white,midway]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\fpeval{\compteurv+1});
+ }{%
+ \draw[\CouleurF,line width=3pt,stealth-stealth] (A-\compteurh-\compteurv) -- (A-\fpeval{\compteurh+1}-\fpeval{\compteurv+1});
+ }%
+ }%
}%
- }%
+ }
+ %fin des flèches
\end{tikzpicture}
}{\textbf{! Le nombre d'informations n'est pas compatible avec les
définitions de {\ttfamily Colonnes} et {\ttfamily Lignes} !}}%
@@ -2022,7 +2098,7 @@
% Somme des angles
%%%
-\setKVdefault[ClesSommeAngle]{Detail=true,Isocele=false,Figure=false,FigureSeule=false,Angle=0}%
+\setKVdefault[ClesSommeAngle]{Detail=true,Isocele=false,Figure=false,FigureSeule=false,Angle=0,Perso=false}%
\def\MPFigureSommeAngle#1#2#3#4#5#6#7{
% #1 Premier sommet
@@ -2159,7 +2235,9 @@
\fi
}
-\newcommand\RedactionSomme[4][]{%
+\xdef\RedactionSomme{}
+
+\newcommand\RedactionSom[4][]{%
% #1 : nom du triangle pA pB pC
% #2 : mesure de l'angle pApBpC
% #3 : mesure de l'angle pBpCpA
@@ -2170,10 +2248,14 @@
\StrMid{#2}{1}{1}[\NomA]%
\StrMid{#2}{2}{2}[\NomB]%
\StrMid{#2}{3}{3}[\NomC]%
+ \xdef\NomTriangle{\NomA\NomB\NomC}%
+ \xdef\NomSommetB{\NomB}%
+ \xdef\NomSommetA{\NomA}%
+ \xdef\NomSommetC{\NomC}%
% On rédige
- Dans le triangle $\NomA\NomB\NomC$,\ifboolKV[ClesSommeAngle]{Isocele}{ isocèle en \NomA,}{} on a :%
+ \ifboolKV[ClesSommeAngle]{Perso}{\RedactionSomme}{Dans le triangle $\NomA\NomB\NomC$,\ifboolKV[ClesSommeAngle]{Isocele}{ isocèle en \NomA,}{} on a :}%
\ifboolKV[ClesSommeAngle]{Isocele}{%
- \ifx#4\bla\bla%
+ \ifx\bla#4\bla%
\begin{align*}%
\widehat{\NomA\NomB\NomC}+\widehat{\NomB\NomC\NomA}+\widehat{\NomC\NomA\NomB}&=\ang{180}\\%
2\times\ang{#3}+\widehat{\NomC\NomA\NomB}&=\ang{180}\\%
@@ -2219,11 +2301,11 @@
\StrMid{#2}{3}{3}[\NomC]%
% Figure ou pas ?
\ifboolKV[ClesSommeAngle]{FigureSeule}{%
- \ifx#3\bla\bla%
+ \ifx\bla#3\bla%
\xdef\Intermed{\fpeval{0.5*(180-#4)}}%
\MPFigureSommeAngle{\NomA}{\NomB}{\NomC}{#4}{\Intermed}{0}{\useKV[ClesSommeAngle]{Angle}}%
\else%
- \ifx#4\bla\bla%
+ \ifx\bla#4\bla%
\MPFigureSommeAngle{\NomA}{\NomB}{\NomC}{#3}{#3}{0}{\useKV[ClesSommeAngle]{Angle}}%
\else%
\MPFigureSommeAngle{\NomA}{\NomB}{\NomC}{#3}{#4}{1}{\useKV[ClesSommeAngle]{Angle}}%
@@ -2233,11 +2315,11 @@
\ifboolKV[ClesSommeAngle]{Figure}{%
\begin{multicols}{2}%
{\em La figure est donnée à titre indicatif.}%
- \ifx#3\bla\bla%
+ \ifx\bla#3\bla%
\xdef\Intermed{\fpeval{0.5*(180-#4)}}%
\[\MPFigureSommeAngle{\NomA}{\NomB}{\NomC}{#4}{\Intermed}{0}{\useKV[ClesSommeAngle]{Angle}}\]%
\else%
- \ifx#4\bla\bla%
+ \ifx\bla#4\bla%
\[\MPFigureSommeAngle{\NomA}{\NomB}{\NomC}{#3}{#3}{0}{\useKV[ClesSommeAngle]{Angle}}\]%
\else%
\[\MPFigureSommeAngle{\NomA}{\NomB}{\NomC}{#3}{#4}{1}{\useKV[ClesSommeAngle]{Angle}}\]%
@@ -2245,10 +2327,10 @@
\fi%
\par\columnbreak\par%
% on rédige
- \RedactionSomme[#1]{#2}{#3}{#4}%
+ \RedactionSom[#1]{#2}{#3}{#4}%
\end{multicols}%
}{% on rédige
- \RedactionSomme[#1]{#2}{#3}{#4}%
+ \RedactionSom[#1]{#2}{#3}{#4}%
}%
}%
}%
@@ -5391,10 +5473,10 @@ vardef Positions(expr Step)=
%%%
\def\MPFigTrigo#1#2#3#4#5#6#7#8{%
\ifluatex
- \mplibcodeinherit{enable}
+ \mplibcodeinherit{enable}
\mplibforcehmode
\begin{mplibcode}
- u:=1cm;
+ u:=\useKV[ClesTrigo]{Echelle};
pair A,B,C,O,I,D,E,F;%
% On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
A=u*(1,1);
@@ -5444,13 +5526,13 @@ vardef Positions(expr Step)=
if #6=0:
label(btex ? etex,1.1[B,1/2[A,C]]);
else:
- label(btex \num{#6} etex,1.1[B,1/2[A,C]]);
+ label(btex \num{#6} etex,1.2[B,1/2[A,C]]);
fi;
else:
if #6=0:
label(btex ? etex,1.1[B,1/2[A,C]]);
else:
- label(btex \num{#6} etex,1.1[B,1/2[A,C]]);
+ label(btex \num{#6} etex,1.2[B,1/2[A,C]]);
fi;
fi;
fi;
@@ -5542,13 +5624,13 @@ vardef Positions(expr Step)=
if #6=0:
label(btex ? etex rotated angle(C-A),1.1[B,1/2[A,C]]);
else:
- label(btex \num{#6} etex rotated angle(C-A),1.1[B,1/2[A,C]]);
+ label(btex \num{#6} etex rotated angle(C-A),1.2[B,1/2[A,C]]);
fi;
else:
if #6=0:
label(btex ? etex rotated angle(A-C),1.1[B,1/2[A,C]]);
else:
- label(btex \num{#6} etex rotated angle(A-C),1.1[B,1/2[A,C]]);
+ label(btex \num{#6} etex rotated angle(A-C),1.2[B,1/2[A,C]]);
fi;
fi;
fi;
@@ -5595,11 +5677,12 @@ vardef Positions(expr Step)=
% #4 opp
% #5 adj
% #6 hyp
+ % #7 angle de rotation
\ifluatex
\mplibcodeinherit{enable}
\mplibforcehmode
\begin{mplibcode}
- u:=1cm;
+ u:=\useKV[ClesTrigo]{Echelle};
pair A,B,C,O,I,D,E,F;%
% On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
A=u*(1,1);
@@ -5643,9 +5726,9 @@ vardef Positions(expr Step)=
label(btex ? etex,A+0.95u*unitvector(I-A));
decalage:=3mm;
if angle(1/2[A,C]-B)>0:
- label(btex \num{#6} etex,1.1[B,1/2[A,C]]);
+ label(btex \num{#6} etex,1.2[B,1/2[A,C]]);
else:
- label(btex \num{#6} etex,1.1[B,1/2[A,C]]);
+ label(btex \num{#6} etex,1.2[B,1/2[A,C]]);
fi;
if angle(1/2[B,C]-A)>0:
label(btex \num{#4} etex,1/2[B,C]-decalage*(unitvector(A-B)));
@@ -5705,9 +5788,9 @@ vardef Positions(expr Step)=
label(btex ? etex,A+0.95u*unitvector(I-A));
decalage:=3mm;
if angle(1/2[A,C]-B)>0:
- label(btex \num{#6} etex,1.1[B,1/2[A,C]]);
+ label(btex \num{#6} etex,1.2[B,1/2[A,C]]);
else:
- label(btex \num{#6} etex,1.1[B,1/2[A,C]]);
+ label(btex \num{#6} etex,1.2[B,1/2[A,C]]);
fi;
if angle(1/2[B,C]-A)>0:
label(btex \num{#4} etex,1/2[B,C]-decalage*(unitvector(A-B)));
@@ -5723,7 +5806,7 @@ vardef Positions(expr Step)=
\fi
}
-\setKVdefault[ClesTrigo]{Angle=0,Propor=false,Figure=false,FigureSeule=false,Precision=2,Unite=cm,Sinus=false,Cosinus=false,Tangente=false,Perso=false}%
+\setKVdefault[ClesTrigo]{Angle=0,Propor=false,Figure=false,FigureSeule=false,Precision=2,Unite=cm,Sinus=false,Cosinus=false,Tangente=false,Perso=false,Echelle=1cm}%
\newcommand\RedactionTrigo{}%
@@ -5926,7 +6009,7 @@ vardef Positions(expr Step)=
\StrMid{#2}{3}{3}[\NomC]%
% On rédige
\ifboolKV[ClesTrigo]{FigureSeule}{%
- \ifx#5\bla\bla%
+ \ifx\bla#5\bla%
\ifboolKV[ClesTrigo]{Cosinus}{%
\MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{}{#3}{#4}{\useKV[ClesTrigo]{Angle}}
}{}%
@@ -5938,21 +6021,21 @@ vardef Positions(expr Step)=
}{}%
\else%}{%figure pour calculer une longueur
\ifboolKV[ClesTrigo]{Cosinus}{%
- \ifx#3\bla\bla%adjacent inconnu
+ \ifx\bla#3\bla%adjacent inconnu
\MPFigTrigo{\NomA}{\NomB}{\NomC}{-1}{0}{#4}{#5}{\useKV[ClesTrigo]{Angle}}
\else
\MPFigTrigo{\NomA}{\NomB}{\NomC}{-1}{#3}{0}{#5}{\useKV[ClesTrigo]{Angle}}
\fi
}{}%
\ifboolKV[ClesTrigo]{Sinus}{%
- \ifx#3\bla\bla%adjacent inconnu
+ \ifx\bla#3\bla%adjacent inconnu
\MPFigTrigo{\NomA}{\NomB}{\NomC}{0}{-1}{#4}{#5}{\useKV[ClesTrigo]{Angle}}
\else
\MPFigTrigo{\NomA}{\NomB}{\NomC}{#3}{-1}{0}{#5}{\useKV[ClesTrigo]{Angle}}
\fi
}{}%
\ifboolKV[ClesTrigo]{Tangente}{%
- \ifx#3\bla\bla%adjacent inconnu
+ \ifx\bla#3\bla%adjacent inconnu
\MPFigTrigo{\NomA}{\NomB}{\NomC}{0}{#4}{-1}{#5}{\useKV[ClesTrigo]{Angle}}
\else%
\MPFigTrigo{\NomA}{\NomB}{\NomC}{#3}{0}{-1}{#5}{\useKV[ClesTrigo]{Angle}}
@@ -5963,7 +6046,7 @@ vardef Positions(expr Step)=
\ifboolKV[ClesTrigo]{Figure}{%
\begin{multicols}{2}%
{\em La figure est donnée à titre indicatif.}%
- \ifx#5\bla\bla%
+ \ifx\bla#5\bla%
\ifboolKV[ClesTrigo]{Cosinus}{%
\begin{center}
\MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{}{#3}{#4}{\useKV[ClesTrigo]{Angle}}
@@ -5981,7 +6064,7 @@ vardef Positions(expr Step)=
}{}%
\else%}{%figure pour calculer une longueur
\ifboolKV[ClesTrigo]{Cosinus}{%
- \ifx#3\bla\bla%adjacent inconnu
+ \ifx\bla#3\bla%adjacent inconnu
\begin{center}
\MPFigTrigo{\NomA}{\NomB}{\NomC}{-1}{0}{#4}{#5}{\useKV[ClesTrigo]{Angle}}
\end{center}
@@ -5992,7 +6075,7 @@ vardef Positions(expr Step)=
\fi
}{}%
\ifboolKV[ClesTrigo]{Sinus}{%
- \ifx#3\bla\bla%adjacent inconnu
+ \ifx\bla#3\bla%adjacent inconnu
\begin{center}
\MPFigTrigo{\NomA}{\NomB}{\NomC}{0}{-1}{#4}{#5}{\useKV[ClesTrigo]{Angle}}
\end{center}
@@ -6003,7 +6086,7 @@ vardef Positions(expr Step)=
\fi
}{}%
\ifboolKV[ClesTrigo]{Tangente}{%
- \ifx#3\bla\bla%adjacent inconnu
+ \ifx\bla#3\bla%adjacent inconnu
\begin{center}
\MPFigTrigo{\NomA}{\NomB}{\NomC}{0}{#4}{-1}{#5}{\useKV[ClesTrigo]{Angle}}
\end{center}
@@ -8128,8 +8211,8 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
\def\MPFigureDroite#1#2{%
\ifluatex
- \mplibcodeinherit{enable}
- \mplibforcehmode
+ \mplibcodeinherit{enable}
+ \mplibforcehmode
\begin{mplibcode}
pair A,B,C,D,E,F,G,H,I,J,K;
u:=7.5mm;
@@ -13279,4 +13362,353 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
\end{tikzpicture}
}%
}%
-} \ No newline at end of file
+}
+
+%%%
+% Papiers
+%%%
+\setKVdefault[Papiers]{Cinq=true,Seyes=false,Isometrique=false,Millimetre=false,Triangle=false,Largeur=5,Hauteur=4,Couleur=black,Grille=-1,PageEntiere=false,ZoneTexte=false}%
+
+\def\MPGrille#1#2#3#4{%
+ \ifluatex%
+ %\mplibcodeinherit{enable}%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ path horizon,verticon;
+ horizon=(0,0)--(#1*cm,0);
+ verticon=(0,0)--(0,#2*cm);
+ drawoptions(withcolor #3);
+ for k=0 step (#4*100) until (#1*100):
+ draw verticon shifted(((k/100)*cm,0));
+ endfor;
+ for k=0 step (#4*100) until (#2*100):
+ draw horizon shifted((0,(k/100)*cm));
+ endfor;
+ \end{mplibcode}%
+ %\mplibcodeinherit{disable}%
+ \else%
+ \begin{mpost}%
+ path horizon,verticon;
+ horizon=(0,0)--(#1*cm,0);
+ verticon=(0,0)--(0,#2*cm);
+ drawoptions(withcolor #3);
+ for k=0 step 0.5 until #1:
+ draw verticon shifted((k*cm,0));
+ endfor;
+ for k=0 step 0.5 until #2:
+ draw horizon shifted((0,k*cm));
+ endfor;
+ \end{mpost}%
+ \fi%
+}%
+
+\def\MPCinq#1#2#3{%
+ \ifluatex%
+ %\mplibcodeinherit{enable}%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ path horizon,verticon;
+ horizon=(0,0)--(#1*cm,0);
+ verticon=(0,0)--(0,#2*cm);
+ drawoptions(withcolor #3);
+ for k=0 step 0.5 until #1:
+ draw verticon shifted((k*cm,0));
+ endfor;
+ for k=0 step 0.5 until #2:
+ draw horizon shifted((0,k*cm));
+ endfor;
+ \end{mplibcode}%
+ %\mplibcodeinherit{disable}%
+ \else%
+ \begin{mpost}
+ path horizon,verticon;
+ horizon=(0,0)--(#1*cm,0);
+ verticon=(0,0)--(0,#2*cm);
+ drawoptions(withcolor #3);
+ for k=0 step 0.5 until #1:
+ draw verticon shifted((k*cm,0));
+ endfor;
+ for k=0 step 0.5 until #2:
+ draw horizon shifted((0,k*cm));
+ endfor;
+ \end{mpost}%
+ \fi%
+}%
+
+\def\MPSeyes#1#2#3{%
+ \ifluatex%
+ %\mplibcodeinherit{enable}%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ path horizon,verticon;
+ horizon=(0,0)--(#1*cm,0);
+ verticon=(0,0)--(0,#2*cm);
+ drawoptions(withcolor #3);
+ for k=0 step 8 until (#1*10):
+ draw verticon shifted(((k/10)*cm,0));
+ endfor;
+ for k=0 step 2 until (#2*10):
+ draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.5;
+ endfor;
+ for k=0 step 8 until (#2*10):
+ draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 1.25;
+ endfor;
+ \end{mplibcode}%
+ %\mplibcodeinherit{disable}%
+ \else%
+ \begin{mpost}%
+ path horizon,verticon;
+ horizon=(0,0)--(#1*cm,0);
+ verticon=(0,0)--(0,#2*cm);
+ drawoptions(withcolor #3);
+ for k=0 step 8 until (#1*10):
+ draw verticon shifted(((k/10)*cm,0));
+ endfor;
+ for k=0 step 2 until (#2*10):
+ draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.5;
+ endfor;
+ for k=0 step 8 until (#2*10):
+ draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 1.25;
+ endfor;
+ \end{mpost}
+ \fi%
+}%
+
+\def\MPMillimetre#1#2#3{%
+ \ifluatex%
+ %\mplibcodeinherit{enable}%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ path horizon,verticon;
+ horizon=(0,0)--(#1*cm,0);
+ verticon=(0,0)--(0,#2*cm);
+ drawoptions(withcolor #3);
+ for k=0 step 1 until (#1*10):
+ draw verticon shifted(((k/10)*cm,0)) withpen pencircle scaled 0.2;
+ endfor;
+ for k=0 step 5 until (#1*10):
+ draw verticon shifted(((k/10)*cm,0)) withpen pencircle scaled 0.5;
+ endfor;
+ for k=0 step 1 until (#1):
+ draw verticon shifted((k*cm,0)) withpen pencircle scaled 1.25;
+ endfor;
+ for k=0 step 1 until (#2*10):
+ draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.2;
+ endfor;
+ for k=0 step 5 until (#2*10):
+ draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.5;
+ endfor;
+ for k=0 step 1 until (#2):
+ draw horizon shifted((0,k*cm)) withpen pencircle scaled 1.25;
+ endfor;
+ \end{mplibcode}%
+ %\mplibcodeinherit{disable}%
+ \else%
+ \begin{mpost}%
+ path horizon,verticon;
+ horizon=(0,0)--(#1*cm,0);
+ verticon=(0,0)--(0,#2*cm);
+ drawoptions(withcolor #3);
+ for k=0 step 1 until (#1*10):
+ draw verticon shifted(((k/10)*cm,0)) withpen pencircle scaled 0.2;
+ endfor;
+ for k=0 step 5 until (#1*10):
+ draw verticon shifted(((k/10)*cm,0)) withpen pencircle scaled 0.5;
+ endfor;
+ for k=0 step 1 until (#1):
+ draw verticon shifted((k*cm,0)) withpen pencircle scaled 1.25;
+ endfor;
+ for k=0 step 1 until (#2*10):
+ draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.2;
+ endfor;
+ for k=0 step 5 until (#2*10):
+ draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.5;
+ endfor;
+ for k=0 step 1 until (#2):
+ draw horizon shifted((0,k*cm)) withpen pencircle scaled 1.25;
+ endfor;
+ \end{mpost}%
+ \fi%
+}%
+
+\def\MPIsometrique#1#2#3{%
+ \ifluatex%
+ %\mplibcodeinherit{enable}%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ path diagon,antidiagon;
+ diagon=(0,0)--#2*(sqrt(3)*cm,1*cm);
+ antidiagon=(0,0)--#2*(-sqrt(3)*cm,1*cm);
+ drawoptions(withcolor #3);
+ for k=0 step 1 until #1:
+ draw diagon shifted((k*cm,0));
+ endfor;
+ for k=0 step (sqrt(3)/3) until (#2):
+ draw diagon shifted((0,k*cm));
+ endfor;
+ for k=0 step 1 until (#1):
+ draw antidiagon shifted((k*cm,0));
+ endfor;
+ for k=0 step (sqrt(3)/3) until (#2):
+ draw antidiagon shifted((#1*cm,k*cm));
+ endfor;
+ clip currentpicture to polygone((0,0),(#1*cm,0),(#1*cm,#2*cm),(0,#2*cm));
+ \end{mplibcode}%
+ %\mplibcodeinherit{disable}%
+ \else%
+ \begin{mpost}%
+ path diagon,antidiagon;
+ diagon=(0,0)--#2*(sqrt(3)*cm,1*cm);
+ antidiagon=(0,0)--#2*(-sqrt(3)*cm,1*cm);
+ drawoptions(withcolor #3);
+ for k=0 step 1 until #1:
+ draw diagon shifted((k*cm,0));
+ endfor;
+ for k=0 step (sqrt(3)/3) until (#2):
+ draw diagon shifted((0,k*cm));
+ endfor;
+ for k=0 step 1 until (#1):
+ draw antidiagon shifted((k*cm,0));
+ endfor;
+ for k=0 step (sqrt(3)/3) until (#2):
+ draw antidiagon shifted((#1*cm,k*cm));
+ endfor;
+ clip currentpicture to polygone((0,0),(#1*cm,0),(#1*cm,#2*cm),(0,#2*cm));
+ \end{mpost}%
+ \fi%
+}%
+
+\def\MPTriangulaire#1#2#3{%
+ \ifluatex%
+ %\mplibcodeinherit{enable}%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ path horizon,diagon,antidiagon;
+ horizon=(0,0)--(#1*cm,0);
+ diagon=(0,0)--#2*(sqrt(3)*cm/3,1*cm);
+ antidiagon=(0,0)--#2*(-sqrt(3)*cm/3,1*cm);
+ drawoptions(withcolor #3);
+ for k=0 step 1 until #1:
+ draw diagon shifted((k*cm,0));
+ endfor;
+ for k=0 step (sqrt(3)) until (#2):
+ draw diagon shifted((0,k*cm));
+ endfor;
+ for k=0 step 1 until (#1):
+ draw antidiagon shifted((k*cm,0));
+ endfor;
+ for k=0 step (sqrt(3)) until (#2):
+ draw antidiagon shifted((#1*cm,k*cm));
+ endfor;
+ for k=0 step (sqrt(3)/2) until (#2):
+ draw horizon shifted((0,k*cm));
+ endfor;
+ clip currentpicture to polygone((0,0),(#1*cm,0),(#1*cm,#2*cm),(0,#2*cm));
+ \end{mplibcode}%
+ %\mplibcodeinherit{disable}%
+ \else%
+ \begin{mpost}%
+ path horizon,diagon,antidiagon;
+ horizon=(0,0)--(#1*cm,0);
+ diagon=(0,0)--#2*(sqrt(3)*cm/3,1*cm);
+ antidiagon=(0,0)--#2*(-sqrt(3)*cm/3,1*cm);
+ drawoptions(withcolor #3);
+ for k=0 step 1 until #1:
+ draw diagon shifted((k*cm,0));
+ endfor;
+ for k=0 step (sqrt(3)) until (#2):
+ draw diagon shifted((0,k*cm));
+ endfor;
+ for k=0 step 1 until (#1):
+ draw antidiagon shifted((k*cm,0));
+ endfor;
+ for k=0 step (sqrt(3)) until (#2):
+ draw antidiagon shifted((#1*cm,k*cm));
+ endfor;
+ for k=0 step (sqrt(3)/2) until (#2):
+ draw horizon shifted((0,k*cm));
+ endfor;
+ clip currentpicture to polygone((0,0),(#1*cm,0),(#1*cm,#2*cm),(0,#2*cm));
+ \end{mpost}%
+ \fi%
+}%
+
+\RequirePackage{ifoddpage}
+
+\newcommand\Papiers[1][]{%
+ \useKVdefault[Papiers]%
+ \setKV[Papiers]{#1}%
+ \xdef\PapierLargeur{\useKV[Papiers]{Largeur}}%
+ \xdef\PapierHauteur{\useKV[Papiers]{Hauteur}}%
+ \xdef\PapierCouleur{\useKV[Papiers]{Couleur}}%
+ \xdef\PapierGrille{\useKV[Papiers]{Grille}}%
+ \xdef\PapierLeftCurrent{\ifoddpageoroneside\oddsidemargin\else\evensidemargin\fi}%
+ \xdef\PapierLeft{\the\dimexpr1in+\PapierLeftCurrent}%
+ \xdef\PapierBottom{\fpeval{\paperheight-\textheight-\voffset-\headheight-\topmargin-\headsep-1in}}%
+ \ifboolKV[Papiers]{ZoneTexte}{%
+ \xdef\PapierHauteur{\fpeval{\textheight/1cm}}%
+ \xdef\PapierLargeur{\fpeval{\textwidth/1cm}}%
+ \begin{tikzpicture}[remember picture,overlay]%
+ \node[anchor=south west,inner sep=0pt,transform canvas={xshift=\PapierLeft,yshift=\PapierBottom}] at (current page.south west) {%
+ \xintifboolexpr{\useKV[Papiers]{Grille}>0}{%
+ \MPGrille{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}{\PapierGrille}%
+ }{\ifboolKV[Papiers]{Triangle}{%
+ \MPTriangulaire{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{\ifboolKV[Papiers]{Millimetre}{%
+ \MPMillimetre{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{\ifboolKV[Papiers]{Isometrique}{%
+ \MPIsometrique{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{\ifboolKV[Papiers]{Seyes}{%
+ \MPSeyes{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{\MPCinq{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ };%
+ \end{tikzpicture}%
+ }{%
+ \ifboolKV[Papiers]{PageEntiere}{%
+ \xdef\PapierHauteur{\fpeval{\paperheight/1cm}}%
+ \xdef\PapierLargeur{\fpeval{\paperwidth/1cm}}%
+ \begin{tikzpicture}[remember picture,overlay]%
+ \node[anchor=south west,inner sep=0pt] at (current page.south west) {%
+ \xintifboolexpr{\useKV[Papiers]{Grille}>0}{%
+ \MPGrille{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}{\PapierGrille}%
+ }{\ifboolKV[Papiers]{Triangle}{%
+ \MPTriangulaire{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{\ifboolKV[Papiers]{Millimetre}{%
+ \MPMillimetre{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{\ifboolKV[Papiers]{Isometrique}{%
+ \MPIsometrique{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{\ifboolKV[Papiers]{Seyes}{%
+ \MPSeyes{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{\MPCinq{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ };%
+ \end{tikzpicture}%
+ }{%
+ \xintifboolexpr{\useKV[Papiers]{Grille}>0}{%
+ \MPGrille{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}{\PapierGrille}%
+ }{\ifboolKV[Papiers]{Triangle}{%
+ \MPTriangulaire{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{\ifboolKV[Papiers]{Millimetre}{%
+ \MPMillimetre{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{\ifboolKV[Papiers]{Isometrique}{%
+ \MPIsometrique{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{\ifboolKV[Papiers]{Seyes}{%
+ \MPSeyes{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{\MPCinq{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/rec-thy/README b/macros/latex/contrib/rec-thy/README
index 2524d9cc5e..1e6e845706 100644
--- a/macros/latex/contrib/rec-thy/README
+++ b/macros/latex/contrib/rec-thy/README
@@ -39,3 +39,4 @@ Github URL: https://github.com/TruePath/Recursion-Theory-Latex-Package
06/04/2020 - v3.4 Eliminated dependence on undertilde which is missing from texlive
v3.5 - Added \Hop command and misc code cleanup.
v3.6 - Fixed \REA[n] so that dash is shorter. Added BeamerRequirements to add a block for requirements in beamer and fixed the requirements environment for beamer. Fixed \req* command. Improved syntax for \recfnl so it can accept a () delimited argument via the same standard as \REset and \recf. Improved \setcol to allow it to be used repeatedly without typesetting bugs. Changed the code and pair commands to use only a single angle bracket.
+v3.7 - Fixed cases enviornment (both prettier and no problem with creating newline). Major refactor to fix all options. Fixed bug with \set display. Added \st command inside the \set command to depreciate second argument. Added experimental commands \finSsets (alt \ssetsOfsize), \finsets and optional argument to \powset. Changed \REAop so the hat is on the starred version as intended. Added the steps (experimental) code which requires an option to enable and fixed some problems with existing options. Reimplemented \REset to use xparse to avoid some errors in unusual contexts. Fixed the display of \tpath. Depreciated \iREAop and \oneREAop.
diff --git a/macros/latex/contrib/rec-thy/rec-thy.pdf b/macros/latex/contrib/rec-thy/rec-thy.pdf
index 783a3ef95d..601e4953ba 100644
--- a/macros/latex/contrib/rec-thy/rec-thy.pdf
+++ b/macros/latex/contrib/rec-thy/rec-thy.pdf
Binary files differ
diff --git a/macros/latex/contrib/rec-thy/rec-thy.sty b/macros/latex/contrib/rec-thy/rec-thy.sty
index b02e529891..b2a3e7775e 100644
--- a/macros/latex/contrib/rec-thy/rec-thy.sty
+++ b/macros/latex/contrib/rec-thy/rec-thy.sty
@@ -2,8 +2,7 @@
% Release Notes see README
\RequirePackage{expl3}
\RequirePackage{ltxcmds}
-\RequirePackage{expl3}
-\RequirePackage{ifxetex,ifpdf}
+\RequirePackage{iftex,ifpdf}
\RequirePackage{suffix}
\RequirePackage{ifmtarg}
\RequirePackage{xifthen}
@@ -11,10 +10,10 @@
\RequirePackage{etoolbox}
\RequirePackage{pict2e,picture}
\RequirePackage{xparse}
-\def\recthyVersion{3.6}
+\def\recthyVersion{3.7}
\ProvidesExplPackage
{rec-thy}
- {2021/02/28}
+ {2021/03/30}
{\recthyVersion}
{Provides commands for writing up recursion theory papers}
@@ -40,31 +39,34 @@
\robustify\(
\robustify\)
-
+\ltx@ifpackageloaded{unicode-math}{}{\RequirePackage{mathrsfs}}%\RequirePackage{mathbbol}}
+ \ltx@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
+ % \ltx@ifpackageloaded{amssymb}{}{\RequirePackage{amssymb}}
+ % \ltx@ifpackageloaded{amsfonts}{}{\RequirePackage{amsfonts}}
\AtBeginDocument{
% \@ifundefined{hyperref}{\providecommand{\texorpdfstring}[2]{def} }
-\ltx@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
-\ltx@ifpackageloaded{amssymb}{}{\RequirePackage{amssymb}}
-\ltx@ifpackageloaded{amsfonts}{}{\RequirePackage{amsfonts}}
-\ltx@ifpackageloaded{mathtools}{}{\RequirePackage{mathtools}}
-\ltx@ifpackageloaded{unicode-math}{}{\RequirePackage{mathrsfs}\RequirePackage{mathbbol}}
-% Undertilde doesn't exist in texlive so we remove the dependency and define it again.
-\ltx@ifpackageloaded{undertilde}{}{
- \newlength\knuthian@fdfive
- \def\mathpal@save#1{\let\was@math@style=#1\relax}
- \def\utilde#1{\mathpalette\mathpal@save
- {\setbox124=\hbox{$\was@math@style#1$}%
- \setbox125=\hbox{$\fam=3\global\knuthian@fdfive=\fontdimen5\font$}
- \setbox125=\hbox{$\widetilde{\vrule height 0pt depth 0pt width \wd124}$}%
- \baselineskip=1pt\relax
- \vtop{\copy124\copy125\vskip -\knuthian@fdfive}}}
- }
+
+ \ltx@ifpackageloaded{mathtools}{}{\RequirePackage{mathtools}}
+
+ % Undertilde doesn't exist in texlive so we remove the dependency and define it again.
+ \ltx@ifpackageloaded{undertilde}{}{
+ \newlength\knuthian@fdfive
+ \def\mathpal@save#1{\let\was@math@style=#1\relax}
+ \def\utilde#1{\mathpalette\mathpal@save
+ {\setbox124=\hbox{$\was@math@style#1$}%
+ \setbox125=\hbox{$\fam=3\global\knuthian@fdfive=\fontdimen5\font$}
+ \setbox125=\hbox{$\widetilde{\vrule height 0pt depth 0pt width \wd124}$}%
+ \baselineskip=1pt\relax
+ \vtop{\copy124\copy125\vskip -\knuthian@fdfive}}}
+ }
}
% \ifxetex %workaround for bug...hopefully can dispense on later
-\ifxetex
-\else
+\ifpdftex
\def\symbf#1{\mathbf{#1}}
+ \mathchardef\@recthy@mhyphen="2D % Define a "math hyphen"
+\else
+ \def\@recthy@mhyphen{\mathhyphen}
\fi
@@ -128,7 +130,8 @@
\newif\ifrecthy@nooperators \recthy@nooperatorsfalse
\newif\ifrecthy@fix@typeset \recthy@fix@typesettrue
\newif\ifrecthy@nodoubleangles \recthy@nodoubleanglesfalse
-%\newif\ifrecthy@nomodule \recthy@nomodulefalse
+\newif\ifrecthy@stepsenv \recthy@stepsenvfalse
+\newif\ifrecthy@compatThreeSixOrEarlier \recthy@compatThreeSixOrEarlierfalse
\DeclareOptionX{nohyphenation}{\recthy@nohyphenationtrue}
\DeclareOptionX{mrref}{\recthy@mrreftrue}
@@ -153,19 +156,31 @@
\DeclareOptionX{nosubfun}{\recthy@nosubfuntrue}
\DeclareOptionX{nopfcases}{\recthy@nopfcasestrue}
\DeclareOptionX{noprioritytrees}{\recthy@noprioritytreestrue}
-\DeclareOptionX{suppPriorityTrees}{\recthy@nosuppprioritytreesfalse}
\DeclareOptionX{nohyperreqs}{\recthy@hyperreqsfalse}
\DeclareOptionX{nooperators}{\recthy@nooperatorstrue}
+\DeclareOptionX{nofixtype}{\recthy@fix@typesetfalse}
+\DeclareOptionX{nodoubleangles}{\recthy@nodoubleanglestrue}
+\DeclareOptionX{steps}{\recthy@stepsenvtrue}
+
\DeclareOptionX{compat31}{\recthy@compat@threeOne}
\DeclareOptionX{compat35}{\recthy@compat@threeFive}
-\DeclareOptionX{nofixtype}{\ifrecthy@fix@typesetfalse}
-\DeclareOptionX{nodoubleangles}{\ifrecthy@nodoubleanglestrue}
+\DeclareOptionX{compat36}{\recthy@compat@threeSix}
+\DeclareOptionX{suppPriorityTrees}{
+\ifrecthy@compatThreeSixOrEarlier
+ \@packinfo{Enabling depreciated Support Priority Tree functionality. These functions are only accessible in compatibility mode and should not be used in new documents}
+ \recthy@nosuppprioritytreesfalse
+\else
+ \PackageWarningNoLine{rec-thy}{Suplemental Priority Tree option depreciated. Combine with one of the options compat36,compat32 or compat 31 to access these functions.}
+\fi
+}
\newcommand*{\recthy@rollback@threeTwo}{}
\newcommand*{\recthy@rollback@threeSix}{}
-\newcommand*{\recthy@compat@threeFive}{\recthy@rollback@threeSix}
-\newcommand*{\recthy@compat@threeOne}{\recthy@compat@threeFive\recthy@rollback@threeTwo}
+\newcommand*{\recthy@rollback@threeSeven}{}
+\newcommand*{\recthy@compat@threeSix}{\recthy@compatThreeSixOrEarliertrue\AtEndOfPackage{\recthy@rollback@threeSeven}}
+\newcommand*{\recthy@compat@threeFive}{\recthy@compatThreeSixOrEarliertrue\recthy@compat@threeSix\AtEndOfPackage{\recthy@rollback@threeSix}}
+\newcommand*{\recthy@compat@threeOne}{\recthy@compatThreeSixOrEarliertrue\recthy@compat@threeFive\AtEndOfPackage{\recthy@rollback@threeTwo}}
%\DeclareOptionX{nomodule}{\recthy@nomoduletrue}
@@ -178,194 +193,352 @@
\let\@recthy@ballsymb\@recthy@ballsymb@default
\DeclareOptionX{ballsymb}[@recthy@ballsymb@default]{\letcs{\@recthy@ballsymb}{#1}}
-\AtEndOfPackage{
- \ifrecthy@fix@typeset
- %Defining \overbar
- \let\save@mathaccent\mathaccent
- \newcommand*\if@single[3]{%
- \setbox0\hbox{${\mathaccent"0362{#1}}^H$}%
- \setbox2\hbox{${\mathaccent"0362{\kern0pt#1}}^H$}%
- \ifdim\ht0=\ht2 #3\else #2\fi
- }
- %The bar will be moved to the right by a half of \macc@kerna, which is computed by amsmath:
- \newcommand*\rel@kern[1]{\kern#1\dimexpr\macc@kerna}
- %If there's a superscript following the bar, then no negative kern may follow the bar;
- %an additional {} makes sure that the superscript is high enough in this case:
- \providecommand*\overbar{\relax}
- \renewcommand*\overbar[1]{\@ifnextchar^{{\over@bar{#1}{0}}}{\over@bar{#1}{1}}}
- %Use a separate algorithm for single symbols:
- \newcommand*\over@bar[2]{\if@single{#1}{\over@bar@{#1}{#2}{1}}{\over@bar@{#1}{#2}{2}}}
- \newcommand*\over@bar@[3]{%
- \begingroup
- \def\mathaccent##1##2{%
- %Enable nesting of accents:
- \let\mathaccent\save@mathaccent
- %If there's more than a single symbol, use the first character instead (see below):
- \if#32 \let\macc@nucleus\first@char \fi
- %Determine the italic correction:
- \setbox\z@\hbox{$\macc@style{\macc@nucleus}_{}$}%
- \setbox\tw@\hbox{$\macc@style{\macc@nucleus}{}_{}$}%
- \dimen@\wd\tw@
- \advance\dimen@-\wd\z@
- %Now \dimen@ is the italic correction of the symbol.
- \divide\dimen@ 3
- \@tempdima\wd\tw@
- \advance\@tempdima-\scriptspace
- %Now \@tempdima is the width of the symbol.
- \divide\@tempdima 10
- \advance\dimen@-\@tempdima
- %Now \dimen@ = (italic correction / 3) - (Breite / 10)
- \ifdim\dimen@>\z@ \dimen@0pt\fi
- %The bar will be shortened in the case \dimen@<0 !
- \rel@kern{0.6}\kern-\dimen@
- \if#31
- \overline{\rel@kern{-0.6}\kern\dimen@\macc@nucleus\rel@kern{0.4}\kern\dimen@}%
- \advance\dimen@0.4\dimexpr\macc@kerna
- %Place the combined final kern (-\dimen@) if it is >0 or if a superscript follows:
- \let\final@kern#2%
- \ifdim\dimen@<\z@ \let\final@kern1\fi
- \if\final@kern1 \kern-\dimen@\fi
- \else
- \overline{\rel@kern{-0.6}\kern\dimen@#1}%
- \fi
- }%
- \macc@depth\@ne
- \let\math@bgroup\@empty \let\math@egroup\macc@set@skewchar
- \mathsurround\z@ \frozen@everymath{\mathgroup\macc@group\relax}%
- \macc@set@skewchar\relax
- \let\mathaccentV\macc@nested@a
- %The following initialises \macc@kerna and calls \mathaccent:
+
+
+
+
+
+
+
+
+
+\let\pmg@casefont\textsc
+\DeclareOptionX{pfcasefont}[textsc]{\letcs{\pmg@casefont}{#1}}
+
+
+
+\let\@recthy@reqscr\mathscr
+\DeclareOptionX{reqscr}[mathscr]{\letcs{\@recthy@reqscr}{#1}}
+% \DeclareOptionX{beamerreq}[@recthy@EmptyStr@Default]{\letcs{\@recthy@EmptyStr}{#1}}
+
+
+
+
+
+
+
+
+% \newcommand*{\@recthy@REA}{\ensuremath{\text{REA}}}
+% \WithSuffix\def\@recthy@REA[#1]{#1-\@recthy@REA\relax}
+% \newcommand*{\@recthy@CEA}{\ensuremath{\text{CEA}}}
+% \WithSuffix\def\@recthy@CEA[#1]{#1-\@recthy@CEA\relax}
+
+\DeclareOptionX{reterms}{%
+ \let\@recthy@ce=\@recthy@re
+ \let\@recthy@computable=\@recthy@recursive
+ \let\@recthy@computablyEnumerable=\@recthy@recursivelyEnumerable
+ \let\@recthy@ComputablyEnumerable=\@recthy@RecursivelyEnumerable
+ } %Make all references to ce change to re
+
+ \DeclareOptionX{reaterms}{%
+ \let\@recthy@CEA=\@recthy@REA
+ }
+
+\DeclareOptionX{ceterms}{%
+ \let\@recthy@re=\@recthy@ce
+ \let\@recthy@recursive=\@recthy@computable
+ \let\@recthy@recursivelyEnumerable=\@recthy@computablyEnumerable
+ \let\@recthy@RecursivelyEnumerable=\@recthy@ComputablyEnumerable
+ } %Make all references to re change to ce
+
+\DeclareOptionX{ceaterms}{%
+ \let\@recthy@REA=\@recthy@CEA
+ }
+
+\def\@recthy@setdiffSYMdefault{-}
+\let\@recthy@setdiffSYM=\@recthy@setdiffSYMdefault
+\DeclareOptionX{diffsym}[@recthy@setdiffSYMdefault]{\letcs{\@recthy@setdiffSYM}{#1}}
+% \newcommand*{\@recthy@Cform@default}{\prescript{\mathcal{C}}{}{\Pi}}
+
+
+\newcommand*{\@recthy@CDelta@default}{\prescript{\mathcal{C}}{}{\Delta}}
+\newcommand*{\@recthy@CSigma@default}{\prescript{\mathcal{C}}{}{\Sigma}}
+\newcommand*{\@recthy@CPi@default}{\prescript{\mathcal{C}}{}{\Pi}}
+\let\@recthy@CDelta=\@recthy@CDelta@default
+\let\@recthy@CSigma=\@recthy@CSigma@default
+\let\@recthy@CPi=\@recthy@CPi@default
+\DeclareOptionX{cdeltasym}[@recthy@CDelta@default]{\letcs{\@recthy@CDelta}{#1}}
+\DeclareOptionX{csigmasym}[@recthy@CSigma@default]{\letcs{\@recthy@CSigma}{#1}}
+\DeclareOptionX{cpisym}[@recthy@CPi@default]{\letcs{\@recthy@CPi}{#1}}
+% \DeclareOptionX{cformsym}[@recthy@Cform@default]{\letcs{\@recthy@CPi}{#1}\letcs{\@recthy@CSigma}{#1}\letcs{\@recthy@CDelta}{#1}}
+
+
+
+
+\def\@recthy@recfSYM@default{\phi}
+\let\@recthy@recfSYM=\@recthy@recfSYM@default
+\def\@recthy@recfnlSYM@default{\Phi}
+\let\@recthy@recfnlSYM=\@recthy@recfnlSYM@default
+\def\@recthy@useSYM@default{\ltx@ifpackageloaded{unicode-math}{\symbffrak{u}}{\mathfrak{u}}}
+\let\@recthy@useSYM=\@recthy@useSYM@default
+\DeclareOptionX{recfnlsym}[@recthy@recfnlSYM@default]{\letcs{\@recthy@recfnlSYM}{#1}}
+\DeclareOptionX{recfsym}[@recthy@recfSYM@default]{\letcs{\@recthy@recfSYM}{#1}}
+\DeclareOptionX{usesym}[@recthy@useSYM@default]{\letcs{\@recthy@useSYM}{#1}}
+
+\newcommand*{\@recthy@llangle}{\langle\!\langle}
+\newcommand*{\@recthy@rrangle}{\rangle\!\rangle}
+
+\let\@recthy@EmptyStr=\@recthy@EmptyStr@Default
+\let\@recthy@concatSYM=\@recthy@concatSYM@Default
+\def\@recthy@langle{\langle}
+\def\@recthy@rangle{\rangle}
+\let\@recthy@lstrdelim=\@recthy@langle
+\let\@recthy@rstrdelim=\@recthy@rangle
+\let\@recthy@lcodedelim=\@recthy@langle
+\let\@recthy@rcodedelim=\@recthy@rangle
+\let\@recthy@lpairdelim=\@recthy@langle
+\let\@recthy@rpairdelim=\@recthy@rangle
+
+
+\def\@recthy@concatSYM@Default{\widehat{\phantom{X}}}
+\def\@recthy@EmptyStr@Default{\mathopen{\langle}\mathclose{\rangle}}
+\let\@recthy@concatSYM\@recthy@concatSYM@Default
+\let\@recthy@EmptyStr\@recthy@EmptyStr@Default
+
+\DeclareOptionX{emptystr}[@recthy@EmptyStr@Default]{\letcs{\@recthy@EmptyStr}{#1}}
+\DeclareOptionX{concatsym}[@recthy@concatSYM@Default]{\letcs{\@recthy@concatSYM}{#1}}
+\DeclareOptionX{lstrdelim}[@recthy@langle]{\letcs{\@recthy@lstrdelim}{#1}}
+\DeclareOptionX{rstrdelim}[@recthy@rangle]{\letcs{\@recthy@rstrdelim}{#1}}
+\DeclareOptionX{lcodedelim}[@recthy@langle]{\letcs{\@recthy@lcodedelim}{#1}}
+\DeclareOptionX{rcodedelim}[@recthy@rangle]{\letcs{\@recthy@rcodedelim}{#1}}
+\DeclareOptionX{lpairdelim}[@recthy@llangle]{\letcs{\@recthy@lpairdelim}{#1}}
+\DeclareOptionX{rpairdelim}[@recthy@rrangle]{\letcs{\@recthy@rpairdelim}{#1}}
+
+
+
+
+
+
+% \ProcessOptions*
+% \ProcessOptionsX<\@recthy@family>
+\ProcessOptionsX
+
+%misc tools
+
+\def\@recthy@ignorespacesandallparsafterend{\ifhmode\unskip\fi
+\aftergroup\@recthy@useignorespacesandallpars}
+\def\@recthy@useignorespacesandallpars#1\ignorespaces\fi{%
+#1\fi\@recthy@ignorespacesandallpars}
+\def\@recthy@ignorespacesandallpars{%
+ \@ifnextchar\par
+ {\expandafter\@recthy@ignorespacesandallpars\@gobble}%
+ {}%
+}
+
+
+\ifrecthy@fix@typeset
+ %Defining \overbar
+ \let\save@mathaccent\mathaccent
+ \newcommand*\if@single[3]{%
+ \setbox0\hbox{${\mathaccent"0362{#1}}^H$}%
+ \setbox2\hbox{${\mathaccent"0362{\kern0pt#1}}^H$}%
+ \ifdim\ht0=\ht2 #3\else #2\fi
+ }
+ %The bar will be moved to the right by a half of \macc@kerna, which is computed by amsmath:
+ \newcommand*\rel@kern[1]{\kern#1\dimexpr\macc@kerna}
+ %If there's a superscript following the bar, then no negative kern may follow the bar;
+ %an additional {} makes sure that the superscript is high enough in this case:
+ \providecommand*\overbar{\relax}
+ \renewcommand*\overbar[1]{\@ifnextchar^{{\over@bar{#1}{0}}}{\over@bar{#1}{1}}}
+ %Use a separate algorithm for single symbols:
+ \newcommand*\over@bar[2]{\if@single{#1}{\over@bar@{#1}{#2}{1}}{\over@bar@{#1}{#2}{2}}}
+ \newcommand*\over@bar@[3]{%
+ \begingroup
+ \def\mathaccent##1##2{%
+ %Enable nesting of accents:
+ \let\mathaccent\save@mathaccent
+ %If there's more than a single symbol, use the first character instead (see below):
+ \if#32 \let\macc@nucleus\first@char \fi
+ %Determine the italic correction:
+ \setbox\z@\hbox{$\macc@style{\macc@nucleus}_{}$}%
+ \setbox\tw@\hbox{$\macc@style{\macc@nucleus}{}_{}$}%
+ \dimen@\wd\tw@
+ \advance\dimen@-\wd\z@
+ %Now \dimen@ is the italic correction of the symbol.
+ \divide\dimen@ 3
+ \@tempdima\wd\tw@
+ \advance\@tempdima-\scriptspace
+ %Now \@tempdima is the width of the symbol.
+ \divide\@tempdima 10
+ \advance\dimen@-\@tempdima
+ %Now \dimen@ = (italic correction / 3) - (Breite / 10)
+ \ifdim\dimen@>\z@ \dimen@0pt\fi
+ %The bar will be shortened in the case \dimen@<0 !
+ \rel@kern{0.6}\kern-\dimen@
\if#31
- \macc@nested@a\relax111{#1}%
+ \overline{\rel@kern{-0.6}\kern\dimen@\macc@nucleus\rel@kern{0.4}\kern\dimen@}%
+ \advance\dimen@0.4\dimexpr\macc@kerna
+ %Place the combined final kern (-\dimen@) if it is >0 or if a superscript follows:
+ \let\final@kern#2%
+ \ifdim\dimen@<\z@ \let\final@kern1\fi
+ \if\final@kern1 \kern-\dimen@\fi
\else
- %If the argument consists of more than one symbol, and if the first token is
- %a letter, use that letter for the computations:
- \def\gobble@till@marker##1\endmarker{}%
- \futurelet\first@char\gobble@till@marker#1\endmarker
- \ifcat\noexpand\first@char A\else
- \def\first@char{}%
- \fi
- \macc@nested@a\relax111{\first@char}%
+ \overline{\rel@kern{-0.6}\kern\dimen@#1}%
\fi
- \endgroup
- }
+ }%
+ \macc@depth\@ne
+ \let\math@bgroup\@empty \let\math@egroup\macc@set@skewchar
+ \mathsurround\z@ \frozen@everymath{\mathgroup\macc@group\relax}%
+ \macc@set@skewchar\relax
+ \let\mathaccentV\macc@nested@a
+ %The following initialises \macc@kerna and calls \mathaccent:
+ \if#31
+ \macc@nested@a\relax111{#1}%
\else
- \@packinfo{Not loading Fix Typesetting}
+ %If the argument consists of more than one symbol, and if the first token is
+ %a letter, use that letter for the computations:
+ \def\gobble@till@marker##1\endmarker{}%
+ \futurelet\first@char\gobble@till@marker#1\endmarker
+ \ifcat\noexpand\first@char A\else
+ \def\first@char{}%
+ \fi
+ \macc@nested@a\relax111{\first@char}%
\fi
+ \endgroup
+ }
+\else
+ \@packinfo{Not loading Fix Typesetting}
+\fi
-}
+%Strings
-\AtEndOfPackage{
- \ifrecthy@noprioritytrees
- \@packinfo{Not loading Priority Tree Helper}
- \else
- \@packinfo{Loading Priority Tree Helper.}
- \providecommand{\PriorityTree}{\mathbb{T}}
- \providecommand{\tpath}[1][]{\ifthenelse{\isempty{#1}}{\symbf{f}}{\mathbb{f}_{#1}}}
- \providecommand{\leftof}{\mathbin{<_L}}
- \providecommand{\leftofeq}{\mathbin{\leq_L}}
- \providecommand{\rightof}{\mathbin{>_L}}
- \providecommand{\rightofeq}{\mathbin{\geq_L}}
- \providecommand{\nleftof}{\mathbin{\nless_L}}
- \providecommand{\nleftofeq}{\mathbin{\nleq_L}}
- \providecommand{\nrightof}{\mathbin{\ngtr_L}}
- \providecommand{\nrightofeq}{\mathbin{\ngeq_L}}
- \NewDocumentCommand{\PriorityTreeModule}{mO{}m}{\ensuremath{{\@recthy@modulescr{#1}}^{#2}_{#3} }}
- \let\module=\PriorityTreeModule
- \providecommand{\ball}[3][]{{\@recthy@ballsymb}^{#1}(#2, #3)}
- \fi
-}
+
+
+ \newcommand*{\@recthy@pair}[2]{\mathopen{\@recthy@lpairdelim} #1, #2 \mathclose{\@recthy@rpairdelim}}
+ \newcommand*{\@recthy@str}[1]{\mathopen{\@recthy@lstrdelim}#1\mathclose{\@recthy@rstrdelim}}
+ \newcommand*{\@recthy@code}[1]{\mathopen{\@recthy@lcodedelim}#1\mathclose{\@recthy@rcodedelim}}
+
+
+ \appto{\recthy@rollback@threeSix}{
+ \renewcommand*{\@recthy@pair}[2]{\mathopen{\@recthy@llangle} #1, #2 \mathclose{\@recthy@rrangle}}
+ \def\@recthy@EmptyStr@Default{\mathopen{\langle}\mathclose{\rangle}}
+ % \renewcommand*{\@recthy@str}[1]{\mathopen{\langle}#1\mathclose{\rangle}}
+ \renewcommand*{\@recthy@code}[2][]{\mathopen{\@recthy@llangle}#2\mathclose{\@recthy@rrangle}^{#1}}
+ }
+\NewDocumentCommand{\incompat@recthy}{o}{\mathrel{\mid}\IfValueTF{#1}{_{#1}}{}}
+\NewDocumentCommand{\compat@recthy}{o}{\mathrel{\not\mid}\IfValueTF{#1}{_{#1}}{}}
+
+\ifrecthy@nostrings
+ \@packinfo{No strings loading.}
+\else
+ \@packinfo{Strings loading.}
+ \appto{\recthy@rollback@threeSix}{\newcommand*{\closedn}[1]{{#1}^\blacktriangledown}}
+ \let\code=\@recthy@code
+ \let\str=\@recthy@str
+ \newcommand*{\EmptyStr}{\@recthy@EmptyStr}
+ \newcommand*{\estr}{\EmptyStr}
+ \newcommand*{\decode}[2]{\left(#1\right)_{#2}}
+ \let\godelpair=\@recthy@pair
+ \let\gpair=\@recthy@pair
+ \newcommand*{\concat}{\@recthy@concatSYM}
+ \WithSuffix\def\concat[#1]{\concat\str{#1}}
+ \newcommand*{\strpred}[1]{{#1}^{-}}
+ \providecommand*{\lh}[2][]{\@recthy@abs{#2}_{#1}} %% Gives length of a string
-\AtEndOfPackage{
- \ifrecthy@nosuppprioritytrees
- \@packinfo{Not loading Priority Tree Supplemental Helper}
+ \providecommand*{\incompat}{\incompat@recthy} %incompatible stringes FIX SPACING
+ \providecommand*{\incomp}{\incompat@recthy}
+ \providecommand*{\compat}{\compat@recthy}
+ \providecommand*{\nincompat}{\compat@recthy}
+ \providecommand*{\nincomp}{\compat@recthy}
+ % \newcommand*{\setcol}[2]{{#1}^{[#2]}}
+ \ExplSyntaxOn %thx stackexghance
+ \NewDocumentCommand \setcol {m m}
+ {
+ \bool_lazy_and:nnTF
+ { \int_compare_p:nNn { \tl_count:n {#1} } = 3 }
+ { \tl_if_head_eq_meaning_p:nN {#1} \setcol }
+ {
+ \pgerdes_setcol_special:nnnn #1 {#2}
+ }
+ {
+ \pgerdes_setcol_normal:nn {#1} {#2}
+ }
+ }
+ \cs_new:Npn \pgerdes_setcol_special:nnnn #1 #2 #3 #4
+ {
+ {#2} \sp { [#3] [#4] }
+ }
+ \cs_new:Npn \pgerdes_setcol_normal:nn #1 #2
+ {
+ {#1} \sp { [#2] }
+ }
+ \ExplSyntaxOff
+
+ \ifrecthy@nopair
+ \@packinfo{No redefining pair.}
\else
- \providecommand*{\Astages}[1]{\mathcal{A}({#1})}
- \providecommand*{\Vstages}[1]{\mathcal{V}(#1)}
- \providecommand{\reqof}[2][]{\mathbb{r}(#2)}
- \let\modof=\reqof
- \providecommand{\ancestor}{\succ}
- \providecommand{\descendant}{\prec}
- \providecommand{\ancestoreq}{\succeq}
- \providecommand{\descendanteq}{\preceq}
- \let\ances=\ancestor
- \let\anceseq=\ancestoreq
- \let\desc=\descendant
- \let\desceq=\descendanteq
+ \@packinfo{pair=godelpair.}
+ \let\pair=\@recthy@pair
\fi
+\fi
-}
+\ifrecthy@noprioritytrees
+ \@packinfo{Not loading Priority Tree Helper}
+\else
+ \@packinfo{Loading Priority Tree Helper.}
+ \providecommand{\PriorityTree}{\mathbb{T}}
+ \providecommand{\tpath}[1][]{\ifthenelse{\isempty{#1}}{\mathbb{f}}{\mathbb{f}_{#1}}}
+ \providecommand{\leftof}{\mathbin{<_L}}
+ \providecommand{\leftofeq}{\mathbin{\leq_L}}
+ \providecommand{\rightof}{\mathbin{>_L}}
+ \providecommand{\rightofeq}{\mathbin{\geq_L}}
+ \providecommand{\nleftof}{\mathbin{\nless_L}}
+ \providecommand{\nleftofeq}{\mathbin{\nleq_L}}
+ \providecommand{\nrightof}{\mathbin{\ngtr_L}}
+ \providecommand{\nrightofeq}{\mathbin{\ngeq_L}}
+ \NewDocumentCommand{\PriorityTreeModule}{mO{}m}{\ensuremath{{\@recthy@modulescr{#1}}^{#2}_{#3} }}
+ \let\module=\PriorityTreeModule
+ \providecommand{\ball}[3][]{{\@recthy@ballsymb}^{#1}(#2, #3)}
+\fi
-\let\pmg@casefont\textsc
-\DeclareOptionX{pfcasefont}[textsc]{\letcs{\pmg@casefont}{#1}}
-\AtEndOfPackage{
- \ifrecthy@nopfcases
- \@packinfo{Not loading Proof Cases Helper}
- \else
- \@packinfo{Loading Proof Cases Helper.}
- \RequirePackage{enumitem}
- \ltx@ifpackageloaded{cleveref}{
- \crefformat{pfcasesnonumi}{#2case~#1#3}
- \Crefformat{pfcasesnonumi}{#2Case~#1#3}
- \crefformat{pfcasesnonumii}{#2subcase~#1#3}
- \Crefformat{pfcasesnonumii}{#2Subcase~#1#3}
- \crefformat{pfcasesnonumiii}{#2subsubcase~#1#3}
- \Crefformat{pfcasesnonumiii}{#2Subsubcase~#1#3}
- \crefformat{pfcasesnumberedi}{#2case~#1#3}
- \Crefformat{pfcasesnumberedi}{#2Case~#1#3}
- \crefformat{pfcasesnumberedii}{#2case~#1#3}
- \Crefformat{pfcasesnumberedii}{#2Case~#1#3}
- \crefformat{pfcasesnumberediii}{#2case~#1#3}
- \Crefformat{pfcasesnumberediii}{#2Case~#1#3}
- }{}
- \newlist{pfcasesnonum}{enumerate}{3}
+\ifrecthy@nosuppprioritytrees
+\else
+ \providecommand*{\Astages}[1]{\mathcal{A}({#1})}
+ \providecommand*{\Vstages}[1]{\mathcal{V}(#1)}
+ \providecommand{\reqof}[2][]{\mathbb{r}(#2)}
+ \let\modof=\reqof
+ \providecommand{\ancestor}{\succ}
+ \providecommand{\descendant}{\prec}
+ \providecommand{\ancestoreq}{\succeq}
+ \providecommand{\descendanteq}{\preceq}
+ \let\ances=\ancestor
+ \let\anceseq=\ancestoreq
+ \let\desc=\descendant
+ \let\desceq=\descendanteq
+\fi
+
+
+\ifrecthy@nopfcases
+ \@packinfo{Not loading Proof Cases Helper}
+\else
+ \@packinfo{Loading Proof Cases Helper.}
+ \RequirePackage{enumitem}
+ \appto{\recthy@rollback@threeSeven}{
\setlist[pfcasesnonum]{
label={\pmg@casefont{Case}}\protect\thiscase:~,
align=left,
labelsep=!,
itemindent=-1em,
- leftmargin=2em,
- labelindent=0pt,
- labelwidth=0pt
- }
- \setlist[pfcasesnonum,1]{
- before=\def\pfcasecounter@pmg{pfcasesnonumi},
}
- \setlist[pfcasesnonum,2]{
- before=\def\pfcasecounter@pmg{pfcasesnonumii},
- }
- \setlist[pfcasesnonum,3]{
- before=\def\pfcasecounter@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@pmg{pfcasesnumberedi},
label={{\pmg@casefont{Case}}~\arabic*\protect\thiscase:~},
- ref={\arabic*},
}
\setlist[pfcasesnumbered,2]{
- before=\def\pfcasecounter@pmg{pfcasesnumberedii},
label={{\pmg@casefont{Case}}~\arabic{pfcasesnumberedi}\alph*:\protect\thiscase.~},
- ref={\arabic{pfcasesnumberedi}\alph*},
}
\setlist[pfcasesnumbered,3]{
- before=\def\pfcasecounter@pmg{pfcasesnumberediii},
label={{\pmg@casefont{Case}}~\arabic{pfcasesnumberedi}\alph{pfcasesnumberedii}.\roman*:\protect\thiscase.~},
- ref={\arabic{pfcasesnumberedi}\alph{pfcasesnumberedii}.\roman*},
}
- \newenvironment{pfcases*}{
+ \renewenvironment{pfcases*}{
\ProvideDocumentCommand{\case}{o}{
\IfNoValueTF{##1}{
\def\thiscase{}%
@@ -379,8 +552,7 @@
\begin{pfcasesnonum}
}
{\end{pfcasesnonum}}
-
- \newenvironment{pfcases}{
+ \renewenvironment{pfcases}{
\ProvideDocumentCommand{\case}{o}{
\IfNoValueTF{##1}{
\def\thiscase{}%
@@ -392,87 +564,166 @@
\protected@xdef\cref@currentlabel{[\pfcasecounter@pmg][][\cref@result] \csname the\pfcasecounter@pmg \endcsname}}{}%
}
\begin{pfcasesnumbered}}{\end{pfcasesnumbered}}
- \fi
-}
+ }
+
+
+ \ltx@ifpackageloaded{cleveref}{
+ \crefformat{pfcasesnonumi}{#2case~#1#3}
+ \Crefformat{pfcasesnonumi}{#2Case~#1#3}
+ \crefformat{pfcasesnonumii}{#2subcase~#1#3}
+ \Crefformat{pfcasesnonumii}{#2Subcase~#1#3}
+ \crefformat{pfcasesnonumiii}{#2subsubcase~#1#3}
+ \Crefformat{pfcasesnonumiii}{#2Subsubcase~#1#3}
+ \crefformat{pfcasesnumberedi}{#2case~#1#3}
+ \Crefformat{pfcasesnumberedi}{#2Case~#1#3}
+ \crefformat{pfcasesnumberedii}{#2case~#1#3}
+ \Crefformat{pfcasesnumberedii}{#2Case~#1#3}
+ \crefformat{pfcasesnumberediii}{#2case~#1#3}
+ \Crefformat{pfcasesnumberediii}{#2Case~#1#3}
+ }{}
+ \newlist{pfcasesnonum}{enumerate}{3}
+ \setlist[pfcasesnonum]{
+ label={\pmg@casefont{Case}},
+ align=left,
+ labelsep=0pt,
+ itemindent=!,
+ leftmargin=2em,
+ labelindent=0pt,
+ labelwidth=0pt
+ }
+ \setlist[pfcasesnonum,1]{
+ before=\def\pfcasecounter@pmg{pfcasesnonumi},
+ }
+ \setlist[pfcasesnonum,2]{
+ before=\def\pfcasecounter@pmg{pfcasesnonumii},
+ }
+ \setlist[pfcasesnonum,3]{
+ before=\def\pfcasecounter@pmg{pfcasesnonumiii},
+ }
+ \newlist{pfcasesnumbered}{enumerate}{3}
+ \setlist[pfcasesnumbered]{
+ align=left,
+ labelsep=0pt,
+ itemindent=!,
+ leftmargin=2em,
+ labelindent=0pt,
+ labelwidth=0pt
+ }
+ \setlist[pfcasesnumbered,1]{
+ before=\def\pfcasecounter@pmg{pfcasesnumberedi},
+ label={{\pmg@casefont{Case}}~\arabic*},
+ ref={\arabic*},
+ }
+ \setlist[pfcasesnumbered,2]{
+ before=\def\pfcasecounter@pmg{pfcasesnumberedii},
+ label={{\pmg@casefont{Case}}~\arabic{pfcasesnumberedi}\alph*},
+ ref={\arabic{pfcasesnumberedi}\alph*},
+ labelindent=-1em,
+ }
+ \setlist[pfcasesnumbered,3]{
+ before=\def\pfcasecounter@pmg{pfcasesnumberediii},
+ label={{\pmg@casefont{Case}}~\arabic{pfcasesnumberedi}\alph{pfcasesnumberedii}.\roman*},
+ ref={\arabic{pfcasesnumberedi}\alph{pfcasesnumberedii}.\roman*},
+ labelindent=-1em,
+ }
+ \def\@recthy@cases@labelindent{0pt}
+ \newenvironment{pfcases*}{
+ \def\@recthy@cases@labelindent{-1em}
+ \ProvideDocumentCommand{\case}{r[]}{
+ \def\thiscase{~##1}%
+ \item~##1\textbf{:} %
+ \ltx@ifpackageloaded{cleveref}{%
+ \cref@constructprefix{pfcases}{\cref@result}%
+ \protected@xdef\cref@currentlabel{[\pfcasecounter@pmg][][\cref@result]##1}}{} \protected@edef\@currentlabel{##1}\ignorespaces}
+ \begin{pfcasesnonum}[labelindent=\@recthy@cases@labelindent]\def\@recthy@cases@labelindent{-1em}\ignorespaces}{\end{pfcasesnonum}\ignorespacesafterend}
+
+ \newenvironment{pfcases}{
+ \ProvideDocumentCommand{\case}{o}{
+ \IfNoValueTF{##1}{
+ \def\thiscase{}%
+ }{
+ \def\thiscase{~##1}%
+ }
+ \item~##1\textbf{:} \linebreak[1]%
+ \ltx@ifpackageloaded{cleveref}{%
+ \cref@constructprefix{\pfcasecounter@pmg}{\cref@result}%
+ \protected@xdef\cref@currentlabel{[\pfcasecounter@pmg][][\cref@result]\csname the\pfcasecounter@pmg \endcsname}}{}\ignorespaces}
+
+ \begin{pfcasesnumbered}[labelindent=\@recthy@cases@labelindent]\def\@recthy@cases@labelindent{-1em}\ignorespaces}{\end{pfcasesnumbered}\ignorespacesafterend}
+\fi
+
-\AtEndOfPackage{
\ifrecthy@nosubfun
\@packinfo{Not loading subfun defs.}
\else
\@packinfo{Loading subfun defs.}
%DOCUMENT ME
- \newcommand{\@pnrelbar}{%
- \linethickness{\dimen2}%
- \sbox\z@{$\m@th\prec$}%
- \dimen@=1.1\ht\z@
- \begin{picture}(\dimen@,.4ex)
- \roundcap
- \put(0,.2ex){\line(1,0){\dimen@}}
- \put(\dimexpr 0.5\dimen@-.2ex\relax,0){\line(1,1){.4ex}}
- \end{picture}%
-}
-
-
- \newcommand{\@snrelbar}{%
- \linethickness{\dimen2}%
- \sbox\z@{$\m@th\succ$}%
- \dimen@=1.1\ht\z@
- \begin{picture}(\dimen@,.4ex)
- \roundcap
- \put(0,.2ex){\line(1,0){\dimen@}}
- \put(\dimexpr 0.5\dimen@-.2ex\relax,0){\line(1,1){.4ex}}
- \end{picture}%
-}
-
-
-\newcommand{\@precneq}{\mathrel{\vcenter{\hbox{\text{\prec@neq}}}}}
-\newcommand{\prec@neq}{%
- \dimen2=\f@size\dimexpr.04pt\relax
- \oalign{%
- \noalign{\kern\dimexpr.2ex-.5\dimen2\relax}
- $\m@th\prec$\cr
- \noalign{\kern-.5\dimen2}
- \hidewidth\@pnrelbar\hidewidth\cr
- }%
-}
-
-
-\newcommand{\@succneq}{\mathrel{\vcenter{\hbox{\text{\succ@neq}}}}}
-\newcommand{\succ@neq}{%
- \dimen2=\f@size\dimexpr.04pt\relax
- \oalign{%
- \noalign{\kern\dimexpr.2ex-.5\dimen2\relax}
- $\m@th\prec$\cr
- \noalign{\kern-.5\dimen2}
- \hidewidth\@snrelbar\hidewidth\cr
- }%
-}
-
-
- \NewDocumentCommand{\subfun}{o}{\prec\IfNoValueTF{#1}{}{_{#1}}}
- \NewDocumentCommand{\supfun}{o}{\succ\IfNoValueTF{#1}{}{_{#1}}}
- \NewDocumentCommand{\nsubfun}{o}{\nprec\IfNoValueTF{#1}{}{_{#1}}}
- \NewDocumentCommand{\nsupfun}{o}{\nsucc\IfNoValueTF{#1}{}{_{#1}}}
- \NewDocumentCommand{\subfuneq}{o}{\preceq\IfNoValueTF{#1}{}{_{#1}}}
- \NewDocumentCommand{\subfunneq}{o}{\@precneq\IfNoValueTF{#1}{}{_{#1}}}
- \NewDocumentCommand{\supfuneq}{o}{\succeq\IfNoValueTF{#1}{}{_{#1}}}
- \NewDocumentCommand{\supfunneq}{o}{\@succneq\IfNoValueTF{#1}{}{_{#1}}}
- \NewDocumentCommand{\nsubfuneq}{o}{\npreceq\IfNoValueTF{#1}{}{_{#1}}}
- \NewDocumentCommand{\nsupfuneq}{o}{\nsucceq\IfNoValueTF{#1}{}{_{#1}}}
+ \newcommand{\@pnrelbar}{%
+ \linethickness{\dimen2}%
+ \sbox\z@{$\m@th\prec$}%
+ \dimen@=1.1\ht\z@
+ \begin{picture}(\dimen@,.4ex)
+ \roundcap
+ \put(0,.2ex){\line(1,0){\dimen@}}
+ \put(\dimexpr 0.5\dimen@-.2ex\relax,0){\line(1,1){.4ex}}
+ \end{picture}%
+ }
+
+
+ \newcommand{\@snrelbar}{%
+ \linethickness{\dimen2}%
+ \sbox\z@{$\m@th\succ$}%
+ \dimen@=1.1\ht\z@
+ \begin{picture}(\dimen@,.4ex)
+ \roundcap
+ \put(0,.2ex){\line(1,0){\dimen@}}
+ \put(\dimexpr 0.5\dimen@-.2ex\relax,0){\line(1,1){.4ex}}
+ \end{picture}%
+ }
+
+
+ \newcommand{\@precneq}{\mathrel{\vcenter{\hbox{\text{\prec@neq}}}}}
+ \newcommand{\prec@neq}{%
+ \dimen2=\f@size\dimexpr.04pt\relax
+ \oalign{%
+ \noalign{\kern\dimexpr.2ex-.5\dimen2\relax}
+ $\m@th\prec$\cr
+ \noalign{\kern-.5\dimen2}
+ \hidewidth\@pnrelbar\hidewidth\cr
+ }%
+ }
+
+
+ \newcommand{\@succneq}{\mathrel{\vcenter{\hbox{\text{\succ@neq}}}}}
+ \newcommand{\succ@neq}{%
+ \dimen2=\f@size\dimexpr.04pt\relax
+ \oalign{%
+ \noalign{\kern\dimexpr.2ex-.5\dimen2\relax}
+ $\m@th\prec$\cr
+ \noalign{\kern-.5\dimen2}
+ \hidewidth\@snrelbar\hidewidth\cr
+ }%
+ }
+
+
+ \NewDocumentCommand{\subfun}{o}{\prec\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\supfun}{o}{\succ\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\nsubfun}{o}{\nprec\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\nsupfun}{o}{\nsucc\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\subfuneq}{o}{\preceq\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\subfunneq}{o}{\@precneq\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\supfuneq}{o}{\succeq\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\supfunneq}{o}{\@succneq\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\nsubfuneq}{o}{\npreceq\IfNoValueTF{#1}{}{_{#1}}}
+ \NewDocumentCommand{\nsupfuneq}{o}{\nsucceq\IfNoValueTF{#1}{}{_{#1}}}
\fi
-}
-\let\@recthy@reqscr\mathscr
-\DeclareOptionX{reqscr}[mathscr]{\letcs{\@recthy@reqscr}{#1}}
-% \DeclareOptionX{beamerreq}[@recthy@EmptyStr@Default]{\letcs{\@recthy@EmptyStr}{#1}}
\newcommand*{\@pmg@saveeqstate}{\let\@origif@fleqn@pmg=\if@fleqn \let\@origiftagsleft@pmg=\iftagsleft@}
\newcommand*{\@pmg@restoreeqstate}{ \let\if@fleqn=\@origif@fleqn@pmg\let\iftagsleft@=\@origiftagsleft@pmg}
-
-\AtEndOfPackage{
\ifrecthy@noreqhelper
\@packinfo{Not loading requirement assist.}
\else
@@ -519,8 +770,8 @@
\NewDocumentCommand{\refreq}{O{}mO{}}{\ref{\detokenize{req:#2@#1#3}}}
- \NewDocumentCommand{\require@nested}{sO{}mO{}m}{
- \tag{\req@nohref[#2#4]{#3}{#5}}\IfBooleanTF{#1}{}{\label{\detokenize{req:#3@#2#4}}}
+ \NewDocumentCommand{\require@nested}{sO{}mO{}m}{%
+ \tag{\req@nohref[#2#4]{#3}{#5}}\IfBooleanTF{#1}{}{\label{\detokenize{req:#3@#2#4}}}%
}
@@ -552,97 +803,93 @@
\let\require=\require@beamer %
\begin{flalign*}%
#1 &
- \end{flalign*}}{}
+ \end{flalign*}}{\ignorespacesafterend}%\@recthy@ignorespacesandallparsafter}
\else
- \NewDocumentEnvironment{requirements}{}{
- \@pmg@saveeqstate
- \@fleqntrue
- \setlength\@mathmargin{1.5cm}
- \tagsleft@true
- \usetagform{colon}
- \let\require=\require@nested
- % \let\maketag@@@orig@pmg=\maketag@@@
- % \def\maketag@@@#1{\hbox{\m@th\normalfont#1:}}
+ \NewDocumentEnvironment{requirements}{}{%
+ \@pmg@saveeqstate%
+ \@fleqntrue%
+ \setlength\@mathmargin{1.5cm}%
+ \tagsleft@true%
+ \usetagform{colon}%
+ \let\require=\require@nested%
\gather
- }{
- \endgather
- \@pmg@restoreeqstate
- \usetagform{default}
- % \let\maketag@@@=\maketag@@@orig@pmg
- }
+ }{\endgather%
+ \@pmg@restoreeqstate%
+ \usetagform{default}%
+ \ignorespacesafterend}
\fi
\fi
-}
-
-\AtEndOfPackage{
\ifrecthy@nostructresets
\@packinfo{Not loading r.e. set structs w/ containment.}
\else
- \@packinfo{Loading r.e. set structs w/ containment.}
-\let\@orig@setminus=\setminus
-\newcommand*{\promptdif}{\@orig@setminus_{\downarrow}}
-\let\setbefore=\promptdif
-\let\promptminus=\promptdif
-\let\promptsetminus=\promptdif
-
-\newcommand*{\StrcE}{\ensuremath{\mathscr{E}}}
-\WithSuffix\def\StrcE*{\ensuremath{\mathscr{E}^{*}}}
-\let\strucE\StrcE
-\newcommand*{\StrcL}[1]{\mathscr{L}(#1)}
-\newcommand*{\StrcStarL}[1]{\mathscr{L}^{*}(#1)}
-\WithSuffix\def\StrcL*{\StrcStarL}
-\newcommand*{\splitof}{\sqsubset}
-\newcommand*{\splitby}{\sqsupset}
-\newcommand*{\StrcR}{\ensuremath{\mathcal{R}}}
-\newcommand*{\StrcD}{\ensuremath{\mathcal{D}}}
+ \@packinfo{Loading r.e. set structs w/ containment.}
+ \let\@orig@setminus=\setminus
+ \newcommand*{\promptdif}{\@orig@setminus_{\downarrow}}
+ \let\setbefore=\promptdif
+ \let\promptminus=\promptdif
+ \let\promptsetminus=\promptdif
+
+ \newcommand*{\StrcE}{\ensuremath{\mathscr{E}}}
+ \WithSuffix\def\StrcE*{\ensuremath{\mathscr{E}^{*}}}
+ \let\strucE\StrcE
+ \newcommand*{\StrcL}[1]{\mathscr{L}(#1)}
+ \newcommand*{\StrcStarL}[1]{\mathscr{L}^{*}(#1)}
+ \WithSuffix\def\StrcL*{\StrcStarL}
+ \newcommand*{\splitof}{\sqsubset}
+ \newcommand*{\splitby}{\sqsupset}
+ \newcommand*{\StrcR}{\ensuremath{\mathcal{R}}}
+ \newcommand*{\StrcD}{\ensuremath{\mathcal{D}}}
\fi
-}
-\AtEndOfPackage{
+
\ifrecthy@nohyphenation
\@packinfo{No hyphenation loading.}
\else
\hyphenation{ra-tion-als ra-tion-al Harrington Slaman Cholak Knight Gerdes Lange}
\fi
-}
-\AtEndOfPackage{
+
+
\ifrecthy@mrref
\@packinfo{MRref helper loading}
- \RequirePackage{hyperref}
- \def\recthy@checkMR MR#1#2#3 #4\relax%
- {\ifx#1M%
- \ifx#2R\recthy@MR{#3}\else\recthy@MR{#1#2#3}\fi
- \else
- \recthy@MR{#1#2#3}%
- \fi}
- \def\MR#1{\recthy@checkMR MR#1 \relax}
- \newcommand{\recthy@MR}[1]{\recthy@MRhref{#1}{MR #1}}
- % % \MRhref is called by the amsart/book/proc definition of \MR.
- \newcommand{\recthy@MRhref}[2]{\href{http://www.ams.org/mathscinet-getitem?mr=#1}{#2}}
+ \AtBeginDocument{
+ \@ifpackageloaded{hyperref}{
+ \def\recthy@checkMR MR#1#2#3 #4\relax%
+ {\ifx#1M%
+ \ifx#2R\recthy@MR{#3}\else\recthy@MR{#1#2#3}\fi
+ \else
+ \recthy@MR{#1#2#3}%
+ \fi}
+ \def\MR#1{\recthy@checkMR MR#1 \relax}
+ \newcommand{\recthy@MR}[1]{\recthy@MRhref{#1}{MR #1}}
+ % % \MRhref is called by the amsart/book/proc definition of \MR.
+ \newcommand{\recthy@MRhref}[2]{\href{http://www.ams.org/mathscinet-getitem?mr=#1}{#2}}
+ }
+ }
\else
\@packinfo{MRref helper not loading}
\fi
-}
+
% \newcommand*{\@recthy@abs}[1]{\lvert#1\rvert}
\DeclarePairedDelimiter\@recthy@abs{\lvert}{\rvert}
\newcommand*{\@recthy@ensuretext}[1]{\ensuremath{\text{#1}}}
-\AtEndOfPackage{
+
+
\ifrecthy@nomath
\@packinfo{No math loading.}
\else
\@packinfo{math loading.}
- \providecommand*{\eqdef}{\stackrel{\text{\tiny def}}{=}} %\newcommand*{\eqdef}{\ensuremath{=\limits_{\text{\tiny def}}}}
+ \providecommand*{\eqdef}{\overset{\text{\tiny def}}{=}} %\newcommand*{\eqdef}{\ensuremath{=\limits_{\text{\tiny def}}}}
\providecommand*{\iffdef}{\stackrel{\text{\tiny def}}{\iff}}
\ifdefined\aut
\else
@@ -702,10 +949,10 @@
\newcommand{\FinParFuncs}[2]{{#2}^{\subset_{< \infty} #1}}
\recthy@strip{ensuretext}
\fi
-}
-\AtEndOfPackage{
+
+
\ifrecthy@nooperators
\@packinfo{No operators loading.}
\else
@@ -713,21 +960,22 @@
\providecommand*{\meet}{\mathbin{\wedge}}
\providecommand*{\join}{\mathbin{\vee}}
\providecommand*{\Meet}{\mathop{\bigwedge}}
- \let\MnJoin=\Join
- \renewcommand*{\Join}{\mathop{\bigvee}}
+ \let\MnJoin=\Join %save MnVersion in case wanted
+ \newcommand*{\Join@recthy}{\mathop{\bigvee}}
+ \AtBeginDocument{
+ \let\Join=\Join@recthy
+ }
\ifdefined\xor
\else
\DeclareMathOperator{\xor}{xor}
\fi
\fi
-}
-\newcommand*{\@recthy@llangle}{\langle\!\langle}
-\newcommand*{\@recthy@rrangle}{\rangle\!\rangle}
-\AtEndOfPackage{
+
+
\ifrecthy@nodelim
\@packinfo{No delimiters loading.}
\else
@@ -753,21 +1001,25 @@
<10-12> MnSymbolE-Bold10
<12-> MnSymbolE-Bold12
}{}
- \DeclareMathDelimiter{\ulcorner}
+ \DeclareMathDelimiter{\@recthy@ulcorner}
{\mathopen}{MnLargeSymbols}{'036}{MnLargeSymbols}{'036}
- \DeclareMathDelimiter{\urcorner}
+ \DeclareMathDelimiter{\@recthy@urcorner}
{\mathclose}{MnLargeSymbols}{'043}{MnLargeSymbols}{'043}
+ \let\ulcorner=\@recthy@ulcorner
+ \let\urcorner=\@recthy@urcorner
}
\newcommand*{\godelnum}[1]{\left\ulcorner #1 \right\urcorner}
\let\cornerquote=\godelnum
\let\gcode=\godelnum
+ \let\@recthy@llangle@orig=\llangle
+ \let\@recthy@rrangle@orig=\rrangle
\ifrecthy@nodoubleangles
\else
\let\llangle=\@recthy@llangle
\let\rrangle=\@recthy@rrangle
\fi
\fi
-}
+
\newcommand*{\@recthy@re}{\@recthy@ensuretext{r.e.\ }}
\newcommand*{\@recthy@ce}{\@recthy@ensuretext{c.e.\ }}
@@ -785,41 +1037,11 @@
\newcommand*{\@recthy@ComputablyEnumerable}{\@recthy@ensuretext{Computably enumerable}}
\def\@recthy@REA{REA}
\def\@recthy@CEA{CEA}
-\mathchardef\@recthy@mhyphen="2D % Define a "math hyphen"
+
\NewDocumentCommand{\REA}{d()o}{\ensuremath{\IfValueTF{#2}{#2 \@recthy@mhyphen}{}\text{\@recthy@REA}\IfValueTF{#1}{(#1)}{}}}
\NewDocumentCommand{\CEA}{d()o}{\ensuremath{\IfValueTF{#2}{#2 \@recthy@mhyphen}{}\text{\@recthy@CEA}\IfValueTF{#1}{(#1)}{}}}
-% \newcommand*{\@recthy@REA}{\ensuremath{\text{REA}}}
-% \WithSuffix\def\@recthy@REA[#1]{#1-\@recthy@REA\relax}
-% \newcommand*{\@recthy@CEA}{\ensuremath{\text{CEA}}}
-% \WithSuffix\def\@recthy@CEA[#1]{#1-\@recthy@CEA\relax}
-
-\DeclareOptionX{reterms}{%
- \let\@recthy@ce=\@recthy@re
- \let\@recthy@computable=\@recthy@recursive
- \let\@recthy@computablyEnumerable=\@recthy@recursivelyEnumerable
- \let\@recthy@ComputablyEnumerable=\@recthy@RecursivelyEnumerable
- } %Make all references to ce change to re
-
- \DeclareOptionX{reaterms}{%
- \let\@recthy@CEA=\@recthy@REA
- }
-\DeclareOptionX{ceterms}{%
- \let\@recthy@re=\@recthy@ce
- \let\@recthy@recursive=\@recthy@computable
- \let\@recthy@recursivelyEnumerable=\@recthy@computablyEnumerable
- \let\@recthy@RecursivelyEnumerable=\@recthy@ComputablyEnumerable
- } %Make all references to re change to ce
-
-\DeclareOptionX{ceaterms}{%
- \let\@recthy@REA=\@recthy@CEA
- }
-
-
-
-
-\AtEndOfPackage{
\ifrecthy@nonames
\@packinfo{No names loading.}
\else
@@ -839,14 +1061,14 @@
\recthy@strip{RecursivelyEnumerable}
\recthy@strip{ComputablyEnumerable}
\fi
-}
+
% Set stuff
-\NewDocumentCommand{\@recthy@set}{mg}{\left \{ #1 \IfNoValueTF{#2}{}{\mid #2} \right \}}
+\NewDocumentCommand{\@recthy@set}{m!G{}}{{\let\st=\mid\left\{#1 \ifthenelse{\isempty{#2}}{}{\mid #2} \right\}}}
% \def\@recthy@set#1{\def\@set@argi@pmg{#1}\@ifnextchar\bgroup\@setst@pmg\@setplain@pmg}
% \newcommand*{\@setst@pmg}[1]{\ifthenelse{\isempty{#1}}{\@setplain@pmg}{\left \{ \@set@argi@pmg \middle | #1\right \}}}
@@ -861,21 +1083,20 @@
\newcommand*{\@recthy@isect}{\mathbin{\cap}}
\newcommand*{\@recthy@Isect}{\mathop{\bigcap}}
\newcommand*{\@recthy@nin}{\notin}
-\newcommand*{\@recthy@powset}[1]{\mathcal{P}\left(#1\right)}
+\NewDocumentCommand{\@recthy@powset}{O{}m}{\mathcal{P}_{#1}\left(#2\right)}
+\NewDocumentCommand{\@recthy@finSsets}{r[]E{^}{{< \omega}}}{\left[#1\right]^{#2}}
\newcommand*{\@recthy@eset}{\emptyset}
\newcommand*{\@recthy@setovercmp}[1]{\overline{#1}}
\newcommand*{\@recthy@setsimcmp}[1]{\backsim #1}
\let\@recthy@setcmp=\@recthy@setovercmp
-\def\@recthy@setdiffSYM{-}
\newcommand*{\@recthy@setdiff}{\mathbin{\@recthy@setdiffSYM}}
-\DeclareOptionX{setdiffsym}{\edef\@recthy@setdiffSYM{\expandafter\noexpand\csname #1 \endcsname}}
-\AtEndOfPackage{
+
% \WithSuffix\def\@recthy@setcmp[#1]#2{#1\@recthy@setminus#2}
\ifrecthy@nosets
\@packinfo{No set cmds loading.}
@@ -888,6 +1109,9 @@
\recthy@strip{isect}
\recthy@strip{Isect}
\recthy@strip{powset}
+ \recthy@strip{finSsets}
+ \let\ssetsOfsize\finSsets
+ \newcommand*{\finsets}{\finSsets[\omega]\relax}
\recthy@strip{eset}
\recthy@strip{nin}
\recthy@strip{setcmp}
@@ -910,9 +1134,9 @@
% \DeclareMathOperator{\clos}{cl}
% \fi
\fi
-}
-\AtEndOfPackage{
+
+
\ifrecthy@noquants
\@packinfo{No quants loading.}
\else
@@ -985,248 +1209,12 @@
\providecommand*{\limplies}{\ensuremath{\rightarrow}}
\fi
-}
-
-
-
-
-\AtEndOfPackage{
-\ifrecthy@nospaces
- \@packinfo{No spaces loading.}
-\else
- \@packinfo{Spaces loading.}
-
- \providecommand*{\bstrs}{2^{<\omega}}
- \providecommand*{\wstrs}{\omega^{<\omega}}
-
- \providecommand*{\cantor}{2^{\omega}}
- % \WithSuffix\def\cantor*{\left(2\union \diverge \right)^{\omega}}
- \providecommand*{\baire}{\omega^{\omega}}
- % \WithSuffix\def\baire*{\left(\omega \union \diverge \right)^{\omega}}
- \providecommand*{\Baire}{\mathcal{N}}
-\fi
-}
-
-
-
-
-
-\AtEndOfPackage{
-\ifrecthy@notrees
- \@packinfo{No trees loading.}
-\else
- \@packinfo{Trees loading.}
- \newcommand*{\CBderiv}[2][1]{#2^{\langle#1\rangle}}
- \newcommand*{\pruneTree}[1]{\CBderiv[\infty]{#1}}
- \newcommand*{\hgt}[1]{\lVert #1 \rVert}
-\fi
-}
-
-
-
-
-
-% Tree arguments
-
-% \newcommand*{\truepath}[2][]{\Gamma_{#1}\ifthenelse{\isempty{#2}}{}{(#2)}}
-% \newcommand*{\Tpath}{\truepath}
-
-
-
-
-%re set relations
-\AtEndOfPackage{
-\ifrecthy@nosetrels
- \@packinfo{No setrels loading.}
-\else
- \@packinfo{setrels loading.}
- \AtBeginDocument{
- \providecommand*{\nsupset}{\not\supset@recthy@orig}
- \providecommand*{\nsubset}{\not\subset@recthy@orig}
- \let\nsubset@recthy@orig=\nsubset
- \let\nsupset@recthy@orig=\nsupset
- \let\subset@recthy@orig=\subset
- \let\supset@recthy@orig=\supset
- \let\subseteq@recthy@orig=\subseteq
- \let\supseteq@recthy@orig=\supseteq
- \let\subsetneq@recthy@orig=\subsetneq
- \let\supsetneq@recthy@orig=\supsetneq
- \newcommand*{\subset@recthy}{\subset@recthy@orig}
- \newcommand*{\supset@recthy}{\supset@recthy@orig}
- \newcommand*{\subseteq@recthy}{\subseteq@recthy@orig}
- \newcommand*{\supseteq@recthy}{\supseteq@recthy@orig}
- \newcommand*{\nsubset@recthy}{\nsubset@recthy@orig}
- \newcommand*{\nsupset@recthy}{\nsupset@recthy@orig}
- \newcommand*{\nsubseteq@recthy}{\nsubseteq@recthy@orig}
- \newcommand*{\nsupseteq@recthy}{\nsupseteq@recthy@orig}
- \WithSuffix\def\subset@recthy*{\subset@recthy@orig^{*}}
- \WithSuffix\def\supset@recthy*{\supset@recthy@orig^{*}}
- \WithSuffix\def\subseteq@recthy*{\subseteq@recthy@orig^{*}}
- \WithSuffix\def\supseteq@recthy*{\supseteq@recthy@orig^{*}}
- \WithSuffix\def\subsetneq@recthy*{\subsetneq@recthy@orig^{*}}
- \WithSuffix\def\supsetneq@recthy*{\supsetneq@recthy@orig^{*}}
- \WithSuffix\def\nsubset@recthy*{\nsubset^{*}}
- \WithSuffix\def\nsupset@recthy*{\nsupset^{*}}
- \WithSuffix\def\nsubseteq@recthy*{\nsubseteq^{*}}
- \WithSuffix\def\nsupseteq@recthy*{\nsupseteq^{*}}
- \let\subset=\subset@recthy
- \let\supset=\supset@recthy
- \let\subseteq=\subseteq@recthy
- \let\supseteq=\supseteq@recthy
- \let\subsetneq=\subsetneq@recthy
- \let\supsetneq=\supsetneq@recthy
- \let\nsubset=\nsubset@recthy
- \let\nsupset=\nsupset@recthy
- \let\nsubseteq=\nsubseteq@recthy
- \let\nsupseteq=\nsupseteq@recthy
-
-
- \newcommand*{\eq}{=}
- \WithSuffix\def\eq*{=^{*}}
- \newcommand*{\eqae}{=^{*}}
- \newcommand*{\neqae}{\neq^{*}}
- \WithSuffix\def\neq*{\neq^{*}}
-
- \newcommand*{\infsubset}{\subset_{\infty}}
- \WithSuffix\def\infsubset*{\infsubset^{*}}
- \let\subsetnaeq=\infsubset
- \newcommand*{\infsupset}{\supset_{\infty}}
- \WithSuffix\def\infsupset*{\infsupset^{*}}
- \let\supsetnaeq=\infsupset
- \newcommand*{\majsubset}{\subset_{m}}
- \newcommand*{\majsupset}{\supset_{m}}
- }
-\fi
-}
-
-
-
-
-
-
-
-
-
-
-
-%%% ORdinal notations
-% constructive/recursive ordinals
-
-\AtEndOfPackage{
-\ifrecthy@noordinalnotations
- \@packinfo{No ordinal notations loading.}
-\else
- \@packinfo{ordinal notations loading.}
-
-\providecommand*{\wck}{\ensuremath{\omega^{\mathrm{CK}}_1}}
- % \newcommand*{\ordtype}[1]{\ensuremath{\@recthy@abs{#1}_{\kleeneO}}}
- \newcommand*{\ordzero}{\ensuremath{0}}
- \def\kleeneOSYM{\mathcal{O}}
- \NewDocumentCommand{\kleeneO}{sD(){}oD(){}}{{
- \kleeneOSYM^{#2#4}_{%
- \IfNoValueTF{#1}{%
- \IfNoValueTF{#3}{}{%
- \abs{#3}}%
- }%
- {%
- 1%
- \IfNoValueTF{#3}{}{%
- , \abs{#3}
- }%
- }%
- }%
- }}
- % \newcommand*{\kleeneO}{\let\@PMG@parenarg\@PMG@undefined\let\@PMG@braketarg\@PMG@undefined\@kleeneObody}
- % \newcommand*{\@kleeneObody}{\kleeneOSYM\ifdefined\@PMG@parenarg
- % ^{\@PMG@parenarg}%
- % \fi%
- % \ifdefined\@PMG@braketarg
- % _{\abs{\@PMG@braketarg}}%
- % \fi}
- % \WithSuffix\def\@kleeneObody(#1){\def\@PMG@parenarg{#1}\@kleeneObody}
- % \WithSuffix\def\@kleeneObody[#1]{\def\@PMG@braketarg{#1}\@kleeneObody}
- % \WithSuffix\def\@kleeneObody*{\def\kleeneOSYM{\mathcal{O}}\@kleeneObody}
-
-% \newcommand*{\kleeneObelow}[2][]{\kleeneOSYM_{<#2\ifthenelse{\isempty{#1}}{}{, #1}}}
-% \let\kleeneOless\kleeneObelow
-
- \newcommand*{\kleeneOuniq}{\kleeneO*}
- \let\ordNotations=\kleeneO
- \let\uniqOrdNotations=\kleeneOuniq
- \newcommand*{\kleeneNum}[1]{{#1}_{\kleeneO}}
- \newcommand*{\kleeneZero}{\kleeneNum{0}}
- \newcommand*{\kleeneOne}{\kleeneNum{1}}
- \NewDocumentCommand{\kleeneless}{o}{<_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
- \let\kleenel=\kleeneless
- \NewDocumentCommand{\kleeneleq}{o}{\leq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
- \NewDocumentCommand{\kleenenless}{o}{\nless_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
- \let\kleenenl=\kleenenless
- \NewDocumentCommand{\kleenenleq}{o}{\nleq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
- \NewDocumentCommand{\kleenegtr}{o}{>_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
- \let\kleeneg=\kleenegtr
- \NewDocumentCommand{\kleenegeq}{o}{\geq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
- \NewDocumentCommand{\kleenengtr}{o}{\ngtr_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
- \let\kleeneng=\kleenengtr
- \NewDocumentCommand{\kleenengeq}{o}{\ngeq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
- \newcommand*{\kleenePlus}{\mathbin{+_{\kleeneO}}}
- \newcommand*{\kleeneMul}{\cdot_{\kleeneO}}
- \newcommand*{\kleenehgt}[1]{\lVert #1\rVert_{\kleeneO}}
- \let\kleeneHgt=\kleenehgt
- % \let\hgtO=\kleenehgt
- \newcommand*{\kleenelim}[2]{{#1}_{[#2]}}
- \newcommand*{\kleenepred}[1]{{#1}^{-}}
-
-\fi
-}
-
-
-
-
-% \newcommand*{\axiom}{2}{#1}
-%alpha REA stuff
-% \newcommand*{\alphaREA}[1][\alpha]{\ensuremath{ #1 \text{-REA}} }
-
-
-\newcommand*{\@PMG@VdashStar}{{\Vdash\smash{\mkern-12mu\raise4\p@\hbox{\text{\tiny*}}}\mkern2mu}}
-
-% Forcing
-\AtEndOfPackage{
-\ifrecthy@noforcing
- \@packinfo{No forcing loading.}
-\else
- \@packinfo{forcing loading.}
- \providecommand*{\forces}{\def\@PMG@frcparenarg{}\def\@PMG@frcbraketarg{}\def\@PMG@curfrcsym{\Vdash}\@forcesBody}
- \newcommand*{\@forcesBody}{\mathrel{{\@PMG@curfrcsym}^{\@PMG@frcparenarg}_{\@PMG@frcbraketarg}}}
- \WithSuffix\def\@forcesBody(#1){\def\@PMG@frcparenarg{#1}\@forcesBody}
- \WithSuffix\def\@forcesBody[#1]{\def\@PMG@frcbraketarg{#1}\@forcesBody}
- \WithSuffix\def\@forcesBody*{\let\@PMG@curfrcsym=\@PMG@VdashStar\@forcesBody}
-
- % \long\def\forces@[#1][#2]{\Vdash^{#2}_{#1}}
- % \newcommand{\forces}{\optparams{\forces@}{[][]}%
- % }
- \providecommand*{\frc}{\forces}
-\fi
-}
-
%%%%%%%%% Formula Classes
-\newcommand*{\@recthy@CDelta@default}{\prescript{\mathcal{C}}{}{\Delta}}
-\newcommand*{\@recthy@CSigma@default}{\prescript{\mathcal{C}}{}{\Sigma}}
-\newcommand*{\@recthy@CPi@default}{\prescript{\mathcal{C}}{}{\Pi}}
-\let\@recthy@CDelta=\@recthy@CDelta@default
-\let\@recthy@CSigma=\@recthy@CSigma@default
-\let\@recthy@CPi=\@recthy@CPi@default
-\DeclareOptionX{cdeltasym}[@recthy@CDelta@default]{\letcs{\@recthy@CDelta}{#1}}
-\DeclareOptionX{csigmasym}[@recthy@CSigma@default]{\letcs{\@recthy@CSigma}{#1}}
-\DeclareOptionX{cpisym}[@recthy@CPi@default]{\letcs{\@recthy@CPi}{#1}}
-% \DeclareOptionX<\@recthy@family>{cdeltasym}[]{\def\@recthy@CDelta{#1}}
-% \DeclareOptionX<\@recthy@family>{csigmasym}[]{\def\@recthy@CSigma{#1}}
-% \DeclareOptionX<\@recthy@family>{cpisym}[]{\def\@recthy@CPi{#1}}
-\AtEndOfPackage{
\ifrecthy@nosyntax
\@packinfo{No syntax loading.}
\else
@@ -1613,23 +1601,225 @@
\fi
-}
-\def\@recthy@recfSYM@default{\phi}
-\let\@recthy@recfSYM=\@recthy@recfSYM@default
-\def\@recthy@recfnlSYM@default{\Phi}
-\let\@recthy@recfnlSYM=\@recthy@recfnlSYM@default
-\def\@recthy@useSYM@default{\ltx@ifpackageloaded{unicode-math}{\symbffrak{u}}{\mathfrak{u}}}
-\let\@recthy@useSYM=\@recthy@useSYM@default
+
+
+
+\ifrecthy@nospaces
+ \@packinfo{No spaces loading.}
+\else
+ \@packinfo{Spaces loading.}
+
+ \providecommand*{\bstrs}{2^{<\omega}}
+ \providecommand*{\wstrs}{\omega^{<\omega}}
+
+ \providecommand*{\cantor}{2^{\omega}}
+ % \WithSuffix\def\cantor*{\left(2\union \diverge \right)^{\omega}}
+ \providecommand*{\baire}{\omega^{\omega}}
+ % \WithSuffix\def\baire*{\left(\omega \union \diverge \right)^{\omega}}
+ \providecommand*{\Baire}{\mathcal{N}}
+\fi
+
+
+
+
+
+
+
+\ifrecthy@notrees
+ \@packinfo{No trees loading.}
+\else
+ \@packinfo{Trees loading.}
+ \newcommand*{\CBderiv}[2][1]{#2^{\langle#1\rangle}}
+ \newcommand*{\pruneTree}[1]{\CBderiv[\infty]{#1}}
+ \newcommand*{\hgt}[1]{\lVert #1 \rVert}
+\fi
+
+
+
+
+
+
+
+%re set relations
+\ifrecthy@nosetrels
+ \@packinfo{No setrels loading.}
+\else
+ \@packinfo{setrels loading.}
+ \AtBeginDocument{
+ \providecommand*{\nsupset}{\not\supset@recthy@orig}
+ \providecommand*{\nsubset}{\not\subset@recthy@orig}
+ \let\nsubset@recthy@orig=\nsubset
+ \let\nsupset@recthy@orig=\nsupset
+ \let\subset@recthy@orig=\subset
+ \let\supset@recthy@orig=\supset
+ \let\subseteq@recthy@orig=\subseteq
+ \let\supseteq@recthy@orig=\supseteq
+ \let\subsetneq@recthy@orig=\subsetneq
+ \let\supsetneq@recthy@orig=\supsetneq
+ }
+ \newcommand*{\subset@recthy}{\subset@recthy@orig}
+ \newcommand*{\supset@recthy}{\supset@recthy@orig}
+ \newcommand*{\subseteq@recthy}{\subseteq@recthy@orig}
+ \newcommand*{\supseteq@recthy}{\supseteq@recthy@orig}
+ \newcommand*{\nsubset@recthy}{\nsubset@recthy@orig}
+ \newcommand*{\nsupset@recthy}{\nsupset@recthy@orig}
+ \newcommand*{\nsubseteq@recthy}{\nsubseteq@recthy@orig}
+ \newcommand*{\nsupseteq@recthy}{\nsupseteq@recthy@orig}
+ \WithSuffix\def\subset@recthy*{\subset@recthy@orig^{*}}
+ \WithSuffix\def\supset@recthy*{\supset@recthy@orig^{*}}
+ \WithSuffix\def\subseteq@recthy*{\subseteq@recthy@orig^{*}}
+ \WithSuffix\def\supseteq@recthy*{\supseteq@recthy@orig^{*}}
+ \WithSuffix\def\subsetneq@recthy*{\subsetneq@recthy@orig^{*}}
+ \WithSuffix\def\supsetneq@recthy*{\supsetneq@recthy@orig^{*}}
+ \WithSuffix\def\nsubset@recthy*{\nsubset^{*}}
+ \WithSuffix\def\nsupset@recthy*{\nsupset^{*}}
+ \WithSuffix\def\nsubseteq@recthy*{\nsubseteq^{*}}
+ \WithSuffix\def\nsupseteq@recthy*{\nsupseteq^{*}}
+ \AtBeginDocument{
+ \let\subset=\subset@recthy
+ \let\supset=\supset@recthy
+ \let\subseteq=\subseteq@recthy
+ \let\supseteq=\supseteq@recthy
+ \let\subsetneq=\subsetneq@recthy
+ \let\supsetneq=\supsetneq@recthy
+ \let\nsubset=\nsubset@recthy
+ \let\nsupset=\nsupset@recthy
+ \let\nsubseteq=\nsubseteq@recthy
+ \let\nsupseteq=\nsupseteq@recthy
+ }
+
+ \newcommand*{\eq}{=}
+ \WithSuffix\def\eq*{=^{*}}
+ \newcommand*{\eqae}{=^{*}}
+ \newcommand*{\neqae}{\neq^{*}}
+ \WithSuffix\def\neq*{\neq^{*}}
+
+ \newcommand*{\infsubset}{\subset_{\infty}}
+ \WithSuffix\def\infsubset*{\infsubset^{*}}
+ \let\subsetnaeq=\infsubset
+ \newcommand*{\infsupset}{\supset_{\infty}}
+ \WithSuffix\def\infsupset*{\infsupset^{*}}
+ \let\supsetnaeq=\infsupset
+ \newcommand*{\majsubset}{\subset_{m}}
+ \newcommand*{\majsupset}{\supset_{m}}
+\fi
+
+
+
+
+
+
+
+
+
+
+
+
+%%% ORdinal notations
+% constructive/recursive ordinals
+
+\ifrecthy@noordinalnotations
+ \@packinfo{No ordinal notations loading.}
+\else
+ \@packinfo{ordinal notations loading.}
+
+\providecommand*{\wck}{\ensuremath{\omega^{\mathrm{CK}}_1}}
+ % \newcommand*{\ordtype}[1]{\ensuremath{\@recthy@abs{#1}_{\kleeneO}}}
+ \newcommand*{\ordzero}{\ensuremath{0}}
+ \def\kleeneOSYM{\mathcal{O}}
+ \NewDocumentCommand{\kleeneO}{sD(){}oD(){}}{{
+ \kleeneOSYM^{#2#4}_{%
+ \IfNoValueTF{#1}{%
+ \IfNoValueTF{#3}{}{%
+ \abs{#3}}%
+ }%
+ {%
+ 1%
+ \IfNoValueTF{#3}{}{%
+ , \abs{#3}
+ }%
+ }%
+ }%
+ }}
+ % \newcommand*{\kleeneO}{\let\@PMG@parenarg\@PMG@undefined\let\@PMG@braketarg\@PMG@undefined\@kleeneObody}
+ % \newcommand*{\@kleeneObody}{\kleeneOSYM\ifdefined\@PMG@parenarg
+ % ^{\@PMG@parenarg}%
+ % \fi%
+ % \ifdefined\@PMG@braketarg
+ % _{\abs{\@PMG@braketarg}}%
+ % \fi}
+ % \WithSuffix\def\@kleeneObody(#1){\def\@PMG@parenarg{#1}\@kleeneObody}
+ % \WithSuffix\def\@kleeneObody[#1]{\def\@PMG@braketarg{#1}\@kleeneObody}
+ % \WithSuffix\def\@kleeneObody*{\def\kleeneOSYM{\mathcal{O}}\@kleeneObody}
+
+% \newcommand*{\kleeneObelow}[2][]{\kleeneOSYM_{<#2\ifthenelse{\isempty{#1}}{}{, #1}}}
+% \let\kleeneOless\kleeneObelow
+
+ \newcommand*{\kleeneOuniq}{\kleeneO*}
+ \let\ordNotations=\kleeneO
+ \let\uniqOrdNotations=\kleeneOuniq
+ \newcommand*{\kleeneNum}[1]{{#1}_{\kleeneO}}
+ \newcommand*{\kleeneZero}{\kleeneNum{0}}
+ \newcommand*{\kleeneOne}{\kleeneNum{1}}
+ \NewDocumentCommand{\kleeneless}{o}{<_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \let\kleenel=\kleeneless
+ \NewDocumentCommand{\kleeneleq}{o}{\leq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \NewDocumentCommand{\kleenenless}{o}{\nless_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \let\kleenenl=\kleenenless
+ \NewDocumentCommand{\kleenenleq}{o}{\nleq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \NewDocumentCommand{\kleenegtr}{o}{>_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \let\kleeneg=\kleenegtr
+ \NewDocumentCommand{\kleenegeq}{o}{\geq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \NewDocumentCommand{\kleenengtr}{o}{\ngtr_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \let\kleeneng=\kleenengtr
+ \NewDocumentCommand{\kleenengeq}{o}{\ngeq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}}
+ \newcommand*{\kleenePlus}{\mathbin{+_{\kleeneO}}}
+ \newcommand*{\kleeneMul}{\cdot_{\kleeneO}}
+ \newcommand*{\kleenehgt}[1]{\lVert #1\rVert_{\kleeneO}}
+ \let\kleeneHgt=\kleenehgt
+ % \let\hgtO=\kleenehgt
+ \newcommand*{\kleenelim}[2]{{#1}_{[#2]}}
+ \newcommand*{\kleenepred}[1]{{#1}^{-}}
+
+\fi
+
+
+
+
+
+% \newcommand*{\axiom}{2}{#1}
+%alpha REA stuff
+% \newcommand*{\alphaREA}[1][\alpha]{\ensuremath{ #1 \text{-REA}} }
+
+
+\newcommand*{\@PMG@VdashStar}{{\Vdash\smash{\mkern-12mu\raise4\p@\hbox{\text{\tiny*}}}\mkern2mu}}
+
+% Forcing
+\ifrecthy@noforcing
+ \@packinfo{No forcing loading.}
+\else
+ \@packinfo{forcing loading.}
+ \providecommand*{\forces}{\def\@PMG@frcparenarg{}\def\@PMG@frcbraketarg{}\def\@PMG@curfrcsym{\Vdash}\@forcesBody}
+ \newcommand*{\@forcesBody}{\mathrel{{\@PMG@curfrcsym}^{\@PMG@frcparenarg}_{\@PMG@frcbraketarg}}}
+ \WithSuffix\def\@forcesBody(#1){\def\@PMG@frcparenarg{#1}\@forcesBody}
+ \WithSuffix\def\@forcesBody[#1]{\def\@PMG@frcbraketarg{#1}\@forcesBody}
+ \WithSuffix\def\@forcesBody*{\let\@PMG@curfrcsym=\@PMG@VdashStar\@forcesBody}
+
+ % \long\def\forces@[#1][#2]{\Vdash^{#2}_{#1}}
+ % \newcommand{\forces}{\optparams{\forces@}{[][]}%
+ % }
+ \providecommand*{\frc}{\forces}
+\fi
+
+
+
+
%%%ABREVIATIONS
-\DeclareOptionX{recfnlsym}[@recthy@recfnlSYM@default]{\letcs{\@recthy@recfnlSYM}{#1}}
-\DeclareOptionX{recfsym}[@recthy@recfSYM@default]{\letcs{\@recthy@recfSYM}{#1}}
-\DeclareOptionX{usesym}[@recthy@useSYM@default]{\letcs{\@recthy@useSYM}{#1}}
%Degree Classes
-\AtEndOfPackage{
\ifrecthy@nodegclasses
\@packinfo{No degree classes loading.}
\else
@@ -1638,9 +1828,9 @@
\newcommand{\LowN}[2][]{\ensuremath{ \text{Low}^{#1}_{#2} }}
\newcommand{\lowN}[2][]{\ensuremath{ \mathcal{L}^{#1}_{#2} }}
\fi
-}
-\AtEndOfPackage{
+
+
\ifrecthy@nocomputations
\@packinfo{No computations loading.}
\else
@@ -1653,12 +1843,18 @@
%\newcommand*{\brecf}[3][]{\brecfSYM^{#1}_{#2}\ifthenelse{\isempty{#3}}{}{\left(#3\right)}}
%\recfnl[d]{i}{Y}{x} gives i-th d-recursive functional operating on set Y and integer x
- \NewDocumentCommand{\recfnl@improved}{omm!g!d()}{{
+ \NewDocumentCommand{\recfnl@improved}{oD(){}m!G{#2}!g!d()}{{
+ \def\temp@pmg@arg{}
+ \IfValueTF{#5}{\ifthenelse{\isempty{#5}}{}{\def\temp@pmg@arg{; #5}}}{\IfValueTF{#6}{\ifthenelse{\isempty{#6}}{}{\def\temp@pmg@arg{; #6}}}}
+ \@recthy@recfnlSYM_{#3\IfValueT{#1}{, #1}}\ifthenelse{\isempty{#4}}{}{\!\left(#4\temp@pmg@arg \right)}
+ }}
+
+ \NewDocumentCommand{\recfnl@threeSix}{omm!g!d()}{{
\def\temp@pmg@arg{}
\IfValueTF{#4}{\ifthenelse{\isempty{#4}}{}{\def\temp@pmg@arg{; #4}}}{\IfValueTF{#5}{\ifthenelse{\isempty{#5}}{}{\def\temp@pmg@arg{; #5}}}}
\@recthy@recfnlSYM_{#2\IfValueT{#1}{, #1}}\ifthenelse{\isempty{#3}}{}{\!\left(#3\temp@pmg@arg \right)}
}}
- \newcommand*{\recfnl@old}[4][]{\@recthy@recfnlSYM_{#2\ifthenelse{\isempty{#1}}{}{,{#1}} }%
+ \newcommand*{\recfnl@threeFive}[4][]{\@recthy@recfnlSYM_{#2\ifthenelse{\isempty{#1}}{}{,{#1}} }%
\ifthenelse{\isempty{#4}}%
{\ifthenelse{\isempty{#3}}%
{}% No args then print no parents
@@ -1668,7 +1864,10 @@
}}
\let\recfnl=\recfnl@improved
\appto{\recthy@rollback@threeSix}{
- \let\recfnl=\recfnl@old
+ \let\recfnl=\recfnl@threeFive
+ }
+ \appto{\recthy@rollback@threeSeven}{
+ \let\recfnl=\recfnl@threeSix
}
\NewDocumentCommand{\recf}{od()md()}{
\@recthy@recfSYM_{#3\IfNoValueTF{#1}{}{\ifthenelse{\isempty{#3}}{}{, }{#1}}}\IfNoValueTF{#2}{}{^{#2}}\IfNoValueTF{#4}{}{(#4)}
@@ -1725,34 +1924,38 @@
% \NewDocumentCommand{\REset}{D(){}omd()}{
% W_{#2\IfNoValueTF{#1}{}{, #1}}\IfNoValueTF{#3}{}{^{#3}}
% }
-
- \newcommand*{\REset}{\let\@PMG@parenarg\@PMG@undefined\let\@PMG@braketarg\@PMG@undefined\@REsetbody}
- \newcommand*{\@REsetbody}[1]{W\ifdefined\@PMG@parenarg
- ^{\@PMG@parenarg}%
- \fi%
- \ifdefined\@PMG@braketarg
- _{#1, {\@PMG@braketarg}}%
- \else
- _{#1}
- \fi}
- \WithSuffix\def\@REsetbody(#1){\def\@PMG@parenarg{#1}\@REsetbody}
- \WithSuffix\def\@REsetbody[#1]{\def\@PMG@braketarg{#1}\@REsetbody}
+ \NewDocumentCommand{\REset}{D(){}oD(){#1}mD(){#3}}{{W_{#4\IfValueTF{#2}{, #2}{}}^{#5}}}
+ % \newcommand*{\REset}{\let\@PMG@parenarg\@PMG@undefined\let\@PMG@braketarg\@PMG@undefined\@REsetbody}
+ % \newcommand*{\@REsetbody}[1]{W\ifdefined\@PMG@parenarg
+ % ^{\@PMG@parenarg}%
+ % \fi%
+ % \ifdefined\@PMG@braketarg
+ % _{#1, {\@PMG@braketarg}}%
+ % \else
+ % _{#1}
+ % \fi}
+ % \WithSuffix\def\@REsetbody(#1){\def\@PMG@parenarg{#1}\@REsetbody}
+ % \WithSuffix\def\@REsetbody[#1]{\def\@PMG@braketarg{#1}\@REsetbody}
\NewDocumentCommand{\Hop}{oD(){}mD(){}}{\mathcal{H}_{#3\IfValueTF{#1}{, #1}{}}\left(\ifthenelse{\isempty{#2#4}}{\eset}{#2#4} \right)}
\NewDocumentCommand{\REAop}{st+d()od()mm}{%
{\IfBooleanTF{#1}%
- {\mathcal{J}}%
{\widehat{\mathcal{J}}}%
+ {\mathcal{J}}%
}^{%
\IfBooleanTF{#2}{\vphantom{x}^\dagger}{}%
#7}_{#6\IfValueTF{#4}{, #4}{}}%
\IfValueTF{#3}{\left(#3\right)}{\IfValueTF{#5}{\left(#5\right)}{}}%
}
- \NewDocumentCommand{\oneREAop}{st+d()od()m}{{\IfBooleanTF{#1}{\mathcal{J}}{\widehat{\mathcal{J}}}}^{\IfBooleanTF{#1}{\vphantom{x}^\dagger}{}}_{#6\IfValueTF{#4}{, #4}{}} \IfValueTF{#3}{\left(#3\right)}{\IfValueTF{#5}{\left(#5\right)}{}}}
- \let\iREAop=\oneREAop
+
\newcommand*{\entersat}[1]{\mathbin{\searrow_{#1}}}
+ \appto{\recthy@rollback@threeSeven}{
+ \NewDocumentCommand{\oneREAop}{st+d()od()m}{{\IfBooleanTF{#1}{\mathcal{J}}{\widehat{\mathcal{J}}}}^{\IfBooleanTF{#1}{\vphantom{x}^\dagger}{}}_{#6\IfValueTF{#4}{, #4}{}} \IfValueTF{#3}{\left(#3\right)}{\IfValueTF{#5}{\left(#5\right)}{}}}
+ \let\iREAop=\oneREAop
+ }
+
% \newcommand*{\alphaREAop}[2][]{\mathcal{J}^{#2}_{#1}}
\appto{\recthy@rollback@threeTwo}{
\let\reaop=\REAop
@@ -1855,92 +2058,37 @@
\newcommand*{\ttngeq}{\ngeq_{\@recthy@ttSYM}}
\fi
-}
-
-
-%Strings
- \def\@recthy@concatSYM@Default{\widehat{\phantom{X}}}
- \def\@recthy@EmptyStr@Default{\mathopen{\langle}\mathclose{\rangle}}
- \let\@recthy@concatSYM\@recthy@concatSYM@Default
- \let\@recthy@EmptyStr\@recthy@EmptyStr@Default
-
- \DeclareOptionX{emptystr}[@recthy@EmptyStr@Default]{\letcs{\@recthy@EmptyStr}{#1}}
- \DeclareOptionX{concatsym}[@recthy@concatSYM@Default]{\letcs{\@recthy@concatSYM}{#1}}
- \newcommand*{\@recthy@pair}[2]{\mathopen{\langle} #1, #2 \mathclose{\rangle}}
- \newcommand*{\@recthy@str}[1]{\mathopen{\langle}#1\mathclose{\rangle}}
- \newcommand*{\@recthy@code}[1]{\mathopen{\langle}#1\mathclose{\rangle}}
-
- \appto{\recthy@rollback@threeSix}{
- \renewcommand*{\@recthy@pair}[2]{\mathopen{\@recthy@llangle} #1, #2 \mathclose{\@recthy@rrangle}}
- \def\@recthy@EmptyStr@Default{\mathopen{\langle}\mathclose{\rangle}}
- % \renewcommand*{\@recthy@str}[1]{\mathopen{\langle}#1\mathclose{\rangle}}
- \renewcommand*{\@recthy@code}[1]{\mathopen{\@recthy@llangle}#1\mathclose{\@recthy@rrangle}}
- \newcommand*{\closedn}[1]{{#1}^\blacktriangledown}
- }
-
-% \ProcessOptions*
-% \ProcessOptionsX<\@recthy@family>
-\ProcessOptionsX
-
-
+\ifrecthy@stepsenv
+ \@packinfo{Experimental steps code loaded.}
+ \newlist{pmg@steps}{enumerate}{4}
+ \setlist[pmg@steps,1]{label={Step \arabic*}, ref={\arabic*}, labelsep=1em}
+ \setlist[pmg@steps,2]{label={Step \arabic{pmg@stepsi}\alph*}, ref={\arabic{pmg@stepsi}\alph*}}
+ \setlist[pmg@steps,3]{label={Step \arabic{pmg@stepsi}\alph{pmg@stepsii}.\Roman*}, ref={\arabic{pmg@stepsi}\alph{pmg@stepsii}.\Roman*}}
+ \setlist[pmg@steps,4]{label={Step \arabic{pmg@stepsi}\alph{pmg@stepsii}.\Roman{pmg@stepsiii}\Alph*}, ref={\arabic{pmg@stepsi}\alph{pmg@stepsii}.\Roman{pmg@stepsiii}\Alph*}}
+ \crefname{pmg@stepsi}{step}{steps}
+ \Crefname{pmg@stepsi}{Step}{Steps}
+ \crefname{pmg@stepsii}{step}{steps}
+ \Crefname{pmg@stepsii}{Step}{Steps}
+ \crefname{pmg@stepsiii}{step}{steps}
+ \Crefname{pmg@stepsiii}{Step}{Steps}
+ \crefname{pmg@stepsiiii}{step}{steps}
+ \Crefname{pmg@stepsiiii}{Step}{Steps}
+ \NewDocumentEnvironment{steps}{o}{
+ \begingroup
+ \ProvideDocumentCommand{\step}{o}{\IfValueTF{##1}{\item\textbf{##1}:}{\item}}
+ \IfValueTF{#1}{\begin{pmg@steps}[#1]}{\begin{pmg@steps}}%
+ }{%
+ \end{pmg@steps}%
+ \endgroup\ignorespacesafterend%
+ }
-\NewDocumentCommand{\incompat@recthy}{o}{\mathrel{\mid}\IfValueTF{#1}{_{#1}}{}}
-\NewDocumentCommand{\compat@recthy}{o}{\mathrel{\not\mid}\IfValueTF{#1}{_{#1}}{}}
-\ifrecthy@nostrings
- \@packinfo{No strings loading.}
+ % \ExplSyntaxOn
+ % \cs_new:cpn {steps*} {\steps*}
+ % \cs_new_eq:cN {endsteps*} \endsteps
+ % \ExplSyntaxOff
\else
- \@packinfo{Strings loading.}
- \let\code=\@recthy@code
- \let\str=\@recthy@str
- \newcommand*{\EmptyStr}{\@recthy@EmptyStr}
- \newcommand*{\estr}{\EmptyStr}
- \newcommand*{\decode}[2]{(#1)_{#2}}
- \let\godelpair=\@recthy@pair
- \let\gpair=\@recthy@pair
- \newcommand*{\concat}{\@recthy@concatSYM}
- \WithSuffix\def\concat[#1]{\concat\str{#1}}
- \newcommand*{\strpred}[1]{{#1}^{-}}
- \providecommand*{\lh}[2][]{\@recthy@abs{#2}_{#1}} %% Gives length of a string
-
- \providecommand*{\incompat}{\incompat@recthy} %incompatible stringes FIX SPACING
- \providecommand*{\incomp}{\incompat@recthy}
- \providecommand*{\compat}{\compat@recthy}
- \providecommand*{\nincompat}{\compat@recthy}
- \providecommand*{\nincomp}{\compat@recthy}
- % \newcommand*{\setcol}[2]{{#1}^{[#2]}}
- \ExplSyntaxOn %thx stackexghance
- \NewDocumentCommand \setcol {m m}
- {
- \bool_lazy_and:nnTF
- { \int_compare_p:nNn { \tl_count:n {#1} } = 3 }
- { \tl_if_head_eq_meaning_p:nN {#1} \setcol }
- {
- \pgerdes_setcol_special:nnnn #1 {#2}
- }
- {
- \pgerdes_setcol_normal:nn {#1} {#2}
- }
- }
- \cs_new:Npn \pgerdes_setcol_special:nnnn #1 #2 #3 #4
- {
- {#2} \sp { [#3] [#4] }
- }
- \cs_new:Npn \pgerdes_setcol_normal:nn #1 #2
- {
- {#1} \sp { [#2] }
- }
- \ExplSyntaxOff
-
- \ifrecthy@nopair
- \@packinfo{No redefining pair.}
- \else
- \@packinfo{pair=godelpair.}
- \let\pair=\@recthy@pair
- \fi
+ \@packinfo{No steps}
\fi
-
-
-
diff --git a/macros/latex/contrib/rec-thy/rec-thy.tex b/macros/latex/contrib/rec-thy/rec-thy.tex
index a73dc445e8..ded730f3b0 100644
--- a/macros/latex/contrib/rec-thy/rec-thy.tex
+++ b/macros/latex/contrib/rec-thy/rec-thy.tex
@@ -88,7 +88,7 @@
%\usepackage[pdftex]{graphicx}
%\DeclareGraphicsExtensions{.pdf, .jpg, .tif}
-\usepackage[suppPriorityTrees]{rec-thy}
+\usepackage[steps]{rec-thy}
\title{The rec-thy Package}
\author{Peter M. Gerdes (gerdes@invariant.org)}
\date{\DateOfPackage{rec-thy}: Version \recthyVersion}
@@ -126,8 +126,8 @@ While the symbols used by default in the package are suggested for adoption to a
\item[modulescr] Sets the script used to typeset the \verb=\module= command. Default is mathcal.
\item[reqscr] Sets the script used to typeset requirements. Default is mathscr.
\item[pfcasefont] Sets the script used to typeset Case in the cases helper.
- \item[emptystr] Sets the empty string symbol
- \item[concatsym] Sets the concat symbol.
+ \item[emptystr] Sets the empty string symbol. Default is \( \str{} \)
+ \item[concatsym] Sets the concat symbol. Default is \( \concat \)
\item[cdeltasym] Sets the symbol used to denote computably \( \Delta \) formulas. Default is \( \prescript{\mathcal{C}}{}{\Delta} \).
\item[cpisym] Same for \( \Pi \) formulas. Default is \( \prescript{\mathcal{C}}{}{\Pi} \).
\item[csigmasym] Same for \( \Sigma \) formulas. Default is \( \prescript{\mathcal{C}}{}{\Sigma} \).
@@ -135,7 +135,10 @@ While the symbols used by default in the package are suggested for adoption to a
\item[recfsym] Sets the symbol used for recursive functions. Default is \( \phi \).
\item[usesym] Sets the symbol used for the use operator. Default is \( \symbffrak{u} \) where this is printed using \verb=\symbfrak= if unicode-math is loaded and with \verb=\mathfrak= otherwise.
\item[ballsymb] Sets the symbol used for the ball command. Default is \( \mathscr{B} \).
- \item[nodoubleangles] Prevents redefinition of \verb=\rrangle= and \verb=\llangle= with versions that use the repeated angle brackets e.g., lets you use the weird XITS versions.
+ \item[lstrdelim,rstrdelim] Left and right delimiters for \verb=\str=
+ \item[lcodedelim,rcodedelim] Left and right delimiters for \verb=\code=
+ \item[lpairdelim,rpairlim,pairsup] Left and right delimiters for \verb=\pair= and superscript.
+
\end{itemize}
As an example of how to use these commands consider the following code changing the ball symbol to \( \mathbf{B} \).
@@ -170,13 +173,13 @@ Note the commands in this section double as suggestions for standardized notatio
\end{xtabular} \\
-There are a few additional commands relating to priority trees which are less frequently used and require passing the option \verb=suppPriorityTrees= to the package to use. These commands exist in a kind of limbo and will probably be removed in some future edition of the package absent popular demand and feedback for better notation.
+% There are a few additional commands relating to priority trees which are less frequently used and require passing the option \verb=suppPriorityTrees= to the package to use. These commands exist in a kind of limbo and will probably be removed in some future edition of the package absent popular demand and feedback for better notation.
-\begin{xtabular}{l | l | l}\toprule
- \verb=\Astages{\xi}= & \( \Astages{\xi} \) & Set of stages at which \( \xi \) is active. \\ \midrule
- \verb=\Vstages{\xi}= & \( \Vstages{\xi} \) & Stages where \( \xi \subfun \tpath[s] \) even if links skip \( \xi \). \\ \midrule
- \verb=\reqof{\xi}= & \( \reqof{\xi} \) & Requirement implemented by a node \( \xi \). \\ \bottomrule
-\end{xtabular}
+% \begin{xtabular}{l | l | l}\toprule
+% \verb=\Astages{\xi}= & \( \Astages{\xi} \) & Set of stages at which \( \xi \) is active. \\ \midrule
+% \verb=\Vstages{\xi}= & \( \Vstages{\xi} \) & Stages where \( \xi \subfun \tpath[s] \) even if links skip \( \xi \). \\ \midrule
+% \verb=\reqof{\xi}= & \( \reqof{\xi} \) & Requirement implemented by a node \( \xi \). \\ \bottomrule
+% \end{xtabular}
\subsection{Computations}
@@ -212,8 +215,8 @@ To disable these commands pass the option \verb=nocomputations=. \\ To specify
\verb=\Hop[s](X){e}= & \( \Hop[s](X){e} \) & \\[6pt]
\verb=\Hop[s]{e}= & \( \Hop[s]{e} \) & \\[6pt]
\verb=\Hop{e}= & \( \Hop{e} \) & \\ \midrule
- \verb=\iREAop{e}(\eset)= & \multirow{2}{*}{\( \iREAop{e}(\eset) \)} &\multirow{2}{*}{1-REA operator} \\
- \tab \verb=\oneREAop{e}(\eset)= & & \\ \midrule
+ % \verb=\iREAop{e}(\eset)= & \multirow{2}{*}{\( \iREAop{e}(\eset) \)} &\multirow{2}{*}{1-REA operator} \\
+ % \tab \verb=\oneREAop{e}(\eset)= & & \\ \midrule
% \verb=\alphaREAop{\alpha}(\eset)= & \multirow{2}{*}{\( \alphaREAop{\alpha}(\eset) \)} &\multirow{2}{*}{\( \alpha \)-REA operator} \\[6pt]
\verb=\REAop{e}{\alpha}= & \( \REAop{e}{\alpha} \) & \\[6pt]
% \verb=\alphaREAop[f]{\alpha}(\eset)= & \multirow{2}{*}{\( \alphaREAop[f]{\alpha}(\eset) \)} & \multirow{2}{*}{with particular witness to uniformity}\\[6pt]
@@ -251,7 +254,7 @@ To disable these commands pass the option \verb=nodegrees=. \\
\verb=X \nTgeq Y= & \( X \nTgeq Y \) & \\ \midrule
\verb=X \Tincompat Y= & \multirow{2}{*}{\( X \Tincompat Y \)} & Turing incompatibility \\
\tab \verb=X \Tincomp Y= & & \\ \midrule
- \verb=X \Tcompat Y= & & \multirow{3}{*}{\( X \Tcompat Y \)} \\
+ \verb=X \Tcompat Y= & \multirow{3}{*}{\( X \Tcompat Y \)} & \\
\tab \verb=X \nTincomp Y= & & \\
\tab \verb=X \nTincompat Y= & & \\ \midrule
\verb=\Tdeg{d} \Tdegjoin \Tdeg{d'}= & \( \Tdeg{d} \Tdegjoin \Tdeg{d'} \) & Join of degrees\\ \midrule
@@ -262,7 +265,7 @@ To disable these commands pass the option \verb=nodegrees=. \\
\verb=\TPlus_{i \in \omega} X_i= & \multirow{2}{*}{\( \TPlus_{i \in \omega} X_i \)} & \\
\tab \verb=\TJoin_{i \in \omega} X_i= & & \\ \midrule
% \verb=\ttSYM= & \( \ttSYM \) & \\ \midrule
- \verb=X \ttlneq Y= & \( X \ttlneq Y \) & Truth table reproducibilities\\ \midrule
+ \verb=X \ttlneq Y= & \( X \ttlneq Y \) & Truth table reducibilities \\ \midrule
\verb=X \ttleq Y= & \( X \ttleq Y \) & \\ \midrule
\verb=X \ttgneq Y= & \( X \ttgneq Y \) & \\ \midrule
\verb=X \ttgeq Y= & \( X \ttgeq Y \) & \\ \midrule
@@ -388,7 +391,11 @@ Note that \verb=\Cross= and \verb=\cross= overwrite the existing commands saving
\verb=\Isect_{i \in \omega} X_i= & \( \Isect_{i \in \omega} X_i \) & \\ \midrule
\verb=X \cross Y= & \( X \cross Y \) & \multirow{2}{*}{Cartesian product (Cross Product)} \\[6pt]
\verb=\Cross_{i \in \omega} X_i= & \( \Cross_{i \in \omega} X_i \) & \\ \midrule
- \verb=\powset{\omega}= & \( \powset{\omega} \) & Powerset \\ \midrule
+ \verb=\powset{\omega}= & \( \powset{\omega} \) & Powerset \\ \midrule
+ \verb=\powset[\alpha]{\omega}= & \( \powset[\alpha]{A} \) & Subsets of \( A \) of size \( < \alpha \) \\
+ % \verb=\ssetsOfsize[A]^{< \alpha}=, \verb=\finSsets[A]^{< \alpha}=, & \( \ssetsOfsize[A]^{< \alpha} \) & \\ \midrule
+ % \verb=\finSsets[A]= & \( \finSsets[A] \) & Finite subsets of \( A \) \\ \midrule
+ % \verb=\finsets= & \( \finSsets[A] \) & Finite subsets \\ \midrule
\verb=\eset= & \( \eset \) & Emptyset abbreviation\\ \midrule
\verb=x \nin A= & \( x \nin A \) & not an element\\ \midrule
\verb=\setcmp{X}= & \( \setcmp{X} \) & Set compliment\\\midrule
@@ -400,7 +407,7 @@ Note that \verb=\Cross= and \verb=\cross= overwrite the existing commands saving
\end{tabular} \\
\subsection{Delimiters}
-To disable these commands pass the option \verb=nodelim=. \\
+To disable these commands pass the option \verb=nodelim=. To prevent only redefinition of \verb=\llangle= and \verb=\rrangle= (e.g. to use the XITS unusual default) pass the option \verb=nodoubleangles=.\\
\begin{tabular}{l | l | l}\toprule
\verb=\gcode{\phi}= & \multirow{3}{*}{\( \gcode{\phi} \)} & \multirow{3}{*}{Godel Code/Corner Quotes}\\
@@ -620,10 +627,38 @@ To change the syntax for the computable infinitary formulas you can pass the opt
\subsection{Proof Cases}
+
+The pfcases enviornment provides a numbered, referenceable division of a proof segment into cases. Pass the option \verb=nopfcases= to disable loading of this feature. Note these features are not available if you are using the package in a beamer document (not likely to be an issue).
+
+To see how these commands work consider the following code.
+
+\begin{verbatim}
\begin{proof}
-The pfcases enviornment provides a numbered, referenceable division of a proof segment into cases. Note these features are not available if you are using the package in a beamer document (not likely to be an issue).
+\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}
+\end{proof}
+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}.
+\end{verbatim}
+
+ This produces the following output.
+
+\begin{proof}
+\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.
@@ -640,11 +675,49 @@ The pfcases enviornment provides a numbered, referenceable division of a proof s
\end{pfcases}
\end{pfcases}
+\end{proof}
+We may 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}.
-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*
+To skip numbering and instead reference with the argument to \verb=\case= use pfcases*. For instance, consider the following code.
+
+\begin{verbatim}
+\begin{proof}
+\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}.
+\end{verbatim}
+
+\begin{proof}
\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.
@@ -660,39 +733,47 @@ Vestibulum semper eget velit ut lobortis. In vel finibus est. Nullam tellus dolo
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}
+\subsection{Steps}
+To enable the steps environment you \textit{must} pass the option \verb=steps= when loading the package. This enables use of the steps environment to typeset presentation of procedures. The command \verb=\begin{steps}= starts a list environment with an optional argument which is passed along unchanged as the optional argument to the underlying enumitem based list. Inside the steps environment the command \verb=\step[steptitle]= prints a numbered step with steptitle displayed in bold. An example of the use of the steps environment is provided below.
-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}
+\begin{steps}
+ \step If \( x=5 \) fails to hold end the stage without acting. Otherwise the module acts by executing the subsequent steps.
+
+ \step If there is \( k < m \) with \( s_{k} - 1 \approx_i s - 1 \) perform the following steps and end the stage.
+ \begin{steps}
+ \step Choose \( a \nin \setcol{A}{1} \) large.
+ \step Set \( c = c_k, b = b_k, \hat{s}_0 = s_{k} - 1, \hat{s}_1 = s - 1 \).
+ \step Enumerate \( b \) into \( \setcol{A}{2} \) and set \( R_{j,e}(s) = 2 \)
+ \end{steps}
+ \step If there is no such \( k \) we instead enumerate \( c_m \) into \( \setcol{A}{3} \) and execute the procedure for expansionary stages.
+
+\end{steps}
\end{verbatim}
+This yields the following output:
+
+\begin{steps}
+ \step If \( x=5 \) fails to hold end the stage without acting. Otherwise the module acts by executing the subsequent steps.
+
+ \step If there is \( k < m \) with \( s_{k} - 1 \approx_i s - 1 \) perform the following steps and end the stage.
+ \begin{steps}
+ \step Choose \( a \nin \setcol{A}{1} \) large.
+ \step Set \( c = c_k, b = b_k, \hat{s}_0 = s_{k} - 1, \hat{s}_1 = s - 1 \).
+ \step Enumerate \( b \) into \( \setcol{A}{2} \) and set \( R_{j,e}(s) = 2 \)
+ \end{steps}
+ \step If there is no such \( k \) we instead enumerate \( c_m \) into \( \setcol{A}{3} \) and execute the procedure for expansionary stages.
+
+\end{steps}
\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.
+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.
\section{Release Notes}
@@ -700,6 +781,7 @@ Finally to enable the mrref helper macros pass the option \verb=mrref=.\\ These
% TESTING: \verb=\fpmapsto=, \verb=\fpmapsfrom=, \verb=\ParFuncs{Y}{X}= and \verb=\FinParFuncs{Y}{X}=
\begin{itemize}
+ \item[3.7] Fixed cases environment (both prettier and no problem with creating newline). Major re-factor to fix all options. Fixed bug with \verb=\set= display. Added \verb=\st= command inside the \verb=\set= command to depreciate second argument. Added \verb=\finSsets= (alt \verb=\ssetsOfsize=), \verb=\finsets= and optional argument to \verb=\powset=. Changed \verb=\REAop= so the hat is on the starred version as intended. Added the steps (experimental) environment which requires an option to enable and fixed some problems with existing options. Reimplemented \verb=\REset= to use xparse to avoid some errors in unusual contexts. Fixed the display of \verb=\tpath=. Depreciated \verb=\iREAop= and \verb=\oneREAop=. Fixed \verb=\Join=.
\item[3.6] Fixed \verb=\REA[n]= so that dash is shorter. Added BeamerRequirements to add a block for requirements in beamer and fixed the requirements environment for beamer. Fixed \verb=\req*= error. Improved syntax for \verb=\recfnl= so it can accept a parenthesis delimited argument as the oracle. Improved \verb=\setcol= to allow it to be used in a nested fashion without typesetting bugs. Changed the \verb=\code= and \verb=\pair= commands to use only a single angle bracket.
\item[3.5] Added \verb=\Hop= and misc code cleanup.
\item[3.4] Eliminated dependence on undertilde which is missing from texlive
diff --git a/macros/latex/contrib/tudscr/README.md b/macros/latex/contrib/tudscr/README.md
index 0985d55ac1..247b4ed81c 100644
--- a/macros/latex/contrib/tudscr/README.md
+++ b/macros/latex/contrib/tudscr/README.md
@@ -2,9 +2,9 @@
TUD-Script &ndash; Corporate Design of Technische Universität Dresden
----------------------------------------------------------------------------
- Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2020
+ Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2021
- tudscr 2020/11/10 v2.06k
+ tudscr 2021/03/30 v2.06l
The current release is shiped via CTAN: https://www.ctan.org/pkg/tudscr
@@ -57,6 +57,10 @@ Das Bundle beinhaltet:
Versionen
---------
+**v2.06l** (2021/03/30)
++ Fix für Festlegung des Seitenstils in der Präambel
++ Fix für das Durchreichen von Optionen mit LaTeX 2021/05/01
+
**v2.06k** (2020/11/10)
+ Fix für doppelte Leerzeichen in `\confirmation` etc.
@@ -272,6 +276,10 @@ The bundle offers:
Versions
--------
+**v2.06l** (2021/03/30)
++ bug fix for defining the page style in the preamble
++ bug fix for passing options with LaTeX 2021/05/01
+
**v2.06k** (2020/11/10)
+ bug fix for multiple spaces in `\confirmation` etc.
diff --git a/macros/latex/contrib/tudscr/doc/LICENSE.md b/macros/latex/contrib/tudscr/doc/LICENSE.md
index ae0225297b..a0a5ecaef3 100644
--- a/macros/latex/contrib/tudscr/doc/LICENSE.md
+++ b/macros/latex/contrib/tudscr/doc/LICENSE.md
@@ -2,7 +2,7 @@
TUD-Script &ndash; Corporate Design of Technische Universität Dresden
----------------------------------------------------------------------------
- Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2020
+ Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2021
----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tudscr/doc/tudscr.pdf b/macros/latex/contrib/tudscr/doc/tudscr.pdf
index d36387f505..3dedc273b2 100644
--- a/macros/latex/contrib/tudscr/doc/tudscr.pdf
+++ b/macros/latex/contrib/tudscr/doc/tudscr.pdf
Binary files differ
diff --git a/macros/latex/contrib/tudscr/doc/tudscr_print.pdf b/macros/latex/contrib/tudscr/doc/tudscr_print.pdf
index 10dcded50f..c9cf629f61 100644
--- a/macros/latex/contrib/tudscr/doc/tudscr_print.pdf
+++ b/macros/latex/contrib/tudscr/doc/tudscr_print.pdf
Binary files differ
diff --git a/macros/latex/contrib/tudscr/doc/tudscrsource.pdf b/macros/latex/contrib/tudscr/doc/tudscrsource.pdf
index 865a9de198..7b884e78d7 100644
--- a/macros/latex/contrib/tudscr/doc/tudscrsource.pdf
+++ b/macros/latex/contrib/tudscr/doc/tudscrsource.pdf
Binary files differ
diff --git a/macros/latex/contrib/tudscr/doc/tutorials/mathswap.pdf b/macros/latex/contrib/tudscr/doc/tutorials/mathswap.pdf
index 0d31232d5e..602678764c 100644
--- a/macros/latex/contrib/tudscr/doc/tutorials/mathswap.pdf
+++ b/macros/latex/contrib/tudscr/doc/tutorials/mathswap.pdf
Binary files differ
diff --git a/macros/latex/contrib/tudscr/doc/tutorials/mathtype.pdf b/macros/latex/contrib/tudscr/doc/tutorials/mathtype.pdf
index 6719c97d44..ddcc145e9d 100644
--- a/macros/latex/contrib/tudscr/doc/tutorials/mathtype.pdf
+++ b/macros/latex/contrib/tudscr/doc/tutorials/mathtype.pdf
Binary files differ
diff --git a/macros/latex/contrib/tudscr/doc/tutorials/treatise.pdf b/macros/latex/contrib/tudscr/doc/tutorials/treatise.pdf
index 2c8cd1543a..825173e084 100644
--- a/macros/latex/contrib/tudscr/doc/tutorials/treatise.pdf
+++ b/macros/latex/contrib/tudscr/doc/tutorials/treatise.pdf
Binary files differ
diff --git a/macros/latex/contrib/tudscr/source/doc/tudscr.tex b/macros/latex/contrib/tudscr/source/doc/tudscr.tex
index 847d3b1fe2..6e9278693b 100644
--- a/macros/latex/contrib/tudscr/source/doc/tudscr.tex
+++ b/macros/latex/contrib/tudscr/source/doc/tudscr.tex
@@ -29,7 +29,7 @@
\endgroup%
}
\faculty{\cdurl}
-\date{2020-11-10}
+\date{2021-03-30}
\author{%
Falk Hanisch%
\expandafter\emailaddress\expandafter{\tudscrmail}%
diff --git a/macros/latex/contrib/tudscr/source/doc/tutorials/mathswap.tex b/macros/latex/contrib/tudscr/source/doc/tutorials/mathswap.tex
index 2078d7da2f..233e675d9b 100644
--- a/macros/latex/contrib/tudscr/source/doc/tutorials/mathswap.tex
+++ b/macros/latex/contrib/tudscr/source/doc/tutorials/mathswap.tex
@@ -31,7 +31,7 @@
\hypersetup{%
pdfauthor = {\@author},%
pdftitle = {\@title},%
- pdfsubject = {Mathematiksatz in \hologo{LaTeXe}},%
+ pdfsubject = {Mathematiksatz in LaTeX},%
pdfkeywords = {LaTeX, \TUDScript, Tutorial, Mathematiksatz},%
}%
\endgroup%
diff --git a/macros/latex/contrib/tudscr/source/doc/tutorials/mathtype.tex b/macros/latex/contrib/tudscr/source/doc/tutorials/mathtype.tex
index 7f11fb3168..a9f9ab3448 100644
--- a/macros/latex/contrib/tudscr/source/doc/tutorials/mathtype.tex
+++ b/macros/latex/contrib/tudscr/source/doc/tutorials/mathtype.tex
@@ -30,7 +30,7 @@
\hypersetup{%
pdfauthor = {\@author},%
pdftitle = {\@title},%
- pdfsubject = {Mathematiksatz in \hologo{LaTeXe}},%
+ pdfsubject = {Mathematiksatz in LaTeX},%
pdfkeywords = {LaTeX, \TUDScript, Tutorial, Mathematiksatz},%
}%
\endgroup%
diff --git a/macros/latex/contrib/tudscr/source/doc/tutorials/treatise.tex b/macros/latex/contrib/tudscr/source/doc/tutorials/treatise.tex
index 1cb217b7d1..0e06970833 100644
--- a/macros/latex/contrib/tudscr/source/doc/tutorials/treatise.tex
+++ b/macros/latex/contrib/tudscr/source/doc/tutorials/treatise.tex
@@ -75,18 +75,12 @@
\usetikzlibrary{decorations.markings}
\tikzset{on grid}
+% TODO pst-pdf funktioniert momentan nicht mit hyperref
+% github.com/rolfn/pst-pdf/issues/6
\usepackage{pstricks,pst-node}
\makeatletter
\newcommand*\pcolumnfuzz[1]{\pretocmd{\@endpbox}{\hfuzz=#1}{}{}}
-\newcommand*\setpspicturecounter[1]{\setcounter{pspicture}{#1}}
-\AfterPackage*{pst-pdf}{%
- \@ifpackagelater{pst-pdf}{2017/06/23}{%
- \renewcommand*\setpspicturecounter[1]{%
- \@latex@warning{Package `pst-pdf' was updated}%
- }
- }{}%
-}
\makeatother
\usepackage{bookmark}
@@ -179,7 +173,7 @@
\hypersetup{%
pdfauthor = {\@author},%
pdftitle = {\@title},%
- pdfsubject = {Tutorial für \hologo{LaTeXe}},%
+ pdfsubject = {Tutorial für LaTeX},%
pdfkeywords = {LaTeX, \TUDScript, Tutorial, Anwenderleitfaden},%
}%
\endgroup%
@@ -3121,7 +3115,6 @@ paar weitere Einstellungen gemacht. Dies geschieht mit:
%
Die innerhalb einer Gleitumgebung erzeugte \Package{pstricks}"=Grafik ist in
\autoref{fig:pstricks} dargestellt.
-\setpspicturecounter{24}%
\begin{Hint?}
\begin{figure}
\begin{pspicture}(0,-2)(100,64)
diff --git a/macros/latex/contrib/tudscr/source/tudscr-comp.dtx b/macros/latex/contrib/tudscr/source/tudscr-comp.dtx
index 4d25d8d346..bb7341041b 100644
--- a/macros/latex/contrib/tudscr/source/tudscr-comp.dtx
+++ b/macros/latex/contrib/tudscr/source/tudscr-comp.dtx
@@ -1,10 +1,10 @@
-% \CheckSum{1458}
+% \CheckSum{1459}
% \iffalse meta-comment
%
% TUD-Script -- Corporate Design of Technische Universität Dresden
% ----------------------------------------------------------------------------
%
-% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2020
+% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2021
%
% ----------------------------------------------------------------------------
%
@@ -393,6 +393,8 @@
% \changes{v2.06j}{2020/09/29}{neu}^^A
% \begin{macro}{\tud@v@2.06k}
% \changes{v2.06k}{2020/11/10}{neu}^^A
+% \begin{macro}{\tud@v@2.06l}
+% \changes{v2.06l}{2021/03/30}{neu}^^A
% \begin{macro}{\tud@v@last}
% \changes{v2.02}{2014/08/22}{neu}^^A
% \changes{v2.03}{2015/01/13}{angepasst}^^A
@@ -440,9 +442,11 @@
\csdef{tud@v@2.06i}{4}
\csdef{tud@v@2.06j}{4}
\csdef{tud@v@2.06k}{4}
+\csdef{tud@v@2.06l}{4}
\csdef{tud@v@last}{4}
% \end{macrocode}
% \end{macro}^^A \tud@v@last
+% \end{macro}^^A \tud@v@2.06l
% \end{macro}^^A \tud@v@2.06k
% \end{macro}^^A \tud@v@2.06j
% \end{macro}^^A \tud@v@2.06i
diff --git a/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx b/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx
index 2247bb7268..69ada7f5c2 100644
--- a/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx
+++ b/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx
@@ -504,10 +504,10 @@
\AtBeginDocument{%
\if@tud@cdmath@active%
%<*class>
- \ClassWarning{\TUD@Class@Name}%
+ \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
- \PackageWarning{tudscrfonts}%
+ \PackageWarningNoLine{tudscrfonts}%
%</package>
{%
Some math font encodings are missing. \MessageBreak%
@@ -1452,11 +1452,11 @@
% \end{macro}^^A \tud@cdfont@@set
% \end{macro}^^A \tud@cdfont@set
% \begin{macro}{\tud@cdfont@declare@symb}
-% \changes{v2.07}{2020/01/22}{neu}^^A
+% \changes{v2.06g}{2020/06/18}{neu}^^A
% \begin{macro}{\tud@cdfont@symb@list}
-% \changes{v2.07}{2020/01/22}{neu}^^A
+% \changes{v2.06g}{2020/06/18}{neu}^^A
% \begin{macro}{\tud@DeclareTextSymbol}
-% \changes{v2.07}{2020/01/22}{neu}^^A
+% \changes{v2.06g}{2020/06/18}{neu}^^A
% Mit \cs{tud@cdfont@declare@symb} können Glyhen respektive einzelne Zeichen
% definiert werden, welche über das Makro \cs{tud@cdfont@symbols@set} nur zum
% Einsatz kommen, wenn \opt{cdfont=true} aktiviert wurde. Damit können gezielt
@@ -1497,13 +1497,13 @@
% \end{macro}^^A \tud@cdfont@symb@list
% \end{macro}^^A \tud@cdfont@declare@symb
% \begin{macro}{\tud@cdfont@symbols@set}
-% \changes{v2.07}{2020/01/22}{neu}^^A
+% \changes{v2.06g}{2020/06/18}{neu}^^A
% \begin{macro}{\tud@cdfont@symbols@toks}
-% \changes{v2.07}{2020/01/22}{neu}^^A
+% \changes{v2.06g}{2020/06/18}{neu}^^A
% \begin{macro}{\tud@cdfont@symbols@set@cmd}
-% \changes{v2.07}{2020/01/22}{neu}^^A
+% \changes{v2.06g}{2020/06/18}{neu}^^A
% \begin{macro}{\tud@cdfont@symbols@reset}
-% \changes{v2.07}{2020/01/22}{neu}^^A
+% \changes{v2.06g}{2020/06/18}{neu}^^A
% Mit diesen Befehlen wird im zwischen Symbolen für die Schriften des \CDs,
% welche mit \cs{tud@cdfont@declare@symb} deklariert wurden, und den normalen
% gewechselt werden.
@@ -1542,7 +1542,7 @@
% \end{macro}^^A \tud@cdfont@symbols@toks
% \end{macro}^^A \tud@cdfont@symbols@set
% \begin{macro}{\tud@cdfont@declare@textsymb}
-% \changes{v2.07}{2020/01/22}{neu}^^A
+% \changes{v2.06g}{2020/06/18}{neu}^^A
% \begin{macro}{\tud@cdmath@symbol@textleftarrow}
% \begin{macro}{\tud@cdmath@symbol@textrightarrow}
% \begin{macro}{\tud@cdmath@symbol@textuparrow}
diff --git a/macros/latex/contrib/tudscr/source/tudscr-misc.dtx b/macros/latex/contrib/tudscr/source/tudscr-misc.dtx
index ae760053bf..81ead2899d 100644
--- a/macros/latex/contrib/tudscr/source/tudscr-misc.dtx
+++ b/macros/latex/contrib/tudscr/source/tudscr-misc.dtx
@@ -1,10 +1,10 @@
-% \CheckSum{324}
+% \CheckSum{334}
% \iffalse meta-comment
%
% TUD-Script -- Corporate Design of Technische Universität Dresden
% ----------------------------------------------------------------------------
%
-% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2020
+% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2021
%
% ----------------------------------------------------------------------------
%
@@ -52,7 +52,7 @@
% \fi
%
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
-\ProvidesFile{tudscr-misc.dtx}[2020/09/29 v2.06j TUD-Script\space%
+\ProvidesFile{tudscr-misc.dtx}[2021/03/30 v2.06l TUD-Script\space%
(miscellaneous)%
]
%
@@ -344,7 +344,7 @@
% \begin{macrocode}
\newcommand*\tud@x@scr@checkoptions{%
\expandafter\tud@x@scr@pt\CurrentOption pt\@nil%
- \PassOptionsToClass{\CurrentOption}{\TUD@Class@KOMA}%
+ \expandafter\PassOptionsToClass\expandafter{\CurrentOption}{\TUD@Class@KOMA}%
}
% \end{macrocode}
% Wird die Schriftgröße im veralteten Format \val{\dots pt} übergeben, so wird
@@ -377,8 +377,8 @@
\ClassWarningNoLine{\TUD@Class@Name}{%
You've set a layout size, which is different from\MessageBreak%
default (paper=a4, paper=portrait). Therefore you\MessageBreak%
- should additionally specify an explicit font size. \MessageBreak%
- See the manual for further information%
+ should explicitly specify an font size. See the\MessageBreak%
+ manual for further information%
}%
\fi%
\fi%
@@ -557,13 +557,13 @@
% \begin{macrocode}
%<*package>
%<*fonts>
-\DeclareOption*{\KOMAoptions{\CurrentOption}}
+\DeclareOption*{\expandafter\KOMAoptions\expandafter{\CurrentOption}}
%</fonts>
%<*fixfonts>
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tudscrfonts}}
+\DeclareOption*{\expandafter\PassOptionsToPackage\expandafter{\CurrentOption}{tudscrfonts}}
%</fixfonts>
%<*comp>
-\DeclareOption*{\TUDoptions{\CurrentOption}}
+\DeclareOption*{\expandafter\TUDoptions\expandafter{\CurrentOption}}
%</comp>
%</package>
%<*class>
@@ -571,7 +571,7 @@
\DeclareOption*{\tud@x@scr@checkoptions}
%</!inherit>
%<*inherit>
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUD@Class@Parent}}
+\DeclareOption*{\expandafter\PassOptionsToClass\expandafter{\CurrentOption}{\TUD@Class@Parent}}
%</inherit>
%</class>
% \end{macrocode}
diff --git a/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx b/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx
index d230be498b..e15655eaba 100644
--- a/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx
+++ b/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx
@@ -1,10 +1,10 @@
-% \CheckSum{2044}
+% \CheckSum{2046}
% \iffalse meta-comment
%
% TUD-Script -- Corporate Design of Technische Universität Dresden
% ----------------------------------------------------------------------------
%
-% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2020
+% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2021
%
% ----------------------------------------------------------------------------
%
@@ -52,7 +52,7 @@
% \fi
%
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
-\ProvidesFile{tudscr-pagestyle.dtx}[2020/09/29 v2.06j TUD-Script\space%
+\ProvidesFile{tudscr-pagestyle.dtx}[2021/03/30 v2.06l TUD-Script\space%
(pagestyle)%
]
%
@@ -121,6 +121,7 @@
\if@tud@x@standalone@crop
\PreventPackageFromLoading{scrlayer-scrpage}%
\else
+ \PassOptionsToPackage{automark}{scrlayer-scrpage}%
\AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2020/09/21]}%
\fi
% \end{macrocode}
@@ -649,6 +650,7 @@
% \begin{macrocode}
\tud@cs@store{pagestyle}
\renewcommand*\pagestyle[1]{%
+ \csuse{ps@#1}%
\AfterAtEndOfPackage*{scrlayer-scrpage}{\pagestyle{#1}}%
}
\BeforePackage{scrlayer-scrpage}{%
diff --git a/macros/latex/contrib/tudscr/source/tudscr-title.dtx b/macros/latex/contrib/tudscr/source/tudscr-title.dtx
index 1f46c490ca..f917275db4 100644
--- a/macros/latex/contrib/tudscr/source/tudscr-title.dtx
+++ b/macros/latex/contrib/tudscr/source/tudscr-title.dtx
@@ -166,7 +166,7 @@
\newcommand*\tud@titlepage@deactivate{%
\if@titlepage%
\KOMAoptions{titlepage=false}%
- \ClassWarning{\TUD@Class@Name}{%
+ \ClassWarningNoLine{\TUD@Class@Name}{%
The class `\TUD@Class@Name' can't be used with\MessageBreak%
activated titlepage option. It will be enforced to\MessageBreak%
`titlepage=false'%
diff --git a/macros/latex/contrib/tudscr/source/tudscr-version.dtx b/macros/latex/contrib/tudscr/source/tudscr-version.dtx
index 8632182178..bbc0e49aa0 100644
--- a/macros/latex/contrib/tudscr/source/tudscr-version.dtx
+++ b/macros/latex/contrib/tudscr/source/tudscr-version.dtx
@@ -4,7 +4,7 @@
% TUD-Script -- Corporate Design of Technische Universität Dresden
% ----------------------------------------------------------------------------
%
-% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2020
+% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2021
%
% ----------------------------------------------------------------------------
%
@@ -128,7 +128,7 @@
%<*!(package|class)>
\fi
%</!(package|class)>
- \TUD@Version@Check{2020/11/10 v2.06k TUD-Script}
+ \TUD@Version@Check{2021/03/30 v2.06l TUD-Script}
\endgroup
% \end{macrocode}
% \end{macro}^^A \TUDScriptVersionNumber