\ProvidesPackage{lnavicol}[2011/10/13 left navigation column with blog.sty] %% %% Copyright (C) 2011 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 %% %% == 'blog.sty' Required == %% ---but what about options (TODO)? %% 2011/10/09 \RequirePackage{blog} %% %% == Switches == %% %% introduced 2011/04/29, it seems %% There is a ``standard" page width and a ``tight one" %% (the latter for contact forms)---|\iftight|: \newif\iftight %% In order to move an anchor to the \emph{top} of the screen %% when the anchor is near the page end, the page must get %% some extra length by adding empty space at its %% bottom---|\ifdeep|: \newif\ifdeep %% %% == Page Style Settings (to be set locally) == % \newcommand*{\pagebgcolor}{\#f5f5f5} %% CSS whitesmoke % \newcommand*{\pagespacing}{\@cellpadding{4} \@cellspacing{7}} % \newcommand*{\pagenavicolwidth}{125} % \newcommand*{\pagemaincolwidth}{584} % \newcommand*{\pagewholewidth} {792} %% == Possible Additions to 'blog.sty' == %% === Tables === %% |\begin{spancolscell}{<number>}{<style>}| %% opens an environment that contains a row and a single cell %% that will span <number> table cells and have style <style>: \newenvironment{spancolscell}[2]{% \starttr\startTd{\@colspan{#1} #2 % \@width{100\%}}% %% TODO works? }{\endTd\endtr} %% The |{hiddencells}| einvironment contains cells that do not align %% with other cells in the surrounding table. The purpose is using %% cells for horizontal spacing. \newenvironment{hiddencells} {\startTable{}\starttr} {\endtr\endTable} %% |{pagehiddencells}| is like `{hiddencells}' except that %% the \HTML\ code is indented: \newenvironment{pagehiddencells} {\indentii\hiddencells} {\indentii\endhiddencells} %% |\begin{FixedWidthCell}{<width>}{<style>}| \ opens the %% `{FixedWidthCell}' environment. The content will form a cell %% of width <width>. <style> are additional formatting parameters: \newenvironment{FixedWidthCell}[2] {\startTd{#2}\startTable{\@width{#1}}% \starttr\startTd{}} {\endTd\endtr\endTable\endTd} %% |\tablehspace{<width>}| is a variant of \LaTeX's `\hspace{<glue>}'. %% It may appear in a table row: \newcommand*{\tablehspace}[1]{\startTd{\@width{#1} /}} %% %% === Graphics === %% The command names in this section are inspired by the names %% in the standard \LaTeX\ \ctanpkgref{graphics} package. %% (They may need some re-organization TODO.) %% %% |\simpleinclgrf{<file>}| embeds a graphic file <file> without %% the tricks of the remaining commands. \newcommand*{\simpleinclgrf}[1]{\IncludeGrf{alt="" \@border{0}}% {#1}} %% |\IncludeGrf{<style>}{<file>}| embeds a graphic file <file> %% with style settings <style>: \newcommand*{\IncludeGrf}[2]{<img #1 src="#2">} %% |\includegraphic{<width>}{<height>}{<file>}{<border>}{<alt>}{<tooltip>}| %% ...: %% fine with mdoccorr 2011/10/13 \newcommand*{\includegraphic}[6]{% \IncludeGrf{% \@width{#1} \@height{#2} %% data; presentation: \@border{#4} alt="#5" \@title{#6}}% {#3}} %% |\insertgraphic{<wd>}{<ht>}{<f>}{<b>}{<align>}{<hsp>}{<vsp>}{<alt>}{<t>}| %% \\adds <hsp> for the `@hspace' and <vsp> for the `@vspace' %% attribute: \newcommand*{\insertgraphic}[9]{% \IncludeGrf{% \@width{#1} \@height{#2} %% data; presentation: \@border{#4} align="#5" hspace="#6" vspace="#8" alt="#8" \@title{#9}}% {#3}} %% |\includegraphic{<wd>}{<ht>}{<file>}{<anchor>}{<border>}{<alt>}{<tooltip>}| %% \\uses an image with `\includegraphic' parameters as a link to %% <anchor>: \newcommand*{\inclgrfref}[7]{% \fileref{#4}{\includegraphic{#1}{#2}{#3}% {#5}{#6}{#7}}} %% %% === \acro{HTTP}/Wikipedia tooltips === %% |\httptipref{<tip>}{<www>}{<text>}| \ works like \ %% `\httpref{<www>}{<text>}' except that <tip> appears as ``tooltip": \newcommand*{\httptipref}[2]{% \TagSurr a{\@title{#1}\@href{http://#2}\@target@blank}} %% |\@target@blank| abbreviates the `@target' setting for %% opening the target in a new window or tab: \newcommand*{\@target@blank}{target="_blank"} %% % |\wikitipref{<language-code>}{<lemma>}{<text>}| \ %% |\wikitipref{<lc>}{<lem>}{<text>}| %% works like %% % \\ %% % `\wikiref{<language-code>}{<lemma>}{<text>}' %% `\wikiref{<lc>}{<lem>}{<text>}' %% except that %% ``Wikipedia" appears as ``tooltip". %% |\wikideref| and |\wikienref| are redefined to use it: \newcommand*{\wikitipref}[2]{% \httptipref{Wikipedia}{#1.wikipedia.org/wiki/#2}} \renewcommand*{\wikideref}{\wikitipref{de}} \renewcommand*{\wikienref}{\wikitipref{en}} %% %% == Page Structure == %% The body of the page is a table of three rows and two columns. %% === Page Head Row === %% |\PAGEHEAD| opens the head row and a single cell that will span %% the two columns of the second row. \newcommand*{\PAGEHEAD}{% \startTable{% \@align@c\ \@bgcolor{\pagebgcolor}% \@border{0}%% %% TODO local \pagespacing \iftight \else \@width\pagewholewidth \fi }\CLBrk %% omitting <tbody> \ \comment{ HEAD ROW }\CLBrk \indenti\spancolscell{2}{}% } % \newcommand*{\headgrf} [1]{% %% rm. 2011/10/09 % \indentiii\simplecell{\simpleinclgrf{#1}}} % \newcommand*{\headgrfskiptitle}[3]{% % \pagehiddencells % \headgrf{#1}\CLBrk % \headskip{#2}\CLBrk % \headtitle1{#3}\CLBrk % \endpagehiddencells} %% |\headuseskiptitle{<grf>}{<skip>}{<title>}| %% first places <grf>, then skips horizontally by <skip>, %% and then prints the page title as \xmltagcode{h1}: \newcommand*{\headuseskiptitle}[3]{% \pagehiddencells\CLBrk \indentiii\simplecell{#1}\CLBrk \headskip{#2}\CLBrk \headtitle1{#3}\CLBrk \endpagehiddencells} %% |\headskip{<skip>}| is like `\tablehspace{<skip>}' %% except that the \HTML\ code gets an indent. \newcommand*{\headskip} {\indentiii\tablehspace} %% Similarly, |\headtitle{<digit>}{<text>}| is like %% `\heading<digit>{<text>}' apart from an indent and %% being put into a cell: \newcommand*{\headtitle}[2]{\indentiii\simplecell{\heading#1{#2}}} %% %% === Navigation and Main Row === %% |\PAGENAVI| closes the head row and opens the ``navigation" %% column, actually including an `{itemize}' environment. %% Accordingly, `writings.fdf' has a command `\fileitem'. %% But it seems that I have not been sure ... \newcommand*{\PAGENAVI}{% \indenti\endspancolscell\CLBrk \indenti\starttr\CLBrk \ \comment{NAVIGATION COL}\CLBrk \indentii\FixedWidthCell\pagenavicolwidth {\@class{paper} %% <- using `@class'=`paper' here is my brother's idea, %% not sure about it ... \@valign@t} %% omitting `\@height{100\%}' \itemize} %% |\PAGEMAINvar{<width>}| closes the navigation column %% and opens the ``main content" column. The latter gets %% width <width>: \newcommand*{\PAGEMAINvar}[1]{% \indentii\enditemize\ \endFixedWidthCell\CLBrk \ \comment{ MAIN COL }\CLBrk \indentii\FixedWidthCell{#1}{}} %% ... The width may be specified as |\pagemaincolwidth|, %% then |\PAGEMAIN| works like `\PAGEMAINvar{\pagemaincolwidth}': \newcommand*{\PAGEMAIN}{\PAGEMAINvar\pagemaincolwidth} %% %% === Footer Row === %% |\PAGEFOOT| closes the ``main content" column as well as %% the second row, and opens the footer row: \newcommand*{\PAGEFOOT}{% \indentii\endFixedWidthCell\CLBrk % \indentii\tablehspace{96}\CLBrk %% vs. \pagemaincolwidth %% <- TODO margin right of foot \indenti\endtr\CLBrk \ \comment{ FOOT ROW / }\CLBrk \indenti\spancolscell{2}{\@class{paper} \@align@c}% %% <- again class ``paper"!? } %% |\PAGEEND| closes the footer row and provides all the rest %% ... needed? \newcommand*{\PAGEEND}{\indenti\endspancolscell\endTable} %% %% == The End and HISTORY == \endinput HISTORY 2011/04/29 started (? \if...) 2011/09/01 to CTAN as `twocolpg.sty' 2011/09/02 renamed 2011/10/09f. documentation more serious 2011/10/13 `...:' OK