Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I created a custom beamer style. For this I have several .sty files. I am able to install this custom theme on my Ubuntu 12.04 with the standard tex-live provided distribution by putting it my home as following:

~/texmf/tex/latex/beamer/base/themes

And then running texhash

I want to know how to proceed in order to have pdftolatex compiler aware of this package if I put it in a custom directory.

share|improve this question

2 Answers 2

up vote 5 down vote accepted

Tex-live supports a number of environment variables that are used to specify where to look for files. The most important ones are TEXINPUTS (for packages, classes and support files), BSTINPUTS (for bibtex/biblatex styles) and BIBINPUTS (for bibtex/biblatex databases).

To add your own folder ~/mystuff, just add it to TEXINPUTS and maybe also BSTINPUTS (bash syntax):

export TEXINPUTS=~/mystuff//:${TEXINPUTS}
export BSTINPUTS=~/mystuff//:${BSTINPUTS}

If a directory is postfixed by a trailing double slash, it is searched recursively by pdftex for files, so you may store arbitrary folder structures inside it.

The path can also be relative, which comes handy in collaborative settings (with using a source control system, such as git or subversion). For such projects, I usually maintain a per-project texmf folder with all "unusal" packages, package versions and so on that is committed together with the project's source file into the repository. In the accompanying makefile I then set TEXINPUTS to ./texmf//:${TEXINPUTS}, so that the project is "self-contained" and can be checked out and compiled by any colleague with a standard tex-live distribution. Details about this approach can be found in this answer.

share|improve this answer

Before TeXLive, installations like teTeX had a $TEXINPUTS environment variable to a directory within your home directory. This told your preferred tex compiler to to look for your individual TeX style files in that directory without having to run texhash on it.

Nowadays, it's all about kpathsea and the contents of your personal style tree needs a hash file as produced by texhash. Fortunately, you can generate that hash file just for your personal tree where you have writing permissions, and use environment variables to tell your preferred TeX compiler in which order it should search your personal tree as compared to the system trees.

See the TeX FAQ on private installation of files for details.

share|improve this answer
4  
That's not accurate. TeX Live still uses $TEXINPUTS, and your local TeX tree (for example ~/texmf on Linux) does not have to be hashed. –  Joseph Wright May 31 '12 at 8:29
    
Does that apply to an entire tree hierarchy of personal style files? I have always been under the impression that $TEXINPUTS would only allow a flat hierarchy, i.e. subdirectories would all need their individual entries into the variable. –  Tatjana Heuser May 31 '12 at 8:40
    
Yes, that applies to an entire hierarchy. –  Daniel May 31 '12 at 8:43
    
Thanks. Does it mean that I can't just set an environement variable ? –  Manuel Selva May 31 '12 at 10:49

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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