%%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %\iffalse %% Purpose: %% A package for typesetting Information Maps. %% %% Documentation: %% The documentation can be generated from the original file %% limap.dtx with the doc class/package. LaTeX the file limap.tex %% to get the full documentation in pdf format. %% %% Author: Gerd Neugebauer %% Im Lerchelsb\"ohl 5 %% 64521 Gro\ss-Gerau (Germany) %% Mail: gene@gerd-neugebauer.de %% %% Copyright (C) 1999-2017 Gerd Neugebauer %% %% limap.dtx may be distributed under the terms of the LaTeX Project %% 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. %% %\fi %^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \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{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} % \DoNotIndex{\@currentlabel,\@currenvir,\@date} % \DoNotIndex{\@dottedtocline,\@gobble,\@gobbletwo,\@highpenalty} % \DoNotIndex{\@ifnextchar,\@ifstar,\@ifundefined} % \DoNotIndex{\@namedef,\@nameuse,\@pnumwidth,\@startsection,\@starttoc} % \DoNotIndex{\@tempdima,\@title,\@thefnmark,\@undefined} % \DoNotIndex{\@ixpt,\@vpt,\@vipt,\@viipt,\@viiipt} % \DoNotIndex{\@xpt,\@xipt,\@xiipt,\@xivpt,\@xvii,\@xxpt,\@xxvpt} % \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,\PrintDescribeEnv,\PrintDescribeMacro} % \DoNotIndex{\PrintChanges,\PrintIndex} % \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,\bfseries,\bgroup} % \DoNotIndex{\bigskip,\bottomrule,\box,\bullet} % \DoNotIndex{\c,\cal,\catcode,\centering,\chapter,\chardef,\circ} % \DoNotIndex{\cfoot,\clearpage,\closein,\closeout} % \DoNotIndex{\clubpenalty,\color,\csname} % \DoNotIndex{\d,\def,\dimen,\diamond,\divide,\documentclass,\dots,\dp} % \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,\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,\lhead,\list} % \DoNotIndex{\llap,\long,\lower} % \DoNotIndex{\makeatletter,\makeatother} % \DoNotIndex{\m@th,\makebox,\magstep,\makeindex,\markboth,\mbox,\medskip} % \DoNotIndex{\marginpar,\midrule,\multicolumn} % \DoNotIndex{\newblock,\newcommand,\newcount,\newenvironment,\newfont} % \DoNotIndex{\newif,\newlength,\newline,\newpage,\newread,\newwrite} % \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,\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{\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{813} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% \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 %% Lower-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 %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %% %^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \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 % % % \begin{Map}{Motivation} % % \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} % % \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} % % % \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: % % \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{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} % % \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} % \end{Map} % \end{Map} % % \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. % % \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. % % \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} % % \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} % % \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. % % \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 % % \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} % \begin{Map}{Blocks in the Table of Contents} % % \Block{Motivation}% % Sometimes it can be desirable to add the blocks to the global % table of contents. Here we will see how this can be achieved. % % \DescribeMacro{\MapBlockStartHook} % The macro |\MapBlockStartHook| is expanded at the beginning of % each block it if is defined. It takes a single argument which % is the title of the block. % % \DescribeMacro{\MapBlockTOC} % The macro |\MapBlockTOC| is a macro which adds one line to the % table of contents. It takes one argument which is the text to % be added. % % \Block{Example}% % Put the following code in the preamble to get the blocks into % the table of contents. % \begin{verbatim} % \let\MapBlockStartHook\MapBlockTOC \end{verbatim} % % %\vspace*{-5ex} % \end{Map} % \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 % % \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} % % \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} \def\fileversion{2.2} % \end{macrocode} % \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} \def\filedate{2016/05/29} % \end{macrocode} % \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} % % \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{Map} % % \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 arrangements are made for this purpose. % % \Block{Driver code}% % The driver code is not exported by the installer. % % \begin{macrocode} %<*driver> \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 \setcounter{IndexColumns}{2} \PrintIndex \end{document} % % \end{macrocode} % \end{Map} % % % \begin{Map}{The \TeX\ Code} % % \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. % % \Block{Contents}% % \MapTableOfContents % % \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 it does have to be too new. % % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} % \end{macrocode} % % \Block{Package identification}% % When the package is generated, the package identification is % included. % \begin{macrocode} %<*package> \ProvidesPackage{limap}[\filedate\space Gerd Neugebauer] % % \end{macrocode} % % \Block{Class identification}% % When the class is generated, the class identification is % included. % \begin{macrocode} %<*class> \ProvidesClass{limap}[\filedate\space Gerd Neugebauer] % % \end{macrocode} % \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} % % \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} % % \Block{}% % \begin{macrocode} \DeclareOption{austrian}{\renewcommand\LIMAP@Language{austrian}} \DeclareOption{german}{\renewcommand\LIMAP@Language{german}} \DeclareOption{french}{\renewcommand\LIMAP@Language{french}} \DeclareOption{english}{\renewcommand\LIMAP@Language{english}} \DeclareOption{USenglish}{\renewcommand\LIMAP@Language{USenglish}} % \end{macrocode} % % \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} % % \Block{}% % \begin{macrocode} \DeclareOption{nonstrict}{\LIMAP@strictfalse} % \end{macrocode} % % \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{macrocode} \providecommand\LIMAP@ClassType{report} % \end{macrocode} % \end{macro} % % \Block{}% % \begin{macrocode} \DeclareOption{book}{\renewcommand\LIMAP@ClassType{book}} \DeclareOption{report}{\renewcommand\LIMAP@ClassType{report}} \DeclareOption{article}{\renewcommand\LIMAP@ClassType{article}} \DeclareOption{letter}{\renewcommand\LIMAP@ClassType{letter}} % \end{macrocode} % % \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} % % \Block{Options for selecting the variant}% % \begin{macrocode} \DeclareOption{koma}{\renewcommand\LIMAP@Variant{koma}} \DeclareOption{base}{\renewcommand\LIMAP@Variant{base}} % \end{macrocode} % % \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} \newcommand\LIMAP@Class@base@book{book} \newcommand\LIMAP@Class@base@letter{letter} \newcommand\LIMAP@Class@koma@article{scrartcl} \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. % % 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} % % \end{macrocode} % \end{Map} % % \begin{Map}{Loading Required Packages} % % \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} % % \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> \RequirePackage{fancyhdr} \addtolength{\headheight}{2ex}% \pagestyle{fancy}% \cfoot{} \rhead{\small\thepage} \lhead{\textit{\footnotesize\@title}} \def\@title{} % % \end{macrocode} % % \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} % \end{Map} % \end{Map} % % \begin{Map}{Layout Parameters} % % \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. % % \Block{}% % \begin{macro}{\MapRuleWidth} % The macro |\MapRuleWidth| determines the width of the rules % drawn between blocks. % \begin{macrocode} \providecommand\MapRuleWidth{.25pt} % \end{macrocode} % \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} % % \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} % % \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} % % \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} % % \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]{, {\MapTitleContinuedFont #1}} % \end{macrocode} % \end{macro} % % \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} % % \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\MapTitleFont\Large % \end{macrocode} % \end{macro} % % \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\MapTitleContinuedFont\small % \end{macrocode} % \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} % % \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} % % \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} % \end{macrocode} % \end{macro} % % \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} % \end{macrocode} % \end{macro} % \end{Map} % % \begin{Map}{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{macrocode} \let\MapNewpage\newpage % \end{macrocode} % \end{macro} % % \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} % % \Block{}% % \begin{macro}{\MapBlockTOC} % The macro |\MapBlockTOC| can be used to add an entry for a % block to the table of contents. % \changes{2.2}{2017/07/20}{new} % \begin{macrocode} \newcommand\MapBlockTOC[1]{% \begingroup\count0=\Map@level \advance\count0 1% \addcontentsline{toc}{\@nameuse{Map@TOC@name\the\count0}}{#1}% \endgroup } % \end{macrocode} % \end{macro} % % \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} % % \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} % % \Block{}% % \begin{macro}{\MapTOCheadfont} % The macro |\MapTOCheadfont| contains the font switching % command for typesetting the head line of map table of % contents. % \begin{macrocode} \newcommand\MapTOCheadfont{\scriptsize\emph} % \end{macrocode} % \end{macro} % \end{Map} % % \begin{Map}{Internal Macros, Lengths, and Counters} % % \Block{}% % This section contains internal macros used to implement the % functionality. % % \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} \newlength{\Map@length} % \end{macrocode} % \end{macro} % % \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} \newcount\Map@level \Map@level=0 % \end{macrocode} % \end{macro} % % \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} \newcount\Map@blockcount % \end{macrocode} % \end{macro} % % \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} \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} % \end{Map} % % \begin{Map}{Typesetting a Map} % % \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} \def\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} % \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{macrocode} \def\endMap{% \Map@end \global\advance\Map@level-1 \ignorespaces } % \end{macrocode} % % \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} % % \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} \@namedef{Map@TOC@name2}{subsection} \@namedef{Map@TOC@name3}{subsubsection} \@namedef{Map@TOC@name4}{paragraph} \@namedef{Map@TOC@name5}{subparagraph} \@namedef{Map@TOC@name6}{subsubparagraph} \@namedef{Map@TOC@name7}{subsubparagraph} \@namedef{Map@TOC@name8}{subsubparagraph} \@namedef{Map@TOC@name9}{subsubparagraph} \@namedef{Map@TOC@name10}{subsubparagraph} \@namedef{Map@TOC@name11}{subsubparagraph} \@namedef{Map@TOC@name12}{subsubparagraph} % \end{macrocode} % \end{macro} % % \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{% \advance\Map@counter1 \setlength{\Map@length}{\textwidth}% \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}@{}}% \multicolumn{2}{@{}p{\textwidth}@{}}{% \MapFont{\MapTitleFont\rule{0pt}{3ex}% \Map@TITLE}} \endfirsthead \multicolumn{2}{@{}p{\textwidth}@{}}{% \MapFont{\MapTitleFont\rule{0pt}{3ex}% \Map@TITLE\MapContinuedFormat{\MapContinued}}}% \endhead \\ &\MapRuleStart \rule{\MapTextFraction\textwidth}{\MapRuleWidth}\newline \mbox{}\hfill \raisebox{3pt}{\MapContinuingFormat{\MapContinuing}} \endfoot &\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} % % \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{% \ifMap@open@\vspace*{1.5ex} \global\Map@open@false \endlongtable \MapNewpage \fi \iftrue \ifnum\Map@blockcount>9 \PackageWarning{limap}% {*** 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.}% \fi\fi \fi } % \end{macrocode} % \end{macro} % % \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} % % \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} % % \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} % % \begin{Map}{Typesetting a Block} % % \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. % \changes{2.2}{2017/07/20}{|MapBlockStartHook| added.} % \begin{macrocode} \newenvironment{Map@Block}[1]{\par \vspace*{-\parskip}\vspace*{-1ex}% \\\null\par \vspace*{\MapParskip}% \raggedright\hspace{0pt}\MapFont{\MapBlockLabelFont{#1}}% \gdef\@currentlabel{#1}% &\parskip=\MapParskip {\MapRuleStart \rule{\MapTextFraction\textwidth}{\MapRuleWidth}}\par \ifx\@undefined\MapBlockStartHook\else \MapBlockStartHook{#1}% \fi % \end{macrocode} % % The final action is empty. Thus the block can be used as a simple % macro as well. % \begin{macrocode} }{% } % \end{macrocode} % \end{environment} % % \Block{}% % \begin{macro}{\Block} % The macro |\Block| issues an error when used outside of a Map % environment. % \begin{macrocode} \newcommand\Block[1]{\PackageWarning{limap}{The sectioning command `Block' has been encountered outside the scope of a Map environment.}} % \end{macrocode} % \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} \newcommand\WideBlock{\\\multicolumn2{@{}l@{}}} % \end{macrocode} % \end{macro} % \end{Map} % % \begin{Map}{Typesetting a Table of Contents} % % % \Block{}% % \begin{macrocode} \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} \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{macro} % % \Block{}% % \begin{macro}{\MapTableOfContentsStyle} % The macro |MapTableOfContentsStyle| determines the style of % the TOCs. It can take the values |open| or |boxed|. % \begin{macrocode} \newcommand\MapTableOfContentsStyle{open} % \end{macrocode} % \end{macro} % % \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{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. % % Each number is a reference to a map. The respective line in % the toc table is produced. % \begin{macrocode} \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} % % \begin{Map}{Typesetting a Table} % % \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\MapTabularFraction{.95} % \end{macrocode} % \end{macro} % % \Block{}% % \begin{environment}{MapTabular} % The environment |MapTabular| produces the |tabular| environment % with the width of the text column. % \begin{macrocode} \newenvironment{MapTabular}{% \begin{center} \begin{tabular*}{\MapTabularFraction\linewidth}% }{% \end{tabular*} \end{center}\ignorespaces } % \end{macrocode} % \end{environment} % \end{Map} % % \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} \raggedright \rule{\textwidth}{2pt}\par \vspace*{2.5\MapParskip}% \sf{\huge \@title\par}% \vspace*{2.5\MapParskip}% \rule{\textwidth}{2pt}\par \vspace*{2.5\MapParskip}% \MapFont{\large \@author} \par \vspace*{2.5\MapParskip}% \MapFont{\footnotesize \@date} \vspace*{\MapParskip}% \end{minipage}% \vspace*{-22ex}% \par } % \end{macrocode} % \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} % % \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} % \end{Map} % % \begin{Map}{Final Actions} % % \Block{Local configuration}% % Load the configuration file at the end if it can be found. % \begin{macrocode} \InputIfFileExists{limap.cfg}{}{} % \end{macrocode} % % \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 `subsection' is not available.}} \def\subsubsection{\PackageWarning{limap}{The sectioning command `subsubsection' is not available.}} \def\paragraph{\PackageWarning{limap}{The sectioning command `paragraph' is not available.}} \def\subparagraph{\PackageWarning{limap}{The sectioning command `subparagraph' is not available.}} \def\subsubparagraph{\PackageWarning{limap}{The sectioning command `subsubparagraph' is not available.}} \fi % \end{macrocode} % % \Block{Finale}% % That's all for this time. % \end{Map} % \end{Map} % \end{Map} % % \Finale % \endinput % % Local Variables: % mode: latex % TeX-master: "limap.dtx" % End: