4.12 Indexes

  4.12.1 Article, Report, Book
  4.12.2 index
  4.12.3 theindex
  4.12.4 splitindex

4.12.1 Article, Report, Book

<..index entry..>
 \Configure{theindex}
    {\let\end:theidx=\empty \HCode{<indexterm>}}
    {\HCode{</indexterm>}}
    {<.primary index.>%
     \def\end:cur{<.end primary index.>\let\end:cur=\empty}%
     \DB:index
    }
     {\end:cur \let\chain:subitem=\empty}
    {\chain:subitem <.secondary index.>%
     \def\end:cur{<.end secondary index.>\let\end:cur=\empty}%
    }
     {\end:cur \def\chain:subitem{%
      <.new index entry.><.primary index.><.end primary index.>}%
      \let\chain:subsubitem=\empty
    }
    {\chain:subsubitem<.tertiary index.>%
     \def\end:cur{<.end tertiary index.>\let\end:cur=\empty}%
    }
    {\end:cur \def\chain:subsubitem{%
        <.new index entry.><.primary index.><.end primary index.>%
        <.secondary index.><.end secondary index.>}%
    }
    {}
-_-_-

<..article, report, book..>+
 \def\DB:index#1\indNum#2{%
    \ifnum  #2=\index:N
       \let\DB:index=\relax  #1\long\def\item##1\end{\end}%
    \else \expandafter\gob:item \fi
 }
 \long\def\gob:item#1\item{\DB:index}
 \let\indNum=\:gobble
-_-_-

<..article, report, book..>+
 \HAssign\index:N = 0
 \def\comNum#1{\tmp:cnt=}
 \let\db:index=\index
 \def\index{%
    \immediate\openin15=\jobname.ind
    \ifeof15 \else
       \immediate\closein15
       \bgroup
        \def\gobble##1{}%
        \gHAdvance\index:N by 1
        <.index entry.>%
        \leavevmode \let\par=\empty
        \input{\jobname.ind}%
       \egroup
     \fi
     \db:index}
-_-_-

4.12.2 index

<..configure docbook latex..>+
 \Configure{idxmake}{\Beforeentry}
-_-_-

<..ams art,proc,book..>
 <.index throug printindex.>
-_-_-

<..configure docbook amsmidx..>
 <.index throug printindex.>
-_-_-

<..configure docbook makeidx..>
 <.index throug printindex.>
-_-_-

<..configure docbook index..>
 <.index throug printindex.>
-_-_-

<..configure docbook multind..>
 <.index throug printindex.>
-_-_-

<..index throug printindex..>
 \def\:temp{\HCode{<indexterm role="printindex" />}}
 \HLet\printindex\:temp
 \expandafter\ifx \csname db:index\endcsname\realx
    \let\db:index=\index
 \fi
 \def\index{\bgroup
     \HRestore\printindex
     \def\gobble##1{}%
     \gHAdvance\index:N by 1
     <.index entry.>%
     \leavevmode \let\par=\empty
     \printindex
    \egroup \db:index}
 \def\comNum#1{\tmp:cnt=}
 \def\brange#1{\HCode{<remark role="start">}\Link{to-#1}{from-#1}\EndLink
    \HCode{</remark>}}
 \def\erange#1{\HCode{<remark role="to">}\Link{from-#1}{to-#1}\EndLink
    \HCode{</remark>}}
-_-_-

 
 \def\comNum{%
    \def\:tempa{%
       \ifx ,\:temp        \def\:tempa####1{\tmp:cnt=}%
       \else \ifx {\:temp  \def\:tempa####1{\tmp:cnt=####1}%
             \iffalse }\fi
       \else               \def\:tempa{\tmp:cnt=}%
       \fi\fi \:tempa}%
    \futurelet\:temp\:tempa}

4.12.3 theindex

<..article, report, book..>+
 \Configure{theindex}
     {\special{t4ht@[}}
     {\special{t4ht@]}}
     {}{}{}{}{}{}{}
-_-_-

<..configure docbook makeidx..>+
 \Configure{see}
   {\csname end:cur\endcsname \HCode{<seealso role="see">}}
   {\HCode{</seealso>}%
    \futurelet\:next\remove:comma}
 \def\remove:comma{\ifx ,\:next \expandafter\:gobble\fi}
-_-_-

<..primary index..>
 \HCode{<primary>}%
-_-_-

<..end primary index..>
 \HCode{</primary>}\hfil\break
-_-_-

<..secondary index..>
 \HCode{<secondary>}%
-_-_-

<..end secondary index..>
 \HCode{</secondary>}\hfil\break
-_-_-

<..tertiary index..>
 \HCode{<tertiary>}%
-_-_-

<..end tertiary index..>
 \HCode{</tertiary>}\hfil\break
-_-_-

4.12.4 splitindex

<..configure docbook splitidx..>
 \let\db:sindex=\sindex
 \def\:sindex{\bgroup
     \HRestore\printindex
     \def\gobble##1{}%
     \gHAdvance\index:N by 1
     \leavevmode \let\par=\empty
     \edef\:temp{\LikeRef{printindex}}\expandafter\printindex\:temp
    \egroup \db:sindex}
-_-_-

<..configure docbook splitidx..>+
 \def\:temp{%
   \def\:tempa{%
      \HCode{<indexterm role="printindex\ifx *\:temp -star\fi" />}%
      \ifx *\:temp \Tag{printindex}{*}\expandafter\:gobble\fi
   }%
   \futurelet\:temp\:tempa
 }
 \HLet\printindex\:temp
-_-_-

<..configure docbook splitidx..>+
 \def\sindex{%
    \def\:tempa{%
       \ifx [\:temp
             \def\:temp[####1]{\def\ind:ext{####1}\:sindex[####1]}%
             \expandafter\:temp
       \else \expandafter\:sindex \fi
    }%
    \futurelet\:temp\:tempa
 }
 \let\o:@@printindex:=\@@printindex
 \def\@@printindex[#1][#2]{%
    \def\:temp{#1}%
    \ifx \:temp\ind:ext \o:@@printindex:[#1][#2]\fi}
-_-_-