TDS, TeX Directory Structure 

TDS, TeX Directory Structure http://www.tex.ac.uk/cgi-bin/texfaq2html?question=41

TDS is a standard way of organising all the \TeX -related files on a computer system.

The TDS reserves the name texmf as the name of the root directory (folder) of the hierachies. Files supplied as part of the distribution are put into the standard hierarchy. The location of the standard hierarchy is system dependent, but on a Unix system it might be at /usr/local/texmf, or /usr/local/share/texmf, or /opt/texmf, or a similar location, but in each case the TeX files will be under the /texmf subdirectory.

There can be multiple 'local' hierarchies in which additional files can be put. In the extreme an installation can have a local hierarchy and each user can also have an individual local hierarchy. The location of any local hierarchy is not only system dependent but also user dependent. Again, though, all files should be put under a local /texmf directory.

TDS, TeX Directory Structure 

In Linux, there in only one dir named texmf under /usr, which is for the standard packages. It is at /usr/share/texmf/tex

xspace, as an example, is at: /usr/share/texmf/tex/latex/tools/xspace.sty and you can get the help from ftp://ftp.rge.com/pub/tex/macros/latex/required/tools/xspace.dtx

*Q*: how about /var/lib/texmf/?

Useful package helps 

Where to put new files 

  1. Always install new files in a local texmf tree. Let's write $TEXMF for this root.

  2. In your local texmf tree, imitate the directory structure in your main tree. Here's some examples of where files of given extensions should go:

Where to put new files 

dvi, .ps or .pdf: $TEXMF/doc/latex/<package>/
Linux Official:
TEXMF=/usr/share/texmf
Linux user files:
TEXMF=/usr/local/share/texmf
Solaris:
TEXMF=/usr/shared/teTeX/share/texmf

kpsewhich chicago.sty

Where to put new files 

/usr/share/texmf
/usr/share/texmf/tex
/usr/share/texmf/tex/jadetex
/usr/share/texmf/tex/amstex
/usr/share/texmf/tex/context
/usr/share/texmf/tex/cyrplain
/usr/share/texmf/tex/eplain
/usr/share/texmf/tex/fontinst
/usr/share/texmf/tex/generic
/usr/share/texmf/tex/mex
/usr/share/texmf/tex/plain
/usr/share/texmf/tex/texinfo
/usr/share/texmf/tex/latex
/usr/share/texmf/tex/platex
/usr/share/texmf/web2c
/usr/share/texmf/bibtex
/usr/share/texmf/bibtex/bib
/usr/share/texmf/bibtex/bst
/usr/share/texmf/context
/usr/share/texmf/context/config
/usr/share/texmf/context/data
/usr/share/texmf/context/perltk
/usr/share/texmf/doc
/usr/share/texmf/doc/latex
/usr/share/texmf/doc/bibtex
/usr/share/texmf/etex
/usr/share/texmf/etex/plain
/usr/share/texmf/etex/latex
/usr/share/texmf/fontname
/usr/share/texmf/fonts...
/usr/share/texmf/makeindex...
/usr/share/texmf/metafont...
/usr/share/texmf/metapost...
/usr/share/texmf/mft
/usr/share/texmf/omega...
/usr/share/texmf/pdfetex
/usr/share/texmf/pdfetex/tex
/usr/share/texmf/pdfetex/latex
/usr/share/texmf/pdftex
/usr/share/texmf/pdftex/config
/usr/share/texmf/pdftex/mex
/usr/share/texmf/pdftex/plain
/usr/share/texmf/pdftex/texinfo
/usr/share/texmf/pdftex/latex
/usr/share/texmf/texconfig...
/usr/share/texmf/dvips...
/usr/share/texmf/source...

Installing a new package 

Installing a new package http://www.tex.ac.uk/cgi-bin/texfaq2html?keyword=&question=43

Ordinarily, you should download the whole distribution directory;

A small package <smallpack> might be just a single .sty file

In the doc system, the user manual and documented package code is in the .dtx file, and the .ins file contains LaTeX instructions on what code should be extracted from the .dtx file. To unpack a doc package <pack>, do the following:

Run latex on pack.ins. This will generate one or more files (normally
a pack.sty file but there may be others depending on the particular
package).
Run latex on pack.dtx as a start to getting the user manual and possibly
a commented version of the package code. Run latex again on pack.dtx, if
it was called for, to resolve any references and generate a Table of
Contents.
[ ... deal with index ... ]
Print and read pack.dvi

Almost the final stage of the installation is to put the package file(s) 'where LaTeX can find them'.

The final stage is to tell LaTeX that there is a new file, or files, that it should be able to go and find.

Run:
texhash

document in which you want to use the pack package.

TeX problem? (might be PostScript) 

Newsgroups: comp.text.tex
Date: 2000/05/17
> I'm trying to produce documents that can be printed on either
> letter paper (North America) or A4 paper (most of the world :-)

A4 paper has the dimensions (width x height) 210 mm x 297 mm, whereas Letter paper has the dimensions 8.5" x 11" (= 215.9 mm x 279.4 mm). As you can see, A4 paper is longer but narrower than Letter paper. Thus, to get a correct printout, it should be sufficient to set \paperwidth to 210 mm, \paperheight to 11", and \textwidth and \textheight accordingly.

Udo Zallmann

TeX problem? (might be PostScript) 

I use the "psresize" utility (part of the "psutils" package, on your friendly CTANs). The man page says:

Psresize rescales and centres a document  on  a  different
size  of  paper.   The input PostScript file should follow
the Adobe Document Structuring Conventions.

<snip>

EXAMPLES The following command can be used to convert a document on A4 size paper to letter size paper:

psresize -PA4 -pletter in.ps out.ps

Maurizio Loreti

TeX problem? (might be PostScript) 

I have the same problem. What I do is:

\documentclass[12pt]{book}      % Specifies the document class
\usepackage[letterpaper,
        twosideshift=.2in,dvips,width=7in,includemp=false]{geometry}

In other words, I'm using letterpaper and telling geometry to make it narrower, instead of using A4 and telling geometry to make it shorter. I don't know why they wouldn't both work.

Laura

TeX problem? (might be PostScript) 

Postscript measures from the bottom of a page, TeX from the top. If dvips is told the paper is A4, it will start with a large vertical movement to get the to the top of the text. If you want the SAME ps file to print on both letterpaper and A4, this vertical movement needs to be less than the height of letterpaper.

Dvips will see to this if you tell it the paperheight is the same as letterpaper.

For the horizontal, both TeX and Postscript measure from the left, so you just need to be sure that the left margin plus textwidth is less than A4 size.

So I would either: set everything in letterpaper, but make sure the width fits in A4, or: tell both LaTeX and dvips to use a custom papersize with the A4 width, and the letterpaper height.

TeX problem? (might be PostScript) 

    The iso class has a similar requirement. The specifications for the
text block are: \textwidth{160mm}, \textheight{221.5mm},
\columnsep{10mm}. Also \headheight{11pt}, \headsep{10mm},
\footskip{11mm} and the \topskip is is same as the document point size.
    With the "a4paper" option all the margins (top, oddside, evenside)
are set to 0mm. This effectively centres the text block on an A4 page.
    With the "letterpaper" option the margins are set to:
\topmargin{-9.4mm}, \oddsidemargin{1.55mm}, \evensidemargin{1.55mm}.
These values shift the text block so that it all fits (centred) on US
letterpaper.
    With the iso class you have to produce different PostScript files
for the different page sizes. If the text block were smaller it would be
possible to fit it on either paper size.

With the hope this might give you some ideas Peter W.

Changing A4 to Letter 

Newsgroups: comp.text.tex
Date: 1996/09/18
>compile my document paper size are set to A4 instead of 8.5 x 11 Letter.
>How do I set the document paper size?

I think that all the document classes allow you to set the "letterpaper" size in the heading, eg

=======================================
\documentclass[letterpaper,12pt]{article}
\begin{document}
This is a test.
\end{document}
=======================================

We europeans have been saying "a4paper" for ages.

Timothy Murphy

Changing A4 to Letter 

Or try with "dvips -t letter …" to override the defaults, and look if something changes.

Maurizio Loreti