From 39eee492a47dc496a406cd7d0cc34a8530d8f5ce Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 11 Jun 2016 23:21:54 +0000 Subject: limap (29may16) git-svn-id: svn://tug.org/texlive/trunk@41390 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/limap/Makefile | 34 - Master/texmf-dist/source/latex/limap/limap.dtx | 2559 +++++++++++++++++------- Master/texmf-dist/source/latex/limap/limap.ins | 87 +- 3 files changed, 1868 insertions(+), 812 deletions(-) delete mode 100644 Master/texmf-dist/source/latex/limap/Makefile (limited to 'Master/texmf-dist/source/latex/limap') 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} % % \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] % % \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] % % \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} +% % \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} % % \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} % % \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 @@ % % \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 % % \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 -- cgit v1.2.3