summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/stex/omdoc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-04-07 20:49:10 +0000
committerKarl Berry <karl@freefriends.org>2016-04-07 20:49:10 +0000
commitddfe3a4eaf95167482e923d4da3de2917a7dbfbb (patch)
tree0acc1bb60b37392451f5e79e00c33c487c19abcf /Master/texmf-dist/tex/latex/stex/omdoc
parenta04ae5a947a6b06bc717719f6ad63e6de5cb5af6 (diff)
stex (7apr16)
git-svn-id: svn://tug.org/texlive/trunk@40320 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.cls40
-rw-r--r--Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls.ltxml58
-rw-r--r--Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty114
-rw-r--r--Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty.ltxml67
4 files changed, 106 insertions, 173 deletions
diff --git a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls
index 6cb3c77a74b..76455b2bb4f 100644
--- a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls
+++ b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls
@@ -7,22 +7,44 @@
%% omdoc.dtx (with options: `cls')
%%
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesClass{omdoc}[2012/01/28 v1.0 OMDoc Documents]
-\DeclareOption{showmeta}{\PassOptionsToPackage{\CurrentOption}{metakeys}}
+\ProvidesClass{omdoc}[2016/04/07 v1.2 OMDoc Documents]
\def\omdoc@class{article}
-\DeclareOption{report}{\def\omdoc@class{report}\PassOptionsToPackage{\CurrentOption}{omdoc}}
-\DeclareOption{book}{\def\omdoc@class{book}\PassOptionsToPackage{\CurrentOption}{omdoc}}
-\DeclareOption{chapter}{\PassOptionsToPackage{\CurrentOption}{omdoc}}
-\DeclareOption{part}{\PassOptionsToPackage{\CurrentOption}{omdoc}}
-\DeclareOption{showignores}{\PassOptionsToPackage{\CurrentOption}{omdoc}}
-\DeclareOption{extrefs}{\PassOptionsToPackage{\CurrentOption}{sref}}
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{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}
+\RequirePackage{etoolbox}
\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
+\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
\endinput
%%
%% End of file `omdoc.cls'.
diff --git a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls.ltxml b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls.ltxml
deleted file mode 100644
index 56d43b7138e..00000000000
--- a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.cls.ltxml
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*- CPERL -*-
-package LaTeXML::Package::Pool;
-use strict;
-use LaTeXML::Package;
-use LaTeXML::Util::Pathname;
-use Cwd qw(cwd abs_path);
-DeclareOption('report',sub {PassOptions('omdoc','sty',ToString(Digest(T_CS('\CurrentOption')))); });
-DeclareOption('book',sub {PassOptions('omdoc','sty',ToString(Digest(T_CS('\CurrentOption')))); });
-DeclareOption('chapter',sub {PassOptions('omdoc','sty',ToString(Digest(T_CS('\CurrentOption')))); });
-DeclareOption('part',sub {PassOptions('omdoc','sty',ToString(Digest(T_CS('\CurrentOption')))); });
-DeclareOption('showignores',sub {PassOptions('omdoc','sty',ToString(Digest(T_CS('\CurrentOption')))); });
-DeclareOption('extrefs',sub {PassOptions('sref','sty',ToString(Digest(T_CS('\CurrentOption')))); });
-DeclareOption(undef,sub {PassOptions('article','cls',ToString(Digest(T_CS('\CurrentOption')))); });
-ProcessOptions();
-LoadClass('article');
-RequirePackage('sref');
-RegisterNamespace('omdoc'=>"http://omdoc.org/ns");
-RegisterNamespace('om'=>"http://www.openmath.org/OpenMath");
-RegisterNamespace('m'=>"http://www.w3.org/1998/Math/MathML");
-RegisterNamespace('dc'=>"http://purl.org/dc/elements/1.1/");
-RegisterNamespace('cc'=>"http://creativecommons.org/ns");
-RegisterNamespace('stex'=>"http://kwarc.info/ns/sTeX");
-RegisterNamespace('ltx'=>"http://dlmf.nist.gov/LaTeXML");
-RelaxNGSchema('omdoc+ltxml',
- '#default'=>"http://omdoc.org/ns",
- 'om'=>"http://www.openmath.org/OpenMath",
- 'm'=>"http://www.w3.org/1998/Math/MathML",
- 'dc'=>"http://purl.org/dc/elements/1.1/",
- 'cc'=>"http://creativecommons.org/ns",
- 'stex'=>"http://kwarc.info/ns/sTeX",
- 'ltx'=>"http://dlmf.nist.gov/LaTeXML");
-RequirePackage('omdoc');
-sub xmlBase {
- my $baseuri = LookupValue('baseuri');
- my $baselocal = LookupValue('baselocal');
- my $cdir = abs_path(cwd());
- $cdir =~ s/^$baselocal// if $baselocal;
- #DG: Make this more robust!
- my ($d,$f,$t);
- my $srcf = LookupValue('SOURCEFILE');
- if ( $srcf =~ /^(\w+):\/\//) {
- $srcf =~ s/^(\w+):\///;
- } # TODO: Hacky, do something better
- ($d, $f,$t) = pathname_split(LookupValue('SOURCEFILE'));
- $t = '' if LookupValue('cooluri');
- Tokenize($baseuri.$cdir.'/'.$f.$t); }
-DefEnvironment('{document} OptionalKeyVals:omdoc',
- "<omdoc:omdoc "
- . "?&KeyVal(#1,'id')(xml:id='&KeyVal(#1,'id')')"
- . "(?&Tokenize(&LookupValue('SOURCEBASE'))"
- . "(xml:id='&Tokenize(&LookupValue('SOURCEBASE')).omdoc')()) "
- . "?&Tokenize(&LookupValue('baseuri'))"
- . "(xml:base='&xmlBase()')()>"
- . "#body"
- ."</omdoc:omdoc>",
- beforeDigest=> sub { AssignValue(inPreamble=>0); },
- afterDigest=> sub { $_[0]->getGullet->flush; return; });#$
-1;
diff --git a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty
index 54f275d7c46..8cde99fa719 100644
--- a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty
+++ b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty
@@ -7,51 +7,87 @@
%% omdoc.dtx (with options: `package')
%%
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{omdoc}[2012/01/28 v1.0 OMDoc document Structure]
-\DeclareOption{showmeta}{\PassOptionsToPackage{\CurrentOption}{metakeys}}
-\newif\if@chapter\@chapterfalse
-\newif\if@part\@partfalse
-\newcount\section@level\section@level=3
+\ProvidesPackage{omdoc}[2016/04/07 v1.2 OMDoc document Structure]
\newif\ifshow@ignores\show@ignoresfalse
-\def\omdoc@class{article}
-\DeclareOption{report}{\def\omdoc@class{report}\section@level=2}
-\DeclareOption{book}{\def\omdoc@class{book}\section@level=1}
-\DeclareOption{chapter}{\section@level=2\@chaptertrue}
-\DeclareOption{part}{\section@level=1\@chaptertrue\@parttrue}
\DeclareOption{showignores}{\show@ignorestrue}
-\DeclareOption{extrefs}{\PassOptionsToPackage{\CurrentOption}{sref}}
+\newcount\section@level\section@level=2
+\DeclareOption{report}{\section@level=0}
+\DeclareOption{book}{\section@level=0}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}}
\ProcessOptions
\RequirePackage{sref}
\RequirePackage{xspace}
\RequirePackage{comment}
-\def\level@section#1{\ifcase#1\or{part}\or{chapter}\or{section}\or{subsection}\or{subsubsection}\or{paragraph}\or{subparagraph}\fi}
-\def\Level@Section#1{\ifcase#1\or{Part}\or{Chapter}\or{Section}\or{Subsection}\or{Subsubsection}\or{Paragraph}\or{Subparagraph}\fi}
-\def\in@level@section#1{\ifcase#1\or{this document}\or{part}\or{chapter}\or{section}\or{subsection}\or{subsubsection}\or{paragraph}\or{subparagraph}\fi}
-\def\In@Level@Section#1{\ifcase#1\or{This document}\or{Part}\or{Chapter}\or{Section}\or{Subsection}\or{Subsubsection}\or{Paragraph}\or{Subparagraph}\fi}
-\def\currentsectionlevel{\in@level@section\section@level\xspace}
-\def\CurrentSectionLevel{\In@Level@Section\section@level\xspace}
+\RequirePackage{pathsuris}
+\def\current@section@level{document}%
+\newcommand\currentsectionlevel{\lowercase\expandafter{\current@section@level}\xspace}%
+\newcommand\Currentsectionlevel{\expandafter\MakeUppercase\current@section@level\xspace}%
+\newcommand\at@begin@blindomgroup[1]{}
+\newenvironment{blindomgroup}
+{\advance\section@level by 1\at@begin@blindomgroup\setion@level}
+{\advance\section@level by -1}
+\newcommand\omgroup@nonum[2]{%
+\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}
+\def\@true{true}
+\def\@false{false}
\srefaddidkey{omgroup}
-\addmetakey{omgroup}{creators}
\addmetakey{omgroup}{date}
+\addmetakey{omgroup}{creators}
\addmetakey{omgroup}{contributors}
+\addmetakey{omgroup}{srccite}
\addmetakey{omgroup}{type}
\addmetakey*{omgroup}{short}
\addmetakey*{omgroup}{display}
-\def\at@begin@omgroup#1{}
+\addmetakey[false]{omgroup}{loadmodules}[true]
+\newif\if@@num\@@numtrue
+\newif\if@frontmatter\@frontmatterfalse
+\newif\if@backmatter\@backmatterfalse
+\newcommand\at@begin@omgroup[3][]{}
+\addmetakey{omdoc@sect}{name}
+\addmetakey[false]{omdoc@sect}{clear}[true]
+\addmetakey{omdoc@sect}{ref}
+\addmetakey[false]{omdoc@sect}{num}[true]
+\newcommand\omdoc@sectioning[3][]{\metasetkeys{omdoc@sect}{#1}%
+\ifx\omdoc@sect@clear\@true\cleardoublepage\fi%
+\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}}}}
+\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{%
+\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\noindent{\Large\textbf{#2}\\[.3ex]\noindent\ignorespaces}%
-\else%
-\if@part\ifnum\section@level=1\part{#2}\sref@label@id{Part \thepart}\fi\fi%
-\if@chapter\ifnum\section@level=2\chapter{#2}\sref@label@id{Chapter \thechapter}\fi\fi%
-\ifnum\section@level=3\section{#2}\sref@label@id{Section \thesection}\fi%
-\ifnum\section@level=4\subsection{#2}\sref@label@id{Subsection \thesubsection}\fi%
-\ifnum\section@level=5\subsubsection{#2}\sref@label@id{Subsubsection \thesubsubsection}\fi%
-\ifnum\section@level=6\paragraph{#2}\sref@label@id{this paragraph}\fi%
-\ifnum\section@level=7\subparagraph{#2}\sref@label@id{this subparagraph}\fi%
-\at@begin@omgroup\section@level% for customization
-\advance\section@level by 1%
-\fi}{\advance\section@level by -1}
+\ifx\omgroup@display\st@flow\@@numfalse\fi
+\if@frontmatter\@@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
+\ifcase\section@level%
+\or\omdoc@sectioning[name=Part,clear,num]{part}{#2}%
+\or\omdoc@sectioning[name=Chapter,clear,num]{chapter}{#2}%
+\or\omdoc@sectioning[name=Section,num]{section}{#2}%
+\or\omdoc@sectioning[name=Subsection,num]{subsection}{#2}%
+\or\omdoc@sectioning[name=Subsubsection,num]{subsubsection}{#2}%
+\or\omdoc@sectioning[name=Paragraph,ref=this paragraph]{paragraph}{#2}%
+\or\omdoc@sectioning[name=Subparagraph,ref=this subparagraph]{paragraph}{#2}%
+\fi% \ifcase
+\at@begin@omgroup[#1]\section@level{#2}}% for customization
+{\advance\section@level by -1}
\providecommand\printindex{\IfFileExists{\jobname.ind}{\input{\jobname.ind}}{}}
\ifshow@ignores
\addmetakey{ignore}{type}
@@ -60,11 +96,15 @@
{\metasetkeys{ignore}{#1}\textless\ignore@type\textgreater\bgroup\itshape}
{\egroup\textless/\ignore@type\textgreater}
\renewenvironment{ignore}{}{}\else\excludecomment{ignore}\fi
+\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}}
-\def\STRcopy#1{\expandafter\ifx\csname STR@#1\endcsname\relax
-\message{STR warning: reference #1 undefined!}
-\else\csname STR@#1\endcsname\fi}
-\newcommand{\STRsemantics}[3][]{#2\def\@test{#1}\ifx\@test\@empty\STRlabeldef{#1}{#2}\fi}
+\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}
\def\black#1{\textcolor{black}{#1}}
\def\gray#1{\textcolor{gray}{#1}}
@@ -76,10 +116,6 @@
\def\brown#1{\textcolor{brown}{#1}}
\def\yellow#1{\textcolor{yellow}{#1}}
\def\orange#1{\textcolor{orange}{#1}}
-\newcommand\hateq{\ensuremath{\hat=}\xspace}
-\newcommand\hatequiv{\ensuremath{\hat\equiv}\xspace}
-\newcommand\textleadsto{\ensuremath{\leadsto}\xspace}
-\newcommand{\baseURI}[2][]{}
\endinput
%%
%% End of file `omdoc.sty'.
diff --git a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty.ltxml b/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty.ltxml
deleted file mode 100644
index 207a53b6f2b..00000000000
--- a/Master/texmf-dist/tex/latex/stex/omdoc/omdoc.sty.ltxml
+++ /dev/null
@@ -1,67 +0,0 @@
-package LaTeXML::Package::Pool;
-use strict;
-use LaTeXML::Package;
-use Cwd qw(cwd abs_path);
-DeclareOption('report','');
-DeclareOption('book','');
-DeclareOption('chapter','');
-DeclareOption('part','');
-DeclareOption('showignores','');
-DeclareOption('extrefs','');
-RequirePackage('sref');
-RequirePackage('xspace');
-RequirePackage('omtext');
-DefEnvironment('{omgroup} OptionalKeyVals:omgroup {}',
- "<omdoc:omgroup layout='sectioning'"
- . "?&KeyVal(#1,'id')(xml:id='&KeyVal(#1,'id')')()"
- . "?&KeyVal(#1,'type')(type='&KeyVal(#1,'type')')()>\n"
- . "<dc:title>#2</dc:title>\n"
- . "#body\n"
- . "</omdoc:omgroup>");
-DefConstructor('\printindex','<omdoc:index/>');
-DefConstructor('\tableofcontents',"<omdoc:tableofcontents level='&ToString(&CounterValue('tocdepth'))'/>");
-DefConstructor('\bibliography{}',"<omdoc:bibliography files='#1'/>");
-DefKeyVal('ignore','type','Semiverbatim');
-DefKeyVal('ignore','comment','Semiverbatim');
-DefEnvironment('{ignore} OptionalKeyVals:ignore',
- "<omdoc:ignore %&KeyVals(#1)>#body</omdoc:ignore>");
-DefConstructor('\STRlabel{}{}', sub {
- my($document,$label,$object)=@_;
- $document->absorb($object);
- $document->addAttribute('xml:id'=>ToString($label)) if $label; });
-DefConstructor('\STRcopy{}',"<omdoc:ref xref='##1'/>");
-DefConstructor('\STRsemantics[]{}{}', sub {
- my($document,$label,$ignore,$object)=@_;
- $document->absorb($object);
- $document->addAttribute('xml:id'=>ToString($label)) if $label; });
-DefMacro('\STRlabeldef{}{}', "");
-sub omdocColorMacro {
- my ($color, @args) = @_;
- my $tok_color = TokenizeInternal($color);
- (T_BEGIN, T_CS('\@omdoc@color'), T_BEGIN, $tok_color->unlist,
- T_END, T_CS('\@omdoc@color@content'), T_OTHER('['), $tok_color->unlist, T_OTHER(']'),
- T_BEGIN, $args[1]->unlist, T_END, T_END); }
-DefMacro('\@omdoc@color{}', sub { MergeFont(color=>$_[1]->toString); return; });#$
-DefConstructor('\@omdoc@color@content[]{}',
- "?#isMath(#2)(<ltx:text ?#1(style='color:#1')()>#2</ltx:text>)");
-foreach my $color(qw(black gray blue red green cyan magenta brown yellow orange)) {
- DefMacro("\\".$color.'{}', sub { omdocColorMacro($color, @_); }); }#$
-DefConstructor('\newpage','');
-Tag('omdoc:ignore',afterOpen=>\&numberIt,afterClose=>\&locateIt);
-Tag('omdoc:ref',afterOpen=>\&numberIt,afterClose=>\&locateIt);
-DefConstructor('\hateq',"\x{2259}");
-DefConstructor('\hatequiv',"\x{2A6F}");
-DefConstructor('\textleadsto',"\x{219D}");
-DefMacro('\baseURI []Semiverbatim', sub {
- if (LookupValue('SOURCEFILE')!~/^(\w+):\/\//) {
- my $baselocal = ToString(Expand($_[1]));
- $baselocal = abs_path($baselocal) unless $baselocal=~/^(\w+):\/\//;
- AssignValue('baselocal'=>$baselocal);
- AssignValue('baseuri'=>ToString(Expand($_[2])));}
- else {
- AssignValue('baselocal'=>undef);
- AssignValue('baseuri'=>ToString(Expand($_[2])));
- }});
-DefConstructor('\url Semiverbatim',"<omdoc:link href='#1'>#1</omdoc:link>");
-DefConstructor('\href Semiverbatim {}',"<omdoc:link href='#1'>#2</omdoc:link>");
-1;