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?

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.
–
Roelof SpijkerOct 18 '11 at 14:00

1

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'
–
maetraOct 18 '11 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].)
–
Ulrich SchwarzOct 18 '11 at 18:06

3 Answers
3

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.

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.
–
maetraOct 19 '11 at 8:23

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.