summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/limap
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-06-11 23:21:54 +0000
committerKarl Berry <karl@freefriends.org>2016-06-11 23:21:54 +0000
commit39eee492a47dc496a406cd7d0cc34a8530d8f5ce (patch)
treec693a114d44f74f2f7abdabf3513c12132fd3168 /Master/texmf-dist/source/latex/limap
parentd2d91fb13aec1db9eaeb97b72d019f0df3fb1876 (diff)
limap (29may16)
git-svn-id: svn://tug.org/texlive/trunk@41390 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/limap')
-rw-r--r--Master/texmf-dist/source/latex/limap/Makefile34
-rw-r--r--Master/texmf-dist/source/latex/limap/limap.dtx2559
-rw-r--r--Master/texmf-dist/source/latex/limap/limap.ins87
3 files changed, 1868 insertions, 812 deletions
diff --git a/Master/texmf-dist/source/latex/limap/Makefile b/Master/texmf-dist/source/latex/limap/Makefile
deleted file mode 100644
index 926ee7b955c..00000000000
--- a/Master/texmf-dist/source/latex/limap/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-#******************************************************************************
-#* $Id: Makefile 1.2 2000/03/01 20:11:42 gene Exp gene $
-#******************************************************************************
-#* Author: Gerd Neugebauer
-#*=============================================================================
-
-NAME = limap
-LATEX = latex
-MAKEINDEX = makeindex
-
-
-all: ${NAME}.cls ${NAME}.dvi
-
-${NAME}.cls: ${NAME}.dtx ${NAME}.ins
- ${RM} ${NAME}.cls ${NAME}.sty
- ${LATEX} ${NAME}.ins
-
-${NAME}.sty: ${NAME}.dtx ${NAME}.ins
- ${RM} ${NAME}.cls ${NAME}.sty
- ${LATEX} ${NAME}.ins
-
-${NAME}.dvi: ${NAME}.dtx
- ${LATEX} ${NAME}.dtx
- ${MAKEINDEX} -s gind.ist ${NAME}
- ${LATEX} ${NAME}.dtx
-
-#------------------------------------------------------------------------------
-
-ci:
- ci -l ${NAME}.dtx ${NAME}.ins Makefile
-clean:
- ${RM} ${NAME}.cls ${NAME}.sty
-
-
diff --git a/Master/texmf-dist/source/latex/limap/limap.dtx b/Master/texmf-dist/source/latex/limap/limap.dtx
index e9a1b495300..4422438581e 100644
--- a/Master/texmf-dist/source/latex/limap/limap.dtx
+++ b/Master/texmf-dist/source/latex/limap/limap.dtx
@@ -1,27 +1,22 @@
%%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%^^A $Id: limap.dtx 1.2 2000/03/01 20:11:42 gene Exp gene $
-%%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\iffalse
%% Purpose:
%% A package for typesetting Information Maps.
%%
%% Documentation:
%% The documentation can be generated from the original file
-%% limap.dtx with the doc style/package. LaTeX the file limap.tex
-%% to get the full documentation in \textsc{dvi} format.
+%% limap.dtx with the doc class/package. LaTeX the file limap.tex
+%% to get the full documentation in pdf format.
%%
%% Author: Gerd Neugebauer
-%% Mainzer Str. 8
-%% 56321 Rhens (Germany)
-%% Mail: gerd.neugebauer@sdm.de
-%% gerd.neugebauer@gmx.de
+%% Im Lerchelsb\"ohl 5
+%% 64521 Gro\ss-Gerau (Germany)
+%% Mail: gene@gerd-neugebauer.de
%%
-%% Copyright (C) 1999-2000 Gerd Neugebauer
+%% Copyright (C) 1999-2016 Gerd Neugebauer
%%
%% limap.dtx may be distributed under the terms of the LaTeX Project
-%% Public License, as described in lppl.txt in the base LaTeX
-%% distribution. Either version 1.0 or, at your option, any later
-%% version.
+%% Public License version 1.3c, as described in lppl.txt.
%%
%% This class is still under development and may be replaced with a
%% new version which provides an enhanced functionality.
@@ -29,19 +24,38 @@
%\fi
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% \title{A \LaTeX\ Package for Typesetting Information Maps\thanks{This file
-% documents \filename\ version \fileversion\ as of \filedate.}}
-% \author{Gerd Neugebauer\\
-% Mainzer Str.\ 8\\
-% 56321 Rhens (Germany)\\
-% Net: \texttt{gerd.neugebauer@sdm.de}}
+% \title{\texttt{limap}: A \LaTeX\ Package and Class for Typesetting Information Maps}
+% \author{Gerd Neugebauer\\\normalsize
+% Net: \texttt{\href{mailto:gene@gerd-neugebauer.de}{gene@gerd-neugebauer.de}}}
+% \hypersetup{
+% pdftitle = {limap},
+% pdfsubject = {A LaTeX Package for Typesetting Information Maps},
+% pdfauthor = {Gerd Neugebauer},
+% }
%
-% \date{{\footnotesize Documentation date: \docdate}}
+% \date{This file documents \filename\ version \fileversion\ as of
+% \filedate.\\ Documentation date: \docdate}
%
% \maketitle
%
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \changes{1.0}{2000/03/01}{First public release.}
+% \changes{2.0}{2016/04/16}{Fix in |MapTableofContents|: Trailing percent made unnecessary}
+% \changes{2.0}{2016/04/16}{Extensions integrated into the package.
+% Documentation improved.}
+% \changes{2.0}{2016/04/14}{Renamed |MapTOCemph| to |MapTOCheadfont|.}
+% \changes{2.0}{2016/04/15}{Renamed |MapTitleSize| to |MapTitleFont|.}
+% \changes{2.0}{2016/04/16}{Renamed |MapTitlefraction| to |MapTitleFraction|.}
+% \changes{2.0}{2016/04/16}{Environment |MapTabular| added}
+% \changes{2.0}{2016/04/16}{Renamed |MapTextfraction| to |MapTextFraction|.}
+% \changes{2.0}{2016/04/16}{Parameter |MapBlockLabelFont| introduced.}
+% \changes{2.0}{2016/04/16}{Parameter |MapBlockLabelFont| introduced.}
+% \changes{2.0}{2016/04/17}{Renamed |MapTitleContinuedSize| to |MapTitleContinuedFont|.}
+% \changes{2.0}{2016/05/22}{TOC Re-engineered to allow
+% interaction with hyperref.}
+% \changes{2.0}{2016/05/22}{Option |nolines| added.}
+% \changes{2.1}{2016/05/24}{|WideBlock| fixed and samples added.}
+% \changes{2.1}{2016/05/26}{|MapTabularFraction| added.}
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% \DoNotIndex{\ ,\",\',\.,\[,\\,\],\^,\`,\~,\@,\@author,\@auxout}
@@ -52,58 +66,66 @@
% \DoNotIndex{\@tempdima,\@title,\@thefnmark,\@undefined}
% \DoNotIndex{\@ixpt,\@vpt,\@vipt,\@viipt,\@viiipt}
% \DoNotIndex{\@xpt,\@xipt,\@xiipt,\@xivpt,\@xvii,\@xxpt,\@xxvpt}
-% \DoNotIndex{\AA,\AE,\CodelineIndex}
-% \DoNotIndex{\CurrentOption,\DeclareOption,\DeleteShortVerb,\DocInput}
+% \DoNotIndex{\AA,\AE,\CodelineIndex,\CurrentOption}
+% \DoNotIndex{\DescribeEnv,\DescribeMacro,\DeclareOption,\DeleteShortVerb,\DocInput}
% \DoNotIndex{\EnableCrossrefs,\H,\InputIfFileExists}
% \DoNotIndex{\L,\LARGE,\LaTeX,\Large}
% \DoNotIndex{\LoadClass,\NeedsTeXFormat,\O,\OE,\OptionNotUsed}
% \DoNotIndex{\PackageError,\PackageWarning,\PassOptionsToClass}
-% \DoNotIndex{\ProcessOptions,\ProvidesClass}
+% \DoNotIndex{\ProcessOptions,\ProvidesClass,\PrintDescribeEnv,\PrintDescribeMacro}
% \DoNotIndex{\PrintChanges,\PrintIndex}
-% \DoNotIndex{\ProvidesPackage,\RecordChanges,\RequirePackage,\TeX}
+% \DoNotIndex{\ProvidesPackage,\R,\RecordChanges,\RequirePackage,\TeX}
+% \DoNotIndex{\SpecialEnvIndex,\SpecialUsageIndex}
% \DoNotIndex{\aa,\addcontentsline,\addpenalty,\addtolength,\advance}
% \DoNotIndex{\addvspace,\ae,\ast,\arabic}
-% \DoNotIndex{\b,\baselineskip,\begin,\begingroup,\bf,\bgroup,\egroup}
-% \DoNotIndex{\bigskip,\box,\bullet}
+% \DoNotIndex{\b,\baselineskip,\begin,\begingroup,\bfseries,\bgroup}
+% \DoNotIndex{\bigskip,\bottomrule,\box,\bullet}
% \DoNotIndex{\c,\cal,\catcode,\centering,\chapter,\chardef,\circ}
-% \DoNotIndex{\clearpage,\closein,\closeout}
-% \DoNotIndex{\clubpenalty,\csname}
+% \DoNotIndex{\cfoot,\clearpage,\closein,\closeout}
+% \DoNotIndex{\clubpenalty,\color,\csname}
% \DoNotIndex{\d,\def,\dimen,\diamond,\divide,\documentclass,\dots,\dp}
-% \DoNotIndex{\edef,\else,\em,\emph,\empty,\end,\endcsname,\endgroup}
-% \DoNotIndex{\endinput,\endlist}
+% \DoNotIndex{\definecolor}
+% \DoNotIndex{\edef,\egroup,\else,\em,\emph,\empty,\end,\endcsname}
+% \DoNotIndex{\endgroup,\endinput,\endlist}
% \DoNotIndex{\expandafter,\fbox,\fi,\footnotesize,\footskip,\framebox}
% \DoNotIndex{\frenchspacing,\futurelet,\gdef,\global,\gobble}
% \DoNotIndex{\hangafter,\hangindent,\hbox,\headheight,\headsep,\hfil}
-% \DoNotIndex{\hfill,\hrule,\hskip,\hspace,\hss,\ht,\huge,\ifcat,\ifeof}
+% \DoNotIndex{\hfill,\hrule,\hskip,\hspace,\hss,\ht,\huge,\hypersetup}
+% \DoNotIndex{\ifcat,\ifeof}
% \DoNotIndex{\ifdim,\ifnum,\iftrue,\ifx,\ignorespaces,\immediate,\index}
% \DoNotIndex{\input,\it}
% \DoNotIndex{\itemindent,\itemsep,\jobname,\kern,\l,\labelsep,\labelwidth}
-% \DoNotIndex{\large,\leavevmode,\leftmark,\leftskip,\let,\list}
+% \DoNotIndex{\large,\leavevmode,\leftmark,\leftskip,\let,\lhead,\list}
% \DoNotIndex{\llap,\long,\lower}
+% \DoNotIndex{\makeatletter,\makeatother}
% \DoNotIndex{\m@th,\makebox,\magstep,\makeindex,\markboth,\mbox,\medskip}
-% \DoNotIndex{\multicolumn}
+% \DoNotIndex{\marginpar,\midrule,\multicolumn}
% \DoNotIndex{\newblock,\newcommand,\newcount,\newenvironment,\newfont}
% \DoNotIndex{\newif,\newlength,\newline,\newpage,\newread,\newwrite}
-% \DoNotIndex{\nobreak,\noindent,\normalsize,\null,\o,\oe}
-% \DoNotIndex{\openin,\openout,\or,\pagestyle,\par,\paragraph,\parbox}
+% \DoNotIndex{\nobreak,\noindent,\normalsize,\null}
+% \DoNotIndex{\o,\oddsidemargin,\oe,\openin,\openout,\or}
+% \DoNotIndex{\pagestyle,\par,\paragraph,\parbox}
% \DoNotIndex{\parfillskip,\parindent,\parsep,\parskip,\part,\partopsep}
% \DoNotIndex{\penalty,\providecommand,\quad}
% \DoNotIndex{\raggedbottom,\raggedright,\raise,\raisebox,\refstepcounter}
-% \DoNotIndex{\relax,\renewcommand,\renewenvironment,\rightskip,\rm,\rule}
+% \DoNotIndex{\relax,\renewcommand,\renewenvironment,\rhead}
+% \DoNotIndex{\rightskip,\rm,\rule}
% \DoNotIndex{\sbox,\sc,\section,\setcounter,\setlength,\settowidth}
% \DoNotIndex{\sf,\sfcode,\sl}
% \DoNotIndex{\sloppy,\small,\space,\ss,\string}
+% \DoNotIndex{\setsansfont,\setmonofont,\setmainfont}
% \DoNotIndex{\subparagraph,\subsubparagraph}
% \DoNotIndex{\subsection,\subsubsection,\symbol}
% \DoNotIndex{\t,\tenex,\textheight,\textit,\textsf,\textstyle,\textwidth}
-% \DoNotIndex{\the,\thepage,\thispagestyle}
-% \DoNotIndex{\topmargin,\topsep,\tt,\typeout}
-% \DoNotIndex{\u,\unitlength,\usecounter,\v,\varepsilon,\vbox}
-% \DoNotIndex{\vfill,\vsize,\vskip,\vspace,\vss}
-% \DoNotIndex{\wd,\widowpenalty,\write,\xdef,\z@}
+% \DoNotIndex{\textrm,\the,\thepage,\thispagestyle,\textregistered}
+% \DoNotIndex{\topmargin,\toprule,\topsep,\tt,\typeout}
+% \DoNotIndex{\u,\unitlength,\usecounter,\usepackage,\usetikzlibrary}
+% \DoNotIndex{\v,\varepsilon,\vbox}
+% \DoNotIndex{\vfill,\vsize,\voffset,\vskip,\vspace,\vss}
+% \DoNotIndex{\wd,\widowpenalty,\write,\xdef,\z@,\(,\)}
%
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \CheckSum{608}
+% \CheckSum{798}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -123,396 +145,1271 @@
%%
%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% \begin{abstract}
-% The Information
-% Mapping\(^{\textrm{\footnotesize\textregistered}}\) method
-% provides a different methodology for structuring and presenting
-% information. It claims to be useful for readers who are more
-% concerned about finding the right information than reading the
-% document as a whole. Thus short, highly structured, and context
-% free pieces of information are used.
-%
-% \texttt{limap.dtx} provides a \LaTeX{} style and a \LaTeX{}
-% class. The style contains definitions to typeset maps and
-% blocks according to the Information Mapping method. The
-% class provides all definitions to typeset a whole document.
-% \end{abstract}
+% \begin{Abstract}
+% The Information Mapping\R method provides a methodology for
+% structuring and presenting information. It claims to be useful
+% for readers who are more concerned about finding the right
+% information than reading the document as a whole. Thus short,
+% highly structured, and context free pieces of information are
+% used.
+%
+% \texttt{limap} provides a \LaTeX{} package and a \LaTeX{}
+% class. The package contains definitions to typeset maps and
+% blocks according to the Information Mapping\R method. The class
+% provides all definitions to typeset a whole document.
+% \end{Abstract}
%
% \newpage
+% \begin{Map}{}
+% \vspace*{-6ex}%
+% \Block{Copyright}%
+% Copyright \textcopyright\ 1999–2016
+% \href{http://www.gerd-neugebauer.de}{Gerd Neugebauer}
+%
+% \Block{Licenses}%
+% The source files of |limap| and the derived files
+% \begin{itemize}\itemsep=0pt
+% \item |limap.dtx|
+% \item |limap.ins|
+% \item |README.md|
+% \item |Makefile|
+% \item |limap.sty|
+% \item |limap.cls|
+% \item |limap.pdf|
+% \end{itemize}
+% may be distributed under the terms of the \LaTeX\ Project
+% Public License version 1.3c, as described in the file
+% |lppl.txt|.
+%
+% The documentation can be used under the
+% \href{http://creativecommons.org/licenses/by-sa/4.0/}{Creative
+% Commons Attributation-Share Alike 4.0 License} (CC BY-SA 4.0).
+%
+% The files in the |samples| directory are distributed unter
+% \href{http://creativecommons/zero/1.0}{Creative Commons CC0
+% 1.0 Universal}.
+%
+% \Block{Net}%
+% The sources of |limap| are hosted on Sourceforge as part of the
+% project \texttt{gene-tex-lib}. The sources can be found under
+% the URL
+% \url{https://sourceforge.net/p/gene-tex-lib/svn/HEAD/tree/limap/}.
+%
+% A bundled distribution can be obtained via CTAN under the
+% package URL
+% \url{https://www.ctan.org/pkg/limap} or from the package's home
+% page under \url{http://www.gerd-neugebauer.de/sowftware/TeX/limap}.
+%
+% \Block{Contact}%
+% The author can be contacted under the following coordinates:
+%
+% \begin{minipage}{.6\linewidth}\parindent=2em
+% Gerd Neugebauer \medskip\par
+% Im Lerchelsb\"ohl 5 \par
+% 64521 Gro\ss-Gerau \par
+% Germany \medskip\par
+% \href{mailto:gene@gerd-neugebauer.de}{gene@gerd-neugebauer.de}
+% \end{minipage}
+% \end{Map}
+% \newpage
% \tableofcontents
% \newpage
%
-% \section{Motivation}
%
-% The information mapping method provides a methodology to
-% structure information in a special way. The aim is to help a
-% reader who uses the document to search for relevant information
-% instead of consuming it from start to end. The information
-% mapping method also claims to raise the productivity of writers.
-%
-% This document does not include an introduction to the information
-% mapping method. The reader is referred to other documents. Maybe
-% an acompanying document is distributed with this package.
-%
-% To support the information mapping method several \LaTeX{} macros
-% and environments are needed which provide a logical description
-% of the relevant concepts. Those macros are provided in the
-% package and class file.
+% \begin{Map}{Motivation}
%
-% This package provides both a class file as well as a package. The
-% package contains the definitions of maps, blocks, and
-% others. They can be used together with any base class.
-%
-% The class load a base class and does some other useful stuff. The
-% base class can be determined with two class options.
+% \Block{Methodology}%
+% The information mapping\R method provides a methodology to
+% structure information in a special way. The aim is to help a
+% reader who uses the document to search for relevant information
+% instead of consuming it from start to end. The information
+% mapping method also claims to raise the productivity of
+% writers.
+%
+% \Block{No tutorial}%
+% This document does not include an introduction to the
+% information mapping method itself. The reader is referred to
+% other documents. Maybe an accompanying document will be
+% distributed along with this package.
+%
+% Unfortunately the methodology – or the name – is protected by
+% a trademark. Thus the teaching of the methodology is restricted
+% to licensed institutions.
+%
+% \Block{Principles}%
+% \begin{center}
+% \begin{tikzpicture}[mindmap,concept color=blue!16]\bfseries\scriptsize
+% \node [concept,ball color=blue!8] {Information Mapping\R}
+% child[grow=150,concept color=blue!20!black] {%
+% node[concept,ball color=blue!20!black] {\color{white}Principles}
+% child[grow=30,concept color=blue!48] {%
+% node[concept,ball color=blue!48] {Chunking}}
+% child[grow=80,concept color=blue!48] {%
+% node[concept,ball color=blue!48] {Relevance}}
+% child[grow=130,concept color=blue!48] {%
+% node[concept,ball color=blue!48] {Labelling}}
+% child[grow=180,concept color=blue!48] {%
+% node[concept,ball color=blue!48] {Consistency}}
+% child[grow=230,concept color=blue!48] {%
+% node[concept,ball color=blue!48] {Accessible details}}
+% child[grow=280,concept color=blue!48] {%
+% node[concept,ball color=blue!48] {Integrated graphics}}
+% };
+% \end{tikzpicture}
+% \end{center}
+%
+% \Block{Information Type}%
+%
+% \begin{center}
+% \begin{tikzpicture}[mindmap,concept color=blue!48]\bfseries\scriptsize
+% \node [concept,ball color=blue!8] {Information Mapping\R}
+% child[grow=-30,concept color=blue!20!black] {%
+% node[concept,ball color=blue!20!black] {\color{white}Infor-mation Type}
+% child[grow=100,concept color=blue!48] {%
+% node[concept,ball color=blue!48] {Procedure}}
+% child[grow=50,concept color=blue!48] {%
+% node[concept,ball color=blue!48] {Process}}
+% child[grow=0,concept color=blue!48] {%
+% node[concept,ball color=blue!48] {Principle}}
+% child[grow=-50,concept color=blue!48] {%
+% node[concept,ball color=blue!48] {Concept}}
+% child[grow=-110,concept color=blue!48] {%
+% node[concept,ball color=blue!48] {Structure}}
+% child[grow=-160,concept color=blue!48] {%
+% node[concept,ball color=blue!48] {Fact}}
+% };
+% \end{tikzpicture}
+% \end{center}
+%
+% \Block{Problems of restructuring}%
+% You as \LaTeX\ user may have encountered the problem when
+% restructuring a document: The sections know exactly the level
+% they belong to. If you introduce a new section and put another
+% section into it you have to change all sectioning commands to
+% reflect the new level of the section and their subsections.
+%
+% The macros of |limap| abstract away the level of the document
+% structuring. Any structuring unit is a “Block”. It may contain
+% text or other blocks. Such blocks are the replacement or the
+% sectioning commands. When you restructure your document you
+% simply shift the block and anything it contains to the new
+% place and you are done.
+%
+% The same mechanism can help you to include the same material in
+% several documents – at different sectioning levels!
+%
+% \Block{Structure and constituents}%
+% The general approach focuses very much on the structure of
+% the document. The following diagram illustrates the terminology
+% used within this documentation.
+%
+% \begin{center}\small
+% \tikzstyle{class}=[rectangle,
+% text centered,
+% minimum width=6em,
+% minimum height=3em,
+% draw=black!60!red,
+% drop shadow,
+% top color=yellow!92!red!10!white,
+% bottom color=yellow!92!red!40!white]
+% \tikzstyle{arrow}=[draw=black!60!red, thick]
+% \begin{tikzpicture}
+% \path (3.75,6) node(doc) [class]{\bfseries Document}
+% (3.75,4) node(map) [class]{\bfseries Map}
+% (3.75,2) node(block) [class]{\bfseries Block}
+% (0,0) node(text) [class]{\bfseries Text}
+% (2.5,0) node(table) [class]{\bfseries Table}
+% (5,0) node(image) [class]{\bfseries Image}
+% (7.5,0) node(figure) [class]{\bfseries Diagram};
+% \draw[arrow,very thick,->] (doc) -- (map);
+% \node[left] at ($(doc)!.6!(map)$) {\scriptsize 1..*};
+% \draw[arrow,very thick,->] (map) -- (block);
+% \node[left] at ($(map)!.6!(block)$) {\scriptsize 1..9};
+% \draw[arrow,very thick,->] (map) -- +(1.5,0) -- +(1.5,1) -- +(.75,1) -- (map);
+% \draw (4.75,4.75) node {\scriptsize 0..*};
+% \draw[arrow,very thick,->] (block) -- (text);
+% \node[left] at ($(block)!.6!(text)$) {\scriptsize 0..*};
+% \draw[arrow,very thick,->] (block) -- (table);
+% \node[left] at ($(block)!.6!(table)$) {\scriptsize 0..1};
+% \draw[arrow,very thick,->] (block) -- (image);
+% \node[right] at ($(block)!.6!(image)$) {\scriptsize 0..1};
+% \draw[arrow,very thick,->] (block) -- (figure);
+% \node[right] at ($(block)!.6!(figure)$) {\scriptsize 0..1};
+% \end{tikzpicture}
+% \end{center}
+%
+% \Block{Class or package}%
+% To support the information mapping\R method several \LaTeX{}
+% macros and environments are provided which allow you to enter a
+% logical description of the relevant concepts. Those macros are
+% provided in the package and class file. It is up to you to
+% choose one of them.
%
+% \Block{Interoperabilty with other classes and packages}%
+% The main part of the user interface is inherited from \LaTeX.
+% The major differences are the sectioning commands which are
+% made obsolete in parts by the information mapping\R method.
+% Thus most packages can be used to typeset contents of a block.
+% \end{Map}
+%
+% \begin{Map}{Getting Started}
%
-% \section{The User Interface}
+% \Block{Introduction}%
+% If you are starting to use |limap| you should be vaguely
+% familiar with the underlying methodology. This documentation
+% does not provide an introduction.
+%
+% When you start using this class or package you should say
+% “Good bye” to the classical document structuring macros in
+% the \LaTeX\ standard classes.
+%
+% \Block{Class or package}%
+% First of all you should decide whether to use the |limap| class
+% or the |limap| package. The class is meant for a complete document.
+% The package allows to combine |limap| with arbitrary other
+% document classes.
+%
+% \Block{Contents}%
+% In the maps contained herein you will find an introduction on
+% the use of the |limap| macros and environments. They are
+% accompanied by illustrating sample code.
+% \MapTableOfContents
+%
+% \begin{Map}{Using the Document Class}
+%
+% \Block{Using the document class}%
+% This package provides both a class file as well as a package.
+% The package contains the definitions of maps, blocks, and
+% others. They can be used together with any base class. This
+% is illustrated in the following preamble:
+% \begin{verbatim}
+% \documentclass{book}
+% \usepackage{limap}
+% \begin{document} \end{verbatim}
+%
+% \Block{Suppressing the block lines}%
+% This class option |nolines| can be used to suppress the line
+% above and below block. This is illustrated in the following
+% preamble:
+% \begin{verbatim}
+% \documentclass[nolines]{limap}
+% \begin{document} \end{verbatim}
+%
+% \Block{Other options}%
+% Any option not processed by |limap.cls| is passed to the
+% underlying document class used. Thus it is possible to
+% customize the underlying class any further.
+%
+% \Block{Several types of options}%
+% In the maps contained herein you will find the supported
+% options for the document class |limap|.
+% \MapTableOfContents
+%
+% \begin{Map}{Document Class Options for Language Selection}
+%
+% \Block{Introduction}%
+% The document class |limap| inserts some words. Thus it has to
+% know the language it is supposed to use. Thus the language
+% has to be specified as one document class option.
+% \begin{verbatim}
+% \documentclass[german]{limap}
+% \begin{document} \end{verbatim}
+%
+% \Block{Supported languages}%
+% First, we describe the settings influencing the language
+% specific settings. They do not make provisions to use the
+% appropriate hyphenation patterns. They just arrange things
+% such that the internally used texts are displayed in the
+% chosen language.
+%
+% \begin{MapTabular}{@{\tt }lp{.75\linewidth}}\toprule
+% \rm Option & Description\\\midrule
+% austrian & Activate the language specific text
+% fragments for the Austrian language (in fact
+% German with one minor modification).\\
+% english & Activate the language specific text fragments
+% for the English language.\\
+% french & Activate the language specific text fragments
+% for the French language.\\
+% german & Activate the language specific text fragments
+% for the German language.\\
+% USenglish & Activate the language specific text
+% fragments for the American
+% English.\\\bottomrule
+% \end{MapTabular}
+%
+% \Block{Default language}%
+% The default language is |english|. It is used if no language
+% is set.
+%
+% \Block{Beware of hyphenation}%
+% Note that the hyphenation patterns are not loaded
+% automatically. You have to load the hyphenation patterns,
+% for instance with the
+% \href{https://www.ctan.org/pkg/babel}{babel} package.
+%
+% This behavior has been chosen to allow you to select the
+% language package of your choice. Also you can pass in
+% additional options to this package more easily.
+% \end{Map}
+%
+% \begin{Map}{Document Class Options for Variant Selection}
+%
+% \Block{Introduction}%
+% The document class |limap| is based on another document
+% class. Thus you can use the well-known macros and
+% environments defined there and take advantage of the
+% extensions provided by |limap|.
+%
+% \begin{verbatim}
+% \documentclass{limap}
+% \begin{document} \end{verbatim}
+% \Block{Variants}%
+% The class has two additional options to determine the base
+% class to be used. The first option is the variant. It can take
+% the following values:
+%
+% \begin{MapTabular}{@{\tt }ll}\toprule
+% \rm Option & Description\\\midrule
+% base & Use the base set of classes. This is the default.\\
+% koma & Use the set of classes from
+% \href{https://www.ctan.org/pkg/koma-script}{koma-script}.\\\bottomrule
+% \end{MapTabular}
+%
+% \Block{Default variant}%
+% If no document class option is used then |base| is the
+% default variant.
+% \end{Map}
+%
+% \begin{Map}{Document Class Options for Base Class Selection}
+%
+% \Block{Introduction}%
+% The document class |limap| follows the logic introduced in
+% the \LaTeX\ standard document classes. The type of the base
+% document class can be given as argument to the |limap| class.
+%
+% \begin{verbatim}
+% \documentclass[book]{limap}
+% \begin{document} \end{verbatim}
%
-% The main part of the user interface is inherited from \LaTeX. The
-% major differences are the sectioning commands which are made
-% obsolete in parts by the information mapping method.
%
-% \subsection{Package and Class Options}
-% The package and the class can take several options to influence
-% the behaviour of the package or class.
+% \Block{Class type}%
+% The second option is the class type. It determines which kind of
+% document to typeset. It can take the following values:
+%
+% \begin{MapTabular}{@{\tt }ll}\toprule
+% \rm Option & Description\\\midrule
+% book & Typeset a book type document.\\
+% report & Typeset a report type document.\\
+% article & Typeset an article type document.\\
+% letter & Typeset a letter type document.\\\bottomrule
+% \end{MapTabular}
+%
+% \Block{Mapping of variant and type}%
+% The following table shows which base classes are loaded according
+% to the given values:
%
-% First, we describe the settings influencing the languge specific
-% settings. They do not make provisions to use the appropriate
-% hyphenation patterns. They just arrange things such that the
-% internaly used texts are displaeyed in the choosen language.
-% \begin{description}
-% \item [austrian] Activate the language specific text fragments
-% for the austrian language (in fact German with one minor modification).
-% \item [german] Activate the language specific text fragments
-% for the german language.
-% \item [french] Activate the language specific text fragments
-% for the french language.
-% \item [english] Activate the language specific text fragments
-% for the english language.
-% \item [USenglish] Activate the language specific text fragments
-% for the american language.
-% \end{description}
-%
-% The class has two additional options to determine the base class
-% to be used. The first option is the variant. It can take the
-% following values:
+% \begin{MapTabular}{@{\tt }lcc}\toprule
+% \rm Type /variant & \emph{base} & \emph{koma} \\\midrule
+% book & book & scrbook \\
+% report & report & scrreprt \\
+% article & article & scrartcl \\
+% letter & letter & scrlettr \\\bottomrule
+% \end{MapTabular}
+%
+% \Block{Default type}%
+% The default type is |report|. It is used if no type is set.
+% \end{Map}
+% \end{Map}
+%
+% \begin{Map}{Using the Package}
+% \Block{Introduction}%
+% The package |limap| can be used together with most document
+% classes. An exception are classes for slides like the
+% \href{https://www.ctan.org/pkg/beamer}{beamer} class.
+%
+% As usual it is declared in the document preamble.
%
-% \begin{description}
-% \item [base] Use the base set of classes. This is the default.
-% \item [koma] Use the set of classes from koma-script.
-% \end{description}
-%
-% The second option is the class type. It determines which kind of
-% document to typeset. It can talk the following values:
-% \begin{description}
-% \item [book] Typeset a book type document.
-% \item [report] Typeset a report type document.
-% \item [article] Typeset a article type document.
-% \item [letter] Typeset a letter type document.
-% \end{description}
+% \begin{verbatim}
+% \documentclass{report}
+% \usepackage{limap}
+% \begin{document} \end{verbatim}
+% \Block{Content}%
+% The following additional information is available.
+% \MapTableOfContents
+%
+% \begin{Map}{Package Options for Language Selection}
+%
+% \Block{Introduction}%
+% The package |limap| inserts some words. Thus it has to
+% know the language it is supposed to use. Thus the language
+% has to be specified as package option.
+% \begin{verbatim}
+% \usepackage[german]{limap}
+% \begin{document} \end{verbatim}
+%
+% \Block{Inheritance of document class options}%
+% Alternatively the language selecting option can be specified
+% as document class option. Thus several packages can share the
+% same setting.
+% \begin{verbatim}
+% \documentclass[german]{scrbook}
+% \documentclass{limap}
+% \begin{document} \end{verbatim}
+%
+% \Block{Supported languages}%
+% Here we describe the settings influencing the language
+% specific settings. They do not make provisions to use the
+% appropriate hyphenation patterns. They just arrange things
+% such that the internally used texts are displayed in the
+% chosen language.
+%
+% \begin{MapTabular}{@{\tt }lp{.75\linewidth}}\toprule
+% \rm Option & Description\\\midrule
+% austrian & Activate the language specific text
+% fragments for the Austrian language (in fact
+% German with one minor modification).\\
+% english & Activate the language specific text fragments
+% for the English language.\\
+% french & Activate the language specific text fragments
+% for the French language.\\
+% german & Activate the language specific text fragments
+% for the German language.\\
+% USenglish & Activate the language specific text
+% fragments for the American English.\\\bottomrule
+% \end{MapTabular}
%
-% The following table shows which base classes are loaded according
-% to the given values:
+% \Block{Default language}%
+% The default language is |english|. It is used if no language
+% is set.
%
-% \begin{center}
-% \begin{tabular}{lcc}\hline
-% & \emph{base} & \emph{koma} \\\hline
-% \emph{book} & book & scrbook \\
-% \emph{report} & report & scrreprt \\
-% \emph{article} & article & scrartcl \\
-% \emph{letter} & latter & scrlettr \\\hline
-% \end{tabular}
-% \end{center}
+% \Block{Beware of hyphenation}%
+% Note that the hyphenation patterns are not loaded
+% automatically. You have to load the hyphenation patterns,
+% for instance with the
+% \href{https://www.ctan.org/pkg/babel}{babel} package.
+%
+% This behavior has been chosen to allow you to select the
+% language package of your choice. Also you can pass in
+% additional options to this package more easily.
+% \end{Map}
+% \end{Map}
+% \end{Map}
%
-% Any option not processed by limap.cls is passed to the base class
-% used. Thus it is possible to customize those classes any further.
+% \begin{Map}{The Block}\label{map:block}
%
+% \Block{Meaning}%
+% A “block” is the essential building units of the |limap|
+% package. You can think of it as paragraph with a title.
%
-% \subsection{Macros and Environments}
-%
-% \DescribeEnv{Block}
-% The environment |Block| can be used to typeset an IMAP block. It takes
-% one argument which is the block title.
-%
-% This environment is active inside a map only. It can't easily be
-% redefined.
-%
-% \DescribeMacro{\Block}
-% The macro |\Block| can be used to typeset an IMAP block. It takes
-% one argument which is the block title.
-%
-% This is a shorthand for denoting a block. The end mark can be
-% omitted if you use the macro instead of the environment.
-% Nevertheless this is depreciated.
-%
-% \DescribeMacro{\WideBlock}
-% The macro |\WideBlock| can be used to typeset a piece of
-% information on the whole page width. It is normally used after an
-% initiating block containng the title of the whole construction.
-%
-% The macro |\WideBlock| takes one argument which contains the
-% material to span the whole page width.
-%
-% \DescribeEnv{Map}
-% The environment |Map| can be used to typeset an IMAP map.
-%
-% \DescribeMacro{\MapTableOfContents}
-% The macro |\MapTableOfContents| can be used to typeset the table
-% of contents for a map. This table of contents includes all
-% submaps of the map it is contained in---not recursively but
-% only one level deeper.
-%
-% \DescribeMacro{\maketitle}
-% The macro |\maketitle| is redefined by the class to show a new
-% appearance on a title page. It can be used as in the standard
-% classes.
-%
+% \Block{Appearance}%
+% The blocks are usually typeset with the block label on the left
+% side and the contents to its right. They are surrounded by
+% white-space and a thin line above and below.
%
-% \subsection{The Configuration Options}
-%
-% The configuration options are settings which can be easily
-% adapted to suit your personal needs. Nevertheless it is strongly
-% recommended that you touch them only if you are really knowing
-% what you are doing and when you are willing to face the
-% consequences.
-%
-% \DescribeMacro{\MapRuleWidth}
-% The macro |\MapRuleWidth| determines the width of the rules drawn
-% between blocks.
-%
-% \DescribeMacro{\MapFont}
-% The macro |\MapFont| determines the font changing command to be
-% used when starting a new map.
-%
-% \DescribeMacro{\MapTitleSize}
-% The macro |\MapTitleSize| determines the size changing command to
-% be used when typesetting the title of a map.
-%
-% \DescribeMacro{\MapTitleContinuedSize}
-% This macro determines the font changing command to be used for
-% typesetting the additional text after titles on followup pages of
-% multipage maps.
-%
-% \DescribeMacro{\MapParskip}
-% The macro |\MapParskip| determines the distance of the text from
-% the separating rules.
-%
-% \DescribeMacro{\MapTitlefraction}
-% The macro |\MapTitlefraction| determines the part of the page
-% width devoted to the title area. It is a fraction in the range
-% from 0 to 1.
-%
-% \DescribeMacro{\MapTextfraction}
-% This macro determines the part of the page width devoted to the
-% text area. It is a fraction in the range from 0 to 1.
-% |\MapTitlefraction| and |\MapTextfraction| should add up to
-% something less or equal to 1. Otherwise you will get some
-% ``overfull hbox'' messages.
-%
-% \DescribeMacro{\MapNewpage}
-% The macro |\MapNewpage| is expanded whenever a new page is
-% required between maps. Thus it can be used to suppress the
-% newpages by |\let|ing it to |\relax|. Note that this is not in
-% the spirit of the Information Mapping method.
-%
-% \DescribeMacro{\MapTOC}
-% The macro |\MapTOC| is expanded to generate the entry in the
-% table of contents. It can be redefined to allow another
-% behaviour.
-%
+% \DescribeMacro{\Block}
+% The macro |\Block| can be used to typeset an block. It
+% takes one argument which is the block label.
+%
+% This is a shorthand for denoting a block. The end mark can be
+% omitted if you use the macro instead of the environment.
+% Nevertheless this is depreciated.
+%
+% \Block{Example}%
+% The following sample illustrates how to enter a block.
+% \begin{verbatim}
+% \Block{Block Label}
+% And now comes the block text. It can consist of one or more
+% classical paragraphs, or tables, or pictures, or something
+% else. \end{verbatim}
%
-% \subsection{Changing or Adding Language Specific Settings}
-%
-% Several strings are used automatically by the current class or
-% package. Default values for several languages are hardwired in
-% the implementation. Nevertheless it is possible to change those
-% language specific settings.
-%
-% If you create settings for a new language it is highly
-% recommended to contact the author to integrate them into the
-% default distribution.
-%
-% The following macros can be redefined in the preamble after the
-% package or class has been loaded to reset the language specific
-% text.
-%
-% \DescribeMacro{\MapContinued}
-% The macro |\MapContinued| contains the text appearing at the end
-% of map which are continued on the next page.
-%
-% \DescribeMacro{\MapContinuing}
-% The macro |\MapContinuing| contains the text appearing at the
-% beginning of map which are continued from the previous page. It
-% is typeset after the map title.
-%
-% \DescribeMacro{\MapTOCname}
-% The macro |\MapTOCname| contains the text of the heading in table
-% of contents of maps for the column of map titles.
-%
-% \DescribeMacro{\MapTOCpage}
-% The macro |\MapTOCpage| contains the text of the heading in table
-% of contents of maps for the column of page numbers.
-%
-% If you want to provide a new language \emph{lang} you can define
-% the macro |\IMAP@SelectLanguage@|\texttt{\textit{lang}} which
-% redefines the macros given above. This definition has to be
-% present before the package is loaded.
-%
-% Note that the macro name contains a @ character. Thus the
-% definition should be made in a package of its own.
-%
+% \Block{Just in a map}%
+% Note that the macro |\Block| can be used inside a map only. If
+% you try to use it outside the scope of a map you will get an
+% error.
+%
+% \Block{More on blocks}%
+% Several more aspects of blocks are covered in the following
+% maps.
+% \MapTableOfContents
+%
+% \begin{Map}{Configuring Blocks}
+%
+% \DescribeMacro{\MapBlockLabelFont}
+% The macro |\MapBlockLabelFont| determines the font changing
+% command to be used for typesetting the block label. The
+% default is empty.
+%
+% \Block{Colored block labels}%
+% The macro |\MapBlockLabelFont| can for instance be used to achieve
+% colored block labels. For this purpose we can include the package
+% |xcolor| in the preamble and select for instance a named color
+% for the rule.
+% This is illustrated in the following example.
+% \begin{verbatim}
+% \usepackage[svgnames]{xcolor}
+% \renewcommand\MapBlockLabelFont{\color{Navy}} \end{verbatim}
+% \DescribeMacro{\MapParskip}
+% The macro |\MapParskip| determines the vertical distance of the
+% text from the separating rules. The default is \MapParskip.
+% \begin{verbatim}
+% \renewcommand\MapParskip{.25ex} \end{verbatim}
+%
+% \DescribeMacro{\MapTitleFraction}
+% The macro |\MapTitleFraction| determines the part of the page
+% width devoted to the block label area. It is a fraction in the
+% range from 0 to 1. The default value of |\MapTitleFraction| is
+% 0\MapTitleFraction.
+% \begin{verbatim}
+% \renewcommand\MapTitleFraction{.25} \end{verbatim}
+%
+% \DescribeMacro{\MapTextFraction}
+% This macro determines the part of the page width devoted to the
+% text area. It is a fraction in the range from 0 to 1. The
+% default value of |\MapTextFraction| is 0\MapTextFraction.
+%
+% |\MapTitleFraction| and |\MapTextFraction| should add up to
+% something less or equal to 1. Otherwise you will get some
+% “overfull hbox” messages.
+% \begin{verbatim}
+% \renewcommand\MapTextFraction{.8} \end{verbatim}
+% \vspace*{-\MapParskip}
+% \end{Map}
+%
+% \begin{Map}{Configuring the Rules of Blocks}
%
-% \subsection{The Configuration File}
-%
-% When the class or package is loaded as a last action a
-% configuration file is loaded if it can be found. The name of the
-% configuration file is \texttt{limap.cfg}. This file can contain
-% redefinitions of the several macros to adjust the behaviour of
-% limap on a per directory, per user or per installation base.
-%
-% Note that some settings are activated before the configuration
-% file is loaded. Thus some settings may not have any effect at
-% all.
-%
-%
-%
-% \vfill\noindent\hrulefill
+% \Block{Motivation}%
+% Blocks are usually surrounded by horizontal rules. The
+% appearance of these rules can be influenced by some macros.
+%
+% \DescribeMacro{\MapRuleWidth} The macro |\MapRuleWidth|
+% determines the width of the rules drawn between blocks. It is
+% defined as a macro containig a length. The default is
+% \MapRuleWidth.
+%
+% \begin{verbatim}
+% \setlength\MapRuleWidth{1mm} \end{verbatim}
+%
+% \Block{Suppress visible rules}%
+% For some people the rules are distracting since they emphasize
+% the structure too much. In such situations the rule width might
+% be reduced. In the extreme case it can even be set to 0pt to
+% suppress the lines at all as in the following example:
+%
+% \begin{verbatim}
+% \renewcommand\MapRuleWidth{0pt} \end{verbatim}
+%
+% \DescribeMacro{\MapRuleStart}
+% The macro |\MapRuleStart| is inserted before rules around
+% blocks. It can be used to inject some code before the rule is
+% typeset. Initially it is empty.
+%
+% \Block{Colored rules}%
+% The macro |\MapRuleStart| can for instance be used to achieve
+% colored rules. For this purpose we can include the package
+% |xcolor| in the preamble and select a named color for the rule.
+% This is illustrated in the following example.
+% \begin{verbatim}
+% \usepackage[svgnames]{xcolor}
+% \renewcommand\MapRuleStart{\color{Silver}} \end{verbatim}
+% \vspace*{-3ex}
+% \end{Map}
+%
+% \begin{Map}{A Wide Block}
+%
+% \Block{Motivation}%
+% Sometimes it is necessary to extend the content of a block to
+% the whole width of the page. This can be the case for
+% illustrations or large tables.
+%
+% \DescribeMacro{\WideBlock}
+% The macro |\WideBlock| can be used to typeset a piece of
+% information on the whole page width. It is normally used after an
+% initiating block containing the title of the whole construction.
+%
+% The macro |\WideBlock| takes one argument which contains the
+% material to span the whole page width.
+%
+% \Block{Example}%
+% The following sample illustrates how to enter a wide block.
+% \begin{verbatim}
+% \Block{Block Label}
+% And now comes the block text.
+% \WideBlock{\includegraphics{images/overview.svg}} \end{verbatim}
+%
+% \Block{Block Label}
+% And now comes the wide block produced with the help of
+% Ti\textit{kZ} and its decoration with random steps.
+%
+% \vspace*{-\MapParskip}
+% \WideBlock{\centering
+% \begin{tikzpicture}
+% \node [draw=black!50!white,
+% ball color=yellow!85!red!12!white,draw,thick,
+% minimum height=20mm, minimum width=147mm,
+% decorate, decoration={random steps,
+% segment length=5pt,amplitude=4pt}]
+% {\it A very, very, very, very, very, very, very, very, very, very, very, very, very
+% wide block content};
+% \end{tikzpicture}}\\
+% \vspace*{-\MapParskip}
+% \end{Map}
+% \end{Map}
+%
+% \begin{Map}{The Map}\label{map:map}
+%
+% \Block{Structuring documents}%
+% The maps are the structuring units of the |limap| package. Maps
+% may recursively contain maps and other material. The other
+% material is usually named a block. This recursive structure is
+% illustrated in the following figure.
+%
+% \newcount\picX
+% \newcount\picY
+% \newcount\picW
+% \picX=0
+% \picY=0
+% \picW=20
+% \long\def\picMap(#1)#2{%
+% \put(\the\picX,\the\picY){\framebox(\the\picW,#1)[tl]{Map}}
+% \begingroup\advance\picW-2
+% \advance\picY1 \advance\picX1
+% #2
+% \endgroup
+% \advance\picY#1 \advance\picY2
+% }%
+% \def\picBlock{%
+% \put(\the\picX,\the\picY){\makebox(\the\picW,3)[tl]{\tiny Block}}
+% \put(\the\picX,\the\picY){\line(1,0){\the\picW}}
+% \begingroup \advance\picX6
+% \advance\picY1
+% \advance\picW-6
+% \multiput(\the\picX,\the\picY)(0,.5){5}{\line(1,0){\the\picW}}
+% \endgroup
+% \advance\picY4
+% \put(\the\picX,\the\picY){\line(1,0){\the\picW}}
+% }%
+% \begin{center}\unitlength=1mm
+% \begin{picture}(20,72)\sf\scriptsize
+% \picMap(71){
+% \picMap(21){
+% \picMap(16){
+% \picBlock
+% \picBlock
+% \picBlock
+% }
+% }
+% \picMap(16){
+% \picBlock
+% \picBlock
+% \picBlock
+% }
+% \picMap(16){
+% \picBlock
+% \picBlock
+% \picBlock
+% }
+% \picBlock
+% \picBlock
+% }
+% \end{picture}
+% \end{center}
+%
+% \DescribeEnv{Map}
+% The environment |Map| can be used to typeset a map. It
+% takes a single argument which contains the map title. The map
+% title is typeset above the map and is repeated on each
+% continuation page.
%
-% \emph{To be completed}
+% \Block{Example}%
+%
+% \begin{verbatim}
+% \begin{Map}{Map Title}
+% \Block{Block Label}
+% And now comes the block text. It can consist of
+% one or more classical paragraphs, or tables, or
+% pictures, or something else.
+% \end{Map} \end{verbatim}
+%
+% \Block{To at most 12~cascaded Maps}
+% There is a technical restriction in the current implementation
+% of Maps. This restriction does not allow more than 12 cascaded
+% Maps, i.e. Maps in Maps \ldots in Maps.
+%
+% According to the good old 7$\pm$2 rule a full populated
+% document of this level would contain 282\,429\,536\,481 Maps. I
+% think it should take some time until this limit is reached.
+%
+% \Block{More on maps}%
+% Some more aspects are covered in the following pages.
+% \MapTableOfContents
%
-% \noindent\hrulefill\vfill\null
+% \begin{Map}{Referencing Maps}
+%
+% \Block{Referencing maps}%
+% Maps can be referenced in the usual \LaTeX\ way. For this
+% purpose you place a macro invocation of |\label| right behind
+% the beginning of the |Map|.
+%
+% Then you can add references somewhere in the document with
+% |\ref| and |\pageref|. For backward references two \LaTeX\ runs
+% are required.
+%
+% \Block{Example}%
+% \begin{verbatim}
+% \begin{Map}{Map Title}\label{my.label}
+% \Block{Block Label}
+% As said on page~\pageref{my.label}... \end{verbatim}
+% \Block{Caveat emptor}%
+% |limap| automatically labels any map with a label of the form
+% \texttt{Map|@|}\textsl{n} where \textsl{n} is a
+% sequence number. Thus avoid to use such labels yourself.
+% \end{Map}
+%
+% \begin{Map}{Configuring Maps}
+%
+% \DescribeMacro{\MapFont}
+% The macro |\MapFont| determines the font changing command to be
+% used when starting a new map.
+% \begin{verbatim}
+% \renewcommand\MapFont{\tt} \end{verbatim}
+%
+% \DescribeMacro{\MapTitleFont}
+% The macro |\MapTitleFont| determines the font changing command to
+% be used when typesetting the title of a map. The default is |\Large|.
+% \begin{verbatim}
+% \renewcommand\MapTitleFont{\huge\bfseries} \end{verbatim}
+%
+% \DescribeMacro{\MapContinued}
+% The macro |\MapContinued| contains the text appearing at the end
+% of map which are continued on the next page. It is initiated
+% when the class or package is loaded. It can overwritten
+% afterwards – for instance in the preamble.
+% \begin{verbatim}
+% \renewcommand\MapContinued{} \end{verbatim}
+%
+% \DescribeMacro{\MapContinuing}
+% The macro |\MapContinuing| contains the text appearing at the
+% beginning of map which are continued from the previous page. It
+% is typeset after the map title. It is initiated
+% when the class or package is loaded. It can overwritten
+% afterwards – for instance in the preamble.
+% \begin{verbatim}
+% \renewcommand\MapContinuing{} \end{verbatim}
+%
+% \DescribeMacro{\MapTitleContinuedFont}
+% This macro determines the font changing command to be used for
+% typesetting the additional text after titles on followup pages of
+% multi-page maps.
+%
+% The default value is |\small|.
+% \begin{verbatim}
+% \renewcommand\MapTitleContinuedFont{\normalsize} \end{verbatim}
+%
+% \DescribeMacro{\MapNewpage}
+% The macro |\MapNewpage| is expanded whenever a new page is
+% required between maps. Thus it can be used to suppress the
+% newpages by |\let|ing it to |\relax|. Note that this is not in
+% the spirit of the Information Mapping\R method.
+%
+% \DescribeMacro{\MapTOC}
+% The macro |\MapTOC| is expanded to generate the entry in the
+% table of contents. It can be redefined to allow another
+% behavior.
+% \end{Map}
+% \end{Map}
+%
+% \begin{Map}{The Table of Contents}
+%
+% \Block{Everything is local}%
+% The concept of the underlying methodology is that everything
+% should be addressed relative to the current location. We see
+% this when dealing with maps (see page~\pageref{map:map}). The
+% same principle is applied to the table of contents.
+%
+% \Block{Direct children are included}%
+% The table of contents includes all maps contained in the map in
+% which it appears. This means the immediate children of the map
+% are shown.
+%
+% \Block{Block context required}%
+% The table of contents is typeset inside a block (see
+% page~\pageref{map:block}).
+%
+% \DescribeMacro{\MapTableOfContents}
+% The macro |\MapTableOfContents| can be used to typeset the table
+% of contents for a map. This table of contents includes all
+% sub-maps of the map it is contained in – not recursively but
+% only one level deeper.
+%
+% The macro |\MapTableOfContents| does not take any argument.
+%
+% \Block{Example}%
+% \begin{verbatim}
+% \Block{Contents}
+% And some wise words about the table of contents.
+% \MapTableOfContents \end{verbatim}
+%
+% \DescribeMacro{\MapTableOfContentsStyle}
+% The macro |\MapTableOfContentsStyle| can be used to determine
+% the style of the |\MapTableOfContents| The default style is an
+% open layout utilizing the package
+% \href{https://www.ctan.org/pkg/booktabs}{booktabs}.
+%
+% The macro |\MapTableOfContentsStyle| takes one argument. This
+% argument may have one of the following values:
+%
+% \begin{MapTabular}{ll}\toprule
+% Argument & Meaning \\\midrule
+% open & an open style for the TOC\\\hline
+% boxed & a boxed style for the TOC\\\bottomrule
+% \end{MapTabular}%
+% \vspace*{-5ex}
+% \end{Map}
+% \begin{Map}{Tables}
+%
+% \Block{Introduction}%
+% Tables play an important role as part of maps. Usually they are
+% included into a block and preceded by some useful introduction.
+%
+% \Block{Combination with booktabs}%
+% The document class |limap| and the package |limap|
+% automatically include the package
+% \href{https://www.ctan.org/pkg/booktabs}{booktabs}. This
+% package contains some support for typesetting proper tables.
+% You should have a look at the documentation of |booktabs| and
+% follow the recommendations given there.
+%
+% |booktabs| is automatically loaded by |limap| upon start-up.
+%
+% \DescribeEnv{MapTabular}
+% The environment |MapTabular| provides a convenient way to
+% include a table into a block. It produces a |tabular*|
+% environment and sets the width to the width of the text column
+% of the block.
+%
+% \Block{Example}%
+% \begin{verbatim}
+% \Block{Table block}
+% Sheding some insight on the following table.
+%
+% \begin{MapTabular}{lll}\toprule
+% a & b & \\\midrule
+% x & y & Z\\\hline
+% X & Y & Z\\\bottomrule
+% \end{MapTabular} \end{verbatim}
+% \DescribeMacro{\MapTabularFraction}
+% The tabular is always centered in the text column of the block. The
+% macro |\MapTabularFraction| contains a factor for the line
+% width occupied by the tabular. This value is used to determine
+% the width of the tabular. The default value for the macro
+% |\MapTabularFraction| is 0\MapTabularFraction.
+% \begin{verbatim}
+% \renewcommand\MapTabularFraction{.7} \end{verbatim}
+% \vspace*{-4ex}
+% \end{Map}
+%
+% \begin{Map}{Configuration}
+%
+% \Block{Introduction}%
+% |limap| is designed with a set of extension points. Those are
+% mainly definition which can be overwritten to achieve a certain
+% effect.
+%
+% \Block{Configuration in the preamble}%
+% Any configuration change performed in the preamble of a
+% document is global. It lasts until oberwritten within the
+% document.
+%
+% \Block{Configuration in the document}%
+% The configuration parameters can be overwritten in the document
+% just before they are needed. This is not recommended since it
+% makes it harder to achieve consistency.
+%
+% \Block{External configuration}%
+% The confiration can be externalised. For this purpose a special
+% file |limap.cfg| is loaded with the class or package in case it
+% exists. This file can contain configuration options for
+% |limap|. Thus it is possible to share the same appearance
+% among different documents.
+%
+% \Block{Contents}%
+% The following maps contain the various aspects of the
+% configuration of |limap|.
+% \MapTableOfContents
+%
+% \begin{Map}{The Configuration File limap.cfg}
+%
+% \Block{Default configuration file}%
+% When the class or package is loaded as a last action a
+% configuration file is loaded if it can be found. The name of
+% the configuration file is \texttt{limap.cfg}. This file can
+% contain re-definitions of the several macros to adjust the
+% behavior of |limap| on a per directory, per user or per
+% installation base.
+%
+% \Block{Note}%
+% Some settings are activated before the configuration file is
+% loaded. Thus some settings may not have any effect at all.
+% \end{Map}
+%
+% \begin{Map}{Changing or Adding Language Specific Settings}
+%
+% \Block{Overview}%
+% Several strings are used automatically by the current class or
+% package. Default values for several languages are hardwired in
+% the implementation. Nevertheless it is possible to change those
+% language specific settings.
+%
+% If you create settings for a new language it is highly
+% recommended to contact the author to integrate them into the
+% default distribution.
+%
+% The following macros can be redefined in the preamble after the
+% package or class has been loaded to reset the language specific
+% text.
+%
+% \DescribeMacro{\MapTOCname}
+% The macro |\MapTOCname| contains the text of the heading in table
+% of contents of maps for the column of map titles. It is initiated
+% when the class or package is loaded. It can overwritten
+% afterwards – for instance in the preamble.
+% \begin{verbatim}
+% \renewcommand\MapTOCname{Issue} \end{verbatim}
+%
+% \DescribeMacro{\MapTOCpage}
+% The macro |\MapTOCpage| contains the text of the heading in table
+% of contents of maps for the column of page numbers. It is initiated
+% when the class or package is loaded. It can overwritten
+% afterwards – for instance in the preamble.
+% \begin{verbatim}
+% \renewcommand\MapTOCname{Reference} \end{verbatim}
+%
+% \Block{Providing a new language}%
+% If you want to provide a new language \textit{lang} you can
+% define the macro |\LIMAP@SelectLanguage@|\textit{lang} which
+% redefines the macros given above. This definition has to be
+% present before the package is loaded.
+%
+% Note that the macro name contains the @ character. Thus the
+% definition should be made in a package of its own.
+% \end{Map}
+% \end{Map}
+%
%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \StopEventually{}
% \newpage
% \if@undefined\environment
% \newenvironment{environment}[1]{}{}
% \fi
-%
-%
-% \section{The Documentation Driver}
-%
-% The documentation driver is necessary to provide a self
-% documenting dtx file. With this construction the dtx file can be
-% run through \LaTeX\ to produce the documentation.
-%
-% \subsection{The Version Information}
-%
-% \begin{macro}{\LIMAP@RCS}
-% The macro |\LIMAP@RCS| is used to parse rcs information. The
-% second word enclosed in spaces is preserved. The other parts are
-% ignored.
-% \begin{macrocode}
-\def\LIMAP@RCS$#1: #2 #3${#2}
-% \end{macrocode}
-% \end{macro}
-%
-% Now the usual macros are filled. Some of the informations are
-% taken from strings automatically managed by rcs.
-%
-% \begin{macro}{\filename}
-% |\filename| is the name of the dtx file.
+%
+% \begin{Map}{The Implementation}
+% \Block{Overview}%
+% This part of the document describes the implementation. Usually
+% it is not meant for the casual user. Nevertheless it might be
+% fruitful for those searching for inspiration or for tricks when
+% using this class or package.
+%
+% \Block{Contents}%
+% \MapTableOfContents
+%
+% \begin{Map}{The Version Information}
+%
+% \Block{Purpose}%
+% The version information is included for printing it on the
+% documentation and at start-up when the class or package is
+% loaded. It has to preceed the documentation driver to properly
+% include this information into the printed manual.
+%
+% \Block{}%
+% \begin{macro}{\filename}
+% |\filename| is the name of the dtx file containing this class
+% and package.
% \begin{macrocode}
\def\filename{limap.dtx}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\fileversion}
-% |\fileversion| is the version number of the dtx file.
+% \end{macro}
+%
+% \Block{}%
+% \begin{macro}{\fileversion}
+% |\fileversion| is the version number of the |dtx| file. It is
+% used as a version number for the class and package.
% \begin{macrocode}
-\xdef\fileversion{\LIMAP@RCS$Revision: 1.2 $}
+\def\fileversion{2.1}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\filedate}
-% |\filedate| is the change date of the dtx file.
+% \end{macro}
+%
+% \Block{}%
+% \begin{macro}{\filedate}
+% |\filedate| is the change date of the |dtx| file. It is used
+% as a version date and documentation date.
% \begin{macrocode}
-\xdef\filedate{\LIMAP@RCS$Date: 2000/03/01 20:11:42 $}
+\def\filedate{2016/05/29}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\docversion}
-% |\docversion| is version number of the documentation. It is
-% identical to the version number of the dtx file.
+% \end{macro}
+%
+% \Block{}%
+% \begin{macro}{\docversion}
+% |\docversion| is the version number of the documentation. It
+% is identical to the version number of the |dtx| file.
% \begin{macrocode}
\let\docversion=\fileversion
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\docdate}
-% |\docdate| is change date of the documentation. It is
-% identical to the change date of the dtx file.
+% \end{macro}
+%
+% \Block{}%
+% \begin{macro}{\docdate}
+% |\docdate| is the change date of the documentation. It is
+% identical to the change date of the |dtx| file.
% \begin{macrocode}
\let\docdate=\filedate
% \end{macrocode}
-% \end{macro}
+% \end{macro}
+% \end{Map}
%
-% \subsection{Producing the Documentation}
+% \begin{Map}{The Documentation Driver}
+% \Block{Purpose}%
+% The documentation driver is necessary to provide a self
+% documenting |dtx| file. With this construction the dtx file can
+% be run through \LaTeX\ to produce the documentation.
%
-% The driver section contains a complete \LaTeX\ document which
-% loads the dtx file. The special class |ltxdoc| is used and some
-% arraganements are made for this purpose.
+% The driver section contains a complete \LaTeX\ document which
+% loads the |dtx| file. The special class |ltxdoc| is used and
+% some arrangements are made for this purpose.
+%
+% \Block{Driver code}%
+% The driver code is not exported by the installer.
%
% \begin{macrocode}
%<*driver>
-\documentclass{ltxdoc}
+\documentclass[a4paper]{ltxdoc}
\RequirePackage{textcomp}
+\usepackage{limap}
+\let\LimapFilename\filename
+\let\LimapFileversion\fileversion
+\let\LimapFiledate\filedate
+\let\LimapDocdate\docdate
+% \end{macrocode}
+% \Block{Page Layout}%
+% \begin{macrocode}
+\oddsidemargin=10pt
+\evensidemargin=10pt
+\textwidth=430pt
+\textheight=650pt
+\voffset=-12mm
+% \end{macrocode}
+% \Block{Headings}%
+% \begin{macrocode}
+\usepackage{fancyhdr}
+\addtolength{\headheight}{2ex}%
+\pagestyle{fancy}%
+\cfoot{}
+\rhead{\small\sf\thepage}
+\lhead{\textit{\footnotesize limap} – Package and Class}
+% \end{macrocode}
+% \Block{Links and such}%
+% \begin{macrocode}
+\usepackage{hyperref}
+% \end{macrocode}
+% \Block{Fonts}%
+% \begin{macrocode}
+\usepackage{fontspec}
+\setmainfont{TeX Gyre Heros}
+\setsansfont{TeX Gyre Heros}%[Scale=MatchLowercase]
+\setmonofont{Inconsolata}%[Scale=MatchLowercase]
+% \end{macrocode}
+% \Block{Coloring}%
+% \begin{macrocode}
+\usepackage[svgnames]{xcolor}
+\renewcommand\MapTitleFont{\Large\bfseries\color{Navy}}
+\renewcommand\MapBlockLabelFont{\bfseries\color{Navy}}
+\definecolor{linkColor}{rgb}{.66,.2,.2}
+\hypersetup{colorlinks,
+ citecolor=linkColor,
+ filecolor=linkColor,
+ linkcolor=linkColor,
+ urlcolor=linkColor}
+\renewcommand\MapRuleStart{\color{Navy}}
+\renewcommand\MapRuleWidth{1pt}
+% \end{macrocode}
+% \Block{Graphics}%
+% \begin{macrocode}
+\usepackage{tikz}
+\usetikzlibrary{decorations.pathmorphing}
+\usetikzlibrary{shadows}
+\usetikzlibrary{mindmap}
+\usetikzlibrary{calc}
+% \end{macrocode}
+% \Block{Saving version}%
+% \begin{macrocode}
+\let\filename\LimapFilename
+\let\fileversion\LimapFileversion
+\let\filedate\LimapFiledate
+\let\docdate\LimapDocdate
+% \end{macrocode}
+% \Block{Adapting doc.sty}%
+% \begin{macrocode}
+\def\theCodelineNo{\color{DarkGreen}\rmfamily\scriptsize\arabic{CodelineNo}}%
+\makeatletter
+\renewcommand\DescribeMacro{\catcode`\\=12\Describe@@Macro}
+\def\Describe@@Macro#1{\Block{\PrintDescribeMacro{#1}}%
+ \SpecialUsageIndex{#1}\@esphack\ignorespaces}
+\renewcommand\DescribeEnv{\catcode`\\=12\Describe@@Env}
+\def\Describe@@Env#1{\Block{\PrintDescribeEnv{#1}}%
+ \SpecialEnvIndex{#1}\@esphack\ignorespaces}
+\makeatother
+\let\maketitle\MakeTitle
+% \end{macrocode}
+% \Block{Some additions}%
+% \begin{macrocode}
+\newcommand\R{\(^{\textrm{\footnotesize\textregistered}}\) }
+\let\marginpar\Block
\InputIfFileExists{limap.dcf}{}{}
\RecordChanges
\EnableCrossrefs
\CodelineIndex
+% \end{macrocode}
+% \Block{The content}%
+% Now everything is prepared. Let the show begin\ldots
+% \begin{macrocode}
\begin{document}
\DeleteShortVerb{|}
\DocInput{\filename}
-\newpage
-\PrintChanges
+%\newpage
+%\PrintChanges
\newpage
\setcounter{IndexColumns}{2}
\PrintIndex
\end{document}
%</driver>
% \end{macrocode}
+% \end{Map}
+%
+%
+% \begin{Map}{The \TeX\ Code}
%
-% \section{The Implementation}
-% The rest of the document describes the implementation. Usually it
-% is not meant for the casual user. Nevertheless it might be
-% fruitful for those searching for inspiration or for tricks when
-% using this class or style.
+% \Block{Overview}%
+% The rest of the document describes the implementation. Usually
+% it is not meant for the casual user. Nevertheless it might be
+% fruitful for those searching for inspiration or for tricks when
+% using this class or package.
%
-% \subsection{Preliminaries and Option Processing}
+% \Block{Contents}%
+% \MapTableOfContents
%
-% First of all we request a descent version of \LaTeX\ to be used.
+% \begin{Map}{The Package and Class Declarations}
+%
+% \Block{Preliminaries}%
+% First of all we request a descent version of \LaTeX\ to be
+% used. I don't think ikt does not have to be too new.
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
% \end{macrocode}
%
-% \subsubsection{The Package/Class Declarations}
-%
-% When the package is generated, the package identification is
-% included.
+% \Block{Package identification}%
+% When the package is generated, the package identification is
+% included.
% \begin{macrocode}
%<*package>
-\ProvidesPackage{limap}[\filedate\space gene]
+\ProvidesPackage{limap}[\filedate\space Gerd Neugebauer]
%</package>
% \end{macrocode}
%
-% When the class is generated, the class identification is
-% included.
+% \Block{Class identification}%
+% When the class is generated, the class identification is
+% included.
% \begin{macrocode}
%<*class>
-\ProvidesClass{limap}[\filedate\space gene]
+\ProvidesClass{limap}[\filedate\space Gerd Neugebauer]
%</class>
% \end{macrocode}
-%
-% \subsubsection{Language Specific Declarations}
+% \end{Map}
+%
+% \begin{Map}{Language Specific Macros}
+%
+% \Block{Introduction}%
+% This section contains internal macros used to implement the
+% functionality. New languages can be easily be added. For this
+% purpose only a new macro has to be defined and a package/class
+% option for the convenience of the user.
+%
+% Consider you want to add a new language “latin” then you have
+% to provide the command |\LIMAP@SelectLanguage@latin|. This
+% macro should simply redefine the macros containing strings of
+% the language specific texts. Examples for other languages are
+% provided in this section.
+%
+% To enable the language settings for “latin” the macro
+% |\LIMAP@Language| has to be defined to contain the value
+% “latin”. Usually this is accomplished by providing a
+% convenient option to the package or class.
+%
+% \Block{}%
+% \begin{macro}{\defineLimapLanguage}
+% Provide the definitions for a language. The different texts
+% to be used are stored in a macro which defines the target
+% macros when expanded.
+% \begin{macrocode}
+\def\defineLimapLanguage#1#2#3#4#5{%
+ \expandafter\def\csname LIMAP@SelectLanguage@#1\endcsname{%
+ \def\MapContinued{#2}%
+ \def\MapContinuing{#3}%
+ \def\MapTOCname{#4}%
+ \def\MapTOCpage{#5}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
%
-% \begin{macro}{\LIMAP@Language}
-% The macro |\IMAP@Language| determines the language to be used for
-% several small text fragments to be inserted at certain places. It
-% is redefinded by package/class options and evaluated at the end
-% to activate the selected settings.
+% \Block{Definitions for the language “austrian“}%
+% \begin{macrocode}
+\defineLimapLanguage{austrian}%
+ { Fortsetzung}{Fortsetzung\dots}%
+ {Titel}{Seite}
+% \end{macrocode}
+%
+% \Block{Definitions for the language “german“}%
+% \begin{macrocode}
+\defineLimapLanguage{german}%
+ { Fortsetzung}{Fortsetzung\dots}%
+ {Titel}{Seite}
+% \end{macrocode}
+%
+% \Block{Definitions for the language “english“}%
+% \begin{macrocode}
+\defineLimapLanguage{english}%
+ { Continued}{Continuing\dots}%
+ {Title}{Page}
+% \end{macrocode}
+%
+% \Block{Definitions for the language “USenglish“}%
+% \begin{macrocode}
+\defineLimapLanguage{USenglish}%
+ { Continued}{Continuing\dots}%
+ {Title}{Page}
+% \end{macrocode}
+%
+% \Block{Definitions for the language “french“}%
+% \begin{macrocode}
+\defineLimapLanguage{french}%
+ { continuation}{continuation\dots}%
+ {Intitulé}{Page}
+% \end{macrocode}
+%
+% \Block{}%
+% \begin{macro}{\LIMAP@Language}
+% The macro |\LIMAP@Language| determines the language to be
+% used for several small text fragments to be inserted at
+% certain places. It is redefined by package/class options and
+% evaluated at the end to activate the selected settings.
% \begin{macrocode}
\providecommand\LIMAP@Language{english}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
+% \Block{}%
% \begin{macrocode}
\DeclareOption{austrian}{\renewcommand\LIMAP@Language{austrian}}
\DeclareOption{german}{\renewcommand\LIMAP@Language{german}}
@@ -521,35 +1418,45 @@
\DeclareOption{USenglish}{\renewcommand\LIMAP@Language{USenglish}}
% \end{macrocode}
%
-% \begin{macro}{\ifLIMAP@strict}
-% The boolean |\ifLIMAP@strict| determines if the lower sectioning
-% macros should be disabled in the class.
+% \Block{}%
+% \begin{macro}{\ifLIMAP@strict}
+% The boolean |\ifLIMAP@strict| determines if the lower
+% sectioning macros should be disabled in the class.
% \begin{macrocode}
\newif\ifLIMAP@strict \LIMAP@stricttrue
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
+% \Block{}%
% \begin{macrocode}
\DeclareOption{nonstrict}{\LIMAP@strictfalse}
% \end{macrocode}
%
-% \subsubsection{Determining the Appropriate Base Class}
+% \Block{}%
+% \begin{macrocode}
+\DeclareOption{nolines}{\def\MapRuleWidth{0pt}\ignorespaces}
+% \end{macrocode}
+%
+% \begin{Map}{Determining the Appropriate Base Class}
%
+% \Block{}%
% \begin{macrocode}
%<*class>
% \end{macrocode}
%
-% \begin{macro}{\LIMAP@ClassType}
-% The macro |\LIMAP@ClassType| determines the type of the class to
-% be used. Usually it can take the values |book|, |report|,
-% |article|, and |letter| (for completeness). This macro is
-% redefined when the options of the class are evaluated. Finally
-% this macro helps to select the appropriate base class.
+% \begin{macro}{\LIMAP@ClassType}
+% The macro |\LIMAP@ClassType| determines the type of the class
+% to be used. Usually it can take the values |book|, |report|,
+% |article|, and |letter| (for completeness). This macro is
+% redefined when the options of the class are evaluated.
+% Finally this macro helps to select the appropriate base
+% class.
% \begin{macrocode}
\providecommand\LIMAP@ClassType{report}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
+% \Block{}%
% \begin{macrocode}
\DeclareOption{book}{\renewcommand\LIMAP@ClassType{book}}
\DeclareOption{report}{\renewcommand\LIMAP@ClassType{report}}
@@ -557,23 +1464,27 @@
\DeclareOption{letter}{\renewcommand\LIMAP@ClassType{letter}}
% \end{macrocode}
%
-% \begin{macro}{\LIMAP@Variant}
-% The macro |\LIMAP@Variant| determines the variant of the class to
-% be used. Usually it can take the values |base| and |koma|. This
-% macro is redefined when the options of the class are evaluated.
-% Finally this macro helps to select the appropriate base class.
+% \Block{}%
+% \begin{macro}{\LIMAP@Variant}
+% The macro |\LIMAP@Variant| determines the variant of the
+% class to be used. Usually it can take the values |base| and
+% |koma|. This macro is redefined when the options of the class
+% are evaluated. Finally this macro helps to select the
+% appropriate base class.
% \begin{macrocode}
\providecommand\LIMAP@Variant{base}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
+% \Block{Options for selecting the variant}%
% \begin{macrocode}
\DeclareOption{koma}{\renewcommand\LIMAP@Variant{koma}}
\DeclareOption{base}{\renewcommand\LIMAP@Variant{base}}
% \end{macrocode}
%
-% Define a mapping between the variant and class type to the class
-% name to be used.
+% \Block{Mapping to document class}%
+% Define a mapping between the variant and class type to the class
+% name to be used.
% \begin{macrocode}
\newcommand\LIMAP@Class@base@article{article}
\newcommand\LIMAP@Class@base@report{report}
@@ -583,50 +1494,62 @@
\newcommand\LIMAP@Class@koma@report{scrreprt}
\newcommand\LIMAP@Class@koma@book{scrbook}
\newcommand\LIMAP@Class@koma@letter{scrlettr}
+%</class>
% \end{macrocode}
%
+% \Block{Pass on the unknown options}%
% \begin{macrocode}
+%<*class>
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{%
\csname LIMAP@Class@\LIMAP@Variant @\LIMAP@ClassType\endcsname}%
}
-% \end{macrocode}
-%
-% Thus the class specific options are completed.
-% \begin{macrocode}
%</class>
% \end{macrocode}
+%
+% Thus the class specific options are completed.
%
-% Now we can process all options.
+% Now we can process all options.
% \begin{macrocode}
\ProcessOptions
% \end{macrocode}
%
+% \Block{}%
% \begin{macrocode}
%<*class>
% \end{macrocode}
% The requested class is loaded and the options remaining are
% processed.
% \begin{macrocode}
-\LoadClass{\csname LIMAP@Class@\LIMAP@Variant @\LIMAP@ClassType\endcsname}
+\LoadClass{\csname
+ LIMAP@Class@\LIMAP@Variant @\LIMAP@ClassType\endcsname}
%</class>
% \end{macrocode}
+% \end{Map}
%
-% \subsubsection{Loading Required Packages}
+% \begin{Map}{Loading Required Packages}
%
-% The package |longtable| is used internally to implement a part of
-% the required functionality. Thus we need to ensure that it is
-% loaded.
+% \Block{longtable for breakable tables}%
+% The package
+% \href{https://www.ctan.org/pkg/longtable}{longtable} is used
+% internally to implement a part of the required functionality.
+% Thus we need to ensure that it is loaded.
% \begin{macrocode}
\RequirePackage{longtable}
% \end{macrocode}
+% \Block{etoolbox}%
+% \begin{macrocode}
+\RequirePackage{etoolbox}
+% \end{macrocode}
%
-% The package |booktabs| is used internally to implement a part of
-% the required functionality. Thus we need to ensure that it is
-% loaded.
+% \Block{booktabs for nice tables}%
+% The package \href{https://www.ctan.org/pkg/booktabs}{booktabs}
+% is used internally to implement a part of the required
+% functionality. Thus we need to ensure that it is loaded.
% \begin{macrocode}
\RequirePackage{booktabs}
% \end{macrocode}
%
+% \Block{fancyhdr for head and foot lines}%
%
% \begin{macrocode}
%<*class>
@@ -640,277 +1563,355 @@
%</class>
% \end{macrocode}
%
-% Since the blocks are not supposed to line up at the end of the
-% page we declare |\raggedbottom|.
+% \Block{No vertical adjustment of pages}%
+% Since the blocks are not supposed to line up at the end of the
+% page we declare |\raggedbottom|.
% \begin{macrocode}
\raggedbottom
% \end{macrocode}
-%
-% \subsection{Layout Parameters}
+% \end{Map}
+% \end{Map}
+%
+% \begin{Map}{Layout Parameters}
%
-% The layout can be influenced by a large number of
-% parameters. Thus the design decisions have been made transparent
-% (to a certain degree at least). These options are not meant to be
-% changed except when a new layout is beeing designed and implemented.
+% \Block{Overview}%
+% The layout can be influenced by a large number of parameters.
+% Thus the design decisions have been made transparent (to a
+% certain degree at least). These options are not meant to be
+% changed except when a new layout is being designed and
+% implemented.
%
-% \begin{macro}{\MapRuleWidth}
-% The macro |\MapRuleWidth| determines the width of the rules drawn
-% between blocks.
+% \Block{}%
+% \begin{macro}{\MapRuleWidth}
+% The macro |\MapRuleWidth| determines the width of the rules
+% drawn between blocks.
% \begin{macrocode}
-\newcommand\MapRuleWidth{.25pt}
+\providecommand\MapRuleWidth{.25pt}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
+%
+% \Block{}%
+% \begin{macro}{\MapRuleStart}
+% The macro |\MapRuleStart| is inserted before the rules
+% drawn between blocks.
+% \begin{macrocode}
+\newcommand\MapRuleStart{}
+% \end{macrocode}
+% \end{macro}
%
-% \begin{macro}{\MapContinued}
-% This macro determines the text to be used in the title of
-% continued maps. This macro is reset when the language specific
-% initializations are performed.
+% \Block{}%
+% \begin{macro}{\MapContinued}
+% This macro determines the text to be used in the title of
+% continued maps. This macro is reset when the language
+% specific initializations are performed.
% \begin{macrocode}
\newcommand\MapContinued{}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\MapContinuing}
-% The macro |\MapContinuing| determines the text to be used at the
-% bottom of the map which is continued. This macro is reset when
-% the language specific initializations are performed.
+% \Block{}%
+% \begin{macro}{\MapContinuing}
+% The macro |\MapContinuing| determines the text to be used at
+% the bottom of the map which is continued. This macro is reset
+% when the language specific initializations are performed.
% \begin{macrocode}
\newcommand\MapContinuing{}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\MapContinuingFormat}
-% This macro determines the format of the bottom line on continued
-% maps. I.e. it includes the text as well as font changing
-% commands. The text is passed to this command as argument 1.
+% \Block{}%
+% \begin{macro}{\MapContinuingFormat}
+% This macro determines the format of the bottom line on
+% continued maps. I.e. it includes the text as well as font
+% changing commands. The text is passed to this command as
+% argument 1.
% \begin{macrocode}
\newcommand\MapContinuingFormat[1]{\textit{\footnotesize #1}}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\MapContinuedFormat}
-% This macro determines the format of the bottom line on continued
-% maps. I.e. it includes the text passed to it as argument 1 as
-% well as font changing commands.
+% \Block{}%
+% \begin{macro}{\MapContinuedFormat}
+% This macro determines the format of the bottom line on
+% continued maps. I.e. it includes the text passed to it as
+% argument 1 as well as font changing commands.
% \begin{macrocode}
-\newcommand\MapContinuedFormat[1]{, {\MapTitleContinuedSize #1}}
+\newcommand\MapContinuedFormat[1]{, {\MapTitleContinuedFont #1}}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\MapFont}
-% The macro |\MapFont| determines the font changing command to be
-% used when starting a new map.
+% \Block{}%
+% \begin{macro}{\MapFont}
+% The macro |\MapFont| determines the font changing command to
+% be used when starting a new map.
% \begin{macrocode}
\let\MapFont\textsf
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\MapTitleSize}
-% The macro |\MapTitleSize| determines the size changing command to
-% be used when typesetting the title of a map.
+% \Block{}%
+% \begin{macro}{\MapTitleFont}
+% The macro |\MapTitleFont| determines the size changing
+% command to be used when typesetting the title of a map.
% \begin{macrocode}
-\let\MapTitleSize\Large
+\let\MapTitleFont\Large
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\MapTitleContinuedSize}
-% This macro determines the font changing command to be used for
-% typesetting the additional text after titles on followup pages of
-% multipage maps.
+% \Block{}%
+% \begin{macro}{\MapTitleContinuedFont}
+% This macro determines the font changing command to be used
+% for typesetting the additional text after titles on followup
+% pages of multipage maps.
% \begin{macrocode}
-\let\MapTitleContinuedSize\small
+\let\MapTitleContinuedFont\small
% \end{macrocode}
-% \end{macro}
+% \end{macro}
+%
+% \Block{}%
+% \begin{macro}{\MapBlockLabelFont}
+% This macro determines the font changing command to be used
+% for typesetting the block label.
+% \begin{macrocode}
+\def\MapBlockLabelFont{}
+% \end{macrocode}
+% \end{macro}
%
-% \begin{macro}{\MapParskip}
-% The macro |\MapParskip| determines the distance of the text from
-% the separating rules.
+% \Block{}%
+% \begin{macro}{\MapParskip}
+% The macro |\MapParskip| determines the distance of the text
+% from the separating rules.
% \begin{macrocode}
\newcommand\MapParskip{2ex}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\MapTitlefraction}
-% The macro |\MapTitlefraction| determines the part of the page
-% width devoted to the title area. It is a fraction in the range
-% from 0 to 1.
+% \Block{}%
+% \begin{macro}{\MapTitleFraction}
+% The macro |\MapTitleFraction| determines the part of the page
+% width devoted to the title area. It is a fraction in the
+% range from 0 to 1.
% \begin{macrocode}
-\newcommand\MapTitlefraction{.2}
+\newcommand\MapTitleFraction{.2}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\MapTextfraction}
-% This macro determines the part of the page width devoted to the
-% text area. It is a fraction in the range from 0 to 1.
-% |\MapTitlefraction| and |\MapTextfraction| should add up to
-% something less or equal to 1. Otherwise you will get some
-% ``overfull hbox'' messages.
+% \Block{}%
+% \begin{macro}{\MapTextFraction}
+% This macro determines the part of the page width devoted to
+% the text area. It is a fraction in the range from 0 to 1.
+% |\MapTitleFraction| and |\MapTextFraction| should add up to
+% something less or equal to 1. Otherwise you will get some
+% “overfull hbox” messages.
% \begin{macrocode}
-\newcommand\MapTextfraction{.75}
+\newcommand\MapTextFraction{.75}
% \end{macrocode}
% \end{macro}
+% \end{Map}
+%
+% \begin{Map}{Adaptable Macros}
%
-% \subsection{Adaptable Macros}
+% \Block{Overview}%
%
-% \begin{macro}{\MapNewpage}
-% The macro |\MapNewpage| is expanded whenever a new page is
-% required between maps. Thus it can be used to suppress the
-% newpages by |\let|ing it to |\relax|.
+% \begin{macro}{\MapNewpage}
+% The macro |\MapNewpage| is expanded whenever a new page is
+% required between maps. Thus it can be used to suppress the
+% newpages by |\let|ing it to |\relax|.
% \begin{macrocode}
\let\MapNewpage\newpage
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\MapTOC}
-% The macro |\MapTOC| is expanded to generate the entry in the
-% table of contents. It can be redefined to allow another
-% behaviour.
+% \Block{}%
+% \begin{macro}{\MapTOC}
+% The macro |\MapTOC| is expanded to generate the entry in the
+% table of contents. It can be redefined to allow another
+% behavior.
% \begin{macrocode}
\newcommand\MapTOC[1]{%
\refstepcounter{\@nameuse{Map@TOC@name\the\Map@level}}%
\addcontentsline{toc}{\@nameuse{Map@TOC@name\the\Map@level}}{#1}%
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\MapTOCname}
-% The macro |\MapTOCname| contains the heading for the section title
-% in contents blocks. This macro is reset when the language specific
-% initializations are performed.
+% \Block{}%
+% \begin{macro}{\MapTOCname}
+% The macro |\MapTOCname| contains the heading for the section
+% title in contents blocks. This macro is reset when the
+% language specific initializations are performed.
% \begin{macrocode}
\newcommand\MapTOCname{}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\MapTOCpage}
-% The macro |\MapTOCpage| contains the heading for the page number
-% in contents blocks. This macro is reset when the language specific
-% initializations are performed.
+% \Block{}%
+% \begin{macro}{\MapTOCpage}
+% The macro |\MapTOCpage| contains the heading for the page
+% number in contents blocks. This macro is reset when the
+% language specific initializations are performed.
% \begin{macrocode}
\newcommand\MapTOCpage{}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\MapTOCemph}
-% The macro |\MapTOCemph|
+% \Block{}%
+% \begin{macro}{\MapTOCheadfont}
+% The macro |\MapTOCheadfont| contains the font switching
+% command for typesetting the head line of map table of
+% contents.
% \begin{macrocode}
-\let\MapTOCemph=\emph
+\newcommand\MapTOCheadfont{\scriptsize\emph}
% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Language Specific Macros}
-%
-% This section contains interanl macros used to implement the
-% functionality. New languages can be easily be added. For this
-% puropose only a new macro has to be defined and a package/class
-% option for the convenience of the user.
+% \end{macro}
+% \end{Map}
%
-% Consider you want to add a new language ``latin'' then you have
-% to provide the command |\LIMAP@SelectLanguage@latin|. This macro
-% should simply redefine the macros containing strings of the
-% language specific texts. Examples for other languages are
-% provided in this section.
+% \begin{Map}{Internal Macros, Lengths, and Counters}
%
-% To enable the language settings for ``latin'' the macro
-% |\LIMAP@Language| has to be defined to contain the value
-% ``latin''. Usually this is accomplished by providing a convenient
-% option to the package or class.
+% \Block{}%
+% This section contains internal macros used to implement the
+% functionality.
%
-% \begin{macro}{\LIMAP@SelectLanguage@austrian}
-% Provide the definition for the langauge ``austrian''.
+% \Block{}%
+% \begin{macro}{\Map@length}
+% The length register |\Map@length| is allocated to store the
+% width of the space between the columns of a block.
% \begin{macrocode}
-\providecommand\LIMAP@SelectLanguage@austrian{%
- \renewcommand\MapContinued{ Fortsetzung}%
- \renewcommand\MapContinuing{Fortsetzung\dots}
- \renewcommand\MapTOCname{Titel}
- \renewcommand\MapTOCpage{Seite}
-}
+\newlength{\Map@length}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\LIMAP@SelectLanguage@german}
-% Provide the definitions for the laguage ``german''.
+% \Block{}%
+% \begin{macro}{\Map@level}
+% The macro |\Map@level| determines the level of inclusion of
+% maps. It is used to determine the appearance in the table of
+% contents.
% \begin{macrocode}
-\providecommand\LIMAP@SelectLanguage@german{%
- \renewcommand\MapContinued{ Fortsetzung}%
- \renewcommand\MapContinuing{Fortsetzung\dots}
- \renewcommand\MapTOCname{Titel}
- \renewcommand\MapTOCpage{Seite}
-}
+\newcount\Map@level
+\Map@level=0
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\LIMAP@SelectLanguage@english}
-% Provide the definitions for the language ``english''.
+% \Block{}%
+% \begin{macro}{\Map@blockcount}
+% The macro |\Map@blockcount| is used to count the blocks per
+% map to issue a package warning if required.
% \begin{macrocode}
-\providecommand\LIMAP@SelectLanguage@english{%
- \renewcommand\MapContinued{ Continued}%
- \renewcommand\MapContinuing{Continuing\dots}
- \renewcommand\MapTOCname{Title}
- \renewcommand\MapTOCpage{Page}
-}
+\newcount\Map@blockcount
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\LIMAP@SelectLanguage@USenglish}
-% Provide the definitions for the language ``USenglish''.
+% \Block{}%
+% \begin{macro}{\LT@final@warn}
+% The macro |\LT@final@warn| is defined in |longtable|. It is
+% redefined to show |limap| are originator.
% \begin{macrocode}
-\providecommand\LIMAP@SelectLanguage@USenglish{%
- \renewcommand\MapContinued{ Continued}%
- \renewcommand\MapContinuing{Continuing\dots}
- \renewcommand\MapTOCname{Title}
- \renewcommand\MapTOCpage{Page}
-}
+\def\LT@final@warn{%
+ \AtEndDocument{%
+ \PackageWarning{limap}%
+ {Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}%
+ \global\let\LT@final@warn\relax}
% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{Internal Macros, Lengths, and Counters}
+% \end{macro}
+% \end{Map}
%
-% This section contains internal macros used to implement the
-% functionality.
+% \begin{Map}{Typesetting a Map}
%
-% \begin{macro}{\Map@length}
-% The length register |\Map@length| is allocated to store the width
-% of the space between the columns of a block.
+% \Block{}%
+% \begin{environment}{Map}
+% The environment |Map|determines the appearance of a map. It is
+% implemented as a |longtable| environment which takes care for
+% the page breaks and inserts material at the end of the page
+% and the beginning of the new page upon page break.
+% \end{environment}
% \begin{macrocode}
-\newlength{\Map@length}
+\def\Map#1{%
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\Map@level}
-% The macro |\Map@level| determines the level of inclusion of
-% maps. It is used to determine the appearence in the table of
-% contents.
+% First the messages of |longtable| are modified to show this
+% package name instead.
% \begin{macrocode}
-\newcount\Map@level
-\Map@level=0
+ \def\LT@err{\PackageError{limap}}%
+ \def\LT@warn{\PackageWarning{limap}}%
% \end{macrocode}
-% \end{macro}
+% \Block{}%
+% The map local macro |\Block| is
+% activated. The counter for blocks is reset.
+% \begin{macrocode}
+ \let\Block\Map@Block
+ \let\endBlock\Map@endBlock
+ \Map@blockcount=0
+% \end{macrocode}
+% \Block{}%
+% The number of the map in the internal counting is set by
+% incrementing the old value.
+% \begin{macrocode}
+ \global\advance\Map@no1
+% \end{macrocode}
+% \Block{}%
+%
+% \begin{macrocode}
+ \ifx\Map@UP\empty\else
+ \immediate\write\@auxout
+ {\string\expandafter\string\xdef\string\csname\space
+ Map@parts@\Map@UP\string\endcsname{\string\csname\space
+ Map@parts@\Map@UP\string\endcsname\the\Map@no:}}%
+ \fi
+% \end{macrocode}
+% \Block{}%
+%
+% \begin{macrocode}
+ \edef\Map@UP{\the\Map@no}%
+ \ifnum\Map@level>0
+ \xdef\Map@@up{\Map@UP}% Just to save the value across blocks.
+ \endgroup
+ \Map@end
+ \begingroup
+ \edef\Map@UP{\Map@@up}%
+ \def\@currenvir{Map}%
+ \fi
+ \edef\Map@this{\the\Map@no}%
+% \end{macrocode}
+% \Block{}%
+% The entries for future use of sub-maps are written to the |aux| file.
+% \begin{macrocode}
+ \immediate\write\@auxout
+ {\string\global\string\@namedef{Map@parts@\the\Map@no}{}}%
+% \end{macrocode}
+% \Block{}%
+%
+% \begin{macrocode}
+ \global\advance\Map@level1
+ \def\Map@TITLE{#1}%
+ \Map@start
+ }
+% \end{macrocode}
+% \Block{}%
%
-% \begin{macro}{\Map@blockcount}
-% The macro |\Map@blockcount| is used to count the blocks per map
-% to issue a style warning if required.
% \begin{macrocode}
-\newcount\Map@blockcount
+\def\endMap{%
+ \Map@end
+ \global\advance\Map@level-1
+ \ignorespaces
+}
% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\ifMap@open@}
-% The conditional |\ifMap@open@| is used to record the opening and
-% closing of the |longtable| environment, since can not be used
-% inside itself. Thus it can be closed before a new instance is
-% opened.
+% \Block{}%
+% \begin{macro}{\ifMap@open@}
+% The conditional |\ifMap@open@| is used to record the opening
+% and closing of the |longtable| environment, since can not be
+% used inside itself. Thus it can be closed before a new
+% instance is opened.
% \begin{macrocode}
\newif\ifMap@open@
\Map@open@false
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\Map@TOC@name}
-% The macros |\Map@TOC@name|\dots provide a mapping between a
-% number and a sectioning unit. This mapping is used when the
-% entry in the table of contents is generated.
+% \Block{}%
+% \begin{macro}{\Map@TOC@name}
+% The macros |\Map@TOC@name|\dots provide a mapping between a
+% number and a sectioning unit. This mapping is used when the
+% entry in the table of contents is generated.
% \begin{macrocode}
\@namedef{Map@TOC@name0}{chapter}
\@namedef{Map@TOC@name1}{section}
@@ -926,51 +1927,62 @@
\@namedef{Map@TOC@name11}{subsubparagraph}
\@namedef{Map@TOC@name12}{subsubparagraph}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\Map@start}
-% The macro |\Map@start| is used to initiate the use of a map. It
-% uses the |longtable| environment to perform the page breaking and
-% marking of continued pages.
+% \Block{}%
+% \begin{macro}{\Map@start}
+% The macro |\Map@start| is used to initiate the use of a map.
+% It takes no arguments. The map title is passed in via the
+% macro |\Map@TITLE|.
+%
+% It uses the |longtable| environment to perform the page
+% breaking and marking of continued pages.
% \begin{macrocode}
\newcommand\Map@start{%
-% \typeout{--- MAP START}%
+ \advance\Map@counter1
\setlength{\Map@length}{\textwidth}%
- \addtolength{\Map@length}{-\MapTitlefraction\textwidth}%
- \addtolength{\Map@length}{-\MapTextfraction\textwidth}%
- \MapTOC{\Map@TITLE}%
+ \addtolength{\Map@length}{-\MapTitleFraction\textwidth}%
+ \addtolength{\Map@length}{-\MapTextFraction\textwidth}%
+ \ifx\Map@TITLE\empty\else
+ \MapTOC{\Map@TITLE}%
+ \fi
\longtable
- {@{}p{\MapTitlefraction\textwidth}@{\hspace{\Map@length}}
- p{\MapTextfraction\textwidth}@{}}%
+ {@{}p{\MapTitleFraction\textwidth}@{\hspace{\Map@length}}
+ p{\MapTextFraction\textwidth}@{}}%
\multicolumn{2}{@{}p{\textwidth}@{}}{%
- \MapFont{\MapTitleSize\rule{0pt}{3ex}%
+ \MapFont{\MapTitleFont\rule{0pt}{3ex}%
\Map@TITLE}}
\endfirsthead
\multicolumn{2}{@{}p{\textwidth}@{}}{%
- \MapFont{\MapTitleSize\rule{0pt}{3ex}%
+ \MapFont{\MapTitleFont\rule{0pt}{3ex}%
\Map@TITLE\MapContinuedFormat{\MapContinued}}}%
\endhead
- \par\vspace*{-\parskip}\vspace*{-2ex}\\
- &\rule{\MapTextfraction\textwidth}{\MapRuleWidth}\newline
- \mbox{}\hfill\raisebox{3pt}{\MapContinuingFormat{\MapContinuing}}
+ \\
+ &\MapRuleStart
+ \rule{\MapTextFraction\textwidth}{\MapRuleWidth}\newline
+ \mbox{}\hfill
+ \raisebox{3pt}{\MapContinuingFormat{\MapContinuing}}
\endfoot
- &\rule{\MapTextfraction\textwidth}{\MapRuleWidth}%
+ &\MapRuleStart
+ \rule{\MapTextFraction\textwidth}{\MapRuleWidth}%
\vspace{\MapParskip}
\endlastfoot
\xdef\@currentlabel{\Map@TITLE}%
+ \label{Map@\the\Map@no}%
\global\Map@open@true
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\Map@end}
-% The macro |\Map@end| is expanded when the end of the end of the
-% |longtable| environment might be needed. The boolean |\ifMap@open@|
-% determines whether such an environment is really open.
+% \Block{}%
+% \begin{macro}{\Map@end}
+% The macro |\Map@end| is expanded when the end of the end of
+% the |longtable| environment might be needed. The boolean
+% |\ifMap@open@| determines whether such an environment is
+% really open.
% \begin{macrocode}
\newcommand\Map@end{%
-% \typeout{--- MAP END}%
- \ifMap@open@
+ \ifMap@open@\vspace*{1.5ex}
\global\Map@open@false
\endlongtable
\MapNewpage
@@ -978,7 +1990,8 @@
\iftrue
\ifnum\Map@blockcount>9
\PackageWarning{limap}%
- {*** The current map contains too much blocks: \the\Map@blockcount}%
+ {*** The current map contains too much blocks:
+ \the\Map@blockcount}%
\else\ifnum\Map@blockcount>7
\PackageWarning{limap}%
{--- The current map contains \the\Map@blockcount blocks.}%
@@ -986,237 +1999,315 @@
\fi
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\Map@UP}
-% The macro |\Map@UP| contains the number of the parent map or the
-% empty string.
+% \Block{}%
+% \begin{macro}{\Map@UP}
+% The macro |\Map@UP| contains the number of the parent map or
+% the empty string.
% \begin{macrocode}
\newcommand\Map@UP{}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\Map@no}
-% The counter |\Map@no| contains the sequence number for all
-% maps. This value is used internally to reference single maps.
+% \Block{}%
+% \begin{macro}{\Map@no}
+% The counter |\Map@no| contains the sequence number for all
+% maps. This value is used internally to reference single maps.
% \begin{macrocode}
\newcount\Map@no
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\Map@parts@}
-% The macro |\Map@parts@| is used to store the parts of the
-% toplevel maps. This is the initialization of a feature otherwise
-% used in the aux file.
+% \Block{}%
+% \begin{macro}{\Map@counter}
+% The counter |\Map@counter| contains the number of a map in
+% the context of the containing map .
+% \begin{macrocode}
+\newcount\Map@counter
+\Map@counter=0
+% \end{macrocode}
+% \end{macro}
+%
+% \Block{}%
+% \begin{macro}{\Map@parts@}
+% The macro |\Map@parts@| is used to store the parts of the
+% top-level maps. This is the initialization of a feature
+% otherwise used in the aux file.
% \begin{macrocode}
\@namedef{Map@parts@}{}
% \end{macrocode}
% \end{macro}
+% \end{Map}
%
-% \subsection{Typesetting a Map}
+% \begin{Map}{Typesetting a Block}
%
-% \begin{environment}{Map}
-% This environment determines the apearance of a Map. It is
-% implemented as a longtable environment which takes care for the
-% page breaks and inserts material at the end of the page and the
-% beginning of the new page upon page break.
-% \begin{macrocode}
-\newenvironment{Map}[1]{%
-% \end{macrocode}
-% First the messages of |longtable| are modified to show this
-% package name instead.
-% \begin{macrocode}
- \def\LT@err{\PackageError{limap}}%
- \def\LT@warn{\PackageWarning{limap}}%
-% \end{macrocode}
-% The map local macro |\Block| and the environment |Block| is
-% activated. The counter for blocks is reset.
-% \begin{macrocode}
- \let\Block\Map@Block
- \let\endBlock\Map@endBlock
- \Map@blockcount=0
-% \end{macrocode}
-% The number of the map in the internal counting is set by
-% incrementing the old value.
+% \Block{}%
+% Blocks are the basic building unit of maps. Here the Block is
+% defined in all it's beauty.
+%
+% \begin{environment}{Map@Block}
+% This macro is used to typeset a block inside a Map. To avoid
+% abuse outside of a map it is activated within a Map only.
% \begin{macrocode}
- \global\advance\Map@no1
-% \typeout{--- \the\Map@no: \Map@UP}%
+\newenvironment{Map@Block}[1]{\par
+ \vspace*{-\parskip}\vspace*{-1ex}%
+ \\\null\par
+ \vspace*{\MapParskip}%
+ \raggedright\hspace{0pt}\MapFont{\MapBlockLabelFont{#1}}%
+ \gdef\@currentlabel{#1}%
+% \global\advance\Map@blockcount1
+ &\parskip=\MapParskip
+ {\MapRuleStart
+ \rule{\MapTextFraction\textwidth}{\MapRuleWidth}}\par
% \end{macrocode}
-%
+%
+% The final action is empty. Thus the block can be used as a simple
+% macro as well.
% \begin{macrocode}
- \ifx\Map@UP\empty\else
- \immediate\write\@auxout
- {\string\expandafter\string\xdef\string\csname\space
- Map@parts@\Map@UP\string\endcsname{\string\csname\space
- Map@parts@\Map@UP\string\endcsname\the\Map@no:}}%
- \fi
+}{%
+}
% \end{macrocode}
-%
+% \end{environment}
+%
+% \Block{}%
+% \begin{macro}{\Block}
+% The macro |\Block| issues an error when used outside of a Map
+% environment.
% \begin{macrocode}
- \edef\Map@UP{\the\Map@no}%
- \ifnum\Map@level>0
- \xdef\Map@@up{\Map@UP}% Just to save the value across blocks.
- \endgroup
-% \typeout{--- Closing Map \the\Map@level}%
- \Map@end
- \begingroup
- \edef\Map@UP{\Map@@up}%
- \def\@currenvir{Map}%
- \fi
- \edef\Map@this{\the\Map@no}%
+\newcommand\Block[1]{\PackageWarning{limap}{The sectioning command
+ `Block' has been encountered outside the scope of a Map
+ environment.}}
% \end{macrocode}
-% The entries for future use of submaps are written to the aux file.
+% \end{macro}
+%
+% \Block{}%
+% \begin{macro}{\WideBlock}
+% The macro |\WideBlock| takes one argument which is added to
+% the current block where the whole width of the table is used.
% \begin{macrocode}
- \immediate\write\@auxout
- {\string\global\string\@namedef{Map@title@\the\Map@no}{#1}}%
- \immediate\write\@auxout
- {\string\global\string\@namedef{Map@page@\the\Map@no}{\the\c@page}}%
- \immediate\write\@auxout
- {\string\global\string\@namedef{Map@parts@\the\Map@no}{}}%
+\newcommand\WideBlock{\\\multicolumn2{@{}l@{}}}
% \end{macrocode}
-%
+% \end{macro}
+% \end{Map}
+%
+% \begin{Map}{Typesetting a Table of Contents}
+%
+%
+% \Block{}%
% \begin{macrocode}
-% \typeout{--- Opening Map \the\Map@level}%
- \global\advance\Map@level1
- \def\Map@TITLE{#1}%
- \Map@start
+\newif\if@Map@toc@sep@
% \end{macrocode}
%
+% \Block{}%
+% \begin{macro}{\MapTableOfContents@open}
+% The macro |\MapTableOfContents@open| produces the table of
+% contents for the current map. It produces a tabular
+% containing the titles and pages of all maps directly
+% contained in the current map. It utilizes a tabular
+% environment and booktabs.
% \begin{macrocode}
- }{%
+\def\MapTableOfContents@open{%
+ \centering
+ \begin{tabular}{p{.6\textwidth}r}\toprule
+ \MapTOCheadfont{\MapTOCname}&
+ \MapTOCheadfont{\MapTOCpage}\\\midrule
+ \ifcsdef{Map@parts@\the\Map@no}{
+ \edef\Map@tmp@{\csname Map@parts@\the\Map@no\endcsname:}%
+ \expandafter\Map@toc@loop\Map@tmp@
+ \\\bottomrule
+ }{}
+ \end{tabular}
+}
% \end{macrocode}
+% \end{macro}
%
+% \Block{}%
+% \begin{macro}{\MapTableOfContents@boxed}
+% The macro |MapTableOfContents@boxed| produces the table of
+% contents for the current map. It produces a tabular
+% containing the titles and pages of all maps directly
+% contained in the current map. It utilizes a tabular
+% environment and booktabs.
% \begin{macrocode}
- \Map@end
- \global\advance\Map@level-1
-% \typeout{--- At end of Map \Map@this level \the\Map@level}%
+\def\MapTableOfContents@boxed{%
+ \centering
+ \begin{tabular}{|p{.6\textwidth}|r|}\hline
+ \MapTOCheadfont{\MapTOCname}&
+ \MapTOCheadfont{\MapTOCpage}\\\hline
+ \ifcsdef{Map@parts@\the\Map@no}{
+ \edef\Map@tmp@{\csname Map@parts@\the\Map@no\endcsname:}%
+ \expandafter\Map@toc@loop\Map@tmp@
+ \\\hline
+ }{}
+ \end{tabular}
}
% \end{macrocode}
-% \end{environment}
-%
-% \subsection{Typesetting a Block}
+% \end{macro}
%
-% \begin{environment}{Map@Block}
-% This macro is used to typeset a block inside a Map. To avoid
-% abuse outside of a map it is activated within a Map only.
+% \Block{}%
+% \begin{macro}{\MapTableOfContentsStyle}
+% The macro |MapTableOfContentsStyle| determines the style of
+% the TOCs. It can take the values |open| or |boxed|.
% \begin{macrocode}
-\newenvironment{Map@Block}[1]{\par\vspace*{-\parskip}\vspace*{-2ex}%
- \\\null\par
- \vspace*{\MapParskip}%
- \raggedright\hspace{0pt}\MapFont{#1}%
- \gdef\@currentlabel{#1}%
-% \global\advance\Map@blockcount1
- &\parskip=\MapParskip
- \rule{\MapTextfraction\textwidth}{\MapRuleWidth}\par
+\newcommand\MapTableOfContentsStyle{open}
% \end{macrocode}
+% \end{macro}
%
-% The final action is empty. Thus the block can be used as a simple
-% macro as well.
+% \Block{}%
+% \begin{macro}{\MapTableOfContents}
+% The macro |MapTableOfContents| produces the table of
+% contents for the current map. It produces a tabular
+% containing the titles and pages of all maps directly
+% contained in the current map.
% \begin{macrocode}
-}{%
+\newcommand\MapTableOfContents{\par
+ \global\@Map@toc@sep@false
+ \csname MapTableOfContents@\MapTableOfContentsStyle\endcsname
+ \vspace*{-1.5\parskip}\par\ignorespaces
}
% \end{macrocode}
-% \end{environment}
+% \end{macro}
+%
+% \Block{}%
+% \begin{macro}{\Map@toc@loop}
+% The macro |\Map@toc@loop| is a recursive solution to loop
+% through all elements of a list of children. The argment is
+% expected to be a colon separated list of numbers. The end is
+% marked by two colons in row.
%
-% \begin{macro}{\WideBlock}
-% The macro |\WideBlock| takes one argument which is added to the
-% current block where the whole width of the table is used.
+% Each number is a reference to a map. The respective line in
+% the toc table is produced.
% \begin{macrocode}
-\newcommand\Wide@Block{\\\multicolumn2{@{}l@{}}}{}
+\def\Map@toc@loop#1:{%
+ \def\Map@tmp@{#1}%
+ \ifx\Map@tmp@\empty
+ \global\let\Map@next@=\relax
+ \else
+ \if@Map@toc@sep@
+ \gdef\Map@next@{\\
+ \ref{Map@#1}&\pageref{Map@#1}%
+ \Map@toc@loop}%
+ \else
+ \gdef\Map@next@{%
+ \ref{Map@#1}&\pageref{Map@#1}%
+ \Map@toc@loop}%
+ \global\@Map@toc@sep@true
+ \fi
+ \fi
+ \Map@next@
+}
% \end{macrocode}
% \end{macro}
+% \end{Map}
%
-% \subsection{Typesetting a Table of Contents}
+% \begin{Map}{Typesetting a Table}
%
-% \begin{macro}{\MapTableOfContents}
-% The macro |\MapTableOfContents| produces the table of contents
-% for the current map. It produces a tabular containing the
-% titels and pages of all maps directly contained in the current
-% map.
+% \Block{}%
+% \begin{macro}{\MapTabularFraction}
+% The macro |\MapTabularFraction| contains a factor for the line
+% width. This is used to determine the width of the table. The
+% tabular is centered in the text column.
% \begin{macrocode}
-\newcommand\MapTableOfContents{%
- \medskip\par
- \xdef\Map@@{\csname Map@parts@\the\Map@no\endcsname}%
- \gdef\Map@@@{}%
- \centering
- \begin{tabular}{p{.6\textwidth}r}\toprule
- \MapTOCemph{\MapTOCname}&\MapTOCemph{\MapTOCpage}\\
- \midrule
- \expandafter\Map@toc@loop \Map@@:%
- \\\bottomrule
- \end{tabular}
-}
+\newcommand\MapTabularFraction{.95}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\Map@toc@loop}
-% The macro |\Map@toc@loop| is a recursive solution to loop throup
-% all elements of a list of children.
+% \Block{}%
+% \begin{environment}{MapTabular}
+% The environment |MapTabular| produces the |tabular| environment
+% with the width of the text column.
% \begin{macrocode}
-\def\Map@toc@loop#1:{%
- \def\Map@@{#1}%
- \ifx\Map@@\empty
- \global\let\Map@@=\relax
- \else
- \gdef\Map@@{\Map@@@\@nameuse{Map@title@#1}&\@nameuse{Map@page@#1}%
- \global\let\Map@@@=\\%
- \Map@toc@loop}%
- \fi
- \Map@@
+\newenvironment{MapTabular}{%
+ \begin{center}
+ \begin{tabular*}{\MapTabularFraction\linewidth}%
+}{%
+ \end{tabular*}
+ \end{center}\ignorespaces
}
% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Typesetting a Title Page}
+% \end{environment}
+% \end{Map}
%
-% \begin{macro}{\MakeTitle}
-% The macro |\MakeTitle| can be used as a replacement for the
-% |\maketitle| macro.
+% \begin{Map}{Typesetting the Title Page}
+%
+% \Block{}%
+% \begin{macro}{\MakeTitle}
+% The macro |\MakeTitle| can be used as a replacement for the
+% |\maketitle| macro.
% \begin{macrocode}
\newcommand\MakeTitle{\thispagestyle{empty}
\rule{0pt}{.25\textheight}\par
\mbox{}\hfill
- \begin{minipage}{\MapTextfraction\textwidth}
+ \begin{minipage}{\MapTextFraction\textwidth}
\raggedright
- \rule{\textwidth}{1pt}\par
- \vspace*{5ex}%
+ \rule{\textwidth}{2pt}\par
+ \vspace*{2.5\MapParskip}%
\sf{\huge \@title\par}%
- \vspace*{5ex}%
- \rule{\textwidth}{1pt}\par
- \vspace*{5ex}%
+ \vspace*{2.5\MapParskip}%
+ \rule{\textwidth}{2pt}\par
+ \vspace*{2.5\MapParskip}%
\MapFont{\large \@author} \par
- \vspace*{10ex}%
+ \vspace*{2.5\MapParskip}%
\MapFont{\footnotesize \@date}
- \vspace*{10ex}%
+ \vspace*{\MapParskip}%
\end{minipage}%
+ \vspace*{-22ex}%
\par
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
+%
+% \Block{}%
+% \begin{environment}{Abstract}
+% This macro is used to typeset the abstract.
+% \begin{macrocode}
+\newenvironment{Abstract}{\vfill
+ \par
+ \mbox{}\hfill
+ \begin{minipage}{\MapTextFraction\textwidth}\parskip=1ex
+ \rule{\textwidth}{1pt}\medskip\par
+% \end{macrocode}
+%
+% \begin{macrocode}
+}{\par\rule{\textwidth}{1pt}
+ \end{minipage}%
+ \par
+}
+% \end{macrocode}
+% \end{environment}
%
-% The new |\maketitle| macro is activated for the class.
+% \Block{Use maketitle and abstract}%
+% The new |\maketitle| macro is activated for the class.
%
% \begin{macrocode}
%<*class>
\let\maketitle\MakeTitle
+\let\abstract\Abstract
+\let\endabstract\endAbstract
%</class>
% \end{macrocode}
-%
-% \subsection{Final Actions}
+% \end{Map}
+%
+% \begin{Map}{Final Actions}
%
-% Load the configuration file at the end if it can be found.
+% \Block{Local configuration}%
+% Load the configuration file at the end if it can be found.
% \begin{macrocode}
\InputIfFileExists{limap.cfg}{}{}
% \end{macrocode}
%
-% Finally we have to activate the proper settings for the choosen
-% language.
+% \Block{}%
+% Finally we have to activate the proper settings for the chosen
+% language.
% \begin{macrocode}
\csname LIMAP@SelectLanguage@\LIMAP@Language\endcsname
% \end{macrocode}
%
% \begin{macrocode}
\ifLIMAP@strict
+ \def\chapter{\PackageWarning{limap}{The sectioning command
+ `chapter' is not available.}}
% \def\section{\PackageWarning{limap}{The sectioning command
% `section' is not available.}}
\def\subsection{\PackageWarning{limap}{The sectioning command
@@ -1232,7 +2323,11 @@
\fi
% \end{macrocode}
%
-% That's all.
+% \Block{Finale}%
+% That's all for this time.
+% \end{Map}
+% \end{Map}
+% \end{Map}
%
% \Finale
%
diff --git a/Master/texmf-dist/source/latex/limap/limap.ins b/Master/texmf-dist/source/latex/limap/limap.ins
index 4936fe57ca0..32fbafd1b96 100644
--- a/Master/texmf-dist/source/latex/limap/limap.ins
+++ b/Master/texmf-dist/source/latex/limap/limap.ins
@@ -1,46 +1,41 @@
-%%------------------------------------------------------------------
-%% Driver file to extract the dtx style and class files.
-%%
-%% Copyright (C) 1999-2000 Gerd Neugebauer
-%%
-%% limap.ins may be distributed under the terms of the LaTeX Project
-%% Public License, as described in lppl.txt in the base LaTeX
-%% distribution. Either version 1.0 or, at your option, any later
-%% version.
-%%
-%%------------------------------------------------------------------
-%%
-%% Run this file through TeX or LaTeX to extract the files.
-%% You need the docstrip package as distributed with LaTeX2e.
-%% It is also available as seperate package from any CTAN site.
-%%
-%%------------------------------------------------------------------
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% $Id: limap.ins 1.2 2000/03/01 20:11:42 gene Exp gene $
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\input docstrip.tex
-\keepsilent
-\askonceonly
-
-\generate{\file{limap.sty}{\from{limap.dtx}{package}}
- \file{limap.cls}{\from{limap.dtx}{class}}
- }
-%\usedir{tex/latex/limap}
-
-\ifToplevel{
-\Msg{****************************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* files into a directory searched by (La)TeX:}
-\Msg{*}
-\Msg{* \space\space limap.cls limap.sty}
-\Msg{*}
-\Msg{* To produce the documentation run limap.tex through LaTeX,}
-\Msg{* makeindex, and LaTeX again.}
-\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{****************************************************************}
-}
-
-\endbatchfile
-\endinput
+%%------------------------------------------------------------------
+%% Driver file to extract the dtx style and class files.
+%%
+%% Copyright (C) 1999-2016 Gerd Neugebauer
+%%
+%% limap.ins may be distributed under the terms of the LaTeX Project
+%% Public License version 1.3c, as described in lppl.txt.
+%%
+%%------------------------------------------------------------------
+%%
+%% Run this file through TeX or LaTeX to extract the files.
+%% You need the docstrip package as distributed with LaTeX2e.
+%% It is also available as seperate package from any CTAN site.
+%%
+%%------------------------------------------------------------------
+
+\input docstrip.tex
+\keepsilent
+\askonceonly
+
+\generate{\file{limap.sty}{\from{limap.dtx}{package}}
+ \file{limap.cls}{\from{limap.dtx}{class}}
+ }
+
+\ifToplevel{
+\Msg{****************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by LaTeX:}
+\Msg{*}
+\Msg{* \space\space limap.cls limap.sty}
+\Msg{*}
+\Msg{* To produce the documentation run limap.dtx through LaTeX,}
+\Msg{* makeindex, and LaTeX again.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{****************************************************************}
+}
+
+\endbatchfile
+\endinput