Hot answers tagged

109

Actually you can create more than one local TeXMF folder! There’s already a description on MiKTeX’ online documentation, see Integrating Local Additions, at time of writing for recent MiKTeX 2.9 (but the included images are from an older version, seemingly MiKTeX 2.5, and slightly different, cf. also http://docs.miktex.org/2.5/manual/localadditions.html ). ...


56

From A Directory Structure for TeX files, 2.2 Rooting the tree: In this document, we shall designate the root TDS directory by texmf (for “TEX and METAFONT”). We recommend using that name where possible, but the actual name of the directory is up to the installer.


44

The error message Ouch---my internal constants have been clobbered!---case 14 is caused by if (mem_min<min_halfword)or(mem_max>=max_halfword)or@| (mem_bot-mem_min>max_halfword+1) then bad:=14; in pdftex.web. Probably you have changed the memory settings in texmf.cnf that triggers the error. For further analysis these changes would be useful. ...


23

LaTeX 2.09 did not have the distinction; everything was called styles. \documentstyle[12pt,longtable]{article} When we made LaTeX2e, there were relatively few "main document styles". The standard ones (article/report/book) accounted for the vast majority of documents. As they were part of the core distribution, changing those to be "classes" was not too ...


18

This name was in fact used as a possible name in the very first message to the Tex directory structure list http://tug.org/pipermail/twg-tds/1994-October/000001.html So I think it must have been the existing name in web2c-TeX/kpathsea but I can't recall exactly.


18

There are several reasons: (In the following sections see “package” in a broader meaning including also scripts, binaries etc.) The TeX distributions do not install all available packages known in the TeX world. TeX Live includes only packages, which come with a free licence; MiKTeX is not that strict about that, but, as far as I see, both distributions do ...


17

I use latexmk for some document building, and I've wanted something like this for a long time. Especially when I have document and class under version control. I discovered that you can configure latexmk with a local latexmkrc file in the document's directory. latexmkrc files are just perl code. So in this workflow, if the class files are in ./texmf ...


16

It's not clear from the question whether you have admin access to the master texmf.cnf file. If you do, then this is easier than if you do not! Admin access available In the case where for example you have a single-user machine and so write access to texmf.cnf in the installation directory, this is doable with no variable setting. You can find where this ...


16

This is an historical artifact. In LaTeX 2.09 there weren't "document classes", but "document styles", with extension .sty: book.sty, article.sty and so on. Additional "packages" were loaded as options to \documentstyle and they needed to have the .sty extension as well. When LaTeX2e introduced document classes (extension .cls), the .sty extension was ...


13

Using texlive on Ubuntu, the *.sty files are located at /usr/share/texmf-texlive/tex/latex/ Adding a new style foo.sty usually means create folder foo sudo mkdir /usr/share/texmf-texlive/tex/latex/foo copy the file foo.sty there sudo cp foo.sty /usr/share/texmf-texlive/tex/latex/foo/ run texhash sudo texhash Works for me with texlive 2009-15 on ...


12

There are more reasons for TEXMFLOCAL and TEXMFHOME. Let us first consider TEXMFLOCAL: Fonts, style files, etc that are local to the department, company, etc, that cannot be uploaded or used outside the company/school/whatever, but should be available for everyone within the company. In the same way you can consider TEXMFHOME Personal material, privately ...


12

I've just found this in the MiKTeX documentation. Just FYI: 6.2. Which is the best directory to keep .sty files where MiKTeX can find them? MiKTeX Package Manager takes care of the proper installation of well known LaTeX packages. If (for some reason) you have to install a package by hand, then you should copy the input files into the directory ...


11

You can in fact that environment variables inside a Makefile (tested with GNU make only). You need to do the following: export VAR=value without quotes If you reference the previous value of the same variable you need to use the := assignment instead which expands the value immediately. The normal = is expanding the value at every use and will lead to an ...


11

I was having the same trouble and fix it differently. Two main things to know : - the beamer command \usetheme is indeed the same as \usepackage apart from the fact that it concatenates the argument with beamertheme - you can specify backward directories to \usepackage with ../ Using these two points you only need to know the relative path from your .tex ...


10

All TeX Live installations allow for a “personal tree”; on GNU/Linux systems this tree is rooted in ~/texmf, where ~ stands for your home directory. Just issue this pair of commands from a directory where you keep a copy of llncs.sty: mkdir -p $(kpsewhich --var-value TEXMFHOME)/tex/latex/llncs cp llncs.cls $(kpsewhich --var-value TEXMFHOME)/tex/latex/llncs/...


10

Firstly, you need to tell tex to look in your ~/Dropbox/mylocaltexmf folder as the user texmf, instead of in the default, ~/texmf. To do this, you need to create the file 10localtexmf.cnf (or some similarly named file) in /etc/texmf/texmf.d, and tell it your custom value of your home texmf: cd /etc/texmf/texmf.d sudo touch 10localtexmf.cnf sudo echo "...


9

You can't change the kpathsea (pseudo)environment variables once the pdftex process has been started. But you can change their value before launching the process: TEXMFHOME="/path/to/new/texmfhome:$(kpsewhich -var-value TEXMFHOME)" pdflatex filename This will prepend the "new home" to the current value; the syntax used assumes bash.


9

Why change it at all? I think what you're missing is that you should make your personal texmf-tree mimic that of the installed version. This is easily remedied. In a terminal: mkdir -p ~/texmf/{doc,tex}/{context,eplain,generic,latex,lualatex,plain,xelatex,xetex} # for example mkdir -p ~/texmf/bibtex/bib # put your bib file in here (You should / will ...


9

Debian (and Ubuntu) TeX Live 2009 ships its files in /usr/share/texmf-texlive, which is a merge of the upstream (TeX Live) directories texmf-dist and texmf. In Debian (and Ubuntu) /usr/share/texmf is used for packages other than the texlive-* packages. In Debian (and Ubuntu) TeX Live 2012 the directory layout has changed and is now /usr/share/texlive/texmf-...


8

Update: See now the more general tutorial Manual font installation. I did the following and it worked for me. Some steps may not be necessary or have been done redundantly. I believe I did everything in "user" mode. Created C:\Local TeX Files Put zipped fonts distribution in temporary directory and unzipped there C:\Program Files (x86)\MiKTeX 2.9\miktex\...


8

The location of the "private tree" is normally, with MacTeX, ~/Library/texmf to which the (pseudo)variable TEXMFHOME points: > kpsewhich --var-value TEXMFHOME /Users/<user>/Library/texmf (I only masked my real user name on this machine). If you try > less $(kpsewhich texmf.cnf) you'll get on your screen something like % (Public domain.) % ...


7

The program kpsewhich could be used. In TeX Live it belongs to the commands that can be used in restricted shell escape. \documentclass{article} \begin{document} \newread\mypipe \openin\mypipe="|kpsewhich -progname pdflatex -all biblatex.def" \loop \ifeof\mypipe \else \begingroup \endlinechar=-1 % suppress space at line end \read\mypipe ...


6

The other answers provided to this question all suggest to put your .sty files in the folder /texmf/ in your user profile folder (although there doesn't seem to be any agreement on what exactly you need to do after that). This will, however, not work if you (like me) are using a portable LaTeX program, because then there won't be any such /texmf/ folder on ...


6

I am using a quick fix to this issue since I work mainly on a USB stick and don't want to touch to the tex folders the computers I am using. Indeed, you can specify backward directories to \usepackage, then you don't have to know the exact full path but only the relative path from your .tex to your .sty file. An example: given a portable hard disk D, I ...


6

I had to install the pseudo-package texlive-collection-xetex to make it work. Here is the authoritative reference: TeXLive on Fedora


6

If you issue the shell command cat $(kpsewhich texmf.cnf) (bash syntax, adapt to your shell way to do command substitution) you should see % (Public domain.) % This texmf.cnf file should contain only your personal changes from the % original texmf.cnf (for example, as chosen in the installer). % % That is, if you need to make changes to texmf.cnf, put ...


5

Open Terminal and execute kpsewhich xits-regular.otf. In my case this yields: /usr/local/texlive/2012/texmf-dist/fonts/opentype/public/xits/xits-regular.otf


5

Path expansion and database search are documented in the kpathsea and web2c documentation (both available with texdoc). Quoting the kpathsea manual (section 3.4.1): If a particular path element begins with ‘!!’, however, only the database will be searched for that element, never the disk. Studying texmf/web2c/texmf.cnf we find % TEXMFLOCAL follows ...


5

To avoid tex distribution or operating system specific requirements on where to put stuff and what to run to get it to be found I use a GNUmakefile rule of the following form: %.sty : ../%.sty cp $^ $@ Each subdirectory for which I build latex code references this rule, resulting in the .sty file to be copied locally to that directory before pdflatex is ...


Only top voted, non community-wiki answers of a minimum length are eligible