%%
%% This is file `intex.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% intex.dtx  (with options: `intex')
%%
%% This is a generated file.
%%
%% Copyright (C) 2005--2008 by Martin Thorsen Ranang <[email protected]>
%%
%% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.2 of this license
%% or (at your option) any later version.  The latest version of this
%% license is in:
%%
%%    http://www.latex-project.org/lppl.txt
%%
%% and version 1.2 or later is part of all distributions of LaTeX version
%% 1999/12/01 or later.
%%
\def\filename{intex}%
\ProvidesPackage{intex}[2008/10/13 v1.1
Support for concept, acronym, and proper-name typesetting and indexing]%
\newif\if@itx@index%
\@itx@indextrue%
\DeclareOption{noindex}{\@itx@indexfalse}%
\newif\if@itx@warn@undef%
\@itx@warn@undeftrue%
\DeclareOption{nowarnundef}{\@itx@warn@undeffalse}%
\newif\if@itx@margin@plain%
\newif\if@itx@margin@acronym%
\newif\if@itx@margin@person%
\@itx@margin@plaintrue%
\@itx@margin@acronymtrue%
\@itx@margin@persontrue%
\DeclareOption{nomarginplain}{\@itx@margin@plainfalse}%
\DeclareOption{nomarginacronym}{\@itx@margin@acronymfalse}%
\DeclareOption{nomarginperson}{\@itx@margin@personfalse}%
\ProcessOptions%
\if@itx@index%
 \RequirePackage{index}%
 \makeindex%
 \newindex{raw}{rix}{rid}{Index}%
\else%
 \def\@nearverbatim{\expandafter\strip@prefix\meaning}%
\fi%
\if@itx@margin@plain%
 \RequirePackage{marginnote}[2006/10/26]%
\fi%
\if@itx@margin@acronym%
 \RequirePackage{marginnote}[2006/10/26]%
\fi%
\if@itx@margin@person%
 \RequirePackage{marginnote}[2006/10/26]%
\fi%
\RequirePackage{acronym}[2008/05/28]%
\RequirePackage{ifthen}%
\newcommand*{\InTeX}{\textsl{In}\kern-.07em\TeX}%
\newcommand\itxplaindeffont[1]{\emph{#1}}%
\newcommand\itxplainfollowfont[1]{#1}%
\newcounter{itxpl}%
\newcommand\@itxbasemarginfont[1]{%
 \stepcounter{itxpl}%
 \ifthenelse{\isodd{\pageref{itxpl-\theitxpl}}}{%
   \raggedright\hspace{0pt}\footnotesize\textsf{#1}% odd
 }{%
   \raggedleft\hspace{0pt}\footnotesize\textsf{#1}% even
 }%
 \label{itxpl-\theitxpl}%
}%
\newcommand\itxplainmarginfont[1]{%
 \@itxbasemarginfont{#1}%
}%
\newcommand{\itxacronymdeffont}[1]{#1}%
\newcommand{\itxacronymdefshortfont}[1]{\emph{#1}}%
\newcommand{\itxacronymshortfont}[1]{#1}%
\newcommand{\itxacronymmarginfont}[1]{%
 \@itxbasemarginfont{#1}%
 %\raggedleft\hspace{0pt}\footnotesize\textsf{#1}%
}%
\newcommand{\itxpersondeffont}[1]{\emph{#1}}%
\newcommand{\itxpersonfirstfont}[1]{#1}%
\newcommand{\itxpersonlastfont}[1]{#1}%
\newcommand{\itxpersonmarginfont}[1]{%
 \@itxbasemarginfont{#1}%
 %\raggedleft\hspace{0pt}\footnotesize\textsf{#1}%
}%
\newcounter{co@serial}%
\newcounter{co@type}%
\newcommand*\itxundefcomment[1]{\emph{(undefined concept ``#1'')}}%
\long\def\@firstofthree#1#2#3{#1}%
\long\def\@secondofthree#1#2#3{#2}%
\def\ITX@reset#1{%
 \global\expandafter\let\csname itx@#1\endcsname\relax}%
\newcommand*\@itxmarginlabel[2]{%
 \hspace{0pt}%
 \ifcase#1%
 % \ldots plain concept, \ldots
   \if@itx@margin@plain%
     \marginpar{\itxplainmarginfont{\ITX@itxs{#1}{#2}}}%
     %\marginnote{\itxplainmarginfont{\ITX@itxs{#1}{#2}}}%
   \fi%
 \or%
 % \ldots an acronym, \ldots
   \if@itx@margin@acronym%
     \marginpar{\itxacronymmarginfont{\ITX@itxs{#1}{#2}}}%
   \fi%
 \or%
 % \ldots or a person's name.
   \if@itx@margin@person%
     \marginpar{\itxpersonmarginfont{\ITX@itxl{#1}{#2}}}%
   \fi%
 \fi%
}%
\newcommand*\ITX@used{@<>@<>@}%
\newcommand*\ITX@get[2]{%
 \ifx#1\relax%
 \else%
   \expandafter#2#1%
 \fi%
}%
\newcommand*\itxplainarea{\thesubparagraph:\thepage}%
\newcommand*\itxacronymarea{\thechapter}%
\newcommand*\itxpersonarea{\thesubsubsection}%
\newcommand*\@itxarea[1]{%
 \ifcase#1%
   {\itxplainarea}%
 \or%
   {\itxacronymarea}%
 \or%
   {\itxpersonarea}%
 \fi%
}%
\def\itx@last@pos0{}%
\def\itx@last@pos1{}%
\def\itx@last@pos2{}%
\newcommand*\ITX@itxs[2]{%
 \csname fnss@\number#2\endcsname%
}%
\newcommand*\ITX@itxl[2]{%
 \csname fnsl@\number#2\endcsname%
}%
\newcommand*{\itxs}[2]{%
 \texorpdfstring{\protect\@itxs{#1}{#2}}{#1}}%
\newcommand*{\@itxs}[2]{%
 \ifcase\number#1%
   \itxplainfollowfont{\ITX@itxs{#1}{#2}}%
 \or%
   \itxacronymshortfont{\ITX@itxs{#1}{#2}}%
 \or%
   \itxpersonlastfont{\ITX@itxl{#1}{#2}}%
 \fi%
}%
\newcommand*{\itxl}{\protect\@itxl}%
\newcommand*{\@itxl}[2]{%
 %\ITX@itxl{#1}{#2}%
 \ifcase\number#1%
   \itxplainfollowfont{\ITX@itxs{#1}{#2}}\nolinebreak %
 \or%
   \itxacronymdeffont{\ITX@itxl{#1}{#2}}%
 \or%
   \itxpersondeffont{%
     \itxpersonfirstfont{\ITX@itxs{#1}{#2}} %
     %\nolinebreak[3] %
     \itxpersonlastfont{\ITX@itxl{#1}{#2}}%
   }%
 \fi%
}%
\newcommand*{\itxf}[2]{%
 \texorpdfstring{\protect\@itxf{#1}{#2}}{\ITX@itxl{#1}{#2} (#1)}%
}%
\newcommand*{\@itxf}[2]{%
 \ifcase\number#1%
   \@itxmarginlabel{#1}{#2}%
   \itxplaindeffont{\ITX@itxs{#1}{#2}}\nolinebreak %
 \or%
   \itxacronymdeffont{%
     \ITX@itxl{#1}{#2} %
     %\nolinebreak[3] %
     \@itxmarginlabel{#1}{#2}%
     \itxacronymdefshortfont{%
       \itxacronymshortfont{(\ITX@itxs{#1}{#2})}}%
   }%
 \or%
   \itxpersondeffont{%
     \itxpersonfirstfont{%
       \ITX@itxs{#1}{#2}} %
     %\nolinebreak[3] %
     \@itxmarginlabel{#1}{#2}%
     \itxpersonlastfont{%
       \ITX@itxl{#1}{#2}%
     }%
   }%
 \fi%
 \expandafter\ifx\csname itx@#2\endcsname\ITX@used%
   %\relax%
 \else%
   \global\expandafter\let\csname itx@#2\endcsname\ITX@used%
   %\ITX@addtoclearlist{#2}% MTR
 \fi%
 %\ITX@logged{#2} MTR
}%
\newcommand*{\@itxrecordarea}[2]{%
 % Record this area:
 \edef\curr@pos{\@itxarea{#1}}%
 %\PackageWarning{InTeX}{Current position for type "#1" is "\curr@pos"}%
 % Remember the last area where this concept (second argument) was used.
 \edef\last@pos{\csname itx@last@pos#1@#2\endcsname}%
 \ifx\curr@pos\last@pos%
   % We're still in the same area.  Hence, we do nothing.
 \else%
   % The area has changed.
   \ITX@reset{#2}%
 \fi%
 \expandafter\xdef\csname itx@last@pos#1@#2\endcsname{\curr@pos}%
}%
\newcommand\@itx@init@nonbookmode{%
 \newcommand*{\@itxtypeset}[3]{% Article-mode.
   \ifx##3A%
     %\PackageWarning{InTeX}{Typesetting format is automatic}%
     \expandafter\ifx\csname itx@##2\endcsname\ITX@used%
       \itxs{##1}{##2}%
     \else%
       \itxf{##1}{##2}%
     \fi%
   \else%
     %\PackageWarning{InTeX}{Typesetting format = "##3"}%
     \ifx##3S\itxs{##1}{##2}\fi%
     \ifx##3L\itxl{##1}{##2}\fi%
     \ifx##3F\itxf{##1}{##2}\fi%
   \fi%
 }%
}%
\newcommand\@itx@init@bookmode{%
 \PackageInfo{InTeX}{Adjusting behavior to suite book/report document
   classes\@gobble}%
 \newcommand*{\@itxtypeset}[3]{% Book/report-mode.
   \ifx##3A%
     %\PackageWarning{InTeX}{Typesetting format is automatic}%
     \if@mainmatter%
       \expandafter\ifx\csname itx@##2\endcsname\ITX@used%
         \itxs{##1}{##2}%
       \else%
         \itxf{##1}{##2}%
       \fi%
     \else%
       \itxl{##1}{##2}%
     \fi%
   \else%
     %\PackageWarning{InTeX}{Typesetting format = "##3"}%
     \ifx##3S\itxs{##1}{##2}\fi%
     \ifx##3L\itxl{##1}{##2}\fi%
     \ifx##3F\itxf{##1}{##2}\fi%
   \fi%
 }%
}
\newif\if@itx@bookmode%
\@itx@bookmodetrue%
\@ifclassloaded{article}{%
 \PackageInfo{InTeX}{Adjusting behavior to suite the article document
   class\@gobble}%
 \@itx@init@nonbookmode%
 \@itx@bookmodefalse%
}{}%
\@ifclassloaded{beamer}{%
 \PackageInfo{InTeX}{Adjusting behavior to suite the beamer document
   class\@gobble}%
 \@itx@init@nonbookmode%
 \@itx@bookmodefalse%
 \renewcommand*\itxacronymarea{0}%
 \@itx@margin@plainfalse%
 \@itx@margin@acronymfalse%
 \@itx@margin@personfalse%
}{}%
\if@itx@bookmode%
 \@itx@init@bookmode%
\fi%
\newcommand*{\@itxplain}[3]{%
 \@itxrecordarea{#1}{#2}%
 \@itxtypeset{#1}{#2}{#3}%
}%
\newcommand*{\@itxalias}[2]{%
 \edef\@mainserial{\expandafter\@firstoftwo#2}%
 \edef\@equivserial{\expandafter\@secondoftwo#2}%
 %\@itxrecordarea{#1}{\@mainserial}%
 \@itxplain{#1}{\@equivserial}%
}%
\newcommand{\@itx@fakeindex}[1]{%
 \begingroup%
   \edef\@tempa{%
     \write\@auxout{%
       \string\@writefile{raw}{%
         \string\indexentry{#1}{\thepage}%
       }%
     }%
   }%
 \expandafter\endgroup\@tempa%
}%
\newcommand{\co}{\@itx}%
\newcommand{\coS}[1]{\@itx[S]{#1}}%
\newcommand{\coL}[1]{\@itx[L]{#1}}%
\newcommand{\coF}[1]{\@itx[F]{#1}}%
\DeclareRobustCommand*{\@itx}[2][A]{%
 \def\@tempa{#2}%
 \edef\@tempb{\@nearverbatim\@tempa}%
 \if@itx@index%
   \index[raw]{#2}%
 \else%
   \@itx@fakeindex{\@tempb}%
 \fi%
 \newif\iffound%
 \setcounter{co@type}{0}%
 \loop\ifnum\theco@type<3%
   \expandafter\ifx\csname fn\number\theco@type e@\@tempb\endcsname\relax%
     \expandafter\ifx\csname fn\number\theco@type @\@tempb\endcsname\relax%
       % \PackageWarning{InTeX}{Main AND alias reference `#2' occurred}%
       % The reference refers to both main _and_ alias entries.  Do
       % nothing, this will be resolved through the |else|-cases
       % immediately below.
     \else%
       %\PackageInfo{InTeX}{Main reference `#2' occurred}%
       \edef\co@id{\csname fn\number\theco@type @\@tempb\endcsname}%
       \@itxplain{\number\theco@type}{\co@id}{#1}%
       \foundtrue%
     \fi%
   \fi%
   \stepcounter{co@type}%
 \repeat%
 \iffound%
 \else%
   \PackageWarning{InTeX}{Reference `#2' to undefined concept}%
   \if@itx@warn@undef%
     \textbf{\itxundefcomment{#2}}%
   \else%
     #2%
   \fi%
 \fi%
}%
\newcommand*{\personused}[1]{%
 \expandafter\ifx\csname pnused@#1\endcsname\PN@used%
   \relax%
 \else%
   \global\expandafter\let\csname pnused@#1\endcsname\PN@used%
   \global\let\PN@populated\PN@used%
 \fi%
}%
\newcommand\@itxdefineforms[3]{%
 \expandafter\gdef\csname fnss@\number#1\endcsname{#2}%
 \expandafter\gdef\csname fnsl@\number#1\endcsname{#3}%
}%
\newcommand\@newentry[4]{%
 \def\@tempa{#2}%
 \edef\@tempb{\@nearverbatim\@tempa}%
 %
 \stepcounter{co@serial}%
 %\PackageWarning{init}{serial counter = \expandafter\theco@serial}%
 \expandafter\xdef\csname fn\number#1@\@tempb\endcsname{%
   \number\theco@serial}%
 %\PackageWarning{init}{Def: \meaning\csname fn\number#1@\@tempb\endcsname}%
 \@itxdefineforms{\theco@serial}{#3}{#4}%
}%
\newcommand*\newconcept[3]{%
 \@newentry{0}{#1}{#2}{#3}%
}%
\newcommand*\newacronym[3]{%
 \@newentry{1}{#1}{#2}{#3}%
}%
\newcommand*\newperson[3]{%
 \@newentry{2}{#1}{#2}{#3}%
}%
\newcommand*\@newentryequiv[5]{%
 \newif\iffound%
 \def\@tempa{#2}%
 \edef\@tempb{\@nearverbatim\@tempa}%
 \expandafter\ifx\csname fn\number#1 @\@tempb\endcsname\relax%
 \else%
   \foundtrue%
   \edef\co@id{\csname fn\number#1@\@tempb\endcsname}%
   %\PackageWarning{init}{Found `\@tempb' (type=\number#1, serial=\co@id)}%
   \stepcounter{co@serial}%
   \@itxdefineforms{\theco@serial}{#3}{#5}%
   \def\@tempa{#4}%
   \edef\@tempb{\@nearverbatim\@tempa}%
   \expandafter\xdef\csname fn\number#1 e@\@tempb\endcsname{%
     {\co@id}{\theco@serial}}%
 \fi%
 \iffound%
 \else%
   %\PackageWarning{InTeX}{Can't find `#2' for sub-concept `#3'}%
 \fi%
}%
\newcommand*\newconceptequiv[4]{%
 \@newentryequiv{0}{#1}{#2}{#3}{#4}%
}%
\newcommand*\newacronymequiv[4]{%
 \@newentryequiv{1}{#1}{#2}{#3}{#4}%
}%
\newcommand*\newpersonequiv[4]{%
 \@newentryequiv{2}{#1}{#2}{#3}{#4}%
}%
\AtBeginDocument{\@input{\jobname.ito}}%
\endinput%
\endinput
%%
%% End of file `intex.sty'.