\NeedsTeXFormat{LaTeX2e}

\newcommand*{\Title}{Overview}
\newcommand*{\CTANdir}{macros/latex/contrib/oberdiek/}
\newcommand*{\CTANroot}{ftp://ftp.ctan.org/tex-archive/}
\newcommand*{\Subject}{CTAN:\CTANdir}
\newcommand*{\Author}{Heiko Oberdiek}
\newcommand*{\Email}{oberdiek@uni-freiburg.de}
\newcommand*{\Date}{2007/01/24}

% Copyright (C) 2006 by
%    Heiko Oberdiek <oberdiek@uni-freiburg.de>
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3 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.3 or later is part of all distributions of
% LaTeX version 2003/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% This Current Maintainer of this work is Heiko Oberdiek.
%
% This work consists of the overview "oberdiek.pdf", its source
% "oberdiek.tex", and the installation script "oberdiek.ins"
% for the projects in CTAN:macros/latex/contrib/oberdiek/.
%
\documentclass[a4paper,12pt]{article}
\usepackage[
  ignorehead,
  top=1in,
]{geometry}
\usepackage{longtable}
\usepackage{color}
\usepackage[ngerman,english]{babel}

\definecolor{link}{rgb}{1,0,0}% red
\definecolor{file}{rgb}{0,0,1}% blue
\definecolor{url}{cmyk}{0.1,1,0,0.1}

\definecolor{file}{rgb}{1,0,0}% red
\definecolor{url}{rgb}{0,0,1}% blue
\definecolor{link}{rgb}{0,0.75,0}%

\usepackage[
  colorlinks,
]{hyperref}[2006/02/12]
\hypersetup{
  pdftitle={CTAN:\CTANdir},
  pdfsubject={Package Overview},
  pdfauthor={\Author\ <\Email>},
  bookmarksnumbered,
  bookmarksopen,
  bookmarksopenlevel=2,
  bookmarksdepth=2,
  filecolor=file,
  urlcolor=url,
  linkcolor=link,
}
\usepackage{hypdestopt}
\setcounter{tocdepth}{1}
\setcounter{secnumdepth}{1}

\title{%
  \href{\CTANroot\CTANdir}{CTAN:\CTANdir}%
}
\author{%
  \Author\\
  \textless
  \href{mailto:\Email}{\texttt{\Email}}%
  \textgreater
}
\date{\Date}

\providecommand*{\pdfTeX}{pdf\TeX}
\providecommand*{\VTeX}{V\TeX}
\newcommand*{\xpackage}[1]{\textsf{#1}}
\newcommand*{\xfile}[1]{\textsf{#1}}
\newcommand*{\xoption}[1]{\textsf{#1}}
\newcommand*{\cs}[1]{\texttt{\textbackslash#1}}
\newcommand*{\meta}[1]{%
  \ensuremath\langle
  \textit{#1}%
  \ensuremath\rangle
}

\makeatletter
\g@addto@macro\abstract{\noindent\ignorespaces}

\newcommand*{\tocinclude}[1]{%
  \setcounter{tocdepth}{3}%
  \begingroup
    \makeatletter
    \def\@prj{#1}%
    \let\contentsline\foreign@contentsline
    \input{../\@prj/\@prj.toc}%
  \endgroup
}
\def\foreign@contentsline#1#2#3#4{%
  \ifx\\#4\\%
    \csname l@#1\endcsname{#2}{#3}%
  \else
    \ifHy@linktocpage
      \csname l@#1\endcsname{{#2}}{%
        \hyper@linkfile{#3}{\@prj.pdf}{#4}%
      }%
    \else
      \csname l@#1\endcsname{%
        \hyper@linkfile{#2}{\@prj.pdf}{#4}%
      }{#3}%
    \fi
  \fi
}%

\newenvironment{overview}{%
  \setlength{\tabcolsep}{0.8\tabcolsep}%
  \setlength{\LTleft}{0pt}%
  \longtable{@{}llll@{}}
}{%
  \endlongtable
}
\newcommand*{\entry}[4]{%
  \href{file:#1.pdf}{%
    \bfseries\xpackage{#1}%
  }%
  & #2%
  & v#3%
  & \href{\CTANroot\CTANdir #1.pdf}{[pdf]} %
    \href{\CTANroot\CTANdir #1.dtx}{[dtx]}
  \\*%
  \hyperref[{#1}]{\small (contents)}%
  &
  \multicolumn{2}{l}{%
    #4%
  }%
  \\%
}
\newcommand*{\entrysep}{1.5ex}

\newcommand*{\pkgsectformat}[1]{%
  \texorpdfstring{%
    \textcolor{link}{The} %
    \xpackage{#1} %
    \textcolor{link}{package}%
  }{#1}%
}

\makeatother

\begin{document}
\maketitle

\section{Overview}
\begin{overview}
\entry{aliascnt}{2006/09/25}{1.2}{Alias counter}%
[\entrysep]
\entry{alphalph}{2006/05/30}{1.4}{Converting numbers to letters}%
[\entrysep]
\entry{attachfile2}{2006/08/16}{2.2}{attach files into PDF}%
[\entrysep]
\entry{auxhook}{2006/05/31}{1.0}{Hooks for auxiliary files}%
[\entrysep]
\entry{bmpsize}{2006/08/24}{1.0}{Extract size and resolution data from bitmap files}%
[\entrysep]
\entry{centernot}{2006/12/02}{1.0}{Centers the not symbol horizontally}%
[\entrysep]
\entry{chemarr}{2006/02/20}{1.2}{Chemical reaction arrows}%
[\entrysep]
\entry{classlist}{2006/02/20}{1.2}{Record loaded classes}%
[\entrysep]
\entry{colonequals}{2006/08/01}{1.0}{Colon equals symbols}%
[\entrysep]
\entry{dvipscol}{2006/02/20}{1.1}{Fix for dvips.def}%
[\entrysep]
\entry{embedfile}{2006/08/16}{1.0}{embed files into PDF}%
[\entrysep]
\entry{engord}{2006/02/20}{1.2}{Provides the ifpdf switch}%
[\entrysep]
\entry{epstopdf}{2006/08/26}{1.3}{Conversion with epstopdf on the fly}%
[\entrysep]
\entry{grffile}{2006/11/30}{1.2}{Extended file name support for graphics}%
[\entrysep]
\entry{holtxdoc}{2006/06/02}{0.7}{Private additional ltxdoc support}%
[\entrysep]
\entry{hypbmsec}{2006/02/20}{2.2}{Bookmarks in sectioning commands}%
[\entrysep]
\entry{hypcap}{2006/02/20}{1.5}{Adjusting anchors of captions}%
[\entrysep]
\entry{hypdestopt}{2006/06/01}{2.0}{Hyperref destination optimizer}%
[\entrysep]
\entry{hypdoc}{2006/06/02}{1.4}{Hyper extensions for doc.sty}%
[\entrysep]
\entry{ifdraft}{2006/02/20}{1.2}{Switch for option draft}%
[\entrysep]
\entry{ifpdf}{2006/02/20}{1.4}{Provides the ifpdf switch}%
[\entrysep]
\entry{ifvtex}{2007/01/10}{1.2}{Switches for detecting VTeX and its modes}%
[\entrysep]
\entry{inputenx}{2006/08/24}{1.0}{Enhanced input encoding handling}%
[\entrysep]
\entry{kvoptions}{2006/08/22}{2.4}{Connects package keyval with \LaTeX{} options}%
[\entrysep]
\entry{kvsetkeys}{2006/10/19}{1.1}{Key value parser with default handler support}%
[\entrysep]
\entry{makerobust}{2006/03/18}{1.0}{Making a macro robust}%
[\entrysep]
\entry{pagesel}{2006/03/07}{1.5}{Selecting shipout output pages}%
[\entrysep]
\entry{pdfcolfoot}{2007/01/08}{1.0}{pdfTeX's color stack for footnotes}%
[\entrysep]
\entry{pdfcolmk}{2007/01/01}{1.0}{PDFtex COLor MarK}%
[\entrysep]
\entry{pdfcrypt}{2006/02/20}{0.8}{Setting pdf encryption}%
[\entrysep]
\entry{pdflscape}{2006/04/24}{0.6}{Landscape pages in PDF}%
[\entrysep]
\entry{picture}{2006/08/26}{1.0}{Dimens for picture macros}%
[\entrysep]
\entry{pmboxdraw}{2006/05/03}{1.0}{Poor man's box drawing characters}%
[\entrysep]
\entry{refcount}{2006/02/20}{3.0}{Data extraction from references}%
[\entrysep]
\entry{setouterhbox}{2006/08/26}{1.4}{Set hbox in outer horizontal mode}%
[\entrysep]
\entry{settobox}{2006/02/20}{1.2}{Getting box sizes}%
[\entrysep]
\entry{stackrel}{2006/12/02}{1.0}{Adding subscript option to stackrel}%
[\entrysep]
\entry{tabularht}{2006/12/22}{2.3}{Tabular with height specification}%
[\entrysep]
\entry{tabularkv}{2006/02/20}{1.1}{Key value interface for tabular parameters}%
[\entrysep]
\entry{telprint}{2006/08/16}{1.7}{Formatting of German phone numbers}%
[\entrysep]
\entry{transparent}{2007/01/08}{1.0}{Using a pdfTeX's color stack for transparency}%
[\entrysep]
\entry{twoopt}{2006/02/20}{1.4}{Definitions with two optional arguments}%
[\entrysep]
\entry{zref}{2007/01/23}{1.4}{New reference scheme for \LaTeXe{}}%
\end{overview}

\section{Packages}
\hypersetup{bookmarksnumbered=false}

\subsection{\pkgsectformat{aliascnt}}
\label{aliascnt}
\begin{abstract}
Package \xpackage{aliascnt} introduces \emph{alias counters} that
share the same counter register and clear list.
\end{abstract}
\tocinclude{aliascnt}

\newpage
\subsection{\pkgsectformat{alphalph}}
\label{alphalph}
\begin{abstract}
The package provides the new expandable commands \cs{alphalph}
and \cs{AlphAlph}. They are like \cs{number}, but the expansion
consists of lowercase and uppercase letters respectively.
\end{abstract}
\tocinclude{alphalph}

\newpage
\subsection{\pkgsectformat{attachfile2}}
\label{attachfile2}
\begin{abstract}
This package can be used to attach files to a PDF document.
It is a further development of Scott Pakin's package
\xpackage{attachfile} for \pdfTeX. Apart from bug fixes,
package \xpackage{attachfile2} adds support for \xoption{dvips},
some new options, gets and writes meta information data about
the attached files.
\end{abstract}
\tocinclude{attachfile2}

\newpage
\subsection{\pkgsectformat{auxhook}}
\label{auxhook}
\begin{abstract}
Package \xpackage{auxhook} provides hooks for adding stuff at
the begin of \xfile{.aux} files.
\end{abstract}
\tocinclude{auxhook}

\newpage
\subsection{\pkgsectformat{bmpsize}}
\label{bmpsize}
\begin{abstract}
Package \xpackage{bmpsize} analyzes bitmap images to extract
size and resolution data. It adds this feature to the graphics package
that now do not need separate bounding box files for bitmap images.
Additionally the implementation for the inclusion of bitmap images
in some drivers of package \xpackage{graphicx} are rewritten to support
options \xoption{viewport}, \xoption{trim} and \xoption{clip}.
\end{abstract}
\tocinclude{bmpsize}

\newpage
\subsection{\pkgsectformat{centernot}}
\label{centernot}
\begin{abstract}
This package provides \cs{centernot} that prints the symbol
\cs{not} on the following argument. Unlike \cs{not} the symbol
is horizontally centered.
\end{abstract}
\tocinclude{centernot}

\newpage
\subsection{\pkgsectformat{chemarr}}
\label{chemarr}
\begin{abstract}
Very often chemists need a longer version
of reaction arrows (\cs{rightleftharpoons}) with
the possibility to put text above and below.
Analogous to \xpackage{amsmath}'s \cs{xrightarrow} and
\cs{xleftarrow} this package provides the macro
\cs{xrightleftharpoons}.
\end{abstract}
\tocinclude{chemarr}

\newpage
\subsection{\pkgsectformat{classlist}}
\label{classlist}
\begin{abstract}
This package records the loaded classes and stores
them in a list.
\end{abstract}
\tocinclude{classlist}

\newpage
\subsection{\pkgsectformat{colonequals}}
\label{colonequals}
\begin{abstract}
Package \xpackage{colonequals} defines poor man's symbols
for math relation symbols such as ``colon equals''.
The colon is centered around the horizontal math axis.
\end{abstract}
\tocinclude{colonequals}

\newpage
\subsection{\pkgsectformat{dvipscol}}
\label{dvipscol}
\begin{abstract}
Color support for dvips in \xfile{dvips.def} involves the
color stack of dvips. The package tries to remove unnecessary
uses of the stack to avoid the error ``out of coor stack space''.
\end{abstract}
\tocinclude{dvipscol}

\newpage
\subsection{\pkgsectformat{embedfile}}
\label{embedfile}
\begin{abstract}
This package embeds files to a PDF document.
Currently \pdfTeX\ >= 1.30 in PDF mode is supported only.
\end{abstract}
\tocinclude{embedfile}

\newpage
\subsection{\pkgsectformat{engord}}
\label{engord}
\begin{abstract}
The package generates the suffix of English ordinal numbers.
It can be used with plain and \LaTeX\ formats.
\end{abstract}
\tocinclude{engord}

\newpage
\subsection{\pkgsectformat{epstopdf}}
\label{epstopdf}
\begin{abstract}
This packages adds support of handling eps images
to package \xpackage{graphics} or \xpackage{graphicx}
with option \xoption{pdftex}. If an eps image is detected,
epstopdf is automatically called to convert it to pdf format.
\end{abstract}
\tocinclude{epstopdf}

\newpage
\subsection{\pkgsectformat{grffile}}
\label{grffile}
\begin{abstract}
The package extends the file name processing of package \xpackage{graphics}
to support a larger range of file names. For example, the file name
may contain several dots. Or in case of \pdfTeX\ in PDF mode the file name may
contain spaces.
\end{abstract}
\tocinclude{grffile}

\newpage
\subsection{\pkgsectformat{holtxdoc}}
\label{holtxdoc}
\begin{abstract}
The package is used for the documentation of my packages in
DTX format. It contains some private macros and setup for
my needs. Thus do not use it. I have separated the part
that may be useful for others in package \xpackage{hypdoc}.
\end{abstract}
\tocinclude{holtxdoc}

\newpage
\subsection{\pkgsectformat{hypbmsec}}
\label{hypbmsec}
\begin{abstract}
This package expands the syntax of the sectioning commands. If the
argument of the sectioning commands isn't usable as outline entry,
a replacement for the bookmarks can be given.
\end{abstract}
\tocinclude{hypbmsec}

\newpage
\subsection{\pkgsectformat{hypcap}}
\label{hypcap}
\begin{abstract}
This package tries a solution of the problem with
hyperref, that links to floats points below the
caption and not at the beginning of the float.
Therefore this package divides the task into two
part, the link setting with \cs{capstart} or
automatically at the beginning of a float and
the rest in the \cs{caption} command.
\end{abstract}
\tocinclude{hypcap}

\newpage
\subsection{\pkgsectformat{hypdestopt}}
\label{hypdestopt}
\begin{abstract}
Package \xpackage{hypdestopt} supports \xpackage{hyperref}'s
\xoption{pdftex} driver. It removes unnecessary destinations
and shortens the destination names or uses numbered destinations
to get smaller PDF files.
\end{abstract}
\tocinclude{hypdestopt}

\newpage
\subsection{\pkgsectformat{hypdoc}}
\label{hypdoc}
\begin{abstract}
This package adds hyper features to the package
\xpackage{doc} that is used in the documentation
system of \LaTeXe. Bookmarks are added and references
are linked as far as possible.
\end{abstract}
\tocinclude{hypdoc}

\newpage
\subsection{\pkgsectformat{ifdraft}}
\label{ifdraft}
\begin{abstract}
The package provides an interface for selecting code depending
on the options \xoption{draft} and \xoption{final}.
\end{abstract}
\tocinclude{ifdraft}

\newpage
\subsection{\pkgsectformat{ifpdf}}
\label{ifpdf}
\begin{abstract}
This package looks for pdfTeX in pdf mode and
implements and sets the switch \cs{ifpdf}.
The detection is based on \cs{pdfoutput} and
the package will not change this value.
It works with plain or LaTeX formats.
\end{abstract}
\tocinclude{ifpdf}

\newpage
\subsection{\pkgsectformat{ifvtex}}
\label{ifvtex}
\begin{abstract}
This package looks for \VTeX, implements
and sets the switches \cs{ifvtex}, \cs{ifvtex}\texttt{\meta{mode}},
\cs{ifvtexgex}. It works with plain or \LaTeX\ formats.
\end{abstract}
\tocinclude{ifvtex}

\newpage
\subsection{\pkgsectformat{inputenx}}
\label{inputenx}
\begin{abstract}
This package deals with input encodings. The first stage
is already available. It provides input encodings using
standard mappings and covers nearly all slots. Thus it
serves as more uptodate replacement for package \xpackage{inputenc}.
\end{abstract}
\tocinclude{inputenx}

\newpage
\subsection{\pkgsectformat{kvoptions}}
\label{kvoptions}
\begin{abstract}
This package is intended for package authors who want to
use options in key value format for their package options.
\end{abstract}
\tocinclude{kvoptions}

\newpage
\subsection{\pkgsectformat{kvsetkeys}}
\label{kvsetkeys}
\begin{abstract}
Package \xpackage{kvsetkeys} provides \cs{kvsetkeys}, a variant
of package \xpackage{keyval}'s \cs{setkeys}. It allows to specify
a handler that deals with unknown options. Active commas and equal
signs may be used (e.g. see \xpackage{babel}'s shorthands) and
only one level of curly braces is removed from the values.
\end{abstract}
\tocinclude{kvsetkeys}

\newpage
\subsection{\pkgsectformat{makerobust}}
\label{makerobust}
\begin{abstract}
Package \xpackage{makerobust} provides \cs{MakeRobustCommand}
that converts an existing macro to a robust one.
\end{abstract}
\tocinclude{makerobust}

\newpage
\subsection{\pkgsectformat{pagesel}}
\label{pagesel}
\begin{abstract}
Single pages or page areas can be selected for output.
\end{abstract}
\tocinclude{pagesel}

\newpage
\subsection{\pkgsectformat{pdfcolfoot}}
\label{pdfcolfoot}
\begin{abstract}
Since version 1.40 \pdfTeX\ supports several color stacks. This
package uses a separate color stack for footnotes that can break
across pages.
\end{abstract}
\tocinclude{pdfcolfoot}

\newpage
\subsection{\pkgsectformat{pdfcolmk}}
\label{pdfcolmk}
\begin{abstract}
This package tries a solution for the missing color
stack of \pdfTeX.
\end{abstract}
\tocinclude{pdfcolmk}

\newpage
\subsection{\pkgsectformat{pdfcrypt}}
\label{pdfcrypt}
\begin{abstract}
This package supports the setting of pdf encryption options
for \VTeX\ and some older versions of \pdfTeX.
\end{abstract}
\tocinclude{pdfcrypt}

\newpage
\subsection{\pkgsectformat{pdflscape}}
\label{pdflscape}
\begin{abstract}
Package \xpackage{pdflscape} adds PDF support to the
environment \texttt{landscape} of package \xpackage{lscape}
by setting the PDF page attribute \texttt{/Rotate}.
\end{abstract}
\tocinclude{pdflscape}

\newpage
\subsection{\pkgsectformat{picture}}
\label{picture}
\begin{abstract}
There are macro and environment arguments that expect numbers
that will internally be multiplicated with \cs{unitlength}.
This package extends the syntax of these arguments that
dimens with calculation support can be added for these arguments.
\end{abstract}
\tocinclude{picture}

\newpage
\subsection{\pkgsectformat{pmboxdraw}}
\label{pmboxdraw}
\begin{abstract}
Package \xpackage{pmboxdraw} declares box drawings characters of
old code pages, e.g. cp437. It uses rules instead of using a font.
\end{abstract}
\tocinclude{pmboxdraw}

\newpage
\subsection{\pkgsectformat{refcount}}
\label{refcount}
\begin{abstract}
References are not numbers, however they often store numerical
data such as section or page numbers. \cs{ref} or \cs{pageref}
cannot be used for counter assignments or calculations because
they are not expandable, generate warnings, or can even be links,
The package provides expandable macros to extract the data
from references. Packages \xpackage{hyperref}, \xpackage{nameref},
\xpackage{titleref}, and \xpackage{babel} are supported.
\end{abstract}
\tocinclude{refcount}

\newpage
\subsection{\pkgsectformat{setouterhbox}}
\label{setouterhbox}
\begin{abstract}
If math stuff is set in an \cs{hbox}, then TeX
performs some optimization and omits the implicite
penalties \cs{binoppenalty} and \cs{relpenalty}.
This packages tries to put stuff into an \cs{hbox}
without getting lost of those penalties.
\end{abstract}
\tocinclude{setouterhbox}

\newpage
\subsection{\pkgsectformat{settobox}}
\label{settobox}
\begin{abstract}
Commands are defined for getting box sizes similar
to \LaTeX's \cs{settowidth} commands.
\end{abstract}
\tocinclude{settobox}

\newpage
\subsection{\pkgsectformat{stackrel}}
\label{stackrel}
\begin{abstract}
This package adds an optional argument to \cs{stackrel} for
putting something below the relational symbol and defines
\cs{stackbin} for binary symbols.
\end{abstract}
\tocinclude{stackrel}

\newpage
\subsection{\pkgsectformat{tabularht}}
\label{tabularht}
\begin{abstract}
This package defines some environments that adds
a height specification to tabular and array.
\end{abstract}
\tocinclude{tabularht}

\newpage
\subsection{\pkgsectformat{tabularkv}}
\label{tabularkv}
\begin{abstract}
This package adds a key value interface for tabular
by the new environment \texttt{tabularkv}. Thus the
\TeX\ source code looks better by named parameters,
especially if package \xpackage{tabularht} is used.
\end{abstract}
\tocinclude{tabularkv}

\newpage
\subsection{\pkgsectformat{telprint}}
\label{telprint}
\begin{abstract}
Package \xpackage{telprint} provides \cs{telprint} for formatting
German phone numbers.
\end{abstract}
\tocinclude{telprint}

\newpage
\subsection{\pkgsectformat{transparent}}
\label{transparent}
\begin{abstract}
Since version 1.40 \pdfTeX\ supports several color stacks. This
package shows, how a separate color stack can be used for transparency,
a property besides color.
\end{abstract}
\tocinclude{transparent}

\newpage
\subsection{\pkgsectformat{twoopt}}
\label{twoopt}
\begin{abstract}
This package provides commands to define macros with two
optional arguments.
\end{abstract}
\tocinclude{twoopt}

\newpage
\subsection{\pkgsectformat{zref}}
\label{zref}
\begin{abstract}
Package \xpackage{zref} tries to get rid of the restriction
in \LaTeX's reference system that only two properties are
supported. The package implements an extensible referencing
system, where properties are handled in a more flexible way.
It offers an interface for macro programmers for the access
to the system and some applications that uses the new
reference scheme.
\end{abstract}
\tocinclude{zref}
\end{document}
