Help on CTAN
How can I upload a package?
A package can be uploaded to CTAN on the upload form. On this upload form you are requested to fill in some information about you and the package. They are required for the categorization and processing on CTAN. The package itself is uploaded in an archive file which contains all files belonging to the package.
The following list contains some rules how to prepare your package for CTAN.
-
Please package your contribution as a ZIP archive with extension
.zip
or a gzip-ed tar archive with the extension.tar.gz
or.tgz
.The CTAN team has decided that packages on the archive shall remain in a browsing-friendly layout, i.e. the best format is to have all the files inside a directory, as illustrated here.
my-package.zip: my-package/ README.md my-package.dtx my-package.ins my-package-doc.pdf
Here my-package should be the CTAN name of your package.
-
Very large packages – such as modern font distributions – are improved by a single extra layer of directories:
my-package.zip: my-package/ README.md doc/ my-package-doc.tex my-package-doc.pdf tex/ use-my-package.sty t1my-package.fd ... source/ my-package.sfd my-package-Italic.sfd ... ...
and so on.
-
In parallel to the main directory tree, CTAN offers the possibility to provide a TDS-structured ZIP file. Such a file will only be accepted as an addition to your upload, not as a replacement.
This file is not necessary at all for simple packages. Thus it should be omitted for instance for normal LaTeX packages. This file might be required when the package is complex.
If you want to include such a file in your upload, please check the TDS guidelines. Call this file
my-package.tds.zip
and include it at the top-level of your upload (alongside themy-package
directory).my-package.zip: my-package.tds.zip my-package/ README.md ...
-
Even if you are sending us a revision of an existing package, please send all of the files, changed or not. We have tools to handle whole uploads so this leads to the fewest errors on our part.
-
CTAN holds thousands of packages, and many more thousand files. Our visitors will be helped, and your work will get the recognition it deserves, only if people can find your package.
-
Include in your upload a plain text file with information that would be useful to a CTAN visitor considering using your package. This information includes a brief description and license information, as well as whether your material requires special fonts or only runs on one kind of platform. Name this file
README.md
, or simplyREADME
because then it will show up on the CTAN portal prominently rendered when that user is browsing your directory. This file should be stored with the encoding UTF-8.For an international audience it would be best to write the README file in English. You can provide another README file in another language if you want to.
Include in the
README.md
orREADME
file a statement giving your choice of license. That way people who are browsing can see whether your material is available to them (e.g., if your license choice excludes commercial use). Something like: This material is subject to the LaTeX Project Public License 1.3c. -
Almost all packages should have documentation beyond the
README.md
orREADME
. It should be in PDF format, since this is what our web visitors can read; in particular, PostScript and DVI formats are not acceptable. Include its source in your upload since free distributions such as TeX Live cannot use the document without source.For many LaTeX package authors, producing the documentation is a matter of running your
.dtx
file through LaTeX:latex <docname>.dtx
-
-
The package should
not contain files which can be generated from other files in your package – beside the documentation. Thus the intermediary files produced by TeX or LaTeX must not be contained.For LaTeX packages which contain a
dtx
file the files which are generated from thisdtx
file must not be contained.
While you are preparing a package the uploading to CTAN you might find a supporting package useful. See the topic ctan for such packages.
Some additional practical tips can be found in the Additional Information for CTAN Uploaders. You may also find helpful the information at https://tug.org/texlive/pkgcontrib.html.
Communication
- Where can I get help on TeX, LaTeX, and friends?
- Where can I report problems or request features for packages on CTAN?
- Where can I give feedback on the CTAN portal?
- Where can I request features for the portal?
Download
Packages
- Which readme file is displayed in the CTAN browser directly?
- Which markdown syntax is recognized for the readme files?
- Where can I preview readme files?
- Which teaser images for packages or topics are used?
- How should I reference packages on CTAN?
Contribute
- How can I upload a package?
- How can I see what has been uploaded to CTAN?
- How can I submit modifications to a package?
- How can I donate to CTAN?
Browsers
Skins
- How can I get rid of these HTMLified TeX logos?
- How can I get rid of those strange characters after cut and paste?
- How can I get rid of the varying appearance of the pages?