% \iffalse % % Copyright 1999, 2000 the fontinst maintenance team and any individual % authors listed elsewhere in this file. All rights reserved. % % This file is part of the fontinst system version 1.9. % ----------------------------------------------------- % % It 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.1 or, at your option, any later version. % % \fi % % \title{The \package{fisource} package} % \author{Lars Hellstr\"om} % \maketitle % % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{fisource}% [2003/03/29 v2.16 Fontinst source documentation commands] % \end{macrocode} % % \section{Option processing} % % \begin{option}{warnfinale} % \changes{2.01}{2000/07/06}{Option added. (LH)} % Under development I find it quite a nuisance that |\Finale| raises % an error if the checksum isn't correct; a warning feels more % appropriate. Therefore the \texttt{warnfinale} option redefines % |\check@checksum| to emit a warning instead. % \begin{macrocode} \DeclareOption{warnfinale}{% \@ifpackageloaded{doc}\@firstofone\AtEndOfPackage {% \def\check@checksum{\relax \ifnum\check@sum=\z@ \typeout{**********************************}% \typeout{* This macro file has no checksum!}% \typeout{* The checksum should be \the\bslash@cnt!}% \typeout{**********************************}% \else\ifnum \check@sum=\bslash@cnt \typeout{*******************}% \typeout{* Checksum passed *}% \typeout{*******************}% \else \PackageWarning{doc}{Checksum not passed (\the\check@sum<>\the\bslash@cnt)}% \fi\fi \global\check@sum\z@ }% }% } % \end{macrocode} % \end{option} % % All other options are passed on to \package{xdoc}. % \begin{macrocode} \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xdoc2}} \ProcessOptions\relax % \end{macrocode} % % \changes{2.00}{2000/07/06}{Use \package{xdoc1}. (LH)} % \changes{2.02}{2000/07/15}{Use \package{xdoc2}. (LH)} % \changes{2.10}{2001/02/27}{Use \package{docidx2e}. (LH)} % \begin{macrocode} \RequirePackage{xdoc2,docidx2e} % \end{macrocode} % % \section{Miscellanea} % % \begin{macrocode} \CodelineIndex \setcounter{IndexColumns}{2} \setcounter{tocdepth}{2} \DeclareRobustCommand\package[1]{\textsf{#1}} \DeclareRobustCommand\eTeX{\(\varepsilon\)-\kern-.125em\TeX} % \end{macrocode} % % \begin{macro}{\AllTeX} % \changes{2.13}{2001/08/26}{Command added. (LH)} % \begin{macro}{\La} % The |\AllTeX| command is for writing `(La)TeX' (but nicer). The % definition is taken from \texttt{tugboat.dtx}. % \begin{macrocode} \newcommand{\La}{% L\kern-.36em {% \setbox0\hbox{T}% \vbox to\ht0{\hbox{% $\m@th$\csname S@\f@size\endcsname \fontsize\sf@size\z@\math@fontsfalse\selectfont A% }\vss}% }% } \DeclareRobustCommand\AllTeX{(\La\kern-.075em)\kern-.075em\TeX} % \end{macrocode} % \end{macro}\end{macro} % % \begin{macro}{\missing} % \changes{2.10}{2001/02/27}{Redefined using % \cs{NewDescribeCommand}. (LH)} % \begin{macrocode} \NewDescribeCommand\missing{% \XD@grab@marg\XD@grab@harmless@cs }{2}{% \GenericDescribePrint{\small Not in \texttt{#1}: \texttt{\Bslash#2}}% \MakeSortKey\@tempa{#2}{}% \IndexEntry{% \LevelSorted{Not in #1:}{Not in \texttt{#1}:}% \LevelSorted{\@tempa}{\texttt{\Bslash#2}}% }{usage}{\thepage}% } % \newcommand\missing[2]{% % \marginpar{% % \raggedleft\leavevmode\strut % Not in \texttt{#1}: \texttt{\string#2}\strut % \index{Not in #1\actualchar Not in \string\texttt{#1}\levelchar % \string#2\actualchar\string\verb\verbatimchar % \string#2\verbatimchar\encapchar usage}% % }% % } % \end{macrocode} % \end{macro} % % \begin{macrocode} \newcommand\ambiguity[1]{\leavevmode \textbf{#1\index{Ambiguity\encapchar usage}}% \marginpar{\raggedleft\textbf{\huge A}}% } \newcommand\question[1]{\leavevmode \textbf{#1\index{Question\encapchar usage}}% \marginpar{\raggedleft\textbf{\huge ?}}% } \AtBeginDocument{\catcode`\_=11} \def\MakePrivateLetters{\catcode`\_=11\makeatletter} % \end{macrocode} % % \multchanges{\cs{meta}}{1.30}{2000/01/02}{\cs{Meta} command (robust % wrapper around \package{doc}'s \cs{meta}) added. (LH)} % \multchanges{\cs{meta}}{1.31}{2000/02/10}{Command redefined so that % it is robust itself. \cs{Meta} removed. (LH)} % \multchanges{\cs{meta@font@select}}{1.33}{2000/02/26}{Macro added. % (LH)} % \multchanges{\cs{meta}}{1.35}{2000/03/25}{Don't make \cs{setlanguage} % whatsits in restricted horizontal mode. (LH)} % \multchanges{\cs{meta}}{2.00}{2000/07/06}{Command definition removed, % since the command is already defined by \package{doc} or % \package{xdoc}. (LH)} % % \begin{macro}{\cs} % This is \package{ltxdoc}'s normal |\cs|, but with a twist to make % |\meta| produce better results when used in the argument. % \changes{1.33}{2000/02/26}{Redefinition added. (LH)} % \changes{2.00}{2000/07/06}{Use \cs{MetaNormalfont} and % \cs{PrintVisibleChar}. (LH)} % \begin{macrocode} \DeclareRobustCommand\cs[1]{% \texttt{\MetaNormalfont\PrintVisibleChar{`\\}#1}% } % \end{macrocode} % \end{macro} % % \begin{environment}{isyntax} % |isyntax| is for ``informal'' syntax specifications, such as % \begin{quote} % A \meta{varchar command} can be one of\\ % \begin{quote} % |\vartop|\marg{glyph}\\ % |\varmid|\marg{glyph}\\ % |\varbot|\marg{glyph}\\ % |\varrep|\marg{glyph} % \end{quote} % \end{quote} % The implementation is based on that of the \texttt{verse} % environment.It usually works just as fine with \texttt{quote}, but % \texttt{isyntax} handles breaking long lines better (and more % elegantly). % \changes{1.37}{2000/05/14}{Increased \cs{rightskip} stretchability % and added setting of \cs{linepenalty}. (LH)} % \begin{macrocode} \newenvironment{isyntax}{% \let\\\@centercr \list{}{% \itemsep \z@ \itemindent -1.5em% \listparindent \itemindent \advance \leftmargin 1.5em% }% \advance \rightskip \z@\@plus0.7\linewidth \relax \linepenalty=100\relax \item\relax }{\endlist} % \end{macrocode} % \end{environment} % % \begin{environment}{obsoletemacro} % \changes{2.00}{2000/07/06}{Environment removed since obsolete. (LH)} % The \texttt{obsoletemacro} environment is for getting the right % heading on |\changes| comments that refer to macros which have been % removed. It only updates the |\saved@macroname|. % \begin{macrocode} % \newenvironment{obsoletemacro}{\begingroup % \catcode`\\12 % \MakePrivateLetters % \obsolete@macro % }{} % \def\obsolete@macro#1{\endgroup % \edef\saved@macroname{\string#1}% % } % \end{macrocode} % \end{environment} % % % \section{\texttt{macro}-like environments} % % This subsection contains the definitions of a couple of environments % that, like \package{doc}'s \texttt{environment}, are for marking up the % document (what is defined and where). The definitions of these % environments are identical to that of \texttt{environment}, except % that the index entry texts are a little different. % % This section got a lot shorter in v\,2.00 thanks to \package{xdoc}. % % \begin{environment}{fiinteger} % \begin{environment}{fistring} % \multchanges{\notcs{\texttt{fiinteger} environment}^^A % \notcs{\texttt{fistring} environment}}{2.03}{2000/07/24}^^A % {Swapped last two arguments of \cs{NewMacroEnvironment} call % since \package{xdoc} changed.} % \begin{macrocode} \NewMacroEnvironment{fiinteger}{\XD@grab@harmless\relax}{1}% {\MacroFont#1 \normalfont integer}% {\XDMainIndex{\levelsorted{#1 I}{\texttt{#1} (integer)}}% \XDMainIndex{\levelsame{integers:}\levelsorted{#1}{\texttt{#1}}}}% {{#1}{\texttt{#1} integer}}{} % \end{macrocode} % \begin{macrocode} \NewMacroEnvironment{fistring}{\XD@grab@harmless\relax}{1}% {\MacroFont#1 \normalfont string}% {\XDMainIndex{\levelsorted{#1 S}{\texttt{#1} (string)}}% \XDMainIndex{\levelsame{strings:}\levelsorted{#1}{\texttt{#1}}}}% {{#1}{\texttt{#1} string}}{} % \end{macrocode} % \end{environment}\end{environment} % % \begin{environment}{PLproperty} % \changes{2.04}{2000/11/03}{Environment added. (LH)} % \changes{2.11}{2001/03/16}{Added \cs{DoNotIndexHarmless}. (LH)} % The \texttt{PLproperty} environment is for marking up definitions % of macros for interpreting properties in (V)PL files. % \begin{macrocode} \NewMacroEnvironment{PLproperty}{\XD@grab@harmless\relax}{1}% {\MacroFont#1 \normalfont property}% {\XDMainIndex{\levelsorted{#1}{\texttt{\Bslash#1}}}% \XDMainIndex{% \levelsame{PL properties:}\levelsorted{#1}{\texttt{#1}}% }}% {{#1}{\texttt{\Bslash#1}}}% {\DoNotIndexHarmless{#1}} % \end{macrocode} % \end{environment} % % \begin{environment}{numPLproperty} % \changes{2.11}{2001/03/17}{Environment added. (LH)} % The \texttt{numPLproperty} environment is for marking up definitions % of macros that interpret a numbered family of (V)PL file properties, % such as \texttt{NUM} for \texttt{NUM1}, \texttt{NUM2}, and % \texttt{NUM3}. The syntax is % \begin{quote} % |\begin{numPLproperty}|\marg{base}\marg{num-list} % \end{quote} % In the above case the \meta{base} would be \texttt{NUM}. The % \meta{num-list} is a comma-separated list of digits (no existing % family of numbered properties have more than 5 members) that % specify what members of the family are handled by the macro being % defined. % \begin{macrocode} \NewMacroEnvironment{numPLproperty}{% \XD@grab@harmless\relax\XD@grab@marg }{2}% {\MacroFont#1$*$ \normalfont properties}% {\XDMainIndex{\levelsorted{#1}{\texttt{\Bslash#1}}}% \@for\@tempa:=#2\do{% \XDMainIndex{% \levelsame{PL properties:}% \levelsorted{#1\@tempa}{\texttt{#1\@tempa}}% }% }}% {{#1}{\texttt{\Bslash#1}}}% {\DoNotIndexHarmless{#1}} % \end{macrocode} % \end{environment} % % % \multchanges{\notcs{\texttt{switch} environment}}{2.00}{2000/07/06} % {Removed since defined in \package{xdoc}. (LH)} % % % \section{Changes of change history formating} % % \multchanges{\cs{@changes}}{2.00}{2000/07/06}{Redefinition removed % since already done in \package{xdoc}. (LH)} % % \begin{macro}{\multchanges} % \changes{1.32}{2000/02/22}{\cs{flushleftspace} between \cs{cs} % items when typeset, instead of space. (LH)} % \changes{1.34}{2000/03/11}{\cs{notcs} marker allowed in % \meta{commands}. (LH)} % \changes{2.16}{2003/03/29}{Modified macro so that it is based on % \cs{changes@}. This means it is now compatible with \cs{uintver}. % (LH)} % The |\multchanges| commands is used to record a change to several % macros. Its syntax is % \begin{quote} % |\multchanges|\marg{commands}\marg{version}\marg{date}^^A % \marg{description} % \end{quote} % The three last arguments are as the arguments of |\changes|. The % \meta{commands} should be a nonempty sequence of commands, each % command either a |\cs| or a |\notcs|, and each command with one % argument. The change history entry generated by a % |\multchanges| will be for all the macros (or whatever) listed in % the first argument. |\cs| items will be typeset in typewriter font % with a leading backslash, whereas |\notcs| items will receive no % such special formatting. % % This method may have problems with active characters (since I've % ignored some things the standard |\changes| do to accomodate these), % but luckily \package{fontinst} hardly uses active characters % anyway. Furthermore I don't think the \package{doc} way of dealing % with them would be the right way here. Perhaps an active character % should rather be entered in the \meta{commands} argument as % |\active|\marg{code} or something? % \begin{macrocode} \newcommand*\multchanges[4]{% \@bsphack \begingroup \begingroup \def\cs##1{,\space##1}% \let\notcs=\cs \protected@xdef\@gtempa{% \expandafter\@gobbletwo#1\@empty\@empty\@empty }% \edef\cs{,\noexpand\flushleftspace \noexpand\protect \expandafter\noexpand\csname cs \endcsname }% \def\notcs##1{,\noexpand\flushleftspace ##1}% \protected@xdef\@gtempa{% {\@gtempa}% {\expandafter\@gobbletwo#1\@empty\@empty\@empty}% }% \endgroup \let\saved@macroname=\@gtempa \changes@{#2}{#3}{#4}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\flushleftspace} % The |\flushleftspace| command should typeset something which looks % like a space when not broken at, and as an \texttt{3em plus 1fil} % space when broken at. It also have to survive its use in % |\multchanges|. % \changes{1.32}{2000/02/22}{Command added. (LH)} % \changes{1.38}{2000/06/05}{Modified finite penalty. (LH)} % \begin{macrocode} \DeclareRobustCommand\flushleftspace{% \nobreak \hskip 3em\@plus 1fil% \penalty\@m \hskip -3em\@plus -1fil\ % } % \end{macrocode} % \end{macro} % % \begin{macro}{\labelednumber} % This \package{xdoc} macro is redefined to put a ``filbreak'' % space before every page number labelled with a macro name. % \changes{2.16}{2003/03/29}{Redefinition added. (LH)} % \begin{macrocode} \renewcommand*\labelednumber[2]{% \hskip -1em\@plus -8em% \vadjust{}\hskip 1em\@plus 8em% #2\nolinebreak[2] (#1)% } % \end{macrocode} % \end{macro} % % \begin{environment}{theglossary} % \begin{macrocode} % \ifhave@multicol % \renewenvironment{theglossary}{% % \begin{multicols}\c@GlossaryColumns % [\glossary@prologue][\GlossaryMin]% % \GlossaryParms \def\item{\@idxitem v\,}\ignorespaces}% % {\end{multicols}} % \else % \renewenvironment{theglossary}{% % \@restonecoltrue\if@twocolumn\@restonecolfalse\fi % \columnseprule \z@ \columnsep 35\p@ % \twocolumn[\glossary@prologue]% % \GlossaryParms \def\item{\@idxitem v\,}\ignorespaces} % {\if@restonecol\onecolumn\else\clearpage\fi} % \fi % \end{macrocode} % % If we want to use the glossary for some other information as well % (here I am thinking primarily on collecting |\missing| notices) then % perhaps we should insert the |v\,| in |\changes| instead. I would % guess the 64 character limit isn't at all as usual as it was when % the doc package documentation was written. % % \begin{macrocode} % \renewenvironment{theglossary}{% % % \penalty\z@\vskip\GlossaryMin\@plus\z@\@minus\GlossaryMin % % \penalty\z@\vskip-\GlossaryMin\@plus\z@\@minus-\GlossaryMin % \glossary@prologue % \GlossaryParms \let\item\@idxitem \ignorespaces % }{\par\bigskip} % \end{macrocode} % On second thoughts, the changes should be printed in one column. % They're usually very hard to linebreak in narrow columns. % \end{environment} % % \begin{macro}{\firstsubsubitem} % The idea with |\firstsubsubitem| is that it should be like |\efill| % |\subsubitem| if the paragraph is ended by a |\subsubitem| and like % \verb*"\ " if it isn't. This is achieved by grabbing the paragraph % into a macro and then prepend some suitable material to it when % typesetting. % \changes{1.36}{2000/04/10}{Grabbing paragraph as list of tokens, % rather than typeset text. (LH)} % \begin{macrocode} % \newcommand\firstsubsubitem{% % \begingroup % \let\par\@fssi@par % \let\subsubitem\@fssi@subsubitem % \protected@edef\@tempa{\iffalse}\fi % } % \end{macrocode} % \begin{macrocode} % \def\@fssi@subsubitem{% % \iffalse{\fi}% % \nobreak\hfill\vadjust{\nobreak}% % \penalty-\@M\vadjust{\penalty\@m}\nobreak\hskip -5pt\relax % \@tempa % \endgroup % \subsubitem % } % \end{macrocode} % \multchanges{\cs{@fssi@par}}{2000/06/05}{1.38}{Replaced simple space % by a more complicated sequence of penalties, vadjusts, and glue, % to make it more like \cs{flushleftspace}. (LH)} % \begin{macrocode} % \def\@fssi@par{% % \iffalse{\fi}% % \nobreak \hskip \z@ \@plus 0.4\linewidth % \vadjust{\nobreak}% % \penalty500\hskip \z@ \@plus -0.4\linewidth\hskip 5pt\relax % \penalty\z@\ \vadjust{\penalty\@m}% % \nobreak\hskip -5pt\relax % \@tempa % \endgroup % \par % } % \end{macrocode} % \end{macro} % \begin{macro}{\GlossaryParms} % \begin{macrocode} % \def\GlossaryParms{% % \parindent \z@ % \columnsep 15pt % \parskip 0pt plus 1pt % \rightskip 15pt plus 15pt % \mathsurround \z@ % \parfillskip=-\rightskip % \pretolerance=\tolerance % \small % \def\@idxitem{\par\hangindent 30pt v\,}% % \def\subitem{\par\hangindent 30pt\hspace*{15pt}}% % \def\subsubitem{\par\hangindent 30pt\hspace*{25pt}}% % \def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}% % } % \end{macrocode} % \end{macro} % % \begin{instance}{docindex}{changes} % \changes{2.10}{2001/02/27}{Redefining it. (LH)} % \changes{2.12}{2001/03/25}{Modified in the same way as the % \package{docindex} default was with v\,1.00. (LH)} % \changes{2.15}{2003/02/19}{Rewrote this redefinition. Something % was wrong with the old one, but it seems to have worked to % start again from the definition in \package{docindex}. (LH)} % \changes{2.16}{2003/03/29}{Added an insertion of `\texttt{v}\cs{,}' % to the version number headings. The way it is done is however a % hack; I should define a separate instance explicitly instead. % (LH)} % % Typesetting the list of changes is annoyingly slow. It should be % examined what takes all that time, but I suspect it is the % paragraph breaking (the parameters involved are rather absurd). I % suspect that in particular the |\multchanges| complicates things % more than they really need to. --- LH, 2004/12/15. % \begin{macrocode} \setcounter{GlossaryColumns}{1} \@namedef{TP@I{}{docindex}{changes}}#1#2{% \begingroup \def\DI@indexitem@i##1##2##3##4{% \UseInstance{indexitem}{fixed1}{##1}{##2}{v\,##3}{##4}% }% \@letinstance\DI@indexitem@ii{indexitem}{fixed-r2a-nocomma}% \@letinstance\DI@indexitem@iii{indexitem}{aloneaccept3}% \columnsep=10pt% \parskip=0pt plus 1pt% \def\DI@letter@skip{\z@skip}% \let\DI@letter@format\@gobble \def\+{-}% \IfFileExists{\jobname.gls}{% \ifnum \c@GlossaryColumns>\@ne \begin{multicols}{\c@GlossaryColumns}[#1][\GlossaryMin]% \else \enough@room{\GlossaryMin}% #1\par \addvspace\multicolsep \fi \small \makeatletter \hbadness=\@M \hfuzz=\maxdimen \pretolerance=\m@ne \tolerance=9999% \emergencystretch=5em \@nobreakfalse \DI@ind@setup \input{\jobname.gls}% \DI@item@nojoin \ifnum \c@GlossaryColumns>\@ne \end{multicols}% \else \enough@room\postmulticols \addvspace\multicolsep \fi \normalsize #2\par }{\typeout{No file \jobname.gls.}} \endgroup } % \@namedef{TP@I{}{docindex}{changes}}#1#2{% % \begingroup % \@letinstance\DI@indexitem@i{indexitem}{fixed1}% % \@letinstance\DI@indexitem@ii{indexitem}{fixed-r2a-nocomma}% % \@letinstance\DI@indexitem@iii{indexitem}{aloneaccept3}% % \columnsep=10pt% % \parskip=0pt plus 1pt% % \def\DI@letter@skip{\z@skip}% % \let\DI@letter@format\@gobble % % \ifnum \c@GlossaryColumns>\@ne % % \begin{multicols}{\c@GlossaryColumns}[#1][\GlossaryMin]% % % \else % \enough@room{\GlossaryMin}% % #1\par % \addvspace\multicolsep % % \fi % \small % \emergencystretch=5em % \@nobreakfalse % \DI@ind@setup % \@input@{\jobname.gls}% % \DI@item@nojoin % % \ifnum \c@GlossaryColumns>\@ne % % \end{multicols}% % % \else % \enough@room\postmulticols % \addvspace\multicolsep % % \fi % \normalsize #2\par % \endgroup % } % \end{macrocode} % \end{instance} % % % % \section{Hack for removing ``Marginpar moved'' warning messages} % % Check if the definition matches the known. To be on the safe % side, only the known definition will be changed. % % \begin{macrocode} \def\@tempa{\@next\@marbox\@currlist{\@cons\@freelist\@marbox \@cons\@freelist\@currbox}\@latexbug\@tempcnta\@ne \if@twocolumn \if@firstcolumn \@tempcnta\m@ne \fi \else \if@mparswitch \ifodd\c@page \else\@tempcnta\m@ne \fi \fi \if@reversemargin \@tempcnta -\@tempcnta \fi \fi \ifnum\@tempcnta <\z@ \global\setbox\@marbox\box\@currbox \fi \@tempdima\@mparbottom \advance\@tempdima -\@pageht \advance\@tempdima\ht\@marbox \ifdim\@tempdima >\z@ \@latex@warning@no@line {Marginpar on page \thepage\space moved}% \else \@tempdima\z@ \fi \global\@mparbottom\@pageht \global\advance\@mparbottom\@tempdima \global\advance\@mparbottom\dp\@marbox \global\advance\@mparbottom\marginparpush \advance\@tempdima -\ht\@marbox \global\setbox \@marbox \vbox {\vskip \@tempdima \box \@marbox}% \global \ht\@marbox \z@ \global \dp\@marbox \z@ \kern -\@pagedp \nointerlineskip \hb@xt@\columnwidth {\ifnum \@tempcnta >\z@ \hskip\columnwidth \hskip\marginparsep \else \hskip -\marginparsep \hskip -\marginparwidth \fi \box\@marbox \hss}% \nointerlineskip \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}} \ifx \@addmarginpar\@tempa % \end{macrocode} % It matched. % \begin{macrocode} \def\@addmarginpar{\@next\@marbox\@currlist{\@cons\@freelist\@marbox \@cons\@freelist\@currbox}\@latexbug\@tempcnta\@ne \if@twocolumn \if@firstcolumn \@tempcnta\m@ne \fi \else \if@mparswitch \ifodd\c@page \else\@tempcnta\m@ne \fi \fi \if@reversemargin \@tempcnta -\@tempcnta \fi \fi \ifnum\@tempcnta <\z@ \global\setbox\@marbox\box\@currbox \fi \@tempdima\@mparbottom \advance\@tempdima -\@pageht \advance\@tempdima\ht\@marbox \ifdim \@tempdima<\z@ \@tempdima\z@ \fi % Modification \global\@mparbottom\@pageht \global\advance\@mparbottom\@tempdima \global\advance\@mparbottom\dp\@marbox \global\advance\@mparbottom\marginparpush \advance\@tempdima -\ht\@marbox \global\setbox \@marbox \vbox {\vskip \@tempdima \box \@marbox}% \global \ht\@marbox \z@ \global \dp\@marbox \z@ \kern -\@pagedp \nointerlineskip \hb@xt@\columnwidth {\ifnum \@tempcnta >\z@ \hskip\columnwidth \hskip\marginparsep \else \hskip -\marginparsep \hskip -\marginparwidth \fi \box\@marbox \hss}% \nointerlineskip \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}} \else % \end{macrocode} % It didn't match. Inform the user of what is to come. % \begin{macrocode} \typeout{Expect a lot of ``Marginpar moved'' warnings.} \fi \let\@tempa=\relax % \end{macrocode} % % % \section{Things not to index} % % \begin{macrocode} \DoNotIndex{\def,\let,\else,\fi,\then,\x_cs,\x_relax} \DoNotIndex{\csname,\endcsname,\string,\the,\expandafter,\noexpand} \DoNotIndexBy{@@}\DoNotIndexBy{@}\DoNotIndexBy{_}\DoNotIndexBy{FD@} % \end{macrocode} % \endinput