diff options
author | Karl Berry <karl@freefriends.org> | 2012-06-01 00:22:45 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-06-01 00:22:45 +0000 |
commit | 2ac35adc5ecd45f8855d340dd51c54b54c8baffc (patch) | |
tree | 3a33214fa67b7c5513d171e69b3c2b7877bb8555 /Master/texmf-dist/tex/latex/morehype | |
parent | 338e91cd3a8d49148c9fc68823f26b28dff0f77e (diff) |
morehype (30may12)
git-svn-id: svn://tug.org/texlive/trunk@26758 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/morehype')
-rw-r--r-- | Master/texmf-dist/tex/latex/morehype/atari_ht.fdf | 9 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/morehype/blog.sty | 897 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/morehype/morehype.RLS | 3 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/morehype/texblog.fdf | 519 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/morehype/texlinks.sty | 169 |
5 files changed, 1182 insertions, 415 deletions
diff --git a/Master/texmf-dist/tex/latex/morehype/atari_ht.fdf b/Master/texmf-dist/tex/latex/morehype/atari_ht.fdf new file mode 100644 index 00000000000..9081480584e --- /dev/null +++ b/Master/texmf-dist/tex/latex/morehype/atari_ht.fdf @@ -0,0 +1,9 @@ +\ProvidesFile{atari_ht.fdf}[2012/05/13 Atari umlauts for blog.sty] +\def\TextCodes{% + \MakeActiveDef{\"A}\MakeActiveDef{\"O}\MakeActiveDef{\"U}% + \MakeActiveDef{\"a}\MakeActiveDef{\"o}\MakeActiveDef{\"u}% + \MakeActiveDef{\ss} + %% <- TODO \MakeActiveLet, catcode package, from niceverb +} +\endinput + diff --git a/Master/texmf-dist/tex/latex/morehype/blog.sty b/Master/texmf-dist/tex/latex/morehype/blog.sty index 947ebabfe96..174ef0c5638 100644 --- a/Master/texmf-dist/tex/latex/morehype/blog.sty +++ b/Master/texmf-dist/tex/latex/morehype/blog.sty @@ -1,6 +1,5 @@ -\NeedsTeXFormat{LaTeX2e}[1994/12/01] %% \newcommand* etc. -\ProvidesPackage{blog}[2011/10/22 v0.62 simple fast HTML (UL)] -%% copyright (C) 2010 2011 Uwe Lueck, +\ProvidesPackage{blog}[2012/05/15 v0.7 simple fast HTML (UL)] +%% copyright (C) 2010 2011 2012 Uwe Lueck, %% http://www.contact-ednotes.sty.de.vu %% -- author-maintained in the sense of LPPL below. %% @@ -16,62 +15,27 @@ %% http://www.contact-ednotes.sty.de.vu %% %% == Processing == -%% We are building on the 'fifinddo' package: -\RequirePackage{fifinddo} -%% |\CLBrk| is a \emph{code line break} -%% (also saving subsequent comment mark): -\newcommand*{\CLBrk}{^^J} +%% \label{sec:process} +%% === 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} -%% |\BlogCopyFile[<changes>]{<src-file>}| -%% ``copies" the \TeX\ source file <src-file> -%% into the file specified by `\ResultFile'. -%% As in \TeX\ an empty line starts a new paragraph, -%% we ``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, -%% I am not entirely sure that this won't have -%% unwanted effects, 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} -\DeclareOption{autopars}{\BlogAutoPars} -\ProcessOptions -\MakeOther\< \MakeOther\> %% TODO ... -\newcommand*{\BlogCopyFile}[2][]{% -% \typeout{^^J\screenqtd{blog.sty} generating %% 2011/10/05 -% \screenqtd{\htmljob\htmakeext}}% -%% <- 2011/10/22: such a message should be in driver file -%% when it is clear how many source files the target file has. - \ProcessFileWith[\BlogCodes - \let\ProvidesFile\BlogProvidesFile %% 2011/02/24 - \let\protect\@empty %% 2011/03/24 - #1]{#2}{% - \IfFDinputEmpty - {\IfFDpreviousInputEmpty - \relax - {\WriteResult{\ifBlogAutoPars<p>\fi}}}% - \CopyLine - }% -} -%% 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`\ \catcode`\~\active \BasicNormalCatCodes} -%% The tilde is active as in Plain~TeX too, it is so natural to -%% use it for abbreviating \HTML's ` '! %% +%% === 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} @@ -85,7 +49,9 @@ \comment{ generated from\CLBrk\CLBrk \ \ \ \ \ \ \ \ \ #1, #2,\CLBrk\CLBrk \ \ \ \ \ with blog.sty, - \GenDate\ }}} %% TODO predefine? + \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 @@ -94,9 +60,166 @@ %% the closing brace of its mandatory argument. %% The feature may require inserting %% \[`\let\ProvidesFile\BlogProvidesFile'\] -%% somewhere, e.g., in `\BlogCopyFile'. +%% 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}): + \MakeActiveDef\'{’}% %% here 2011/11/08 + \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" === +%% \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 replacement chain follows (TODO move to `.cfg'). +%% As opposed to `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!? +%% +%% === \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. %% -%% \pagebreak %% 2011/10/10 %% == General \HTML\ Matters == %% The following stuff is required for any web page %% (or hardly evitable). @@ -141,31 +264,32 @@ \def\reserved@a{@#1}% \@ifundefined{@#1}% {\@namedef{@#1}##1{#1="##1"}}% - \@notdefinable} + \@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 -\declareHTMLattrib{class} -\declareHTMLattrib{id} -\declareHTMLattrib{style} -\let\@title\relax %% for \title in latex.ltx -\declareHTMLattrib{title} %% 2011/04/26 -\declareHTMLattrib{lang} -\declareHTMLattrib{dir} +\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 -%% |@name| for %% 2011/04/26 %% 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} @@ -206,53 +330,55 @@ %% \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.} +%% % Cf. |\ContentAtt| for \xmltagcode{meta} tags ... +%% % well, not so bad, as the main purpose of this namespace +%% % is saving tokens \emph{in macros.} %% -%% === \HTML's Special Symbols === +%% === Hash Mark === %% |#| is needed for numerical specifications in \HTML, -%% especially colors and Unicode symbols, +%% 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 -%% in order to refer to their \HTML\ meaning.---I \textbf{wonder} -%% 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. -{\catcode`\&=12 \catcode`\#=12 - \gdef\AmpMark{&} \gdef\#{#}} +%% 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}} +%% |\xmlentitycode{<name>}| yields the code \qtd{`&&<name>;'} for an +%% entity with name <name>: +\newcommand*{\xmlentitycode}[1]{\code{\}} +%% %% === Head === %% |\head| produces the first two tags that an \HTML\ file must start: \newcommand*{\head}{<html><head>} %% ^^J rm 2010/10/10 -%% |\MetaTag{<inside>}| and |\ContentAtt{<value>}| -%% are internal shortcuts: -\newcommand*{\MetaTag}[1]{\space\space<meta #1>} -\newcommand*{\ContentAtt}[1]{content="#1"} +%% |\MetaTag{<inside>}| creates a \xmltagcode{meta} tag: +\newcommand*{\MetaTag}[1]{\indenti<meta #1>} %% \indenti 2011/11/05 %% |\charset{<code-page>}| \newcommand*{\charset}[1]{% - \MetaTag{http-equiv="Content-Type" \ContentAtt{text/html; #1}}} -%% |\description{<text>}| for web searches (I think): -% \newcommand*{\description}[1]{% -% \MetaTag{\@name{description} \ContentAtt{#1}}} -%% ... an outright \textbf{mistake!} %% commented out 2011/10/05 -%% The definition is overridden -%% to get the \HTML\ equivalent to \LaTeX's `description' environment. -%% `\newcommand' did not warn here because we don't load any \LaTeX\ -%% class for text-processing macros and code generation.---And so -%% some |\MetaDescr| should be defined---and used finally! TODO + \MetaTag{http-equiv="Content-Type" \@content{text/html; #1}}} +%% TODO: \xmltagcode{meta \@name{description} \@content{<text>}} +%% %% <- 2011/11/05 %% %% |\robots{<instructions>}|: \newcommand*{\robots}[1]{%% juergenf: index, follow, noarchive - \MetaTag{\@name{robots} \ContentAtt{#1}}} + \MetaTag{\@name{robots} \@content{#1}}} %% |\norobots| for privacy: %% 2011/03/16 \newcommand*{\norobots}{\robots{noarchive,nofollow,noindex}} %% |\stylesheet{<media>}{<css>}| uses <css>`.css' for @@ -265,13 +391,15 @@ %% %% 2011/10/05: %% Alternatively, style declarations may occur in the %% \xmltagcode{style} element. It can be accessed by the -%% |{style}| environment (cf. Sec.~\ref{sec:env}): +%% |{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>} +%% % \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 @@ -283,8 +411,55 @@ %% 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} + {-->} +%% +%% == 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>} +%% %% 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}}} %% %% == Fonts == +%% \label{sec:fonts} %% |\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 @@ -309,7 +484,7 @@ %% |\textcolor| 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 colored text. %% (2010/05/15): +%% for coloured text. %% (2010/05/15): %% \xmltagcode{font} is deprecated, use %% 2011/10/20 %% \xmltagcode{span} instead: % \newcommand*{\textcolor}[1]{\TagSurr{font}{color="#1"}} @@ -332,10 +507,22 @@ %% %% 2011/03/09: %% |\var{<symbol(s)>}| accesses the \xmltagcode{var} element: \newcommand*{\var}{\SimpleTagSurr{var}} -%% |\acronym{<chars>}| ... there is `\acro' in the TUGboat -%% macros, while \HTML\ provides an \xmltagcode{acronym} -%% environment ... %% 2011/09/21 +%% %% 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{<chars>}|. 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{<chars>}| +%% (supporting both naming policies mentioned in Sec.~\ref{name-policy}): \newcommand*{\acronym}{\SimpleTagSurr{acronym}} +\newcommand*{\acro}{} \let\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}}} %% %% == Environments == %% \label{sec:env} @@ -362,7 +549,10 @@ %% ... moving |{english}| to `xmlprint.cfg' %% 2010/05/22 ...%% doc 2010/11/06 %% -%% As formerly with ``fonts," we have \emph{two} policies for +%% As formerly with +%% \hyperref[sec:fonts]{fonts}, %% \hyperref 2012/01/06 +%% we have \emph{two} policies for +%% \label{name-policy} %% 2012/01/06 %% \textbf{choosing macro names}: %% (i)~using an \emph{existing} \HTML\ element name, %% (ii)~using a \LaTeX\ command name for accessing a somewhat @@ -380,7 +570,7 @@ \@ifstar{\@useHTMLelement[</li>]}{\@useHTMLelement}} \newcommand*{\@useHTMLelement}[3][]{% \@namedef{#2}{<#3>}% - \@namedef{end#2}{#1</#3>}} + \@namedef{end#2}{#1\CLBrk</#3>}} %% \CLBrk 2012/04/03 %% Applications: %% %% \acro{CARE:} |{small}| is an environment here, @@ -526,11 +716,11 @@ %% |\httpsref| is the analogue of `\httpref' for `https://': \newcommand*{\httpsref}{\hnewref{https://}} %% -%% == Characters/Symbols == %% `Symbols' until 2011/09/25 +%% == 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\& +\MakeOther\& %% Again we have the two policies about choosing macro names %% and respectively two new definition commands. %% |\declareHTMLsymbol{<name>}| defines a macro `\<name>' @@ -538,6 +728,12 @@ %% hasn't been implemented yet. %% (TODO; but sometimes redefining ...) %% 2011/02/26 \newcommand*{\declareHTMLsymbol}[1]{\@namedef{#1}{}} +%% %% TODO replace \@namedef with \defcsname +%% |\declareHTMLsymbols{{<name>}<list>}| essentially issues +%% \[`\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}{}} @@ -547,80 +743,41 @@ \renderHTMLsymbol{\&}{amp} \let\%\PercentChar %% -%% \pagebreak %% output routine problem 2011/10/05 -%% === Diacritics === %% changed 2011/03/04 +%% === Diacritics === %% changed 2011/03/04 %% For the difference between \dqtd{diacritic} and -%% \dqtd{accent,} see \wikienref{Diacritic}{Wikipedia}. +%% \dqtd{accent,} see \wikienref{Diacritic}{\meta{Wikipedia.}} %% -%% |\ccedil|: %%%, |\eacute|, |\ocirc| (``r\^ole") -\declareHTMLsymbol{ccedil} -%% %% 2011/03/04: -%% \HTML\ entities |é|, |ô| etc. can be accessed -%% by \TeX's accent commands |\'|, |\^|, |\`|, |\"|: +%% %% 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;} -%% |\uml{<char>}| % yields the umlaut for <char> -%% may have been overestimated: -%% % (useful in macro definitions): %% 2010/11/13 -% \newcommand* {\uml}[1] {uml;} %% 2010/08/24 +%% %% 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] {uml;} %% 2010/08/24 %% -%% === Greek === %% 2011/02/26 -\declareHTMLsymbol{Alpha} -\declareHTMLsymbol{alpha} -\declareHTMLsymbol{Beta} -\declareHTMLsymbol{beta} -\declareHTMLsymbol{Gamma} -\declareHTMLsymbol{gamma} -\declareHTMLsymbol{Delta} -\declareHTMLsymbol{delta} -\declareHTMLsymbol{Epsilon} -\declareHTMLsymbol{epsilon} -\declareHTMLsymbol{Zeta} -\declareHTMLsymbol{zeta} -\declareHTMLsymbol{Eta} -\declareHTMLsymbol{eta} -\declareHTMLsymbol{Theta} -\declareHTMLsymbol{theta} -\declareHTMLsymbol{Iota} -\declareHTMLsymbol{iota} -\declareHTMLsymbol{Kappa} -\declareHTMLsymbol{kappa} -\declareHTMLsymbol{Lambda} -\declareHTMLsymbol{lambda} -\declareHTMLsymbol{My} -\declareHTMLsymbol{my} -\declareHTMLsymbol{Ny} -\declareHTMLsymbol{ny} -\declareHTMLsymbol{Xi} -\declareHTMLsymbol{xi} -\declareHTMLsymbol{Omikron} -\declareHTMLsymbol{omikron} -\declareHTMLsymbol{Pi} -\declareHTMLsymbol{pi} -\declareHTMLsymbol{Rho} -\declareHTMLsymbol{rho} -\declareHTMLsymbol{Sigma} -\declareHTMLsymbol{sigma} -\declareHTMLsymbol{sigmaf} -\declareHTMLsymbol{Tau} -\declareHTMLsymbol{tau} -\declareHTMLsymbol{Upsilon} -\declareHTMLsymbol{upsilon} -\declareHTMLsymbol{Phi} -\declareHTMLsymbol{phi} -\declareHTMLsymbol{Chi} -\declareHTMLsymbol{chi} -\declareHTMLsymbol{Psi} -\declareHTMLsymbol{psi} -\declareHTMLsymbol{Omega} %% render -> declare 2011/02/26 -\declareHTMLsymbol{omega} -\declareHTMLsymbol{thetasym} -\declareHTMLsymbol{upsih} -\declareHTMLsymbol{piv} +%% === 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 === %% Arrows: |\gets|, |\to|, |\uparrow|, |\downarrow| ... @@ -662,56 +819,67 @@ \newcommand*{\figurespace}{&\#8199;} %% %% === Quotes, Apostrophe, Prime === +%% \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. -%% |\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'} -\newcommand*{\urlapostr} {'} %% 2010/09/10 -%% Here finally is the change of |'|: -\MakeActiveDef\'{’} -%% ... TODO \verb+\MakeActiveLet\'\rq+! -%% And this might better be in `\BlogCodes'! would -%% save `\screenqtd'! Tilde likwise!? -%% ... TODO change `\catcode`\`'!? 2010/04/26 +%% %% 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{process}). %% %% |\bdquo|, |\ldquo|, |\rdquo|, |\sbquo|, |\prime|, |\Prime| ... -\declareHTMLsymbol{bdquo} %% 2011/09/23 +\declareHTMLsymbol{bdquo} %% 2011/09/23 \declareHTMLsymbol{ldquo} \declareHTMLsymbol{rdquo} -\declareHTMLsymbol{sbquo} %% 2010/07/01 +\declareHTMLsymbol{sbquo} %% 2010/07/01 \renewcommand*{\prime}{′} \declareHTMLsymbol{Prime} -% \newcommand*{\Prime}{″} +%% A special 'blog.sty' service is |\asciidq| for a ``straight" +%% double quotation mark. It is useful for \emph{typesetting code} +%% and also can be used to get around automatical conversion +%% of straight into typographical quotation marks as with +%% `\catchdq': %% 2011/12/21 +\newcommand*{\asciidq}{\string"} +%% |\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, and -%% |\dedqtd{<text>}| quotes in German style: +%% marks, |\enqtd{<text>}| uses single quote marks instead, +%% |\dedqtd{<text>}| quotes in German style, %% 2011/12/21: +%% and |\asciidqtd{<text>}| and |\quoted{<text>}| %% 2012/01/21 +%% use straight double quotation marks: \def\endqtd#1{\ldquo#1\rdquo} %% \newcommand: ``\end" \newcommand*\enqtd[1]{\lq#1\rq} %% 2010/09/08, \new... 2010/11/08 -\newcommand*{\dedqtd}[1]{\bdquo#1\ldquo} -\newcommand*{\deqtd}[1]{‚#1‘} %% corr. 2011/05/14 -%% TODO `\glqq' from 'german.sty' etc. %% 2011/09/22 +\newcommand*{\dedqtd} [1]{\bdquo#1\ldquo} +\newcommand*{\deqtd} [1]{‚#1‘} %% corr. 2011/05/14 +\newcommand*{\asciidqtd}[1]{\asciidq#1\asciidq} %% 2011/12/21 +\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 +%% TODO `\glqq' from 'german.sty' etc. %% 2011/09/22 %% %% === Math === %% %% 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$: -\declareHTMLsymbol{gt} -\declareHTMLsymbol{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.: -\declareHTMLsymbol{ge} -\declareHTMLsymbol{le} -\declareHTMLsymbol{ne} +\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 +%% |\geq|, |\leq|, |\neq|: %% 2011/05/11 +\let\geq\ge \let\leq\le \let\neq\ne %% Angle braces |\langle| and |\rangle|: \renderHTMLsymbol{\langle}{lang} \renderHTMLsymbol{\rangle}{rang} @@ -725,36 +893,34 @@ \endgroup %% \TeX's |\ast| corresponds to the ``lower" version %% of the asterisk: -\renderHTMLsymbol{\ast}{lowast} %% 2011/03/29 +\renderHTMLsymbol{\ast}{lowast} %% 2011/03/29 %% Besides \TeX's |\subset| and |\subseteq|, -%% we provide short versions |\sub| and |\sube| %% 2011/05/08 +%% 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 -%% \TeX\ and \HTML\ agree on |\cap|, |\cup|, %% 2011/05/08 -%% and |\times|: -\declareHTMLsymbol{cap} %% 2011/04/04 -\declareHTMLsymbol{cup} %% 2011/04/04 -\declareHTMLsymbol{times} %% 2011/04/04 -%% We stick to \TeX's |\emptyset| %% 2011/05/08 -\renderHTMLsymbol{\emptyset}{empty} %% 2011/04/14 +\declareHTMLsymbol{sub} %% 2011/04/04 +\let\subset\sub %% 2011/05/08 +\declareHTMLsymbol{sube} %% 2011/03/29 +\let\subseteq\sube %% 2011/05/08 +%% \TeX\ and \HTML\ agree on |\cap|, |\cup|, %% 2011/05/08 +%% and |\times|: %% 2011/04/04 +\declareHTMLsymbols{{cap}{cup}{times}} %% 2012/01/06 +%% We stick to \TeX's |\emptyset| %% 2011/05/08 +\renderHTMLsymbol{\emptyset}{empty} %% 2011/04/14 %% 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 +%% 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: +%% (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 +\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 +%% {German \meta{Wikipedia}} %% 2011/09/08! +\declareHTMLsymbol{sdot} %% 2011/05/08 %% I provide |\degrees| for the degree symbol. %% \LaTeX\ already has `\deg' as an operator, %% therefore I do not want to use `\declareHTMLsymbol' @@ -763,19 +929,22 @@ %% %% === Other === %% The tilde |~| is used for its wonderful purpose, -%% by analogy to \TeX: +%% 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{~}} +{ \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} -%% +%% %% 2012/05/13: +%% |\ss| from Plain~\TeX\ and \LaTeX\ is used for the ``s-z ligature", +%% the German ``\Wikienref{sharp s}": +\renderHTMLsymbol{\ss}{szlig} %% |\copyright|: \renderHTMLsymbol{\copyright}{copy} %% |\bullet| %% 2011/03/29 @@ -789,9 +958,21 @@ %% |\dagger|, |\ddagger|: %% 2011/10/01 \renderHTMLsymbol{\dagger}{dagger} \renderHTMLsymbol{\ddagger}{Dagger} +%% 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]{} +\newcommand*{\unicodeentity}[1]{&\##1;} +\newcommand*{\unicodehexentity}[1]{&\#x#1;} %% -%% -%% == \TeX-related == %% 2010/08/24 +%% == \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 === @@ -816,6 +997,7 @@ %% === 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 @@ -826,6 +1008,7 @@ %% %% == 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 @@ -836,19 +1019,29 @@ \gdef\indenti{ }\gdef\indentii{ }\gdef\indentiii{ }} %% %% === Starting/Ending Tables === -%% 2010/07/17: +%% |\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 about the table, |\@frame@groups| +%% 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 - \indenti\tbody} %% <- tbody 2011/10/13 -> - {\indenti\endtbody\CLBrk\endTable} + \ \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 a macro: +%% so it gets an environment |{tbody}| +%% (i.e., macros |\tbody| and |\endtbody|): \useHTMLelement{tbody}{tbody} %% %% === Rows === @@ -857,34 +1050,80 @@ %% 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</tr>} + \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} -%% ``top" 2010/05/18: +%% |\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} -%% 2010/07/18: +%% |\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 -% \newcommand*{\TableCell}[2]{\indentiii<td #1>#2</td>} -% \newcommand*{\TableCell}[2]{\indentiii\TagSurr{td}{#1}{#2}} - %% <- 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} -%% 2010/06/15: +%% |\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}}} -\newcommand*{\tablecell} {\TableCell{}} -\newcommand*{\tableCell} {\TableCell\@align@c} +%% %% |\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!? -% %% 2010/05/19: +%% +%% |\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 @@ -892,23 +1131,100 @@ % \fi % \indentiii<td>} % {\indentii</td>} %% !? 2010/05/23 -%% 2010/06/05: +%% |\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 -%% 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>} -\newcommand*{\emptycell}{<td />} %% 2011/10/07 +%% |\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 +%% TODO variants like `\CR' for special (colored, boldface?) cells +%% starting row %% %% === Filling a Row with Dummy Cells === -%% Generalization 2010/06/28: -% \newcommand*{\FillRow}[2]{% %% broke line 2011/01/24 -% \indentiii\TagSurr{td}{\@colspan{#1} #2}{}} - %% <- 2010/07/18 -> +%% 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 @@ -940,50 +1256,9 @@ \renewcommand*{\vspace}[1]{\hvspace{}{#1}} %% %% == Misc == -%% |\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} - {-->} %% \TeX's |\hrule| (rather deprecated in \LaTeX) is redefined %% to produce an \HTML\ horizontal line: \renewcommand*{\hrule}{<hr>} -%% Redefining |\ | to be the same as `\space' may be helpful -%% for manual indenting or spacing of \HTML\ code. -%% Or better (just now remembering): I used it for making -%% ``ASCII trees" with the \xmltagcode{pre} element -%% (redefined `verbatim'). -\let\ \space -%% I couldn't find a perfect way to generate \xmltagcode{p}. -%% Actually I started completing the present documentation -%% when I had decided to implement automatic generation -%% of \xmltagcode{p} from empty lines. -% \def\par{<p>} %% + empty lines !? 2010/04/26 -%% <- difficult with `\stop'; 2010/09/10: -%% |\endgraf| produces \xmltagcode{/p}!? -\renewcommand*{\endgraf}{</p>} -%% 2010/04/28: -%% \xmltagcode{br} can be generated either by |\newline| -%% or by |\\|: -\renewcommand*{\newline}{<br>} -\let\\\newline -%% |\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}}} %% For references, there were % \catcode`\^=\active % \def^#1{\SimpleTagSurr{sup}{#1}} @@ -992,10 +1267,10 @@ %% as of 2010/05/01, inspired by the \xmltagcode{ref} element %% of MediaWiki; moved to `xmlprint.tex' 2010/06/02. %% -%% == The End == +%% == Leaving and HISTORY == \endinput %% -%% == VERSION HISTORY == + 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' @@ -1084,3 +1359,43 @@ v0.62 2011/10/16 \hyperlink, \hypertarget; doc. fixes there 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 diff --git a/Master/texmf-dist/tex/latex/morehype/morehype.RLS b/Master/texmf-dist/tex/latex/morehype/morehype.RLS new file mode 100644 index 00000000000..737c0ad2953 --- /dev/null +++ b/Master/texmf-dist/tex/latex/morehype/morehype.RLS @@ -0,0 +1,3 @@ +\ProvidesFile{morehype.RLS} %% RELEASE INFO + [2012/05/30 r0.6 blogexec, blogligs, langcode, bad] + [2011/10/23 r0.52 CTAN URL choice, hyperref] diff --git a/Master/texmf-dist/tex/latex/morehype/texblog.fdf b/Master/texmf-dist/tex/latex/morehype/texblog.fdf index 826f729d0d4..da4d60253f4 100644 --- a/Master/texmf-dist/tex/latex/morehype/texblog.fdf +++ b/Master/texmf-dist/tex/latex/morehype/texblog.fdf @@ -1,4 +1,4 @@ -\ProvidesFile{texblog.fdf}[2011/10/13 extra blog settings] +\ProvidesFile{texblog.fdf}[2012/05/15 extra blog settings] %% %% macros I use for my note pages %% -- Uwe Lueck, www.contact-ednotes.sty.de.vu @@ -12,7 +12,8 @@ \newcommand*{\texmapName}{texmap} %% 2011/05/17: \newcommand*{\reloadTeXtopofpage}[2]{% - \TeXtopofpage{\pardash\fileref\htmljob{\meta{#1}}}\pardash#2} + \TeXtopofpage{\pardash\fileref\htmljob{\meta{#1}}% + \pardash#2}} %% mv. brace here 2011/12/20 \newcommand*{\deTeXtopofpage}{\reloadTeXtopofpage{neu~laden}} \newcommand*{\enTeXtopofpage}{\reloadTeXtopofpage{reload}} \newcommand*{\textopofpage}{\TeXtopofpage{}} @@ -37,10 +38,16 @@ \depardash#1}} \newcommand*{\privmapName}{privmap} -\makeatletter %% 2011/10/12 +\makeatletter %% 2011/10/12 +\@ifpackageloaded{blogexec}{% %% 2012/03/14 +\newenvironment*{noblog}{}{} %% 2012/03/04 from ... +\MakeBlogBeginRun{noblog}{\let\WriteResult\@gobble} +}{} %% body colors (started 2010/09/15): \renewcommand*{\body}{% - </head><body \@bgcolor{\bodybgcolor}>} %% \@bgcolor 2011/10/03 +% </head><body \@bgcolor{\bodybgcolor}>} %% \@bgcolor 2011/10/03 + </head>% + <body \@style{background-color:\bodybgcolor}>} %% 2011/11/09 \newcommand*{\bodybgcolor}{\#fffff0} %% CSS ivory 2011/08/03 % \newcommand*{\bodybgcolor}{\#ffffe7} %% 2010/11/23 2011/06/29 % \newcommand*{\bodybgcolor}{\#f5f5dc} %% CSS beige 2011/07/31 @@ -50,7 +57,8 @@ % \newcommand*{\bodybgcolor}{\#fffafa} %% CSS snow 2011/07/31 % \newcommand*{\bodybgcolor}{\#fafad2} %% CSS lightgol... 2011/07/31 % \newcommand*{\bodybgcolor}{\#fffaf0} %% CSS floralwhite 2011/07/31 -% \newcommand*{\bodybgcolor}{\#ffffe0} %% CSS lightyellow 2011/07/31 +% \newcommand*{\bodybgcolor}{\#ffffe0} %% CSS lightyellow 2011/07/31 + %% erneut probiert 2011/12/12 % \newcommand*{\bodybgcolor}{\#fbfff0} %% 2011/07/31 % \newcommand*{\bodybgcolor}{\#fdffee} %% 2011/07/31 % \newcommand*{\bodybgcolor}{\#fefedd} %% 2011/07/31 @@ -65,6 +73,56 @@ % \newcommand*{\bodybgcolor}{\#fcffe7} %% 2010/11/23 % \newcommand*{\bodybgcolor}{\#fbfff0} %% 2010/11/23 % \newcommand*{\bodybgcolor}{\#fbfffe} %% 2010/11/23 +%% +%% dark body, aus ultrado.tex, gekuerzt, abgewandelt 2012/05/08: +\newcommand*{\darkbody}{% + \begin{style}{all}\CLBrk + b, h1, h2, h3, h4, div, p, td, th, body, span, table, ol, li, a, ul {\CLBrk + \lightplaincolor + \darkfonts\CLBrk %% light -> dark 2012/05/09 + \CLBrk}\CLBrk + body { \darkbackgroundcolor }\CLBrk + \CLBrk + a:link { \lightlinkcolor \lightfonts }\CLBrk +% a:visited { color:\#cc33cc; }\CLBrk + a:visited { \lightlinkcolor \lightfonts }\CLBrk + a:hover { \lightlinkcolor \lightfonts }\CLBrk + a:active { \lightlinkcolor \lightfonts }\CLBrk + \end{style}\CLBrk + </head><body>\CLBrk +} +%% requires: +% \newcommand*{\plainbody}{</head><body>} +\newcommand*{\lightlinkcolor}{color:% +% \#9999ff; } + \#ccffff; } %% 2012/05/10 +% \#99ccff; } %% 2012/05/10 +\newcommand*{\lightplaincolor}{color:% +% white; } +% \#fff8cc; } + \#ffffcc; } +% \#cccccc; } +\newcommand*{\boldcss}{font-weight:bold; } +% \newcommand*{\lightfonts}{\boldcss} +\newcommand*{\lightfonts}{} +% \newcommand*{\darkfonts}{\lightfonts} +\newcommand*{\darkfonts}{} +\newcommand*{\darkbackgroundcolor}{background-color:% +% \#333300; } +% black; } +% \#221100; } +% \#222200; } + \#001100; } %% 2012/05/10 +% \#110011; } %% 2012/05/10 +% \#111111; } %% 2012/05/10 +%% +%% table cell colors: %% 2011/11/08 +\newcommand*{\mylightblue}{\#eeeeff} %% Wiki TCP/IP +% \newcommand*{\mylightblue}{\#ddddff} %% auch nicht schlecht 2011/11/10 +% \newcommand*{\mylightblue}{\#ddeeff} %% auch nicht schlecht 2011/11/10 +% \newcommand*{\mylightblue}{\#eeefff} %% dantev45 +\newcommand*{\mylightyellow}{\#fff8cc} %% yellow 2011/11/09 +% \newcommand*{\mylightyellow}{\#ffeebb} %% internal navigation: \renewcommand*{\autref}[1]{\ancref{#1}{\code{#1}}} %% 2011/05/16 @@ -72,13 +130,14 @@ % \renewcommand*{\autref}[1]{\ancref{\lowercase{#1}}{#1}} %% <- does not expand 2011/05/10 \newcommand*{\Autref}[1]{\ancref{#1}{#1}} %% 2011/08/16 -%% click to move to top of window: %% 2011/07/25 \newcommand*{\ancandref}[1]{\hancref{#1}{\##1}} %% 2011/07/04 % \newcommand*{\lineanc}[1]{\TagSurr a{\@name{#1}}} \newcommand*{\lineanc} [1]{\hanc{#1}{}} %% 2011/07/20 %% TODO: one anchor element with more %% than one name!? %% 2011/08/31 +\newcommand*{\sieheuref}[1]{\ancref{#1}{s.\,u.}} %% 2011/12/23 +%% click to move to top of window: %% 2011/07/25 hier 2012/02/07 \newcommand*{\entotopofpage}{% \rightpar{\ancref{top-of-page}{[\textit{\to~top~of~page}~]}}} \newcommand*{\detotopofpage}{% @@ -125,10 +184,114 @@ \newcommand*{\geldpref}{\ancref{geld}{\euro}} \newcommand*{\jobspref}{\autref{jobs}} +%% bar of internal links -- dosepwit.sty %% 2011/12/23 / 2012/02/07 +\newcommand*{\internallinksbar}[1]{% +% \samehtmlline{% %% irrelevant 2011/12/25 + [\,\DoSeparateWithMore\ancref + \BlogVertNoBreakSep %% 2011/12/25 + #1\StopDoing\,]}% +% } +% \newcommand{\DoSeparateWith}[3]{#1{#3}\do@separate@with#1#2} +% \def\do@separate@with#1#2#3{% +% \ifx\StopDoing#3% +% \else#2#1{#3}% +% \expandafter\do@separate@with\expandafter +% #1\expandafter#2\fi} +%% More 2012/01/17: +% \newcommand*{\DoWithMore}[2]{% +% \ifx\StopDoing#2% +% \else#1#2\expandafter\DoWithMore\expandafter#1\fi} +% \newcommand*{\DoWithMore}{\d@with\@both} +\newcommand*{\d@with}[3]{% + \ifx\StopDoing#3% + \else#1#2{#3}% + \expandafter\d@with\expandafter#1\expandafter#2\fi} +\newcommand{\@both}[2]{#1#2} +\renewcommand*{\DoWith}{\d@with\@empty} +% \newcommand*{\DoSeparateWith}[3]{#1{#3}\d@with#2#1} +% \newcommand{\DoSeparateWithMore}[3]{#1#3\d@sepwithm@re#1#2} +\newcommand*{\d@sepwithm@re}[3]{% + \ifx\StopDoing#3% + \else#2#1#3% + \expandafter\d@sepwithm@re\expandafter + #1\expandafter#2\fi} +% \newcommand*{\make@ancref}[1]{\ancref#1} +\newcommand*{\BlogVertNoBreakSep}{~|~} %% 2011/12/25 +\newcommand*{\BlogVertSep} {~| } %% 2011/12/25 +\newcommand*{\ancrefslist}[1]{% %% 2011/12/28 + \DoSeparateWithMore\ancref\BlogVertSep %% 2012/01/17 + #1\StopDoing} +\newcommand*{\autrefslist}[1]{% %% 2011/12/28 + \DoSeparateWith\autref\BlogVertSep #1\StopDoing} +%% 2012/01/17 later: +\renewcommand{\DoWith}[2]{% +% \ifx\StopDoing#2\expandafter\@gobble +% \else\expandafter\@firstofone\fi +% {#1{#2}\DoWith{#1}}} + \ifx\StopDoing#2\@empty %% for empty #2 2012/01/17!!! +% \else\after@fi#1{#2}\DoWith{#1}\fi} +% \newcommand*{\after@fi}{} \def\after@fi#1\fi{\fi#1} + \else\@reversetwo{#1{#2}\DoWith{#1}}\fi} +\newcommand{\@reversetwo}[2]{#2#1} +\newcommand{\DoWithMore}[1]{\DoWith{\@both{#1}}} +\newcommand*{\DoSeparateWith}[3]{#1{#3}\DoWith{#2#1}} +% \newcommand*{\DoSeparateWithMore}[3]{#1#3\DoWith{#2\@both{#1}}} +\newcommand*{\DoSeparateWithMore}[2]{\DoSeparateWith{\@both{#1}}{#2}} +\renewcommand*{\setdo}[1][1]{\renewcommand\do[#1]} +%% (/2012/01/17) +%% 2012/01/18: +%% accesses all possibilities: +% \newcommand*{\DoSeparateWithSetsPresentedAs}[4]{% +% \csname \expandafter\@gobble\string +% \DoSeparateWith #4\endcsname{% +% \ifx #3M\@empty %% TODO better #3 beginning of "More"!? +% \expandafter\@both +% \else \expandafter\@firstofone \fi {#1}}{#2}} +% % \show\DoSeparateWithSetsPresentedAs +% %% TODO: #1, #2 better #4 #3 for saving tokens!? +% %% but #1 was used for reducing "More". +% %% `\DoWithModes' +\newcommand*{\DoSeparateWithY}[3]{% + \DoSeparateWithZ{#1}{#2}#3\StopDoing} +\newcommand*{\DoSeparateWithX}[3]{% + \expandafter\@reversetwo\expandafter{% + #3\StopDoing}{\DoSeparateWithZ{#1}{#2}}} +\newcommand*{\DoWithModes}[3]{% + %% #1 X/Y/Z (presentation of list), #2 Sets, #3 Do + \csname \expandafter\@gobble\string + \DoSeparateWith #1\endcsname{% + \ifx #2M\@empty %% TODO better #2 beginning of "More"!? + \expandafter\@both + \else \expandafter\@firstofone \fi {#3}}} +%% basic: +\newcommand*{\DoSeparateWithZ}[3]{% + \ifx\StopDoing#3\@empty + \else\@reversetwo{#1{#3}\DoWithZ{#2#1}}\fi} +%% \DoWith: +% \else\@reversetwo{#1{#2}\DoWith{#1}}\fi} +\newcommand*{\DoWithZ}[2]{\DoSeparateWithZ{#1}{}{#2}} +\let\DoWith\DoWithZ %% !!! +% \renewcommand*{\DoSeparateWithMore}[2]{% %% !!? +% \DoSeparateWithSetsPresentedAs{#1}{#2}{M}{Z}} +\renewcommand*{\DoSeparateWithMore}{\DoWithModes{Z}{M}} %% !!? +% \show\DoSeparateWithMore +%% ... including shorthand for `\do', 48 macros in mind. +% \newcommand*{\StripEsc}{\expandafter\@gobble\string} +%% ... lists of things capable of being an undelimited macro +%% argument. +% \newcommand*{\AddAncRef}[1]{\ancref#1~| } %% 2011/12/28 +% \newcommand*{\AddAutRef}[1]{\autref{#1}~| } %% 2011/12/28 +\newcommand*{\topfilesbar}[1]{% %% 2011/12/26 + |~% + \DoSeparateWith \Fileref + \BlogVertNoBreakSep + #1\StopDoing +} +%% %% internal/external 2011/08/17f.: -% \newcommand*{\emailpref}{\ancref{email}{E-M@il}} -\newcommand*{\emailpref}{% - \ancref{email}{@\,}|\httpref{web.de/fm}{\,fm}} +% \newcommand*{\emailpref}{\ancref{email}{E-M@il}} +% \newcommand*{\emailpref}{% +% \ancref{email}{@\,}|\httpref{web.de/fm}{\,fm}} \newcommand*{\ausflwpref}{% \autref{ausfl-w}\pardash\wetterwpref %% 2011/08/22: @@ -137,34 +300,55 @@ % \httpref{www.vrn.de/vrn/einfach-ankommen/fahrplanauskunft/}% \httpref{www.vrn.de}% %% 2011/09/08 {VRN}} +%% 2012/01/15: +\newcommand*{\webdefmref}{\httpref{web.de/fm}} +\newcommand*{\emailpref}{\ancref{email}{@\,}|\webdefmref{\,fm}} +%% TODO mit \EXECUTE auslagern? -% \makeatother %% page bottom: -\newcommand*{\enlastrev}{% - \rightpar{% -% \textit{Last~revised~\GenDate\ -% \textit{Last~generated~\GenDate\ - \textit{Last~generated~\Isodate\GenDate\ %% 2011/08/21 - \copyright~\href{contact.html}{% %% \href rm. `en' 2011/08/18 - Uwe~L\"uck}}}} %% \uml -> u 2011/03/04 -\newcommand*{\delastrev}{% - \rightpar{% -% \textit{Zuletzt neu erzeugt~\GenDate\ - \textit{Zuletzt neu erzeugt~\Isodate\GenDate\ %% 2011/08/21 - \copyright~\href{kontakt.html}{% %% \href, filename 2011/08/18 - Uwe~L\"uck}}}} %% \uml -> u 2011/03/04 +%% `\isotoday' moves to `blog.sty' 2011/11/20 +\newcommand*{\genlastrev}[2]{% %% 2011/11/02 + \rightpar{\textit{#1~% +% \Isodate\GenDate + \isotoday %% 2011/11/02 + \ \copyright~\href{#2.html}{Uwe~L\"uck}}}} +\newcommand*{\enlastrev}{\genlastrev{% +% Last~revised% + Last~generated% + }{contact}} +\newcommand*{\delastrev}{\genlastrev{% + Zuletzt neu erzeugt}{kontakt}} \newcommand*{\Hrule}{\totopofpage\hrule} \newcommand*{\fivebreaks}{\\\\\\\\\\} %% TODO \vspace %% external navigation: -\renewcommand*{\htmakeext}{.htm} %% 2011/10/05 -\newcommand*{\Fileref}[1]{\fileref{#1}{\file{#1}}} %% 2010/09/10 -\newcommand*{\urlhref}[1]{\href{#1}{\urlfmt{#1}}} %% 2011/08/19 -\newcommand*{\localfilenewref}{\hnewref{}} %% 2011/10/12 -\newcommand*{\siehewiki}[1]{% %% 2011/05/06 +\renewcommand*{\htmakeext}{.htm} %% 2011/10/05 +\newcommand*{\Fileref}[1]{\fileref{#1}{\file{#1}}} %% 2010/09/10 +\newcommand*{\urlhref}[1]{\href{#1}{\urlfmt{#1}}} %% 2011/08/19 +\newcommand*{\localfilenewref}{\hnewref{}} %% 2011/10/12 +\newcommand*{\siehewiki}[1]{% %% 2011/05/06 \to\wikideref{#1}{\textit{Wikipedia}}} -\newcommand*{\wormsmusref}[1]{% %% 2011/04/30 - \httpref{www.worms.de/deutsch/kultur/museen/#1}} +%% 2011/11/23, 2012/01/06, 2012/03/11: +\newcommand*{\wiktionarylangref}[1]{% + \httpbaseref{#1.wiktionary.org/wiki}} +% \newcommand*{\Wiktenref}[1]{\wiktionarylangref{en}{#1}{#1}} +% \newcommand*{\Wiktderef}[1]{\wiktionarylangref{de}{#1}{#1}} +% \newcommand*{\Wiktref}[1]{% %% 2012/01/13 +% \wiktionarylangref\langcode{#1}{#1}} +%% <- 2012/01/13 -> +\newcommand*{\Wiktionarylangref}[2]{% + \wiktionarylangref{#1}{#2}{#2}} +\newcommand*{\Wiktderef}{\Wiktionarylangref{de}} +\newcommand*{\Wiktenref}{\Wiktionarylangref{en}} +\newcommand*{\Wiktref}{\Wiktionarylangref\langcode} +%% 2011/11/23, 2012/01/06, 2012/03/11: +\newcommand*{\wikiquotelangref}[1]{% + \httpbaseref{#1.wikiquote.org/wiki}} +\newcommand*{\Wikquenref}[1]{\wikiquotelangref{en}{#1}{#1}} +%% +%% to do: +\newcommand*{\wormsmusref}{% %% 2011/04/30, 2012/03/11 + \httpbaseref{www.worms.de/deutsch/kultur/museen}} %% 2011/08/18: \newcommand*{\facebookpref}{% \httpref{de-de.facebook.com}{facebook}} @@ -181,53 +365,182 @@ \httpref{www.wetteronline.de/dldlsat.htm}{\code{sat}} } %% 2011/08/19: -\newcommand*{\webdesignref}[1]{% - \httpref{www.webdesign-bu.de/uwe_lueck/#1}} +\newcommand*{\webdesignref}{% + \httpbaseref{www.webdesign-bu.de/uwe_lueck}} \newcommand*{\webdesignurlref}[1]{% \webdesignref{#1}% {\urlfmt{www.webdesign-bu.de/uwe_lueck/#1}}} +\newcommand*{\Wref}[1]{\wikiref{#1}{Wikipedia}} %% 2012/01/19 %% TeX links: -\newcommand*{\CPR}{\ctanpkgref} %% 2011/03/15 +% \newcommand*{\CPR}{\ctanpkgref} %% 2011/03/15, rm. 2011/11/06 \newcommand*{\THPR}{\texhaxpref} %% 2011/03/15 \newcommand*{\THpref}[1]{\texhaxpref{#1}{texhax}} %% 2011/03/24 +%% month page 2011/12/22, reworked for langcode 2012/01/17: +\newcommand*{\enmonthname}[1]{% + \ifcase #1\or + January\or February\or March\or April\or + May\or June\or July\or August\or + September\or October\or November\or December% + \fi} +%% <- TODO -> texlinks.sty or langcode.sty +\newcommand*{\texlistyearmonthref}[2]{\texlist@yearmonthref#1#2\@nil} +\def\texlist@yearmonthref#1#2-#3\@nil{#1{20#2-\enmonthname{#3}}} +\newcommand*{\texhaxyearmonthref}{\texlistyearmonthref\texhaxref} +\newcommand*{\ctanannyearmonthref}{\texlistyearmonthref\ctanannref} +\newcommand*{\demonthname}[1]{% + \ifcase #1\or + Januar\or Februar\or M\"arz\or April\or + Mai\or Juni\or Juli\or August\or + September\or Oktober\or November\or Dezember% + \fi} +\newcommand*{\texlanglistmonthref}[3]{\texlanglistm@nthref#1#2#3\@nil} +\def\texlanglistm@nthref#1#2#3-#4\@nil{% + #2{20#3-\enmonthname{#4}}{#1{#4}}} +\newcommand*{\detexlistmonthref}{\texlanglistmonthref\demonthname} +\newcommand*{\entexlistmonthref}{\texlanglistmonthref\enmonthname} +\newcommand*{\texlistmonthref} {\texlanglistmonthref\monthname} +% \newcommand*{\detexhaxmonthref} {\detexlistmonthref\texhaxref} +% \newcommand*{\entexhaxmonthref} {\entexlistmonthref\texhaxref} +\newcommand*{\texhaxmonthref} {\texlistmonthref\texhaxref} +% \newcommand*{\dectanannmonthref}{\detexlistmonthref\ctanannref} +% \newcommand*{\enctanannmonthref}{\entexlistmonthref\ctanannref} +\newcommand*{\ctanannmonthref} {\texlistmonthref\ctanannref} +%% <- TODO 2011/12/22 alle -> texlinks.sty \newcommand*{\TOPref}[1]{\bytopicref{#1}{JF\##1}} %% 2011/04/22 -\newcommand*{\todobytopic}[1]{% %% 2011/04/22 - \myalert{\to\ \TOPref{#1}}} +% \newcommand*{\todobytopic}[1]{% %% 2011/04/22, rm. 2011/11/08 +% \myalert{\to\ \TOPref{#1}}} \newcommand*{\UKFAQref}[1]{\ukfaqref{#1}{UK~FAQ}} %% 2011/01/03 +%% BlogLIGs: +%% 2012/01/06f. [[...]] f. \Wikiref: +\FDpseudoTilde +% \Delimiters\(\) +% \catcode`\(=1 \catcode`\)=2 +% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{)(blog<-) + %% <- TODO echte `{' kann man so nicht einsetzen, vorverarb... +% \MakeExpandableAllReplacer(blog]])(]])(})(blog[[) +% \CopyFDconditionFromTo(blog]])(BlogLIGs) + %% fine: +% \MakeExpandableAllReplacer(blog[[)([[)(\protect\catchdbrk)(blog<-) +% \CopyFDconditionFromTo(blog[[)(BlogLIGs) + %% hacks fail: +% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{\iffalse}\fi) +% (blog<-) +% \MakeExpandableAllReplacer(blog]])(]])(\iffalse{\fi}) +% (blog[[) +% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{\protect\iffalse}\protect\fi) +% (blog<-) +% \MakeExpandableAllReplacer(blog]])(]])(\protect\iffalse{\protect\fi}) +% (blog[[) +% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{\protect\ifnum0=`}\protect\fi) +% (blog<-) +% \MakeExpandableAllReplacer(blog]])(]])(\protect\ifnum0=`{\protect\fi}) +% (blog[[) +% \MakeExpandableAllReplacer(blog[[)([[)(\protect\Wikiref{\ifnum0=`}\fi) +% (blog<-) +% \MakeExpandableAllReplacer(blog]])(]])(\ifnum0=`{\fi}) +% (blog[[) +% \CopyFDconditionFromTo(blog]])(BlogLIGs) +% \Delimiters\{\} +% \MakeOther\( \MakeOther\) +\MakeExpandableAllReplacer{blog[[}{[[}{\protect\catchdbrkt}{blog<-} +\def\catchdbrkt#1]]{\Wikiref{#1}} %% + t 2012/01/09 + %% <- TODO in blog.sty \wikilink!? %% <- 2012/01/09 -> +\MakeExpandableAllReplacer{blog**}{**} + {\protect\doublestar:}{blog[[} +\MakeExpandableAllReplacer{blog***}{***} + {\protect\triplestar:}{blog**} +% \CopyFDconditionFromTo{blog***}{BlogLIGs} +%% 2012/01/11: +\MakeActiveDef\'{\noexpand'} +\MakeExpandableAllReplacer{blog\string'\string'}{''} + {\protect\doubleapostr:}{blog***} +\MakeExpandableAllReplacer{blog\string'\string'\string'}{'''} + {\protect\tripleapostr:}{blog\string'\string'} +\MakeOther\' +\CopyFDconditionFromTo{blog'''}{BlogLIGs} +\newcommand*{\MakePairLaTeXcmd}[2]{% + \@ifdefinable#1{\def#1:##1#1:{#2{##1}}}} %% ":" for "..." 2012/01/30 +%% <- 2012/01/15 -> +\MakePairLaTeXcmd\doublestar\mystrong +\MakePairLaTeXcmd\triplestar\myalert +\MakePairLaTeXcmd\doubleapostr\textit +\MakePairLaTeXcmd\tripleapostr\textbf +%% TODO -> blog.sty or so %% 2012/02/07 + %% rm. HVspace etc. 2011/10/13 %% font switching (logical): -\renewcommand*{\textsf}{% %% 2011/05/12 - \TagSurr{span}% - {style="font-size:82\%; - font-family:sans-serif"}} -\providecommand*{\file}{\code} %% provide 2011/03/07 +% \renewcommand*{\textsf}{% %% 2011/05/12 +% \TagSurr{span}% +% {style="font-size:82\%; +% font-family:sans-serif"}} + %% <- rm. 2011/10/24 +\providecommand*{\file}{\code} %% provide 2011/03/07 \newenvironment*{itquote}{\quote<i>}{</i>\endquote} \newcommand*{\mystrong}{\textcolor{\#aa0000}} \providecommand*{\myalert}{\textcolor{red}} -\newcommand*{\prl}[1]{#1} %% prg lang, corr. 2010/12/15 -\providecommand*{\pkg}{\pkgnamefmt} %% 2011/03/05 -\newcommand*{\privpkgnamefmt}[1]{% %% 2011/05/14 - \textcolor{\#006600}{\textsf{#1}}} -\newcommand*{\meta}{\textit} %% 2011/05/16 +% \newcommand*{\myalert}[1]{% +% \textcolor{red}{\ParseLigs{#1}}} %% 2011/12/20 +\newcommand*{\prl}[1]{#1} %% prg lang, corr. 2010/12/15 +\providecommand*{\pkg}{\pkgnamefmt} %% 2011/03/05 +% \renewcommand*{\pkgnamefmt}{\code} %% 2011/10/24 + %% <- for heyctan -> +\let\pkgnamefmt\@firstofone %% 2011/10/24 +\renewcommand*{\urlfmt}{\code} %% 2011/10/24 +\newcommand*{\meta}{\textit} %% 2011/05/16 % \newcommand*{\acro}[1]{\small#1\endsmall} %% 2011/06/19 -\newcommand*{\acro}[1]{#1} %% 2011/06/19 +% \newcommand*{\acro}[1]{#1} %% 2011/06/19 + %% <- rm. 2012/01/06 +\providecommand*{\metahttpref}[2]{% %% 2011/10/24 + \httpref{#1}{\meta{#2}}} +% {\catcode`\'\active \gdef\catchsq#1'{\code{#1}}} %% 2012/01/31 + %% <- \end occured when \ifeof on line 24 was incomplete -%% involving font switching for special purposes: %% 2011/07/25 -\newcommand*{\src}[1]{\STS{sup}{[#1]}} %% 2010/09/12 -\newcommand*{\idx}[1]{% %% 2010/11/23: +%% involving font switching for special purposes: %% 2011/07/25 +\newcommand*{\src}[1]{\STS{sup}{[#1]}} %% 2010/09/12 +\newcommand*{\idx}[1]{% %% 2010/11/23: \textcolor{green}{\code{\lt#1\gt}}} -\providecommand*{\cb}[1]{\code{{#1}}} %% 2011/03/13 -\newcommand*{\itqtd}[1]{\textit{\dqtd{#1}}} %% 2011/05/03 -\newcommand*{\ancstrong}[2]{\hanc{#1}{\strong{#2}}} %% 2011/05/05 +% \providecommand*{\cb}[1]{\code{{#1}}} %% 2011/03/13 +\providecommand*{\cb}[1]{\code{\{#1\}}} %% 2012/01/31 +\newcommand*{\itqtd}[1]{\textit{\dqtd{#1}}} %% 2011/05/03 +\newcommand*{\ancstrong}[2]{\hanc{#1}{\strong{#2}}} %% 2011/05/05 % \newcommand*{\answer}[1]{[\textcolor{\#006600}{#1}]} -\newcommand*{\answer}[1]{\textcolor{\#006600}{[#1]}}%% 2011/07/19 -\newcommand*{\Answer}[1]{\answer{\,#1\,}} %% 2011/08/25 -\newcommand*{\planh}[1]{\answer{#1\,h}} %% 2011/08/18 -\newcommand*{\TODO}{\myalert{TODO}} %% 2011/05/07 -%% 2011/09/22: -\newcommand*{\HTML}{\acronym{HTML}} -\newcommand*{\PDF} {\acronym{PDF}} +\newcommand*{\answer}[1]{\textcolor{\#006600}{[#1]}} %% 2011/07/19 +\newcommand*{\Answer}[1]{\answer{\,#1\,}} %% 2011/08/25 +\newcommand*{\planh}[1]{\answer{#1\,h}} %% 2011/08/18 +\newcommand*{\TODO}{\myalert{\acronym{TODO}}} %% 2011/05/07 2011/12/29 +\newcommand*{\TODOs}{\acronym{TODOs}} %% 2011/12/29 +% \newcommand*{\HTML}{\acronym{HTML}} %% 2011/09/22 +% \newcommand*{\PDF} {\acronym{PDF}} %% 2011/09/22 +% \newcommand*{\CSS} {\acronym{CSS}} %% 2012/01/09 +% \newcommand*{\PHP} {\acronym{PHP}} %% 2012/01/09 +\DoWith\newacronym{HTML}{PDF}{CSS}{PHP}\StopDoing %% 2012/02/07 + +%% use \ParseLigs: +%% 2012/01/08, eigentlich schon 2012/01/04, verloren ...: +% \let\blogtextcolor\textcolor +% \renewcommand*{\textcolor}[2]{\blogtextcolor{#1}{\ParseLigs{#2}}} +%% 2012/01/10: +\let\blogdedqtd\dedqtd +\renewcommand*{\dedqtd}[1]{\blogdedqtd{\ParseLigs{#1}}} +%% 2012/01/19: +\let\BlogTagSurr\TagSurr +\renewcommand*{\TagSurr}[3]{% + \BlogTagSurr{#1}{#2}{\ParseLigs{#3}}} +\let\BlogSimpleTagSurr\SimpleTagSurr +\renewcommand*{\SimpleTagSurr}[2]{% + \BlogSimpleTagSurr{#1}{\ParseLigs{#2}}} +\newcommand*{\noligs}{} \let\noligs\@firstofone %% !!! +\renewcommand*{\code}[1]{\STS{code}{\noligs{#1}}} +%% 2012/03/14, not optimal TODO: +\renewcommand*{\NoBlogLigs}{% + \def\BlogOutputJob{LEAVE}% + \let\deqtd\blogdeqtd + \let\TagSurr\BlogTagSurr + \let\SimpleTagSurr\BlogSimpleTagSurr + \FDnormalTilde + \MakeActiveDef\~{ }% %% TODO new blog cmd +} %% dashes: % \newcommand*{\enpardash}{\,\emdash\,} %% 2011/05/12 @@ -243,27 +556,57 @@ \ \endash~#1~\Endash} \def\endashed#1{\endash~#1~\endash} %% 2011/08/20 +%% language codes: %% 2012/01/07 +\newcommand*{\langcodedependent}{% %% 2012/01/07 + \langcodeextras\dqtd\qtd\pardash\lastrev\totopofpage + \monthname} %% 2012/01/17 +\let\enlangcodeextras\empty %% \empty 2012/01/17 +\newcommand*{\delangcodeextras}{\RequirePackage{dhua}} +\newcommand*{\uselangcode}[1]{% + \def\langcode{#1}% %% 2012/01/07: + \DoWithAllIn\langcodeadjust\langcodedependent + \langcodeextras} +\newcommand*{\langcodeadjust}[1]{% + \edef#1{\expandafter\noexpand + \csname\langcode + \expandafter\@gobble\string#1\endcsname}} +\uselangcode{en} +%% %% 2010/11/13 TODO -- catcodes.sty!?: -{\catcode`\"\active \gdef\catchdq#1"{\dqtd{#1}}} %% 2010/11/13 -\newcommand*{\Euro}{\,\euro} %% mod. 2011/05/25 2011/09/08 -\newcommand*{\degC}{\,\degrees C} %% 2011/09/20 +{\catcode`\"\active \gdef\catchdq#1"{\dqtd{#1}}} %% 2010/11/13 +\newcommand*{\Euro}{\,\euro} %% mod. 2011/05/25 2011/09/08 +\newcommand*{\degC}{\,\degrees C} %% 2011/09/20 %% avoiding spaces at code line breaks: \newcommand*{\bcmt}{<!-- } \newcommand*{\ecmt}{-->} %% 2011/05/02 \newcommand*{\nix}[1]{} %% join lines without space 2011/07/24 \newcommand*{\onehtmlline}[1]{#1} %% 2011/08/25 +\newcommand*{\samehtmlline}[1]{\ParseLigs{#1}} %% 2011/12/23 %% %% enumeration styles: -\makeatletter %% 2011/08/01 - \newenvironment{enumtype}[1]{<ol \@type{#1}}{</ol>} -\makeatother -\newenvironment{enumerate-a}{\enumtype a}% %% 2011/08/15 +\newenvironment{enumtype}[1]{<ol \@type{#1}}{</ol>} +\newenvironment{enumerate-a}{\enumtype a} %% 2011/08/15 {\endenumtype} -\newenvironment{enumerate-i}{\enumtype i}% %% 2011/08/17 +\newenvironment{enumerate-i}{\enumtype i} %% 2011/08/17 {\endenumtype} +%% TODO 2012/02/07 for DVI/PDF interface to 'enumerate' +\newenvironment{tightenum} %% 2012/01/07 "tight" 2012/01/08 + {<ol \@style{margin:0px; padding:0px; + margin-left:2em}>} + %% <- TODO mit CSS-inherit auf Eintraege uebertragen? 2012/01/12 + {\endenumerate} -\newenvironment{done}{<s>}{</s>} %% 2011/08/15 -\newcommand*{\Dots}{~\dots\ } %% 2011/08/24 -%% table rows: %% 2011/09/24 +\newenvironment{done}{<s>}{</s>} %% 2011/08/15 +\newcommand*{\Dots}{~\dots\ } %% 2011/08/24 +%% 2012/04/01 from autrado.fdf (2012/01/23): +\newenvironment*{codelines}{\quote<code>} + {</code>\endquote} +\MakeBlogBeginRun{codelines}{% + \NoBlogLigs %% 2012/01/24 + \MakeActiveDef\"{\string"}\MakeActiveDef\'{\string'}% + \MakeActiveDef\<{\lt}\MakeActiveDef\>{\gt}% + \let\/\\\let\\\BackslashChar} + +%% table rows (before blogexec): %% 2011/09/24 / 2012/02/07 \newcommand*{\rowoftwocells}[2]{% \starttr \simplecell{#1}\simplecell{#2}% @@ -277,5 +620,41 @@ \simplecell{#1}\simplecell{#2}% \simplecell{#3}\simplecell{#4}% \endtr} +\newcommand*{\rowoffivecells}[5]{% %% 2011/10/28 + \starttr + \simplecell{#1}\simplecell{#2}\simplecell{#3}% + \simplecell{#4}\simplecell{#5}% + \endtr} +\newcommand*{\rowofsixcells}[6]{% %% 2011/10/28 + \starttr + \simplecell{#1}\simplecell{#2}\simplecell{#3}% + \simplecell{#4}\simplecell{#5}\simplecell{#6}% + \endtr} +%% |\begin{stdhiddentable}| %% 2012/05/15 +\newenvironment*{stdhiddentable} + {\startTable{\@cellpadding\stdcellpadding}% + \starttr\StartTd} + {\endTd\endtr\endTable} +%% TODO colgroup alignment +\MakeBlogBeginRun{stdhiddentable}{% + \MakeActiveDef\|{\endcell}\MakeActiveDef\&{\figurespace}} +%% TODO \MakeActiveLet +%% +% %% Another try at `\HVspace' with ... %% 2011/11/10 +%% VERGEBLICH %% 2011/11/12 +% \let\HVSP\HVspace %% 2011/11/11 +% \renewcommand*{\HVspace}[3]{% +% % \TagSurr{div}{\@width{#2} \@height{#3}}{#1}} %% zu flach +% \TagSurr{div}{\@width{#2} \@height{#3}}{% +% \HVSP{#1}{#2}{#3}}} %% 2011/11/11 +% % \SimpleTagSurr{div}{\HVSP{#1}{#2}{#3}}} +% %% % Seiten zu kurz ... + +%% |\cheading{<digit>}{<text>}| as in 'blogdot.sty' %% 2012/05/15 +%% (TODO may crash with 'fifinddo-info'): +\providecommand*{\cheading}[1]{\CLBrk\TagSurr{h#1}{\@align@c}} +%% |\begin{centerpar}| %% 2012/05/15 +\newenvironment*{centerpar}{<p \@align@c>}{</p>} +%% \endinput diff --git a/Master/texmf-dist/tex/latex/morehype/texlinks.sty b/Master/texmf-dist/tex/latex/morehype/texlinks.sty index ac546b89f67..8ca6e2da521 100644 --- a/Master/texmf-dist/tex/latex/morehype/texlinks.sty +++ b/Master/texmf-dist/tex/latex/morehype/texlinks.sty @@ -1,6 +1,6 @@ \NeedsTeXFormat{LaTeX2e}[1994/12/01] %% \newcommand* etc. -\ProvidesPackage{texlinks}[2011/10/21 v0.5 TeX-related links (UL)] -%% copyright (C) 2011 Uwe Lueck, +\ProvidesPackage{texlinks}[2012/05/13 v0.6 TeX-related links (UL)] +%% copyright (C) 2011 2012 Uwe Lueck, %% http://www.contact-ednotes.sty.de.vu %% -- author-maintained in the sense of LPPL below. %% @@ -158,7 +158,7 @@ %% With |\urlhttpsref{<url>}|, we \emph{force} displaying \qtd{`https://'}: \newcommand*{\urlhttpsref}[1]{\httpsref{#1}{\urlfmt{https://#1}}} %% -%% === Linking \URL s in Footnotes === %% 2011/08/27 +%% === Linking \URL s in Footnotes === %% 2011/08/27 %% \label{sec:urlfoot} %% |\foothttpurlref{<url>}| just is like %% `\footnote{\urlhttpref{<url>}}': @@ -207,31 +207,56 @@ %% we get |\urlpkgfoot{<package-id>}|, abbreviating %% `\urlfoot{CtanPkgRef}{<package-id>}': \newcommand* {\urlpkgfoot} {\urlfoot{CtanPkgRef}} +%% === \URL\ Bases === %% 2012/03/09 +%% \label{sec:bases} +%% We typically refer to many web pages under a certain domain, +%% or in certain subdirectories there. Before v0.6, +%% I made many definitions like +%% \[`\newcommand*{\myref}[1]{\httpref{<my-base>/#1}}'\] +%% for this purpose. +%% Storing the definition of such a `\myref' uses 6 tokens +%% (including parameter text---TODO) in addition to those from <my-base>. +%% With +%% \[`\newcommand*{\myref}{\httpbaseref{<my-base>}'\] +%% we need 3 tokens instead, using |\httpbaseref{<base>}{<rest>}| +%% defined as follows: +\newcommand*{\httpbaseref}[2]{\httpref{#1/#2}} +%% We change many definitions in ensuing sections accordingly. +%% +%% The situation is similar with (many) anchors of a (large) web page. +%% With v0.6, we introduce |\httpancref{<page-url>}{<anchor>}|---perhaps, +%% with `\mirrorctanref' (Sec.~\ref{sec:bytopic}) etc.? TODO +% \newcommand*{\httpancref}[2]{\httpref{#1\##2}} %% %% == Wikipedia == %% %% TODO separate wikilink.sty? https:!? %% === Backbones === -%% As of v0.4, we have a \dqtd{backbone} macro -%% \[|\wikiref{<language-code>}{<lemma>}{<text>}|\] -%% for links to Wikipedia. <language-code> consists of +%% As of v0.6, we have a \dqtd{backbone} macro +%% \[|\wikilangref{<language-code>}{<lemma>}{<text>}|\] +%% for links to Wikipedia. +%% (It was |\wikiref| before, starting with v0.4---sorry!) +%% <language-code> consists of %% two characters like \lq`de'\rq\ for German Wikipedia articles %% or \lq`en'\rq\ for English ones. <lemma> is the identifier of %% the article, and <text> is displayed as the link: -\newcommand*{\wikiref}[2]{\httpref{#1.wikipedia.org/wiki/#2}} -%% There is |\Wikiref{<language-code>}{<lemma>}| +% \newcommand*{\wikilangref}[2]{\httpref{#1.wikipedia.org/wiki/#2}} +%% <- 2012/03/09 etc. with Sec.~\ref{sec:bases} -> +\newcommand*{\wikilangref}[1]{\httpbaseref{#1.wikipedia.org/wiki}} +%% There is |\Wikilangref{<language-code>}{<lemma>}| %% for the case that <lemma> and <text> are the same: -\newcommand*{\Wikiref}[2]{\wikiref{#1}{#2}{#2}} -%% We could have `\wikiref{<lang>}[<id>]{<text>}' instead, then -%% `\Wikiref' would not be needed; however, the present code is to -%% work with 'blog.sty', where optional arguments fail.%%%--- +\newcommand*{\Wikilangref}[2]{\wikilangref{#1}{#2}{#2}} +%% `\wikilangref{<lang>}[<lemma>]{<text>}' would be nicer; +%% %% <- shortened 2012/01/06 -> +%% however, the present code is to work with 'blog.sty' +%% which does not support optional arguments.%%%--- %% %% Quite often, programs share their names with movies, %% biological species, etc., then lemma disambiguation is required. %% Usually, we don't want to display the disambiguation. -%% \[|\Wikidisambref{<language-code>}{<term>}{<suffix>}|\] +%% \[|\Wikilangdisambref{<language-code>}{<term>}{<suffix>}|\] %% will link to -%% \[`http://en.wikipedia.org/wiki/<term>_(<suffix>)'\] -\newcommand*{\Wikidisambref}[3]{\wikiref{#1}{#2 (#3)}{#2}} +%% \[`http://<language-code>.wikipedia.org/wiki/<term>_(<suffix>)'\] +\newcommand*{\Wikilangdisambref}[3]{\wikilangref{#1}{#2 (#3)}{#2}} %% There %% was `Their' 2011/07/23 %% was something like a more general variant |\wikidisambref|, %% now I doubt its usefulness and \textcolor{blue}{omit} it @@ -241,30 +266,45 @@ %% even with 'hyperref'. %% \par\smallskip\noindent %% \strong{Example:}\quad -%% `\wikienref{TeX#History}{\TeX}' +%% `\wikilangref{en}{TeX#History}{\TeX}' %% was wikilangenref 2012/05/13 %% \ for \ -%% \wikienref{TeX#History}{\TeX}. +%% \wikilangref{en}{TeX#History}{\TeX}. %% %% === English and German === %% The next macros just save you from typing braces around %% the language codes for English and German: %% |\wikienref{<lemma>}{<text>}| refers to the English Wikipedia, %% |\wikideref{<lemma>}{<text>}| refers to the German one. -\newcommand*{\wikideref}{\wikiref{de}} -\newcommand*{\wikienref}{\wikiref{en}} +\newcommand*{\wikideref}{\wikilangref{de}} +\newcommand*{\wikienref}{\wikilangref{en}} %% |\Wikideref{<lemma>}| refers to article <lemma> in the German %% Wikipedia and displays <lemma> as <text>: -\newcommand*{\Wikideref}{\Wikiref{de}} +\newcommand*{\Wikideref}{\Wikilangref{de}} %% |\Wikienref{<lemma>}| is `\Wikideref''s analogue for English: -\newcommand*{\Wikienref}{\Wikiref{en}} +\newcommand*{\Wikienref}{\Wikilangref{en}} %% |\Wikidedisambref{<lemma>}{<suffix>}| chooses a disambiguation %% according to <suffix> for the German Wikipedia, %% |\Wikiendisambref{<lemma>}{<suffix>}| for the English one: -\newcommand*{\Wikidedisambref}{\Wikidisambref{de}} -\newcommand*{\Wikiendisambref}{\Wikidisambref{en}} +\newcommand*{\Wikidedisambref}{\Wikilangdisambref{de}} +\newcommand*{\Wikiendisambref}{\Wikilangdisambref{en}} +%% +%% === ``Implicit" Choice of Language === %% 2012/01/06 +%% With v0.6, |\wikiref{<lemma>}{<text>}| works like +%% \[|\wikilang{<lc>}{<lemma>}{<text>}|\] when |\langcode| expands to <lc> +%% (the two-letter language code according to \Wikiref{ISO 639-1}). +%% The default for <lc> is `en' for English. +%% It can be overridden even before loading 'texlinks' +%% (e.g., by an earlier `\newcommand\langcode{de}'): +\providecommand*{\langcode}{en} +%% For the German versions, use `\renewcommand\langcode{de}'. +%% You may find a package 'langcode' providing a command +%% `\uselangcode{<lc>}' that adjusts a number of other settings. +\newcommand*{\wikiref}{\wikilangref\langcode} +%% |\Wikiref| and |Wikidisambref| are the obvious analogues: +\newcommand*{\Wikiref}{\Wikilangref\langcode} +\newcommand*{\Wikidisambref}{\Wikilangdisambref\langcode} %% -%% \pagebreak %% 2011/10/21 -%% === Blanks and Umlauts in \URL s and Anchors === +%% === Blanks and Umlauts in \URL s and Anchors === %% %% <- renamed 2011/05/17 reworked: %% |\underscorechar| seemed to be useful in macro %% definitions. The name was inspired by \LaTeX's @@ -301,28 +341,28 @@ \@namedef{ancuml:o}{.C3.B6} \@namedef{ancuml:u}{.C3.BC} \@namedef{ancuml:s}{.C3.9F} -%% What you read in the rest of the section is -%% \textcolor{blue}{wrong}, the commands are -%% \textcolor{blue}{dropped} for testing as of 2011/05/13. -%% |\itwikideref| is an italic variant of `\wikideref': +%% %% comments removed 2012/01/11: +%% % What you read in the rest of the section is +%% % \textcolor{blue}{wrong}, the commands are +%% % \textcolor{blue}{dropped} for testing as of 2011/05/13. +%% % |\itwikideref| is an italic variant of `\wikideref': % \newcommand*{\itwikideref}[2]{\wikideref{#1}{\textit{#2}}} -%% By analogy to `\Wikideref', -%% The following macros save you from typing the underscore -%% (didn't spaces suffice sometimes?) %% TODO 2011/01/24 -%% and the round parantheses. -%% Italic variant |\itwikienref| of `\wikienref' -%% ('blog.sty' had `\emwikienref' instead): +%% % By analogy to `\Wikideref', +%% % The following macros save you from typing the underscore +%% % (didn't spaces suffice sometimes?) %% TODO 2011/01/24 +%% % and the round parantheses. +%% % Italic variant |\itwikienref| of `\wikienref' +%% % ('blog.sty' had `\emwikienref' instead): % \newcommand*{\itwikienref}[2]{\wikienref{#1}{\textit{#2}}} -%% |\urluml{<ascii-char>}| as of 2010/05/25 -%% (not sure if it ever worked or was actually needed): +%% % |\urluml{<ascii-char>}| as of 2010/05/25 +%% % (not sure if it ever worked or was actually needed): % \newcommand*{\urluml}[1]{\csname urluml:#1\endcsname} % \@namedef{urluml:a}{\#C3\#A4} % \@namedef{urluml:o}{\#C3\#B6} % \@namedef{urluml:u}{\#C3\#BC} % \@namedef{urluml:s}{\#C3\#9F} %% 2010/08/09 %% -%% \pagebreak %% 2011/10/21 -%% == \TeX-related == %% 2010/08/24 +%% == \TeX-related == %% 2010/08/24 %% === \CTAN === %% ==== Directories and Files in a \TeX\ Archive ==== %% % `\newcommand*{\ctanref}[1]{\httpref{ctan.org/#1}}' @@ -330,15 +370,14 @@ %% |\tugctanref{<path>}{<text>}| %% makes <text> a link %% to a \TeX~Archive directory or file <path>: -\newcommand*{\tugctanref}[1]{% - \httpref{tug.ctan.org/tex-archive/#1}} +\newcommand*{\tugctanref}{\httpbaseref{tug.ctan.org/tex-archive}} %% Alternatively, you can refer to an (automatically chosen) %% \CTAN\ \emph{mirror} %% using %% \[|\mirrorctanref{<path>}{<text>}|.\] %% 2011/10/10 :->.2011/10/21: %% (I prefer the \emph{appearance} of the %% \tugctanref{}{\acro{TUG} archive}, designed by Jim Hefferon.) -\newcommand*{\mirrorctanref}[1]{\httpref{mirror.ctan.org/#1}} +\newcommand*{\mirrorctanref}{\httpbaseref{mirror.ctan.org}} %% You may actually want to ``open" a file <file-name> in <path> %% on \CTAN, %% <file-name> displayed as the link text, %% 2011/10/21 @@ -377,6 +416,7 @@ %% accessing your favourite mirror. %% %% ==== J\"urgen Fenn's Topical \TeX\ Catalogue ==== +%% \label{sec:bytopic} %% 2012/03/09 %% |\bytopicref{<anchor>}{<text>}| %% \ %% 2011/10/21 %% makes <text> a link to <anchor> of J\"urgen Fenn's @@ -384,11 +424,17 @@ %% by clicking at the respective \acro{TOC} entry on top of the page %% and then read the \URL\ from the browser's navigation display. \newcommand*{\bytopicref}[1]{% - \httpref{mirror.ctan.org/help/Catalogue/bytopic.html\##1}} + \mirrorctanref{help/Catalogue/bytopic.html\##1}} +%% %% <- \mirrorctanref 2012/03/09 %% (Example:\quad `\bytopicref{html}{\acro{HTML}}' \ for \ %% \bytopicref{html}{\acro{HTML}}.) %% %% ==== Jim Hefferon's Package Descriptions ==== +%% For v0.6 %% 2012/04/09 +%% and in the spirit of Sec.~\ref{sec:bases}, +%% we introduce an auxiliary +%% \[|\ctanorgbaseref{<more-path>}{<text>}|:\] +\newcommand*{\ctanorgbaseref}{\httpbaseref{ctan.org}} %% |\ctanpkgref{<pkg-name>}| %% makes <text> a link to the \CTAN\ package info page for %% the package <pkg-name>. @@ -401,13 +447,18 @@ %% Also, <Name> may be a package from a \emph{bundle} <name> %% where <name> has a description page while <Name> %% doesn't have its \emph{own} description page -%% (such as \CtanPkgRef{nicetext}{makedoc}). +%% (such as \CtanPkgRef{nicetext}{makedoc}---before 2012/04/10!). %% %% <- was `fifinddo' 2011/10/20, no with own id. \newcommand*{\CtanPkgRef}[2]{% - \httpref{ctan.org/pkg/#1}{\pkgnamefmt{#2}}} + \ctanorgbaseref{pkg/#1}{\pkgnamefmt{#2}}} \newcommand*{\ctanpkgref}[1]{\CtanPkgRef{#1}{#1}} +%% Jim Hefferon also offers pages listing all the packages +%% of a given author, accessible by her/his <id>. +%% |\ctanpkgauref{<id>}{<text>}| makes <text> a link to that page: +\newcommand*{\ctanpkgauref}[1]{\ctanorgbaseref{author/id/#1}} +%% E.g., see \ctanpkgauref{lueck}{\emph{my}} packages. %% -%% === \CTAN\ Announcements === %% 2011/06/27 +%% === \CTAN\ Announcements === %% 2011/06/27 %% |\ctanannref{<id>}{<text>}| makes <text> a link %% to the DANTE web page displaying a \CTAN\ %% announcement. You find <id> by searching @@ -437,7 +488,7 @@ %% === \acro{TUG} === %% |\tugref{<path>}{<text>}| makes <text> a link %% to <path> on domain `tug.org': -\newcommand*{\tugref}[1]{\httpref{tug.org/#1}} +\newcommand*{\tugref}{\httpbaseref{tug.org}} %% ==== texhax ==== %% |\texhaxref{<id>}{<text>}| makes <text> a link %% to the \acro{TUG} web page displaying @@ -484,19 +535,19 @@ \newcommand*{\ukfaqref}[1]{\httpref{% www.tex.ac.uk/cgi-bin/texfaq2html?label=#1}} %% === Wikibooks === -%% |\wikibooks{<language-code>}{<file>}{<text>}|: -\newcommand*{\wikibooksref}[2]{\httpref{#1.wikibooks.org/wiki/#2}} +%% |\wikilangbooks{<language-code>}{<file>}{<text>}| +\newcommand*{\wikilangbooksref}[1]{% %% `lang' 2012/01/06 + \httpbaseref{#1.wikibooks.org/wiki}} %% |\latexwikibookref{<file>}{<subject>}{<text>}| refers to the %% (English) \LaTeX\ Wikibook: -\newcommand*{\latexwikibookref}[1]{\wikibooksref{en}{LaTeX/#1}} +\newcommand*{\latexwikibookref}[1]{\wikilangbooksref{en}{LaTeX/#1}} %% The German -%% \wikibooksref{de}{LaTeX-Kompendium}{\dqtd{\LaTeX-Kompendium}} +%% \wikilangbooksref{de}{LaTeX-Kompendium}{\dqtd{\LaTeX-Kompendium}} %% is somewhat difficult, I leave it for now~... %% -%% == Leaving == %% 2011/01/24 +%% == Leaving and Version HISTORY == %% 2012/03/09 \endinput -%% -%% == VERSION HISTORY == +%% VERSION HISTORY v0.1 2011/01/24 new file, code from blog.sty v0.3 v0.2 2011/01/27 \urlfoot, \NormalHTTPref, \foothttpurlref, "outline" adjusted; @@ -525,3 +576,13 @@ v0.5 2011/10/19 doc. fix LaTeX Wikibook doc. uses \URL 2011/10/21 re-order CTAN, \pagebreak's, \ctanref and choice for it, doc. modified; rm. \ithttpref +uploaded with MOREHYPE r0.52 +v0.6 2012/01/06 \wikilangref etc., \wikiref etc. depend on + \langcode + 2012/01/11 removed old comments for Wikipedia; (C) + 2012/03/09 "URL bases" (\httpbaseref etc.), applied; + \bytopicref uses \mirrorctanref + 2012/03/12 fixed \texhaxref + 2012/04/09 \ctanorgbaseref, \ctanpkgauref + 2012/04/10 makedoc link works! + 2012/05/13 example for \wikilangref corrected |