diff options
author | Karl Berry <karl@freefriends.org> | 2019-03-20 22:31:24 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-03-20 22:31:24 +0000 |
commit | 2b006ec0e0cafe12255f874f9c44786ab6f38901 (patch) | |
tree | c40f5796e1b34e3f051abd84d049e092e4ffd0ab /Master/texmf-dist/tex/latex/stex/omdoc | |
parent | 8e508e8b0218f17eb318645073096f2cf645cc78 (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.cls | 64 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty | 66 |
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}} |