Today, I used the command tlmgr update --self && tlmgr update --all to update the package in texlive2021, and then I found the following output.

[  1/355] auto-remove: gatech-thesis ... done
[  2/355] auto-remove: IEEEtran ... done
[  3/355] auto-remove: Tabbing ... done
[  4/355] auto-remove: HA-prosper ... done
[  5/355] auto-remove: Type1fonts ... done
[  6/355] auto-remove: Asana-Math ... done
[  7/355] auto-remove: SIstyle ... done
[  8/355] auto-remove: SIunits ... done
[  9/355] auto-remove: MemoirChapStyles ... done
[ 10/355] auto-remove: GS1 ... done
[ 11/355] auto-remove: IEEEconf ... done
[ 12/355] auto-remove: ESIEEcv ... done
[ 13/355] auto-remove: kdpbook ... done
[ 14/355, ??:??/??:??] update: aalok [211k] (59300 -> 59602) ... done
[ 15/355, 00:03/02:29:35] update: acmart [3576k] (59294 -> 60372) ... done
[171/355, 11:45/23:20] update: orcidlink [176k] (58432 -> 59560) ... done
[290/355, 19:21/20:00] auto-install: ieeeconf (59665) [188k] ... done
[291/355, 19:22/20:01] auto-install: ieeetran (59672) [564k] ... done

When I saw the second line, I was surprised why IEEEtran was removed. After the update, I found that IEEEtran was installed again. I found that some packages, such as IEEEtran, were deleted and then installed, and some packages, such as orcidlink, were directly updated.

  1. I wonder why some packages can be updated directly, while some packages can be deleted before installation.
  2. I only tested IEEEtran.cls file, and found that there was no change in the hash value before and after the update, indicating that there was no change in the file. Then why is the IEEEtran package removed and reinstalled?

In June the TeX live maintainers changed some TeX live package names from mixed case to all lowercase (at least sometimes in order to match CTAN names more closely).

Presumably the TeX live infrastructure is case-sensitive, so IEEEconf is a different name than ieeeconf. This means that the old package with capital letters in its name was removed first and then the new package with lower-case only name was installed. You haven't posted the full log, but this is definitely the case for IEEEconf/ieeeconf and IEEEtran/ieeetran. I expect this holds for most of the other removed packages as well: All but two in that list have at least one capital letter in their name.

I could not find an official announcement of the renaming campaign, but there is a reference to in https://tug.org/pipermail/tex-live/2021-June/047139.html and you can find a number of renames in https://tug.org/pipermail/tex-live-commits/2021-June/date.html (search for ->).

In most cases the renaming will not have coincided with the upload of an updated version from CTAN, so this is purely a packaging change, the contents of the packages will have remained the same.

It is worth keeping in mind that the TeX live package name (the one shown in the tlmgr log) need not coincide with the LaTeX package name (the one in \usepackage or for document classes in \documentclass). For example IEEEtran.cls is still called IEEEtran.cls and used with \documentclass{IEEEtran} after the update even if the TeX live package was renamed from IEEEtran to ieeetran. The TeX live change only affected the TeX live package name, not the names of files or their contents (and thus package names on the LaTeX side of things).

Usually most packages are updated via the normal update route. So I expect this effect is something you will not see that often.

  • Thank you very much for your answer, which solved my confusion. I didn't notice the difference in case before. I observed the path in my other computer that was not updated. It was indeed mixed in case, and it was lowercase after updating. Your answer is very professional, and it also makes me understand the difference between TeX live package and LaTeX package.
    – Clara
    Sep 25 at 2:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.