summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/stex/omdoc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-03-20 22:31:24 +0000
committerKarl Berry <karl@freefriends.org>2019-03-20 22:31:24 +0000
commit2b006ec0e0cafe12255f874f9c44786ab6f38901 (patch)
treec40f5796e1b34e3f051abd84d049e092e4ffd0ab /Master/texmf-dist/tex/latex/stex/omdoc
parent8e508e8b0218f17eb318645073096f2cf645cc78 (diff)
stex (20mar19)
git-svn-id: svn://tug.org/texlive/trunk@50489 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/stex/omdoc')
-rw-r--r--Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls64
-rw-r--r--Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty66
2 files changed, 76 insertions, 54 deletions
diff --git a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls
index 76455b2bb4f..0b339f1841e 100644
--- a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls
+++ b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls
@@ -7,44 +7,48 @@
%% omdoc.dtx (with options: `cls')
%%
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesClass{omdoc}[2016/04/07 v1.2 OMDoc Documents]
-\def\omdoc@class{article}
-\DeclareOption{report}{\def\omdoc@class{report}%
- \PassOptionsToPackage{\CurrentOption}{omdoc}
- \PassOptionsToPackage{\CurrentOption}{stex}}
-\newif\ifclass@book\class@bookfalse
-\DeclareOption{book}{\def\omdoc@class{book}\class@booktrue%
- \PassOptionsToPackage{\CurrentOption}{omdoc}
- \PassOptionsToPackage{\CurrentOption}{stex}}
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\omdoc@class}
- \PassOptionsToPackage{\CurrentOption}{omdoc}
- \PassOptionsToPackage{\CurrentOption}{stex}}
-\ProcessOptions
-\LoadClass{\omdoc@class}
+\ProvidesClass{omdoc}[2019/03/20 v1.3 OMDoc Documents]
\RequirePackage{etoolbox}
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=omdoc@cls,prefix=omdoc@cls@}
+\DeclareStringOption[article]{class}
+\AddToKeyvalOption*{class}{\PassOptionsToPackage{class=\omdoc@cls@class}{omdoc}}
+\DeclareVoidOption{report}{\def\omdoc@cls@class{report}%
+\ClassWarning{omdoc}{the option 'report' is deprecated, use 'class=report', instead}}
+\DeclareVoidOption{book}{\def\omdoc@cls@class{book}%
+\ClassWarning{omdoc}{the option 'part' is deprecated, use 'class=book', instead}}
+\DeclareVoidOption{bookpart}{\def\omdoc@cls@class{book}%
+\PassOptionsToPackage{topsect=chapter}{omdoc}%
+\ClassWarning{omdoc}{the option 'bookpart' is deprecated, use 'class=book,topsect=chapter', instead}}
+\def\@omdoc@cls@docopt{}
+\DeclareDefaultOption{%
+\ifx\@omdoc@cls@docopt\@empty%
+\xdef\@omdoc@cls@docopt{\CurrentOption}%
+\else\xappto\@omdoc@cls@docopt{,\CurrentOption}%
+\fi}%
+\PassOptionsToPackage{\CurrentOption}{omdoc}
+\PassOptionsToPackage{\CurrentOption}{stex}
+\ProcessKeyvalOptions{omdoc@cls}
+\LoadClass[\@omdoc@cls@docopt]{\omdoc@cls@class}
\RequirePackage{omdoc}
\RequirePackage{stex}
\srefaddidkey{document}
\newcommand\documentkeys[1]{\metasetkeys{document}{#1}}
\let\orig@document=\document
-\srefaddidkey{document}
\renewcommand{\document}[1][]{\metasetkeys{document}{#1}\orig@document}
-\ifclass@book
-\renewenvironment{frontmatter}
-{\@frontmattertrue\cleardoublepage\@mainmatterfalse\pagenumbering{roman}}
-{\@frontmatterfalse\setcounter{page}{1}\pagenumbering{arabic}}
-\else
+\ifcsdef{frontmatter}% to redefine if necessary
+ {\cslet{orig@frontmatter}{\frontmatter}\cslet{frontmatter}{\relax}}
+ {\cslet{orig@frontmatter}{\clearpage\@mainmatterfalse\pagenumbering{roman}}}
+\ifcsdef{backmatter}% to redefine if necessary
+ {\cslet{orig@backmatter}{\backmatter}\cslet{backmatter}{\relax}}
+ {\cslet{orig@backmatter}{\clearpage\@mainmatterfalse\pagenumbering{roman}}}
\newenvironment{frontmatter}
-{\@frontmattertrue\pagenumbering{roman}}
-{\@frontmatterfalse\setcounter{page}{1}\pagenumbering{arabic}}
-\fi
-\ifclass@book
-\renewenvironment{backmatter}
-{\cleardoublepage\@mainmatterfalse\@backmattertrue}
-{\@backmatterfalse}
-\else
-\newenvironment{backmatter}{\@backmattertrue}{\@backmatterfalse}
-\fi
+{\orig@frontmatter}
+{\ifcsdef{mainmatter}{}{\clearpage\@mainmattertrue\pagenumbering{arabic}}}
+\newenvironment{backmatter}
+{\orig@backmatter}
+{\ifcsdef{mainmatter}{}{\clearpage\@mainmattertrue\pagenumbering{arabic}}}
+\pagenumbering{arabic}
\endinput
%%
%% End of file `omdoc.cls'.
diff --git a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty
index 8cde99fa719..ae8ac708578 100644
--- a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty
+++ b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty
@@ -7,18 +7,26 @@
%% omdoc.dtx (with options: `package')
%%
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{omdoc}[2016/04/07 v1.2 OMDoc document Structure]
-\newif\ifshow@ignores\show@ignoresfalse
-\DeclareOption{showignores}{\show@ignorestrue}
-\newcount\section@level\section@level=2
-\DeclareOption{report}{\section@level=0}
-\DeclareOption{book}{\section@level=0}
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}}
-\ProcessOptions
+\ProvidesPackage{omdoc}[2019/03/20 v1.3 OMDoc document Structure]
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=omdoc@sty,prefix=omdoc@sty@}
+\DeclareBoolOption{mh}
+\DeclareStringOption[article]{class}
+\DeclareBoolOption{showignores}
+\DeclareStringOption[section]{topsect}
+\newcount\section@level
+\DeclareDefaultOption{\PassOptionsToPackage{\CurrentOption}{sref}}
+\ProcessKeyvalOptions{omdoc@sty}
+\ifomdoc@sty@mh\RequirePackage{omdoc-mh}\fi
\RequirePackage{sref}
\RequirePackage{xspace}
\RequirePackage{comment}
\RequirePackage{pathsuris}
+\section@level=2
+\ifdefstring{\omdoc@sty@class}{book}{\section@level=0}{}
+\ifdefstring{\omdoc@sty@class}{report}{\section@level=0}{}
+\ifdefstring{\omdoc@sty@topsect}{part}{\section@level=0}{}
+\ifdefstring{\omdoc@sty@topsect}{chapter}{\section@level=1}{}
\def\current@section@level{document}%
\newcommand\currentsectionlevel{\lowercase\expandafter{\current@section@level}\xspace}%
\newcommand\Currentsectionlevel{\expandafter\MakeUppercase\current@section@level\xspace}%
@@ -30,11 +38,15 @@
\ifx\hyper@anchor\@undefined\else\phantomsection\fi%
\addcontentsline{toc}{#1}{#2}\@nameuse{#1}*{#2}}
\newcommand\omgroup@num[2]{%
-\sref@label@id{\omdoc@sect@name~\@nameuse{the#1}}%
-\ifx\omgroup@short\@empty\@nameuse{#1}{#2}%
-\else\@ifundefined{rdfmeta@sectioning}{\@nameuse{#1}[\omgroup@short]{#2}}%
-{\@nameuse{rdfmeta@#1@old}[\omgroup@short]{#2}}%
-\fi}
+\edef\@@ID{\sref@id}
+\ifx\omgroup@short\@empty% no short title
+\@nameuse{#1}{#2}%
+\else% we have a short title
+\@ifundefined{rdfmeta@sectioning}%
+ {\@nameuse{#1}[\omgroup@short]{#2}}%
+ {\@nameuse{rdfmeta@#1@old}[\omgroup@short]{#2}}%
+\fi%
+\sref@label@id@arg{\omdoc@sect@name~\@nameuse{the#1}}\@@ID}
\def\@true{true}
\def\@false{false}
\srefaddidkey{omgroup}
@@ -47,8 +59,7 @@
\addmetakey*{omgroup}{display}
\addmetakey[false]{omgroup}{loadmodules}[true]
\newif\if@@num\@@numtrue
-\newif\if@frontmatter\@frontmatterfalse
-\newif\if@backmatter\@backmatterfalse
+\newif\if@mainmatter\@mainmattertrue
\newcommand\at@begin@omgroup[3][]{}
\addmetakey{omdoc@sect}{name}
\addmetakey[false]{omdoc@sect}{clear}[true]
@@ -59,24 +70,29 @@
\if@@num% numbering not overridden by frontmatter, etc.
\ifx\omdoc@sect@num\@true\omgroup@num{#2}{#3}\else\omgroup@nonum{#2}{#3}\fi%
\def\current@section@level{\omdoc@sect@name}%
-\else\omgroup@nonum{#2}{#3}\fi}
-\newcommand\omgroup@redefine@addtocontents[1]{\edef\@@import{#1}%
-\@for\@I:=\@@import\do{\edef\@path{\csname module@\@I @path\endcsname}%
-\@ifundefined{tf@toc}\relax{\protected@write\tf@toc{}{\string\@requiremodules{\@path}{sms}}}}
+\else\omgroup@nonum{#2}{#3}%
+\fi}% if@@num
+\newcommand\omgroup@redefine@addtocontents[1]{%
+\edef\@@import{#1}%
+\@for\@I:=\@@import\do{%
+\edef\@path{\csname module@\@I @path\endcsname}%
+\@ifundefined{tf@toc}\relax%
+ {\protected@write\tf@toc{}{\string\@requiremodules{\@path}{sms}}}}
\ifx\hyper@anchor\@undefined% hyperref.sty loaded?
\def\addcontentsline##1##2##3{%
\addtocontents{##1}{\protect\contentsline{##2}{\string\withusedmodules{#1}{##3}}{\thepage}}}
-\else\def\addcontentsline##1##2##3{%
+\else% hyperref.sty not loaded
+\def\addcontentsline##1##2##3{%
\addtocontents{##1}{\protect\contentsline{##2}{\string\withusedmodules{#1}{##3}}{\thepage}{\@currentHref}}}%
\fi}% hypreref.sty loaded?
\newenvironment{omgroup}[2][]% keys, title
{\metasetkeys{omgroup}{#1}\sref@target%
\ifx\omgroup@display\st@flow\@@numfalse\fi
-\if@frontmatter\@@numfalse\fi
+\if@mainmatter\else\@@numfalse\fi
\ifx\omgroup@loadmodules\@true%
\omgroup@redefine@addtocontents{\@ifundefined{mod@id}\used@modules%
{\@ifundefined{module@\mod@id @path}{\used@modules}\mod@id}}\fi%
-\advance\section@level by 1
+\advance\section@level by 1\relax%
\ifcase\section@level%
\or\omdoc@sectioning[name=Part,clear,num]{part}{#2}%
\or\omdoc@sectioning[name=Chapter,clear,num]{chapter}{#2}%
@@ -89,7 +105,7 @@
\at@begin@omgroup[#1]\section@level{#2}}% for customization
{\advance\section@level by -1}
\providecommand\printindex{\IfFileExists{\jobname.ind}{\input{\jobname.ind}}{}}
-\ifshow@ignores
+\ifomdoc@sty@showignores
\addmetakey{ignore}{type}
\addmetakey{ignore}{comment}
\newenvironment{ignore}[1][]
@@ -99,13 +115,15 @@
\providecommand{\lxDocumentID}[1]{}%
\def\LXMID#1#2{\expandafter\gdef\csname xmarg#1\endcsname{#2}\csname xmarg#1\endcsname}
\def\LXMRef#1{\csname xmarg#1\endcsname}
-
\long\def\STRlabel#1#2{\STRlabeldef{#1}{#2}{#2}}
\newcommand\STRcopy[2][]{\expandafter\ifx\csname STR@#2\endcsname\relax
\message{STR warning: reference #2 undefined!}
\else\csname STR@#2\endcsname\fi}
\newcommand\STRsemantics[3][]{#2\def\@test{#1}\ifx\@test\@empty\STRlabeldef{#1}{#2}\fi}
\def\STRlabeldef#1{\expandafter\gdef\csname STR@#1\endcsname}
+\newcommand\setSGvar[1]{\@namedef{sTeX@Gvar@#1}}
+\newcommand\useSGvar[1]{\@nameuse{sTeX@Gvar@#1}}
+\newcommand\ifSGvar[3]{\def\@test{#2}\expandafter\ifx\csname sTeX@Gvar@#1\endcsname\@test #3\fi}
\def\black#1{\textcolor{black}{#1}}
\def\gray#1{\textcolor{gray}{#1}}
\def\blue#1{\textcolor{blue}{#1}}