How can I contribute to CTAN?
Great! The process is simple. Everything is explained on the upload page (see below for the actual links). My own guidelines are listed below.
Make sure the material is licensed appropriately. Most LaTeX package are licensed under the LPPL, but you can also use the GPL or one of the Apache/BSD/MIT licenses if you wish.
Make sure that you include the sources to any pre-built files (where appropriate: files such as images do not have 'sources'). PDFs without source files are not permitted in TeX Live. The usual system for LaTeX packages is to use a DTX file as a combined source/documentation file that can be typeset to PDF, or extracted to a STY or CLS file using an INS file -- this is known as the ‘docstrip’ system. See Scott Pakin's dtxtut for good guidelines here.
If you're not using docstrip for your package source, make sure the material is documented; a package without PDF documentation will probably not be accepted these days. Remember to include a readme file (called
README
, i.e., without an extension) that briefly explains the package.Check the naming of things. The names of your files shouldn't conflict with anything on CTAN or anything in TeX Live/MiKTeX. The more specific the name can be, the better. E.g., don't call a conference class anything like
conference.cls
; refer explicitly to which conference it is to be used for, such asactive-conf-2006.cls
.
Having done that, take your files and bundle them up in a ZIP or TAR.BZ (or etc.) archive and upload it.
I see Will has answered this, but I'm going to give the same information in a slightly different form!
The upload page at http://www.ctan.org/upload contains some advice, as well as an upload form. You only have to upload the files themselves, but it is usual to include some kind of README file and also probably some documentation. If you have a package called 'mypkg', you might therefore want to upload:
- mypkg.sty, the package itself
- mypkg.pdf, the documentation
- mypkg.tex, the source for the documentation (needed to get the documentation into TeX Live)
- README, the readme file
All of that needs to go into a single zip file, which you then upload.
A lot of LaTeX packages are written in 'dtx' format, which puts the source for the documentation and the code into one file. This is also used to document the code itself. If you use dtx format, then you'd upload
- mypkg.dtx, the source file
- mypkg.ins, used to unpack the dtx file
- mypkg.pdf, the documentation
- README, the readme file
Again, everything goes into one zip file and gets uploaded using the form on the CTAN website.
There are additional things that you can upload, but to begin with I think this is where to start.