Looking on CTAN, most packages style files are lowercase only. However not all, there are some examples of uppercase file names:

AnonymousPro.sty in https://www.ctan.org/tex-archive/fonts/anonymouspro/tex

GS1 in https://ctan.org/tex-archive/macros/latex/contrib/gs1

Is there any specific reason or just the old days when we only had 8 character names and Windows didn‘t care for case sensitivity?

1 Answer 1


Mostly it is historical relating to case insensitive file systems and ISO format CDs, but even now some systems (eg Windows) are basically case insensitive with just a preferred case alias layered over the underlying file name.

eg if I try to copy a file:

$ cp aaa.txt AAA.TXT
cp: 'aaa.txt' and 'AAA.TXT' are the same file

(cygwin bash on the windows ntfs filesystem)

So it would be a bad idea to have files in the input tree that just differed by case, and the simplest way to ensure that is to use lowercase everywhere and check the filenames are unique as written

That said, neither ctan nor texlive enforce this and some packages do have mixed case names.

  • I think CTAN does require it: "Moreover, package ids have to be all lowercase, and they must not start with a digit." (ctan.org/file/help/ctan/CTAN-upload-addendum). And, if my memory does not fail me, some packages got renamed somewhat recently for this.
    – gusbrs
    Dec 13, 2021 at 16:01
  • @gusbrs perhaps for new submissions but $ ls /usr/local/texlive/2021/texmf-dist/tex/latex/*/*[[:upper:]]*.sty | wc -l 259 Dec 13, 2021 at 16:05
  • Indeed! But I guess there are more .stys than package ids: $ls /usr/local/texlive/2021/texmf-dist/tex/latex/[[:upper:]]* | wc -l 1.
    – gusbrs
    Dec 13, 2021 at 16:08
  • The above was not correct. $ find /usr/local/texlive/2021/texmf-dist/tex/latex -maxdepth 1 -type d -name "*[[:upper:]]*" | wc -l yields 3, but still.
    – gusbrs
    Dec 13, 2021 at 16:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .