7

I created a new package and uploaded it to CTAN.org. Then, I install it with tlmgr install and it works and installs only my package. However, when I install, for example, beamer, all its dependencies get installed too. In my case, no dependencies are installed.

What am I doing wrong?

yegor256
  • 12,021

2 Answers2

10

To declare dependencies to a package you can, as Joseph said, mail the TeX Live maintainers and they will sort it out accordingly. Recently (mid-2020 or so), a new way of declaring dependencies was introduced: you upload, along with your package, a file called (exactly) DEPENDS.txt that will live in the top-level directory of your package, along with the README.

There are two types of dependencies you can declare: hard and soft. hard is when your package always needs the dependency, and soft is when the dependency is conditional somehow. For example, the DEPENDS.txt file from a package for math typesetting could look like:

hard amsfonts
soft unicode-math

when amsfonts is always needed and unicode-math only when using XeTeX or LuaTeX.

You can find the full specification of the DEPENDS.txt file in https://www.tug.org/texlive/pkgcontrib.html#deps.


Note that the package name is the CTAN package name, which may differ from the package that you load with \usepackage. For example, in a package I wrote I have DEPENDS.txt:

hard l3kernel

because the package does \usepackage{expl3}.

3

You are not doing anything wrong. Dependencies are listed in the TeX Live configuration files based on manual addition of the data - nothing is automatic. You are best emailing the TeX Live list with details of required dependencies and Karl et al. will likely add them.

Joseph Wright
  • 259,911
  • 34
  • 706
  • 1,036
  • 1
    there is some file one can add to a package to describe dependencies, but I have forgotten the syntax and the name ;-( – Ulrike Fischer May 26 '21 at 10:23
  • @UlrikeFischer Indeed - seems easier to just 'mail Karl' – Joseph Wright May 26 '21 at 10:25
  • 2
    @UlrikeFischer It's a file called DEPENDS.txt with lines hard <dependency> or soft <dependency> (for example I have hard l3kernel in a package that requires expl3). Here's the documentation: https://www.tug.org/texlive/pkgcontrib.html#deps – Phelype Oleinik May 26 '21 at 11:31
  • @PhelypeOleinik please, make it an answer, and I'll accept it – yegor256 May 26 '21 at 15:02