7

At the moment I have some modified and some of my own packages placed in the same folder as my tex file. I would like to move all of them in a subfolder called packages so that I have a better overview over my files. Is there any way to achieve this?

3
  • 2
    you can always reference packages in a different directory by \usepackage{/path/to/package/x.sty}. Alternatively you can add them to your local texmf tree and use them that way. Oct 18, 2011 at 14:00
  • 4
    that is something I already tried and didn't seem to work correctly, since it gives me the warning You have requested package 'package/name' but the package provides 'name'
    – maetra
    Oct 18, 2011 at 14:35
  • @maetra: That is just a warning, the package is indeed loaded. (But see the other answers, which are "more proper" [with no offense to wh1t3 intended].) Oct 18, 2011 at 18:06

3 Answers 3

6

For all my larger LaTeX projects, I maintain a project-local texmf subfolder for exactly this purpose: own and modified packages, new versions of packages that are not yet part of major TeX distributions, and so on. I include this folder by setting TEXINPUTS in the project's Makefile or manually in bash: export TEXINPUTS=./texmf//:${TEXINPUTS}.

(Note: The double slash // makes LaTeX to search subfolders as well. If the project-local texmf folder contains also bibliography-related packages, such as a new version of biblatex, one also has to set BSTINPUTS accordingly.)

One often hears that additional/own packages or updates to existing packages better go into the machine-wide or user-wide texmf tree. This might work well if you work alone on a project on a single machine only, but it certainly does not work so well in a collaborative setting.

By maintaining all "non-standard" packages in a project-related texmf subfolder, I can put everything together into a version control system (such as git or subversion). Collaborating colleagues (even those that are still stuck to TexLive 2010) can check-out and built the project without having to manually install or update a dozen of LaTeX packages.

4
  • that was pretty much idea too, since I am already using subversion in a collaborative setting. But I am using windows and miktex-portable, so I have to adapt your solution. I tried to do set UserRoots=\packages and set texmf=\packages but had not success with that.
    – maetra
    Oct 19, 2011 at 8:23
  • 1
    That seems like overkill, really.
    – einpoklum
    Jan 16, 2016 at 17:11
  • 3
    @einpoklum: That seems like overkill, really. – yes, it does. Until the day you have to rework a ten years old project, work on the same project on three or more different computers using different environments, work with 10+ people on the same project, or just have to pass the thing in a "way that works" to your colleague or boss.
    – Daniel
    Jan 16, 2016 at 18:23
  • Fair enough :-(
    – einpoklum
    Jan 16, 2016 at 18:27
8

befor you run pdflatex do a export TEXMFHOME=packages/

1

For MikTeX-Portable there doesn't exist such a simple solution as described by Daniel and Herbert, but adding the packages' path via MikTEX->Options->Add Root seems okay. One just has to take care to remove the additional path before compiling other projects that don't use the the modified but the original packages.

You must log in to answer this question.

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