I want to improve some existing Makefiles in a project where everything is kept as tex files. However, running make pollute the directory with intermediate files and the current Makefile does not make a great job at compiling multiple times if needed.

I want to dispatch the intermediate files in a build directory so that they do not pollute the source directory but are still available if I want to recompile fast.

I have three solutions: standard make (however it would be a bit time consuming if I want to get everything right), latexmk (it seems to be on most machines but is not part of the base distribution of most latex distributions) or rubber (probably not available by default).

I would like to use rubber, but using latexmk or make seems safer. Which of them could I consider to be installed on a "standard" machine? Is it a problem to require rubber or latexmk for building tex files?

  • What do you refer to as "base distribution of most latex distributions"? Latexmk should be available in TeX Live (as is arara). Personally, I would recommend using latexmk or arara because they are part of TeX Live. – TeXnician Sep 25 '18 at 10:31
  • I mean that latexmk is, for example (on ubuntu), in the package texlive-extra-utils (the same is true for arara). By "base" I mean not texlive-extra nor texlive-full. – 永劫回帰 Sep 25 '18 at 10:39
  • 1
    The distro packages of linux distributions are quite arbitrarily assembled collections of LaTeX-related stuff. I do refer to the vanilla TeX Live as distributed by TUG (which would make it easy to install only one TeX package using tlmgr if you decided in favor of installing a subset). – TeXnician Sep 25 '18 at 11:16
  • Alternative approach: Distribute the TeX files using version control supporting private repos (e.g. on GitLab) and use CI for building. – TeXnician Sep 25 '18 at 11:16
  • If vanilla Tex Live is considered to be the one distributed by TUG then I can consider latexmk to be available on all systems which solve my problem. (MikTeX also ships it) – 永劫回帰 Sep 25 '18 at 11:31

Your Answer

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

Browse other questions tagged or ask your own question.