\ProvidesFile{blogexec.tex}[2012/12/20 documenting blogexec.sty] \title{{\huge\pkg{blogexec.sty}}\\---\\Overcoming \pkg{blog.sty}'s Pure Expansion\thanks{This document describes version \textcolor{blue}{\UseVersionOf{\jobname.sty}} of \textsf{\jobname.sty} as of \UseDateOf{\jobname.sty}.}} % \listfiles { \RequirePackage{makedoc} \ProcessLineMessage{} %%% {\message{.}} \MakeJobDoc{17} {\SectionLevelThreeParseInput} } \documentclass[fleqn]{article}%% TODO paper dimensions!? \input{makedoc.cfg} %% shared formatting settings \usepackage{filesdo} \MDfinaldatechecks %% 2012/12/20 \providecommand*{\HTML}{\acro{HTML}} \ReadPackageInfos{blogexec} \sloppy \begin{document} \maketitle \begin{abstract}\noindent 'blog.sty' before v0.7 generated \HTML\ by pure macro expansion and could use \LaTeX\ macros (redefined) only to a very limited extent. On adding 'blogexec.sty', some macros (configurable) are ``intercepted" before expansion in a 'blog' run for ``running" some code, basically `\begin', `\end', and a new general `\EXECUTE'. A table environment with active characters inside only is provided---perhaps ``nicer than \LaTeX." \end{abstract} \tableofcontents % \newpage \section{Features and Usage} % \subsection{Installing and Calling} The file 'blogexec.sty' is provided ready, installation only requires putting it somewhere where \TeX\ finds it (which may need updating the filename data base).\urlfoot{ukfaqref}{inst-wlcf} %% corr. 2011/02/08 'blogexec.sty' may be loaded by \begin{verbatim} \RequirePackage{blogexec} \end{verbatim} in a driver file for 'blog.sty'. \strong{Alternatively}, the following commands in a 'blog' driver file (in a certain way even in a \emph{source} file) load 'blogexec.sty' and then are carried out according to their definitions in 'blogexec': \begin{description} \cmdboxitem|\BlogInterceptExecute| \ intercepts |\EXECUTE| only. \cmdboxitem|\BlogInterceptEnvironments| \ intercepts |\EXECUTE|, |\begin|, and |\end| only; the latter two then work much as with \LaTeX. They expand to \HTML\ code as with 'blog'; `\begin{}' additionally executes commands according to an (optional) \[|\MakeBlogBeginRun{}{}|.\] \cmdboxitem|\BlogInterceptExtra| \ intercepts all the commands in certain lists (using the \ctanpkgref{dowith} package), including `\EXECUTE', `\begin', `\end'. E.g., \[|\MakeBlogOneArgInterception{}{}{}|\] adds to such a list and tells that should be carried out and that should be replaced by in a line containing (not hidden in braces, and there better should not be much more in the line). \cmdboxitem|\BlogInterceptHash| \ does \emph{not} choose an \strong{``interception level"} as the previous commands do, but may be necessary for allowing parameters in macro definitions to be run in the course of an interception. It is automatically (``implicitly") envoked by the star forms of the above commands, i.e., by either of \begin{itemize} \item |\BlogInterceptExecute*| \item |\BlogInterceptEnvironments*| \item |\BlogInterceptExtra*| \end{itemize} \end{description} The reader may find additional details in the following sections near the code implementing the commands. 'blogexec.sty' also modifies 'blog.sty''s (v0.7) |{stdallrulestable}| environment as follows: \begin{itemize} \item[\InlineCmdBox{\texttt{&|}}] The vertical stroke becomes an active character that closes a table cell and opens another one (being an alias for 'blog.sty''s v0.7 `\endcell')---just as |&| does it with \TeX/\LaTeX. \cmdboxitem|&| The ampersand becomes an active character that---\strong{differently to \TeX\slash\LaTeX}---as an alias for 'blog.sty''s |\figurespace| produces the Unicode figure space for alignment of figures. \end{itemize} \emph{Outside} the `{stdallrules}' environment, both characters have their ``usual" meaning, i.e., |&| may be used for accessing \HTML\ entities (as 'blog.sty' allows it). |\cr| (and |\endline|, provided by 'blog.sty' v0.7) ends a table row and starts a new one. |\\| is not touched---a \strong{difference to \LaTeX} and may still be used for breaking a line within a table cell. % \section{Example} % \pagebreak % \section{Implementation} \section{Package File Header (Legalize)} \input{blogexec.doc} \end{document} VERSION HISTORY 2011/11/04 for v0.1 very first 2011/11/09f. something more 2011/11/20 star forms 2012/12/20 for v0.21 date checks