11

In my main LaTeX file I'm using a number of input files which are dynamics (changing the contents). I want to put some of these files in a higher order folder but at the same time don't want to fix it name.

Filefolder\Latexmainfile

how can I change it so that it looks files in Latexmainfile as well as ONLY in (Filefolder)

\input{./deckblatt.tex} 
0

2 Answers 2

14

The following is written to accord to Mac OS Xs' FHS implementation. This is principally valid for any UNIX-like OS. Pdflatex allows you to specify complete paths:

\input{/Users/user_name/some/path}

Under Unix-Like systems you may even use shell(bash) variables in you paths:

\input{$HOME/some/path}

or common abbreviations

\intput{\string~/some/path}

(note: using \string here to tell latex to pass the character to shell instead of taking the "meaning")

Of course you may also specify relative paths. This means of course you need to know what your active path is. For pdflatex this is most commonly the path (or directory) were yout main document lies (which is given pdflatex as an argument).

\input{some_file}

This will tell pdflatex to use some_file which is located in the active dir. (If not an error will be raised.)

\input{./some_file}

Will do exactly the same, while

\input{../some_file}

will tell pdflatex to use some_file which lies in the parent folder (one level above.)

So one might ask why? Well under common OSs like UNIX or Windows the dot representations are in charge, so that . represents the current/active folder and .. the parent. Therefore ../../ will represent a folder two levels above (the parent of the parent). This is possible, since the directory tree only knows one parent a a certain level. So 'going up' is all the same on any level.

3
  • 1
    AFAIK reading files from the parent folder (..) will typically be denied by TeX due to security reasons. Jan 4, 2013 at 12:54
  • really? i nevers checked this for tex but for my pdflatex (TL 2012) i never experienced any restrictions on that. Do you know where this can be configured?
    – bloodworks
    Jan 4, 2013 at 13:00
  • 1
    Check you texmf.cnf for the description of openout_any and openin_any. The default is to allow all inputs (I was wrong) and only allow output in the current dir or subdirs of it and restrict absolute paths to $TEXMFOUTPUT. Jan 4, 2013 at 13:57
9

You can define the input files as follows:

\makeatletter
\def\input@path{{/path/folder/}}
\makeatother

in the case of several directories you can use

\makeatletter
\def\input@path{{/path/folder1/}{/path/folder2/}}
\makeatother
2
  • It also appear that this path will be appended to KPATHSEA path, so if a file with similar name already exists in the KPATHSEA, latex will pick that one instead the one specified in the path here.
    – Ott Toomet
    Nov 16, 2017 at 18:47
  • very nice trick, thank you
    – lehalle
    Feb 23, 2021 at 10:31

You must log in to answer this question.

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