diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls.ltxml')
-rw-r--r-- | Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls.ltxml | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls.ltxml b/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls.ltxml new file mode 100644 index 00000000000..a8870d52036 --- /dev/null +++ b/Master/texmf-dist/tex/latex/stex/mikoslides/mikoslides.cls.ltxml @@ -0,0 +1,96 @@ +# -*- CPERL -*- +package LaTeXML::Package::Pool; +use strict; +use LaTeXML::Package; +RawTeX('\newif\ifnotes\notesfalse'); +RawTeX('\newif\ifproblems\problemsfalse'); +LoadClass('omdoc'); +RequirePackage('stex'); +RequirePackage('latexml'); +RequirePackage('amssymb'); +RequirePackage('graphicx'); +RequirePackage('tikz'); +RequirePackage('amsmath'); +DefRegister('\slidewidth' => Dimension('13.5cm')); +DefRegister('\slideheight' => Dimension('9cm')); +DefEnvironment('{note}','#body'); +DefEnvironment('{frame}[]', + "<omdoc:omgroup layout='slide' ?#locator(stex:srcref='#locator')()>" + . "#body\n" + ."</omdoc:omgroup>\n\n", + afterDigestBegin=>sub { + $_[1]->setProperty(theory=>LookupValue('current_module')); }); +DefConstructor('\frametitle{}', + "\n<omdoc:metadata ?#locator(stex:srcref='#locator')()><dc:title>#1</dc:title></omdoc:metadata>"); +DefEnvironment('{problems}','#body'); +#DefMacro('\defemph{}','{\textcolor{magenta}{#1}}'); +#DefMacro('\notemph{}','{\textcolor{magenta}{#1}}'); +DefMacro('\textwarning',""); +DefEnvironment('{titleslide}',""); +DefEnvironment('{titleslide}',"<omdoc:omgroup ?#locator(stex:srcref='#locator')()>#body</omdoc:omgroup>"); +DefEnvironment('{ttitle}', "\n<Title>#body</Title>"); +DefConstructor('\hateq',"=\x{03C2}"); +DefConstructor('\textleadsto',"=\x{219D}"); +DefEnvironment('{columns}','#body'); +DefEnvironment('{column}{}','#body'); +DefConstructor('\uncover','#1'); +#Define a Beamer Overlay Parameter type + DefParameterType('BeamerOverlay', sub { + my ($gullet) = @_; + my $tok = $gullet->readXToken; + if (ref $tok && ToString($tok) eq '<') { + $gullet->readUntil(T_OTHER('>')); + } else { + $gullet->unread($tok) if ref $tok; + undef; }}, + reversion=> sub { + (T_OTHER('<'), $_[0]->revert, T_OTHER('>')); + }); + +#Take the "from" field of the overlay range +sub overlayFrom { + return "" unless defined $_[0]; + my $overlay=ToString($_[0]); $overlay =~ /^(\d+)/; $1;} + +#Reuse the CMP itemizations, only adjust the \item constructors. +DefMacro('\beamer@group@item[] OptionalBeamerOverlay IfBeginFollows', sub { + my($gullet,$tag,$overlay,$needwrapper)=@_; + $overlay=$overlay||T_OTHER(""); + ( T_CS('\group@item@maybe@unwrap'), + ($needwrapper ? (Invocation(T_CS('\beamer@group@item@wrap'),$tag,$overlay)->unlist) : ()) ); }); +DefConstructor('\beamer@group@item@wrap {} OptionalBeamerOverlay', + "<omdoc:omtext ?#locator(stex:srcref='#locator')() ?#2(overlay='&overlayFrom(#2)')()>" + . "?#1(<dc:title>#1</dc:title>)()" + . "<omdoc:CMP ?#locator(stex:srcref='#locator')()><omdoc:p ?#locator(stex:srcref='#locator')()>", + beforeDigest=>sub { + Let('\group@item@maybe@unwrap','\group@item@unwrap'); + #$_[0]->bgroup; + useCMPItemizations(); + return; }, + properties=>sub{ RefStepItemCounter(); }); + +DefConstructor('\beamer@itemize@item[] OptionalBeamerOverlay', + "<omdoc:li ?#locator(stex:srcref='#locator')() ?#2(overlay='&overlayFrom(#2)')() >" + . "?#1(<dc:title ?#locator(stex:srcref='#locator')()>#1</dc:title>)()", + properties=>sub{ RefStepItemCounter(); }); +DefConstructor('\beamer@enumerate@item[] OptionalBeamerOverlay', + "<omdoc:li ?#locator(stex:srcref='#locator')() ?#2(overlay='&overlayFrom(#2)')() >" + . "?#1(<dc:title ?#locator(stex:srcref='#locator')()>#1</dc:title>)()", + properties=>sub{ RefStepItemCounter(); }); +DefConstructor('\beamer@description@item[] OptionalBeamerOverlay', + "<omdoc:di ?#locator(stex:srcref='#locator')() ?#2(overlay='&overlayFrom(#2)')() >" + . "?#1(<omdoc:dt ?#locator(stex:srcref='#locator')()>#1</omdoc:dt>)()<omdoc:dd>", # trust di and dt to autoclose + properties=>sub{ RefStepItemCounter(); }); + +#We ALWAYS use the beamer itemizations for the slides: +Let('\CMP@itemize@item'=>'\beamer@itemize@item'); +Let('\CMP@enumerate@item'=> '\beamer@enumerate@item'); +Let('\CMP@description@item'=> '\beamer@description@item'); +Let('\group@item' =>'\beamer@group@item'); +Let('\itemize@item'=>'\beamer@group@item'); +Let('\enumerate@item'=>'\beamer@group@item'); +Let('\description@item'=>'\beamer@group@item'); +Let('\only'=>'\beamer@group@item'); +DefMacro('\putgraphicsat{}{}{}','\mygraphics[#2]{#3}'); +DefMacro('\putat{}{}','#2'); +1; |