CTAN Comprehensive TeX Archive Network

Directory support/classpack


(classpack package)


This is the README.md file for the classpack package v1.19 (2020-05-19) generated by ClassPack v.1.19 (2020-05-19) on 20 May 2020 at 14:32:36


document classes and packages are conventionally created, maintained, and distributed in Doc (.dtx) format using the ltxdoc class, which provides for interleaved code and documentation (“literate programming”). However, the accurate construction of these files is technically challenging, and editing them is tedious and error-prone.

ClassPack allows a developer to create a DocBook5 XML document for a class or package, containing the documentation and annotated code, and it provides XSLT3 scripts to generate the .dtx, .ins, and other files, which can be combined into a zip file suitable for submission to CTAN.

This package classpack contains the small typographic adjustments and utilities needed to re-typeset the documentation of classes and packages developed using classpack-dev. It is not used for any other purpose and is not required for using any other class or package, only for the documentation of ClassPack–developed classes and packages.

You do not need to install the upcoming development package classpack-dev unless you want to develop classes or packages by using ClassPack yourself.

ClassPack is a work-in-progress. A paper describing an earlier version was presented at the Balisage markup conference in Montréal (Flynn, 2013).

Automated installation

If this package is distributed from CTAN, it should be in a zip file which allows it to be installed automatically by the Live Manager (tlmgr) and similar automated installers.

If you are using automated package installation, no further action is required: the package will be installed the first time you use it in a document.

If you are using the Live Manager (tlmgr) program manually, you can install this package with the command:

$ tlmgr install classpack

TDS installation

This package is also available as a Directory System (TDS) zip file (.tds.zip). This is the standard directory layout for a modern installation which enables the package to be unzipped directly into your Personal Directory without the need to use tlmgr. If you haven’t yet created a Personal Directory, see below for details of what one is, and how to create it.

  • You can install this package on any TDS-compliant personal system
(laptop, desktop, workstation, table, smartphone, PDA, etc) by unzipping it straight into your Personal Directory. This will put all the files into the right places, so you can start using them immediately.
  • On a shared (multiuser) system like a server, the administrator can
unzip it into the $TEXMFLOCAL directory instead (see below), and run your directory-indexing program (eg texhash, mktexlsr, etc) so that everyone can use it.
  • If you are using an old non-TDS-compliant system, see below under Manual

Your Personal Directory

This is a directory (folder) where you should put all local manual modifications (updates, additions such as new or updated classes, packages, and fonts) that are not handled automatically by tlmgr. The name and location are fixed (for all practical purposes):

  • Apple Mac OS X
  • Unix and GNU/Linux
  • MS-Windows 95/XP/NT
  • MS-Windows 2007 and above

Create that folder now if it does not already exist. Put (or unzip) all additions to your system that are not handled by tlmgr into this directory, following exactly the subdirectory structure that is used in your main distribution (unzipping a TDS file does this for you). This is what enables to find stuff automatically.

If you are a Windows user running MiK

When you create the folder for your Personal Directory, you MUST add it to MiK ’s list of supported folders. Run the MiK Maintenance/Settings program, select the Roots tab, and add the folder. You only have to do this once.
Each time you add or remove software in your Personal Directory, you MUST then click on the Update FNDB button in the General tab of the MiK Maintenance/Settings program, otherwise MiK will not find them and nothing will work!

Unix (Mac and GNU/Linux) users do not need to (indeed, should not) run their filename database indexer program (mktexlsr or texhash) for files put into a personal directory.

Installation on shared systems

On multi-user systems (Unix-based), identify the shared local directory tree with the command

kpsewhich -expand-var '$TEXMFLOCAL'

This will give you the location of the shared texmf directory into which you must unzip these files.

Do not forget to run your local filename database indexer program (texhash or mktexlsr) after installation, otherwise the files will not be found by and nothing will work!

Manual installation (non-TDS systems)

To install this software manually, download and unzip the non-TDS zip file into a temporary directory and move the class and/or package files and other files to the proper locations where will find them on your system. This is referred to in some documentation as “the TEXINPUTS directory”, although it may be called something else on your system.

It is your responsibility to know where this location is. See the question in the FAQ at http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-wlcf for more information. If you do not know, or cannot find it, or do not have access to it, your system may be out of date and may need replacing.

Online systems and “last resort” systems

Some online systems use CTAN, so a package from there should be available on demand. For other online systems where you do not have access to the file system, unzip the non-TDS zip file into a temporary directory and upload the files to the online system. Follow their instructions for where to put them.

In an emergency, or as a last resort on unmanageable systems, it is possible simply to put the class and/or package files into your current working directory (the same folder as your .tex files).

While this may work, it is not supported, and may lead to other resources (packages, fonts, images etc) not being found.


Include the line shown below in the Preamble of your document; a \documentclass line should be at the top; a \usepackage command normally goes anywhere in the Preamble:


(similarly for other classes or packages if more than one is supplied with this package). Read the documentation for the options available, if any. The documentation is distributed as a PDF document in the zip file. You can also regenerate it by typesetting the classpack.dtx file with xelatex (and biber and makeindex) in the normal way.

Bugs and TODO

No outstanding reported bugs at the time of this version.

For TODO items, see the PDF documentation.


The following statement is included in the source code:

 Transformed from classpack.xml by ClassPack db2dtx.xsl
 version 1.19 (2020-05-19) on Wednesday 20 May 2020 at 14:32:36

 classpack.sty is copyright © 2012-2020 by Peter Flynn <peter@silmaril.ie>

 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:


 and version 1.3 or later is part of all distributions of
 LaTeX version 2005/12/01 or later.

 This work has the LPPL maintenance status ‘maintained’.
 The current maintainer of this work is Peter Flynn <peter@silmaril.ie>

 This work consists of the files classpack.dtx and classpack.ins,
 the derived file , 
 and any other ancillary files listed in the MANIFEST.

Download the contents of this package in one zip archive (162.6k).

classpack – XML mastering for classes and packages

The package provides an experiment in using XML (specifically DocBook 5) to mark up and maintain classes and packages. XSLT 2 styleheets generate the .dtx and .ins distribution files expected by end users.

Version1.19 2020-05-19
LicensesThe Project Public License 1.3
Copyright2012–2020 Peter Flynn
MaintainerPeter Flynn
Contained inTeX Live as classpack
MiKTeX as classpack
TopicsPackage development
Class support
Guest Book Sitemap Contact Contact Author