summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/morehype/use/blog.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/morehype/use/blog.sty')
-rw-r--r--macros/latex/contrib/morehype/use/blog.sty1609
1 files changed, 1609 insertions, 0 deletions
diff --git a/macros/latex/contrib/morehype/use/blog.sty b/macros/latex/contrib/morehype/use/blog.sty
new file mode 100644
index 0000000000..a93f3084a8
--- /dev/null
+++ b/macros/latex/contrib/morehype/use/blog.sty
@@ -0,0 +1,1609 @@
+\ProvidesPackage{blog}[2013/01/21 v0.81a simple fast HTML (UL)]
+%% copyright (C) 2010 2011 2012 2013 Uwe Lueck,
+%% http://www.contact-ednotes.sty.de.vu
+%% -- author-maintained in the sense of LPPL below.
+%%
+%% This file can be redistributed and/or modified under
+%% the terms of the LaTeX Project Public License; either
+%% version 1.3c of the License, or any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% We did our best to help you, but there is NO WARRANTY.
+%%
+%% Please report bugs, problems, and suggestions via
+%%
+%% http://www.contact-ednotes.sty.de.vu
+%%
+%% === \cs{newlet} === %% 2012/10/03
+%% |\newlet<cmd><cnd>| is also useful in surrounding files:
+\newcommand*{\newlet}[2]{\@ifdefinable#1{\let#1#2}}
+%%
+%% == Processing ==
+%% === Requirement ===
+%% We are building on the 'fifinddo' package
+%% (using `\protected@edef' for \secref{ligs}):
+\RequirePackage{fifinddo}[2011/11/21]
+%%
+%% === Output File Names ===
+%% |\htmakeext| is the extension of the generated file.
+%% Typically it should be `.html', as set here,
+%% but my Atari emulator needs `.htm'
+%% (see `texblog.fdf'):
+\newcommand*{\htmakeext}{.html}
+%%
+%% === General Insertions ===
+%% |\CLBrk| is a \emph{code line break}
+%% (also saving subsequent comment mark in macro definitions):
+\newcommand*{\CLBrk}{^^J}
+%% |\ | is turned into an alias for `\space',
+%% so it inserts a blank space. It even works at line ends,
+%% thanks to the choice of `\endlinechar' in \secref{catcodes}.
+\let\ \space
+%% %% v0.42:
+%% |\ProvidesFile{<file-name>.tex}[<file-info>]| \ is supported
+%% for use with the \CtanPkgRef{morehype}{myfilist}
+%% package %% TODO \urlpkgfoot!? 2011/02/22
+%% to get a list of source file infos.
+%% In generating the \HTML\ file, the file infos are transformed
+%% into an \HTML\ comment. Actually it is
+%% |\BlogProvidesFile| (for the time being, 2011/02/22):
+\@ifdefinable\BlogProvidesFile{%
+ \def\BlogProvidesFile#1[#2]{%
+ <!DOCTYPE html>\CLBrk %% TODO more!? 2012/09/06
+ \comment{ generated from\CLBrk\CLBrk
+ \ \ \ \ \ \ \ \ \ #1, #2,\CLBrk\CLBrk
+ \ \ \ \ \ with blog.sty,
+ \isotoday\ }}}
+\edef\isotoday{%% texblog 2011/11/02, here 2011/11/20
+ \the\year-\two@digits{\the\month}-\two@digits{\the\day}}
+%% %% changes 2011/02/24:
+%% (TODO: customizable style.)---Due to the limitations
+%% of the approach reading the source file
+%% line by line, the ``optional argument" `[<file-info>]'
+%% of `\ProvidesFile' must appear in the same line as
+%% the closing brace of its mandatory argument.
+%% The feature may require inserting
+%% \[`\let\ProvidesFile\BlogProvidesFile'\]
+%% somewhere, e.g., in `\BlogProcessFile'.
+%%
+%% === Category Codes etc. ===
+%% \label{sec:catcodes}
+%% For a while, line endings swallowed inter-word spaces,
+%% until I found the setting of `\endlinechar'
+%% ('fifinddo''s default is `-1')
+%% in |\BlogCodes|:
+\newcommand*{\BlogCodes}{% %% 2010/09/07
+ \endlinechar`\ %
+%% <- Comment character to get space rather than `^^M'!%%% 2011/11/08
+%% ---The tilde |~| is active as in Plain~TeX too, it is so natural to
+%% use it for abbreviating \HTML's `&nbsp;'! %% moved up 2011/11/08
+% \catcode`\~\active
+ \MakeActiveDef\~{&nbsp;}%% for \FDpseudoTilde 2012/01/07
+%% \qtd{&'} for \HTML\ convenience (cf. \secref{quotes}):
+ \MakeActiveLet\'\rq %% actcodes 2012/08/28
+ \BasicNormalCatCodes}
+% \MakeOther\< \MakeOther\> %% rm. 2011/11/20
+%%
+%% === The Processing Loop ===
+%% \[|\BlogProcessFile[<changes>]{<source-file>}|\]
+%% %% <- display 2011/11/06
+%% ``copies" the \TeX\ source file <source-file>
+%% into the file specified by `\ResultFile'.
+\newcommand*{\BlogProcessFile}[2][]{% %% 2011/11/05
+ \ProcessFileWith[\BlogCodes
+ \let\ProvidesFile\BlogProvidesFile %% 2011/02/24
+ \let\protect\@empty %% 2011/03/24
+ \let\@typeset@protect\@empty %% 2012/03/17
+ #1]{#2}{%
+ \IfFDinputEmpty
+ {\IfFDpreviousInputEmpty
+ \relax
+ {\WriteResult{\ifBlogAutoPars<p>\fi}}}%
+ \BlogProcessLine %% 2011/11/05
+ }%
+}
+%% 'fifinddo' v0.5 allows the following %% 2011/11/20
+%% \[|\BlogProcessFinalFile[<changes>]{<source-file>}|\]
+%% working just like `\BlogProcessFile' except that the final
+%% `\CloseResultFile' is issued automatically, no more need
+%% having it in the driver file.
+\newcommand*{\BlogProcessFinalFile}{%
+ \FinalInputFiletrue\BlogProcessFile}
+%% TODO: %% 2011/11/20
+%% optionally include `.css' code with \xmltagcode{style}.
+%% === \emph{Executing} Source File Code Optionally ===
+%% For v0.7, %% 2011/11/05
+%% `\BlogCopyFile' is renamed `\BlogProcessFile'; and in its code,
+%% `\CopyLine' is replaced by `\BlogProcessLine'. The purpose
+%% of this is supporting 'blogexec.sty' that allows intercepting
+%% certain commands in the line. We provide initial versions of
+%% 'blogexec''s switching commands that allow invoking 'blogexec'
+%% ``on the fly":
+\newcommand*{\ProvideBlogExec}{\RequirePackage{blogexec}}
+%% \CtanPkgRef{dowith}{dowith.sty} is used in the %% 2012/01/06
+%% present package to reduce package code and documentation space:
+\RequirePackage{dowith}
+\setdo{\providecommand*#1{\ProvideBlogExec#1}}
+\DoDoWithAllOf{\BlogInterceptExecute \BlogInterceptEnvironments
+ \BlogInterceptExtra \BlogInterceptHash }
+%% %% <- Hash 2011/11/08
+%% |\BlogCopyLines| switches to the ``copy only"
+%% (``compressing" empty lines) functionality of the original
+%% `\BlogCopyFile':
+\newcommand*{\BlogCopyLines}{%
+% \let\BlogProcessLine\CopyLine}
+ \def\BlogProcessLine{% %% 2011/11/21, corr. 2012/03/14:
+ \WriteResult{\ProcessInputWith\BlogOutputJob}}}
+%% <- This is a preliminary support for ``ligatures"---see
+%% \secref{ligs}. %%% --, not working inside braces.
+%% |\NoBlogLigs| sets the default to mere copying:
+\newcommand*{\NoBlogLigs}{\def\BlogOutputJob{LEAVE}}
+\NoBlogLigs
+%% TODO more from `texblog.fdf' here, problems with `writings.fdf',
+%% see its `makehtml.tex'
+%% %% 2011/11/06:
+%% % ... and this will be the setting with pure 'blog.sty':
+%%
+%% `\BlogCopyLines' %% 2011/11/21
+%% will be the setting with pure 'blog.sty':
+\BlogCopyLines
+%% OK, let's not remove |\BlogCopyFile| altogether, rebirth:
+\newcommand*{\BlogCopyFile}{\BlogCopyLines\BlogProcessFile}
+%%
+%% === ``Ligatures", Package Options ===
+%% \label{sec:ligs}
+%% With v0.7, we introduce a preliminary method to use the
+%% ``ligatures" `--' and `---' with pure expansion.
+%% At this occasion, we also can support the notation
+%% \code{\dots} for `\dots', as well as arrows
+%% (as in `mdoccorr.cfg'). Note that this is somewhat
+%% \strong{dangerous}, especially the source must not
+%% contain ``explicit" \HTML\ comment, comments must use
+%% 'blog.sty''s `\comment' or the `{commentlines}'
+%% environment. Therefore these ``ligatures" must be activated
+%% explicitly by |\UseBlogLigs|:
+\newcommand*{\UseBlogLigs}{\def\BlogOutputJob{BlogLIGs}}
+%% In order to work inside braces, the source file better should
+%% be preprocessed in ``plain text mode."
+%% (TODO: Use `\ifBlogLigs', and in a group use
+%% `\ResultFile' for an intermediate `\htmljob.lig'.
+%% And TODO: Use `\let\BlogOutputJob'.)
+%% On the other hand, the present approach allows switching
+%% while processing with `\EXECUTE'! Also, intercepted commands
+%% could apply the replacements on their arguments---using
+%% |\ParseLigs{<arg>}|: %% 2011/11/27
+\newcommand*{\ParseLigs}[1]{\ProcessStringWith{#1}{BlogLIGs}}
+%% (`\ProcessStringWith' is from 'fifinddo'.)---The package
+%% 'blogligs.sty' described in \secref{moreligs} does these
+%% things in a more powerful way. You can load it by calling
+%% 'blog.sty''s package option |[ligs]| (v0.8):
+\DeclareOption{ligs}{\AtEndOfPackage{\RequirePackage{blogligs}}}
+%%
+%% The replacement chain follows (TODO move to `.cfg').
+%% As opposed to the file `mdoccorr.cfg' for 'makedoc.sty',
+%% we are dealing with ``normal \TeX" code
+%% (regarding category codes, 'fifinddo.sty'
+%% as of 2011/11/21 is needed for `\protect').
+%% Moreover, space tokens after patterns are already there
+%% and need not be inserted after control sequences.
+\FDpseudoTilde
+\StartPrependingChain
+\PrependExpandableAllReplacer{blog...}{...}{\protect\dots}
+\PrependExpandableAllReplacer{blog--}{--}{\protect\endash}
+\PrependExpandableAllReplacer{blog---}{---}{\protect\emdash}
+%% <- Cf. thin surrounding spaces with
+%% `\enpardash' ('texblog', maybe \meta{hair space} U+200A
+%% instead of thin space), difficult at code line beginnings
+%% or endings and when a paragraph starts with an emdash.
+%% I.e., perhaps better don't use it if you want to have
+%% such spaces.---\qtd{`---'} must be replaced before \qtd{`--'}!
+\PrependExpandableAllReplacer{blog->}{->}{\protect\to}
+\PrependExpandableAllReplacer{blog<-}{<-}{\protect\gets}
+%% You also could set `\BlogOutputJob' to a later part of the chain,
+%% or more globally change the following:
+\CopyFDconditionFromTo{blog<-}{BlogLIGs}
+%% % TODO: Seems to slow down processing by a major part of a second.
+%% % Reduce replacements? Maybe do all of this within source file!?
+%% The package 'markblog.sty' described in \secref{mark} extends this
+%% to some markup resembling \Wikiref{wiki} editing.
+%% This package may be loaded by 'blog.sty''s package option |[mark]|
+%% (v0.8):
+\DeclareOption{mark}{\AtEndOfPackage{\RequirePackage{markblog}}}
+%%
+%% === \xmltagcode{p} from Empty Line, Package Option ===
+%% \label{sec:autopars}
+%% As in \TeX\ an empty line starts a new paragraph,
+%% we might ``interpret" an empty source line as
+%% \HTML\ tag \xmltagcode{p} for starting a new paragraph.
+%% Empty source lines following some first empty source
+%% line immediately are ignored
+%% (``compression" of empty lines).
+%% However, this sometimes has unwanted effects
+%% (comment lines TODO), %% 2011/11/20
+%% so it must be required explicitly by |\BlogAutoPars|,
+%% or by calling the package with option |[autopars]|.
+%% In the latter case, it can be turned off by
+%% |\noBlogAutoPars|
+\newif\ifBlogAutoPars
+\newcommand*{\BlogAutoPars}{\BlogAutoParstrue}
+\newcommand*{\noBlogAutoPars}{\BlogAutoParsfalse}
+%% `\BlogAutoPars' is issued by package option %% 2011/11/20
+%% |[autopars]|:
+\DeclareOption{autopars}{\BlogAutoPars}
+\ProcessOptions
+%% See \secref{p-br} for other ways of breaking paragraphs.
+%%
+%% == General \HTML\ Matters ==
+%% The following stuff is required for any web page
+%% (or hardly evitable).
+%% === General Tagging ===
+%% %% $$ -> \[ ... 2011/10/10 el-name -> elt-name 2012/09/14:
+%% \[|\TagSurr{<elt-name>}{<attr>}{<content>}|\]
+%% (I hoped this way code would be more readable
+%% than with `\TagSurround' ...)
+%% and \[|\SimpleTagSurr{<elt-name>}{<content>}|\]
+%% are used to avoid repeating element names <elt-name> in
+%% definitions of \TeX\ macros that refer to ``entire"
+%% elements---as opposed to elements whose content often
+%% spans lines (as readable \HTML\ code).
+%% We will handle the latter kind of elements
+%% using \LaTeX's idea of ``environments."
+%% `\TagSurr' also inserts specifications of element
+%% \textbf{attributes},
+%% [TODO: 'wiki.sty' syntax would be so nice here]
+%% while `\SimpleTagSurr' is for elements used without
+%% specifying attributes. |\STS| is an abbreviation for
+%% `\SimpleTagSurr' that is useful as the `\SimpleTagSurr'
+%% function occurs so frequently:
+\newcommand*{\SimpleTagSurr}[2]{<#1>#2</#1>}
+\newlet\STS\SimpleTagSurr %% 2010/05/23
+%% %% 2012/09/08:
+%% With the space in `\declareHTMLattrib' as of 2012/08/28,
+%% we remove the space between #1 and #2.
+%% (Doing this by an option may be better TODO;
+%% any separate attribute definitions must take care of this.)
+% \newcommand*{\TagSurr}[3]{<#1#2>#3</#1>}
+%% ... undone 2012/11/16, bad with ``direct" use of #2
+%% (with attributes not declared):
+\newcommand*{\TagSurr}[3]{<#1 #2>#3</#1>}
+%%
+%% === Attributes === %%% (General) %%%
+%% Inspired by the common way to use `@' for referring
+%% to element attributes---i.e., `@<attr>' refers to attribute
+%% `<attr>'---in \HTML/\acro{XML} documentation, we often use
+%% \[`\@<attr>{<value>}' \qquad
+%% \mbox{to ``abbreviate"}\qquad `<attr>="<value>"'\]
+%% within the starting tag of an \HTML\ element.
+%% This does not really
+%% make typing easier or improve readability,
+%% it rather saves \TeX's memory by using a single token
+%% for referring to an attribute.
+%% This ``abbreviation" is declared by
+%% |\declareHTMLattrib{<attr>}|, even with a check
+%% whether `\@<attr>' has been defined before:
+\newcommand*{\declareHTMLattrib}[1]{%
+ \def\reserved@a{@#1}%
+ \@ifundefined\reserved@a %% \res... 2012/09/06
+ {\@namedef{@#1}##1{ #1="##1"}}%% space 2012/08/28
+ \@notdefinable}
+%% So after `\declareHTMLattrib{<attr>}', `\@<attr>' is a
+%% \TeX\ macro expecting one parameter for the specification.
+%%
+%% % |\declareHTMLattribs{{<attr>}<list>}| essentially issues
+%% % \[`\declareHTMLattrib{<attr>}\declareHTMLattribs{<list>}'\]
+%% % while `\declareHTMLattribs{}' essentially does nothing---great,
+%% % this is an explanation by recursion!
+%% % % \newcommand*{\declareHTMLattribs}{\DoWithAllOf\declareHTMLattrib}
+%% A few frequent attributes are declared this way here.
+%% %% 2011/09/27:
+%% |@class|, |@id|, |@style|, |@title|, |@lang|, and |@dir|
+%% are the ones named on
+%% \wikienref{HTML\#Attributes}{\meta{Wikipedia}}:
+\let\@class\relax %% for tab/arr in latex.ltx
+\let\@title\relax %% for \title in latex.ltx, %% 2011/04/26
+\DoWithAllOf\declareHTMLattrib{{class}{id}{style}{title}{lang}{dir}}
+%% |@type| is quite frequent too: %% doc. 2011/09/27
+\declareHTMLattrib{type}
+%% |@href| is most important for that ``hyper-text:"
+\declareHTMLattrib{href}
+%% ... and |@name| (among other uses) is needed for
+%% hyper-text anchors:
+\declareHTMLattrib{name} %% 2010/11/06
+%% |@content| appears with `\MetaTag' below: %% 2011/11/05
+\declareHTMLattrib{content}
+%% |@bgcolor| is used in tables as well as
+%% for the appearance of the entire page:
+\declareHTMLattrib{bgcolor}
+%%
+%% %%% Attributes (Tables) %%%
+%% Of course, conflicts may occur, as the form
+%% `\@<ASCII-chars>' of macro names is used for internal
+%% (La)\TeX\ macros.
+%% Indeed, `\@width' that we want to have for the |@width|
+%% attribute already ``abbreviates"
+%% \TeX's ``keyword" (\TeX book p.~61) %% 2010/11/27
+%% `width' in \LaTeX\
+%% (for specifying the width of a `\hrule' or `\vrule' from \TeX;
+%% again just saving \TeX\ tokens rather than for readibility).
+\PackageWarning{blog}{Redefining \protect\@width}
+\let\@width\relax
+\declareHTMLattrib{width}
+%% Same with |@height|:
+\PackageWarning{blog}{Redefining \protect\@height}
+\let\@height\relax
+\declareHTMLattrib{height} %% 2010/07/24
+%% \pagebreak[3] %% 2012/09/08
+%% We can enumerate the specifications allowed for
+%% |@align|: %% reimpl. 2011/04/24
+\newcommand*{\@align@c}{\@align{center}}
+\newcommand*{\@align@l}{\@align{left}}
+\newcommand*{\@align@r}{\@align{right}}
+% \newcommand*{\@align}[1]{ align="#1"}
+\declareHTMLattrib{align} %% 2012/09/08
+%% |@valign@t|:
+% \newcommand*{\@valign@t}{v\@align{top}} %% 2011/04/24
+\newcommand*{\@valign@t}{ valign="top"} %% 2012/09/08
+%% Some other uses of `\declareHTMLattrib' essential for
+%% \emph{tables:} %% emph 2011/04/24
+\declareHTMLattrib{border} %% 2011/04/24
+\declareHTMLattrib{cellpadding} %% 2010/07/18
+\declareHTMLattrib{cellspacing} %% 2010/07/18
+\declareHTMLattrib{colspan} %% 2010/07/17
+\declareHTMLattrib{frame} %% 2010/07/24
+%% \textbf{Another problem} with this namespace idea is that
+%% \emph{either} this reference to attributes cannot be used in
+%% ``author" source files for generating HTML---\emph{or} `@'
+%% cannot be used for ``private" (internal) macros.
+%% % Cf. |\ContentAtt| for \xmltagcode{meta} tags ...
+%% % well, not so bad, as the main purpose of this namespace
+%% % is saving tokens \emph{in macros.}
+%%
+%% === Hash Mark ===
+%% |#| is needed for numerical specifications in \HTML,
+%% especially colours and Unicode symbols,
+%% while it plays a different (essential) role in our
+%% definitions of \TeX\ macros here.
+%% We redefine \LaTeX's |\#|
+%% for a kind of ``quoting" `#'
+%% (in macro definitions) %% (...) 2011/11/08
+%% in order to refer to their \HTML\ meaning.%%%---I wonder
+%% %% <- rm. 2011/11/08 ->
+%% % what I had in mind with the |&| things here.
+%% % I cannot find any use of |\AmpMark| in my code
+%% % (including my web pages). There is no real problem
+%% % with calling special \HTML\ symbols, `&' is simply
+%% % made `other' already here for macros calling those symbols
+%% % (below), and in processing source files, it is as well
+%% % `other' by default. The symbols section, however, redefines |\&|
+%% % for calling \HTML's ampersand symbol.
+{ \MakeOther\# \gdef\#{#} %% \M... 2011/11/08
+% \catcode`\&=12 \gdef\AmpMark{&} %% rm. 2011/11/08
+}
+%% ... `\CompWordMark' etc.?
+%%
+%% === ``Escaping" \HTML\ Code for ``Verbatim" ===
+%% \label{sec:html-verb} %% 2011/11/23
+%% |\xmltagcode{<chars>}| yields \qtd{\xmltagcode{<chars>}}:
+\newcommand*{\xmltagcode}[1]{\code{\lt#1\gt}}
+%% %% elements 2012/09/14:
+%% |\xmleltcode{<name>}{<content>}| displays the code for an entire
+%% <name> element containing <content> without attributes:
+\newcommand*{\xmleltcode}[2]{\code{\lt#1\gt#2\lt/#1\gt}}
+%% |\xmleltcode{<name>}{<attrs>}{<content>}| displays the code for an entire
+%% <name> element \emph{with} attribute text \qtd{<attrs>}
+%% containing <content>:
+\newcommand*{\xmleltattrcode}[3]{\code{\lt#1 #2\gt#3\lt/#1\gt}}
+%% |\xmlentitycode{<name>}| yields the code \qtd{`&&<name>;'} for an
+%% entity with name <name>:
+\newcommand*{\xmlentitycode}[1]{\code{\&#1;}}
+%%
+%% === Head ===
+%% |\head| produces the first two tags that an \HTML\ file must start:
+\newcommand*{\head}{<html><head>} %% ^^J rm 2010/10/10
+%% |\MetaTag{<inside>}| creates a \xmltagcode{meta} tag:
+\newcommand*{\MetaTag}[1]{\indenti<meta #1>}
+%% |\charset{<code-page>}| %% Content-T -> content-t 2012/09/06
+\newcommand*{\charset}[1]{%
+ \MetaTag{ http-equiv="content-type"\@content{text/html; #1}}}
+ %% <- space 2012/09/08
+%% \pagebreak[3] %% 2012/09/07
+%% |\metanamecontent{<name>}{<content>}| obviously: %% 2012/09/06
+\newcommand*{\metanamecontent}[2]{%
+ \MetaTag{\@name{#1}\@content{#2}}}
+%% %% 2012/09/07:
+%% |\author{<name>}| and |\date{<date>}| set according metadata,
+%% somewhat opposing \LaTeX\ (TODO!?):
+\renewcommand*{\author}{\metanamecontent{author}}
+\renewcommand*{\date}{\metanamecontent{date}}
+%% The name of |\metadescription{<text>}| allows using
+%% `\begin{description}' (cf. secref{env}):
+\newcommand*{\metadescription}{\metanamecontent{description}}
+%% |\keywords{<text>}|:
+\newcommand*{\keywords}{\metanamecontent{keywords}}
+%% |\robots{<instructions>}|: %% using above 2012/09/06
+\newcommand*{\robots}{\metanamecontent{robots}}
+ %% #2 juergenf: index, follow, noarchive
+%% |\norobots| for privacy %% 2011/03/16
+%% (cf. \urlhttpref{noarchive.net/meta} %% 2012/09/07
+%% and \wikienref{Robots meta tag\#The_robots_attribute}{%
+%% \meta{Wikipedia}}:
+\newcommand*{\norobots}{\robots{noarchive,nofollow,noindex}}
+%% |\metanamelangcontent{<name>}{<lang>}{<content>}|,\\ %% 2012/09/06
+%% in addition to the above, uses language code <lang>: %% 2012/09/07
+\newcommand*{\metanamelangcontent}[3]{%
+ \MetaTag{\@name{#1}\@lang{#2}\@content{#3}}}
+%% So there can be language-dependent descriptions and keywords:\\
+%% |\langdescription{<text>}| and |\langkeywords{<>}|
+\newcommand*{\langdescription}{\metanamelangcontent{description}}
+\newcommand*{\langkeywords} {\metanamelangcontent{keywords}}
+%% |\stylesheet{<media>}{<css>}| uses <css>`.css' for
+%% `media="<media>"':
+\newcommand*{\stylesheet}[2]{%
+ \space\space %% 2010/09/10
+ <link rel="stylesheet" media="#1"%
+ \@type{text/css}% %% \@type 2011/10/05
+ \@href{#2.css}>}
+%% %% 2011/10/05:
+%% Alternatively, style declarations may occur in the
+%% \xmltagcode{style} element. It can be accessed by the
+%% |{style}| environment (cf. \secref{env}):
+\newenvironment*{style}[1]
+ {<style\@type{text/css} media="#1">}
+ {</style>}
+%% With |\title{<text>}|, <text> heads %% grammar? TODO 2010/04/08
+%% the browser window:
+%% % \renewcommand*{\title}[1]{\space\space<title>#1</title>}
+%% %% <- 2011/12/12 ->
+\renewcommand*{\title}{\space\space\SimpleTagSurr{title}}
+%%
+%% === Body ===
+%% |\body| separates the `head' element from the `body' element
+%% of the page.
+\newcommand*{\body}{</head><body>}
+%% |\topofpage| generates an anchor `top-of-page':
+\newcommand*{\topofpage}{\hanc{top-of-page}{}}
+%% |\finish| finishes the page, closing the `body' and `html'
+%% elements.
+\newcommand*{\finish}{</body></html>}
+%%
+%% === Comments ===
+%% |\comment{<comment>}| produces a one-line \HTML\ comment.
+%% By contrast, there is an environment
+%% |{commentlines}{<comment>}|
+%% for multi-line comments. %% was mult-l... 2011/09/08
+%% It is convenient for ``commenting out"
+%% code (unless the latter contains other \HTML\ comments ...)
+%% where <comment> is a \emph{comment} for explaining what is
+%% commented out. %% 2010/11/14
+\newcommand*{\comment}[1]{<!--#1-->}
+% \newcommand{\commentlines}[1]{\comment{^^J#1^^J}} %% 2010/05/07
+% %% <- TODO bzw. \endlinechar=`\^^J 2010/05/09 back 2010/05/10
+\newenvironment{commentlines}[1] %% 2010/05/17
+ {<!--#1}
+ {-->}
+%% === \CSS === %% 2012/07/30 spanstyle -> stylespan 2012/10/28
+%% |\stylespan{<css-style>}{<text>}| applies the \CSS\ styling
+%% <css-style> to <text>:
+\newcommand*{\stylespan}[1]{\TagSurr{span}{\@style{#1}}}
+%% Not sure about \xmltagcode{div} yet ... TODO
+%%
+%% == Paragraphs and Line Breaks ==
+%% \label{sec:p-br}
+%% 2010/04/28:
+%% \xmltagcode{br} for manual line breaking
+%% can be generated either by |\newline| or by |\\|:
+\renewcommand*{\newline}{<br>}
+\let\\\newline
+%% Automatical insertion of \xmltagcode{p} tags
+%% for starting new paragraphs according to
+%% \secref{autopars} has been difficult,
+%% especially comment lines so far insert unwanted
+%% paragraph breaks (TODO 2011/11/20).
+%% So here are some ways to use \LaTeX/ Plain \TeX\
+%% commands---or ...: %% 2011/11/23
+% \def\par{<p>} %% + empty lines !? 2010/04/26
+%% <- difficult with `\stop'; 2010/09/10:
+%% |\endgraf| produces \xmltagcode{p}---TODO!? %% todo 2011/11/23
+\renewcommand*{\endgraf}{<p>} %% was </p> 2012/11/19
+%% %% 2011/11/23:
+%% However, I rather have decided for inserting a literal
+%% \qtd{\xmltagcode{p}} using an editor (keyboard) shortcut.
+%%
+%% |\rightpar{<text>}| places <text> flush right.
+%% I have used this for \qtd{Last revised \dots} and for placing
+%% navigation marks.
+\newcommand*{\rightpar}{\TagSurr p\@align@r} %% 2010/06/17
+%% %% 2011/04/29:
+%% Often I use `\rightpar' with \textit{italics},
+%% now there is |\rightitpar{<text>}| for this purpose:
+\newcommand*{\rightitpar}[1]{\rightpar{\textit{#1}}}
+%%
+%% == Physical Markup (Inline) == %% mod. 2012/09/13
+%% \label{sec:phys}
+%% We ``re-use" some \LaTeX\ commands for specifying font attributes,
+%% rather than (re)defining macros `\i', `\b', `\tt', ...
+%% \[|\textit{<text>}| \qquad
+%% \mbox{just expands to}\qquad
+%% \xmltagcode{i}<text>\xmltagcode{/i}\]
+\renewcommand*{\textit}{\SimpleTagSurr i}
+%% etc. for |\textbf|, |\texttt| ...:
+\renewcommand*{\textbf}{\SimpleTagSurr b}
+\renewcommand*{\texttt}{\SimpleTagSurr{tt}} %% 2010/06/07
+%% |\textsf{<text>}| chooses some sans-serif: %% 2011/10/20 2012/07/30
+\renewcommand*{\textsf}{\stylespan{font-family:sans-serif}}
+%% |\textup{<text>}| may undo surrounding slanting or ...: %% 2012/08/01
+\renewcommand*\textup{\stylespan{font-style:normal}}
+%% |\textcolor{<color>}{<text>}| %% args 2012/08/01
+%% is from \LaTeX's 'color' package
+%% that we won't load for generating \HTML,
+%% so it is ``new" here, it is just natural to use it
+%% for coloured text. %% (2010/05/15):
+%% \xmltagcode{font} is deprecated, use %% 2011/10/20
+%% \xmltagcode{span} instead: %% \span... 2012/07/30:
+\newcommand*{\textcolor}[1]{\stylespan{color:#1}}
+%% %% moves here from "Misc." 2012/09/13:
+%% \TeX/\LaTeX's |\underbar{<text>}| is redirected to the \xmltagcode{u}
+%% element: %% 2012/06/07
+\renewcommand*{\underbar}{\SimpleTagSurr u}
+%%
+%% == Logical Markup ==
+%% %% \heading moves here from former section 2012/09/13:
+%% |\heading{<level>}{<text>}| prints <text> with size dependent
+%% on <level>. The latter may be one out of
+%% `1', `2', `3', `4', `5', `6'. %% 2011/05/12
+\newcommand*{\heading}[1]{\SimpleTagSurr{h#1}}
+%% ... I might use `\section' etc. one day, I made `\heading'
+%% when I could not control the sizes of the section titles
+%% properly and decided first to experiment with the level numbers.
+%% %% <- TODO re-order alltogether, cf. SelfHTML 2011/05/12
+%%
+%% |\code{<text>}| marks <text> as ``code,"
+%% just accessing te \xmltagcode{code} element,
+%% while standard \LaTeX\ does not provide a `\code' command:
+\newcommand*{\code}{\SimpleTagSurr{code}} %% 2010/04/27
+%% |\emph{<text>}| is \LaTeX's command again, but somewhat abused,
+%% expanding to \lq\xmltagcode{em}<text>\xmltagcode{/em}\rq:
+\renewcommand*{\emph} {\SimpleTagSurr{em}}
+%% ... Note that \LaTeX's `\emph' feature of switching to `up'
+%% when `\emph' appears in an italic context doesn't work here ...
+%%
+%% |\strong{<text>}| again just calls an \HTML\ element.
+%% It may behave like `\textbf{<text>}', or ... I don't know ...
+\newcommand*{\strong}{\SimpleTagSurr{strong}}
+%% %% 2011/03/09:
+%% |\var{<symbol(s)>}| accesses the \xmltagcode{var} element:
+\newcommand*{\var}{\SimpleTagSurr{var}}
+%% %% 2011/09/21, 2012/01/06:
+%% For tagging acronyms,
+%% \HTML\ offers the \xmltagcode{acronym} element,
+%% and the \httpref{ctan.org/pkg/tugboat}{\acro{TUG}boat macros}
+%% provide |\acro{<LETTERS>}|. I have used the latter for some
+%% time in my package documentations anyway. For v0.7, %% 2012/01/06
+%% I add the latter here as an alias for |\acronym{<LETTERS>}|
+%% (supporting both naming policies mentioned in \secref{name-policy}):
+\newcommand*{\acronym}{\SimpleTagSurr{acronym}}
+\newlet\acro\acronym
+%% %% 2012/02/04:
+%% |\newacronym{<LETTERS>}| saves you from doubling the <LETTERS>
+%% when you want to create the shorthand macro `\<LETTERS>':
+\newcommand*{\newacronym}[1]{%
+ \expandafter\newcommand\expandafter*\csname#1\endcsname{%
+ \acronym{#1}}}
+%% However, \xmltagcode{acronym} is
+%% \wikienref{HTML elements#Phrase_elements}{deprecated}.
+%% You may use |\abbr{<LETTERS>}| and |\newabbr{<LETTERS>}| instead:
+\newcommand*{\abbr}{\SimpleTagSurr{abbr}} %% 2012/09/13
+\newcommand*{\newabbr}[1]{%
+ \expandafter\newcommand\expandafter*\csname#1\endcsname{%
+ \abbr{#1}}}
+%%
+%% == Environments ==
+%% \label{sec:env}
+%% We reduce \LaTeX's |\begin| and |\end| to their most primitive
+%% core.
+%% \begin{description}
+%% \cmdboxitem|\begin{<command>}| just executes the macro `\<command>',
+%% and
+%% \cmdboxitem|\end{<command>}| just executes the macro `\end<command>'.
+%% \end{description}
+%%
+%% They don't constitute a group with local settings.
+%% Indeed, the present (2010/11/07) version of 'blog.sty'
+%% does not allow any assignments while ``copying"
+%% the \TeX\ source into the `.htm'.
+%% There even is no check for proper nesting.
+%% `\begin' and `\end' just represent \HTML\ elements
+%% (their starting/ending tags)
+%% that typically have ``long" content.
+%% (We might ``intercept" `\begin' and `\end' before
+%% copying for executing some assignments in a future version.)
+\let\begin\@nameuse
+\def\end#1{\csname end#1\endcsname}
+%% ... moving |{english}| to `xmlprint.cfg'
+%% 2010/05/22 ...%% doc 2010/11/06
+%%
+%% As formerly with
+%% \hyperref[sec:phys]{physical markup}, %% \hyperref 2012/01/06
+%% we have \emph{two} policies for
+%% \label{sec:name-policy} %% 2012/01/06 2012/11/28
+%% \textbf{choosing macro names}:
+%% (i)~using an \emph{existing} \HTML\ element name,
+%% (ii)~using a \LaTeX\ command name for accessing a somewhat
+%% similar \HTML\ element having a \emph{different} name.
+%% [\,2011/10/05: so what? TODO\,]
+%%
+%% New 2011/10/05:
+%% With |\useHTMLelement{<ltx-env>}{<html-el>}|,
+%% you can access the \xmltagcode{<html-el>} element
+%% by the `<ltx-env>' environment.
+%% The ``starred" form is for ``list" environments
+%% where I observed around 2011/10/01 that certain links
+%% (with Mozilla Firefox) need \xmltagcode{/li}:
+\newcommand*{\useHTMLelement}{%
+ \@ifstar{\@useHTMLelement[</li>]}{\@useHTMLelement}}
+\newcommand*{\@useHTMLelement}[3][]{%
+ \@namedef{#2}{<#3>}%
+ \@namedef{end#2}{#1\CLBrk</#3>}} %% \CLBrk 2012/04/03
+%% Applications:
+%%
+%% \acro{CARE:} |{small}| is an environment here,
+%% it is not in \LaTeX:
+\useHTMLelement{small}{small}
+%% |{center}|: %% TODO von 2010/07/18, weiter oben
+% \renewenvironment*{center}{<p align="center">}{</p>}
+% \renewenvironment*{center}{<p \@align@c>}{</p>}
+\useHTMLelement{center}{center}
+%% The next definitions for |{enumerate}|, |{itemize}|,
+%% `{verbatim}' follow policy~(ii):
+\useHTMLelement*{enumerate}{ol}
+\useHTMLelement*{itemize} {ul}
+%% |\begin{enumtype}{<type>}| starts an enumeration
+%% environment with enumeration type <type>
+%% which can be one out of `1', `a', `A', `i', `I'
+%% (somewhat resembling the functionality of the
+%% \ctanpkgref{enumerate} package):
+\newenvironment{enumtype}[1]{<ol \@type{#1}}{</ol>}
+%% %% 2010/11/16:
+%% With 'blog.sty', |{verbatim}| really doesn't work much
+%% like its original \LaTeX\ variant. \TeX\ macros inside
+%% still are expanded, and you must care yourself for
+%% wanted \dqtd{quoting}:
+\useHTMLelement{verbatim} {pre}
+%% |{quote}|:
+\useHTMLelement{quote}{blockquote}
+%% For list |\item|s, I tried to get readable \HTML\ code
+%% using `\indenti'. This fails with nested lists.
+%% The indent could be increased for nested lists
+%% if we supported assignments with `\begin' and `\end'.
+%% 2011/10/04 including \xmltagcode{</li>},
+%% repairs more links in \acro{DANTE} talk
+%% (missing again 2011/10/11!?):
+\renewcommand*{\item}{%
+ \indenti</li>\CLBrk %% 2011/10/11
+ \indenti<li>}
+%% \LaTeX's |{description}| environment redefines the
+%% label format for the optional argument of `\item'.
+%% Again, \emph{we} cannot do this here
+%% (we even cannot use optional arguments,
+%% at least not easily).
+%% Instead we define a different |\ditem{<term>}|
+%% having a \emph{mandatory} argument
+%% (TODO star?). %% 2011/10/05
+\useHTMLelement{description}{dl}
+\newcommand*{\ditem}[1]{\indenti<dt>\strong{#1}<dd>}
+%%
+%% == Links ==
+%% === Basic Link Macros ===
+%% %% doc. fixes + hyperref 2011/10/16:
+%% |\hanc{<name>}{<text>}| makes <text> an anchor with
+%% \HTML\ label <name> like \ctanpkgref{hyperref}'s
+%% |\hypertarget{<name>}{<text>}|
+%% (that we actually provide as well,
+%% towards printing from the same source):
+\newcommand*{\hanc}[1]{\TagSurr a{\@name{#1}}}
+\newlet\hypertarget\hanc
+%% |\hancref{<name>}{<target>}{<text>}| makes <text> an anchor with
+%% \HTML\ label <name> and at the same time a link to <target>:
+\newcommand*{\hancref}[2]{\TagSurr a{\@name{#1} \@href{#2}}}
+%% |\href{<name>}{<text>}| makes <text> a link to <name>
+%% (as with 'hyperref'):
+\newcommand*{\href}[1]{\TagSurr a{\@href{#1}}}
+%%
+%% === Special cases of Basic Link Macros ===
+%% |\autanc{<text>}| creates an anchor where <text> is
+%% the text and the internal label at the same time:
+\newcommand*{\autanc}[1]{\hanc{#1}{#1}} %% 2010/07/04
+%% |\ancref{<name>}{<text>}| makes <text> a link to
+%% an anchor <name> on the same web page.
+%% This is especially useful for a ``table of contents"---a
+%% list of links to sections of the page.
+%% It is just like 'hyperref''s |\hyperlink{<name>}{<text>}|:
+\newcommand*{\ancref}[1]{\href{\##1}}
+\newlet\hyperlink\ancref
+%% |\autref{<text>}| makes <text> a link to an anchor
+%% named <text> itself:
+\newcommand*{\autref}[1]{\ancref{#1}{#1}} %% 2010/07/04
+%%
+%% === Italic Variants ===
+%% Some of the link macros get ``emphasized" or ``italic"
+%% variants. Originally I used ``emphasized," later I decided
+%% to replace it by ``italic," as I found that I had used
+%% italics for another reason than emphasizing.
+%% E.g., <text> may be \qtd{bug,} and I am not referring to
+%% some bug, but to the Wikipedia article \textit{Bug.}
+%% This has been inspired by some Wikipedia typography convention
+%% about referring to titles of books or movies.
+%% (The `em'\,->\,`it' replacement has not been completed yet.)
+% \newcommand*{\emhref}[2]{\href{#1}{\emph{#2}}}
+\newcommand*{\ithref}[2]{\href{#1}{\textit{#2}}}
+\newcommand*{\itancref}[2]{\ancref{#1}{\textit{#2}}}%% 2010/05/30
+\newcommand*{\emancref}[2]{\ancref{#1}{\emph{#2}}}
+%%
+%% === Built Macros for Links to Local Files ===
+%% Originally, I wanted to refer to my web pages only,
+%% using \[|\fileref{<filename-base>}|.\] I have used
+%% extension `.htm' to avoid disturbing my Atari
+%% editor 'xEDIT' or the the Atari emulator (Hatari).
+%% %% rm. 2011/08/18:
+%% % I could switch to `.html' some time using symbolic links.
+%% The extension I actually use is stored as macro
+%% |\htext| in a more local file (e.g., `.cfg').---Later
+%% I realized that I may want to refer to local files
+%% other than web pages, and therefore I introduced a more
+%% %% mod. 2011/08/18:
+%% general `\FileRef{<filename>}|', overlooking
+%% that it was the same as |\href|.
+% \newcommand*{\FileRef}[1]{\TagSurr a{\@href{#1}}}
+\newcommand*{\htext}{.htm} %% 2011/10/05
+\newcommand*{\fileref}[1]{\href{#1\htext}}
+% \newcommand*{\emfileref}[2]{\fileref{#1}{\emph{#2}}}
+\newcommand*{\itfileref}[2]{\fileref{#1}{\textit{#2}}}
+%% |\fileancref{<file>}{<anchor>}{<text>}| links to
+%% %% <- `text' added 2011/03/19
+%% anchor <anchor> on web page <file>:
+\newcommand*{\fileancref}[2]{%
+ \TagSurr a{\@href{#1\htext\##2}}}
+% \newcommand*{\emfileancref}[3]{\fileancref{#1}{#2}{\emph{#3}}}
+%% <- 2010/05/31 ->
+\newcommand*{\itfileancref}[3]{\fileancref{#1}{#2}{\textit{#3}}}
+%%
+%% === Built Macros for Links to Remote Files ===
+%% 'blog.sty' currently (even 2011/01/24) implements my style
+%% \emph{not} to open a new browser window or tab for \emph{local}
+%% files but to open a new one for \emph{remote} files, i.e.,
+%% when a file is addressed by a full URL.
+%% This may change (as with 'blogdot.sty', 2011/10/12,
+%% or more generally with local non-\HTML\ files),
+%% so let us have a backbone
+%% |\hnewref{<prot>}{<host-path[#frag]>}{<text>}|
+%% that %% 2011/10/21
+%% makes <text> a link to <prot><host-path[#frag]>:
+\newcommand*{\hnewref}[2]{%
+ \TagSurr a{\@href{#1#2" target="_blank}}}
+%% So \[|\httpref{<host-path[#frag]>}{<text>}|\]
+%% makes <text> a link to \urlfmt{http://}<host-path[#frag]>:
+\newcommand*{\httpref}{\hnewref{http://}}
+%% With v0.4, macros based on `\httpref' are moved to 'texlinks.sty':
+\RequirePackage[blog]{texlinks}[2011/02/10]
+%% Former |\urlref| appears as |\urlhttpref| there ...
+\newlet\urlref\urlhttpref
+%% ... and `\ctanref' has changed its meaning there as of 2011/10/21.
+%% %% 2011/02/07:
+%% 'texlinks' sometimes uses a ``permanent alias"
+%% |\NormalHTTPref| of `\httpref':
+\newlet\NormalHTTPref\httpref
+%% |\httpsref| is the analogue of `\httpref' for `https://':
+\newcommand*{\httpsref}{\hnewref{https://}}
+%%
+%% % \pagebreak %% 2012/07/30 rm. 2012/09/13
+%% == Characters/Symbols == %% `Symbols' until 2011/09/25
+%% === Basic Preliminaries ===
+%% |&| is made `other' for using it to call \HTML's
+%% ``character entities." %% dot inside 2011/02/25
+\MakeOther\&
+%% Again we have the two policies about choosing macro names
+%% and respectively two new definition commands.
+%% |\declareHTMLsymbol{<name>}| defines a macro `\<name>'
+%% expanding to `&<name>;'. Checking for prior definedness
+%% hasn't been implemented yet.
+%% (TODO; but sometimes redefining ...) %% 2011/02/26
+\newcommand*{\declareHTMLsymbol}[1]{\@namedef{#1}{&#1;}}
+%% %% TODO replace \@namedef with \defcsname
+%% |\declareHTMLsymbols{<name>}{<list>}| essentially issues %% corr. br. 2012/08/02
+%% \[`\declareHTMLsymbol{<attr>}\declareHTMLsymbols{<list>}'\]
+%% while `\declareHTMLsymbols{}' essentially does nothing---great,
+%% this is an explanation by recursion!
+\newcommand*{\declareHTMLsymbols}{\DoWithAllOf\declareHTMLsymbol}
+%% |\renderHTMLsymbol{<macro>}{<name>}| \emph{redefines}
+%% macro <macro> to expand to `&<name>;':
+\newcommand*{\renderHTMLsymbol} [2]{\renewcommand*{#1}{&#2;}}
+%% Redefinitions of |\&| and |\%|
+%% (well, `\PercentChar' is 'fifinddo''s %% add. apostroph 2011/07/22
+%% version of \LaTeX's `\@percentchar'):
+\renderHTMLsymbol{\&}{amp}
+\let\%\PercentChar
+%%
+%% === Diacritics === %% changed 2011/03/04
+%% For the difference between \dqtd{diacritic} and
+%% \dqtd{accent,} see \wikienref{Diacritic}{\meta{Wikipedia.}}
+%%
+%% %% replacing \ccedil 2011/11/23:
+%% %%|\ccedil|: %%%, |\eacute|, |\ocirc| (``r\^ole")
+%% % \declareHTMLsymbol{ccedil}
+%% %% 2011/03/04, added example results 2011/11/24:
+%% \HTML\ entities |&eacute;| (\'e),
+%% |&ccedil| (\c{c}), %% 2011/11/23
+%% |&ocirc;| (\^o) etc. can be accessed
+%% by \TeX's accent commands |\'|, |\c|, |\^|, |\`|, |\"|:
+% \declareHTMLsymbol{eacute}
+% \declareHTMLsymbol{ocirc}
+\renewcommand*{\'}[1]{&#1acute;}
+\renewcommand*{\c}[1]{&#1cedil;}
+\renewcommand*{\^}[1]{&#1circ;}
+\renewcommand*{\`}[1]{&#1grave;}
+\renewcommand*{\"}[1]{&#1uml;}
+%% %% 2012/05/13:
+%% ... former |\uml{<char>}| is obsolete, use |\"<char>|
+%% (or `\"<char>') instead.
+%% % may have been overestimated:
+%% % (useful in macro definitions): %% 2010/11/13
+%% % \newcommand* {\uml}[1] {&#1uml;} %% 2010/08/24
+%%
+%% %% 2013/01/01:
+%% |\v{<char>}| just works with $<char>=`s'$ and $<char>=`S'$
+%% for \v{s} and \v{S}:
+\renewcommand*{\v}[1]{#1caron;}
+%%
+%% === Ligatures and the Like === %% 2013/01/01
+%% |\lig{<char1><char2>}| forms a ligature from <char1> and <char2>:
+\newcommand*{\lig}[1]{&#1lig;}
+%% With v0.81, we use this to reimplement
+%% |\ss| from Plain~\TeX\ and \LaTeX\ for the
+%% putative %% 2013/01/01
+%% ``s-z ligature", the German ``\Wikienref{sharp s}"
+%% (``\ss"): %% 2013/01/01
+% \renderHTMLsymbol{\ss}{szlig}
+\renewcommand*{\ss}{\lig{sz}}
+%% |\AE|, |\ae|, |\OE|, |\oe| (``\AE", ``\ae", ``\OE", ``\oe")
+%% are reimplemented likewise:
+\renewcommand*{\AE}{\lig{AE}}
+\renewcommand*{\ae}{\lig{ae}}
+\renewcommand*{\OE}{\lig{OE}}
+\renewcommand*{\oe}{\lig{oe}}
+%%
+%% === Greek === %% 2011/02/26
+\declareHTMLsymbols{{Alpha}{alpha} %% 2012/01/06
+ {Beta}{beta}{Gamma}{gamma}{Delta}{delta}{Epsilon}{epsilon}
+ {Zeta}{zeta}{Eta}{eta}{Theta}{theta}{Iota}{iota}{Kappa}{kappa}
+ {Lambda}{lambda}{My}{my}{Ny}{ny}{Xi}{xi}{Omikron}{omikron}
+ {Pi}{pi}{Rho}{rho}{Sigma}{sigma}{sigmaf}{Tau}{tau}
+ {Upsilon}{upsilon}{Phi}{phi}{Chi}{chi}{Psi}{psi}
+ {Omega}{omega} %% render -> declare 2011/02/26
+ {thetasym}{upsih}{piv} }
+%%
+%% === Arrows ===
+%% ---somewhat completed 2012/07/25.
+%%
+%% |\downarrow|, |\leftarrow|, |\leftrightarrow|, |\rightarrow|, |\uparrow|:
+\renderHTMLsymbol {\downarrow} {darr} %% 2010/09/15
+\renderHTMLsymbol {\leftarrow} {larr}
+\renderHTMLsymbol {\leftrightarrow}{harr}
+\renderHTMLsymbol {\rightarrow} {rarr}
+\renderHTMLsymbol {\uparrow} {uarr} %% 2010/09/15
+%% Aliases |\gets| and |\to| were implemented first as stand-alones,
+%% now are treated by `\let':
+\let \gets \leftarrow
+\let \to \rightarrow
+%% |\Downarrow|, |\Leftarrow|, |\Leftrightarrow|,
+%% |\Rightarrow|, |\Uparrow| (i.e., double variants):
+\renderHTMLsymbol {\Downarrow} {dArr}
+\renderHTMLsymbol {\Leftarrow} {lArr}
+\renderHTMLsymbol {\Leftrightarrow}{hArr}
+\renderHTMLsymbol {\Rightarrow} {rArr}
+\renderHTMLsymbol {\Uparrow} {uArr}
+%% |\crarrow| accesses \HTML's `crarr' entity (symbol for return key),
+%% named ``downwards arrow with tip leftwards" in Unicode (U+21b2):
+\newcommand*{\crarrow}{&crarr;} %% 2012/09/13
+%%
+%% === Dashes ===
+%% The ligatures `--' and `---' for en~dash and em~dash
+%% don't work in our expanding mode. Now, \HTML's policy
+%% for choosing names often prefers shorter names than
+%% are recommended for (La)\TeX, so here I adopt a \emph{third}
+%% policy %% was "police" 2012/07/25
+%% besides (i) and (ii) earlier; cf. \LaTeX's
+%% `\textemdash' and `\textendash'.---`\newcommand'
+%% does not accept macros whose names start with `end', so:
+%% |\endash|, |\emdash| ...
+\def \endash {&ndash;} %% \end... illegal
+\newcommand*{\emdash} {&mdash;}
+%%
+%% === Spaces ===
+%% ``Math" (not only!)\ spaces |\,|, |\enspace|, |\quad|, |\qquad|:
+%% %% <- 2011/04/26
+\renderHTMLsymbol{\enspace}{ensp}
+\renderHTMLsymbol{\quad} {emsp}
+\renewcommand* {\qquad} {\quad\quad}
+%% 2011/07/22: `&thinsp;' allows line breaks,
+%% so we introduce |\thinsp| to access `&thinsp;',
+%% while |\thinspace| and |\,| use Unicode ``Narrow No-Break Space"
+%% (`U+202F', see \meta{Wikipedia \Wikienref{Space (punctuation)}};
+%% browser support?):
+% \renderHTMLsymbol{\thinspace}{thinsp}
+% \renderHTMLsymbol{\,} {thinsp}
+\declareHTMLsymbol{thinsp}
+\renderHTMLsymbol{\thinspace}{\#8239}
+\renderHTMLsymbol{\,} {\#8239}
+%% |\figurespace| %% 2011/09/25
+%% (U+2007, cf.~\wikienref{Figure space}{\meta{Wikipedia}}):
+\newcommand*{\figurespace}{&\#8199;}
+%%
+%% === Quotes, Apostrophe ===
+%% \label{sec:quotes}
+%% |\lq|, |\rq|
+\renderHTMLsymbol{\lq} {lsquo}
+\renderHTMLsymbol{\rq} {rsquo}
+%% In order to use the right single quote for the \HTML\ apostrophe,
+%% we must save other uses before.
+%% %% rm. \screenqtd 2011/11/08:
+%% % |\screentqtd{<text>}| is used for screen messages, and
+%% |\urlapostr| is the version of the right single quote
+%% for \acro{URL}s of Wikipedia articles: %% 2011/08/31
+% \newcommand*{\screenqtd}[1]{`#1'} %% rm. 2011/11/08
+\newcommand*{\urlapostr} {'} %% 2010/09/10
+%% The actual change of |'| is in `\BlogCodes'
+%% (\secref{catcodes}).
+%%
+%% %% mod. 2012/10/24f.:
+%% |\bdquo| (bottom), |\ldquo|, |\rdquo|, |\sbquo| (single bottom):
+\declareHTMLsymbol{bdquo} %% 2011/09/23
+\declareHTMLsymbols{{ldquo}{rdquo}}
+\declareHTMLsymbol{sbquo} %% 2010/07/01
+\declareHTMLsymbols{{laquo}{raquo}}
+%% Angled quotes |\laquo| and |\raquo| as well as their
+%% ``single" versions |\lsaquo| and |\rsaquo|:
+\declareHTMLsymbols{{laquo}{lsaquo}{raquo}{rsaquo}} %% 2012/10/25
+%% As of 2012/09/17, |\asciidq| and |\asciidqtd{<no-dqs>}|
+%% (e.g., for attributes after `\catchdqs'
+%% or typesetting code)
+%% move to package 'catchdq.sty' in the 'catcodes' bundle.
+%%
+%% |\quot| accesses the same symbol in \HTML's terms
+%% (e.g., for displaying code):
+\declareHTMLsymbol{quot} %% 2012/01/21
+%% |\endqtd{<text>}| quotes in the English style using double quote
+%% marks, |\enqtd{<text>}| uses single quote marks instead,
+%% |\dedqtd{<text>}| quotes in German style, %% 2011/12/21:
+%% |\quoted{<text>}| uses straight double quotation marks.
+%% %% 2012/10/24:
+%% Settings from the \ctanpkgref{langcode} package may need to
+%% be overridden. (A warning might be nice then TODO)
+\def\endqtd#1{\ldquo#1\rdquo}
+\def\enqtd #1{\lq#1\rq} %% 2010/09/08
+\def\dedqtd#1{\bdquo#1\ldquo}
+\def\deqtd #1{\sbquo#1\lq} %% corr. 2012/10/25
+\newcommand*{\quoted} [1]{\quot#1\quot} %% 2012/01/21
+%% |\squoted{<text>}| surrounds <text> with ``straight"
+%% single quotation marks, useful for other kinds
+%% of quoting in computer code:
+\newcommand*{\squoted}[1]{\urlapostr#1\urlapostr} %% 2012/01/21
+%%
+%% === (Sub- and) Superscript Digits/Letters === %% 2012/10/25
+%% As Plain \TeX\ and \LaTeX\ provides an alias `\sp' for
+%% `^', I use |\spone|, |\sptwo|, |\spthree|, |\spa|, and
+%% |\spo| for superscript 1, 2, 3, \qtd{a}, and \qtd{o}:
+\newcommand*{\spone}{&sup1;}
+\newcommand*{\sptwo}{&sup2;}
+\newcommand*{\spthree}{&sup3;}
+\newcommand*{\spa}{&ordf;}
+\newcommand*{\spo}{&ordm;}
+%% For slanted fractions, I think of \ctanpkgref{xfrac}'s
+%% `\sfrac{<numerator>}{<denominator>}'.
+%% |\sfrac{1}{2}|, |\sfrac{1}{4}|, and |\sfrac{3}{4}| work so far:
+\newcommand*{\sfrac}[2]{&frac#1#2;}
+%%
+%% === Math ===
+%% %% divided/reordered section 2012/08/07
+%% ==== Symbols ====
+%% (\TeX\ math type ``Ord")---|\aleph|:
+\renderHTMLsymbol{\aleph}{alefsym}
+%% I provide |\degrees| for the degree symbol.
+%% \LaTeX\ already has `\deg' as an operator,
+%% therefore I do not want to use `\declareHTMLsymbol'
+%% here.
+\newcommand*{\degrees}{&deg;}
+%% We stick to \TeX's |\emptyset| %% 2011/05/08
+\renderHTMLsymbol{\emptyset}{empty} %% 2011/04/14
+%% |\exists| and |\forall|: %% 2012/10/05
+\renderHTMLsymbol{\exists}{exist}
+\declareHTMLsymbol{forall}
+%% |\prime| can be used for minutes, |\Prime| for seconds:
+\renderHTMLsymbol{\prime}{prime} \declareHTMLsymbol{Prime}
+%%
+%% ==== Relations ====
+%% %% doc. extended 2011/05/08:
+%% Because \verb+<+ and \verb+>+ are used for \HTML's
+%% element notation, we provide aliases |\gt|, |\lt|
+%% for mathematical $\lt$ and $\gt$---and for reference
+%% to \HTML\ (or just \acro{XML}) code %% 2011/11/23
+%% (see \secref{html-verb}):
+\declareHTMLsymbols{{gt}{lt}}
+%% |\ge|, |\le|, and |\ne| for $\geq$, $\leq$, and $\neq$ resp.:
+\declareHTMLsymbols{{ge}{le}{ne}}
+%% We also provide their \TeX\ aliases
+%% |\geq|, |\leq|, |\neq|: %% 2011/05/11
+\let\geq\ge \let\leq\le \let\neq\ne
+%% Besides \TeX's |\subset| and |\subseteq|,
+%% we provide short versions |\sub| and |\sube| %% 2011/05/08
+%% inspired by \HTML:
+\declareHTMLsymbol{sub} %% 2011/04/04
+\let\subset\sub %% 2011/05/08
+\declareHTMLsymbol{sube} %% 2011/03/29
+\let\subseteq\sube %% 2011/05/08
+%%
+%% ==== Delimiters ====
+%% Angle braces |\langle| and |\rangle|:
+\renderHTMLsymbol{\langle}{lang}
+\renderHTMLsymbol{\rangle}{rang}
+%% The one-argument macro |\angled{<angled>}|
+%% allows better readable code %% TODO:
+%% (\textcolor{red}{should be in a more general package}):
+\newcommand*{\angled}[1]{\langle#1\rangle}
+%% Curly braces |\{| and |\}| \textcolor{red}{\dots}:
+\begingroup
+ \Delimiters\[\] \gdef\{[{] \gdef\}[}]
+\endgroup
+%%
+%% ==== Binary Operations ====
+%% \TeX's |\ast| corresponds to the ``lower" version
+%% of the asterisk: %% here 2012/10/05
+\renderHTMLsymbol{\ast}{lowast} %% 2011/03/29
+%% |\pm| renders the plus-minus symbol: %% 2012/08/07
+\renderHTMLsymbol{\pm}{plusmn}
+%% \TeX\ and \HTML\ agree on |\cap|, |\cup|,
+%% and |\times|:
+%% 2011/05/08
+%% 2011/04/04
+\declareHTMLsymbols{{cap}{cup}{times}} %% 2012/01/06
+%% We need |\minus| since math mode switching is
+%% not supported by 'blog': %% 2011/05/08
+\declareHTMLsymbol{minus} %% 2011/03/31
+%%
+%% We override \HTML's \lq`&circ;'\rq\ %% \lq\rq 2011/09/08
+%% to get \TeX's \cs{circ}
+%% (i.e., $\circ$; %% 2011/05/08:
+%% \textcolor{red}{but I cannot see it
+%% on my own pages!?}):
+\renderHTMLsymbol{\circ}{\#x2218} %% 2011/04/28
+\renderHTMLsymbol{\cdot}{middot} %% 2011/05/07
+%% |\sdot| generates `&sdot,', a variant of of `&middot;'
+%% reserved for the \Wikienref{dot product} according to
+%% the \wikideref{Malzeichen\#Skalarprodukt}
+%% {German \meta{Wikipedia}} %% 2011/09/08!
+\declareHTMLsymbol{sdot} %% 2011/05/08
+%%
+%% ==== Operators ==== %% 2012/08/07
+%% |\prod|, |sum|:
+\renderHTMLsymbol{\prod}{product}
+\declareHTMLsymbol{sum}
+%%
+%%
+%% === Currencies === %% 2012/08/06
+%% |\cent|, |\currency|, |\euro|, |\pound|, |\yen|: %% ...symbols 2012/08/07:
+\declareHTMLsymbols{{cent}{currency}{euro}{pound}{yen}}
+%% You get the \$ symbol simply by |$|.
+%%
+%% === Other ===
+%% The tilde |~| is used for its wonderful purpose,
+%% by analogy to \TeX (TODO overridden by `\FDpseudoTilde'):
+\renderHTMLsymbol{~}{nbsp}
+%% But now we need a replacement |\tilde| for URLs involving
+%% home directories of institution members
+%% (should better be |\tildechar| or `\TildeChar',
+%% cf.~'fifinddo'): %% 2011/04/29
+{ \MakeOther\~ \gdef\tilde{~} \gdef\tildechar{~}}
+%% % <- more elegant macro %% 2011/05/18
+%% % \newcommand*{\StoreOtherCharAs}[2]{%
+%% % \edef#2{\expandafter\@gobble\string#1}}
+%% Horizontal ellipsis: |\dots| ...
+\renderHTMLsymbol {\dots} {hellip}
+%% Plain~\TeX's and \LaTeX's |\-| becomes a soft hyphen:
+\renderHTMLsymbol{\-}{shy}
+%% |\copyright|:
+\renderHTMLsymbol{\copyright}{copy}
+%% |\bullet| %% 2011/03/29
+\renderHTMLsymbol{\bullet}{bull}
+%% \LaTeX's |\S| prints the \dqtd{\Wikienref{section sign}}
+%% \qtd{\S}. In \HTML, the latter accessed by `&sect;',
+%% we \dqtd{redirect} `\S' to this: %% 2011/05/18
+\renderHTMLsymbol{\S}{sect}
+%% |\dagger|, |\ddagger|: %% 2011/10/01
+\renderHTMLsymbol{\dagger}{dagger}
+\renderHTMLsymbol{\ddagger}{Dagger}
+%% |\P| renders the paragraph sign or pilcrow: %% 2012/08/07
+\renderHTMLsymbol{\P}{para}
+%% Sometimes (due to certain local settings) the notations
+%% \dqtd{`&&<characters>;'} or \dqtd{`&&&#<number>;'}
+%% (for \Wikienref{Unicode}) may not be available.
+%% We provide
+%% \[|\htmlentity{<characters>}|\]
+%% as well as
+%% \[|\unicodeentity{<decimal>}|\]
+%% and
+%% \[|\unicodehexentity{<hexadecimal>}|\]
+%% for such situations:
+\newcommand*{\htmlentity}[1]{&#1;}
+\newcommand*{\unicodeentity}[1]{&\##1;}
+\newcommand*{\unicodehexentity}[1]{&\#x#1;}
+%%
+%% == \TeX-related == %% 2010/08/24
+%% Somebody actually using 'blog.sty' must have a need to put down
+%% notes about \TeX\ for her own private purposes at least---I expect.
+%% === Logos ===
+%% ``Program" names might be typeset in a special font,
+%% I once thought, and started tagging program names with
+%% |\prg|. It could be `\texttt' or `\textsf' like in
+%% documentations of \LaTeX\ packages. However,
+%% sans-serif is of doubtable usefulness on web pages,
+%% and typewriter imitations usually look terrible on
+%% web pages. So I am waiting for a better idea and
+%% let `\prg' just remove the braces.
+\newlet\prg\@firstofone
+\newcommand*{\BibTeX}{\prg{BibTeX}} %% 2010/09/13
+\renewcommand*{\TeX}{\prg{TeX}}
+\renewcommand*{\LaTeX}{\prg{LaTeX}}
+\newcommand*{\allTeX}{\prg{(La)TeX}}%% 2010/10/05
+\newcommand*{\LuaTeX}{\prg{LuaTeX}}
+\newcommand*{\pdfTeX}{\prg{pdfTeX}}
+\newcommand*{\XeTeX}{\prg{XeTeX}} %% 2010/10/09
+\newcommand*{\TeXbook}{TeXbook} %% 2010/09/13
+%%
+%% === Describing Macros ===
+%% With v0.4, \TeX-related \emph{links} are moved to 'texlinks.sty'.
+%%
+%% \leavevmode % \errorcontextlines=15 %% TODO 2011/11/05
+%% |\texcs{\<tex-cmd-name>}| or `\texcs\<tex-cmd-name>'
+%% (care for spacing yourself):
+\newcommand*{\texcs}[1]{\code{\string#1}} %% 2010/11/13
+%% Good old |\cs{<tex-cmd-name>}| may be preferable:
+\def\cs#1{\code{\BackslashChar#1}} %% 2011/03/06
+%% |\metavar{<name>}|: %% 2011/09/22
+\newcommand*{\metavar}[1]{\angled{\meta{#1}}}
+%%
+%% == Tables ==
+%% %% 2011/04/24: rm. remark on doubtful stability, ordered
+%% I am not so sure about this section ...
+%% === Indenting ===
+%% There are three levels of indenting:
+%% \[|\indenti|, \quad
+%% |\indentii|,\quad \mbox{and}\quad
+%% |\indentiii|.\]
+%% The intention for these was to get readable \HTML\ code. Not sure ...
+{\catcode`\ =12%% 2010/05/19
+\gdef\indenti{ }\gdef\indentii{ }\gdef\indentiii{ }}
+%%
+%% === Starting/Ending Tables ===
+%% |\startTable{<attributes>}| and |\endTable| have been made
+%% for appearing in different macros, such as in the two parts
+%% of a `\newenvironment':
+%% %% 2010/07/17:
+\newcommand*{\startTable}[1]{<table #1>}
+\def\endTable{</table>}
+%% |\@frame@box| among the `\startTable' <attributes>
+%% draws a frame around the table, |\@frame@groups| %% about -> around
+%% separates ``groups" by rules:
+\newcommand*{\@frame@box}{\@frame{box}}
+\newcommand*{\@frame@groups}{\@frame{groups}}
+%% |\begin{allrulestable}{<cell-padding>}{<width>}|
+%% starts a table environment with all possible rules
+%% and some code cosmetic. <width> may be empty ...
+\newenvironment{allrulestable}[2]
+ {\startTable{\@cellpadding{#1} \@width{#2}
+ \@frame@box\ rules="all"}\CLBrk %% \ 2011/10/12
+ \ \tbody} %% <- tbody 2011/10/13, `\ ' 2011/11/09 ->
+ {\ \endtbody\CLBrk\endTable}
+%% \xmltagcode{tbody}...\xmltagcode{/tbody} seemed to be
+%% better with `\HVspace' for 'blogdot.sty', %% 2011/10/13
+%% so it gets an environment |{tbody}|
+%% (i.e., macros |\tbody| and |\endtbody|):
+\useHTMLelement{tbody}{tbody}
+%%
+%% === Rows ===
+%% I first thought it would be good for readability if
+%% some \HTML\ comments explain nesting or briefly describe
+%% the content of some column, row, or cell.
+%% But this is troublesome when you want to comment out
+%% an entire table ...
+%%
+%% |\begin{TableRow}{<comment>}{<attributes>}|\\ starts an environment
+%% producing an \HTML\ comment <comment> and a table row
+%% with attributes <attributes>, including code cosmetic.
+\newenvironment*{TableRow}[2]{%% lesser indentation 2011/04/25
+ \ \comment{ #1 }\CLBrk
+ \indenti<tr #2>%
+ }{%
+ \indenti\endtr} %% \endtr 2011/11/08
+%% |\begin{tablecoloredrow}{<comment>}{<background-color>}|\\
+%% is a special case of `{TableRow}' where `@bgcolor' is the only
+%% attribute:
+\newenvironment{tablecoloredrow}[2]
+ {\TableRow{#1}{\@bgcolor{#2}}}
+ {\endTableRow}
+%% |\begin{tablecoloredboldrow}{<comment>}{<background-color>}|\\
+%% is like `{tablecoloredrow}' except that content text is
+%% rendered in boldface (TODO horizontal centering?):
+\newenvironment{tablecoloredboldrow}[2] %% 2011/11/03/08
+ {\TableRow{#1}{\@bgcolor{#2}
+ \@style{font-weight:bold}}}
+ {\endTableRow}
+%% |\begin{tablerow}{<comment>}| %% rm. {<b...>} 2011/12/19
+%% is a special case of `{TableRow}' where the only attribute
+%% yields ``top" vertical alignment (TODO strange):
+%% %% ``top" 2010/05/18:
+\newenvironment{tablerow}[1]{\TableRow{#1}{\@valign@t}}
+ {\endTableRow}
+%% |\starttr| and |\endtr| delimit a row; these commands again
+%% have been made for appearing in different macros.
+%% There is \emph{no} code indenting, probably for
+%% heavy table nesting where indenting was rather useless
+%% (? TODO only in 'texblog.fdf'? there indents would have
+%% been useful).
+%% %% 2010/07/18:
+\newcommand*{\starttr}{<tr>}
+\def\endtr{</tr>}
+%%
+%% === Cells ===
+%% |simplecell{<content>}| produces the most \emph{simple} kind of
+%% an \HTML\ table cell:
+\newcommand*{\simplecell}{\SimpleTagSurr{td}} %% 2010/07/18
+%% |\TableCell{<attributes>}{<content>}| produces the most
+%% \emph{general} kind of a cell, together with a code indent:
+%% % \newcommand*{\TableCell}[2]{\indentiii<td #1>#2</td>}
+%% % \newcommand*{\TableCell}[2]{\indentiii\TagSurr{td}{#1}{#2}}
+%% %% <- 2010/07/18 ->
+\newcommand*{\TableCell}[2]{\indentiii\startTd{#1}#2\endTd}
+%% |\colorwidthcell{<color>}{<width>}{<content>}|
+%% uses just the `@bgcolor' and the `@width' attribute:
+%% %% 2010/06/15:
+\newcommand*{\colorwidthcell}[2]{\TableCell{\@bgcolor{#1}\@width{#2}}}
+%% |\tablewidthcell{<color>}{<width>}{<content>}|
+%% uses just the `@bgcolor' and the `@width' attribute:
+\newcommand*{\tablewidthcell}[1]{\TableCell{\@width{#1}}}
+%% %% |\tablewidthcell{<color>}{<width>}{<content>}| %% 2011/11/09
+%% %% uses just the `@bgcolor' and the `@width' attribute:
+%% %\newcommand*{\tablecolorcell}[1]{\TableCell{\@bgcolor{#1}}}
+%% |\tablecell{<content>}| is like `\simplecell{<content>}',
+%% except that it has a code indent:
+\newcommand*{\tablecell}{\TableCell{}}
+%% |\tableCell{<content>}| is like `\tablecell{<content>}',
+%% except that the content <content> is horizontically centered.
+%% The capital `C' in the name may be considered indicating
+%% ``\strong{c}entered":
+\newcommand*{\tableCell}{\TableCell\@align@c}
+%% Idea: use closing star for environment variants!?
+%%
+%% |\begin{bigtablecell}{<comment>}|
+%% starts an \emph{environment} yielding a table cell element
+%% without attributes, preceded by a \HTML\ comment
+%% <comment> unless <comment> is empty. At least the \HTML\ tags
+%% are indented:
+%% %% 2010/05/19:
+\newenvironment{bigtablecell}[1]{\BigTableCell{#1}{}}
+ {\endBigTableCell}
+% {\ifx\\#1\\% %% 2010/05/30
+% \indentii\ \comment{#1}\CLBrk
+% \fi
+% \indentiii<td>}
+% {\indentii</td>} %% !? 2010/05/23
+%% |\begin{BigTableCell}{<comment>}{<attributes>}|\\
+%% is like `\begin{bigtablecell{<comment>}}' except that it uses
+%% attributes <attributes>:
+%% %% 2010/06/05:
+\newenvironment{BigTableCell}[2]
+ {\ifx\\#1\\\indentii\ \comment{#1}\CLBrk\fi
+ \indentiii\startTd{#2}}
+ {\indentii\endTd} %% TODO indent? 2010/07/18
+%% |\startTd{<attributes>}| and |\endTd| delimit a cell element
+%% and may appear in separate macros, e.g., in an environment
+%% definition. There is no code cosmetic. And finally there is
+%% |\StartTd| that yields less confusing code without attributes:
+%% %% 2010/07/18:
+\newcommand*{\startTd}[1]{<td #1>}
+\newcommand*{\StartTd}{<td>} %% 2011/11/09
+\def\endTd{</td>}
+%% |\emptycell| uses \xmltagcode{td /} instead of
+%% \xmltagcode{td}\xmltagcode{/td} for an empty cell:
+\newcommand*{\emptycell}{<td />} %% 2011/10/07
+%%
+%% === ``Implicit" Attributes and a ``\TeX-like" Interface ===
+%% %% <- 2011/11/08 ->
+%% After some more experience, much musing, and trying new tricks,
+%% I arrive at the following macros (v0.7). \
+%% (i)\enspace When a page or a site has many tables that use the same
+%% attribute values, these should not be repeated for the single
+%% tables, rather the values should be invoked by shorthand macros,
+%% and the values should be determined at a single separate place.
+%% We will have |\stdcellpadding|, %%% |\stdtableheadrow|,
+%% |\stdtableheadcolor| and
+%% |\stdtableheadstyle|. \
+%% (ii)\enspace As with \TeX, `\cr' should suffice to \emph{close}
+%% a \emph{cell} and a \emph{row}, and then to \emph{open} another
+%% \emph{row} and its first \emph{cell}. And there should be a
+%% single command to close a cell within a row and open a next one.
+%%
+%% We use `\providecommand' so the user can determine the values
+%% in a file for 'blog' where 'blogexec' is loaded later.
+%% |\stdcellpadding| should correspond to the \CSS\ settings,
+%% the value of `6' you find here is just what I used recently.
+\providecommand*{\stdcellpadding}{6}
+%% For |\stdtableheadcolor|, I provide a
+%% % ``web-safe" %% very wrong 2012/05/13
+%% gray, `#EEEEEE', that the German Wikipedia uses for articles about
+%% \Wikienref{networking protocol}s
+%% (unfortunately, it doesn't have a
+%% \wikienref{Web colors\#X11_color_names}{%
+%% \CSS-3}\wikienref{X11 color names}{X11} color name):
+\providecommand*{\stdtableheadcolor}{\#EEEEEE}
+%% |\stdtableheadstyle| demands a boldface font.
+%% In general, it is used for the `@style' attribute:
+\providecommand*{\stdtableheadstyle}{font-weight:bold}
+%% |\begin{stdallrulestable}| starts an `{allrulestable}'
+%% environment with ``standard" cell padding and empty width
+%% attribute, then opens a ``standard" row element
+%% with a ``standard" comment as well as a cell:
+\newenvironment{stdallrulestable}{%
+ \allrulestable{\stdcellpadding}{}\CLBrk
+ \TableRow{standard all-rules table}%
+ {\@bgcolor{\stdtableheadcolor}
+ \@style{\stdtableheadstyle}}\CLBrk
+ \indentii\StartTd
+%% `\end{stdallrulestable}' will provide closing of a cell
+%% and a row, including a code cosmetic:
+ }{\indenti\endTd\CLBrk\endTableRow\CLBrk
+ \endallrulestable}
+%% |\endcell| closes a cell and opens a new one. The idea behind
+%% this is that an active character will invoke it. The name is
+%% inspired by `\endgraf' and `\endline' from Plain \TeX\ and
+%% \LaTeX\ (`\newcommand' does not work with `\end'\code{\dots}):
+\def\endcell{\endTd\StartTd}
+%% Plain \TeX's and \LaTeX's |\cr| and |\endline| are redefined
+%% for closing and opening rows and cells, including code cosmetic:
+\renewcommand*{\cr}{\indentii\endTd\CLBrk\indenti\endtr\CLBrk
+ \indenti\startTR\CLBrk\indentii\StartTd}
+\let\endline\cr
+%% |\startTR| is a hook defaulting to `\starttr': %% 2012/08/23
+\newlet\startTR\starttr
+%%
+%% === Filling a Row with Dummy Cells ===
+%% These macros were made, e.g., for imitating a program window
+%% with a title bar (spanning someting more complex below),
+%% perhaps also for a Gantt chart.
+%% |\FillRow{<span>}{<attributes>}| produces a cell without text,
+%% spanning <span> columns, with additional attributes <attributes>.
+%% %% Generalization 2010/06/28:
+%% % \newcommand*{\FillRow}[2]{% %% broke line 2011/01/24
+%% % \indentiii\TagSurr{td}{\@colspan{#1} #2}{}}
+%% %% <- 2010/07/18 ->
+\newcommand*{\FillRow}[2]{\indentiii\startTd{\@colspan{#1} #2}\endTd}
+%% |\fillrow{<span>}| instead only uses the `@colspan' attribute:
+\newcommand*{\fillrow}[1]{\FillRow{#1}{}}
+%% |\fillrowcolor{<span>}{<color>}| just uses the `@colspan'
+%% and the `@bgcolor' attributes:
+\newcommand*{\fillrowcolor}[2]{\FillRow{#1}{\@bgcolor{#2}}}
+%% === Skipping Tricks ===
+%% %% 2011/10/13
+%% |\HVspace{<text>}{<width>}{<height>}| may change,
+%% needed for 'blogdot.sty' but also for |\vspace{<height>}|
+%% with 'texblog'. It is now here so I will be careful
+%% when I want to change something. \xmltagcode{tbody}
+%% improved the function of `\HVspace' constructions
+%% as link text with 'blogdot.sty'.
+\newcommand*{\HVspace}[3]{%
+ \CLBrk
+ \startTable{\@width{#2} \@height{#3}
+ \@border{0}
+ \@cellpadding{0} \@cellspacing{0}}%
+ \tbody
+ \CLBrk %% 2011/10/14
+ \tablerow{HVspace}% %% 2011/10/13
+%% <- inserting text at top for 'blogdot' attempts---that
+%% finally did not help anything (2011/10/15) ->
+ \simplecell{#1}%
+ \endtablerow %% 2011/10/13
+ \CLBrk %% 2011/10/14
+ \endtbody
+ \endTable
+ \CLBrk}
+%% |\hvspace{<width>}{<height>}| ...:
+\newcommand*{\hvspace}{\HVspace{}}
+%% |\vspace{<height>}| ... (TODO: `{0}'!?):
+\renewcommand*{\vspace}[1]{\hvspace{}{#1}}
+%%
+%% == Misc ==
+%% \TeX's |\hrule| (rather deprecated in \LaTeX) is redefined
+%% to produce an \HTML\ horizontal line:
+\renewcommand*{\hrule}{<hr>}
+%% For references, there were
+% \catcode`\^=\active
+% \def^#1{\SimpleTagSurr{sup}{#1}}
+%% and
+% \newcommand*{\src}[1]{\SimpleTagSurr{sup}{[#1]}}
+%% as of 2010/05/01, inspired by the \xmltagcode{ref} element
+%% of MediaWiki; moved to `xmlprint.tex' 2010/06/02.
+%%
+%% == Leaving and HISTORY ==
+\endinput
+%%
+ VERSION HISTORY
+v0.1 2010/08/20 final version for DFG
+v0.2 2010/11/08 final documentation version before
+ moving some functionality to 'fifinddo'
+v0.3 2010/11/10 removed ^^J from \head
+ 2010/11/11 moving stuff to fifinddo.sty; \BlogCopyFile
+ 2010/11/12 date updated; broke too long code lines etc.;
+ \CatCode replaced (implemented in niceverb only);
+ \ifBlogAutoPars etc.
+ 2010/11/13 doc: \uml useful in ...; \texcs
+ 2010/11/14 doc: argument for {commentlines},
+ referring to environments with curly braces,
+ more on \ditem
+ 2010/11/15 TODO: usage, templates
+ 2010/11/16 note on {verbatim}
+ 2010/11/23 doc. corr. on \CtanPkgRef
+ 2010/11/27 "keyword"; \CopyLine without `fd'
+ 2010/12/03 \emhttpref -> \ithttpref
+ 2010/12/23 `%' added to \texhaxpref
+ 2011/01/23 more in \Provides...
+ 2011/01/24 updated copyright; resolving `td' ("today")
+ JUST STORED as final version before texlinks.sty
+v0.4 2011/01/24 moving links to texlinks.sty
+v0.41 2011/02/07 \NormalHTTPref
+ 2011/02/10 refined call of `texlinks'
+part of MOREHYPE RELEASE r0.3
+v0.5 2011/02/22 \BlogProvidesFile
+ 2011/02/24 ... in \BlogCopyFile
+ 2011/02/25 ordering symbols
+ 2011/02/26 subsection Greek; note on \declareHTMLsymbol
+ 2011/03/04 diacritics
+ 2011/03/06 \cs
+ 2011/03/09 \var
+ 2011/03/16 \robots
+ 2011/03/19 doc. \fileancref arg.s corr.
+ 2011/03/29 \Sigma, ...
+ 2011/03/31 \minus
+ 2011/04/04 \times, \sub, \delta
+ 2011/04/11 Greek completed
+ 2011/04/14 \emptyset
+ 2011/04/22 \deqtd
+ 2011/04/24 doc.: folding, \stylesheet, ordered "tables";
+ @border, @align, @valign
+ 2011/04/25 lesser indentation with TableRow
+ 2011/04/26 \,, \thinspace, \@title; doc. \@name
+ 2011/04/28 [\circ] PROBLEM still
+ 2011/04/29 \rightitpar
+ 2011/05/07 \cdot
+ 2011/05/08 extended doc. on math symbols; \sdot;
+ \ast replaces \lowast; \subset, \subseteq;
+ \angled
+ 2011/05/09 \euro
+ 2011/05/11 |\geq| etc.; new section "logical markup"
+ 2011/05/12 corr. doc. \heading
+ 2011/05/14 right mark of \deqtd was rsquo instead of lsquo!
+ 2011/05/18 \S and note on \StoreOtherCharAs
+ 2011/06/27 \httpsref; doc: \acro
+ 2011/07/22 \thinspace vs. \thinsp; 'fifinddo''s
+ 2011/07/25 "todo" on \description
+ 2011/08/18f.removing \FileRef, 0.42-> 0.5
+ 2011/08/31 clarified use of \urlapostr
+part of MOREHYPE RELEASE r0.4
+v0.6 2011/09/08 doc. uses \HTML, \lq/\rq with &circ;,
+ doc. fix `mult-'; \degrees
+ 2011/09/21 \acronym
+ 2011/09/22 \metavar; TODO \glqq...
+ 2011/09/23 \bdquo
+ 2011/09/25 doc. `Characters/Symbols'; \figurespace
+ 2011/09/27 "universal" attributes completed, reworked doc.
+ 2011/09/30 end lists with </li>
+ 2011/10/01 \dagger, \ddagger
+ 2011/10/04 \item includes </li> [2011/10/11: ???]
+ 2011/10/05 {style}; doc. \acronym -> \acro, \pagebreak,
+ rm. \description; {center} accesses <center>,
+ \useHTMLenvironment replaces \declareHTMLelement
+ and \renderHTMLelement, message "generating"
+ 2011/10/07 \emptycell
+ 2011/10/10 doc.: page breaks, $$->\[/\]
+part of MOREHYPE RELEASE r0.5
+v0.61 2011/10/11 </li> in \item again, \Provides... v wrong
+ 2011/10/12 \hnewref, `\ ' in allrulestable
+ 2011/10/14 \CLBrk's
+ 2011/10/15 doc. note on \HVspace/blogdot
+part of MOREHYPE RELEASE r0.51
+v0.62 2011/10/16 \hyperlink, \hypertarget; doc. fixes there
+ 2011/10/20 \textcolor by <span>, \textsf
+ 2011/10/21 \ctanref now in texlinks.sty;
+ doc.: grammar with `that'
+ 2011/10/22 \BlogCopyFile message removed
+part of MOREHYPE RELEASE r0.52
+v0.7 2011/11/03 {tablecoloredboldrow}
+ 2011/11/05 \ContentAtt -> \@content,
+ \BlogCopyFile -> \BlogProcessFile (blogexec),
+ doc. different \pagebreak's
+ 2011/11/06 run \BlogCopyLines, doc. \[...\]
+ 2011/11/07 \ProvideBlogExec
+ 2011/11/08 \endtr in \endTableRow, using \MakeOther,
+ right quote change moves to \BlogCodes,
+ \BlogInterceptHash; rm. \AmpMark & doc. about it,
+ mod. on #; doc. for tables; start doc. "implicit"
+ table attributes and "TeX-like" interface
+ 2011/11/09 \tablecolorcell(?); cont. "implicit" etc.;
+ \StartTd
+ 2011/11/20 \isotoday, \BlogProcessFinalFile,
+ catcodes of `<' `>' untouched; restructured,
+ structured processing, misc -> ordinary
+ 2011/11/21 BlogLIGs
+ 2011/11/23 \xmltagcode, \xmlentitycode, \c;
+ doc: <p>, \secref, \pagebreak
+ 2011/11/24 doc: example results for diacritics
+ 2011/11/27 \ParseLigs; doc. rm. \pagebreak
+ 2011/12/12 \title uses \SimpleTagSurr
+ 2011/12/19 doc. fix {tablerow}
+ 2011/12/21 \asciidq, \asciidqtd
+ 2012/01/06 \acro; using dowith.sty (\declareHTMLsymbols);
+ doc.: cross-referring for naming policies
+ 2012/01/07 \MakeActiveDef\~ for \FDpseudoTilde
+ 2012/01/11 (C)
+ 2012/01/21 \quot, \quoted. \squoted
+ 2012/02/04 \newacronym
+ 2012/03/14 removed hidden and another comment with
+ \BlogCopyLines, fixed latter, TODO on \NoBlogLigs
+ 2012/03/17 tweaked \@typeset@protect for \EXECUTE
+ 2012/03/30 space in stdallrules... after @bgcolor
+ 2012/04/03 \CLBrk in \@useHTMLelement
+ 2012/04/09 \htmlentity, \unicodeentity
+ 2012/05/13 \ss; better comment on \uml;
+ #EEEEEE not "web-safe"
+ 2012/05/15 xEDIT folding in tables section
+part of MOREHYPE RELEASE r0.6
+v0.8 2012/06/07 \underbar
+ 2012/07/25 arrows completed [no: 2012/09/13];
+ doc. "police" -> "policy"
+ 2012/07/30 \spanstyle, applied; doc. \pagebreak
+ 2012/08/01 \textup
+ 2012/08/02 doc. corr. braces for \DeclareHTMLsymbols
+ 2012/08/06 sec. currencies
+ 2012/08/07 divided math section, using \declareHTMLsymbols,
+ various additional symbols
+ 2012/08/23 \startTR
+ 2012/08/28 \MakeActiveLet\'\rq with `actcodes.sty',
+ attributes start with space
+ 2012/09/02 about -> around
+ 2012/09/06 Content-T -> content-t - bugfix?,
+ \BlogProvidesFile with DOCTYPE, some attribute
+ lists rely on space from \declareHTMLattrib,
+ there another \reserved@a;
+ "Head": \metanamecontent, \metanamelangcontent
+ 2012/09/07 "Head": \author, \date, \metadescription,
+ \keywords; lang variants
+ 2012/09/08 \TagSurr and \MetaTag without space,
+ \declareHTMLattrib{align}, \@valign@t adjusted;
+ \pagebreak[3]
+ 2012/09/13 \crarrow, "Fonts" -> "Physical markup" etc.,
+ \abbr, \newabbr
+ 2012/09/14 \xmleltcode, \xmleltattrcode; el-name -> elt-name
+ 2012/09/17 \asciidq + \asciidqtd move to `catchdq.sty'
+ 2012/10/03 \newlet;
+ doc.: label process -> catcodes, using \secref
+ 2012/10/05 moved \ast; \exists, \forall
+ 2012/10/24 quotes: completed, override `langcode.sty'
+ 2012/10/25 using \DeclareHTMLsymbols for quotes, corr. there,
+ \spone etc., \sfrac
+ 2012/10/28 spanstyle -> stylespan
+ 2012/11/16 \TagSurr and \MetaTag with space again
+ 2012/11/19 \endgraf -> <p>
+ 2012/11/29 `blogligs.sty', `markblog.sty' ([ligs], [mark])
+part of MOREHYPE RELEASE r0.7
+v0.81 2012/12/20 \-, {enumtype}
+ 2013/01/02 caron, "Ligatures ..." (&aelig; etc.)
+ 2013/01/04 updating copyright
+part of MOREHYPE RELEASE r0.81
+v0.81a 2013/01/21 \newlet in subsubsection