diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx | 576 |
1 files changed, 576 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx b/Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx new file mode 100644 index 00000000000..0384b64b182 --- /dev/null +++ b/Master/texmf-dist/source/latex/stex/mikoslides/mikoslides.dtx @@ -0,0 +1,576 @@ +% \iffalse meta-comment +% A LaTeX Class for Jacobs University Slides +% Copyright (c) 2007 Michael Kohlhase, all rights reserved +% this file is released under the +% Gnu Library Public Licences (LGPL) +% +% The development version of this file can be found at +% https://svn.kwarc.info/repos/kwarc/projects/stex/sty/mikoslides.dtx +% \fi +% +% \iffalse +%<cls>\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%<cls>\ProvidesClass{mikoslides}[2012/01/28 v0.9 Jacobs slides] +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{url,array,float} +\usepackage[show]{ed} +\usepackage{graphicx} +\usepackage[hyperref=auto,style=alphabetic]{biblatex} +\bibliography{kwarc} +\makeindex +\floatstyle{boxed} +\newfloat{exfig}{thp}{lop} +\floatname{exfig}{Example} +\def\tracissue#1{\cite{sTeX:online}, + \hyperlink{http://trac.kwarc.info/sTeX/ticket/#1}{issue #1}} +\usepackage{hyperref} +\begin{document}\DocInput{mikoslides.dtx}\end{document} +%</driver> +% \fi +% +% \CheckSum{364} +% +% \changes{v0.1}{2005/12/06}{Initial Version} +% \changes{v0.2}{2006/01/11}{course notes back on seminar} +% \changes{v0.3}{2007/05/16}{changing to jacobs logo} +% \changes{v0.4}{2007/10/16}{re-basing the whole thing on beamer} +% \changes{v0.4}{2008/09/06}{moving line-end-comment to \texttt{omdoc.dtx}} +% \changes{v0.5}{2009/06/17}{eliminating mytwocolumns, this is better done by \texttt{beamer.cls}} +% \changes{v0.9}{2010/06/18}{this is almost done} +% +% \GetFileInfo{mikoslides.cls} +% \MakeShortVerb{\|} +% +% \def\twin#1#2{\index{#1!#2}\index{#2!#1}} +% \def\twintoo#1#2{{#1 #2}\twin{#1}{#2}} +% \def\atwin#1#2#3{\index{#1!#2!#3}\index{#3!#2 (#1)}} +% \def\atwintoo#1#2#3{{#1 #2 #3}\atwin{#1}{#2}{#3}} +% +%\def\scsys#1{{{\sc #1}}\index{#1@{\sc #1}}} +% \def\stex{\hbox{\raisebox{-.5ex}S\kern-.5ex\TeX}} +% \def\sTeX{\stex} +% \def\cnxml{\scshape{CNXml}} +% \def\connexions{\scshape{Connexions}} +% \def\element#1{{\ttfamily{#1}}} +% \def\snippet#1{{\ttfamily{#1}}} +% \def\cnxlatex{CNX\LaTeX} +% \def\mathml{{\scshape{MathML}}} +% \def\latexml{\hbox{{\LaTeX}ML}} +% \def\omdoc{OMDoc} +% \def\activemath{{\scshape{ActiveMath}}} +% +% \title{Slides and Course Notes for Jacobs University\thanks{Version {\fileversion} +% (last revised {\filedate})}} +% \author{Michael Kohlhase\\ +% Jacobs University, Bremen\\ +% \url{http://kwarc.info/kohlhase}} +% \maketitle +% +% \begin{abstract} +% We present a document class from which we can generate both course slides and course +% notes in a transparent way. Furthermore, we present a set of {\latexml} bindings for +% these, so that we can also generate {\omdoc}-based course materials, e.g. for +% inclusion in the {\activemath} system. +% \end{abstract} +% \tableofcontents\newpage +%\section{Introduction} +% This Document class is derived from |beamer.cls|, specializes it with Jacobs stuff and +% adds a notes version that is more suited to printing than the one supplied by +% |beamer.cls|. +% +%\section{The User Interface}\label{sec:user} +% +% \subsection{Package Options}\label{sec:user:options} +% +% The |mikoslides| class takes a variety of class options:\ednote{leaving out noproblems +% for the momeent until we decide what to do with it.} +% \begin{compactitem} +% \item q\DescribeMacro{showmeta}|showmeta|. If this is set, then the metadata keys are shown +% (see~\cite{Kohlhase:metakeys:ctan} for details and customization options). +% \item The options \DescribeMacro{slides}|slides|\DescribeMacro and {notes}|notes| switch +% between slides mode and notes mode (see Section~\ref{sec:user:notesslides}). +% \item If the option \DescribeMacro{sectocframes}|sectocframes| is given, then special +% frames with section table of contents are producedheaders \ednote{document the functionality} +% \end{compactitem} +% +% \subsection{Notes and Slides}\label{sec:user:notesslides} +% +% \subsection{Header and Footer Lines}\label{sec:user:headfootlines} +% +% \subsection{Colors and Highlighting}\label{sec:user:highlighting} +% The \DescribeMacro{\textwarning}|\textwarning| macro generates a warning sign: \includegraphics[width=1.2em]{dangerous-bend} +% \subsection{Front Matter, Titles, etc}\label{sec:user:matter} +% +% \subsection{Miscellaneous}\label{sec:user:misc} +% +% \section{Limitations}\label{sec:limitations} +% +% In this section we document known limitations. If you want to help alleviate them, +% please feel free to contact the package author. Some of them are currently discussed in +% the \sTeX TRAC~\cite{sTeX:online}. +% \begin{compactenum} +% \item the class should be divided into concerns. \tracissue{1684} +% \end{compactenum} +% +% \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography} +% +%\section{The Implementation}\label{sec:impl} +% +% The |mikoslides| package generates two files: the {\LaTeX} package (all the code between +% {\textsf{$\langle$*package$\rangle$}} and {\textsf{$\langle$/package$\rangle$}}) and the +% {\latexml} bindings (between {\textsf{$\langle$*ltxml$\rangle$ and +% $\langle$/ltxml$\rangle$}}). We keep the corresponding code fragments together, +% since the documentation applies to both of them and to prevent them from getting out of +% sync. +% +%\subsection{Initialization and Class Options}\label{sec:impl:init} +% +% For the {\latexml} bindings, we make sure the right perl packages are loaded. +% +% \begin{macrocode} +%<*ltxml> +# -*- CPERL -*- +package LaTeXML::Package::Pool; +use strict; +use LaTeXML::Package; +%</ltxml> +% \end{macrocode} +% +% For {\LaTeX} we define some Package Options and switches for the |mikoslides| class and activate +% them by passing them on to |beamer.cls| the appropriate packages. +% +% \begin{macrocode} +%<*cls> +\DeclareOption{showmeta}{\PassOptionsToPackage{\CurrentOption}{metakeys}} +\newif\ifnotes\notesfalse +\newif\ifsectocframes\sectocframesfalse +\newif\ifproblems\problemstrue +\DeclareOption{notes}{\notestrue} +\DeclareOption{slides}{\notesfalse} +\DeclareOption{noproblems}{\problemsfalse} +\DeclareOption{sectocframes}{\sectocframestrue} +\ifnotes +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{omdoc}} +\else +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{beamer}} +\fi +\ProcessOptions +%</cls> +%<*ltxml> +RawTeX('\newif\ifnotes\notesfalse'); +RawTeX('\newif\ifproblems\problemsfalse'); +%</ltxml> +% \end{macrocode} +% +% Depending on the options, we either load the |article|-based |omdoc| or the |beamer| class. In the first +% case, we also have to make the |beamer|-specific things available to |article| via the +% |beamerarticle| package. We use options to avoid loading theorem-like environments, +% since we want to use our own from the $\sTeX$ packages. +% \begin{macrocode} +%<*cls> +\ifnotes +\LoadClass{omdoc} +\RequirePackage{a4wide} +\RequirePackage{marginnote} +\RequirePackage[notheorems,noamsthm]{beamerarticle} +\else +\LoadClass[notheorems,noamsthm,10pt]{beamer} +\newcounter{Item} +\newcounter{paragraph} +\newcounter{subparagraph} +\newcounter{Hfootnote} +\usetheme{Jacobs} +\fi +%</cls> +%<*ltxml> +LoadClass('omdoc'); +DefConstructor('\usetheme{}',''); +%</ltxml> +% \end{macrocode} +% +% now, we load the remaining packages for both versions. \ednote{MK: eventually (when tikz +% support is fully realized in \latexml) get rid of the standalone package} +% +% \begin{macrocode} +%<*cls> +\RequirePackage{stex} +\RequirePackage{latexml} +\RequirePackage{amssymb} +\RequirePackage{tikz} +\usepgflibrary{shapes}\usetikzlibrary{arrows} +\RequirePackage{url} +\RequirePackage{amsmath} +\RequirePackage{comment} +\RequirePackage{standalone} +%</cls> +%<*ltxml> +RequirePackage('stex'); +RequirePackage('latexml'); +RequirePackage('amssymb'); +RequirePackage('graphicx'); +RequirePackage('tikz'); +RequirePackage('amsmath'); +%</ltxml> +% \end{macrocode} +% +% \subsection{Notes and Slides}\label{sec:impl:noteslides} +% +% We define the sizes of slides in the notes. Somehow, we cannot get by with the same +% here. +% +% \begin{macrocode} +%<*cls> +\newcounter{slide} +\newlength{\slidewidth}\setlength{\slidewidth}{13.5cm} +\newlength{\slideheight}\setlength{\slideheight}{9cm} +%</cls> +%<*ltxml> +DefRegister('\slidewidth' => Dimension('13.5cm')); +DefRegister('\slideheight' => Dimension('9cm')); +%</ltxml> +% \end{macrocode} +% +% For course notes, we define the |note| environment to be a no-operation otherwise we declare the |note| environment as +% a comment via the |comment| package. +% +% \begin{environment}{note} +% \begin{macrocode} +%<*cls> +\ifnotes\renewenvironment{note}{}{}\else\excludecomment{note}\fi +%</cls> +%<*ltxml> +DefEnvironment('{note}','#body'); +%</ltxml> +% \end{macrocode} +% \end{environment} +% +% +% the next step is to set up the slide boxes in |article| mode. We set up sizes and +% provide a box register for the frames and a counter for the slides. +% +% \begin{macrocode} +%<*cls> +\ifnotes +\newlength{\slideframewidth}\setlength{\slideframewidth}{2pt} +\newsavebox{\myframebox} +%</cls> +% \end{macrocode} +% +% \begin{environment}{frame} +% For the |frame| environment we construct a |lrbox| in the |\myframebox| register that +% we can later put into an |\fbox| so that it looks like a slide. Furthermore, we +% redefine the |itenize| environment so that it looks more like the one in |beamer| with +% |Jacobs| theme. +% \begin{macrocode} +%<*cls> +\renewenvironment{frame}[1][]% +{\stepcounter{slide} +\def\itemize@level{outer} +\def\itemize@outer{outer} +\def\itemize@inner{inner} +\renewcommand\metakeys@show@keys[2]{\marginnote{{\scriptsize ##2}}} +\renewenvironment{itemize} +{\ifx\itemize@level\itemize@outer\def\itemize@label{$\rhd$}\fi + \ifx\itemize@level\itemize@inner\def\itemize@label{$\scriptstyle\rhd$}\fi + \begin{list} + {\itemize@label} + {\setlength{\labelsep}{.3em}\setlength{\labelwidth}{.5em}\setlength{\leftmargin}{1.5em}} + \edef\itemize@level{\itemize@inner}} +{\end{list}} + \noindent\hfill\begin{lrbox}{\myframebox} + \begin{minipage}{\slidewidth}\sf}% + {\miko@slidelabel\end{minipage}\end{lrbox}% + \begin{center}\fbox{\usebox\myframebox}\end{center}\hfill} +%</cls> +%<*ltxml> +DefEnvironment('{frame}[]', + "<omdoc:omgroup layout='slide'>" + . "#body\n" + ."</omdoc:omgroup>\n\n", + afterDigestBegin=>sub { + $_[1]->setProperty(theory=>LookupValue('current_module')); }); +%</ltxml>#$ +% \end{macrocode} +% \end{environment} +% +% the next step is to set up the slide boxes in |article| mode. +% +% \begin{macrocode} +%<*cls> +\renewcommand{\frametitle}[1]{{\Large\bf\sf\color{blue}{#1}}} +\fi +\makeindex +%</cls> +%<*ltxml> +DefConstructor('\frametitle{}', + "\n<omdoc:metadata><dc:title>#1</dc:title></omdoc:metadata>"); +%</ltxml> +% \end{macrocode} +% +% We start by giving the {\latexml} binding for the |frame| environment from the |beamer| +% class. The |note| environment is used to blend out text in the |slides| mode. It does +% not have a counterpart in OMDoc. +% +% \begin{macrocode} +%<*cls> +\ifproblems\newenvironment{problems}{}{}\else\excludecomment{problems}\fi +%</cls> +%<*ltxml> +DefEnvironment('{problems}','#body'); +%</ltxml> +% \end{macrocode} +%\ednote{subtitle is difficult to model in DC metadata. I guess that we want to collect +%the subtitle into dc:title} +% +% \subsection{Header and Footer Lines}\label{sec:impl:headfootlines} +% +% Now, we set up the infrastructure for the footer line of the slides, we use boxes for +% the logos, so that they are only loaded once, that considerably speeds up processing. +% \begin{macrocode} +%<*cls> +\newlength{\slidelogoheight} +\ifnotes\setlength{\slidelogoheight}{.4cm}\else\setlength{\slidelogoheight}{1cm}\fi +\newsavebox{\slidelogo}\sbox{\slidelogo}{\includegraphics[height=\slidelogoheight]{jacobs-logo}} +% \end{macrocode} +% +% Now, we set up the copyright and licensing, the copyright remains with the author, but +% we use the Creative Commons Attribuition-ShareAlike license to strengthen den public +% domain. Here the problem is that we want a hyperref on the CC logo, if hyperref is +% loaded, and otherwise not. As hyperref is always loaded, we have to find out at the +% beginning of the document whether it is, set up a switch, and later in the footer line +% decide what to do. +% +% \begin{macrocode} +\def\source{Michael Kohlhase}% customize locally +\def\copyrightnotice{\footnotesize\copyright:\hspace{.3ex}{\source}} +\newsavebox{\cclogo}\sbox{\cclogo}{\includegraphics[height=\slidelogoheight]{cc_somerights}} +\newif\ifcchref\cchreffalse +\AtBeginDocument{\@ifpackageloaded{hyperref}{\cchreftrue}{\cchreffalse}} +\def\licensing{\ifcchref\href{http://creativecommons.org/licenses/by-sa/2.5/}{\usebox{\cclogo}}\else{\usebox{\cclogo}}\fi} +% \end{macrocode} +% +% Now, we set up the slide label for the |article| mode\ednote{see that we can use the +% themes for the slides some day. This is all fake.} +% +% \begin{macro}{\slidelabel} +% \begin{macrocode} +\newcommand{\miko@slidelabel}% +{\vbox to \slidelogoheight{\vss\hbox to \slidewidth% +{\licensing\hfill\copyrightnotice\hfill\arabic{slide}\hfill\usebox{\slidelogo}}}} +%</cls> +% \end{macrocode} +% \end{macro} +% +% \subsection{Colors and Highlighting}\label{sec:impl:highlighting} +% +% Now, we set up an infrastructure for highlighting phrases in slides. Note that we use +% content-oriented macros for highlighting rather than directly using color markup. +% The first thing to to is to adapt the green so that it is dark enough for most beamers +% \begin{macrocode} +%<*cls> +\AtBeginDocument{\definecolor{green}{rgb}{0,.5,0}\definecolor{purple}{cmyk}{.3,1,0,.17}} +% \end{macrocode} +% +% We customize the |\defemph|, |\notemph|, and |\stDMemph| macros with colors for the use +% in the |statements| package. Furthermore we customize the |\@@lec| macro for the +% appearance of line end comments in |\lec|. +% +% \begin{macrocode} +% \def\STpresent#1{\textcolor{blue}{#1}} +\def\defemph#1{{\textcolor{magenta}{#1}}} +\def\notemph#1{{\textcolor{magenta}{#1}}} +\def\stDMemph#1{{\textcolor{blue}{#1}}} +\def\@@lec#1{(\textcolor{green}{#1})} +%</cls> +%<*ltxml> +#DefMacro('\defemph{}','{\textcolor{magenta}{#1}}'); +#DefMacro('\notemph{}','{\textcolor{magenta}{#1}}'); +%</ltxml> +% \end{macrocode} +% +% I like to use the dangerous bend symbol for warnings, so we provide it here. +% \begin{macro}{\textwarigrening} +% as the macro can be used quite often we put it into a box register, so that it is only +% loaded once. +% \begin{macrocode} +%<*cls> +\pgfdeclareimage[width=1.5em]{miko@dbend}{dangerous-bend} +\def\textwarning{\raisebox{-.05cm}{\pgfuseimage{miko@dbend}}\xspace} +%</cls>b +%<*ltxml> +DefMacro('\textwarning',""); +%</ltxml> +% \end{macrocode} +% \end{macro} +% +% \subsection{Front Matter, Titles, etc} +% +% We need to redefine the frontmatter macros inherited from the |beamer| class, since +% there they take an optional argument. +% \begin{macrocode} +%<*ltxml> +DefMacro('\title[]{}', '\@add@frontmatter{ltx:title}{#1}'); +DefMacro('\date[]{}', '\@add@frontmatter{ltx:date}[role=creation]{#1}'); +DefMacro('\author[]{}', sub { andSplit(T_CS('\@author'),$_[1]); });#$ +% \end{macrocode} +%</ltxml> +% +% Now, we specialize the slide environment that we have implemented above or inherited +% from |seminar.cls| for some abbreviations, e.g. separator slides and title slides. +% \begin{macrocode} +%<*cls> +\newcommand\titleframe{\begin{frame}\titlepage\end{frame}} +\newenvironment{titleframewith}{\begin{frame}\titlepage}{\end{frame}} +\newenvironment{ttitle}{\begin{center}\LARGE\begin{tabular}{|c|}\hline}% + {\\\hline\end{tabular}\end{center}\vspace{1ex minus 1ex}} +\newenvironment{ttitlejoint}[1]% +{\newbox\boxwith\setbox\boxwith\hbox{\begin{tabular}{c}{\em joint work with}\\#1\end{tabular}}% +\begin{center}\LARGE\begin{tabular}{c}\color{red}}% +{\\\box\boxwith\end{tabular}\end{center}% +\vspace{1ex minus 1ex}} +%</cls> +%<*ltxml> +DefConstructor('\titleframe',"<omdoc:ignore>titleframe elided here</omdoc:ignore>"); +DefEnvironment('{titleframewith}', + "<omdoc:ignore>begin elided titleframe</omdoc:ignore>" + . "#body" + ."<omdoc:ignore>end elided titleframe</omdoc:ignore>"); +DefEnvironment('{titleslide}',""); +DefEnvironment('{titleslide}',"<omdoc:omgroup>#body</omdoc:omgroup>"); +DefEnvironment('{ttitle}', "\n<dc:title>#body</dc:title>"); +%</ltxml> +% \end{macrocode} +% +% \begin{macrocode} +% Must be first command on slide to make positioning work. +%<*cls> +\newcommand{\putgraphicsat}[3]{% + \begin{picture}(0,0)\put(#1){\includegraphics[#2]{#3}}\end{picture}} +\newcommand{\putat}[2]{\begin{picture}(0,0)\put(#1){#2}\end{picture}} +%</cls> +%<*ltxml> +%</ltxml> +% \end{macrocode} +% \begin{macrocode} +%<*cls> +\ifsectocframes +%\AtBeginChapter[]{\begin{frame}<beamer>\frametitle{Chapter Outline}\tableofcontents[currentsection]\end{frame}} +%\AtBeginSection[]{\begin{frame}<beamer>\frametitle{Section Outline}\tableofcontents[currentsection]\end{frame}} +%\AtBeginSubsection[]{\begin{frame}<beamer>\frametitle{Subsection Outline}\tableofcontents[currentsubsection]\end{frame}} +%\AtBeginSubsubsection[]{\begin{frame}<beamer>\frametitle{Subsubsection Outline}\tableofcontents[currentsubsubsection]\end{frame}} +\def\at@begin@omgroup#1{\message{atbeginomgroup}\begin{frame}<beamer>\frametitle{Outline}\tableofcontents[section]\end{frame}} +\fi +%</cls> +% +% \subsection{Miscellaneous} +% +% the following macro is only to work around problems in the |tikz| support in \latexml. +% \begin{macrocode} +%<*cls> +\newcommand\tikzinput[2][]{\input{#2}} +%</cls> +%<*ltxml> +DefMacro('\tikzinput[] {}','\includegraphics[#1]{#2}'); +%</ltxml> +% \end{macrocode} + +% We need to disregard the columns macros introduced by the |beamer| class +% \begin{macrocode} +%<*ltxml> +DefEnvironment('{columns}','#body'); +DefEnvironment('{column}{}','#body'); +%</ltxml> +% \end{macrocode} +% +% We also need to deal with overlay specifications introduced by the |beamer| +% class.\ednote{this is just to keep latexml quiet, no real functionality here.} +% +% \ednote{Deyan: We reuse the CMP itemizations defined in the omdoc.cls.ltxml binding, +% adjusting the parameters to be overlay-sensitive } +% \begin{macrocode} +%<*ltxml> +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 ?#2(overlay='&overlayFrom(#2)')()>" + . "?#1(<dc:title>#1</dc:title>)()" + . "<omdoc:CMP>", + beforeDigest=>sub { + Let('\group@item@maybe@unwrap','\group@item@unwrap'); + #$_[0]->bgroup; +return; }, + properties=>sub{ RefStepItemCounter(); }); + + +#DefConstructor('\beamer@itemize@item[] OptionalBeamerOverlay', +# "<omdoc:li ?#2(overlay='&overlayFrom(#2)')() >" +# . "?#1(<dc:title>#1</dc:title>)()", +# properties=>sub{ RefStepItemCounter(); }); +DefConstructor('\beamer@enumerate@item[] OptionalBeamerOverlay', + "<omdoc:li ?#2(overlay='&overlayFrom(#2)')() >" + . "?#1(<dc:title>#1</dc:title>)()", + properties=>sub{ RefStepItemCounter(); }); +DefConstructor('\beamer@description@item[] OptionalBeamerOverlay', + "<omdoc:di ?#2(overlay='&overlayFrom(#2)')() >" + . "?#1(<omdoc:dt>#1</omdoc:dt>)()<omdoc:dd>", # trust di and dt to autoclose + properties=>sub{ RefStepItemCounter(); }); +%</ltxml>#$ +% \end{macrocode} +% Now, some things that are imported from the |pgf| and |beamer| packages: +% \begin{macrocode} +%<*ltxml> +DefMacro('\putgraphicsat{}{}{}','\mygraphics[#2]{#3}'); +DefMacro('\putat{}{}','#2'); +%</ltxml> +% \end{macrocode} +% +% \subsection{Finale} +% +% Finally, we set the slide body font to the sans serife, and we terminate the {\latexml} +% bindings file with a success mark for perl. +% \begin{macrocode} +%<cls>\ifnotes\else\sf\fi +%<ltxml>1; +% \end{macrocode} +% \Finale +\endinput + +% \iffalse +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: +% \fi + +% LocalWords: mikoslides dtx beamer omdoc notheorems noamsthm beamerarticle +% LocalWords: graphicx slidelabel stex latexml amssymb tikz url CPERL amsmath +% LocalWords: LoadClass RequirePackage DefRegister DefEnvironment omgroup rgb +% LocalWords: afterDigestBegin setProperty LookupValue DefConstructor hyperref +% LocalWords: cmyk lec DefMacro titleslide ttitle RawTeX metadata etoolbox +% LocalWords: noproblems linkcolor bookmarksopen citecolor urlcolor colorlinks +% LocalWords: breaklinks plainpages pdfpagelabels srcref |