Comprehensive TeX Archive Network


How can I up­load a pack­age?

A pack­age can be up­loaded to CTAN on the up­load form. On this up­load form you are re­quested to fill in some in­for­ma­tion about you and the pack­age. They are re­quired for the cat­e­go­riza­tion and pro­cess­ing on CTAN. The pack­age it­self is up­loaded in an archive file which con­tains all files be­long­ing to the pack­age.

The fol­low­ing list con­tains some rules how to pre­pare your pack­age for CTAN.

  • Please pack­age your con­tri­bu­tion as a ZIP archive with ex­ten­sion .zip or a gzip-ed tar archive with the ex­ten­sion .tar.gz or .tgz.

    The CTAN team has de­cided that pack­ages on the archive shall re­main in a brows­ing-friendly lay­out, i.e. the best for­mat is to have all the files in­side a di­rec­tory, as il­lus­trated here.


    Here my-pack­age should be the CTAN name of your pack­age.

  • Very large pack­ages – such as mod­ern font dis­tri­bu­tions – are im­proved by a sin­gle ex­tra layer of di­rec­to­ries:


    and so on.

  • In par­al­lel to the main di­rec­tory tree, CTAN of­fers the install/ sub­tree for TDS-struc­tured ZIP files. Such a file will only be ac­cepted as an ad­di­tion to your up­load, not as a re­place­ment.

    This file is not nec­es­sary at all for sim­ple pack­ages. Thus it should be omit­ted for in­stance for nor­mal pack­ages. This file might be re­quired when the pack­age is com­plex.

    If you want to in­clude such a file in your up­load, please check the TDS guide­lines. Call this file my-package.tds.zip and in­clude it at the top-level of your up­load (along­side the my-package di­rec­tory).

  • Even if what you are send­ing us a re­vi­sion of an ex­ist­ing pack­age, please send all of the files, changed or not. We have tools to han­dle whole up­loads so this leads to the fewest er­rors on our part.

  • CTAN holds thou­sands of pack­ages, and many more thou­sand files. Our vis­i­tors will be helped, and your work will get the recog­ni­tion it de­serves, only if peo­ple can find your pack­age.

    • In­clude in your up­load a plain text file with in­for­ma­tion that would be use­ful to a CTAN vis­i­tor con­sid­er­ing us­ing your pack­age. This in­for­ma­tion in­cludes a brief de­scrip­tion and li­cense in­for­ma­tion, as well as whether your ma­te­rial re­quires spe­cial fonts or only runs on one kind of plat­form. Name this file README.md, or sim­ply README be­cause then it will show up on the CTAN por­tal promi­nently ren­dered when that user is brows­ing your di­rec­tory. This file should be stored with the en­cod­ing UTF-8.

      For an in­ter­na­tional au­di­ence it would be best to write the README file in English. You can pro­vide an­other README file in an­other lan­guage if you want to.

      In­clude in the README.md or README file a state­ment giv­ing your choice of li­cense. That way peo­ple who are brows­ing can see whether your ma­te­rial is avail­able to them (e.g., if your li­cense choice ex­cludes com­mer­cial use). Some­thing like: This ma­te­rial is sub­ject to the Project Public Li­cense 1.3c.

    • Al­most all pack­ages should have doc­u­men­ta­tion be­yond the README.md or README. It should be in PDF for­mat, since this is what our web vis­i­tors can read; in par­tic­u­lar, PostScript and DVI for­mats are not ac­cept­able. In­clude its source in your up­load since free dis­tri­bu­tions such as  Live can­not use the doc­u­ment with­out source.

      For many pack­age au­thors, pro­duc­ing the doc­u­men­ta­tion is a mat­ter of run­ning your .dtx file through :

        latex <docname>.dtx

  • The pack­age should not con­tain files which can be gen­er­ated from other files in your pack­age – be­side the doc­u­men­ta­tion. Thus the in­ter­me­di­ary files pro­duced by or must not be con­tained.

    For pack­ages which con­tain a dtx file the files which are gen­er­ated from this dtx file must not be con­tained.

While you are prepar­ing a pack­age the up­load­ing to CTAN you might find a sup­port­ing pack­age use­ful. See the topic ctan for such pack­ages.

Some ad­di­tional prac­ti­cal tips can be found in the Ad­di­tional In­for­ma­tion for CTAN Upload­ers. You may also find help­ful the in­for­ma­tion at http://tug.org/texlive/pkg­con­trib.html.

Guest Book Sitemap Contact Contact Author