\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| 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{.tex}[]| \ 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]{% \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" `[]' %% 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 ` '! %% moved up 2011/11/08 % \catcode`\~\active \MakeActiveDef\~{ }%% 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[]{}|\] %% %% <- display 2011/11/06 %% ``copies" the \TeX\ 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

\fi}}}% \BlogProcessLine %% 2011/11/05 }% } %% 'fifinddo' v0.5 allows the following %% 2011/11/20 %% \[|\BlogProcessFinalFile[]{}|\] %% 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{}|: %% 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{}{}{}|\] %% (I hoped this way code would be more readable %% than with `\TagSurround' ...) %% and \[|\SimpleTagSurr{}{}|\] %% are used to avoid repeating element names 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} \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} %% ... undone 2012/11/16, bad with ``direct" use of #2 %% (with attributes not declared): \newcommand*{\TagSurr}[3]{<#1 #2>#3} %% %% === Attributes === %%% (General) %%% %% Inspired by the common way to use `@' for referring %% to element attributes---i.e., `@' refers to attribute %% `'---in \HTML/\acro{XML} documentation, we often use %% \[`\@{}' \qquad %% \mbox{to ``abbreviate"}\qquad `=""'\] %% 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{}|, even with a check %% whether `\@' 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{}', `\@' is a %% \TeX\ macro expecting one parameter for the specification. %% %% % |\declareHTMLattribs{{}}| essentially issues %% % \[`\declareHTMLattrib{}\declareHTMLattribs{}'\] %% % 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 %% `\@' 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{}| yields \qtd{\xmltagcode{}}: \newcommand*{\xmltagcode}[1]{\code{\lt#1\gt}} %% %% elements 2012/09/14: %% |\xmleltcode{}{}| displays the code for an entire %% element containing without attributes: \newcommand*{\xmleltcode}[2]{\code{\lt#1\gt#2\lt/#1\gt}} %% |\xmleltcode{}{}{}| displays the code for an entire %% element \emph{with} attribute text \qtd{} %% containing : \newcommand*{\xmleltattrcode}[3]{\code{\lt#1 #2\gt#3\lt/#1\gt}} %% |\xmlentitycode{}| yields the code \qtd{`&&;'} for an %% entity with name : \newcommand*{\xmlentitycode}[1]{\code{\}} %% %% === Head === %% |\head| produces the first two tags that an \HTML\ file must start: \newcommand*{\head}{} %% ^^J rm 2010/10/10 %% |\MetaTag{}| creates a \xmltagcode{meta} tag: \newcommand*{\MetaTag}[1]{\indenti} %% |\charset{}| %% 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{}{}| obviously: %% 2012/09/06 \newcommand*{\metanamecontent}[2]{% \MetaTag{\@name{#1}\@content{#2}}} %% %% 2012/09/07: %% |\author{}| and |\date{}| set according metadata, %% somewhat opposing \LaTeX\ (TODO!?): \renewcommand*{\author}{\metanamecontent{author}} \renewcommand*{\date}{\metanamecontent{date}} %% The name of |\metadescription{}| allows using %% `\begin{description}' (cf. secref{env}): \newcommand*{\metadescription}{\metanamecontent{description}} %% |\keywords{}|: \newcommand*{\keywords}{\metanamecontent{keywords}} %% |\robots{}|: %% 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{}{}{}|,\\ %% 2012/09/06 %% in addition to the above, uses language code : %% 2012/09/07 \newcommand*{\metanamelangcontent}[3]{% \MetaTag{\@name{#1}\@lang{#2}\@content{#3}}} %% So there can be language-dependent descriptions and keywords:\\ %% |\langdescription{}| and |\langkeywords{<>}| \newcommand*{\langdescription}{\metanamelangcontent{description}} \newcommand*{\langkeywords} {\metanamelangcontent{keywords}} %% |\stylesheet{}{}| uses `.css' for %% `media=""': \newcommand*{\stylesheet}[2]{% \space\space %% 2010/09/10 } %% %% 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] {} {} %% With |\title{}|, heads %% grammar? TODO 2010/04/08 %% the browser window: %% % \renewcommand*{\title}[1]{\space\space#1} %% %% <- 2011/12/12 -> \renewcommand*{\title}{\space\space\SimpleTagSurr{title}} %% %% === Body === %% |\body| separates the `head' element from the `body' element %% of the page. \newcommand*{\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}{} %% %% === Comments === %% |\comment{}| produces a one-line \HTML\ comment. %% By contrast, there is an environment %% |{commentlines}{}| %% 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 is a \emph{comment} for explaining what is %% commented out. %% 2010/11/14 \newcommand*{\comment}[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 {} %% === \CSS === %% 2012/07/30 spanstyle -> stylespan 2012/10/28 %% |\stylespan{}{}| applies the \CSS\ styling %% to : \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}{
} \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{

} %% + empty lines !? 2010/04/26 %% <- difficult with `\stop'; 2010/09/10: %% |\endgraf| produces \xmltagcode{p}---TODO!? %% todo 2011/11/23 \renewcommand*{\endgraf}{

} %% was

2012/11/19 %% %% 2011/11/23: %% However, I rather have decided for inserting a literal %% \qtd{\xmltagcode{p}} using an editor (keyboard) shortcut. %% %% |\rightpar{}| places 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{}| 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{}| \qquad %% \mbox{just expands to}\qquad %% \xmltagcode{i}\xmltagcode{/i}\] \renewcommand*{\textit}{\SimpleTagSurr i} %% etc. for |\textbf|, |\texttt| ...: \renewcommand*{\textbf}{\SimpleTagSurr b} \renewcommand*{\texttt}{\SimpleTagSurr{tt}} %% 2010/06/07 %% |\textsf{}| chooses some sans-serif: %% 2011/10/20 2012/07/30 \renewcommand*{\textsf}{\stylespan{font-family:sans-serif}} %% |\textup{}| may undo surrounding slanting or ...: %% 2012/08/01 \renewcommand*\textup{\stylespan{font-style:normal}} %% |\textcolor{}{}| %% 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{}| 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{}{}| prints with size dependent %% on . 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{}| marks 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{}| is \LaTeX's command again, but somewhat abused, %% expanding to \lq\xmltagcode{em}\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{}| again just calls an \HTML\ element. %% It may behave like `\textbf{}', or ... I don't know ... \newcommand*{\strong}{\SimpleTagSurr{strong}} %% %% 2011/03/09: %% |\var{}| 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{}|. 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{}| %% (supporting both naming policies mentioned in \secref{name-policy}): \newcommand*{\acronym}{\SimpleTagSurr{acronym}} \newlet\acro\acronym %% %% 2012/02/04: %% |\newacronym{}| saves you from doubling the %% when you want to create the shorthand macro `\': \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{}| and |\newabbr{}| 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{}| just executes the macro `\', %% and %% \cmdboxitem|\end{}| just executes the macro `\end'. %% \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{}{}|, %% you can access the \xmltagcode{} element %% by the `' 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[]}{\@useHTMLelement}} \newcommand*{\@useHTMLelement}[3][]{% \@namedef{#2}{<#3>}% \@namedef{end#2}{#1\CLBrk}} %% \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}{

}{

} % \renewenvironment*{center}{

}{

} \useHTMLelement{center}{center} %% The next definitions for |{enumerate}|, |{itemize}|, %% `{verbatim}' follow policy~(ii): \useHTMLelement*{enumerate}{ol} \useHTMLelement*{itemize} {ul} %% |\begin{enumtype}{}| starts an enumeration %% environment with enumeration type %% which can be one out of `1', `a', `A', `i', `I' %% (somewhat resembling the functionality of the %% \ctanpkgref{enumerate} package): \newenvironment{enumtype}[1]{
    } %% %% 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{}, %% repairs more links in \acro{DANTE} talk %% (missing again 2011/10/11!?): \renewcommand*{\item}{% \indenti\CLBrk %% 2011/10/11 \indenti
  1. } %% \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{}| %% having a \emph{mandatory} argument %% (TODO star?). %% 2011/10/05 \useHTMLelement{description}{dl} \newcommand*{\ditem}[1]{\indenti
    \strong{#1}
    } %% %% == Links == %% === Basic Link Macros === %% %% doc. fixes + hyperref 2011/10/16: %% |\hanc{}{}| makes an anchor with %% \HTML\ label like \ctanpkgref{hyperref}'s %% |\hypertarget{}{}| %% (that we actually provide as well, %% towards printing from the same source): \newcommand*{\hanc}[1]{\TagSurr a{\@name{#1}}} \newlet\hypertarget\hanc %% |\hancref{}{}{}| makes an anchor with %% \HTML\ label and at the same time a link to : \newcommand*{\hancref}[2]{\TagSurr a{\@name{#1} \@href{#2}}} %% |\href{}{}| makes a link to %% (as with 'hyperref'): \newcommand*{\href}[1]{\TagSurr a{\@href{#1}}} %% %% === Special cases of Basic Link Macros === %% |\autanc{}| creates an anchor where is %% the text and the internal label at the same time: \newcommand*{\autanc}[1]{\hanc{#1}{#1}} %% 2010/07/04 %% |\ancref{}{}| makes a link to %% an anchor 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{}{}|: \newcommand*{\ancref}[1]{\href{\##1}} \newlet\hyperlink\ancref %% |\autref{}| makes a link to an anchor %% named 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., 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{}|.\] 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{}|', 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{}{}{}| links to %% %% <- `text' added 2011/03/19 %% anchor on web page : \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{}{}{}| %% that %% 2011/10/21 %% makes a link to : \newcommand*{\hnewref}[2]{% \TagSurr a{\@href{#1#2" target="_blank}}} %% So \[|\httpref{}{}|\] %% makes a link to \urlfmt{http://}: \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{}| defines a macro `\' %% expanding to `&;'. Checking for prior definedness %% hasn't been implemented yet. %% (TODO; but sometimes redefining ...) %% 2011/02/26 \newcommand*{\declareHTMLsymbol}[1]{\@namedef{#1}{}} %% %% TODO replace \@namedef with \defcsname %% |\declareHTMLsymbols{}{}| essentially issues %% corr. br. 2012/08/02 %% \[`\declareHTMLsymbol{}\declareHTMLsymbols{}'\] %% while `\declareHTMLsymbols{}' essentially does nothing---great, %% this is an explanation by recursion! \newcommand*{\declareHTMLsymbols}{\DoWithAllOf\declareHTMLsymbol} %% |\renderHTMLsymbol{}{}| \emph{redefines} %% macro to expand to `&;': \newcommand*{\renderHTMLsymbol} [2]{\renewcommand*{#1}{}} %% 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 |é| (\'e), %% |ç| (\c{c}), %% 2011/11/23 %% |ô| (\^o) etc. can be accessed %% by \TeX's accent commands |\'|, |\c|, |\^|, |\`|, |\"|: % \declareHTMLsymbol{eacute} % \declareHTMLsymbol{ocirc} \renewcommand*{\'}[1]{acute;} \renewcommand*{\c}[1]{cedil;} \renewcommand*{\^}[1]{circ;} \renewcommand*{\`}[1]{grave;} \renewcommand*{\"}[1]{uml;} %% %% 2012/05/13: %% ... former |\uml{}| is obsolete, use |\"| %% (or `\"') instead. %% % may have been overestimated: %% % (useful in macro definitions): %% 2010/11/13 %% % \newcommand* {\uml}[1] {uml;} %% 2010/08/24 %% %% %% 2013/01/01: %% |\v{}| just works with $=`s'$ and $=`S'$ %% for \v{s} and \v{S}: \renewcommand*{\v}[1]{#1caron;} %% %% === Ligatures and the Like === %% 2013/01/01 %% |\lig{}| forms a ligature from and : \newcommand*{\lig}[1]{lig;} %% 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}{↵} %% 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 {–} %% \end... illegal \newcommand*{\emdash} {—} %% %% === Spaces === %% ``Math" (not only!)\ spaces |\,|, |\enspace|, |\quad|, |\qquad|: %% %% <- 2011/04/26 \renderHTMLsymbol{\enspace}{ensp} \renderHTMLsymbol{\quad} {emsp} \renewcommand* {\qquad} {\quad\quad} %% 2011/07/22: ` ' allows line breaks, %% so we introduce |\thinsp| to access ` ', %% 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{}| 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{}| %% (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{}| quotes in the English style using double quote %% marks, |\enqtd{}| uses single quote marks instead, %% |\dedqtd{}| quotes in German style, %% 2011/12/21: %% |\quoted{}| 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{}| surrounds 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}{¹} \newcommand*{\sptwo}{²} \newcommand*{\spthree}{³} \newcommand*{\spa}{ª} \newcommand*{\spo}{º} %% For slanted fractions, I think of \ctanpkgref{xfrac}'s %% `\sfrac{}{}'. %% |\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}{°} %% 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{}| %% 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`ˆ'\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 `·' %% 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 `§', %% 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{`&&;'} or \dqtd{`&&&#;'} %% (for \Wikienref{Unicode}) may not be available. %% We provide %% \[|\htmlentity{}|\] %% as well as %% \[|\unicodeentity{}|\] %% and %% \[|\unicodehexentity{}|\] %% for such situations: \newcommand*{\htmlentity}[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{\}| or `\texcs\' %% (care for spacing yourself): \newcommand*{\texcs}[1]{\code{\string#1}} %% 2010/11/13 %% Good old |\cs{}| may be preferable: \def\cs#1{\code{\BackslashChar#1}} %% 2011/03/06 %% |\metavar{}|: %% 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{}| 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]{} \def\endTable{
    } %% |\@frame@box| among the `\startTable' %% 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}{}{}| %% starts a table environment with all possible rules %% and some code cosmetic. 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}{}{}|\\ starts an environment %% producing an \HTML\ comment and a table row %% with attributes , including code cosmetic. \newenvironment*{TableRow}[2]{%% lesser indentation 2011/04/25 \ \comment{ #1 }\CLBrk \indenti% }{% \indenti\endtr} %% \endtr 2011/11/08 %% |\begin{tablecoloredrow}{}{}|\\ %% is a special case of `{TableRow}' where `@bgcolor' is the only %% attribute: \newenvironment{tablecoloredrow}[2] {\TableRow{#1}{\@bgcolor{#2}}} {\endTableRow} %% |\begin{tablecoloredboldrow}{}{}|\\ %% 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}{}| %% rm. {} 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}{} \def\endtr{} %% %% === Cells === %% |simplecell{}| produces the most \emph{simple} kind of %% an \HTML\ table cell: \newcommand*{\simplecell}{\SimpleTagSurr{td}} %% 2010/07/18 %% |\TableCell{}{}| produces the most %% \emph{general} kind of a cell, together with a code indent: %% % \newcommand*{\TableCell}[2]{\indentiii#2} %% % \newcommand*{\TableCell}[2]{\indentiii\TagSurr{td}{#1}{#2}} %% %% <- 2010/07/18 -> \newcommand*{\TableCell}[2]{\indentiii\startTd{#1}#2\endTd} %% |\colorwidthcell{}{}{}| %% uses just the `@bgcolor' and the `@width' attribute: %% %% 2010/06/15: \newcommand*{\colorwidthcell}[2]{\TableCell{\@bgcolor{#1}\@width{#2}}} %% |\tablewidthcell{}{}{}| %% uses just the `@bgcolor' and the `@width' attribute: \newcommand*{\tablewidthcell}[1]{\TableCell{\@width{#1}}} %% %% |\tablewidthcell{}{}{}| %% 2011/11/09 %% %% uses just the `@bgcolor' and the `@width' attribute: %% %\newcommand*{\tablecolorcell}[1]{\TableCell{\@bgcolor{#1}}} %% |\tablecell{}| is like `\simplecell{}', %% except that it has a code indent: \newcommand*{\tablecell}{\TableCell{}} %% |\tableCell{}| is like `\tablecell{}', %% except that the 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}{}| %% starts an \emph{environment} yielding a table cell element %% without attributes, preceded by a \HTML\ comment %% unless 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} % {\indentii} %% !? 2010/05/23 %% |\begin{BigTableCell}{}{}|\\ %% is like `\begin{bigtablecell{}}' except that it uses %% 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{}| 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]{} \newcommand*{\StartTd}{} %% 2011/11/09 \def\endTd{} %% |\emptycell| uses \xmltagcode{td /} instead of %% \xmltagcode{td}\xmltagcode{/td} for an empty cell: \newcommand*{\emptycell}{} %% 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{}{}| produces a cell without text, %% spanning columns, with additional 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{}| instead only uses the `@colspan' attribute: \newcommand*{\fillrow}[1]{\FillRow{#1}{}} %% |\fillrowcolor{}{}| just uses the `@colspan' %% and the `@bgcolor' attributes: \newcommand*{\fillrowcolor}[2]{\FillRow{#1}{\@bgcolor{#2}}} %% === Skipping Tricks === %% %% 2011/10/13 %% |\HVspace{}{}{}| may change, %% needed for 'blogdot.sty' but also for |\vspace{}| %% 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{}{}| ...: \newcommand*{\hvspace}{\HVspace{}} %% |\vspace{}| ... (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}{
    } %% 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 ˆ, 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
  2. 2011/10/01 \dagger, \ddagger 2011/10/04 \item includes [2011/10/11: ???] 2011/10/05 {style}; doc. \acronym -> \acro, \pagebreak, rm. \description; {center} accesses
    , \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 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 , \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:

    , \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 ->

    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 ..." (æ etc.) 2013/01/04 updating copyright part of MOREHYPE RELEASE r0.81 v0.81a 2013/01/21 \newlet in subsubsection